commit x64 compilation from lulu cause the other branch dont seems to compile properly at home
This commit is contained in:
175
include/engine/core/shader_input.cpp
Normal file
175
include/engine/core/shader_input.cpp
Normal file
@ -0,0 +1,175 @@
|
||||
/* -----------------------------------------------------------------------------
|
||||
GSFramework
|
||||
Copyright 2001-2013 Emmanuel Julien. All Rights Reserved.
|
||||
----------------------------------------------------------------------------- */
|
||||
|
||||
|
||||
#include "core/shader_input.h"
|
||||
|
||||
using namespace GS;
|
||||
using namespace GS::Core;
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
ShaderInput::SemanticDesc ShaderInput::semantic_desc[LastSemantic + 1] =
|
||||
{
|
||||
{ "Position", CategoryVertexStream, Vector3, MediumP },
|
||||
{ "Normal", CategoryVertexStream, Vector3, LowP },
|
||||
{ "UV0", CategoryVertexStream, Vector2, MediumP },
|
||||
{ "UV1", CategoryVertexStream, Vector2, MediumP },
|
||||
{ "UV2", CategoryVertexStream, Vector2, MediumP },
|
||||
{ "VertexColor", CategoryVertexStream, Vector4, LowP },
|
||||
{ "Tangent", CategoryVertexStream, Vector3, LowP },
|
||||
{ "Bitangent", CategoryVertexStream, Vector3, LowP },
|
||||
{ "BoneIndex", CategoryVertexStream, Vector4, LowP },
|
||||
{ "BoneWeight", CategoryVertexStream, Vector4, LowP },
|
||||
|
||||
// Data uniform.
|
||||
{ "Constant", CategoryConstant, Vector4, MediumP },
|
||||
|
||||
{ "Texture2D", CategoryTexture, DataTexture2D, NoP },
|
||||
{ "Texture3D", CategoryTexture, DataTexture2D, NoP },
|
||||
{ "TextureCube", CategoryTexture, DataTextureCube, NoP },
|
||||
|
||||
{ "Clock", CategoryRenderer, Float, MediumP },
|
||||
{ "TimeOfDay", CategoryRenderer, Float, MediumP },
|
||||
{ "ViewVector", CategoryRenderer, Vector3, MediumP },
|
||||
{ "ViewPosition", CategoryRenderer, Vector4, MediumP },
|
||||
{ "Viewport", CategoryRenderer, Vector4, MediumP },
|
||||
{ "ZNear", CategoryRenderer, Float, MediumP },
|
||||
{ "ZFar", CategoryRenderer, Float, MediumP },
|
||||
{ "ZoomFactor", CategoryRenderer, Float, MediumP },
|
||||
{ "FxScale", CategoryRenderer, Float, MediumP },
|
||||
{ "InverseBufferSize", CategoryRenderer, Vector2, LowP },
|
||||
{ "InverseViewportSize", CategoryRenderer, Vector2, LowP },
|
||||
{ "DisplayBufferRatio", CategoryRenderer, Vector2, MediumP },
|
||||
{ "ViewportRatio", CategoryRenderer, Vector2, MediumP },
|
||||
{ "ViewDepthOffset", CategoryRenderer, Float, MediumP },
|
||||
{ "AmbientColor", CategoryRenderer, Vector3, LowP },
|
||||
{ "FogColor", CategoryRenderer, Vector3, LowP },
|
||||
{ "FogNear", CategoryRenderer, Float, MediumP },
|
||||
{ "FogFar", CategoryRenderer, Float, MediumP },
|
||||
{ "FogInverseRange", CategoryRenderer, Float, LowP },
|
||||
{ "DepthBuffer", CategoryRenderer, DataTexture2D, NoP },
|
||||
{ "FrameBuffer", CategoryRenderer, DataTexture2D, NoP },
|
||||
{ "GBuffer0", CategoryRenderer, DataTexture2D, NoP },
|
||||
{ "GBuffer1", CategoryRenderer, DataTexture2D, NoP },
|
||||
{ "GBuffer2", CategoryRenderer, DataTexture2D, NoP },
|
||||
{ "GBuffer3", CategoryRenderer, DataTexture2D, NoP },
|
||||
{ "NoiseMap", CategoryRenderer, DataTexture2D, NoP },
|
||||
|
||||
{ "NormalMatrix", CategoryTransform, Matrix3, LowP },
|
||||
{ "NormalViewMatrix", CategoryTransform, Matrix3, HighP },
|
||||
{ "ModelMatrix", CategoryTransform, Matrix4, HighP },
|
||||
{ "ViewMatrix", CategoryTransform, Matrix4, HighP },
|
||||
{ "ProjectionMatrix", CategoryTransform, Matrix4, HighP },
|
||||
{ "ModelViewMatrix", CategoryTransform, Matrix4, HighP },
|
||||
{ "ModelViewProjectionMatrix", CategoryTransform, Matrix4, HighP },
|
||||
{ "InverseViewProjectionMatrix", CategoryTransform, Matrix4, HighP },
|
||||
{ "InverseViewProjectionMatrixAtOrigin", CategoryTransform, Matrix4, HighP },
|
||||
|
||||
{ "PreviousModelViewMatrix", CategoryPreviousTransform, Matrix4, HighP },
|
||||
{ "PreviousModelViewProjectionMatrix", CategoryPreviousTransform, Matrix4, HighP },
|
||||
|
||||
{ "MaterialOpacity", CategoryMaterialOpacity, Float, LowP },
|
||||
|
||||
{ "MaterialDiffuse", CategoryMaterial, Vector4, LowP },
|
||||
{ "MaterialSpecular", CategoryMaterial, Vector4, LowP },
|
||||
{ "MaterialSelf", CategoryMaterial, Vector4, LowP },
|
||||
{ "MaterialAmbient", CategoryMaterial, Vector4, LowP },
|
||||
{ "MaterialGlossiness", CategoryMaterial, Float, LowP },
|
||||
{ "MaterialReflection", CategoryMaterial, Float, LowP },
|
||||
{ "MaterialAlphaThreshold", CategoryMaterial, Float, LowP },
|
||||
{ "MaterialDepthBias", CategoryMaterial, Float, LowP },
|
||||
{ "MaterialTexture0", CategoryMaterial, DataTexture2D, NoP },
|
||||
{ "MaterialTexture1", CategoryMaterial, DataTexture2D, NoP },
|
||||
{ "MaterialTexture2", CategoryMaterial, DataTexture2D, NoP },
|
||||
{ "MaterialTexture3", CategoryMaterial, DataTexture2D, NoP },
|
||||
{ "MaterialTexture4", CategoryMaterial, DataTexture2D, NoP },
|
||||
{ "MaterialTexture5", CategoryMaterial, DataTexture2D, NoP },
|
||||
{ "MaterialTexture6", CategoryMaterial, DataTexture2D, NoP },
|
||||
{ "MaterialTexture7", CategoryMaterial, DataTexture2D, NoP },
|
||||
|
||||
{ "LightRange", CategoryLight, Float, MediumP },
|
||||
{ "LightSpotEdge", CategoryLight, Float, MediumP },
|
||||
{ "LightSpotCone", CategoryLight, Float, MediumP },
|
||||
{ "LightShadowBias", CategoryLight, Float, MediumP },
|
||||
{ "LightDiffuseColor", CategoryLight, Vector3, LowP },
|
||||
{ "LightSpecularColor", CategoryLight, Vector3, LowP },
|
||||
{ "LightShadowColor", CategoryLight, Vector3, LowP },
|
||||
{ "LightViewPosition", CategoryLight, Vector3, MediumP },
|
||||
{ "LightViewDirection", CategoryLight, Vector3, LowP },
|
||||
{ "LightShadowMatrix0", CategoryLight, Matrix4, MediumP },
|
||||
{ "LightShadowMatrix1", CategoryLight, Matrix4, MediumP },
|
||||
{ "LightShadowMatrix2", CategoryLight, Matrix4, MediumP },
|
||||
{ "LightShadowMatrix3", CategoryLight, Matrix4, MediumP },
|
||||
{ "LightShadowMatrix4", CategoryLight, Matrix4, MediumP },
|
||||
{ "LightShadowMatrix5", CategoryLight, Matrix4, MediumP },
|
||||
{ "InverseShadowMapSize", CategoryLight, Float, LowP },
|
||||
{ "LightShadowMap0", CategoryLight, DataTextureShadow, NoP },
|
||||
{ "LightShadowMap1", CategoryLight, DataTextureShadow, NoP },
|
||||
{ "LightShadowMap2", CategoryLight, DataTextureShadow, NoP },
|
||||
{ "LightShadowMap3", CategoryLight, DataTextureShadow, NoP },
|
||||
{ "LightShadowMap4", CategoryLight, DataTextureShadow, NoP },
|
||||
{ "LightShadowMap5", CategoryLight, DataTextureShadow, NoP },
|
||||
{ "LightPSSMSliceDistance0", CategoryLight, Float, MediumP },
|
||||
{ "LightPSSMSliceDistance1", CategoryLight, Float, MediumP },
|
||||
{ "LightPSSMSliceDistance2", CategoryLight, Float, MediumP },
|
||||
{ "LightPSSMSliceDistance3", CategoryLight, Float, MediumP },
|
||||
{ "ViewToLightMatrix", CategoryLight, Matrix4, MediumP },
|
||||
{ "LightProjectionMap", CategoryLight, DataTexture2D, NoP },
|
||||
|
||||
{ "BoneMatrix", CategorySkin, Matrix4, MediumP },
|
||||
{ "PreviousBoneMatrix", CategorySkin, Matrix4, MediumP },
|
||||
|
||||
{ "SemanticLast", CategoryLast, NoData, NoP }
|
||||
};
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
const char *ShaderInput::GetCategoryName(Category category)
|
||||
{
|
||||
static const char *cat[CategoryLast] =
|
||||
{
|
||||
"VertexStream",
|
||||
"Constant",
|
||||
"Texture",
|
||||
"Skin",
|
||||
"Renderer",
|
||||
"MaterialOpacity",
|
||||
"Material",
|
||||
"Transform",
|
||||
"PreviousTransform",
|
||||
"Light"
|
||||
};
|
||||
return cat[category];
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
bool ShaderInput::ConsumesTextureUnit() const
|
||||
{
|
||||
switch (data_type)
|
||||
{
|
||||
case DataTexture2D:
|
||||
case DataTexture3D:
|
||||
case DataTextureCube:
|
||||
case DataTextureShadow:
|
||||
return true;
|
||||
|
||||
default: break;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
ShaderInput::ShaderInput()
|
||||
{
|
||||
type = None;
|
||||
scope = Vertex | Pixel;
|
||||
semantic = LastSemantic;
|
||||
array_size = 1;
|
||||
|
||||
parm_v.Set(0, 0, 0);
|
||||
data_type = NoData;
|
||||
}
|
||||
Reference in New Issue
Block a user