namespace hiro::shader
Overview
Interface for writing shaders. Contains C++ definitions equivalent to GLSL definitions. More…
namespace shader { // structs struct Light; struct MatAndInv; struct Material; struct SceneData; // global variables const int MAX_SCENE_COUNT { 16 }; const int MAX_CAMERA_COUNT { 16 }; const int MAX_LIGHT_COUNT { 16 }; const int MAX_LIGHT_COUNT_PER_SCENE { 4 }; const int MAX_INSTANCE_COUNT { 32 }; const int ULOC_RENDER_PASS { 0 }; const int ULOC_SHADOWING_METHOD { 1 }; const int ULOC_MODEL_MATRIX { 2 }; const int ULOC_SCENE_ID { 6 }; const int ULOC_USE_INSTANCING { 7 }; const int ULOC_PRE_INSTANCING_MATRIX { 8 }; const int ULOC_CUSTOM_BEGIN { 12 }; const int ULOC_CUSTOM_0 { ULOC_CUSTOM_BEGIN + 0 }; const int ULOC_CUSTOM_1 { ULOC_CUSTOM_BEGIN + 1 }; const int ULOC_CUSTOM_2 { ULOC_CUSTOM_BEGIN + 2 }; const int ULOC_CUSTOM_3 { ULOC_CUSTOM_BEGIN + 3 }; const int ULOC_CUSTOM_4 { ULOC_CUSTOM_BEGIN + 4 }; const int ULOC_CUSTOM_5 { ULOC_CUSTOM_BEGIN + 5 }; const int ULOC_CUSTOM_6 { ULOC_CUSTOM_BEGIN + 6 }; const int ULOC_CUSTOM_7 { ULOC_CUSTOM_BEGIN + 7 }; const int ULOC_CUSTOM_8 { ULOC_CUSTOM_BEGIN + 8 }; const int ULOC_CUSTOM_9 { ULOC_CUSTOM_BEGIN + 9 }; const int ULOC_CUSTOM_10 { ULOC_CUSTOM_BEGIN + 10 }; const int ULOC_CUSTOM_11 { ULOC_CUSTOM_BEGIN + 11 }; const int ULOC_CUSTOM_12 { ULOC_CUSTOM_BEGIN + 12 }; const int ULOC_CUSTOM_13 { ULOC_CUSTOM_BEGIN + 13 }; const int ULOC_CUSTOM_14 { ULOC_CUSTOM_BEGIN + 14 }; const int ULOC_CUSTOM_15 { ULOC_CUSTOM_BEGIN + 15 }; const int ULOC_CUSTOM_16 { ULOC_CUSTOM_BEGIN + 16 }; const int ULOC_CUSTOM_17 { ULOC_CUSTOM_BEGIN + 17 }; const int ULOC_CUSTOM_18 { ULOC_CUSTOM_BEGIN + 18 }; const int ULOC_CUSTOM_19 { ULOC_CUSTOM_BEGIN + 19 }; const int UBIND_INSTANCING_MATRICES { 0 }; const int UBIND_VIEW_MATRICES { 1 }; const int UBIND_SCENE_DATA { 2 }; const int UBIND_LIGHTS { 3 }; const int UBIND_CUSTOM_0 { 4 }; const int UBIND_CUSTOM_1 { 5 }; const int UBIND_CUSTOM_2 { 6 }; const int UBIND_CUSTOM_3 { 7 }; const int UBIND_CUSTOM_4 { 8 }; const int UBIND_CUSTOM_5 { 9 }; const int UBIND_CUSTOM_6 { 10 }; const int UBIND_CUSTOM_7 { 11 }; const int UBIND_CUSTOM_8 { 12 }; const int UBIND_CUSTOM_9 { 13 }; // global functions void DrawFullscreen(); } // namespace shader
Detailed Documentation
Interface for writing shaders. Contains C++ definitions equivalent to GLSL definitions.
Global Variables
const int MAX_SCENE_COUNT { 16 }
Maximal usable number of scenes.
const int MAX_CAMERA_COUNT { 16 }
Maximal usable number of cameras.
const int MAX_LIGHT_COUNT { 16 }
Maximal usable number of lights.
const int MAX_LIGHT_COUNT_PER_SCENE { 4 }
Maximal usable number of lights per scene.
const int MAX_INSTANCE_COUNT { 32 }
Maximal usable number of Renderer-Style pairs per scene.
const int ULOC_RENDER_PASS { 0 }
Location of integer identifier of current render system pass.
const int ULOC_SHADOWING_METHOD { 1 }
Location of integer identifier of shadowing method.
const int ULOC_MODEL_MATRIX { 2 }
Location of model matrix stored in hiro::draw::Style::transform.
const int ULOC_SCENE_ID { 6 }
Location of scene index, that currently renders.
const int ULOC_USE_INSTANCING { 7 }
Location of boolean deciding whether instanced rendering is used.
const int ULOC_PRE_INSTANCING_MATRIX { 8 }
Location of a pre-instance matrix.
const int ULOC_CUSTOM_BEGIN { 12 }
First location usable for custom uniform.
const int ULOC_CUSTOM_0 { ULOC_CUSTOM_BEGIN + 0 }
Location usable for custom uniform.
const int ULOC_CUSTOM_1 { ULOC_CUSTOM_BEGIN + 1 }
Location usable for custom uniform.
const int ULOC_CUSTOM_2 { ULOC_CUSTOM_BEGIN + 2 }
Location usable for custom uniform.
const int ULOC_CUSTOM_3 { ULOC_CUSTOM_BEGIN + 3 }
Location usable for custom uniform.
const int ULOC_CUSTOM_4 { ULOC_CUSTOM_BEGIN + 4 }
Location usable for custom uniform.
const int ULOC_CUSTOM_5 { ULOC_CUSTOM_BEGIN + 5 }
Location usable for custom uniform.
const int ULOC_CUSTOM_6 { ULOC_CUSTOM_BEGIN + 6 }
Location usable for custom uniform.
const int ULOC_CUSTOM_7 { ULOC_CUSTOM_BEGIN + 7 }
Location usable for custom uniform.
const int ULOC_CUSTOM_8 { ULOC_CUSTOM_BEGIN + 8 }
Location usable for custom uniform.
const int ULOC_CUSTOM_9 { ULOC_CUSTOM_BEGIN + 9 }
Location usable for custom uniform.
const int ULOC_CUSTOM_10 { ULOC_CUSTOM_BEGIN + 10 }
Location usable for custom uniform.
const int ULOC_CUSTOM_11 { ULOC_CUSTOM_BEGIN + 11 }
Location usable for custom uniform.
const int ULOC_CUSTOM_12 { ULOC_CUSTOM_BEGIN + 12 }
Location usable for custom uniform.
const int ULOC_CUSTOM_13 { ULOC_CUSTOM_BEGIN + 13 }
Location usable for custom uniform.
const int ULOC_CUSTOM_14 { ULOC_CUSTOM_BEGIN + 14 }
Location usable for custom uniform.
const int ULOC_CUSTOM_15 { ULOC_CUSTOM_BEGIN + 15 }
Location usable for custom uniform.
const int ULOC_CUSTOM_16 { ULOC_CUSTOM_BEGIN + 16 }
Location usable for custom uniform.
const int ULOC_CUSTOM_17 { ULOC_CUSTOM_BEGIN + 17 }
Location usable for custom uniform.
const int ULOC_CUSTOM_18 { ULOC_CUSTOM_BEGIN + 18 }
Location usable for custom uniform.
const int ULOC_CUSTOM_19 { ULOC_CUSTOM_BEGIN + 19 }
Location usable for custom uniform.
const int UBIND_INSTANCING_MATRICES { 0 }
Uniform binding location for instance matrices.
const int UBIND_VIEW_MATRICES { 1 }
Uniform binding location for camera view matrices.
const int UBIND_SCENE_DATA { 2 }
Uniform binding location for scene data structures.
const int UBIND_LIGHTS { 3 }
Uniform binding location for light structures.
const int UBIND_CUSTOM_0 { 4 }
Uniform binding location for custom data.
const int UBIND_CUSTOM_1 { 5 }
Uniform binding location for custom data.
const int UBIND_CUSTOM_2 { 6 }
Uniform binding location for custom data.
const int UBIND_CUSTOM_3 { 7 }
Uniform binding location for custom data.
const int UBIND_CUSTOM_4 { 8 }
Uniform binding location for custom data.
const int UBIND_CUSTOM_5 { 9 }
Uniform binding location for custom data.
const int UBIND_CUSTOM_6 { 10 }
Uniform binding location for custom data.
const int UBIND_CUSTOM_7 { 11 }
Uniform binding location for custom data.
const int UBIND_CUSTOM_8 { 12 }
Uniform binding location for custom data.
const int UBIND_CUSTOM_9 { 13 }
Uniform binding location for custom data.
Global Functions
void DrawFullscreen()
Invokes draw for fullscreen.vert shader.