OGRE
1.9.0
Main Page
Related Pages
Topics
Namespaces
Classes
Files
File List
File Members
Components
RTShaderSystem
include
OgreShaderPrerequisites.h
Go to the documentation of this file.
1
/*
2
-----------------------------------------------------------------------------
3
This source file is part of OGRE
4
(Object-oriented Graphics Rendering Engine)
5
For the latest info, see http://www.ogre3d.org
6
7
Copyright (c) 2000-2014 Torus Knot Software Ltd
8
Permission is hereby granted, free of charge, to any person obtaining a copy
9
of this software and associated documentation files (the "Software"), to deal
10
in the Software without restriction, including without limitation the rights
11
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12
copies of the Software, and to permit persons to whom the Software is
13
furnished to do so, subject to the following conditions:
14
15
The above copyright notice and this permission notice shall be included in
16
all copies or substantial portions of the Software.
17
18
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24
THE SOFTWARE.
25
-----------------------------------------------------------------------------
26
*/
27
#ifndef __ShaderPrerequisites_H__
28
#define __ShaderPrerequisites_H__
29
30
#include "
OgrePrerequisites.h
"
31
#include "
OgreCommon.h
"
32
33
namespace
Ogre
34
{
35
37
class
Technique
;
38
class
Pass
;
39
class
Renderable
;
40
class
Viewport
;
41
class
RenderObjectListener
;
42
class
TextureUnitState
;
43
class
Frustum
;
44
class
ScriptTranslator
;
45
class
ScriptCompiler
;
46
class
PropertyAbstractNode
;
47
class
MaterialSerializer
;
48
49
typedef
GeneralAllocatedObject
RTShaderSystemAlloc
;
50
51
namespace
RTShader
52
{
53
55
class
RenderState;
56
class
TargetRenderState;
57
class
SubRenderState;
58
class
SubRenderStateAccessor;
59
class
SubRenderStateFactory;
60
class
ProgramManager;
61
class
Program;
62
class
ProgramProcessor;
63
class
ProgramSet;
64
class
RenderState;
65
class
Parameter;
66
class
Function;
67
class
FFPRenderStateBuilder;
68
class
ShaderGenerator;
69
class
SGMaterialSerializerListener;
70
class
ProgramWriterFactory;
71
class
ProgramWriterManager;
72
74
template
<
class
T>
75
inline
void
sh_hash_combine
(
uint32
& seed, T
const
& v)
76
{
77
seed ^=
FastHash
((
const
char
*)&v,
sizeof
(T)) + 0x9e3779b9 + (seed<<6) + (seed>>2);
78
}
79
80
// Vertex shader output parameters compact policy.
81
enum
VSOutputCompactPolicy
82
{
83
VSOCP_LOW
= 0,
// VS Outputs will be compacted just in case the maximum slot count exceeded.
84
VSOCP_MEDIUM
= 1,
// VS Outputs will be compacted always without parameter splits.
85
VSOCP_HIGH
= 2
// VS Outputs will be compacted always including parameter splits.
86
};
87
88
enum
SkinningType
89
{
90
ST_LINEAR
,
91
ST_DUAL_QUATERNION
92
};
93
94
95
}
96
}
97
98
#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32 || OGRE_PLATFORM == OGRE_PLATFORM_WINRT
99
# if defined( OGRE_STATIC_LIB )
100
# define _OgreRTSSExport
101
# else
102
# if defined( OgreRTShaderSystem_EXPORTS )
103
# define _OgreRTSSExport __declspec( dllexport )
104
# else
105
# if defined( __MINGW32__ )
106
# define _OgreRTSSExport
107
# else
108
# define _OgreRTSSExport __declspec( dllimport )
109
# endif
110
# endif
111
# endif
112
#elif defined ( OGRE_GCC_VISIBILITY )
113
# define _OgreRTSSExport __attribute__ ((visibility("default")))
114
#else
115
# define _OgreRTSSExport
116
#endif
117
118
119
#endif
120
OgreCommon.h
OgrePrerequisites.h
Ogre::Frustum
A frustum represents a pyramid, capped at the near and far end which is used to represent either a vi...
Definition
OgreFrustum.h:86
Ogre::MaterialSerializer
Class for serializing Materials to / from a .material script.
Definition
OgreMaterialSerializer.h:107
Ogre::Pass
Class defining a single pass of a Technique (of a Material), i.e.
Definition
OgrePass.h:81
Ogre::PropertyAbstractNode
This abstract node represents a script property.
Definition
OgreScriptCompiler.h:148
Ogre::RenderObjectListener
Abstract interface which classes must implement if they wish to receive events from the scene manager...
Definition
OgreRenderObjectListener.h:44
Ogre::Renderable
Abstract class defining the interface all renderable objects must implement.
Definition
OgreRenderable.h:64
Ogre::ScriptCompiler
This is the main class for the compiler.
Definition
OgreScriptCompiler.h:189
Ogre::ScriptTranslator
This class translates script AST (abstract syntax tree) into Ogre resources.
Definition
OgreScriptTranslator.h:49
Ogre::Technique
Class representing an approach to rendering this particular Material.
Definition
OgreTechnique.h:54
Ogre::TextureUnitState
Class representing the state of a single texture unit during a Pass of a Technique,...
Definition
OgreTextureUnitState.h:63
Ogre::Viewport
An abstraction of a viewport, i.e.
Definition
OgreViewport.h:58
Ogre::FastHash
uint32 _OgreExport FastHash(const char *data, int len, uint32 hashSoFar=0)
Fast general hashing algorithm.
Ogre::RTShader
Definition
OgreShaderCGProgramProcessor.h:35
Ogre::RTShader::sh_hash_combine
void sh_hash_combine(uint32 &seed, T const &v)
Utility function with same style as boost::hash_combine.
Definition
OgreShaderPrerequisites.h:75
Ogre::RTShader::SkinningType
SkinningType
Definition
OgreShaderPrerequisites.h:89
Ogre::RTShader::ST_DUAL_QUATERNION
@ ST_DUAL_QUATERNION
Definition
OgreShaderPrerequisites.h:91
Ogre::RTShader::ST_LINEAR
@ ST_LINEAR
Definition
OgreShaderPrerequisites.h:90
Ogre::RTShader::VSOutputCompactPolicy
VSOutputCompactPolicy
Definition
OgreShaderPrerequisites.h:82
Ogre::RTShader::VSOCP_LOW
@ VSOCP_LOW
Definition
OgreShaderPrerequisites.h:83
Ogre::RTShader::VSOCP_MEDIUM
@ VSOCP_MEDIUM
Definition
OgreShaderPrerequisites.h:84
Ogre::RTShader::VSOCP_HIGH
@ VSOCP_HIGH
Definition
OgreShaderPrerequisites.h:85
Ogre
Definition
OgreAndroidLogListener.h:35
Ogre::RTShaderSystemAlloc
GeneralAllocatedObject RTShaderSystemAlloc
Definition
OgreShaderPrerequisites.h:49
Ogre::GeneralAllocatedObject
AllocatedObject< GeneralAllocPolicy > GeneralAllocatedObject
Definition
OgreMemoryAllocatorConfig.h:260
Ogre::uint32
unsigned int uint32
Definition
OgrePlatform.h:344
Generated on Mon Feb 10 2025 12:53:02 for OGRE by
1.13.2