VTK
vtkCocoaRenderWindow.h
Go to the documentation of this file.
1/*=========================================================================
2
3Program: Visualization Toolkit
4Module: vtkCocoaRenderWindow.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=========================================================================*/
43#ifndef vtkCocoaRenderWindow_h
44#define vtkCocoaRenderWindow_h
45
46#include "vtkRenderingOpenGL2Module.h" // For export macro
47#include <stack> // for ivar
49
50class VTKRENDERINGOPENGL2_EXPORT vtkCocoaRenderWindow : public vtkOpenGLRenderWindow
51{
52public:
55 void PrintSelf(ostream& os, vtkIndent indent);
56
60 virtual void Start();
61
65 virtual void Frame();
66
70 virtual void WindowConfigure();
71
80 virtual void Initialize();
81
88 virtual void SetFullScreen(int);
89
93 virtual void WindowRemap();
94
99 virtual void PrefFullScreen();
100
102
105 virtual void SetSize(int a[2]);
106 virtual void SetSize(int,int);
108
112 virtual int *GetSize();
113
115
118 virtual void SetPosition(int a[2]);
119 virtual void SetPosition(int,int);
121
125 virtual int *GetScreenSize();
126
130 virtual int *GetPosition();
131
136 virtual void SetWindowName(const char *);
137
138 void SetNextWindowInfo(char *)
139 {
140 vtkWarningMacro("SetNextWindowInfo not implemented (WindowRemap not implemented).");
141 }
142 virtual void* GetGenericDrawable()
143 {
144 vtkWarningMacro("Method not implemented.");
145 return 0;
146 }
147 virtual void SetDisplayId(void*)
148 {
149 vtkWarningMacro("Method not implemented.");
150 }
151 virtual void *GetGenericDisplayId()
152 {
153 vtkWarningMacro("Method not implemented.");
154 return 0;
155 }
156
162 virtual void SetWindowInfo(char*);
163
169 virtual void SetParentInfo(char*);
170
171 void SetNextWindowId(void*)
172 {
173 vtkWarningMacro("SetNextWindowId not implemented (WindowRemap not implemented).");
174 }
175
181
185 virtual void StereoUpdate();
186
193 virtual void SetStereoCapableWindow(int capable);
194
198 virtual void MakeCurrent();
199
203 virtual bool IsCurrent();
204
211 virtual bool IsDrawable();
212
217
221 const char *ReportCapabilities();
222
226 int IsDirect();
227
233 virtual void SetForceMakeCurrent();
234
239 virtual int GetEventPending();
240
242
245 virtual void SetupPalette(void *hDC);
246 virtual void SetupPixelFormat(void *hDC, void *dwFlags, int debug,
247 int bpp=16, int zbpp=16);
249
253 void Finalize();
254
256
262 virtual void HideCursor();
263 virtual void ShowCursor();
264 virtual void SetCursorPosition(int x, int y);
266
270 virtual void SetCurrentCursor(int);
271
276 virtual int GetViewCreated();
277
282 virtual int GetWindowCreated();
283
285
288 void SetContextId(void *);
290 virtual void *GetGenericContext() {return this->GetContextId();}
292
303 virtual void SetRootWindow(void *);
304
308 virtual void *GetRootWindow();
309
320 virtual void SetWindowId(void *);
321
325 virtual void *GetWindowId();
326 virtual void *GetGenericWindowId() {return this->GetWindowId();}
327
334 virtual void SetParentId(void *nsview);
335
341 virtual void *GetParentId();
342 virtual void *GetGenericParentId() { return this->GetParentId(); }
343
345
348 void SetPixelFormat(void *pixelFormat);
351
353
360 virtual void PushContext();
361 virtual void PopContext();
363
364protected:
367
368 std::stack<void *> ContextStack;
369
371
375
376 int OffScreenInitialized;
377 int OnScreenInitialized;
378
380
384 void SetCocoaManager(void *manager);
387
388 void SetCocoaServer(void *server); // Really a vtkCocoaServer*
390
391private:
392 vtkCocoaRenderWindow(const vtkCocoaRenderWindow&) VTK_DELETE_FUNCTION;
393 void operator=(const vtkCocoaRenderWindow&) VTK_DELETE_FUNCTION;
394
395private:
396 // Important: this class cannot contain Objective-C instance
397 // variables for 2 reasons:
398 // 1) C++ files include this header
399 // 2) because of garbage collection (the GC scanner does not scan objects create by C++'s new)
400 // Instead, use the CocoaManager dictionary to keep a collection
401 // of what would otherwise be Objective-C instance variables.
402 void *CocoaManager; // Really an NSMutableDictionary*
403
404 int WindowCreated;
405 int ViewCreated;
406 int CursorHidden;
407
408 int ForceMakeCurrent;
409 char *Capabilities;
410};
411
412#endif
Cocoa OpenGL rendering window.
virtual void SetRootWindow(void *)
Sets the NSWindow* associated with this vtkRenderWindow.
std::stack< void * > ContextStack
virtual void * GetGenericDrawable()
virtual void SetStereoCapableWindow(int capable)
Prescribe that the window be created in a stereo-capable mode.
virtual void * GetGenericWindowId()
virtual void SetSize(int, int)
virtual void * GetParentId()
Get the parent NSView* for this vtkRenderWindow.
const char * ReportCapabilities()
Get report of capabilities for the render window.
virtual int GetEventPending()
Check to see if an event is pending for this window.
virtual void SetSize(int a[2])
Set the size of the window in pixels.
virtual void SetDisplayId(void *)
Dummy stubs for vtkWindow API.
void SetCocoaServer(void *server)
void SetCocoaManager(void *manager)
Accessors for the cocoa manager (Really an NSMutableDictionary*).
virtual void Frame()
Finish the rendering process.
virtual int * GetScreenSize()
Get the current size of the screen in pixels.
void Finalize()
Clean up device contexts, rendering contexts, etc.
virtual void MakeCurrent()
Make this windows OpenGL context the current context.
virtual void StereoUpdate()
Update system if needed due to stereo rendering.
virtual void WindowRemap()
Remap the window.
virtual void ShowCursor()
virtual void * GetGenericContext()
virtual void * GetGenericDisplayId()
virtual 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 void SetFullScreen(int)
Change the window to fill the entire screen.
void SetPixelFormat(void *pixelFormat)
Accessors for the pixel format object (Really an NSOpenGLPixelFormat*).
virtual void SetPosition(int a[2])
Set the position of the window.
virtual int * GetSize()
Get the current size of the window in pixels.
virtual void * GetGenericParentId()
virtual void SetCursorPosition(int x, int y)
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
virtual void * GetWindowId()
Returns the NSView* associated with this vtkRenderWindow.
virtual void PopContext()
virtual bool IsCurrent()
Tells if this window is the current OpenGL context for the calling thread.
virtual int * GetPosition()
Get the position in screen coordinates of the window.
void DestroyWindow()
Destroy a not-off-screen window.
virtual void SetupPixelFormat(void *hDC, void *dwFlags, int debug, int bpp=16, int zbpp=16)
virtual int GetViewCreated()
Get the ViewCreated flag.
virtual bool IsDrawable()
Test if the window has a valid drawable.
virtual void SetWindowInfo(char *)
Set this RenderWindow's window id to a pre-existing window.
virtual bool InitializeFromCurrentContext()
Initialize the render window from the information associated with the currently activated OpenGL cont...
virtual void SetCurrentCursor(int)
Change the shape of the cursor.
virtual void SetWindowName(const char *)
Set the name of the window.
virtual void * GetRootWindow()
Returns the NSWindow* associated with this vtkRenderWindow.
void CreateAWindow()
Create a not-off-screen window.
virtual void SetParentInfo(char *)
See the documenation for SetParentId().
virtual void SetWindowId(void *)
Sets the NSView* associated with this vtkRenderWindow.
virtual int GetWindowCreated()
Get the WindowCreated flag.
static vtkCocoaRenderWindow * New()
virtual void Initialize()
Initialize the window for rendering.
virtual void SetForceMakeCurrent()
If called, allow MakeCurrent() to skip cache-check when called.
void SetContextId(void *)
Accessors for the OpenGL context (Really an NSOpenGLContext*).
int IsDirect()
Is this render window using hardware acceleration? 0-false, 1-true.
virtual void SetPosition(int, int)
virtual void PushContext()
Ability to push and pop this window's context as the current context.
virtual void SetParentId(void *nsview)
Set the NSView* for the vtkRenderWindow to be parented within.
void UpdateContext()
Update this window's OpenGL context, e.g.
virtual void PrefFullScreen()
Set the preferred window size to full screen.
virtual void Start()
Begin the rendering process.
virtual void SetupPalette(void *hDC)
Initialize OpenGL for this window.
virtual void WindowConfigure()
Specify various window parameters.
a simple class to control print indentation
Definition: vtkIndent.h:40
OpenGL rendering window.