Visualization Library v1.0.3A 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. |
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.
vl::ProjViewTransfCallback::ProjViewTransfCallback | ( | ) | [inline] |
Definition at line 60 of file ProjViewTransfCallback.hpp.
References VL_DEBUG_SET_OBJECT_NAME.
void ProjViewTransfCallback::updateMatrices | ( | bool | cam_changed, |
bool | transf_changed, | ||
const GLSLProgram * | glsl_program, | ||
const Camera * | camera, | ||
const Transform * | transform | ||
) | [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 >::as3x3(), vl::Has_Fixed_Function_Pipeline, vl::Matrix4< T_Scalar >::invert(), vl::Camera::projectionMatrix(), vl::Matrix4< T_Scalar >::ptr(), vl::Matrix4< T_Scalar >::transpose(), vl::Camera::viewMatrix(), VL_CHECK_OGL, VL_glLoadMatrix, vl::GLSLProgram::vl_ModelViewMatrix(), vl::GLSLProgram::vl_ModelViewProjectionMatrix(), vl::GLSLProgram::vl_NormalMatrix(), vl::GLSLProgram::vl_ProjectionMatrix(), and vl::Transform::worldMatrix().
Referenced by vl::Renderer::render(), and vl::OcclusionCullRenderer::render_pass2().