Skip to content

Commit f977172

Browse files
Mee-guminggo
authored andcommitted
fix shader header defines (#20077)
1 parent b4d0522 commit f977172

File tree

1 file changed

+8
-11
lines changed

1 file changed

+8
-11
lines changed

cocos/renderer/backend/opengl/ProgramGL.cpp

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -32,21 +32,18 @@
3232
#include "renderer/backend/opengl/UtilsGL.h"
3333

3434
CC_BACKEND_BEGIN
35-
35+
namespace {
36+
std::string vsPreDefine("#version 100\n precision highp float;\n precision highp int;\n");
37+
std::string fsPreDefine("precision mediump float;\n precision mediump int;\n");
38+
}
3639

3740
ProgramGL::ProgramGL(const std::string& vertexShader, const std::string& fragmentShader)
3841
: Program(vertexShader, fragmentShader)
3942
{
4043
#if CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID
4144
//some device required manually specify the precision qualifiers for vertex shader.
42-
std::string vsPreDefine("#version 100\n precision highp float;\n precision highp int;\n");
43-
std::string fsPreDefine("precision mediump float;\n precision mediump int;\n");
44-
vsPreDefine.append(vertexShader);
45-
fsPreDefine.append(fragmentShader);
46-
_vertexShader = std::move(vsPreDefine);
47-
_fragmentShader = std::move(fsPreDefine);
48-
_vertexShaderModule = static_cast<ShaderModuleGL*>(ShaderCache::newVertexShaderModule(_vertexShader));
49-
_fragmentShaderModule = static_cast<ShaderModuleGL*>(ShaderCache::newFragmentShaderModule(_fragmentShader));
45+
_vertexShaderModule = static_cast<ShaderModuleGL*>(ShaderCache::newVertexShaderModule(std::move(vsPreDefine + _vertexShader)));
46+
_fragmentShaderModule = static_cast<ShaderModuleGL*>(ShaderCache::newFragmentShaderModule(std::move(fsPreDefine + _fragmentShader)));
5047
#else
5148
_vertexShaderModule = static_cast<ShaderModuleGL*>(ShaderCache::newVertexShaderModule(_vertexShader));
5249
_fragmentShaderModule = static_cast<ShaderModuleGL*>(ShaderCache::newFragmentShaderModule(_fragmentShader));
@@ -91,8 +88,8 @@ void ProgramGL::reloadProgram()
9188
_activeUniformInfos.clear();
9289
_mapToCurrentActiveLocation.clear();
9390
_mapToOriginalLocation.clear();
94-
static_cast<ShaderModuleGL*>(_vertexShaderModule)->compileShader(backend::ShaderStage::VERTEX, _vertexShader);
95-
static_cast<ShaderModuleGL*>(_fragmentShaderModule)->compileShader(backend::ShaderStage::FRAGMENT, _fragmentShader);
91+
static_cast<ShaderModuleGL*>(_vertexShaderModule)->compileShader(backend::ShaderStage::VERTEX, std::move(vsPreDefine + _vertexShader));
92+
static_cast<ShaderModuleGL*>(_fragmentShaderModule)->compileShader(backend::ShaderStage::FRAGMENT, std::move(fsPreDefine + _fragmentShader));
9693
compileProgram();
9794
computeUniformInfos();
9895

0 commit comments

Comments
 (0)