intrude import more_materials
import more_models
+import model_dimensions
import particles
+import selection
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
# 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
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