#include <OpenGLTypes.h>
|
enum | { V = 16,
Vec = 1<<V,
M = 20,
Mat = 1<<M
} |
|
enum | Type {
Unknown = 0,
Bool = 1<<0,
Int = 1<<1,
UInt = 1<<2,
Float = 1<<3,
Double = 1<<4,
Sampler = 1<<5,
BVec2 = Bool|Vec|(2<<(V+1)),
BVec3 = Bool|Vec|(3<<(V+1)),
BVec4 = Bool|Vec|(4<<(V+1)),
IVec2 = Int|Vec|(2<<(V+1)),
IVec3 = Int|Vec|(3<<(V+1)),
IVec4 = Int|Vec|(4<<(V+1)),
UVec2 = UInt|Vec|(2<<(V+1)),
UVec3 = UInt|Vec|(3<<(V+1)),
UVec4 = UInt|Vec|(4<<(V+1)),
Vec2 = Float|Vec|(2<<(V+1)),
Vec3 = Float|Vec|(3<<(V+1)),
Vec4 = Float|Vec|(4<<(V+1)),
Mat2 = Float|Mat|(2<<(M+1)),
Mat3 = Float|Mat|(3<<(M+1)),
Mat4 = Float|Mat|(4<<(M+1)),
DMat2 = Double|Mat|(2<<(M+1)),
DMat3 = Double|Mat|(3<<(M+1)),
DMat4 = Double|Mat|(4<<(M+1))
} |
|
|
bool | isBool () const |
|
bool | isInt () const |
|
bool | isUInt () const |
|
bool | isFloat () const |
|
bool | isDouble () const |
|
bool | isVec () const |
|
bool | isMat () const |
|
Uniform & | setType (Type tp, int count=1) |
| setType More...
|
|
| Uniform (Type tp=Float, int count=1) |
|
void | set (const float &v, int count=0) |
| set Set uniform value in host memory. More...
|
|
void | set (const unsigned &v, int count=0) |
|
void | set (const int &v, int count=0) |
|
void | set (const float *v, int count=0) |
|
void | set (const unsigned *v, int count=0) |
|
void | set (const int *v, int count=0) |
|
void | set (const QVariant &v) |
| set More...
|
|
bool | setGL () |
| setGL Call glUniformXXX to update uniform values that set by set(const T&, int) and mark dirty false. More...
|
|
bool | operator== (const Uniform &other) const |
|
Type | type () const |
|
int | tupleSize () const |
| tupleSize 2, 3, 4 for vec2, vec3 and vec4; 2^2, 3^2 and 4^2 for mat2, mat3 and mat4 More...
|
|
int | arraySize () const |
| arraySize If uniform is an array, it's array size; otherwise 1 More...
|
|
template<typename T > |
QVector< T > | value () const |
| Return an array of given type. More...
|
|
template<typename T > |
const T * | address () const |
|
Enumerator |
---|
Unknown |
|
Bool |
|
Int |
|
UInt |
|
Float |
|
Double |
|
Sampler |
|
BVec2 |
|
BVec3 |
|
BVec4 |
|
IVec2 |
|
IVec3 |
|
IVec4 |
|
UVec2 |
|
UVec3 |
|
UVec4 |
|
Vec2 |
|
Vec3 |
|
Vec4 |
|
Mat2 |
|
Mat3 |
|
Mat4 |
|
DMat2 |
|
DMat3 |
|
DMat4 |
|
QtAV::Uniform::Uniform |
( |
Type |
tp = Float , |
|
|
int |
count = 1 |
|
) |
| |
template<typename T >
const T* QtAV::Uniform::address |
( |
| ) |
const |
|
inline |
int QtAV::Uniform::arraySize |
( |
| ) |
const |
|
inline |
arraySize If uniform is an array, it's array size; otherwise 1
bool QtAV::Uniform::isBool |
( |
| ) |
const |
|
inline |
bool QtAV::Uniform::isDouble |
( |
| ) |
const |
|
inline |
bool QtAV::Uniform::isFloat |
( |
| ) |
const |
|
inline |
bool QtAV::Uniform::isInt |
( |
| ) |
const |
|
inline |
bool QtAV::Uniform::isMat |
( |
| ) |
const |
|
inline |
bool QtAV::Uniform::isUInt |
( |
| ) |
const |
|
inline |
bool QtAV::Uniform::isVec |
( |
| ) |
const |
|
inline |
bool QtAV::Uniform::operator== |
( |
const Uniform & |
other | ) |
const |
|
inline |
void QtAV::Uniform::set |
( |
const float & |
v, |
|
|
int |
count = 0 |
|
) |
| |
set Set uniform value in host memory.
This will mark dirty if value is changed
- Parameters
-
v | the value |
count | number of element T to set. 0: depending on type and array size, the number is arrySize()*tupleSize(); TODO: Sampler |
void QtAV::Uniform::set |
( |
const unsigned & |
v, |
|
|
int |
count = 0 |
|
) |
| |
void QtAV::Uniform::set |
( |
const int & |
v, |
|
|
int |
count = 0 |
|
) |
| |
void QtAV::Uniform::set |
( |
const float * |
v, |
|
|
int |
count = 0 |
|
) |
| |
void QtAV::Uniform::set |
( |
const unsigned * |
v, |
|
|
int |
count = 0 |
|
) |
| |
void QtAV::Uniform::set |
( |
const int * |
v, |
|
|
int |
count = 0 |
|
) |
| |
void QtAV::Uniform::set |
( |
const QVariant & |
v | ) |
|
set
- Parameters
-
v | the type T is limited to OpenGL basic types float, int, unsigned(ES3.0) and QVector<T> TODO: Qt types |
bool QtAV::Uniform::setGL |
( |
| ) |
|
setGL Call glUniformXXX to update uniform values that set by set(const T&, int) and mark dirty false.
Currently only use OpenGL ES2 supported functions, i.e. uint, double types are not supported.
- Returns
- false if location is invalid, or if uniform type is not supported by QOpenGLFunctions TODO: Sampler
Uniform& QtAV::Uniform::setType |
( |
Type |
tp, |
|
|
int |
count = 1 |
|
) |
| |
setType
- Parameters
-
count | array size, or 1 if not array |
int QtAV::Uniform::tupleSize |
( |
| ) |
const |
|
inline |
tupleSize 2, 3, 4 for vec2, vec3 and vec4; 2^2, 3^2 and 4^2 for mat2, mat3 and mat4
Type QtAV::Uniform::type |
( |
| ) |
const |
|
inline |
template<typename T >
QVector<T> QtAV::Uniform::value |
( |
| ) |
const |
|
inline |
Return an array of given type.
the type T must match type(), for example T is float for Float, VecN, MatN and array of them
bool QtAV::Uniform::dirty |
int QtAV::Uniform::location |
QByteArray QtAV::Uniform::name |
The documentation for this class was generated from the following file: