Beatmup
|
Basic GLSL program. More...
#include <program.h>
Public Member Functions | |
AbstractProgram (const GraphicPipeline &gpu) | |
~AbstractProgram () | |
void | enable (const GraphicPipeline &gpu) |
Chunk * | getBinary () const |
void | loadBinary (const Chunk &binary) |
handle_t | findUniformLocation (const char *name) |
Retrieves uniform variable location by its name. More... | |
handle_t | findAttribLocation (const char *name) |
Retrieves attribute location by its name. More... | |
handle_t | getUniformLocation (const std::string &name) |
Retrieves uniform variable location by its name. More... | |
handle_t | getAttribLocation (const std::string &name) |
Retrieves attribute location by its name. More... | |
void | setInteger (const std::string &name, const int value, bool safe=false) |
Assigns a value to a specific integer variable in the program. More... | |
void | setUnsignedInteger (const std::string &name, const unsigned int value, bool safe=false) |
void | setFloat (const std::string &name, const float value, bool safe=false) |
Assigns a value to a specific floating point variable in the program. More... | |
void | setVector2 (const std::string &name, const float x, const float y) |
void | setVector3 (const std::string &name, const float x, const float y, const float z) |
void | setVector4 (const std::string &name, const float x, const float y, const float z, const float w) |
void | setVector4 (const std::string &name, const color4i &color, const float outRange=1.0f) |
void | setMatrix2 (const std::string &name, const Matrix2 &mat) |
void | setMatrix3 (const std::string &name, const Matrix2 &mat, const Point &pos) |
void | setMatrix3 (const std::string &name, const AffineMapping &mapping) |
void | setIntegerArray (const std::string &name, const int *values, const int length) |
void | setIntegerArray (const std::string &name, const int firstValue, const int length) |
void | setFloatArray (const std::string &name, const float *values, const int length) |
void | setVec2Array (const std::string &name, const float *xy, const int length) |
void | setVec4Array (const std::string &name, const float *xyzw, const int length) |
void | bindSampler (GraphicPipeline &gpu, GL::TextureHandler &image, const char *uniformId, TextureParam param) |
void | bindImage (GraphicPipeline &gpu, GL::TextureHandler &image, const char *uniformId, bool read, bool write) |
void | bindAtomicCounter (GraphicPipeline &gpu, AtomicCounter &counter, int unit) |
Public Member Functions inherited from Beatmup::GL::RecycleBin::Item | |
Item () | |
virtual | ~Item () |
Protected Member Functions | |
handle_t | getHandle () const |
void | assertLinked () const |
void | clearCaches () |
Private Member Functions | |
AbstractProgram (const AbstractProgram &)=delete | |
disabling copying constructor More... | |
Private Attributes | |
std::map< std::string, handle_t > | uniformsCache |
std::map< std::string, handle_t > | attribsCache |
handle_t | handle |
|
privatedelete |
disabling copying constructor
AbstractProgram::AbstractProgram | ( | const GraphicPipeline & | gpu | ) |
Definition at line 216 of file program.cpp.
AbstractProgram::~AbstractProgram | ( | ) |
Definition at line 221 of file program.cpp.
|
inlineprotected |
|
protected |
Definition at line 226 of file program.cpp.
|
protected |
Definition at line 244 of file program.cpp.
void AbstractProgram::enable | ( | const GraphicPipeline & | gpu | ) |
Definition at line 250 of file program.cpp.
Chunk * AbstractProgram::getBinary | ( | ) | const |
Definition at line 257 of file program.cpp.
void AbstractProgram::loadBinary | ( | const Chunk & | binary | ) |
GL::handle_t AbstractProgram::findUniformLocation | ( | const char * | name | ) |
Retrieves uniform variable location by its name.
May be slow.
[in] | name | The variable name |
Definition at line 278 of file program.cpp.
GL::handle_t AbstractProgram::findAttribLocation | ( | const char * | name | ) |
Retrieves attribute location by its name.
May be slow.
[in] | name | The attribute name |
Definition at line 283 of file program.cpp.
GL::handle_t AbstractProgram::getUniformLocation | ( | const std::string & | name | ) |
Retrieves uniform variable location by its name.
Uses chache. Faster when called more than once.
[in] | name | The variable name |
Definition at line 288 of file program.cpp.
GL::handle_t AbstractProgram::getAttribLocation | ( | const std::string & | name | ) |
Retrieves attribute location by its name.
Uses chache. Faster when called more than once.
[in] | name | The attribute name |
Definition at line 298 of file program.cpp.
void AbstractProgram::setInteger | ( | const std::string & | name, |
const int | value, | ||
bool | safe = false |
||
) |
Assigns a value to a specific integer variable in the program.
name | the variable name |
value | the value to assign |
safe | if true check if the target variable exists before assigning |
Definition at line 308 of file program.cpp.
void AbstractProgram::setUnsignedInteger | ( | const std::string & | name, |
const unsigned int | value, | ||
bool | safe = false |
||
) |
Definition at line 323 of file program.cpp.
void AbstractProgram::setFloat | ( | const std::string & | name, |
const float | value, | ||
bool | safe = false |
||
) |
Assigns a value to a specific floating point variable in the program.
name | the variable name |
value | the value to assign |
safe | if true check if the target variable exists before assigning |
Definition at line 347 of file program.cpp.
void AbstractProgram::setVector2 | ( | const std::string & | name, |
const float | x, | ||
const float | y | ||
) |
Definition at line 362 of file program.cpp.
void AbstractProgram::setVector3 | ( | const std::string & | name, |
const float | x, | ||
const float | y, | ||
const float | z | ||
) |
Definition at line 370 of file program.cpp.
void AbstractProgram::setVector4 | ( | const std::string & | name, |
const float | x, | ||
const float | y, | ||
const float | z, | ||
const float | w | ||
) |
Definition at line 378 of file program.cpp.
void AbstractProgram::setVector4 | ( | const std::string & | name, |
const color4i & | color, | ||
const float | outRange = 1.0f |
||
) |
Definition at line 386 of file program.cpp.
void AbstractProgram::setMatrix2 | ( | const std::string & | name, |
const Matrix2 & | mat | ||
) |
Definition at line 392 of file program.cpp.
void AbstractProgram::setMatrix3 | ( | const std::string & | name, |
const Matrix2 & | mat, | ||
const Point & | pos | ||
) |
Definition at line 402 of file program.cpp.
void AbstractProgram::setMatrix3 | ( | const std::string & | name, |
const AffineMapping & | mapping | ||
) |
Definition at line 412 of file program.cpp.
void AbstractProgram::setIntegerArray | ( | const std::string & | name, |
const int * | values, | ||
const int | length | ||
) |
Definition at line 417 of file program.cpp.
void AbstractProgram::setIntegerArray | ( | const std::string & | name, |
const int | firstValue, | ||
const int | length | ||
) |
Definition at line 434 of file program.cpp.
void AbstractProgram::setFloatArray | ( | const std::string & | name, |
const float * | values, | ||
const int | length | ||
) |
Definition at line 450 of file program.cpp.
void AbstractProgram::setVec2Array | ( | const std::string & | name, |
const float * | xy, | ||
const int | length | ||
) |
Definition at line 458 of file program.cpp.
void AbstractProgram::setVec4Array | ( | const std::string & | name, |
const float * | xyzw, | ||
const int | length | ||
) |
Definition at line 466 of file program.cpp.
void AbstractProgram::bindSampler | ( | GraphicPipeline & | gpu, |
GL::TextureHandler & | image, | ||
const char * | uniformId, | ||
TextureParam | param | ||
) |
Definition at line 474 of file program.cpp.
void AbstractProgram::bindImage | ( | GraphicPipeline & | gpu, |
GL::TextureHandler & | image, | ||
const char * | uniformId, | ||
bool | read, | ||
bool | write | ||
) |
Definition at line 483 of file program.cpp.
void AbstractProgram::bindAtomicCounter | ( | GraphicPipeline & | gpu, |
AtomicCounter & | counter, | ||
int | unit | ||
) |
Definition at line 493 of file program.cpp.
|
private |
|
private |