Removes remaining fixed program used in shader pipelines and adds check on FFP create.
Commented By: Stan Differential Revision: https://code.wildfiregames.com/D3048 This was SVN commit r24121.
This commit is contained in:
parent
8e547cdce5
commit
6e3db3d84c
6
binaries/data/mods/public/shaders/arb/dummy.fp
Normal file
6
binaries/data/mods/public/shaders/arb/dummy.fp
Normal file
@ -0,0 +1,6 @@
|
||||
!!ARBfp1.0
|
||||
TEMP color;
|
||||
MOV color, 0.0;
|
||||
MOV color.a, 1.0;
|
||||
MOV result.color, color;
|
||||
END
|
12
binaries/data/mods/public/shaders/arb/dummy.vp
Normal file
12
binaries/data/mods/public/shaders/arb/dummy.vp
Normal file
@ -0,0 +1,12 @@
|
||||
!!ARBvp1.0
|
||||
|
||||
ATTRIB position = vertex.position;
|
||||
|
||||
PARAM transform[4] = { program.local[0..3] };
|
||||
|
||||
DP4 result.position.x, transform[0], position;
|
||||
DP4 result.position.y, transform[1], position;
|
||||
DP4 result.position.z, transform[2], position;
|
||||
DP4 result.position.w, transform[3], position;
|
||||
|
||||
END
|
11
binaries/data/mods/public/shaders/arb/dummy.xml
Normal file
11
binaries/data/mods/public/shaders/arb/dummy.xml
Normal file
@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<program type="arb">
|
||||
|
||||
<vertex file="arb/dummy.vp">
|
||||
<stream name="pos"/>
|
||||
<uniform name="transform" loc="0" type="mat4"/>
|
||||
</vertex>
|
||||
|
||||
<fragment file="arb/dummy.fp"/>
|
||||
|
||||
</program>
|
6
binaries/data/mods/public/shaders/glsl/dummy.fs
Normal file
6
binaries/data/mods/public/shaders/glsl/dummy.fs
Normal file
@ -0,0 +1,6 @@
|
||||
#version 110
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);
|
||||
}
|
10
binaries/data/mods/public/shaders/glsl/dummy.vs
Normal file
10
binaries/data/mods/public/shaders/glsl/dummy.vs
Normal file
@ -0,0 +1,10 @@
|
||||
#version 110
|
||||
|
||||
attribute vec3 a_vertex;
|
||||
|
||||
uniform mat4 transform;
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_Position = transform * vec4(a_vertex, 1.0);
|
||||
}
|
11
binaries/data/mods/public/shaders/glsl/dummy.xml
Normal file
11
binaries/data/mods/public/shaders/glsl/dummy.xml
Normal file
@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<program type="glsl">
|
||||
|
||||
<vertex file="glsl/dummy.vs">
|
||||
<stream name="pos"/>
|
||||
<attrib name="a_vertex" semantics="gl_Vertex"/>
|
||||
</vertex>
|
||||
|
||||
<fragment file="glsl/dummy.fs"/>
|
||||
|
||||
</program>
|
@ -1135,6 +1135,7 @@ public:
|
||||
|
||||
/*static*/ CShaderProgram* CShaderProgram::ConstructFFP(const std::string& id, const CShaderDefines& defines)
|
||||
{
|
||||
LOGWARNING("CShaderProgram::ConstructFFP: '%s': fixed pipeline is going to be removed soon, don't use its programs", id.c_str());
|
||||
if (id == "dummy")
|
||||
return new CShaderProgramFFP_Dummy();
|
||||
if (id == "overlayline")
|
||||
|
@ -59,6 +59,25 @@ extern GameLoopState* g_AtlasGameLoop;
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// TerrainRenderer implementation
|
||||
|
||||
namespace
|
||||
{
|
||||
|
||||
CShaderProgramPtr GetDummyShader()
|
||||
{
|
||||
const char* shaderName;
|
||||
if (g_RenderingOptions.GetRenderPath() == RenderPath::SHADER)
|
||||
{
|
||||
if (g_RenderingOptions.GetPreferGLSL())
|
||||
shaderName = "glsl/dummy";
|
||||
else
|
||||
shaderName = "arb/dummy";
|
||||
}
|
||||
else
|
||||
shaderName = "fixed:dummy";
|
||||
return g_Renderer.GetShaderManager().LoadProgram(shaderName, CShaderDefines());
|
||||
}
|
||||
|
||||
} // anonymous namespace
|
||||
|
||||
/**
|
||||
* TerrainRenderer keeps track of which phase it is in, to detect
|
||||
@ -185,7 +204,7 @@ void TerrainRenderer::RenderTerrainFixed(int cullGroup)
|
||||
if (visiblePatches.empty() && visibleDecals.empty())
|
||||
return;
|
||||
|
||||
CShaderProgramPtr dummyShader = g_Renderer.GetShaderManager().LoadProgram("fixed:dummy", CShaderDefines());
|
||||
CShaderProgramPtr dummyShader = GetDummyShader();
|
||||
dummyShader->Bind();
|
||||
|
||||
// render the solid black sides of the map first
|
||||
@ -403,7 +422,7 @@ void TerrainRenderer::RenderTerrainOverlayTexture(int cullGroup, CMatrix3D& text
|
||||
glLoadMatrixf(&textureMatrix._11);
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
|
||||
CShaderProgramPtr dummyShader = g_Renderer.GetShaderManager().LoadProgram("fixed:dummy", CShaderDefines());
|
||||
CShaderProgramPtr dummyShader = GetDummyShader();
|
||||
dummyShader->Bind();
|
||||
CPatchRData::RenderStreams(visiblePatches, dummyShader, STREAM_POS|STREAM_POSTOUV0);
|
||||
dummyShader->Unbind();
|
||||
@ -540,7 +559,7 @@ void TerrainRenderer::RenderPatches(int cullGroup)
|
||||
#if CONFIG2_GLES
|
||||
#warning TODO: implement TerrainRenderer::RenderPatches for GLES
|
||||
#else
|
||||
CShaderProgramPtr dummyShader = g_Renderer.GetShaderManager().LoadProgram("fixed:dummy", CShaderDefines());
|
||||
CShaderProgramPtr dummyShader = GetDummyShader();
|
||||
dummyShader->Bind();
|
||||
|
||||
glEnableClientState(GL_VERTEX_ARRAY);
|
||||
@ -903,7 +922,7 @@ void TerrainRenderer::RenderSimpleWater(int cullGroup)
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB_ARB, GL_TEXTURE);
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB_ARB, GL_SRC_ALPHA);
|
||||
|
||||
CShaderProgramPtr dummyShader = g_Renderer.GetShaderManager().LoadProgram("fixed:dummy", CShaderDefines());
|
||||
CShaderProgramPtr dummyShader = GetDummyShader();
|
||||
dummyShader->Bind();
|
||||
|
||||
glEnableClientState(GL_VERTEX_ARRAY);
|
||||
|
Loading…
Reference in New Issue
Block a user