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
vtkCocoaRenderWindow::SetCocoaManager
void SetCocoaManager(void *manager)
Accessors for the cocoa manager (Really an NSMutableDictionary*).
vtkCocoaRenderWindow::~vtkCocoaRenderWindow
~vtkCocoaRenderWindow()
vtkCocoaRenderWindow::GetWindowId
virtual void * GetWindowId()
Returns the NSView* associated with this vtkRenderWindow.
vtkCocoaRenderWindow::GetViewCreated
virtual int GetViewCreated()
Get the ViewCreated flag.
vtkCocoaRenderWindow::SetParentId
virtual void SetParentId(void *nsview)
Set the NSView* for the vtkRenderWindow to be parented within.
vtkCocoaRenderWindow::HideCursor
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...
vtkCocoaRenderWindow::Start
virtual void Start()
Begin the rendering process.
vtkCocoaRenderWindow::SetPixelFormat
void SetPixelFormat(void *pixelFormat)
Accessors for the pixel format object (Really an NSOpenGLPixelFormat*).
vtkCocoaRenderWindow::CreateAWindow
void CreateAWindow()
Create a not-off-screen window.
vtkCocoaRenderWindow::SetWindowName
virtual void SetWindowName(const char *)
Set the name of the window.
vtkCocoaRenderWindow::SetStereoCapableWindow
virtual void SetStereoCapableWindow(int capable)
Prescribe that the window be created in a stereo-capable mode.
vtkCocoaRenderWindow::OnScreenInitialized
int OnScreenInitialized
Definition: vtkCocoaRenderWindow.h:372
vtkCocoaRenderWindow::GetWindowCreated
virtual int GetWindowCreated()
Get the WindowCreated flag.
vtkCocoaRenderWindow::SetCocoaServer
void SetCocoaServer(void *server)
vtkCocoaRenderWindow::GetGenericDisplayId
virtual void * GetGenericDisplayId()
Definition: vtkCocoaRenderWindow.h:150
vtkCocoaRenderWindow::IsDrawable
virtual bool IsDrawable()
Test if the window has a valid drawable.
vtkCocoaRenderWindow::Frame
virtual void Frame()
Finish the rendering process.
vtkCocoaRenderWindow::CreateGLContext
void CreateGLContext()
vtkCocoaRenderWindow::SetupPixelFormat
virtual void SetupPixelFormat(void *hDC, void *dwFlags, int debug, int bpp=16, int zbpp=16)
vtkCocoaRenderWindow::GetEventPending
virtual int GetEventPending()
Check to see if an event is pending for this window.
vtkCocoaRenderWindow::GetGenericParentId
virtual void * GetGenericParentId()
Definition: vtkCocoaRenderWindow.h:351
vtkCocoaRenderWindow::StereoUpdate
virtual void StereoUpdate()
Update system if needed due to stereo rendering.
vtkCocoaRenderWindow::OffScreenInitialized
int OffScreenInitialized
Definition: vtkCocoaRenderWindow.h:371
vtkCocoaRenderWindow::SetWindowId
virtual void SetWindowId(void *)
Sets the NSView* associated with this vtkRenderWindow.
vtkCocoaRenderWindow::GetGenericDrawable
virtual void * GetGenericDrawable()
Definition: vtkCocoaRenderWindow.h:141
vtkCocoaRenderWindow::GetDepthBufferSize
int GetDepthBufferSize()
Get the size of the depth buffer.
vtkCocoaRenderWindow::SetSize
virtual void SetSize(int, int)
vtkCocoaRenderWindow::GetPixelFormat
void * GetPixelFormat()
vtkCocoaRenderWindow::MakeCurrent
virtual void MakeCurrent()
Make this windows OpenGL context the current context.
vtkCocoaRenderWindow::Finalize
void Finalize()
Clean up device contexts, rendering contexts, etc.
vtkCocoaRenderWindow::DestroyWindow
void DestroyWindow()
Destroy a not-off-screen window.
vtkOpenGLRenderWindow.h
vtkCocoaRenderWindow::New
static vtkCocoaRenderWindow * New()
vtkCocoaRenderWindow::GetGenericContext
virtual void * GetGenericContext()
Definition: vtkCocoaRenderWindow.h:299
vtkCocoaRenderWindow::IsDirect
int IsDirect()
Is this render window using hardware acceleration? 0-false, 1-true.
vtkCocoaRenderWindow::SupportsOpenGL
int SupportsOpenGL()
Does this render window support OpenGL? 0-false, 1-true.
vtkCocoaRenderWindow::SetCurrentCursor
virtual void SetCurrentCursor(int)
Change the shape of the cursor.
vtkCocoaRenderWindow::SetContextId
void SetContextId(void *)
Accessors for the OpenGL context (Really an NSOpenGLContext*).
vtkCocoaRenderWindow::IsCurrent
virtual bool IsCurrent()
Tells if this window is the current OpenGL context for the calling thread.
vtkCocoaRenderWindow::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
vtkCocoaRenderWindow::SetFullScreen
virtual void SetFullScreen(int)
Change the window to fill the entire screen.
vtkCocoaRenderWindow::DestroyOffScreenWindow
void DestroyOffScreenWindow()
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:40
vtkCocoaRenderWindow::UpdateContext
void UpdateContext()
Update this window's OpenGL context, e.g.
vtkCocoaRenderWindow::WindowRemap
virtual void WindowRemap()
Remap the window.
vtkCocoaRenderWindow::SetDisplayId
virtual void SetDisplayId(void *)
Dummy stubs for vtkWindow API.
Definition: vtkCocoaRenderWindow.h:146
vtkCocoaRenderWindow::GetContextId
void * GetContextId()
vtkCocoaRenderWindow::GetPosition
virtual int * GetPosition()
Get the position in screen coordinates of the window.
vtkCocoaRenderWindow::InitializeFromCurrentContext
virtual bool InitializeFromCurrentContext()
Initialize the render window from the information associated with the currently activated OpenGL cont...
vtkCocoaRenderWindow::Initialize
virtual void Initialize()
Initialize the window for rendering.
vtkCocoaRenderWindow::SetNextWindowId
void SetNextWindowId(void *)
Definition: vtkCocoaRenderWindow.h:170
vtkCocoaRenderWindow::GetCocoaManager
void * GetCocoaManager()
vtkCocoaRenderWindow::SetWindowInfo
virtual void SetWindowInfo(char *)
Set this RenderWindow's window id to a pre-existing window.
vtkCocoaRenderWindow::ShowCursor
virtual void ShowCursor()
vtkCocoaRenderWindow
Cocoa OpenGL rendering window.
Definition: vtkCocoaRenderWindow.h:50
vtkCocoaRenderWindow::SetForceMakeCurrent
virtual void SetForceMakeCurrent()
If called, allow MakeCurrent() to skip cache-check when called.
vtkCocoaRenderWindow::ReportCapabilities
const char * ReportCapabilities()
Get report of capabilities for the render window.
vtkCocoaRenderWindow::GetCocoaServer
void * GetCocoaServer()
vtkCocoaRenderWindow::SetRootWindow
virtual void SetRootWindow(void *)
Sets the NSWindow* associated with this vtkRenderWindow.
vtkCocoaRenderWindow::SetupPalette
virtual void SetupPalette(void *hDC)
Initialize OpenGL for this window.
vtkCocoaRenderWindow::SetPosition
virtual void SetPosition(int, int)
vtkCocoaRenderWindow::SetCursorPosition
virtual void SetCursorPosition(int x, int y)
vtkCocoaRenderWindow::SetNextWindowInfo
void SetNextWindowInfo(char *)
Definition: vtkCocoaRenderWindow.h:137
vtkCocoaRenderWindow::SetPosition
virtual void SetPosition(int a[2])
Set the position of the window.
vtkCocoaRenderWindow::GetScreenSize
virtual int * GetScreenSize()
Get the current size of the screen in pixels.
vtkOpenGLRenderWindow
OpenGL rendering window.
Definition: vtkOpenGLRenderWindow.h:39
vtkCocoaRenderWindow::SetSize
virtual void SetSize(int a[2])
Set the size of the window in pixels.
vtkCocoaRenderWindow::vtkCocoaRenderWindow
vtkCocoaRenderWindow()
vtkCocoaRenderWindow::GetSize
virtual int * GetSize()
Get the current size of the window in pixels.
vtkCocoaRenderWindow::WindowConfigure
virtual void WindowConfigure()
Specify various window parameters.
vtkCocoaRenderWindow::PrefFullScreen
virtual void PrefFullScreen()
Set the preferred window size to full screen.
vtkCocoaRenderWindow::GetParentId
virtual void * GetParentId()
Get the parent NSView* for this vtkRenderWindow.
vtkCocoaRenderWindow::GetGenericWindowId
virtual void * GetGenericWindowId()
Definition: vtkCocoaRenderWindow.h:335
vtkCocoaRenderWindow::GetRootWindow
virtual void * GetRootWindow()
Returns the NSWindow* associated with this vtkRenderWindow.
vtkCocoaRenderWindow::SetParentInfo
virtual void SetParentInfo(char *)
See the documenation for SetParentId().