Skip to content

Commit

Permalink
glsl: Avoid using uniform initialisers.
Browse files Browse the repository at this point in the history
Maybe this will help with compatibility, since according to https://www.khronos.org/opengl/wiki/Uniform_(GLSL)
“Platform Issue (Unknown): Some drivers do not implement uniform initializers correctly.”
  • Loading branch information
Cyp committed Apr 9, 2017
1 parent 6147ed7 commit 8a2ff44
Show file tree
Hide file tree
Showing 7 changed files with 15 additions and 15 deletions.
2 changes: 1 addition & 1 deletion data/base/shaders/rect.frag
@@ -1,6 +1,6 @@
#version 120

uniform vec4 color = vec4(1.);
uniform vec4 color;


void main()
Expand Down
4 changes: 2 additions & 2 deletions data/base/shaders/terrain_water.vert
Expand Up @@ -7,8 +7,8 @@ uniform vec4 paramy1;
uniform vec4 paramx2;
uniform vec4 paramy2;

uniform mat4 textureMatrix1 = mat4(1.);
uniform mat4 textureMatrix2 = mat4(1.);
uniform mat4 textureMatrix1;
uniform mat4 textureMatrix2;

attribute vec4 vertex;
attribute vec4 vertexColor;
Expand Down
2 changes: 1 addition & 1 deletion data/base/shaders/text.frag
@@ -1,6 +1,6 @@
#version 120

uniform vec4 color = vec4(1.);
uniform vec4 color;
uniform sampler2D texture;

varying vec2 uv;
Expand Down
2 changes: 1 addition & 1 deletion data/base/shaders/texturedrect.frag
@@ -1,6 +1,6 @@
#version 120

uniform vec4 color = vec4(1.);
uniform vec4 color;
uniform sampler2D texture;

