revision 2
[carveJwlIkooP6JGAAIwe30JlM.git] / world_render.h
index ecbd3d22ec093a78cb68dfb128df537b2a3f3340..846e2d83f7f53694147231ca09a02b2246a3caaf 100644 (file)
@@ -1,15 +1,13 @@
 /*
- * Copyright (C) 2021-2023 Mt.ZERO Software, Harry Godden - All Rights Reserved
+ * Copyright (C) 2021-2024 Mt.ZERO Software, Harry Godden - All Rights Reserved
  */
 
-#ifndef WORLD_RENDER_H
-#define WORLD_RENDER_H
+#pragma once
 
 #define WORLD_CUBEMAP_RES 32
 
-#include "camera.h"
+#include "vg/vg_camera.h"
 #include "world.h"
-
 #include "shaders/scene_standard.h"
 #include "shaders/scene_standard_alphatest.h"
 #include "shaders/scene_foliage.h"
@@ -26,7 +24,8 @@
 
 static const float k_world_light_cube_size = 8.0f;
 
-struct world_render{
+struct world_render
+{
    GLuint tex_terrain_noise;
 
    /* rendering */
@@ -61,31 +60,35 @@ struct world_render{
    text_particles[6*4];
    u32 text_particle_count;
 }
-static world_render;
-static void world_render_init(void);
+extern world_render;
+
+void world_render_init(void);
 
-static void world_link_lighting_ub( world_instance *world, GLuint shader );
-static void world_bind_position_texture( world_instance *world, 
-                                            GLuint shader, GLuint location,
-                                            int slot );
-static void world_bind_light_array( world_instance *world,
-                                       GLuint shader, GLuint location, 
-                                       int slot );
-static void world_bind_light_index( world_instance *world,
-                                       GLuint shader, GLuint location,
-                                       int slot );
-static void render_world_position( world_instance *world, camera *cam );
-static void render_world_depth( world_instance *world, camera *cam );
-static void render_world( world_instance *world, camera *cam,
-                          int stenciled, int viewing_from_gate, 
-                          int with_water, int with_cubemaps );
-static void render_world_cubemaps( world_instance *world );
-static void bind_terrain_noise(void);
-static void render_world_override( world_instance *world,
-                                   world_instance *lighting_source,
-                                   m4x3f mmdl,
-                                   camera *cam,
-                                   ent_spawn *dest_spawn, v4f map_info );
+void world_prerender( world_instance *world );
+void world_link_lighting_ub( world_instance *world, GLuint shader );
+void world_bind_position_texture( world_instance *world, 
+                                  GLuint shader, GLuint location,
+                                  int slot );
+void world_bind_light_array( world_instance *world,
+                             GLuint shader, GLuint location, 
+                             int slot );
+void world_bind_light_index( world_instance *world,
+                             GLuint shader, GLuint location,
+                             int slot );
+void render_world_position( world_instance *world, vg_camera *cam );
+void render_world_depth( world_instance *world, vg_camera *cam );
+void render_world( world_instance *world, vg_camera *cam,
+                   int stenciled, int viewing_from_gate, 
+                   int with_water, int with_cubemaps );
+void render_world_cubemaps( world_instance *world );
+void bind_terrain_noise(void);
+void render_world_override( world_instance *world,
+                            world_instance *lighting_source,
+                            m4x3f mmdl,
+                            vg_camera *cam,
+                            ent_spawn *dest_spawn, v4f map_info );
+void render_world_gates( world_instance *world, vg_camera *cam );
+void imgui_world_light_edit( world_instance *world );
 
 #define WORLD_BIND_LIGHT_BUFFERS_UB0_TEX234( WORLD, SHADER )            \
    world_link_lighting_ub( WORLD, _shader_##SHADER.id );                \
@@ -96,4 +99,3 @@ static void render_world_override( world_instance *world,
    world_bind_light_index( WORLD, _shader_##SHADER.id,                  \
                            _uniform_##SHADER##_uLightsIndex, 4 );
 
-#endif /* WORLD_RENDER_H */