X-Git-Url: http://nitlanguage.org diff --git a/lib/gamnit/depth/depth.nit b/lib/gamnit/depth/depth.nit index 930c3a0..f18f2eb 100644 --- a/lib/gamnit/depth/depth.nit +++ b/lib/gamnit/depth/depth.nit @@ -19,6 +19,7 @@ intrude import more_materials import more_models import model_dimensions import particles +import selection redef class App @@ -31,7 +32,7 @@ redef class App world_camera.near = 0.1 # Prepare programs - var programs = [versatile_program, normals_program, explosion_program, smoke_program, static_program: GamnitProgram] + var programs = [versatile_program, normals_program, explosion_program, smoke_program, static_program, selection_program: GamnitProgram] for program in programs do program.compile_and_link var gamnit_error = program.error @@ -44,6 +45,8 @@ redef class App # Draw all elements of `actors` and then call `frame_core_flat` protected fun frame_core_depth(display: GamnitDisplay) do + frame_core_dynamic_resolution_before display + # Update cameras on both our programs versatile_program.use versatile_program.mvp.uniform world_camera.mvp_matrix @@ -51,19 +54,28 @@ redef class App normals_program.use normals_program.mvp.uniform app.world_camera.mvp_matrix + frame_core_depth_clock.lapse for actor in actors do for leaf in actor.model.leaves do leaf.material.draw(actor, leaf) end end + perfs["gamnit depth actors"].add frame_core_depth_clock.lapse frame_core_world_sprites display + perfs["gamnit depth sprites"].add frame_core_depth_clock.lapse # Toggle writing to the depth buffer for particles effects glDepthMask false for system in particle_systems do system.draw glDepthMask true + perfs["gamnit depth particles"].add frame_core_depth_clock.lapse frame_core_ui_sprites display + perfs["gamnit depth ui_sprites"].add frame_core_depth_clock.lapse + + frame_core_dynamic_resolution_after display end + + private var frame_core_depth_clock = new Clock end