typedef OpenGl_TmplCore44<OpenGl_GlCore43Back> OpenGl_GlCore44Back;
typedef OpenGl_TmplCore44<OpenGl_GlCore43> OpenGl_GlCore44;
+template<typename theBaseClass_t> struct OpenGl_TmplCore45;
+typedef OpenGl_TmplCore45<OpenGl_GlCore44Back> OpenGl_GlCore45Back;
+typedef OpenGl_TmplCore45<OpenGl_GlCore44> OpenGl_GlCore45;
+
class Graphic3d_PresentationAttributes;
class OpenGl_Aspects;
class OpenGl_FrameBuffer;
//! Pointer to function retrieved from library is statically casted
//! to requested type - there no way to check real signature of exported function.
//! The context should be bound before call.
+ //! @param theLastFailFuncName [out] set to theFuncName in case of failure, unmodified on success
+ //! @param theFuncName [in] function name to find
+ //! @param theFuncPtr [out] retrieved function pointer
+ //! @return TRUE on success
+ template <typename FuncType_t>
+ Standard_Boolean FindProcVerbose (const char*& theLastFailFuncName,
+ const char* theFuncName,
+ FuncType_t& theFuncPtr)
+ {
+ theFuncPtr = (FuncType_t )findProc (theFuncName);
+ if (theFuncPtr == NULL)
+ {
+ theLastFailFuncName = theFuncName;
+ return Standard_False;
+ }
+ return Standard_True;
+ }
+
+ //! Auxiliary template to retrieve GL function pointer.
+ //! Same as FindProcVerbose() but without auxiliary last function name argument.
template <typename FuncType_t>
Standard_Boolean FindProc (const char* theFuncName,
FuncType_t& theFuncPtr)
//! @return value for GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS
Standard_Integer MaxCombinedTextureUnits() const { return myMaxTexCombined; }
+ //! @return texture unit to be used for sprites
+ Graphic3d_TextureUnit SpriteTextureUnit() const { return mySpriteTexUnit; }
+
//! @return value for GL_MAX_SAMPLES
Standard_Integer MaxMsaaSamples() const { return myMaxMsaaSamples; }
//! Note that this will never happen when using GLX, since returned functions can not be validated.
//! @param theGlVerMajor the OpenGL major version with missing functions
//! @param theGlVerMinor the OpenGL minor version with missing functions
- Standard_EXPORT void checkWrongVersion (const Standard_Integer theGlVerMajor,
- const Standard_Integer theGlVerMinor);
+ //! @param theLastFailedProc function name which cannot be found
+ Standard_EXPORT void checkWrongVersion (Standard_Integer theGlVerMajor, Standard_Integer theGlVerMinor,
+ const char* theLastFailedProc);
//! Private initialization function that should be called only once.
Standard_EXPORT void init (const Standard_Boolean theIsCoreProfile);
OpenGl_GlCore43Back* core43back; //!< OpenGL 4.3 backward compatibility profile
OpenGl_GlCore44* core44; //!< OpenGL 4.4 core profile
OpenGl_GlCore44Back* core44back; //!< OpenGL 4.4 backward compatibility profile
+ OpenGl_GlCore45* core45; //!< OpenGL 4.5 core profile
+ OpenGl_GlCore45Back* core45back; //!< OpenGL 4.5 backward compatibility profile
Handle(OpenGl_Caps) caps; //!< context options
Standard_Boolean myIsStereoBuffers; //!< context supports stereo buffering
Standard_Boolean myIsGlNormalizeEnabled; //!< GL_NORMALIZE flag
//!< Used to tell OpenGl that normals should be normalized
+ Graphic3d_TextureUnit mySpriteTexUnit; //!< texture unit for point sprite texture
Standard_Boolean myHasRayTracing; //! indicates whether ray tracing mode is supported
Standard_Boolean myHasRayTracingTextures; //! indicates whether textures in ray tracing mode are supported