Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members File Members Related Pages

# Rendering/vtkCarbonRenderWindow.h

Go to the documentation of this file.

    00001 /*=========================================================================
    00002
    00003   Program:   Visualization Toolkit
    00004   Module:    $RCSfile: vtkCarbonRenderWindow.h,v $
    00005   Language:  C++
    00006
    00007   Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen
    00008   All rights reserved.
    00009   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
    00010
    00011      This software is distributed WITHOUT ANY WARRANTY; without even
    00012      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
    00013      PURPOSE.  See the above copyright notice for more information.
    00014
    00015 =========================================================================*/
    00037 #ifndef __vtkCarbonRenderWindow_h
    00038 #define __vtkCarbonRenderWindow_h
    00039
    00040 #include "vtkOpenGLRenderWindow.h"
    00041
    00042
    00043 #include <Carbon/Carbon.h> // Carbon and MAC specific
    00044 #include <OpenGL/gl.h> // Carbon and MAC specific
    00045 #include <AGL/agl.h> // Carbon and MAC specific
    00046
    00047 class vtkIdList;
    00048
    00049 class VTK_RENDERING_EXPORT vtkCarbonRenderWindow : public vtkOpenGLRenderWindow
    00050 {
    00051 public:
    00052   static vtkCarbonRenderWindow *New();
    00053   vtkTypeRevisionMacro(vtkCarbonRenderWindow,vtkOpenGLRenderWindow);
    00054   void PrintSelf(ostream& os, vtkIndent indent);
    00055
    00057   void Start(void);
    00058
    00060   void Frame(void);
    00061
    00063   virtual void WindowConfigure(void);
    00064
    00066   virtual void WindowInitialize(void);
    00067
    00069   virtual void Initialize(void);
    00070
    00072   virtual void SetFullScreen(int);
    00073
    00075   virtual void WindowRemap(void);
    00076
    00078   virtual void PrefFullScreen(void);
    00079
    00081   virtual void SetSize(int,int);
    00082
    00084   virtual int *GetSize();
    00085
    00087   virtual void SetPosition(int,int);
    00088
    00090   virtual int *GetScreenSize();
    00091
    00093   virtual int *GetPosition();
    00094
    00097   virtual void SetWindowName(const char *);
    00098
    00100   void SetWindowInfo(void *);
    00101
    00102   //BTX
    00103   virtual void *GetGenericDisplayId() {return (void *)this->ContextId;};
    00104   virtual void *GetGenericWindowId()  {return (void *)this->WindowId;};
    00105   virtual void *GetGenericParentId()  {return (void *)this->ParentId;};
    00106   virtual AGLContext GetContextId()   {return this->ContextId;};
    00107   virtual void *GetGenericContext()   {return (void *)this->DeviceContext;};
    00108   virtual void SetDisplayId(void *) {};
    00109
    00110   virtual void* GetGenericDrawable()
    00111     {
    00112       vtkWarningMacro("GetGenericDrawable Method not implemented.");
    00113       return 0;
    00114     }
    00115   void SetWindowInfo(char*)
    00116     {
    00117       vtkWarningMacro("SetWindowInfo Method not implemented.");
    00118     }
    00119   void SetParentInfo(char*)
    00120     {
    00121       vtkWarningMacro("SetParentInfo Method not implemented.");
    00122     }
    00123
    00125
    00126   virtual WindowPtr GetWindowId();
    00127   void  SetWindowId(void *foo) {this->SetWindowId((WindowPtr)foo);};
    00129
    00131
    00132   virtual void SetParentId(WindowPtr);
    00133   void  SetParentId(void *foo) {this->SetParentId((WindowPtr)foo);};
    00135
    00137   virtual void SetWindowId(WindowPtr);
    00138
    00139   void  SetContextId(void *);   // hsr
    00140   void  SetDeviceContext(void *);       // hsr
    00141
    00142   //ETX
    00143
    00144   // supply base class virtual function
    00145   vtkSetMacro(MultiSamples,int);
    00146   vtkGetMacro(MultiSamples,int);
    00147
    00152   virtual void SetStereoCapableWindow(int capable);
    00153
    00155   void MakeCurrent();
    00156
    00160   void SetForceMakeCurrent();
    00161
    00164   virtual  int GetEventPending();
    00165
    00173   virtual void SetupPalette(void *hDC);
    00174   virtual void SetupPixelFormat(void *hDC, void *dwFlags, int debug,
    00175                                 int bpp=16, int zbpp=16);
    00177
    00179   void Clean();
    00180
    00182   int GetDepthBufferSize();
    00183
    00185
    00187   void HideCursor();
    00188   void ShowCursor();
    00190
    00191   void UpdateSizeAndPosition(int xPos, int yPos, int xSize, int ySize);
    00192
    00193
    00194 protected:
    00195   vtkCarbonRenderWindow();
    00196   ~vtkCarbonRenderWindow();
    00197
    00198   int ApplicationInitialized; // Toolboxen initialized?
    00199   Boolean fAcceleratedMust;   // input: must renderer be accelerated?
    00200   Boolean draggable;          // input: is the window draggable?
    00201   GLint aglAttributes[64];    // input: pixel format attributes always required
    00202                               //   (reset to what was actually allocated)
    00203   SInt32 VRAM;                // input: minimum VRAM; output: actual
    00204                               //   (if successful otherwise input)
    00205   SInt32 textureRAM;          // input: amount of texture RAM required on card;
    00206                               // output: same (used in allocation)
    00207   AGLPixelFormat fmt;         // input: none; output pixel format...
    00208   AGLContext ContextId;
    00209   AGLDrawable DeviceContext;  // the drawable attached to a rendering context
    00210   WindowPtr WindowId;
    00211   WindowPtr ParentId;
    00212   int OwnWindow;
    00213   int ScreenSize[2];
    00214
    00215   int ScreenMapped;
    00216   int ScreenWindowSize[2];
    00217   void *ScreenDeviceContext;
    00218   int ScreenDoubleBuffer;
    00219   void *ScreenContextId;
    00220
    00221   int CursorHidden;
    00222   int ForceMakeCurrent;
    00223
    00224   void CreateAWindow(int x, int y, int width, int height);
    00225   void InitializeApplication();
    00226 private:
    00227   vtkCarbonRenderWindow(const vtkCarbonRenderWindow&);  // Not implemented.
    00228   void operator=(const vtkCarbonRenderWindow&);  // Not implemented.
    00229 };
    00230
    00231 #endif