From 7e7c2f0b6f3e1d4631880063d4caaa5611112324 Mon Sep 17 00:00:00 2001 From: kgv Date: Wed, 8 Jan 2014 12:21:29 +0400 Subject: [PATCH] 0024497: TKOpenGl, OpenGl_Context - Add getter for window field --- src/OpenGl/OpenGl_Context.cxx | 4 ++-- src/OpenGl/OpenGl_Context.hxx | 30 ++++++++++++++++++++++++------ 2 files changed, 26 insertions(+), 8 deletions(-) diff --git a/src/OpenGl/OpenGl_Context.cxx b/src/OpenGl/OpenGl_Context.cxx index 181a3c28ed..0ee2026ad3 100644 --- a/src/OpenGl/OpenGl_Context.cxx +++ b/src/OpenGl/OpenGl_Context.cxx @@ -363,7 +363,7 @@ Standard_Boolean OpenGl_Context::CheckExtension (const char* theExtName) const const char* anExtString = (const char* )glGetString (GL_EXTENSIONS); if (anExtString == NULL) { - Messanger()->Send ("TKOpenGL: glGetString (GL_EXTENSIONS) has returned NULL! No GL context?", Message_Warning); + Messenger()->Send ("TKOpenGL: glGetString (GL_EXTENSIONS) has returned NULL! No GL context?", Message_Warning); return Standard_False; } return CheckExtension (anExtString, theExtName); @@ -636,7 +636,7 @@ void OpenGl_Context::PushMessage (const unsigned int theSource, aMsg += " | Message:\n "; aMsg += theMessage; - Messanger()->Send (aMsg, aGrav); + Messenger()->Send (aMsg, aGrav); } // ======================================================================= diff --git a/src/OpenGl/OpenGl_Context.hxx b/src/OpenGl/OpenGl_Context.hxx index 01036f1aac..fc4462941a 100644 --- a/src/OpenGl/OpenGl_Context.hxx +++ b/src/OpenGl/OpenGl_Context.hxx @@ -113,8 +113,8 @@ public: //! theShareCtx - handle to context to retrieve handles to shared resources. Standard_EXPORT void Share (const Handle(OpenGl_Context)& theShareCtx); - //! Initialize available extensions. - //! GL context should be active! + //! Initialize class from currently bound OpenGL context. Method should be called only once. + //! @return false if no GL context is bound to the current thread Standard_EXPORT Standard_Boolean Init(); //! @return true if this context is valid (has been initialized) @@ -124,15 +124,33 @@ public: } #if defined(_WIN32) + //! Initialize class from specified window and rendering context. Method should be called only once. + //! @return false if OpenGL context can not be bound to specified window Standard_EXPORT Standard_Boolean Init (const Aspect_Handle theWindow, const Aspect_Handle theWindowDC, const Aspect_RenderingContext theGContext); + + //! @return the window handle (HWND) currently bound to this OpenGL context + inline Aspect_Handle Window() const + { + return myWindow; + } + #elif defined(__APPLE__) && !defined(MACOSX_USE_GLX) + //! Initialize class from specified OpenGL context (NSOpenGLContext). Method should be called only once. Standard_EXPORT Standard_Boolean Init (const void* theGContext); #else + //! Initialize class from specified window and rendering context. Method should be called only once. + //! @return false if OpenGL context can not be bound to specified window Standard_EXPORT Standard_Boolean Init (const Aspect_Drawable theWindow, const Aspect_Display theDisplay, const Aspect_RenderingContext theGContext); + + //! @return the window handle (GLXDrawable) currently bound to this OpenGL context + inline Aspect_Drawable Window() const + { + return myWindow; + } #endif //! Check if theExtName extension is supported by active GL context. @@ -156,7 +174,7 @@ public: //! @return true if detected GL version is greater or equal to requested one. inline Standard_Boolean IsGlGreaterEqual (const Standard_Integer theVerMajor, - const Standard_Integer theVerMinor) + const Standard_Integer theVerMinor) const { return (myGlVerMajor > theVerMajor) || (myGlVerMajor == theVerMajor && myGlVerMinor >= theVerMinor); @@ -262,15 +280,15 @@ public: Standard_EXPORT Standard_Integer MaxTextureSize() const; //! Get maximum number of clip planes supported by OpenGl. - //! This value is implementation dependant. At least 6 + //! This value is implementation dependent. At least 6 //! planes should be supported by OpenGl (see specs). //! @return value for GL_MAX_CLIP_PLANES Standard_EXPORT Standard_Integer MaxClipPlanes() const; public: - //! @return messanger instance - inline const Handle_Message_Messenger& Messanger() const + //! @return messenger instance + inline const Handle_Message_Messenger& Messenger() const { return ::Message::DefaultMessenger(); } -- 2.20.1