19 #ifndef OSGVIEWER_GRAPHICSWINDOWWIN32
20 #define OSGVIEWER_GRAPHICSWINDOWWIN32 1
22 #include <osgViewer/GraphicsWindow>
23 #include <osgViewer/api/Win32/GraphicsHandleWin32>
37 virtual const char*
libraryName()
const {
return "osgViewer"; }
38 virtual const char*
className()
const {
return "GraphicsWindowWin32"; }
40 virtual bool valid()
const {
return _valid; }
43 virtual bool realizeImplementation();
49 virtual void closeImplementation();
52 virtual bool makeCurrentImplementation();
55 virtual bool releaseContextImplementation();
58 virtual void swapBuffersImplementation();
61 virtual bool checkEvents();
64 virtual bool setWindowRectangleImplementation(
int x,
int y,
int width,
int height);
67 virtual bool setWindowDecorationImplementation(
bool flag);
70 virtual void grabFocus();
73 virtual void grabFocusIfPointerInWindow();
76 virtual void requestWarpPointer(
float x,
float y);
79 virtual void raiseWindow();
82 virtual void setWindowName(
const std::string& );
85 virtual void useCursor(
bool );
88 virtual void setCursor(MouseCursor cursor);
91 virtual void setSyncToVBlank(
bool on);
94 virtual void setSwapGroup(
bool on, GLuint group, GLuint barrier);
97 virtual LRESULT handleNativeWindowingEvent( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam );
103 _hwnd(window), _installEventHandler(installEventHandler) {}
113 virtual void registerWindow();
114 virtual void unregisterWindow();
116 virtual bool registerWindowProcedure();
117 virtual bool unregisterWindowProcedure();
119 virtual HGLRC createContextImplementation();
120 virtual bool createWindow();
121 virtual bool setWindow( HWND handle );
123 virtual void destroyWindow(
bool deleteNativeWindow =
true );
125 virtual bool determineWindowPositionAndStyle(
unsigned int screenNum,
128 unsigned int clientAreaWidth,
129 unsigned int clientAreaHeight,
136 unsigned int& extendedStyle );
138 virtual bool setPixelFormat();
140 virtual void adaptKey( WPARAM wParam, LPARAM lParam,
int& keySymbol,
unsigned int& modifierMask,
int& unmodifiedKeySymbol );
142 virtual void transformMouseXY(
float& x,
float& y);
146 virtual HCURSOR getOrCreateCursor(
MouseCursor mouseShape);
MouseCursor _appMouseCursor
Persist which mouse cursor was used before switching to the resize cursors.
virtual const char * className() const
unsigned int _windowWidthToRealize
virtual bool isSameKindAs(const Object *object) const
bool _applyWorkaroundForMultimonitorMultithreadNVidiaWin32Issues
bool _installEventHandler
unsigned int _screenHeight
GLint GLenum GLsizei width
std::set< int > _capturedMouseButtons
std::map< MouseCursor, HCURSOR > _mouseCursorMap
int _windowOriginYToRealize
std::map< std::pair< int, int >, bool > _keyMap
GLint GLenum GLsizei GLsizei height
int _windowOriginXToRealize
unsigned int _windowHeightToRealize
WindowData(HWND window, bool installEventHandler=true)
double _timeOfLastCheckEvents
virtual const char * libraryName() const
virtual bool isRealizedImplementation() const
virtual bool valid() const
unsigned int _screenWidth