15 #include <unordered_map>
32 DtGlUbo(
const std::string& name,
int size,
int binding);
44 virtual bool valid(
void)
const;
47 const std::string& name(
void)
const;
53 int bindingPoint(
void)
const;
73 DtGlProgram(
const std::string& name,
unsigned int programId);
92 virtual void unbind();
95 virtual bool isValid()
const;
98 virtual unsigned int id()
const;
101 virtual int uboSize(
const std::string& name)
const;
104 virtual int uboBinding(
const std::string& name)
const;
107 virtual int uniformOffset(
const std::string& uniformName)
const;
110 virtual int uniformLocation(
const std::string& uniformName)
const;
113 virtual const DtGlUbo* ubo(
const std::string& uboName)
const;
121 virtual void runComputeShader(
unsigned int workSizeX,
unsigned int workSizeY,
bool bind);
128 virtual void runComputeShader(
unsigned int workSizeX,
unsigned int workSizeY,
unsigned int workSizeZ,
bool bind);
134 virtual void runComputeShader(
const DtGlTexture* renderTexture,
bool bind);
138 static void printGLSLInfoLog(
unsigned int shader);
142 virtual void introspect(
void)
const;
145 virtual bool createProgram(
const std::string& name,
const VectorUnsignedInts& shaders);
std::unordered_map< std::string, DtGlUbo * > myMutableUbos
Definition: DtGlProgram.h:153
std::string myName
Definition: DtGlProgram.h:56
int myBinding
Definition: DtGlProgram.h:58
class to hold information about an UBO within a program
Definition: DtGlProgram.h:25
const bool myIsMultiview
Definition: DtGlProgram.h:157
voidpf void uLong size
Definition: ioapi.h:39
bool myMutableIntrospected
Definition: DtGlProgram.h:151
A convenience class to represent an OpenGL Shader Program.
Definition: DtGlProgram.h:65
std::vector< DtGlShader * > DtShaderVector
a list of shaders
Definition: DtGlProgram.h:62
binderNoArgs< _Fn > bind(const _Fn &_Func, const _Ty &_Left)
Definition: DtSTLUtilities.h:76
const bool myOwns
Definition: DtGlProgram.h:155
unsigned myProgramID
Definition: DtGlProgram.h:148
#define DT_DLL_VRVGRAPHICSUTILS
Definition: vrvGraphicsUtils.h:18
std::vector< unsigned int > VectorUnsignedInts
Definition: DtCommonTypes.h:19
A helper classes for creating a RTT target, optionally including depth buffer.
Definition: DtGlTexture.h:20
bool myIsValid
Definition: DtGlProgram.h:149
int mySize
Definition: DtGlProgram.h:57