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

# Rendering/vtkOpenGLRenderWindow.h

Go to the documentation of this file.

    00001 /*=========================================================================
    00002
    00003   Program:   Visualization Toolkit
    00004   Module:    $RCSfile: vtkOpenGLRenderWindow.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 =========================================================================*/
    00042 #ifndef __vtkOpenGLRenderWindow_h
    00043 #define __vtkOpenGLRenderWindow_h
    00044
    00045 #include "vtkRenderWindow.h"
    00046
    00047 #if defined(__APPLE__) && (defined(VTK_USE_CARBON) || defined(VTK_USE_COCOA))
    00048 #include <OpenGL/gl.h> // Needed for GLuint
    00049 #else
    00050 #include <GL/gl.h> // Needed for GLuint
    00051 #endif
    00052
    00053 class vtkIdList;
    00054
    00055 class VTK_RENDERING_EXPORT vtkOpenGLRenderWindow : public vtkRenderWindow
    00056 {
    00057 protected:
    00058   int MultiSamples;
    00059   long OldMonitorSetting;
    00060
    00061 public:
    00062   vtkTypeRevisionMacro(vtkOpenGLRenderWindow,vtkRenderWindow);
    00063   void PrintSelf(ostream& os, vtkIndent indent);
    00064
    00066
    00067   static void SetGlobalMaximumNumberOfMultiSamples(int val);
    00068   static int  GetGlobalMaximumNumberOfMultiSamples();
    00070
    00072
    00074   vtkSetMacro(MultiSamples,int);
    00075   vtkGetMacro(MultiSamples,int);
    00077
    00079   virtual void StereoUpdate();
    00080
    00082
    00083   virtual unsigned char *GetPixelData(int x,int y,int x2,int y2,int front);
    00084   virtual int GetPixelData(int x,int y,int x2,int y2, int front,
    00085                            vtkUnsignedCharArray*);
    00086   virtual int SetPixelData(int x,int y,int x2,int y2,unsigned char *,
    00087                            int front);
    00088   virtual int SetPixelData(int x,int y,int x2,int y2, vtkUnsignedCharArray*,
    00089                            int front);
    00091
    00093
    00094   virtual float *GetRGBAPixelData(int x,int y,int x2,int y2,int front);
    00095   virtual int GetRGBAPixelData(int x,int y,int x2,int y2, int front,
    00096                                vtkFloatArray* data);
    00097   virtual int SetRGBAPixelData(int x,int y,int x2,int y2,float *,int front,
    00098                                int blend=0);
    00099   virtual int SetRGBAPixelData(int x,int y,int x2,int y2, vtkFloatArray*,
    00100                                int front, int blend=0);
    00101   virtual void ReleaseRGBAPixelData(float *data);
    00102   virtual unsigned char *GetRGBACharPixelData(int x,int y,int x2,int y2,
    00103                                               int front);
    00104   virtual int GetRGBACharPixelData(int x,int y,int x2,int y2, int front,
    00105                                    vtkUnsignedCharArray* data);
    00106   virtual int SetRGBACharPixelData(int x,int y,int x2,int y2,unsigned char *,
    00107                                    int front, int blend=0);
    00108   virtual int SetRGBACharPixelData(int x,int y,int x2,int y2,
    00109                                    vtkUnsignedCharArray *,
    00110                                    int front, int blend=0);
    00112
    00114
    00115   virtual float *GetZbufferData( int x1, int y1, int x2, int y2 );
    00116   virtual int GetZbufferData( int x1, int y1, int x2, int y2,
    00117                               vtkFloatArray* z );
    00118   virtual int SetZbufferData( int x1, int y1, int x2, int y2, float *buffer );
    00119   virtual int SetZbufferData( int x1, int y1, int x2, int y2,
    00120                               vtkFloatArray *buffer );
    00122
    00124   void MakeCurrent() = 0;
    00125
    00127   void RegisterTextureResource (GLuint id);
    00128
    00130   int GetDepthBufferSize();
    00131
    00133   virtual void OpenGLInit();
    00134
    00135 protected:
    00136   vtkOpenGLRenderWindow();
    00137   ~vtkOpenGLRenderWindow();
    00138
    00139   vtkIdList *TextureResourceIds;
    00140
    00141   int GetPixelData(int x,int y,int x2,int y2,int front, unsigned char* data);
    00142   int GetZbufferData( int x1, int y1, int x2, int y2, float* z );
    00143   int GetRGBAPixelData(int x,int y,int x2,int y2, int front, float* data);
    00144   int GetRGBACharPixelData(int x,int y,int x2,int y2, int front,
    00145                            unsigned char* data);
    00146
    00147 private:
    00148   vtkOpenGLRenderWindow(const vtkOpenGLRenderWindow&);  // Not implemented.
    00149   void operator=(const vtkOpenGLRenderWindow&);  // Not implemented.
    00150 };
    00151
    00152 #endif