#ifndef _OpenGl_Window_Header
#define _OpenGl_Window_Header
+#include <Aspect_RenderingContext.hxx>
+#include <Aspect_Window.hxx>
#include <OpenGl_GlCore11.hxx>
-#include <InterfaceGraphic_Aspect.hxx>
#include <OpenGl_Caps.hxx>
-
-#include <Handle_OpenGl_Context.hxx>
-#include <Handle_OpenGl_Window.hxx>
-#include <Handle_OpenGl_GraphicDriver.hxx>
-
-#include <MMgt_TShared.hxx>
+#include <Standard_Transient.hxx>
#if defined(__APPLE__)
#import <TargetConditionals.h>
#endif
#endif
+class OpenGl_Context;
+class OpenGl_GraphicDriver;
+
+class OpenGl_Window;
+DEFINE_STANDARD_HANDLE(OpenGl_Window,Standard_Transient)
+
//! This class represents low-level wrapper over window with GL context.
//! The window itself should be provided to constructor.
-class OpenGl_Window : public MMgt_TShared
+class OpenGl_Window : public Standard_Transient
{
public:
//! Main constructor - prepare GL context for specified window.
- OpenGl_Window (const Handle(OpenGl_GraphicDriver)& theDriver,
- const CALL_DEF_WINDOW& theCWindow,
- Aspect_RenderingContext theGContext,
- const Handle(OpenGl_Caps)& theCaps,
- const Handle(OpenGl_Context)& theShareCtx);
+ Standard_EXPORT OpenGl_Window (const Handle(OpenGl_GraphicDriver)& theDriver,
+ const Handle(Aspect_Window)& thePlatformWindow,
+ Aspect_RenderingContext theGContext,
+ const Handle(OpenGl_Caps)& theCaps,
+ const Handle(OpenGl_Context)& theShareCtx);
//! Destructor
- virtual ~OpenGl_Window();
+ Standard_EXPORT virtual ~OpenGl_Window();
//! Resizes the window.
- void Resize (const CALL_DEF_WINDOW& theCWindow);
+ Standard_EXPORT virtual void Resize();
- //! Reads depth component for current scene into specified buffer.
- void ReadDepths (const Standard_Integer theX, const Standard_Integer theY,
- const Standard_Integer theWidth, const Standard_Integer theHeight,
- float* theDepths);
-
- void SetBackgroundColor (const Standard_ShortReal theR,
- const Standard_ShortReal theG,
- const Standard_ShortReal theB);
+ Handle(Aspect_Window) PlatformWindow() { return myPlatformWindow; }
Standard_Integer Width() const { return myWidth; }
Standard_Integer Height() const { return myHeight; }
- const TEL_COLOUR& BackgroundColor() const { return myBgColor; }
const Handle(OpenGl_Context)& GetGlContext() const { return myGlContext; }
-protected:
-
//! Activates GL context and setup viewport.
- void Init();
+ Standard_EXPORT void Init();
//! Makes GL context for this window active in current thread
- virtual Standard_Boolean Activate();
+ Standard_EXPORT virtual Standard_Boolean Activate();
- void EnableFeatures() const;
- void DisableFeatures() const;
+ //! Sets swap interval for this window according to the context's settings.
+ Standard_EXPORT void SetSwapInterval();
protected:
Handle(OpenGl_Context) myGlContext;
Standard_Boolean myOwnGContext; //!< set to TRUE if GL context was not created by this class
+ Handle(Aspect_Window) myPlatformWindow; //!< software platform window wrapper
#if defined(__APPLE__)
#if defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE
UIView* myUIView;
#endif
Standard_Integer myWidth; //!< window width in pixels
Standard_Integer myHeight; //!< window height in pixels
- TEL_COLOUR myBgColor; //!< background color
Standard_Integer mySwapInterval;//!< last assigned swap interval (VSync) for this window
public:
- DEFINE_STANDARD_RTTI(OpenGl_Window, MMgt_TShared) // Type definition
+ DEFINE_STANDARD_RTTIEXT(OpenGl_Window,Standard_Transient) // Type definition
DEFINE_STANDARD_ALLOC
};