Visualization Library 2.0.0
A lightweight C++ OpenGL middleware for 2D/3D graphics
|
[Download] [Tutorials] [All Classes] [Grouped Classes] |
Callback class to update the state of the projection
, view
, transform
and normal
matrices of a GLSLProgram or fixed function pipeline.
More...
#include <ProjViewTransfCallback.hpp>
Public Member Functions | |
ProjViewTransfCallback () | |
virtual void | updateMatrices (bool cam_changed, bool transf_changed, const GLSLProgram *glsl_program, const Camera *camera, const Transform *transform) |
Update matrices of the current GLSLProgram, if glsl_program == NULL then fixed function pipeline is active. More... | |
Public Member Functions inherited from vl::Object | |
Object () | |
Constructor. More... | |
Object (const Object &other) | |
Copy constructor: copies the name, ref count mutex and user data. More... | |
Object & | operator= (const Object &other) |
Copy operator: copies the object's name, ref count mutex and user data. More... | |
const std::string & | objectName () const |
The name of the object, by default set to the object's class name. More... | |
void | setObjectName (const char *name) |
The name of the object, by default set to the object's class name in debug builds. More... | |
void | setObjectName (const std::string &name) |
The name of the object, by default set to the object's class name in debug builds. More... | |
void | setRefCountMutex (IMutex *mutex) |
The mutex used to protect the reference counting of an Object across multiple threads. More... | |
IMutex * | refCountMutex () |
The mutex used to protect the reference counting of an Object across multiple threads. More... | |
const IMutex * | refCountMutex () const |
The mutex used to protect the reference counting of an Object across multiple threads. More... | |
int | referenceCount () const |
Returns the number of references of an object. More... | |
void | incReference () const |
Increments the reference count of an object. More... | |
void | decReference () |
Decrements the reference count of an object and deletes it if both automaticDelete() is true the count reaches 0. More... | |
void | setAutomaticDelete (bool autodel_on) |
If set to true the Object is deleted when its reference count reaches 0. More... | |
bool | automaticDelete () const |
If set to true the Object is deleted when its reference count reaches 0. More... | |
template<class T > | |
T * | as () |
Casts an Object to the specified class. More... | |
template<class T > | |
const T * | as () const |
Casts an Object to the specified class. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from vl::Object | |
virtual | ~Object () |
Protected Attributes inherited from vl::Object | |
std::string | mObjectName |
IMutex * | mRefCountMutex |
int | mReferenceCount |
bool | mAutomaticDelete |
Callback class to update the state of the projection
, view
, transform
and normal
matrices of a GLSLProgram or fixed function pipeline.
By default it updates the GL_PROJECTION and GL_MODELVIEW matrices. If GLSL is used and any of vl_ModelViewMatrix
, vl_ProjectionMatrix
, vl_ModelViewProjectionMatrix
or vl_NormalMatrix
is used, then no legacy uniform matrix is updated (GL_MODELVIEW, gl_ModelViewMatrix etc.) but only the vl_* ones. Reimplement the updateMatrices() method to update any other camera/transform matrix you might need such as the ones defined in http://www.opengl.org/registry/doc/GLSLangSpec.Full.1.10.59.pdf pag 45.
Definition at line 55 of file ProjViewTransfCallback.hpp.
|
inline |
Definition at line 60 of file ProjViewTransfCallback.hpp.
|
virtual |
Update matrices of the current GLSLProgram, if glsl_program == NULL then fixed function pipeline is active.
Definition at line 42 of file ProjViewTransfCallback.cpp.
References vl::Matrix4< T_Scalar >::get3x3(), vl::Matrix4< float >::getIdentity(), vl::Has_Fixed_Function_Pipeline, vl::Camera::projectionMatrix(), vl::Matrix3< T_Scalar >::ptr(), vl::Matrix4< T_Scalar >::ptr(), vl::Camera::viewMatrix(), VL_CHECK_OGL, vl::GLSLProgram::vl_ModelViewMatrix(), vl::GLSLProgram::vl_ModelViewProjectionMatrix(), vl::GLSLProgram::vl_NormalMatrix(), vl::GLSLProgram::vl_ProjectionMatrix(), vl::GLSLProgram::vl_WorldMatrix(), and vl::Transform::worldMatrix().
Referenced by vl::OcclusionCullRenderer::render_pass2(), and vl::Renderer::renderRaw().
Visualization Library 2.0.0 Reference Documentation
Updated on Wed Dec 23 2020 12:44:10.
© Copyright Michele Bosi. All rights reserved.