varying vec2 uv;
Expand Down
2 changes: 1 addition & 1 deletion lib/ivis_opengl/pieblitfunc.cpp
Expand Up @@ -157,7 +157,7 @@ void GFX::draw(const glm::mat4 &modelViewProjectionMatrix)
{
pie_SetTexturePage(TEXPAGE_EXTERN);
glBindTexture(GL_TEXTURE_2D, mTexture);
pie_ActivateShader(SHADER_GFX_TEXT, modelViewProjectionMatrix, 0);
pie_ActivateShader(SHADER_GFX_TEXT, modelViewProjectionMatrix, glm::vec4(1), 0);
glEnableVertexAttribArray(VERTEX_COORDS_ATTRIB_INDEX);
glBindBuffer(GL_ARRAY_BUFFER, mBuffers[VBO_TEXCOORD]);
glVertexAttribPointer(VERTEX_COORDS_ATTRIB_INDEX, 2, GL_FLOAT, false, 0, nullptr);
Expand Down
8 changes: 4 additions & 4 deletions lib/ivis_opengl/piestate.cpp
Expand Up @@ -368,13 +368,13 @@ bool pie_LoadShaders()

debug(LOG_3D, "Loading shader: SHADER_TERRAIN");
result = pie_LoadShader("terrain program", "shaders/terrain_water.vert", "shaders/terrain.frag",
{ "ModelViewProjectionMatrix", "paramx1", "paramy1", "paramx2", "paramy2", "tex", "lightmap_tex", "textureMatrix2",
{ "ModelViewProjectionMatrix", "paramx1", "paramy1", "paramx2", "paramy2", "tex", "lightmap_tex", "textureMatrix1", "textureMatrix2",
"fogEnabled", "fogEnd", "fogStart", "fogColor" });
ASSERT_OR_RETURN(false, result && ++shaderEnum == SHADER_TERRAIN, "Failed to load terrain shader");

debug(LOG_3D, "Loading shader: SHADER_TERRAIN_DEPTH");
result = pie_LoadShader("terrain_depth program", "shaders/terrain_water.vert", "shaders/terraindepth.frag",
{ "ModelViewProjectionMatrix", "paramx2", "paramy2", "lightmap_tex" });
{ "ModelViewProjectionMatrix", "paramx2", "paramy2", "lightmap_tex", "textureMatrix1", "textureMatrix2" });
ASSERT_OR_RETURN(false, result && ++shaderEnum == SHADER_TERRAIN_DEPTH, "Failed to load terrain_depth shader");

debug(LOG_3D, "Loading shader: SHADER_DECALS");
Expand All @@ -385,7 +385,7 @@ bool pie_LoadShaders()

debug(LOG_3D, "Loading shader: SHADER_WATER");
result = pie_LoadShader("water program", "shaders/terrain_water.vert", "shaders/water.frag",
{ "ModelViewProjectionMatrix", "paramx1", "paramy1", "paramx2", "paramy2", "tex1", "tex2", "textureMatrix1",
{ "ModelViewProjectionMatrix", "paramx1", "paramy1", "paramx2", "paramy2", "tex1", "tex2", "textureMatrix1", "textureMatrix2",
"fogEnabled", "fogEnd", "fogStart" });
ASSERT_OR_RETURN(false, result && ++shaderEnum == SHADER_WATER, "Failed to load water shader");

Expand All @@ -408,7 +408,7 @@ bool pie_LoadShaders()

debug(LOG_3D, "Loading shader: SHADER_GFX_TEXT");
result = pie_LoadShader("gfx_text program", "shaders/gfx.vert", "shaders/texturedrect.frag",
{ "posMatrix", "texture" });
{ "posMatrix", "color", "texture" });
ASSERT_OR_RETURN(false, result && ++shaderEnum == SHADER_GFX_TEXT, "Failed to load textured gfx shader");

debug(LOG_3D, "Loading shader: SHADER_GENERIC_COLOR");
Expand Down
10 changes: 5 additions & 5 deletions src/terrain.cpp
Expand Up @@ -1073,7 +1073,7 @@ static void cullTerrain()

static void drawDepthOnly(const glm::mat4 &ModelViewProjection, const glm::vec4 &paramsXLight, const glm::vec4 &paramsYLight)
{
const auto &program = pie_ActivateShader(SHADER_TERRAIN_DEPTH, ModelViewProjection, paramsXLight, paramsYLight, 1);
const auto &program = pie_ActivateShader(SHADER_TERRAIN_DEPTH, ModelViewProjection, paramsXLight, paramsYLight, 1, glm::mat4(), glm::mat4());
pie_SetTexturePage(TEXPAGE_NONE);
pie_SetRendMode(REND_OPAQUE);

Expand Down Expand Up @@ -1134,8 +1134,8 @@ static void drawTerrainLayers(const glm::mat4 &ModelViewProjection, const glm::v
renderState.fogColour.vector[2] / 255.f,
renderState.fogColour.vector[3] / 255.f
);
const auto &program = pie_ActivateShader(SHADER_TERRAIN, ModelViewProjection, glm::vec4(), glm::vec4(), paramsXLight, paramsYLight, 0, 1, textureMatrix,
renderState.fogEnabled, renderState.fogBegin, renderState.fogEnd, fogColor);
const auto &program = pie_ActivateShader(SHADER_TERRAIN, ModelViewProjection, glm::vec4(), glm::vec4(), paramsXLight, paramsYLight, 0, 1,
glm::mat4(), textureMatrix, renderState.fogEnabled, renderState.fogBegin, renderState.fogEnd, fogColor);

// additive blending
pie_SetRendMode(REND_ADDITIVE);
Expand All @@ -1160,7 +1160,7 @@ static void drawTerrainLayers(const glm::mat4 &ModelViewProjection, const glm::v
{
const glm::vec4 paramsX(0, 0, -1.0f / world_coord(psGroundTypes[layer].textureSize), 0 );
const glm::vec4 paramsY(1.0f / world_coord(psGroundTypes[layer].textureSize), 0, 0, 0 );
pie_ActivateShader(SHADER_TERRAIN, ModelViewProjection, paramsX, paramsY, paramsXLight, paramsYLight, 0, 1, textureMatrix,
pie_ActivateShader(SHADER_TERRAIN, ModelViewProjection, paramsX, paramsY, paramsXLight, paramsYLight, 0, 1, glm::mat4(), textureMatrix,
renderState.fogEnabled, renderState.fogBegin, renderState.fogEnd, fogColor);

// load the texture
Expand Down Expand Up @@ -1326,7 +1326,7 @@ void drawWater(const glm::mat4 &viewMatrix)
const auto &renderState = getCurrentRenderState();

const auto &program = pie_ActivateShader(SHADER_WATER, viewMatrix, paramsX, paramsY, paramsX2, paramsY2, 0, 1,
glm::translate(waterOffset, 0.f, 0.f), renderState.fogEnabled, renderState.fogBegin, renderState.fogEnd);
glm::translate(waterOffset, 0.f, 0.f), glm::mat4(), renderState.fogEnabled, renderState.fogBegin, renderState.fogEnd);

glDepthMask(GL_FALSE);

Expand Down

0 comments on commit 8a2ff44

Please sign in to comment.