VTK
vtkWin32OpenGLRenderWindow.h
Go to the documentation of this file.
1/*=========================================================================
2
3Program: Visualization Toolkit
4Module: vtkWin32OpenGL2RenderWindow.h
5
6Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7All rights reserved.
8See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9
10This software is distributed WITHOUT ANY WARRANTY; without even
11the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12PURPOSE. See the above copyright notice for more information.
13
14=========================================================================*/
24#ifndef vtkWin32OpenGLRenderWindow_h
25#define vtkWin32OpenGLRenderWindow_h
26
27#include "vtkRenderingOpenGL2Module.h" // For export macro
28#include <stack> // for ivar
30
31#include "vtkWindows.h" // For windows API
32
33class vtkIdList;
34
35class VTKRENDERINGOPENGL2_EXPORT vtkWin32OpenGLRenderWindow : public vtkOpenGLRenderWindow
36{
37public:
40 void PrintSelf(ostream& os, vtkIndent indent);
41
45 virtual void Start(void);
46
50 void Frame(void);
51
55 virtual void WindowInitialize(void);
56
63 virtual void Initialize(void);
64
70 virtual void Finalize(void);
71
75 virtual void SetFullScreen(int);
76
80 virtual void WindowRemap(void);
81
85 virtual void PrefFullScreen(void);
86
88
91 virtual void SetSize(int,int);
92 virtual void SetSize(int a[2]) {vtkOpenGLRenderWindow::SetSize(a);};
94
98 virtual int *GetSize();
99
101
104 virtual void SetPosition(int,int);
107
111 virtual int *GetScreenSize();
112
116 virtual int *GetPosition();
117
122 virtual void SetWindowName(const char *);
123
127 void SetWindowInfo(char *);
128
132 void SetNextWindowInfo(char *);
133
137 void SetParentInfo(char *);
138
139 virtual void *GetGenericDisplayId() {return (void *)this->ContextId;};
140 virtual void *GetGenericWindowId() {return (void *)this->WindowId;};
141 virtual void *GetGenericParentId() {return (void *)this->ParentId;};
142 virtual void *GetGenericContext() {return (void *)this->DeviceContext;};
143 virtual void *GetGenericDrawable() {return (void *)this->WindowId;};
144 virtual void SetDisplayId(void *);
145
149 virtual HWND GetWindowId();
150
152
155 virtual void SetWindowId(HWND);
156 void SetWindowId(void *foo) {this->SetWindowId((HWND)foo);};
158
164
166
169 virtual void SetParentId(HWND);
170 void SetParentId(void *foo) {this->SetParentId((HWND)foo);};
172
173 void SetContextId(HGLRC); // hsr
174 void SetDeviceContext(HDC); // hsr
175
179 virtual void SetNextWindowId(HWND);
180
186 virtual void SetNextWindowId(void *arg);
187
194 virtual void SetStereoCapableWindow(int capable);
195
200
204 virtual bool IsCurrent();
205
209 const char *ReportCapabilities();
210
214 int IsDirect();
215
221 virtual int GetEventPending();
222
224
227 virtual void SetupPalette(HDC hDC);
229 HDC hDC, DWORD dwFlags, int debug,
230 int bpp=16, int zbpp=16);
232
236 void Clean();
237
239
247 void SetCursorPosition(int x, int y);
249
253 virtual void SetCurrentCursor(int);
254
255 virtual bool DetectDPI();
256
261 virtual void SetOffScreenRendering(int offscreen);
262
264
271 virtual void PushContext();
272 virtual void PopContext();
274
275protected:
278
279 HINSTANCE ApplicationInstance;
280 HPALETTE Palette;
281 HPALETTE OldPalette;
282 HGLRC ContextId;
283 HDC DeviceContext;
284 BOOL MFChandledWindow;
285 HWND WindowId;
286 HWND ParentId;
287 HWND NextWindowId;
288 int OwnWindow;
289 int ScreenSize[2];
290
291 std::stack<HGLRC> ContextStack;
292 std::stack<HDC> DCStack;
293
294 int CreatingOffScreenWindow; // to avoid recursion (and memory leaks...)
295
296 // message handler
297 virtual LRESULT MessageProc(HWND hWnd, UINT message,
298 WPARAM wParam, LPARAM lParam);
299
300 static LRESULT APIENTRY WndProc(HWND hWnd, UINT message,
301 WPARAM wParam, LPARAM lParam);
302 int CursorHidden;
303 int ForceMakeCurrent;
304
305 char *Capabilities;
306 int WindowIdReferenceCount;
307 void ResizeWhileOffscreen(int xsize, int ysize);
308 virtual void CreateAWindow();
309 virtual void DestroyWindow();
312 void CreateOffScreenWindow(int width,int height);
315
316private:
317 vtkWin32OpenGLRenderWindow(const vtkWin32OpenGLRenderWindow&) VTK_DELETE_FUNCTION;
318 void operator=(const vtkWin32OpenGLRenderWindow&) VTK_DELETE_FUNCTION;
319};
320
321
322#endif
list of point or cell ids
Definition: vtkIdList.h:37
a simple class to control print indentation
Definition: vtkIndent.h:40
OpenGL rendering window.
virtual void SetSize(int a[2])
Set the size of the window in screen coordinates in pixels.
void Clean()
Clean up device contexts, rendering contexts, etc.
virtual void SetWindowId(HWND)
Set the window id to a pre-existing window.
virtual void SetSize(int a[2])
Set the size of the window in screen coordinates in pixels.
virtual LRESULT MessageProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
virtual void Finalize(void)
Finalize the rendering window.
static LRESULT APIENTRY WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
virtual void PrefFullScreen(void)
Set the preferred window size to full screen.
virtual void SetNextWindowId(void *arg)
Set the window id of the new window once a WindowRemap is done.
void SetWindowInfo(char *)
Set this RenderWindow's window id to a pre-existing window.
const char * ReportCapabilities()
Get report of capabilities for the render window.
virtual void SetPosition(int, int)
Set the position of the window.
virtual void PushContext()
Ability to push and pop this window's context as the current context.
void HideCursor()
Hide or Show the mouse cursor, it is nice to be able to hide the default cursor if you want VTK to di...
virtual HWND GetWindowId()
Get the window id.
void SetCursorPosition(int x, int y)
virtual void SetFullScreen(int)
Change the window to fill the entire screen.
virtual int * GetScreenSize()
Get the current size of the screen in pixels.
virtual void WindowRemap(void)
Remap the window.
virtual void Initialize(void)
Initialize the rendering window.
static vtkWin32OpenGLRenderWindow * New()
virtual void DestroyWindow()
Destroy a not-off-screen window.
virtual void SetSize(int, int)
Set the size of the window in pixels.
void CreateOffScreenWindow(int width, int height)
virtual bool IsCurrent()
Tells if this window is the current OpenGL context for the calling thread.
virtual bool InitializeFromCurrentContext()
Initialize the render window from the information associated with the currently activated OpenGL cont...
int IsDirect()
Is this render window using hardware acceleration? 0-false, 1-true.
void Frame(void)
End the rendering process and display the image.
virtual int * GetPosition()
Get the position in screen coordinates of the window.
virtual void SetOffScreenRendering(int offscreen)
Override the default implementation so that we can actively switch between on and off screen renderin...
virtual void WindowInitialize(void)
Create the window.
virtual void SetParentId(HWND)
Set the window's parent id to a pre-existing window.
virtual int GetEventPending()
Check to see if a mouse button has been pressed or mouse wheel activated.
void MakeCurrent()
Make this windows OpenGL context the current context.
virtual bool DetectDPI()
Attempt to detect and set the DPI of the display device by querying the system.
void SetNextWindowInfo(char *)
Sets the WindowInfo that will be used after a WindowRemap.
virtual void SetupPixelFormatPaletteAndContext(HDC hDC, DWORD dwFlags, int debug, int bpp=16, int zbpp=16)
virtual void SetStereoCapableWindow(int capable)
Prescribe that the window be created in a stereo-capable mode.
virtual void CreateAWindow()
Create a not-off-screen window.
virtual void SetNextWindowId(HWND)
Set the window id of the new window once a WindowRemap is done.
virtual void SetWindowName(const char *)
Set the name of the window.
virtual int * GetSize()
Get the current size of the window in pixels.
virtual void SetDisplayId(void *)
Dummy stubs for vtkWindow API.
void ResizeWhileOffscreen(int xsize, int ysize)
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
virtual void SetCurrentCursor(int)
Change the shape of the cursor.
void SetParentInfo(char *)
Sets the HWND id of the window that WILL BE created.
void CleanUpOffScreenRendering(void)
virtual void Start(void)
Begin the rendering process.
virtual void SetupPalette(HDC hDC)
Initialize OpenGL for this window.
virtual void SetPosition(int, int)
@ height
Definition: vtkX3D.h:254