64 #ifndef RE_ShaderHandle_h
65 #define RE_ShaderHandle_h
82 bool register_shader =
true,
83 const char *defines =
nullptr);
91 bool register_shader =
true,
92 const char *defines =
nullptr);
100 return myShader.get();
105 { myDefines.harden(defines); }
108 { myDefines +=
"\n"; myDefines += defines; }
123 return (myShader !=
nullptr);
139 void printErrors(std::ostream &os)
const;
143 const char *
getErrors()
const {
return myErrors.nonNullBuffer(); }
146 const char *getName()
const;
160 if(!theVendorDefines.isstring())
161 initializeDriverInformation(r);
162 return theVendorDefines;
166 static void initializeDriverInformation(
RE_Render *
r);
const char * getErrors() const
const char * getDefines() const
std::unique_ptr< T, Deleter > UT_UniquePtr
A smart pointer for unique ownership of dynamically allocated objects.
void appendProgramDefines(const char *defines)
Add more defines to the defines list.
bool isInitialized() const
void setProgramDefines(const char *defines)
Set the defines for the program, overwriting existing ones.
static const char * getSystemDefines(RE_Render *r)
Returns a list of #defines for platform, vendor, driver version.
const char * getSourceFiles() const
RE_Shader * getShader() const
int getCodeVersion() const
Returns the GLSL or Cg version that the shader was compiled with.
bool isValid(RE_Render *r)
Simple interface to building a shader from a .prog file.