#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 |
|
◆ anonymous enum
◆ Type
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 | |
◆ Uniform()
QtAV::Uniform::Uniform |
( |
Type |
tp = Float , |
|
|
int |
count = 1 |
|
) |
| |
◆ address()
template<typename T >
const T* QtAV::Uniform::address |
( |
| ) |
const |
|
inline |
◆ arraySize()
int QtAV::Uniform::arraySize |
( |
| ) |
const |
|
inline |
arraySize If uniform is an array, it's array size; otherwise 1
◆ isBool()
bool QtAV::Uniform::isBool |
( |
| ) |
const |
|
inline |
◆ isDouble()
bool QtAV::Uniform::isDouble |
( |
| ) |
const |
|
inline |
◆ isFloat()
bool QtAV::Uniform::isFloat |
( |
| ) |
const |
|
inline |
◆ isInt()
bool QtAV::Uniform::isInt |
( |
| ) |
const |
|
inline |
◆ isMat()
bool QtAV::Uniform::isMat |
( |
| ) |
const |
|
inline |
◆ isUInt()
bool QtAV::Uniform::isUInt |
( |
| ) |
const |
|
inline |
◆ isVec()
bool QtAV::Uniform::isVec |
( |
| ) |
const |
|
inline |
◆ operator==()
bool QtAV::Uniform::operator== |
( |
const Uniform & |
other | ) |
const |
|
inline |
◆ set() [1/7]
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 |
◆ set() [2/7]
void QtAV::Uniform::set |
( |
const unsigned & |
v, |
|
|
int |
count = 0 |
|
) |
| |
◆ set() [3/7]
void QtAV::Uniform::set |
( |
const int & |
v, |
|
|
int |
count = 0 |
|
) |
| |
◆ set() [4/7]
void QtAV::Uniform::set |
( |
const float * |
v, |
|
|
int |
count = 0 |
|
) |
| |
◆ set() [5/7]
void QtAV::Uniform::set |
( |
const unsigned * |
v, |
|
|
int |
count = 0 |
|
) |
| |
◆ set() [6/7]
void QtAV::Uniform::set |
( |
const int * |
v, |
|
|
int |
count = 0 |
|
) |
| |
◆ set() [7/7]
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 |
◆ setGL()
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
◆ setType()
Uniform& QtAV::Uniform::setType |
( |
Type |
tp, |
|
|
int |
count = 1 |
|
) |
| |
setType
- Parameters
-
count | array size, or 1 if not array |
◆ tupleSize()
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()
Type QtAV::Uniform::type |
( |
| ) |
const |
|
inline |
◆ value()
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
◆ dirty
bool QtAV::Uniform::dirty |
◆ location
int QtAV::Uniform::location |
◆ name
QByteArray QtAV::Uniform::name |
The documentation for this class was generated from the following file: