gamnit: intro dynamic resolution support
[nit.git] / lib / gamnit / depth / depth.nit
index 12d0f15..f18f2eb 100644 (file)
@@ -17,7 +17,9 @@ module depth
 
 intrude import more_materials
 import more_models
+import model_dimensions
 import particles
+import selection
 
 redef class App
 
@@ -30,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
@@ -43,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
@@ -50,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