00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00033 #ifndef __vtkOpenGLState_h
00034 #define __vtkOpenGLState_h
00035
00036 #include "vtkgl.h"
00037 #include <vtkstd/vector>
00038
00039 class vtkOpenGLRenderWindow;
00040
00041 class vtkOpenGLMaterialState
00042 {
00043 public:
00044 GLfloat Ambient[4];
00045 GLfloat Diffuse[4];
00046 GLfloat Specular[4];
00047 GLfloat Shininess;
00048
00049 GLfloat AmbientIndex;
00050 GLfloat DiffuseIndex;
00051 GLfloat SpecularIndex;
00052 };
00053
00054 class vtkOpenGLLightState
00055 {
00056 public:
00057 void Update();
00058
00059 GLfloat Ambient[4];
00060 GLfloat Diffuse[4];
00061 GLfloat Specular[4];
00062 GLfloat Position[4];
00063 GLfloat ConstantAttenuation;
00064 GLfloat LinearAttenuation;
00065 GLfloat QuadraticAttenuation;
00066 GLfloat SpotDirection[4];
00067 GLfloat SpotExponent;
00068 GLfloat SpotCutoff;
00069 };
00070
00071 class vtkOpenGLTextureImageState
00072 {
00073 public:
00074 void Update();
00075
00076 GLvoid *Image;
00077 GLint Width;
00078 GLint Height;
00079 GLint Border;
00080 GLint InternalFormat;
00081 GLint RedSize;
00082 GLint GreenSize;
00083 GLint BlueSize;
00084 GLint AlphaSize;
00085 GLint LuminanceSize;
00086 GLint IntensitySize;
00087
00088
00089 GLint Depth;
00090
00091
00092 GLboolean Compressed;
00093 GLint CompressedImageSize;
00094
00095
00096 GLint DepthSize;
00097
00098 };
00099
00100 #if 0
00101 class vtkOpenGLTextureObjectState
00102 {
00103 public:
00104 void Update();
00105
00106 static const int n=10;
00107 vtkOpenGLTextureImageState Texture1D[n];
00108 vtkOpenGLTextureImageState Texture2D[n];
00109
00110 GLfloat BorderColor[4];
00111 GLint MinFilter;
00112 GLint MagFilter;
00113 GLint WrapS;
00114 GLint WrapT;
00115 GLfloat TexturePriority;
00116 GLboolean TextureResident;
00117
00118
00119 vtkOpenGLTextureImageState Texture3D[n];
00120
00121 GLint WrapR;
00122 GLint MinLOD;
00123 GLint MaxLOD;
00124 GLint BaseLevel;
00125 GLint MaxLevel;
00126
00127
00128 vtkOpenGLTextureImageState TextureCubeMapPositiveX[n];
00129 vtkOpenGLTextureImageState TextureCubeMapNegativeX[n];
00130 vtkOpenGLTextureImageState TextureCubeMapPositiveY[n];
00131 vtkOpenGLTextureImageState TextureCubeMapNegativeY[n];
00132 vtkOpenGLTextureImageState TextureCubeMapPositiveZ[n];
00133 vtkOpenGLTextureImageState TextureCubeMapNegativeZ[n];
00134
00135
00136 GLfloat LODBias;
00137 GLint DepthTextureMode;
00138 GLint TextureCompareMode;
00139 GLint TextureCompareFunc;
00140 GLboolean GenerateMipmap;
00141 };
00142 #endif
00143
00144 class vtkOpenGLTexGenState
00145 {
00146 public:
00147 void Update();
00148
00149 GLboolean Enabled;
00150 GLfloat EyePlane[4];
00151 GLfloat ObjectPlane[4];
00152 GLint Mode;
00153 };
00154
00155 class vtkOpenGLPixelControl
00156 {
00157 public:
00158 void Update();
00159 void PrintSelf(ostream &os,
00160 vtkIndent indent);
00161 GLboolean SwapBytes;
00162 GLboolean LsbFirst;
00163 GLint RowLength;
00164 GLint SkipRows;
00165 GLint SkipPixels;
00166 GLint Alignment;
00167
00168
00169 GLint ImageHeight;
00170 GLint SkipImages;
00171 };
00172
00173 class vtkOpenGLComponentTransform
00174 {
00175 public:
00176 void Update();
00177 void PrintSelf(ostream &os,
00178 vtkIndent indent);
00179 GLfloat Scale;
00180 GLfloat Bias;
00181 };
00182
00183 class vtkOpenGLRGBAPixelMapState
00184 {
00185 public:
00186 void Update();
00187
00188 GLint Size;
00189 GLfloat *Map;
00190 };
00191
00192 class vtkOpenGLIndexPixelMapState
00193 {
00194 public:
00195 void Update();
00196
00197 GLint Size;
00198 GLint *Map;
00199 };
00200
00201 class vtkOpenGLTextureCoordinateProcessingUnit
00202 {
00203 public:
00204 GLfloat CurrentMatrix[16];
00205 GLint MatrixStackDepth;
00206 vtkOpenGLTexGenState TextureGenS;
00207 vtkOpenGLTexGenState TextureGenT;
00208 vtkOpenGLTexGenState TextureGenR;
00209 vtkOpenGLTexGenState TextureGenQ;
00210
00211 GLboolean CoordReplace;
00212
00213 GLfloat CurrentTextureCoords[4];
00214 GLfloat CurrentRasterTextureCoords[4];
00215 };
00216
00217 class vtkOpenGLTextureImageUnit
00218 {
00219 public:
00220
00221 GLint TextureBinding1D;
00222
00223 GLint TextureBinding2D;
00224
00225
00226 GLint TextureBinding3D;
00227
00228
00229 GLint TextureBindingCubeMap;
00230 };
00231
00232 class vtkOpenGLTextureImageUnitFixedPipelineState
00233 {
00234 public:
00235 GLboolean Texture1DEnabled;
00236 GLboolean Texture2DEnabled;
00237
00238 GLboolean Texture3DEnabled;
00239
00240 GLboolean TextureCubeMapEnabled;
00241 };
00242
00243 class vtkOpenGLClipPlaneState
00244 {
00245 public:
00246 GLfloat Equation[4];
00247 GLboolean Enabled;
00248 };
00249
00250
00251
00252 class vtkOpenGLFixePipelineState
00253 {
00254 public:
00255
00256
00257
00258 GLboolean Normalize;
00259
00260
00261 GLboolean RescaleNormal;
00262
00263
00264 GLboolean LightingEnabled;
00265
00266 vtkstd::vector<GLboolean> *LightEnabled;
00267
00268
00269
00270
00271
00272 GLint CombineRGB;
00273 GLint CombineAlpha;
00274 GLint Source0RGB;
00275 GLint Source1RGB;
00276 GLint Source2RGB;
00277 GLint Source0Alpha;
00278 GLint Source1Alpha;
00279 GLint Source2Alpha;
00280 GLint Operand0RGB;
00281 GLint Operand1RGB;
00282 GLint Operand2RGB;
00283 GLint Operand0Alpha;
00284 GLint Operand1Alpha;
00285 GLint Operand2Alpha;
00286 GLint RGBScale;
00287 GLint AlphaScale;
00288
00289 vtkstd::vector<vtkOpenGLTextureImageUnitFixedPipelineState> *TextureImageUnitEnabled;
00290
00291
00292 GLboolean FogEnabled;
00293
00294 GLboolean ColorSumEnabled;
00295 };
00296
00297 class vtkOpenGLBufferObjectState
00298 {
00299 public:
00300 void PrintSelf(ostream &os,
00301 vtkIndent indent);
00302
00303 GLuint Id;
00304 GLint Size;
00305 GLenum Usage;
00306 GLenum Access;
00307 GLenum AccessFlags;
00308 GLboolean Mapped;
00309 GLvoid *MapPointer;
00310 GLint MapOffset;
00311 GLint MapLength;
00312 protected:
00313 void BufferAccessFlagsToStream(ostream &os);
00314 const char *BufferUsageToString();
00315 const char *BufferAccessToString();
00316 };
00317
00318 class vtkOpenGLShaderState
00319 {
00320 public:
00321 void PrintSelf(ostream &os,
00322 vtkIndent indent);
00323 GLuint Id;
00324 GLenum Type;
00325 GLboolean DeleteStatus;
00326 GLboolean CompileStatus;
00327 vtkgl::GLchar *InfoLog;
00328 GLint InfoLogLength;
00329 vtkgl::GLchar *Source;
00330 GLint SourceLength;
00331 protected:
00332 const char *ShaderTypeToString();
00333 };
00334
00335 class vtkOpenGLProgramState
00336 {
00337 public:
00338 void PrintSelf(ostream &os,
00339 vtkIndent indent);
00340 GLuint Id;
00341 GLboolean DeleteStatus;
00342 GLboolean LinkStatus;
00343 GLboolean ValidateStatus;
00344 GLint NumberOfAttachedShaders;
00345 GLint InfoLogLength;
00346 GLint ActiveUniforms;
00347 GLint ActiveUniformMaxLength;
00348 GLint ActiveAttributes;
00349 GLint ActiveAttributeMaxLength;
00350 vtkstd::vector<vtkOpenGLShaderState> *AttachedShaders;
00351 vtkgl::GLchar *InfoLog;
00352
00353
00354 bool HasVertexShader;
00355 bool HasFragmentShader;
00356 };
00357
00358 class VTK_RENDERING_EXPORT vtkOpenGLState
00359 {
00360 public:
00361 vtkOpenGLState(vtkOpenGLRenderWindow *context);
00362 ~vtkOpenGLState();
00363
00364
00365 void Update();
00366
00367 void PrintSelf(ostream &os,
00368 vtkIndent indent);
00369
00370
00371
00372
00373
00374
00375
00376 vtkOpenGLFixePipelineState FixedPipeline;
00377
00378
00379
00380
00381
00382 GLfloat CurrentColor[4];
00383 GLfloat CurrentIndex;
00384
00385 GLfloat CurrentNormal[3];
00386
00387 GLfloat CurrentRasterPosition[4];
00388 GLfloat CurrentRasterDistance;
00389 GLfloat CurrentRasterColor[4];
00390 GLfloat CurrentRasterIndex;
00391
00392 GLboolean CurrentRasterPositionValid;
00393 GLboolean EdgeFlag;
00394
00395
00396 GLfloat CurrentSecondaryColor[4];
00397 GLfloat CurrentFogCoordinate[3];
00398
00399
00400 GLfloat CurrentRasterSecondaryColor[4];
00401
00402
00403
00404
00405 GLboolean VertexArrayEnabled;
00406 GLint VertexArraySize;
00407 GLint VertexArrayType;
00408 GLint VertexArrayStride;
00409 GLvoid *VertexArrayPointer;
00410
00411 GLboolean NormalArrayEnabled;
00412 GLint NormalArrayType;
00413 GLint NormalArrayStride;
00414 GLvoid *NormalArrayPointer;
00415
00416 GLboolean ColorArrayEnabled;
00417 GLint ColorArraySize;
00418 GLint ColorArrayType;
00419 GLint ColorArrayStride;
00420 GLvoid *ColorArrayPointer;
00421
00422 GLboolean IndexArrayEnabled;
00423 GLint IndexArrayType;
00424 GLint IndexArrayStride;
00425 GLvoid *IndexArrayPointer;
00426
00427 GLboolean TextureCoordArrayEnabled;
00428 GLint TextureCoordArraySize;
00429 GLint TextureCoordArrayType;
00430 GLint TextureCoordArrayStride;
00431 GLvoid *TextureCoordArrayPointer;
00432
00433 GLboolean EdgeFlagArray;
00434 GLint EdgeFlagArrayStride;
00435 GLvoid *EdgeFlagArrayPointer;
00436
00437
00438 GLenum ClientActiveTexture;
00439
00440
00441 GLboolean FogCoordinateArrayEnabled;
00442 GLint FogCoordinateArrayType;
00443 GLint FogCoordinateArrayStride;
00444 GLvoid *FogCoordinateArrayPointer;
00445
00446 GLboolean SecondaryColorArrayEnabled;
00447 GLint SecondaryColorArraySize;
00448 GLint SecondaryColorArrayType;
00449 GLint SecondaryColorArrayStride;
00450 GLvoid *SecondaryColorArrayPointer;
00451
00452
00453 GLint ArrayBufferBinding;
00454 GLint VertexArrayBufferBinding;
00455 GLint NormalArrayBufferBinding;
00456 GLint ColorArrayBufferBinding;
00457 GLint IndexArrayBufferBinding;
00458 GLint TextureCoordArrayBufferBinding;
00459 GLint EdgeFlagArrayBufferBinding;
00460 GLint SecondaryColorArrayBufferBinding;
00461 GLint FogCoordArrayBufferBinding;
00462 GLint ElementArrayBufferBinding;
00463
00464
00465 GLboolean VertexAttribArrayEnabled;
00466 GLint VertexAttribArraySize;
00467 GLint VertexAttribArrayStride;
00468 GLint VertexAttribArrayType;
00469 GLboolean VertexAttribArrayNormalized;
00470 GLvoid *VertexAttribArrayPointer;
00471
00472
00473 GLint VertexAttribArrayBufferBinding;
00474
00475
00476 GLint BufferSize;
00477 GLint BufferUsage;
00478 GLint BufferAccess;
00479 GLboolean BufferMapped;
00480 GLvoid *BufferMapPointer;
00481
00482
00483
00484 GLfloat ModelViewMatrix[16];
00485 GLint ModelViewStackDepth;
00486
00487 GLfloat ProjectionMatrix[16];
00488 GLint ProjectionStackDepth;
00489
00490
00491 GLint MaxTextureCoords;
00492 vtkstd::vector<vtkOpenGLTextureCoordinateProcessingUnit> *TCPU;
00493
00494
00495 GLint MaxCombinedTextureImageUnits;
00496 vtkstd::vector<vtkOpenGLTextureImageUnit> *TIU;
00497
00498 GLint Viewport[4];
00499 GLfloat DepthRange[2];
00500
00501 GLint MatrixMode;
00502 GLboolean Normalize;
00503
00504 vtkstd::vector<vtkOpenGLClipPlaneState> *ClipPlanes;
00505
00506
00507 GLfloat ColorMatrix[16];
00508 GLint ColorMatrixStackDepth;
00509
00510
00511
00512 GLfloat FogColor[4];
00513 GLfloat FogIndex;
00514 GLfloat FogDensity;
00515 GLfloat FogStart;
00516 GLfloat FogEnd;
00517 GLint FogMode;
00518
00519 GLint ShadeModel;
00520
00521
00522 GLint FogCoordinateSource;
00523
00524
00525 GLboolean ColorMaterialEnabled;
00526 GLint ColorMaterialParameter;
00527 GLint ColorMaterialFace;
00528 vtkOpenGLMaterialState FrontMaterial;
00529 vtkOpenGLMaterialState BackMaterial;
00530
00531 GLfloat LightModelAmbient[4];
00532 GLboolean LightModelLocalViewer;
00533 GLboolean LightModelTwoSide;
00534
00535 vtkstd::vector<vtkOpenGLLightState> *Lights;
00536
00537
00538 GLint lightModelColorControl;
00539
00540
00541 GLfloat PointSize;
00542 GLboolean PointSmoothEnabled;
00543
00544 GLfloat LineWidth;
00545 GLboolean LineSmoothEnabled;
00546 GLint LineStipplePattern;
00547 GLint LineStippleRepeat;
00548 GLboolean LineStippleEnabled;
00549
00550 GLboolean CullFaceEnabled;
00551 GLint CullFaceMode;
00552 GLint FrontFace;
00553 GLboolean PolygonSmoothEnabled;
00554 GLint PolygonMode[2];
00555 GLfloat PolygonOffsetFactor;
00556 GLfloat PolygonOffsetUnits;
00557 GLboolean PolygonOffsetPointEnabled;
00558 GLboolean PolygonOffsetLineEnabled;
00559 GLboolean PolygonOffsetFillEnabled;
00560 GLint PolygonStipple;
00561 GLboolean PolygonStippleEnabled;
00562
00563
00564 GLfloat PointSizeMin;
00565 GLfloat PointSizeMax;
00566 GLfloat PointFadeThresholdSize;
00567 GLfloat PointDistanceAttenuation;
00568
00569
00570 GLboolean PointSpriteEnabled;
00571 GLint PointSpriteCoordOrigin;
00572
00573
00574 GLboolean MultiSampleEnabled;
00575 GLboolean SampleAlphaToCoverageEnabled;
00576 GLboolean SampleAlphaToOneEnabled;
00577 GLboolean SampleCoverageEnabled;
00578 GLfloat SampleCoverageValue;
00579 GLboolean SampleCoverageInvert;
00580
00581
00582
00583
00584
00585
00586 GLint TextureEnvMode;
00587 GLfloat TextureEnvColor;
00588
00589
00590 GLenum ActiveTexture;
00591
00592
00593 GLfloat TextureLODBias;
00594
00595
00596
00597 GLboolean ScissorTestEnabled;
00598 GLint ScissorBox[4];
00599
00600 GLboolean AlphaTestEnabled;
00601 GLint AlphaTestFunc;
00602 GLfloat AlphaTestRef;
00603
00604 GLboolean StencilTestEnabled;
00605 GLint StencilFunc;
00606 GLint StencilValueMask;
00607 GLint StencilRef;
00608 GLint StencilFail;
00609 GLint StencilPassDepthFail;
00610 GLint StencilPassDepthPass;
00611
00612
00613 GLint StencilBackFunc;
00614 GLint StencilBackValueMask;
00615 GLint StencilBackRef;
00616 GLint StencilBackFail;
00617 GLint StencilBackPassDepthFail;
00618 GLint StencilBackPassDepthPass;
00619
00620 GLboolean DepthTestEnabled;
00621 GLint DepthFunc;
00622
00623 GLboolean BlendEnabled;
00624 GLint BlendSrc;
00625 GLint BlendDst;
00626
00627
00628 GLint BlendEquation;
00629 GLfloat BlendColor[4];
00630
00631
00632 GLint BlendSrcRGB;
00633 GLint BlendSrcAlpha;
00634 GLint BlendDstRGB;
00635 GLint BlendDstAlpha;
00636
00637
00638 GLint BlendEquationRGB;
00639 GLint BlendEquationAlpha;
00640
00641 GLboolean DitherEnabled;
00642
00643 GLboolean IndexLogicOpEnabled;
00644 GLboolean ColorLogicOpEnabled;
00645 GLint LogicOpMode;
00646
00647
00648
00649
00650 GLint MaxDrawBuffers;
00651 vtkstd::vector<GLint> *DrawBuffers;
00652
00653 GLint IndexWriteMask;
00654 GLboolean ColorWriteMask[4];
00655 GLboolean DepthWriteMask;
00656 GLuint StencilWriteMask;
00657 GLfloat ColorClearValue[4];
00658 GLfloat IndexClearValue;
00659 GLfloat DepthClearValue;
00660 GLint StencilClearValue;
00661 GLfloat AccumClearValue[4];
00662
00663
00664 GLuint StencilBackWriteMask;
00665
00666
00667 GLint DrawBuffer0;
00668 GLint DrawBuffer1;
00669 GLint DrawBuffer3;
00670
00671
00672
00673 vtkOpenGLPixelControl Unpack;
00674 vtkOpenGLPixelControl Pack;
00675
00676 GLboolean MapColor;
00677 GLboolean MapStencil;
00678 GLint IndexShift;
00679 GLint IndexOffset;
00680
00681 vtkOpenGLComponentTransform RedTransform;
00682 vtkOpenGLComponentTransform GreenTransform;
00683 vtkOpenGLComponentTransform BlueTransform;
00684 vtkOpenGLComponentTransform AlphaTransform;
00685 vtkOpenGLComponentTransform DepthTransform;
00686
00687 GLfloat ZoomX;
00688 GLfloat ZoomY;
00689
00690
00691 vtkOpenGLIndexPixelMapState PixelMapColorIndexToColorIndex;
00692 vtkOpenGLIndexPixelMapState PixelMapStencilIndexToStencilIndex;
00693 vtkOpenGLRGBAPixelMapState PixelMapColorIndexToRed;
00694 vtkOpenGLRGBAPixelMapState PixelMapColorIndexToGreen;
00695 vtkOpenGLRGBAPixelMapState PixelMapColorIndexToBlue;
00696 vtkOpenGLRGBAPixelMapState PixelMapColorIndexToAlpha;
00697 vtkOpenGLRGBAPixelMapState PixelMapRedToRed;
00698 vtkOpenGLRGBAPixelMapState PixelMapGreenToGreen;
00699 vtkOpenGLRGBAPixelMapState PixelMapBlueToBlue;
00700 vtkOpenGLRGBAPixelMapState PixelMapAlphaToAlpha;
00701
00702
00703 GLenum PixelPackBufferBinding;
00704 GLenum PixelUnpackBufferBinding;
00705
00706
00707 vtkOpenGLBufferObjectState PixelPackBufferObject;
00708
00709 vtkOpenGLBufferObjectState PixelUnpackBufferObject;
00710
00711
00712 GLboolean ColorTableEnabled;
00713 GLboolean PostConvolutionColorTableEnabled;
00714 GLboolean PostColorMatricColorTableEnabled;
00715
00716
00717
00718
00719 GLint ReadBuffer;
00720
00721
00722
00723
00724
00725 vtkOpenGLProgramState *CurrentProgramState;
00726
00727 #if 0
00728 GLint ShaderType;
00729 GLboolean DeleteStatus;
00730 GLboolean CompileStatus;
00731 vtkgl::GLchar *ShaderLogInfo;
00732 GLint InfoLogLength;
00733 vtkgl::GLchar *ShaderSource;
00734 GLint ShaderSourceLength;
00735 #endif
00736
00737 GLuint CurrentProgram;
00738
00739 #if 0
00740 GLboolean DeleteStatus;
00741 GLboolean LinkStatus;
00742 GLboolean ValidateStatus;
00743 GLint *AttachedShaders;
00744 GLint InfoLogLength;
00745 GLint ActiveUniforms;
00746 GLint ActiveUniformMaxLength;
00747 GLint ActiveAttributes;
00748 GLint ActiveAttributesMaxLength;
00749 #endif
00750
00751
00752 GLboolean VertexProgramTwoSideEnabled;
00753 GLfloat CurrentVertexAttrib[16][4];
00754 GLboolean VertexProgramPointSizeEnabled;
00755
00756
00757 GLint PerpectiveCorrectionHint;
00758 GLint PointSmoothHint;
00759 GLint LineSmoothHint;
00760 GLint PolygonSmoothHint;
00761 GLint FogHint;
00762
00763 GLint TextureCompressionHint;
00764
00765 GLint GenerateMipMapHint;
00766
00767 GLint FragmentShaderDerivativeHint;
00768
00769
00770
00771
00772
00773 GLint MaxLights;
00774 GLint MaxClipPlanes;
00775 GLint MaxModelViewStackDepth;
00776 GLint MaxProjectionStackDepth;
00777 GLint MaxTextureStackDepth;
00778 GLint SubpixelBits;
00779 GLint MaxTextureSize;
00780 GLint MaxPixelMapTable;
00781 GLint MaxNameStackDepth;
00782 GLint MaxListNesting;
00783 GLint MaxEvalOrder;
00784 GLint MaxViewportDims;
00785 GLint MaxAttribStackDepth;
00786 GLint MaxClientAttribStackDepth;
00787
00788
00789 GLint AuxBuffers;
00790 GLboolean RGBAMode;
00791 GLboolean IndexMode;
00792 GLboolean DoubleBuffer;
00793 GLboolean Stereo;
00794
00795
00796 GLint MaxColorAttachments;
00797
00798
00799
00800 GLfloat PointSizeRange[2];
00801 GLfloat PointSizeGranularity;
00802 GLfloat LineWidthRange[2];
00803 GLfloat LineWidthGranularity;
00804
00805
00806 GLint RedBits;
00807 GLint GreenBits;
00808 GLint BlueBits;
00809 GLint AlphaBits;
00810 GLint IndexBits;
00811
00812 GLint DepthBits;
00813 GLint StencilBits;
00814
00815 GLint AccumRedBits;
00816 GLint AccumGreenBits;
00817 GLint AccumBlueBits;
00818 GLint AccumAlphaBits;
00819
00820
00821 GLint Max3DTextureSize;
00822 GLfloat AliasedPointSizeRange[2];
00823 GLfloat AliasedLineWidthRange[2];
00824 GLint MaxElementsIndices;
00825 GLint MaxElementsVertices;
00826
00827
00828
00829 GLint MaxColorMatrixStackDepth;
00830 GLint MaxConvolutionWidth[3];
00831 GLint MaxConvolutionHeight[2];
00832
00833
00834 GLint MaxCubeMapTextureSize;
00835 GLint MaxTextureUnits;
00836 GLint CompressedTextureFormats;
00837 GLint NumCompressedTextureFormats;
00838
00839
00840 GLint SampleBuffers;
00841 GLint Samples;
00842
00843
00844 GLfloat MaxTextureLODBias;
00845
00846
00847 GLint QueryCounterBits;
00848
00849
00850 GLubyte *Extensions;
00851 GLubyte *Renderer;
00852 GLubyte *ShadingLanguageVersion;
00853 GLubyte *Vendor;
00854 GLubyte *Version;
00855 GLint MaxVertexAttribs;
00856 GLint MaxVertexUniformComponents;
00857 GLint MaxVaryingFloats;
00858 GLint MaxVertexTextureImageUnits;
00859 GLint MaxTextureImageUnits;
00860 GLint MaxFragmentUniformComponents;
00861
00862
00863
00864
00865 GLint ListBase;
00866 GLint ListIndex;
00867 GLint ListMode;
00868
00869
00870
00871 GLint AttribStackDepth;
00872 GLint ClientAtribStackDepth;
00873 GLint NameStackDepth;
00874
00875 GLint RenderMode;
00876
00877
00878 GLvoid *SelectionBufferPointer;
00879 GLint SelectionBufferSize;
00880
00881
00882 GLvoid *FeedbackBufferPointer;
00883 GLint FeedbackBufferSize;
00884 GLint FeedbackBufferType;
00885
00886
00887 GLenum ErrorCode;
00888
00889
00890 GLint CurrentQuery;
00891
00892
00893 GLint FrameBufferBinding;
00894 GLint Read;
00895
00896 protected:
00897 void UpdateCurrentProgram();
00898 void UpdateShader(size_t i);
00899
00900 void ColorBufferToStream(ostream &os,GLint colorBuffer);
00901 const char *ErrorCodeToString();
00902 const char *BlendFuncToString(GLint blendFunc);
00903 const char *BlendEquationToString(GLint blendEquation);
00904 const char *LogicOpModeToString();
00905 const char *ListModeToString();
00906 const char *BooleanToString(GLint booleanValue);
00907 const char *ShadeModelToString();
00908 const char *CullFaceModeToString();
00909 const char *FrontFaceToString();
00910 const char *PolygonModeToString(GLint polygonMode);
00911 const char *AlphaTestFuncToString();
00912 const char *DepthFuncToString();
00913 const char *RenderModeToString();
00914 const char *MatrixModeToString();
00915
00916 const char *ValueToString(GLint value,
00917 int valueTable[],
00918 const char *stringTable[],
00919 int tableSize);
00920
00921 void PrintMatrix(ostream &os,
00922 vtkIndent indent,
00923 GLfloat matrix[16]);
00924
00925 vtkOpenGLRenderWindow *Context;
00926 };
00927
00928
00929
00930 #endif