| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2015 Google Inc. | 2 * Copyright 2015 Google Inc. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
| 5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
| 6 */ | 6 */ |
| 7 | 7 |
| 8 #include "GLBench.h" | 8 #include "GLBench.h" |
| 9 | 9 |
| 10 #if SK_SUPPORT_GPU | 10 #if SK_SUPPORT_GPU |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 63 // Create the shader object | 63 // Create the shader object |
| 64 GR_GL_CALL_RET(gl, shader, CreateShader(type)); | 64 GR_GL_CALL_RET(gl, shader, CreateShader(type)); |
| 65 | 65 |
| 66 // Load the shader source | 66 // Load the shader source |
| 67 GR_GL_CALL(gl, ShaderSource(shader, 1, &shaderSrc, nullptr)); | 67 GR_GL_CALL(gl, ShaderSource(shader, 1, &shaderSrc, nullptr)); |
| 68 | 68 |
| 69 // Compile the shader | 69 // Compile the shader |
| 70 GR_GL_CALL(gl, CompileShader(shader)); | 70 GR_GL_CALL(gl, CompileShader(shader)); |
| 71 | 71 |
| 72 // Check for compile time errors | 72 // Check for compile time errors |
| 73 GrGLint success; | 73 GrGLint success = GR_GL_INIT_ZERO; |
| 74 GrGLchar infoLog[512]; | 74 GrGLchar infoLog[512]; |
| 75 GR_GL_CALL(gl, GetShaderiv(shader, GR_GL_COMPILE_STATUS, &success)); | 75 GR_GL_CALL(gl, GetShaderiv(shader, GR_GL_COMPILE_STATUS, &success)); |
| 76 if (!success) { | 76 if (!success) { |
| 77 GR_GL_CALL(gl, GetShaderInfoLog(shader, 512, nullptr, infoLog)); | 77 GR_GL_CALL(gl, GetShaderInfoLog(shader, 512, nullptr, infoLog)); |
| 78 SkDebugf("ERROR::SHADER::COMPLIATION_FAILED: %s\n", infoLog); | 78 SkDebugf("ERROR::SHADER::COMPLIATION_FAILED: %s\n", infoLog); |
| 79 } | 79 } |
| 80 | 80 |
| 81 return shader; | 81 return shader; |
| 82 } | 82 } |
| 83 | 83 |
| 84 GrGLuint GLBench::CreateProgram(const GrGLInterface* gl, const char* vshader, co
nst char* fshader) { | 84 GrGLuint GLBench::CreateProgram(const GrGLInterface* gl, const char* vshader, co
nst char* fshader) { |
| 85 | 85 |
| 86 GrGLuint vertexShader = CompileShader(gl, vshader, GR_GL_VERTEX_SHADER); | 86 GrGLuint vertexShader = CompileShader(gl, vshader, GR_GL_VERTEX_SHADER); |
| 87 GrGLuint fragmentShader = CompileShader(gl, fshader, GR_GL_FRAGMENT_SHADER); | 87 GrGLuint fragmentShader = CompileShader(gl, fshader, GR_GL_FRAGMENT_SHADER); |
| 88 | 88 |
| 89 GrGLuint shaderProgram; | 89 GrGLuint shaderProgram; |
| 90 GR_GL_CALL_RET(gl, shaderProgram, CreateProgram()); | 90 GR_GL_CALL_RET(gl, shaderProgram, CreateProgram()); |
| 91 GR_GL_CALL(gl, AttachShader(shaderProgram, vertexShader)); | 91 GR_GL_CALL(gl, AttachShader(shaderProgram, vertexShader)); |
| 92 GR_GL_CALL(gl, AttachShader(shaderProgram, fragmentShader)); | 92 GR_GL_CALL(gl, AttachShader(shaderProgram, fragmentShader)); |
| 93 GR_GL_CALL(gl, LinkProgram(shaderProgram)); | 93 GR_GL_CALL(gl, LinkProgram(shaderProgram)); |
| 94 | 94 |
| 95 // Check for linking errors | 95 // Check for linking errors |
| 96 GrGLint success; | 96 GrGLint success = GR_GL_INIT_ZERO; |
| 97 GrGLchar infoLog[512]; | 97 GrGLchar infoLog[512]; |
| 98 GR_GL_CALL(gl, GetProgramiv(shaderProgram, GR_GL_LINK_STATUS, &success)); | 98 GR_GL_CALL(gl, GetProgramiv(shaderProgram, GR_GL_LINK_STATUS, &success)); |
| 99 if (!success) { | 99 if (!success) { |
| 100 GR_GL_CALL(gl, GetProgramInfoLog(shaderProgram, 512, nullptr, infoLog)); | 100 GR_GL_CALL(gl, GetProgramInfoLog(shaderProgram, 512, nullptr, infoLog)); |
| 101 SkDebugf("Linker Error: %s\n", infoLog); | 101 SkDebugf("Linker Error: %s\n", infoLog); |
| 102 } | 102 } |
| 103 GR_GL_CALL(gl, DeleteShader(vertexShader)); | 103 GR_GL_CALL(gl, DeleteShader(vertexShader)); |
| 104 GR_GL_CALL(gl, DeleteShader(fragmentShader)); | 104 GR_GL_CALL(gl, DeleteShader(fragmentShader)); |
| 105 | 105 |
| 106 return shaderProgram; | 106 return shaderProgram; |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 163 bm.setPixels(readback.get()); | 163 bm.setPixels(readback.get()); |
| 164 | 164 |
| 165 if (!SkImageEncoder::EncodeFile(filename, bm, SkImageEncoder::kPNG_Type, 100
)) { | 165 if (!SkImageEncoder::EncodeFile(filename, bm, SkImageEncoder::kPNG_Type, 100
)) { |
| 166 SkDebugf("------ failed to encode %s\n", filename); | 166 SkDebugf("------ failed to encode %s\n", filename); |
| 167 remove(filename); // remove any partial file | 167 remove(filename); // remove any partial file |
| 168 return; | 168 return; |
| 169 } | 169 } |
| 170 } | 170 } |
| 171 | 171 |
| 172 #endif | 172 #endif |
| OLD | NEW |