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.