diff options
Diffstat (limited to 'intern/ghost/intern/GHOST_ContextWGL.h')
-rw-r--r-- | intern/ghost/intern/GHOST_ContextWGL.h | 205 |
1 files changed, 95 insertions, 110 deletions
diff --git a/intern/ghost/intern/GHOST_ContextWGL.h b/intern/ghost/intern/GHOST_ContextWGL.h index e96abbf5459..a3fd9de74a1 100644 --- a/intern/ghost/intern/GHOST_ContextWGL.h +++ b/intern/ghost/intern/GHOST_ContextWGL.h @@ -31,122 +31,107 @@ #include <GL/wglew.h> #ifndef GHOST_OPENGL_WGL_RESET_NOTIFICATION_STRATEGY -#define GHOST_OPENGL_WGL_RESET_NOTIFICATION_STRATEGY 0 +# define GHOST_OPENGL_WGL_RESET_NOTIFICATION_STRATEGY 0 #endif - -class GHOST_ContextWGL : public GHOST_Context -{ -public: - /** - * Constructor. - */ - GHOST_ContextWGL( - bool stereoVisual, - bool alphaBackground, - GHOST_TUns16 numOfAASamples, - HWND hWnd, - HDC hDC, - int contextProfileMask, - int contextMajorVersion, - int contextMinorVersion, - int contextFlags, - int contextResetNotificationStrategy); - - /** - * Destructor. - */ - ~GHOST_ContextWGL(); - - /** - * Swaps front and back buffers of a window. - * \return A boolean success indicator. - */ - GHOST_TSuccess swapBuffers(); - - /** - * Activates the drawing context of this window. - * \return A boolean success indicator. - */ - GHOST_TSuccess activateDrawingContext(); - - /** - * Release the drawing context of the calling thread. - * \return A boolean success indicator. - */ - GHOST_TSuccess releaseDrawingContext(); - - /** - * Call immediately after new to initialize. If this fails then immediately delete the object. - * \return Indication as to whether initialization has succeeded. - */ - GHOST_TSuccess initializeDrawingContext(); - - /** - * Removes references to native handles from this context and then returns - * \return GHOST_kSuccess if it is OK for the parent to release the handles and - * GHOST_kFailure if releasing the handles will interfere with sharing - */ - GHOST_TSuccess releaseNativeHandles(); - - /** - * Sets the swap interval for swapBuffers. - * \param interval The swap interval to use. - * \return A boolean success indicator. - */ - GHOST_TSuccess setSwapInterval(int interval); - - /** - * Gets the current swap interval for swapBuffers. - * \param intervalOut Variable to store the swap interval if it can be read. - * \return Whether the swap interval can be read. - */ - GHOST_TSuccess getSwapInterval(int &intervalOut); - -private: - int choose_pixel_format( - bool stereoVisual, - int numOfAASamples, - bool needAlpha, - bool needStencil, - bool sRGB); - - int choose_pixel_format_arb( - bool stereoVisual, - int numOfAASamples, - bool needAlpha, - bool needStencil, - bool sRGB); - - int _choose_pixel_format_arb_1( - bool stereoVisual, - int numOfAASamples, - bool needAlpha, - bool needStencil, - bool sRGB); - - void initContextWGLEW(PIXELFORMATDESCRIPTOR &preferredPFD); - - HWND m_hWnd; - HDC m_hDC; - - const int m_contextProfileMask; - const int m_contextMajorVersion; - const int m_contextMinorVersion; - const int m_contextFlags; - const bool m_alphaBackground; - const int m_contextResetNotificationStrategy; - - HGLRC m_hGLRC; +class GHOST_ContextWGL : public GHOST_Context { + public: + /** + * Constructor. + */ + GHOST_ContextWGL(bool stereoVisual, + bool alphaBackground, + GHOST_TUns16 numOfAASamples, + HWND hWnd, + HDC hDC, + int contextProfileMask, + int contextMajorVersion, + int contextMinorVersion, + int contextFlags, + int contextResetNotificationStrategy); + + /** + * Destructor. + */ + ~GHOST_ContextWGL(); + + /** + * Swaps front and back buffers of a window. + * \return A boolean success indicator. + */ + GHOST_TSuccess swapBuffers(); + + /** + * Activates the drawing context of this window. + * \return A boolean success indicator. + */ + GHOST_TSuccess activateDrawingContext(); + + /** + * Release the drawing context of the calling thread. + * \return A boolean success indicator. + */ + GHOST_TSuccess releaseDrawingContext(); + + /** + * Call immediately after new to initialize. If this fails then immediately delete the object. + * \return Indication as to whether initialization has succeeded. + */ + GHOST_TSuccess initializeDrawingContext(); + + /** + * Removes references to native handles from this context and then returns + * \return GHOST_kSuccess if it is OK for the parent to release the handles and + * GHOST_kFailure if releasing the handles will interfere with sharing + */ + GHOST_TSuccess releaseNativeHandles(); + + /** + * Sets the swap interval for swapBuffers. + * \param interval The swap interval to use. + * \return A boolean success indicator. + */ + GHOST_TSuccess setSwapInterval(int interval); + + /** + * Gets the current swap interval for swapBuffers. + * \param intervalOut Variable to store the swap interval if it can be read. + * \return Whether the swap interval can be read. + */ + GHOST_TSuccess getSwapInterval(int &intervalOut); + + private: + int choose_pixel_format( + bool stereoVisual, int numOfAASamples, bool needAlpha, bool needStencil, bool sRGB); + + int choose_pixel_format_arb( + bool stereoVisual, int numOfAASamples, bool needAlpha, bool needStencil, bool sRGB); + + int _choose_pixel_format_arb_1( + bool stereoVisual, int numOfAASamples, bool needAlpha, bool needStencil, bool sRGB); + + void initContextWGLEW(PIXELFORMATDESCRIPTOR &preferredPFD); + + HWND m_hWnd; + HDC m_hDC; + + const int m_contextProfileMask; + const int m_contextMajorVersion; + const int m_contextMinorVersion; + const int m_contextFlags; + const bool m_alphaBackground; + const int m_contextResetNotificationStrategy; + + HGLRC m_hGLRC; #ifndef NDEBUG - const char *m_dummyVendor; - const char *m_dummyRenderer; - const char *m_dummyVersion; + const char *m_dummyVendor; + const char *m_dummyRenderer; + const char *m_dummyVersion; #endif - static HGLRC s_sharedHGLRC; - static int s_sharedCount; + static HGLRC s_sharedHGLRC; + static int s_sharedCount; }; #endif // __GHOST_CONTEXTWGL_H__ |