VTK
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
dox
Rendering
vtkShader.h
Go to the documentation of this file.
1
/*=========================================================================
2
3
Program: Visualization Toolkit
4
Module: vtkShader.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 2003 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
42
#ifndef __vtkShader_h
43
#define __vtkShader_h
44
45
#include "
vtkObject.h
"
46
47
class
vtkActor
;
48
class
vtkCamera
;
49
class
vtkLight
;
50
class
vtkProperty
;
51
class
vtkRenderer
;
52
class
vtkShaderInternals;
53
class
vtkTexture
;
54
class
vtkWindow
;
55
class
vtkXMLDataElement
;
56
class
vtkXMLShader
;
57
58
class
VTK_RENDERING_EXPORT
vtkShader
:
public
vtkObject
59
{
60
public
:
61
vtkTypeMacro(
vtkShader
,
vtkObject
);
62
virtual
void
PrintSelf
(ostream &os,
vtkIndent
indent);
63
68
virtual
int
Compile() =0;
69
73
virtual
void
PassShaderVariables(
vtkActor
* actor,
vtkRenderer
* ren);
74
78
virtual
void
Bind
() { }
79
82
virtual
void
Unbind
() { }
83
87
virtual
void
ReleaseGraphicsResources
(
vtkWindow
*) { }
88
90
92
void
SetXMLShader(
vtkXMLShader
*);
93
vtkGetObjectMacro(XMLShader,
vtkXMLShader
);
95
97
int
HasShaderVariable(
const
char
*
name
);
98
100
103
void
AddShaderVariable(
const
char
*
name
,
int
num_of_elements,
104
const
int
*values);
105
void
AddShaderVariable(
const
char
*
name
,
int
num_of_elements,
106
const
float
*values);
107
void
AddShaderVariable(
const
char
*
name
,
int
num_of_elements,
108
const
double
*values);
110
113
int
GetShaderVariableSize(
const
char
*
name
);
114
117
int
GetShaderVariableType(
const
char
*
name
);
118
120
123
int
GetShaderVariable(
const
char
*
name
,
int
* values);
124
int
GetShaderVariable(
const
char
*
name
,
float
* values);
125
int
GetShaderVariable(
const
char
*
name
,
double
* values);
127
129
131
int
GetScope();
132
protected
:
133
vtkShader
();
134
~
vtkShader
();
136
137
vtkXMLShader
*
XMLShader
;
138
vtkShaderInternals*
Internals
;
139
140
//BTX
141
enum
MatrixOrders
142
{
143
RowMajor
,
144
ColumnMajor
145
};
146
//ETX
147
149
151
virtual
void
SetShaderParameters(
vtkActor
*,
vtkRenderer
*,
152
vtkXMLDataElement
*);
154
155
157
void
SetUniformParameter(
vtkActor
*,
vtkRenderer
*,
vtkXMLDataElement
*);
158
160
void
SetCameraParameter(
vtkActor
*,
vtkRenderer
*,
vtkXMLDataElement
*);
161
163
void
SetPropertyParameter(
vtkActor
*,
vtkRenderer
*,
vtkXMLDataElement
*);
164
166
void
SetLightParameter(
vtkActor
*,
vtkRenderer
*,
vtkXMLDataElement
*);
167
169
void
SetMatrixParameter(
vtkActor
*,
vtkRenderer
*,
vtkXMLDataElement
*);
170
172
void
SetSamplerParameter(
vtkActor
*,
vtkRenderer
*,
vtkXMLDataElement
*);
173
175
void
SetApplicationParameter(
vtkXMLDataElement
*);
176
178
180
virtual
void
SetUniformParameter(
const
char
*
name
,
int
numValues,
181
const
int
*
value
) =0;
182
virtual
void
SetUniformParameter(
const
char
*
name
,
int
numValues,
183
const
float
*
value
)=0;
184
virtual
void
SetUniformParameter(
const
char
*
name
,
int
numValues,
185
const
double
*
value
)=0;
187
189
191
virtual
void
SetMatrixParameter(
const
char
*
name
,
int
numValues,
192
int
order
,
const
float
*
value
)=0;
193
virtual
void
SetMatrixParameter(
const
char
*
name
,
int
numValues,
194
int
order
,
const
double
*
value
)=0;
195
virtual
void
SetMatrixParameter(
const
char
*
name
,
const
char
* state_matix_type,
196
const
char
* transform_type)=0;
198
199
201
206
virtual
void
SetSamplerParameter(
const
char
*
name
,
vtkTexture
* texture,
207
int
textureIndex)=0;
209
210
vtkTimeStamp
PassShaderVariablesTime
;
211
private
:
212
vtkShader
(
const
vtkShader
&);
// Not Implemented
213
void
operator=(
const
vtkShader
&);
// Not Implemented
214
};
215
#endif //__vtkShader_h
vtkActor
represents an object (geometry & properties) in a rendered scene
Definition:
vtkActor.h:49
vtkX3D::order
Definition:
vtkX3D.h:440
vtkObject
abstract base class for most VTK objects
Definition:
vtkObject.h:60
vtkXMLDataElement
Represents an XML element and those nested inside.
Definition:
vtkXMLDataElement.h:34
vtkProperty
represent surface properties of a geometric object
Definition:
vtkProperty.h:61
vtkShader::Bind
virtual void Bind()
Definition:
vtkShader.h:78
vtkTimeStamp
record modification and/or execution time
Definition:
vtkTimeStamp.h:33
vtkRenderer
abstract specification for renderers
Definition:
vtkRenderer.h:69
vtkShader::PassShaderVariablesTime
vtkTimeStamp PassShaderVariablesTime
Definition:
vtkShader.h:210
vtkWindow
window superclass for vtkRenderWindow
Definition:
vtkWindow.h:35
vtkShader::RowMajor
Definition:
vtkShader.h:143
vtkX3D::name
Definition:
vtkX3D.h:219
vtkObject::PrintSelf
virtual void PrintSelf(ostream &os, vtkIndent indent)
vtkXMLShader
encapsulates a Shader XML description.
Definition:
vtkXMLShader.h:33
vtkShader::MatrixOrders
MatrixOrders
Definition:
vtkShader.h:141
vtkIndent
a simple class to control print indentation
Definition:
vtkIndent.h:37
vtkCamera
a virtual camera for 3D rendering
Definition:
vtkCamera.h:47
vtkLight
a virtual light for 3D rendering
Definition:
vtkLight.h:59
vtkTexture
handles properties associated with a texture map
Definition:
vtkTexture.h:68
vtkShader::ReleaseGraphicsResources
virtual void ReleaseGraphicsResources(vtkWindow *)
Definition:
vtkShader.h:87
VTK_RENDERING_EXPORT
#define VTK_RENDERING_EXPORT
Definition:
vtkWin32Header.h:278
vtkX3D::value
Definition:
vtkX3D.h:220
vtkShader
Definition:
vtkShader.h:58
vtkShader::Unbind
virtual void Unbind()
Definition:
vtkShader.h:82
vtkShader::XMLShader
vtkXMLShader * XMLShader
Definition:
vtkShader.h:137
vtkObject.h
vtkShader::Internals
vtkShaderInternals * Internals
Definition:
vtkShader.h:138
Generated on Sun Oct 19 2014 13:07:33 for VTK by
1.8.8