Removes deprecated gl_*Matrix builtins from GLSL shaders.
Tested By: Freagarach, Stan Differential Revision: https://code.wildfiregames.com/D3635 This was SVN commit r25018.
This commit is contained in:
parent
373b8b6ff1
commit
76af18b23a
@ -3,10 +3,12 @@
|
||||
ATTRIB position = vertex.position;
|
||||
ATTRIB uv = vertex.texcoord[0];
|
||||
|
||||
DP4 result.position.x, state.matrix.mvp.row[0], position;
|
||||
DP4 result.position.y, state.matrix.mvp.row[1], position;
|
||||
DP4 result.position.z, state.matrix.mvp.row[2], position;
|
||||
DP4 result.position.w, state.matrix.mvp.row[3], 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;
|
||||
|
||||
MOV result.texcoord, uv;
|
||||
|
||||
|
@ -4,6 +4,7 @@
|
||||
<vertex file="arb/foreground_overlay.vp">
|
||||
<stream name="pos"/>
|
||||
<stream name="uv0"/>
|
||||
<uniform name="transform" loc="0" type="mat4"/>
|
||||
</vertex>
|
||||
|
||||
<fragment file="arb/foreground_overlay.fp">
|
||||
|
@ -1,13 +1,15 @@
|
||||
!!ARBvp1.0
|
||||
|
||||
PARAM transform[4] = { program.local[0..3] };
|
||||
#if !IGNORE_LOS
|
||||
PARAM losTransform = program.local[0];
|
||||
PARAM losTransform = program.local[4];
|
||||
#endif
|
||||
ATTRIB position = vertex.position;
|
||||
|
||||
DP4 result.position.x, state.matrix.mvp.row[0], position;
|
||||
DP4 result.position.y, state.matrix.mvp.row[1], position;
|
||||
DP4 result.position.z, state.matrix.mvp.row[2], position;
|
||||
DP4 result.position.w, state.matrix.mvp.row[3], position;
|
||||
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;
|
||||
|
||||
MOV result.texcoord[0], vertex.texcoord[0];
|
||||
#if !IGNORE_LOS
|
||||
|
@ -11,7 +11,8 @@
|
||||
<stream name="pos"/>
|
||||
<stream name="uv0"/>
|
||||
<stream name="color" if="!USE_OBJECTCOLOR"/>
|
||||
<uniform name="losTransform" loc="0" type="vec2" if="!IGNORE_LOS"/>
|
||||
<uniform name="transform" loc="0" type="mat4"/>
|
||||
<uniform name="losTransform" loc="4" type="vec2" if="!IGNORE_LOS"/>
|
||||
</vertex>
|
||||
|
||||
<fragment file="arb/overlayline.fp">
|
||||
|
@ -6,5 +6,5 @@ varying vec2 v_tex;
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_FragColor = texture2D(baseTex, v_tex) * colorMul;
|
||||
gl_FragColor = texture2D(baseTex, v_tex) * colorMul;
|
||||
}
|
||||
|
@ -1,11 +1,14 @@
|
||||
#version 110
|
||||
|
||||
uniform mat4 transform;
|
||||
|
||||
varying vec2 v_tex;
|
||||
|
||||
attribute vec3 a_vertex;
|
||||
attribute vec2 a_uv0;
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_Position = gl_ModelViewProjectionMatrix * vec4(a_vertex, 1.0);
|
||||
v_tex = a_uv0;
|
||||
gl_Position = transform * vec4(a_vertex, 1.0);
|
||||
v_tex = a_uv0;
|
||||
}
|
||||
|
@ -3,9 +3,9 @@
|
||||
|
||||
<vertex file="glsl/foreground_overlay.vs">
|
||||
<stream name="pos"/>
|
||||
<stream name="uv0"/>
|
||||
<stream name="uv0"/>
|
||||
<attrib name="a_vertex" semantics="gl_Vertex"/>
|
||||
<attrib name="a_uv0" semantics="gl_MultiTexCoord0"/>
|
||||
<attrib name="a_uv0" semantics="gl_MultiTexCoord0"/>
|
||||
</vertex>
|
||||
|
||||
<fragment file="glsl/foreground_overlay.fs"/>
|
||||
|
@ -2,6 +2,8 @@
|
||||
|
||||
#include "common/los_vertex.h"
|
||||
|
||||
uniform mat4 transform;
|
||||
|
||||
attribute vec3 a_vertex;
|
||||
attribute vec2 a_uv0;
|
||||
|
||||
@ -19,5 +21,5 @@ void main()
|
||||
#if !USE_OBJECTCOLOR
|
||||
v_color = a_color;
|
||||
#endif
|
||||
gl_Position = gl_ModelViewProjectionMatrix * vec4(a_vertex, 1.0);
|
||||
gl_Position = transform * vec4(a_vertex, 1.0);
|
||||
}
|
||||
|
@ -19,6 +19,7 @@
|
||||
|
||||
#include "OverlayRenderer.h"
|
||||
|
||||
#include "graphics/Camera.h"
|
||||
#include "graphics/LOSTexture.h"
|
||||
#include "graphics/Overlay.h"
|
||||
#include "graphics/Terrain.h"
|
||||
@ -455,6 +456,8 @@ void OverlayRenderer::RenderTexturedOverlayLines()
|
||||
shaderTexLineNormal->BindTexture(str_losTex, los.GetTexture());
|
||||
shaderTexLineNormal->Uniform(str_losTransform, los.GetTextureMatrix()[0], los.GetTextureMatrix()[12], 0.f, 0.f);
|
||||
|
||||
shaderTexLineNormal->Uniform(str_transform, g_Renderer.GetViewCamera().GetViewProjection());
|
||||
|
||||
// batch render only the non-always-visible overlay lines using the normal shader
|
||||
RenderTexturedOverlayLines(shaderTexLineNormal, false);
|
||||
|
||||
@ -470,6 +473,8 @@ void OverlayRenderer::RenderTexturedOverlayLines()
|
||||
shaderTexLineAlwaysVisible->BindTexture(str_losTex, los.GetTexture());
|
||||
shaderTexLineAlwaysVisible->Uniform(str_losTransform, los.GetTextureMatrix()[0], los.GetTextureMatrix()[12], 0.f, 0.f);
|
||||
|
||||
shaderTexLineAlwaysVisible->Uniform(str_transform, g_Renderer.GetViewCamera().GetViewProjection());
|
||||
|
||||
// batch render only the always-visible overlay lines using the LoS-ignored shader
|
||||
RenderTexturedOverlayLines(shaderTexLineAlwaysVisible, true);
|
||||
|
||||
@ -541,6 +546,8 @@ void OverlayRenderer::RenderQuadOverlays()
|
||||
shader->BindTexture(str_losTex, los.GetTexture());
|
||||
shader->Uniform(str_losTransform, los.GetTextureMatrix()[0], los.GetTextureMatrix()[12], 0.f, 0.f);
|
||||
|
||||
shader->Uniform(str_transform, g_Renderer.GetViewCamera().GetViewProjection());
|
||||
|
||||
// Base offsets (in bytes) of the two backing stores relative to their owner VBO
|
||||
u8* indexBase = m->quadIndices.Bind();
|
||||
u8* vertexBase = m->quadVertices.Bind();
|
||||
@ -626,6 +633,8 @@ void OverlayRenderer::RenderForegroundOverlays(const CCamera& viewCamera)
|
||||
tech->BeginPass();
|
||||
CShaderProgramPtr shader = tech->GetShader();
|
||||
|
||||
shader->Uniform(str_transform, g_Renderer.GetViewCamera().GetViewProjection());
|
||||
|
||||
float uvs[8] = { 0,1, 1,1, 1,0, 0,0 };
|
||||
|
||||
shader->TexCoordPointer(GL_TEXTURE0, 2, GL_FLOAT, sizeof(float)*2, &uvs[0]);
|
||||
@ -633,11 +642,10 @@ void OverlayRenderer::RenderForegroundOverlays(const CCamera& viewCamera)
|
||||
for (size_t i = 0; i < m->sprites.size(); ++i)
|
||||
{
|
||||
SOverlaySprite* sprite = m->sprites[i];
|
||||
if (!i || sprite->m_Texture != m->sprites[i - 1]->m_Texture)
|
||||
shader->BindTexture(str_baseTex, sprite->m_Texture);
|
||||
|
||||
shader->BindTexture(str_baseTex, sprite->m_Texture);
|
||||
|
||||
if (shader)
|
||||
shader->Uniform(str_colorMul, sprite->m_Color);
|
||||
shader->Uniform(str_colorMul, sprite->m_Color);
|
||||
|
||||
CVector3D pos[4] = {
|
||||
sprite->m_Position + right*sprite->m_X0 + up*sprite->m_Y0,
|
||||
|
Loading…
Reference in New Issue
Block a user