VTK
vtkWin32OpenGLRenderWindow.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkWin32OpenGLRenderWindow.h
5
6 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7 All rights reserved.
8 See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9
10 This software is distributed WITHOUT ANY WARRANTY; without even
11 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12 PURPOSE. See the above copyright notice for more information.
13
14=========================================================================*/
27#ifndef vtkWin32OpenGLRenderWindow_h
28#define vtkWin32OpenGLRenderWindow_h
29
30#include "vtkRenderingOpenGLModule.h" // For export macro
32
33class vtkIdList;
34
35class VTKRENDERINGOPENGL_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
90 virtual void SetSize(int width, int height);
91 virtual void SetSize(int a[2]) { vtkOpenGLRenderWindow::SetSize(a); }
92
96 virtual int *GetSize();
97
101 virtual void SetPosition(int x, int y);
102 virtual void SetPosition(int a[2]) { vtkOpenGLRenderWindow::SetPosition(a); }
103
107 virtual int *GetScreenSize();
108
112 virtual int *GetPosition();
113
118 virtual void SetWindowName(const char*);
119
123 void SetWindowInfo(char*);
124
128 void SetNextWindowInfo(char*);
129
133 void SetParentInfo(char*);
134
135 virtual void *GetGenericDisplayId() { return (void*)this->ContextId; }
136 virtual void *GetGenericWindowId() { return (void*)this->WindowId; }
137 virtual void *GetGenericParentId() { return (void*)this->ParentId; }
138 virtual void *GetGenericContext() { return (void*)this->DeviceContext; }
139 virtual void *GetGenericDrawable() { return (void*)this->WindowId; }
140 virtual void SetDisplayId(void*);
141
145 virtual HWND GetWindowId();
146
150 virtual void SetWindowId(HWND);
151 void SetWindowId(void *foo) { this->SetWindowId((HWND)foo); }
152
158
162 virtual void SetParentId(HWND);
163 void SetParentId(void *foo) { this->SetParentId((HWND)foo); }
164
168 void SetContextId(HGLRC);
169
174
178 virtual void SetNextWindowId(HWND);
179
185 virtual void SetNextWindowId(void *arg);
186
193 virtual void SetStereoCapableWindow(int capable);
194
199
203 virtual bool IsCurrent();
204
208 const char *ReportCapabilities();
209
214
218 int IsDirect();
219
225 virtual int GetEventPending();
226
228
233 void SetupMemoryRendering(int x, int y, HDC prn);
234 void SetupMemoryRendering(HBITMAP hbmp);
237 unsigned char *GetMemoryData() { return this->MemoryData; }
239
241
244 virtual void SetupPalette(HDC hDC);
245 virtual void SetupPixelFormat(HDC hDC, DWORD dwFlags, int debug,
246 int bpp = 16, int zbpp = 16);
248
252 void Clean();
253
255
262
265 void SetCursorPosition(int x, int y);
266
270 virtual void SetCurrentCursor(int);
271
272 virtual bool DetectDPI();
273
278 virtual void SetOffScreenRendering(int offscreen);
279
280protected:
283
285 HPALETTE Palette;
286 HPALETTE OldPalette;
294 int ScreenSize[2];
295
296 // the following is used to support rendering into memory
299 unsigned char *MemoryData; // the data in the DIBSection
301
303 int ScreenWindowSize[2];
307
308 int CreatingOffScreenWindow; // to avoid recursion (and memory leaks...)
309
310 // message handler
311 virtual LRESULT MessageProc(HWND hWnd, UINT message,
312 WPARAM wParam, LPARAM lParam);
313
314 static LRESULT APIENTRY WndProc(HWND hWnd, UINT message,
315 WPARAM wParam, LPARAM lParam);
316
319
322 void ResizeWhileOffscreen(int xsize, int ysize);
323 virtual void CreateAWindow();
324 virtual void DestroyWindow();
327 void CreateOffScreenDC(int xsize, int ysize, HDC aHdc);
328 void CreateOffScreenDC(HBITMAP hbmp, HDC aHdc);
329 void CreateOffScreenWindow(int width, int height);
332
333private:
334 vtkWin32OpenGLRenderWindow(const vtkWin32OpenGLRenderWindow&) VTK_DELETE_FUNCTION;
335 void operator=(const vtkWin32OpenGLRenderWindow&) VTK_DELETE_FUNCTION;
336};
337
338#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.
int SupportsOpenGL()
Does this render window support OpenGL? 0-false, 1-true.
virtual void SetSize(int width, int height)
Set the size of the window in pixels.
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)
void CreateOffScreenDC(int xsize, int ysize, HDC aHdc)
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.
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...
void CreateOffScreenDC(HBITMAP hbmp, HDC aHdc)
void SetupMemoryRendering(int x, int y, HDC prn)
These methods can be used by MFC applications to support print preview and printing,...
virtual HWND GetWindowId()
Get the window id.
void SetCursorPosition(int x, int y)
Set cursor position in window (note that (0,0) is the lower left corner).
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.
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...
virtual void SetupPixelFormat(HDC hDC, DWORD dwFlags, int debug, int bpp=16, int zbpp=16)
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.
void SetupMemoryRendering(HBITMAP hbmp)
void SetContextId(HGLRC)
Set the window's context id.
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 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 void SetPosition(int x, int y)
Set the position 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 SetDeviceContext(HDC)
Set the window's device context.
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