VTK
vtkCocoaRenderWindow.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3 Program: Visualization Toolkit
4 Module: vtkCocoaRenderWindow.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 =========================================================================*/
43 #ifndef vtkCocoaRenderWindow_h
44 #define vtkCocoaRenderWindow_h
45 
46 #include "vtkRenderingOpenGLModule.h" // For export macro
47 #include "vtkOpenGLRenderWindow.h"
48 
49 class VTKRENDERINGOPENGL_EXPORT vtkCocoaRenderWindow : public vtkOpenGLRenderWindow
50 {
51 public:
54  void PrintSelf(ostream& os, vtkIndent indent);
55 
59  virtual void Start();
60 
64  virtual void Frame();
65 
69  virtual void WindowConfigure();
70 
79  virtual void Initialize();
80 
87  virtual void SetFullScreen(int);
88 
92  virtual void WindowRemap();
93 
98  virtual void PrefFullScreen();
99 
101 
104  virtual void SetSize(int a[2]);
105  virtual void SetSize(int,int);
107 
111  virtual int *GetSize();
112 
114 
117  virtual void SetPosition(int a[2]);
118  virtual void SetPosition(int,int);
120 
124  virtual int *GetScreenSize();
125 
129  virtual int *GetPosition();
130 
135  virtual void SetWindowName(const char *);
136 
137  void SetNextWindowInfo(char *)
138  {
139  vtkWarningMacro("SetNextWindowInfo not implemented (WindowRemap not implemented).");
140  }
141  virtual void* GetGenericDrawable()
142  {
143  vtkWarningMacro("Method not implemented.");
144  return 0;
145  }
146  virtual void SetDisplayId(void*)
147  {
148  vtkWarningMacro("Method not implemented.");
149  }
150  virtual void *GetGenericDisplayId()
151  {
152  vtkWarningMacro("Method not implemented.");
153  return 0;
154  }
155 
161  virtual void SetWindowInfo(char*);
162 
168  virtual void SetParentInfo(char*);
169 
170  void SetNextWindowId(void*)
171  {
172  vtkWarningMacro("SetNextWindowId not implemented (WindowRemap not implemented).");
173  }
174 
180 
184  virtual void StereoUpdate();
185 
192  virtual void SetStereoCapableWindow(int capable);
193 
197  virtual void MakeCurrent();
198 
202  virtual bool IsCurrent();
203 
210  virtual bool IsDrawable();
211 
216 
220  const char *ReportCapabilities();
221 
226 
230  int IsDirect();
231 
237  virtual void SetForceMakeCurrent();
238 
243  virtual int GetEventPending();
244 
246 
249  virtual void SetupPalette(void *hDC);
250  virtual void SetupPixelFormat(void *hDC, void *dwFlags, int debug,
251  int bpp=16, int zbpp=16);
253 
257  void Finalize();
258 
263 
265 
271  virtual void HideCursor();
272  virtual void ShowCursor();
273  virtual void SetCursorPosition(int x, int y);
275 
279  virtual void SetCurrentCursor(int);
280 
285  virtual int GetViewCreated();
286 
291  virtual int GetWindowCreated();
292 
294 
297  void SetContextId(void *);
298  void *GetContextId();
299  virtual void *GetGenericContext() {return this->GetContextId();}
301 
312  virtual void SetRootWindow(void *);
313 
317  virtual void *GetRootWindow();
318 
329  virtual void SetWindowId(void *);
330 
334  virtual void *GetWindowId();
335  virtual void *GetGenericWindowId() {return this->GetWindowId();}
336 
343  virtual void SetParentId(void *nsview);
344 
350  virtual void *GetParentId();
351  virtual void *GetGenericParentId() { return this->GetParentId(); }
352 
354 
357  void SetPixelFormat(void *pixelFormat);
358  void *GetPixelFormat();
360 
361 protected:
364 
366 
370 
373 
375 
379  void SetCocoaManager(void *manager);
382 
383  void SetCocoaServer(void *server); // Really a vtkCocoaServer*
384  void *GetCocoaServer();
385 
386 private:
387  vtkCocoaRenderWindow(const vtkCocoaRenderWindow&) VTK_DELETE_FUNCTION;
388  void operator=(const vtkCocoaRenderWindow&) VTK_DELETE_FUNCTION;
389 
390 private:
391  // Important: this class cannot contain Objective-C instance
392  // variables for 2 reasons:
393  // 1) C++ files include this header
394  // 2) because of garbage collection (the GC scanner does not scan objects create by C++'s new)
395  // Instead, use the CocoaManager dictionary to keep a collection
396  // of what would otherwise be Objective-C instance variables.
397  void *CocoaManager; // Really an NSMutableDictionary*
398 
399  int WindowCreated;
400  int ViewCreated;
401  int CursorHidden;
402 
403  int ForceMakeCurrent;
404  char *Capabilities;
405 };
406 
407 #endif
Cocoa OpenGL rendering window.
virtual void SetRootWindow(void *)
Sets the NSWindow* associated with this vtkRenderWindow.
virtual void SetStereoCapableWindow(int capable)
Prescribe that the window be created in a stereo-capable mode.
virtual void SetSize(int, int)
virtual void * GetGenericWindowId()
int GetDepthBufferSize()
Get the size of the depth buffer.
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.
const char * ReportCapabilities()
Get report of capabilities for the render window.
void SetCocoaServer(void *server)
void SetCocoaManager(void *manager)
Accessors for the cocoa manager (Really an NSMutableDictionary*).
virtual void Frame()
Finish the rendering process.
void Finalize()
Clean up device contexts, rendering contexts, etc.
virtual void MakeCurrent()
Make this windows OpenGL context the current context.
virtual void * GetGenericDisplayId()
virtual void * GetGenericDrawable()
virtual void StereoUpdate()
Update system if needed due to stereo rendering.
virtual void WindowRemap()
Remap the window.
virtual void ShowCursor()
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 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 * GetGenericParentId()
static vtkCocoaRenderWindow * New()
virtual bool IsCurrent()
Tells if this window is the current OpenGL context for the calling thread.
int SupportsOpenGL()
Does this render window support OpenGL? 0-false, 1-true.
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 * GetPosition()
Get the position in screen coordinates of the window.
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 int * GetSize()
Get the current size of the window in pixels.
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.
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 void * GetGenericContext()
virtual int GetWindowCreated()
Get the WindowCreated flag.
virtual int * GetScreenSize()
Get the current size of the screen in pixels.
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*).
virtual void * GetParentId()
Get the parent NSView* for this vtkRenderWindow.
virtual void * GetRootWindow()
Returns the NSWindow* associated with this vtkRenderWindow.
int IsDirect()
Is this render window using hardware acceleration? 0-false, 1-true.
virtual void SetPosition(int, int)
virtual void * GetWindowId()
Returns the NSView* associated with this vtkRenderWindow.
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.