VTK
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
dox
Rendering
Core
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 "vtkRenderingCoreModule.h"
// For export macro
46
#include "
vtkObject.h
"
47
48
class
vtkActor
;
49
class
vtkCamera
;
50
class
vtkLight
;
51
class
vtkProperty
;
52
class
vtkRenderer
;
53
class
vtkShaderInternals;
54
class
vtkTexture
;
55
class
vtkWindow
;
56
class
vtkXMLDataElement
;
57
class
vtkXMLShader
;
58
59
class
VTKRENDERINGCORE_EXPORT
vtkShader
:
public
vtkObject
60
{
61
public
:
62
vtkTypeMacro(
vtkShader
,
vtkObject
);
63
virtual
void
PrintSelf
(ostream &os,
vtkIndent
indent);
64
69
virtual
int
Compile() =0;
70
74
virtual
void
PassShaderVariables(
vtkActor
* actor,
vtkRenderer
* ren);
75
79
virtual
void
Bind
() { }
80
83
virtual
void
Unbind
() { }
84
88
virtual
void
ReleaseGraphicsResources
(
vtkWindow
*) { }
89
91
93
void
SetXMLShader(
vtkXMLShader
*);
94
vtkGetObjectMacro(XMLShader,
vtkXMLShader
);
96
98
int
HasShaderVariable(
const
char
*
name
);
99
101
104
void
AddShaderVariable(
const
char
*
name
,
int
num_of_elements,
105
const
int
*values);
106
void
AddShaderVariable(
const
char
*
name
,
int
num_of_elements,
107
const
float
*values);
108
void
AddShaderVariable(
const
char
*
name
,
int
num_of_elements,
109
const
double
*values);
111
114
int
GetShaderVariableSize(
const
char
*
name
);
115
118
int
GetShaderVariableType(
const
char
*
name
);
119
121
124
int
GetShaderVariable(
const
char
*
name
,
int
* values);
125
int
GetShaderVariable(
const
char
*
name
,
float
* values);
126
int
GetShaderVariable(
const
char
*
name
,
double
* values);
128
130
132
int
GetScope();
133
protected
:
134
vtkShader
();
135
~
vtkShader
();
137
138
vtkXMLShader
*
XMLShader
;
139
vtkShaderInternals*
Internals
;
140
141
//BTX
142
enum
MatrixOrders
143
{
144
RowMajor
,
145
ColumnMajor
146
};
147
//ETX
148
150
152
virtual
void
SetShaderParameters(
vtkActor
*,
vtkRenderer
*,
153
vtkXMLDataElement
*);
155
156
158
void
SetUniformParameter(
vtkActor
*,
vtkRenderer
*,
vtkXMLDataElement
*);
159
161
void
SetCameraParameter(
vtkActor
*,
vtkRenderer
*,
vtkXMLDataElement
*);
162
164
void
SetPropertyParameter(
vtkActor
*,
vtkRenderer
*,
vtkXMLDataElement
*);
165
167
void
SetLightParameter(
vtkActor
*,
vtkRenderer
*,
vtkXMLDataElement
*);
168
170
void
SetMatrixParameter(
vtkActor
*,
vtkRenderer
*,
vtkXMLDataElement
*);
171
173
void
SetSamplerParameter(
vtkActor
*,
vtkRenderer
*,
vtkXMLDataElement
*);
174
176
void
SetApplicationParameter(
vtkXMLDataElement
*);
177
179
181
virtual
void
SetUniformParameter(
const
char
*
name
,
int
numValues,
182
const
int
*
value
) =0;
183
virtual
void
SetUniformParameter(
const
char
*
name
,
int
numValues,
184
const
float
*
value
)=0;
185
virtual
void
SetUniformParameter(
const
char
*
name
,
int
numValues,
186
const
double
*
value
)=0;
188
190
192
virtual
void
SetMatrixParameter(
const
char
*
name
,
int
numValues,
193
int
order
,
const
float
*
value
)=0;
194
virtual
void
SetMatrixParameter(
const
char
*
name
,
int
numValues,
195
int
order
,
const
double
*
value
)=0;
196
virtual
void
SetMatrixParameter(
const
char
*
name
,
const
char
* state_matix_type,
197
const
char
* transform_type)=0;
199
200
202
207
virtual
void
SetSamplerParameter(
const
char
*
name
,
vtkTexture
* texture,
208
int
textureIndex)=0;
210
211
vtkTimeStamp
PassShaderVariablesTime
;
212
private
:
213
vtkShader
(
const
vtkShader
&);
// Not Implemented
214
void
operator=(
const
vtkShader
&);
// Not Implemented
215
};
216
#endif //__vtkShader_h
Generated on Thu May 24 2012 22:22:35 for VTK by
1.8.1