16 #include <unordered_map>
33 DtGlUbo(
const std::string& name,
int size,
int binding);
45 virtual bool valid(
void)
const;
48 const std::string& name(
void)
const;
54 int bindingPoint(
void)
const;
74 DtGlProgram(
const std::string& name,
unsigned int programId);
77 DtGlProgram(
const std::string& name,
const std::string& programBinary,
bool multiview);
96 virtual void unbind();
99 virtual bool isValid()
const;
102 virtual unsigned int id()
const;
105 virtual int uboSize(
const std::string& name)
const;
108 virtual int uboBinding(
const std::string& name)
const;
111 virtual int ssboBinding(
const std::string& name)
const;
114 virtual int bufferBinding(
const std::string& name,
bool ubo)
const;
117 virtual int uniformOffset(
const std::string& uniformName)
const;
120 virtual int uniformLocation(
const std::string& uniformName)
const;
123 virtual const DtGlUbo* ubo(
const std::string& uboName)
const;
126 virtual bool saveProgramBinary(
const std::string& fileNameFullPath)
const;
129 virtual unsigned int releaseHandle(
void);
136 virtual void runComputeShader(
unsigned int workSizeX,
unsigned int workSizeY,
bool bind);
143 virtual void runComputeShader(
unsigned int workSizeX,
unsigned int workSizeY,
unsigned int workSizeZ,
bool bind);
149 virtual void runComputeShader(
const DtGlTexture* renderTexture,
bool bind);
153 static void printGLSLInfoLog(
unsigned int shader);
157 virtual void introspect(
void)
const;
160 virtual bool createProgram(
const std::string& name,
const VectorUnsignedInts& shaders);
std::unordered_map< std::string, DtGlUbo * > myMutableUbos
Definition: DtGlProgram.h:168
std::string myName
Definition: DtGlProgram.h:57
int myBinding
Definition: DtGlProgram.h:59
class to hold information about an UBO within a program
Definition: DtGlProgram.h:26
const bool myIsMultiview
Definition: DtGlProgram.h:172
voidpf void uLong size
Definition: ioapi.h:39
bool myMutableIntrospected
Definition: DtGlProgram.h:166
A convenience class to represent an OpenGL Shader Program.
Definition: DtGlProgram.h:66
std::vector< DtGlShader * > DtShaderVector
a list of shaders
Definition: DtGlProgram.h:63
const bool myOwns
Definition: DtGlProgram.h:170
unsigned myProgramID
Definition: DtGlProgram.h:163
#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:164
int mySize
Definition: DtGlProgram.h:58