VTK
vtkPainterDeviceAdapter.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkPainterDeviceAdapter.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
15 /*
16  * Copyright 2004 Sandia Corporation.
17  * Under the terms of Contract DE-AC04-94AL85000, there is a non-exclusive
18  * license for use of this work by or on behalf of the
19  * U.S. Government. Redistribution and use in source and binary forms, with
20  * or without modification, are permitted provided that this Notice and any
21  * statement of authorship are reproduced on all copies.
22  */
23 
46 #ifndef __vtkPainterDeviceAdapter_h
47 #define __vtkPainterDeviceAdapter_h
48 
49 #include "vtkObject.h"
50 #include "vtkDataArray.h" // needed for inline functions.
51 class vtkRenderer;
52 
54 {
55 public:
56  static vtkPainterDeviceAdapter* New();
58  virtual void PrintSelf(ostream &os, vtkIndent indent);
59 
68  virtual void BeginPrimitive(int mode) = 0;
69 
71  virtual void EndPrimitive() = 0;
72 
75  virtual int IsAttributesSupported(int attribute)=0;
76 
78 
79  virtual void SendMultiTextureCoords(int numcomp, int type, const void *attribute,
80  int idx, vtkIdType offset) = 0;
82 
84 
94  virtual void SendAttribute(int index, int components, int type,
95  const void *attribute, vtkIdType offset=0) = 0;
97 
103  void SetAttributePointer(int index, vtkDataArray *attributeArray);
104 
106 
115  virtual void SetAttributePointer(int index, int numcomponents, int type,
116  int stride, const void *pointer) = 0;
118 
120 
121  virtual void EnableAttributeArray(int index) = 0;
122  virtual void DisableAttributeArray(int index) = 0;
124 
134  virtual void DrawArrays(int mode, vtkIdType first, vtkIdType count) = 0;
135 
137 
149  virtual void DrawElements(int mode, vtkIdType count, int type,
150  void *indices) = 0;
152 
155  virtual int Compatible(vtkRenderer *renderer) = 0;
156 
158  virtual void MakeLighting(int mode) = 0;
159 
161  virtual int QueryLighting() = 0;
162 
164  virtual void MakeMultisampling(int mode) = 0;
165 
167  virtual int QueryMultisampling() = 0;
168 
170  virtual void MakeBlending(int mode) = 0;
171 
173  virtual int QueryBlending() = 0;
174 
176  virtual void MakeVertexEmphasis(bool mode) = 0;
177 
179  VTK_LEGACY(virtual void MakeVertexEmphasisWithStencilCheck(int vtkNotUsed(mode)));
180 
182 
183  virtual void Stencil(int on) = 0;
184  virtual void WriteStencil(vtkIdType value) = 0;
185  virtual void TestStencil(vtkIdType value) = 0;
187 
188 protected:
191 
192 private:
193  vtkPainterDeviceAdapter(const vtkPainterDeviceAdapter &); // Not implemented.
194  void operator=(const vtkPainterDeviceAdapter &); // Not implemented.
195 };
196 
198  vtkDataArray *attributeArray)
199 {
200  this->SetAttributePointer(index, attributeArray->GetNumberOfComponents(),
201  attributeArray->GetDataType(), 0,
202  attributeArray->GetVoidPointer(0));
203 }
204 
205 #endif //_vtkPainterDeviceAdapter_h