10#include <glbinding/gl/types.h>
12#include <globjects/globjects_api.h>
22class AbstractStringSource;
23class StaticStringSource;
56 ShadingLanguageIncludeARB
65 static void globalReplace(
const std::string & search,
const std::string & replacement);
69 static std::unique_ptr<StaticStringSource>
sourceFromString(
const std::string & sourceString);
92 gl::GLint
get(gl::GLenum pname)
const;
Superclass for all types of static and dynamic strings, e.g. for the use as Shader code.
Definition AbstractStringSource.h:27
CRTP for creating objects similar to std::make_unique.
Definition Instantiator.h:22
Superclass of all wrapped OpenGL objects.
Definition Object.h:28
Wraps an OpenGL program.
Definition Program.h:82
Encapsulates OpenGL shaders.
Definition Shader.h:44
bool m_compiled
Definition Shader.h:126
static std::string typeString(gl::GLenum type)
const AbstractStringSource * source() const
std::string getSource() const
static void clearGlobalReplacements()
void setSource(AbstractStringSource *source)
std::string typeString() const
bool checkCompileStatus() const
static std::unique_ptr< StaticStringSource > sourceFromString(const std::string &sourceString)
virtual gl::GLenum objectType() const override
IncludePaths m_includePaths
Definition Shader.h:123
bool m_compilationFailed
Definition Shader.h:127
AbstractStringSource * m_source
Definition Shader.h:122
static std::map< std::string, std::string > s_globalReplacements
Definition Shader.h:129
static void globalReplace(const std::string &search, int i)
static std::unique_ptr< AbstractStringSource > applyGlobalReplacements(AbstractStringSource *source)
static std::unique_ptr< File > sourceFromFile(const std::string &filename)
std::set< Program * > m_programs
Definition Shader.h:124
static void globalReplace(const std::string &search, const std::string &replacement)
Shader(const gl::GLenum type)
void deregisterListener(Program *listener)
void registerListener(Program *listener)
const IncludePaths & includePaths() const
std::string infoLog() const
static void hintIncludeImplementation(IncludeImplementation impl)
gl::GLint get(gl::GLenum pname) const
gl::GLenum m_type
Definition Shader.h:121
virtual void notifyChanged(const AbstractStringSource *changeable)
void addSubject(AbstractStringSource *subject)
virtual void removeSubject(AbstractStringSource *subject)
std::vector< std::string > IncludePaths
Definition Shader.h:49
std::string shaderString() const
Shader(const gl::GLenum type, AbstractStringSource *source, const IncludePaths &includePaths=IncludePaths())
void setIncludePaths(const IncludePaths &includePaths)
IncludeImplementation
Definition Shader.h:54
std::set< AbstractStringSource * > m_sourceSubjects
Definition Shader.h:120
std::set< Program * > m_programListeners
Definition Shader.h:119
Contains all the classes that wrap OpenGL functionality.