00001
00002
00003
00004
00005
00006
00007
00008 #ifndef __SP_SHADER_CONFIG_TYPES_H__
00009 #define __SP_SHADER_CONFIG_TYPES_H__
00010
00011
00012 #include "Base/spStandard.hpp"
00013
00014 #include <boost/function.hpp>
00015
00016
00017 namespace sp
00018 {
00019
00020 namespace scene { class MaterialNode; };
00021
00022 namespace video
00023 {
00024
00025
00026
00027
00028
00029
00031 enum EShaderTypes
00032 {
00033 SHADER_DUMMY,
00034 SHADER_VERTEX_PROGRAM,
00035 SHADER_PIXEL_PROGRAM,
00036 SHADER_VERTEX,
00037 SHADER_PIXEL,
00038 SHADER_GEOMETRY,
00039 SHADER_HULL,
00040 SHADER_DOMAIN,
00041 SHADER_COMPUTE,
00042 };
00043
00045 enum EConstantTypes
00046 {
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061 CONSTANT_UNKNOWN,
00062 CONSTANT_BOOL,
00063 CONSTANT_INT,
00064 CONSTANT_FLOAT,
00065 CONSTANT_VECTOR2,
00066 CONSTANT_VECTOR3,
00067 CONSTANT_VECTOR4,
00068 CONSTANT_MATRIX2,
00069 CONSTANT_MATRIX3,
00070 CONSTANT_MATRIX4,
00071 CONSTANT_STRUCT,
00072 };
00073
00075 enum EShaderVersions
00076 {
00077 DUMMYSHADER_VERSION,
00078
00079 GLSL_VERSION_1_20,
00080 GLSL_VERSION_1_30,
00081 GLSL_VERSION_1_40,
00082 GLSL_VERSION_1_50,
00083 GLSL_VERSION_3_30_6,
00084 GLSL_VERSION_4_00_8,
00085
00086 HLSL_VERTEX_1_0,
00087 HLSL_VERTEX_2_0,
00088 HLSL_VERTEX_2_a,
00089 HLSL_VERTEX_3_0,
00090 HLSL_VERTEX_4_0,
00091 HLSL_VERTEX_4_1,
00092 HLSL_VERTEX_5_0,
00093
00094 HLSL_PIXEL_1_0,
00095 HLSL_PIXEL_1_1,
00096 HLSL_PIXEL_1_2,
00097 HLSL_PIXEL_1_3,
00098 HLSL_PIXEL_1_4,
00099 HLSL_PIXEL_2_0,
00100 HLSL_PIXEL_2_a,
00101 HLSL_PIXEL_2_b,
00102 HLSL_PIXEL_3_0,
00103 HLSL_PIXEL_4_0,
00104 HLSL_PIXEL_4_1,
00105 HLSL_PIXEL_5_0,
00106
00107 HLSL_GEOMETRY_4_0,
00108 HLSL_GEOMETRY_4_1,
00109 HLSL_GEOMETRY_5_0,
00110
00111 HLSL_COMPUTE_4_0,
00112 HLSL_COMPUTE_4_1,
00113 HLSL_COMPUTE_5_0,
00114
00115 HLSL_HULL_5_0,
00116
00117 HLSL_DOMAIN_5_0,
00118
00119 CG_VERSION_2_0,
00120 };
00121
00122
00123 class Texture;
00124 class TextureLayer;
00125 class Shader;
00126 class ShaderClass;
00127
00136 typedef boost::function<void (ShaderClass* Table, const scene::MaterialNode* Object)> ShaderObjectCallback;
00137
00143 typedef boost::function<void (ShaderClass* Table, const std::vector<TextureLayer*> &TexLayers)> ShaderSurfaceCallback;
00144
00145
00146 }
00147
00148 }
00149
00150
00151 #endif
00152
00153
00154
00155