//!
//! Notice that some systems provide mechanisms to simultaneously incorporate with GL contexts with different capabilities.
//! For this reason OpenGl_Context should be initialized and used for each GL context independently.
+//!
+//! Matrices of OpenGl transformations:
+//! model -> world -> view -> projection
+//! These matrices might be changed for local transformation, transform persistent using direct access to
+//! current matrix of ModelWorldState, WorldViewState and ProjectionState
+//! After, these matrices should be applyed using ApplyModelWorldMatrix, ApplyWorldViewMatrix,
+//! ApplyModelViewMatrix or ApplyProjectionMatrix.
class OpenGl_Context : public Standard_Transient
{
DEFINE_STANDARD_RTTIEXT(OpenGl_Context, Standard_Transient)
//! Returns currently applied polygon offset parameters.
const Graphic3d_PolygonOffset& PolygonOffset() const { return myPolygonOffset; }
- //! Applies matrix stored in ModelWorldState to OpenGl.
+ //! Applies matrix into shader manager stored in ModelWorldState to OpenGl.
+ //! In "model -> world -> view -> projection" it performs:
+ //! model -> world
Standard_EXPORT void ApplyModelWorldMatrix();
//! Applies matrix stored in WorldViewState to OpenGl.
+ //! In "model -> world -> view -> projection" it performs:
+ //! model -> world -> view,
+ //! where model -> world is identical matrix
Standard_EXPORT void ApplyWorldViewMatrix();
//! Applies combination of matrices stored in ModelWorldState and WorldViewState to OpenGl.
+ //! In "model -> world -> view -> projection" it performs:
+ //! model -> world -> view
Standard_EXPORT void ApplyModelViewMatrix();
//! Applies matrix stored in ProjectionState to OpenGl.
+ //! In "model -> world -> view -> projection" it performs:
+ //! view -> projection
Standard_EXPORT void ApplyProjectionMatrix();
public:
//! Return Graphics Driver's vendor.
const TCollection_AsciiString& Vendor() const { return myVendor; }
+ //! Dumps the content of me into the stream
+ Standard_EXPORT void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const;
+
+ //! Dumps the content of openGL state into the stream
+ Standard_EXPORT static void DumpJsonOpenGlState (Standard_OStream& theOStream, Standard_Integer theDepth = -1);
+
private:
//! Wrapper to system function to retrieve GL function pointer by name.