workaround for glGetUniformLocation in efb2ram

This commit is contained in:
degasus 2013-02-05 18:22:23 +01:00
parent 76adc77fa6
commit ef602fd643
2 changed files with 3 additions and 2 deletions

View File

@ -96,8 +96,9 @@ void ProgramShaderCache::SetProgramVariables(PCacheEntry &entry)
// (Sonicadvance): For some reason this fails on my hardware
//glGetUniformIndices(entry.prog_id, NUM_UNIFORMS, UniformNames, entry.UniformLocations);
// Got to do it this crappy way.
entry.UniformLocations[0] = glGetUniformLocation(entry.prog_id, UniformNames[0]);
if (!g_ActiveConfig.backend_info.bSupportsGLSLUBO)
for (int a = 0; a < NUM_UNIFORMS; ++a)
for (int a = 1; a < NUM_UNIFORMS; ++a)
entry.UniformLocations[a] = glGetUniformLocation(entry.prog_id, UniformNames[a]);
// Bind Texture Sampler

View File

@ -355,7 +355,7 @@ int EncodeToRamFromTexture(u32 address,GLuint source_texture, bool bFromZBuffer,
(float)expandedWidth, (float)Renderer::EFBToScaledY(expandedHeight)-1,
(float)Renderer::EFBToScaledX(source.left), (float)Renderer::EFBToScaledY(EFB_HEIGHT - source.top - expandedHeight)
};
glUniform4fv(glGetUniformLocation(ProgramShaderCache::GetCurrentProgram(), I_COLORS), 2, params);
glUniform4fv(ProgramShaderCache::GetShaderProgram().UniformLocations[C_COLORS], 2, params);
TargetRectangle scaledSource;
scaledSource.top = 0;