glActiveTexture gl_TEXTURE0
glBindTexture(gl_TEXTURE_2D, texture.root.gl_texture)
+ simple_2d_program.translation.array_enabled = false
+ simple_2d_program.color.array_enabled = false
+ simple_2d_program.scale.array_enabled = false
+
simple_2d_program.translation.uniform(center.x, -center.y, center.z, 0.0)
simple_2d_program.color.uniform(1.0, 1.0, 1.0, alpha)
simple_2d_program.scale.uniform scale
gamnit_error = tex.error
assert gamnit_error == null else print_error gamnit_error
end
-
- # Constant program values
- program.use
- program.coord.array_enabled = true
- program.tex_coord.array_enabled = true
-
- gl_error = glGetError
- assert gl_error == gl_NO_ERROR else print gl_error
end
redef fun frame_core(display)
# Draw sprites in `sprites` and `ui_sprites`
protected fun frame_core_draw(display: GamnitDisplay)
do
- # TODO optimize this draw to store constant values on the GPU
+ simple_2d_program.use
+
+ # Set constant configs
+ simple_2d_program.coord.array_enabled = true
+ simple_2d_program.tex_coord.array_enabled = true
+ simple_2d_program.color.array_enabled = false
+ # TODO optimize this draw to store constant values on the GPU
# World sprites
- simple_2d_program.use
simple_2d_program.mvp.uniform world_camera.mvp_matrix
for sprite in sprites do sprite.draw