00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00023 #ifndef __vtkMesaRenderWindow_h
00024 #define __vtkMesaRenderWindow_h
00025
00026 #include "vtkRenderWindow.h"
00027
00028 #include "MangleMesaInclude/gl_mangle.h"
00029 #include <MangleMesaInclude/gl.h>
00030
00031 class vtkIdList;
00032
00033 class VTK_RENDERING_EXPORT vtkMesaRenderWindow : public vtkRenderWindow
00034 {
00035 protected:
00036 int MultiSamples;
00037 long OldMonitorSetting;
00038
00039 public:
00040 vtkTypeMacro(vtkMesaRenderWindow,vtkRenderWindow);
00041 void PrintSelf(ostream& os, vtkIndent indent);
00042
00044
00045 static void SetGlobalMaximumNumberOfMultiSamples(int val);
00046 static int GetGlobalMaximumNumberOfMultiSamples();
00048
00050
00052 vtkSetMacro(MultiSamples,int);
00053 vtkGetMacro(MultiSamples,int);
00055
00057 virtual void StereoUpdate();
00058
00060
00061 virtual unsigned char *GetPixelData(int x,int y,int x2,int y2,int front);
00062 virtual int GetPixelData(int x,int y,int x2,int y2, int front,
00063 vtkUnsignedCharArray*);
00064 virtual int SetPixelData(int x,int y,int x2,int y2,unsigned char *,
00065 int front);
00066 virtual int SetPixelData(int x,int y,int x2,int y2, vtkUnsignedCharArray*,
00067 int front);
00069
00071
00072 virtual float *GetRGBAPixelData(int x,int y,int x2,int y2,int front);
00073 virtual int GetRGBAPixelData(int x,int y,int x2,int y2, int front,
00074 vtkFloatArray* data);
00075 virtual int SetRGBAPixelData(int x,int y,int x2,int y2,float *,int front,
00076 int blend=0);
00077 virtual int SetRGBAPixelData(int x,int y,int x2,int y2, vtkFloatArray*,
00078 int front, int blend=0);
00079 virtual void ReleaseRGBAPixelData(float *data);
00080 virtual unsigned char *GetRGBACharPixelData(int x,int y,int x2,int y2,
00081 int front);
00082 virtual int GetRGBACharPixelData(int x,int y,int x2,int y2, int front,
00083 vtkUnsignedCharArray* data);
00084 virtual int SetRGBACharPixelData(int x,int y,int x2,int y2,unsigned char *,
00085 int front, int blend=0);
00086 virtual int SetRGBACharPixelData(int x,int y,int x2,int y2,
00087 vtkUnsignedCharArray *,
00088 int front, int blend=0);
00090
00092
00093 virtual float *GetZbufferData( int x1, int y1, int x2, int y2 );
00094 virtual int GetZbufferData( int x1, int y1, int x2, int y2, float *buffer );
00095 virtual int GetZbufferData( int x1, int y1, int x2, int y2,
00096 vtkFloatArray* z );
00097 virtual int SetZbufferData( int x1, int y1, int x2, int y2, float *buffer );
00098 virtual int SetZbufferData( int x1, int y1, int x2, int y2,
00099 vtkFloatArray *buffer );
00101
00103 void MakeCurrent() = 0;
00104
00106 void RegisterTextureResource (GLuint id);
00107
00109 int GetDepthBufferSize();
00110
00113 int GetColorBufferSizes(int *rgba);
00114
00116 virtual void OpenGLInit();
00117
00118 protected:
00119 vtkMesaRenderWindow();
00120 ~vtkMesaRenderWindow();
00121
00122 vtkIdList *TextureResourceIds;
00123
00124 int GetPixelData(int x,int y,int x2,int y2,int front, unsigned char* data);
00125 int GetRGBAPixelData(int x,int y,int x2,int y2, int front, float* data);
00126 int GetRGBACharPixelData(int x,int y,int x2,int y2, int front,
00127 unsigned char* data);
00128
00129 private:
00130 vtkMesaRenderWindow(const vtkMesaRenderWindow&);
00131 void operator=(const vtkMesaRenderWindow&);
00132 };
00133
00134 #endif