00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00046 #ifndef __vtkPainterDeviceAdapter_h
00047 #define __vtkPainterDeviceAdapter_h
00048
00049 #include "vtkObject.h"
00050 #include "vtkDataArray.h"
00051 class vtkRenderer;
00052
00053 class VTK_RENDERING_EXPORT vtkPainterDeviceAdapter : public vtkObject
00054 {
00055 public:
00056 static vtkPainterDeviceAdapter* New();
00057 vtkTypeRevisionMacro(vtkPainterDeviceAdapter, vtkObject);
00058 virtual void PrintSelf(ostream &os, vtkIndent indent);
00059
00068 virtual void BeginPrimitive(int mode) = 0;
00069
00071 virtual void EndPrimitive() = 0;
00072
00075 virtual int IsAttributesSupported(int attribute)=0;
00076
00078
00088 virtual void SendAttribute(int index, int components, int type,
00089 const void *attribute, unsigned long offset=0) = 0;
00091
00097 void SetAttributePointer(int index, vtkDataArray *attributeArray);
00098
00100
00109 virtual void SetAttributePointer(int index, int numcomponents, int type,
00110 int stride, const void *pointer) = 0;
00112
00114
00115 virtual void EnableAttributeArray(int index) = 0;
00116 virtual void DisableAttributeArray(int index) = 0;
00118
00128 virtual void DrawArrays(int mode, vtkIdType first, vtkIdType count) = 0;
00129
00131
00143 virtual void DrawElements(int mode, vtkIdType count, int type,
00144 void *indices) = 0;
00146
00149 virtual int Compatible(vtkRenderer *renderer) = 0;
00150
00152 virtual void MakeLighting(int mode) = 0;
00153
00155 virtual int QueryLighting() = 0;
00156
00158 virtual void MakeMultisampling(int mode) = 0;
00159
00161 virtual int QueryMultisampling() = 0;
00162
00164 virtual void MakeBlending(int mode) = 0;
00165
00167 virtual int QueryBlending() = 0;
00168
00170 virtual void MakeVertexEmphasis(int mode) = 0;
00171
00173
00174 virtual void Stencil(int on) = 0;
00175 virtual void WriteStencil(vtkIdType value) = 0;
00176 virtual void TestStencil(vtkIdType value) = 0;
00178
00179 protected:
00180 vtkPainterDeviceAdapter();
00181 ~vtkPainterDeviceAdapter();
00182
00183 private:
00184 vtkPainterDeviceAdapter(const vtkPainterDeviceAdapter &);
00185 void operator=(const vtkPainterDeviceAdapter &);
00186 };
00187
00188 inline void vtkPainterDeviceAdapter::SetAttributePointer(int index,
00189 vtkDataArray *attributeArray)
00190 {
00191 this->SetAttributePointer(index, attributeArray->GetNumberOfComponents(),
00192 attributeArray->GetDataType(), 0,
00193 attributeArray->GetVoidPointer(0));
00194 }
00195
00196 #endif //_vtkPainterDeviceAdapter_h