diff options
| author | quou <quou@disroot.org> | 2024-12-29 13:40:55 +1100 | 
|---|---|---|
| committer | quou <quou@disroot.org> | 2024-12-29 13:41:56 +1100 | 
| commit | 928eba3845d6017d133048cf04c1f816d87941b0 (patch) | |
| tree | 50f8c52b6f6eb0adbde2666c50ff10dd3920616a /c2.cpp | |
| parent | 7383cfcbe8ade4dce057608e971e8cb7d4b1feb7 (diff) | |
model hierarchy support
Diffstat (limited to 'c2.cpp')
| -rw-r--r-- | c2.cpp | 53 | 
1 files changed, 29 insertions, 24 deletions
@@ -152,28 +152,6 @@ extern "C" int entrypoint() {  			dev->unmap_buffer(cbuf);  		} -		{ -			Texture& bb = dev->get_texture(dev->get_backbuffer()); -			void* mem; -			mem = dev->map_buffer(cbuf2, 0, sizeof(Config_Buffer2)); -			Config_Buffer2* c = (Config_Buffer2*)mem; -			c->projection = m4f::pers( -				70.0f, -				(float)bb.w / (float)bb.h, -				0.01f, -				100.0f -			); -			c->transform = (m4f::translate( -				m4f::identity(), -				v3f(0.0f, 0.0f, -5.0f) -			) * m4f::rotate( -				m4f::identity(), -				rot, -				raxis -			)); -			dev->unmap_buffer(cbuf2); -		} -  		Pipeline_Builder pb(&frame_arena, dev);  		pb.begin_rp();  		pb.rp_target(dev->get_backbuffer(), { r, 0x00, 0xff, 0xff }); @@ -207,10 +185,37 @@ extern "C" int entrypoint() {  		dev->get_ctx().submit(draw, pip, pass);  		pb.begin_rp(); -		pb.rp_target(dev->get_backbuffer(), Clear_Mode::restore);  		pb.rp_depth_target(dev->get_depth_target(), 1.0f); +		dev->get_ctx().submit(pb.build_rp()); + +		pb.begin_rp(); +		pb.rp_target(dev->get_backbuffer(), Clear_Mode::restore); +		pb.rp_depth_target(dev->get_depth_target(), Clear_Mode::restore);  		Render_Pass& pass2 = pb.build_rp(); -		monkey->render(dev, &frame_arena, pass2, cbuf2); + +		Texture& bb = dev->get_texture(dev->get_backbuffer()); +		m4f projection = m4f::pers( +			70.0f, +			(float)bb.w / (float)bb.h, +			0.01f, +			100.0f +		); +		m4f transform = (m4f::translate( +			m4f::identity(), +			v3f(0.0f, 0.0f, -5.0f) +		) * m4f::rotate( +			m4f::identity(), +			rot, +			raxis +		)); +		monkey->update_transforms(); +		monkey->render( +			dev, +			&frame_arena, +			pass2, +			transform, +			projection +		);  		ui->render(&frame_arena, dev->get_backbuffer());  |