Program Listing for File bindings.hpp

Return to documentation for file (Resources/Shaders/hostDevice/bindings.hpp)

#pragma once
#include "GlobalValues.hpp"
#include "host_device_shared.hpp"

// define all texture unit offsets to all textures
#define MODEL_TEXTURES_SLOT 0
#define SKYBOX_TEXTURES_SLOT MODEL_TEXTURES_SLOT + MAX_TEXTURE_COUNT
#define GBUFFER_TEXTURES_SLOT \
  SKYBOX_TEXTURES_SLOT + 1  // we have 1 skybox 3D texture
#define D_LIGHT_SHADOW_TEXTURES_SLOT GBUFFER_TEXTURES_SLOT + G_BUFFER_SIZE
// for the CSM now using 1 sampler array layer --> only one texture unit needed
#define P_LIGHT_SHADOW_TEXTURES_SLOT D_LIGHT_SHADOW_TEXTURES_SLOT + 1
#define NOISE_128D_TEXTURES_SLOT P_LIGHT_SHADOW_TEXTURES_SLOT + MAX_POINT_LIGHTS
#define NOISE_32D_TEXTURES_SLOT NOISE_128D_TEXTURES_SLOT + 1
#define NOISE_CELL_POSITIONS_SLOT NOISE_32D_TEXTURES_SLOT + 1
#define RANDOM_NUMBERS_SLOT NOISE_CELL_POSITIONS_SLOT + NUM_CELL_POSITIONS

// all image slots
#define NOISE_128D_IMAGE_SLOT 0
#define NOISE_32D_IMAGE_SLOT 1

// storage buffer bindings
#define STORAGE_BUFFER_MATERIAL_ID_BINDING 0
#define UNIFORM_LIGHT_MATRICES_BINDING 1