|
1 | 1 | /**************************************************************************** |
2 | 2 | Copyright (c) 2018-2019 Xiamen Yaji Software Co., Ltd. |
| 3 | + Copyright (c) 2020 c4games.com. |
3 | 4 |
|
4 | 5 | http://www.cocos2d-x.org |
5 | 6 |
|
|
32 | 33 | #include "renderer/backend/opengl/UtilsGL.h" |
33 | 34 |
|
34 | 35 | CC_BACKEND_BEGIN |
| 36 | + |
35 | 37 | 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 | + static const std::string SHADER_PREDEFINE = "#version 100\n precision highp float;\n precision highp int;\n"; |
38 | 39 | } |
39 | 40 |
|
40 | 41 | ProgramGL::ProgramGL(const std::string& vertexShader, const std::string& fragmentShader) |
41 | 42 | : Program(vertexShader, fragmentShader) |
42 | 43 | { |
43 | 44 | #if CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID |
44 | | - //some device required manually specify the precision qualifiers for vertex shader. |
45 | | - _vertexShaderModule = static_cast<ShaderModuleGL*>(ShaderCache::newVertexShaderModule(std::move(vsPreDefine + _vertexShader))); |
46 | | - _fragmentShaderModule = static_cast<ShaderModuleGL*>(ShaderCache::newFragmentShaderModule(std::move(fsPreDefine + _fragmentShader))); |
| 45 | + // some device required manually specify the precision qualifiers for vertex shader. |
| 46 | + _vertexShaderModule = static_cast<ShaderModuleGL*>(ShaderCache::newVertexShaderModule(std::move(SHADER_PREDEFINE + _vertexShader))); |
| 47 | + _fragmentShaderModule = static_cast<ShaderModuleGL*>(ShaderCache::newFragmentShaderModule(std::move(SHADER_PREDEFINE + _fragmentShader))); |
47 | 48 | #else |
48 | 49 | _vertexShaderModule = static_cast<ShaderModuleGL*>(ShaderCache::newVertexShaderModule(_vertexShader)); |
49 | 50 | _fragmentShaderModule = static_cast<ShaderModuleGL*>(ShaderCache::newFragmentShaderModule(_fragmentShader)); |
@@ -88,8 +89,8 @@ void ProgramGL::reloadProgram() |
88 | 89 | _activeUniformInfos.clear(); |
89 | 90 | _mapToCurrentActiveLocation.clear(); |
90 | 91 | _mapToOriginalLocation.clear(); |
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)); |
| 92 | + static_cast<ShaderModuleGL*>(_vertexShaderModule)->compileShader(backend::ShaderStage::VERTEX, std::move(SHADER_PREDEFINE + _vertexShader)); |
| 93 | + static_cast<ShaderModuleGL*>(_fragmentShaderModule)->compileShader(backend::ShaderStage::FRAGMENT, std::move(SHADER_PREDEFINE + _fragmentShader)); |
93 | 94 | compileProgram(); |
94 | 95 | computeUniformInfos(); |
95 | 96 |
|
|
0 commit comments