X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=world_render.h;h=7eccc6e45518d9351722ea994146ee566dd3f745;hb=0136a935c00e3ea1f231fd88b38b44982fd409ac;hp=f66ae0487e43e8f61b608c655b3a67f472207ee9;hpb=e61356f70eddb79f05d7b9e329e91963ec74f817;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/world_render.h b/world_render.h index f66ae04..7eccc6e 100644 --- a/world_render.h +++ b/world_render.h @@ -92,6 +92,15 @@ VG_STATIC void world_bind_light_array( world_instance *world, glUniform1i( location, slot ); } +VG_STATIC void world_bind_light_index( world_instance *world, + GLuint shader, GLuint location, + int slot ) +{ + glActiveTexture( GL_TEXTURE0 + slot ); + glBindTexture( GL_TEXTURE_3D, world->tex_light_cubes ); + glUniform1i( location, slot ); +} + VG_STATIC void render_world_depth( world_instance *world, camera *cam ); /* @@ -168,6 +177,8 @@ VG_STATIC void render_world_vb( world_instance *world, camera *cam ) _uniform_scene_vertex_blend_g_world_depth, 2 ); world_bind_light_array( world, _shader_scene_vertex_blend.id, _uniform_scene_vertex_blend_uLightsArray, 3 ); + world_bind_light_index( world, _shader_scene_vertex_blend.id, + _uniform_scene_vertex_blend_uLightsIndex, 4 ); vg_tex2d_bind( &tex_terrain_noise, 0 ); @@ -198,6 +209,8 @@ VG_STATIC void render_world_standard( world_instance *world, camera *cam ) _uniform_scene_standard_g_world_depth, 2 ); world_bind_light_array( world, _shader_scene_standard.id, _uniform_scene_standard_uLightsArray, 3 ); + world_bind_light_index( world, _shader_scene_standard.id, + _uniform_scene_standard_uLightsIndex, 4 ); bind_terrain_noise(); @@ -226,6 +239,8 @@ VG_STATIC void render_world_alphatest( world_instance *world, camera *cam ) _uniform_scene_standard_alphatest_g_world_depth, 2 ); world_bind_light_array( world, _shader_scene_standard_alphatest.id, _uniform_scene_standard_alphatest_uLightsArray, 3 ); + world_bind_light_index( world, _shader_scene_standard_alphatest.id, + _uniform_scene_standard_alphatest_uLightsIndex, 4 ); bind_terrain_noise(); @@ -267,6 +282,8 @@ VG_STATIC void render_terrain( world_instance *world, camera *cam ) _uniform_scene_terrain_g_world_depth, 2 ); world_bind_light_array( world, _shader_scene_terrain.id, _uniform_scene_terrain_uLightsArray, 3 ); + world_bind_light_index( world, _shader_scene_terrain.id, + _uniform_scene_terrain_uLightsIndex, 4 ); vg_tex2d_bind( &tex_terrain_noise, 0 );