| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium OS Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium OS Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <fcntl.h> | 5 #include <fcntl.h> |
| 6 #include <stdio.h> | 6 #include <stdio.h> |
| 7 #include <string.h> | 7 #include <string.h> |
| 8 #include <sys/mman.h> | 8 #include <sys/mman.h> |
| 9 #include <unistd.h> | 9 #include <unistd.h> |
| 10 | 10 |
| (...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 158 if (newline) | 158 if (newline) |
| 159 *newline = '\0'; | 159 *newline = '\0'; |
| 160 printf("# Log: %s\n", p); | 160 printf("# Log: %s\n", p); |
| 161 if (!newline) | 161 if (!newline) |
| 162 break; | 162 break; |
| 163 p = newline + 1; | 163 p = newline + 1; |
| 164 } | 164 } |
| 165 } | 165 } |
| 166 | 166 |
| 167 GLuint InitShaderProgram(const char *vertex_src, const char *fragment_src) { | 167 GLuint InitShaderProgram(const char *vertex_src, const char *fragment_src) { |
| 168 return InitShaderProgramWithHeader(NULL, vertex_src, fragment_src); |
| 169 } |
| 170 |
| 171 GLuint InitShaderProgramWithHeader(const char* header, |
| 172 const char* vertex_src, |
| 173 const char* fragment_src) { |
| 168 GLuint vertex_shader = glCreateShader(GL_VERTEX_SHADER); | 174 GLuint vertex_shader = glCreateShader(GL_VERTEX_SHADER); |
| 169 GLuint fragment_shader = glCreateShader(GL_FRAGMENT_SHADER); | 175 GLuint fragment_shader = glCreateShader(GL_FRAGMENT_SHADER); |
| 170 | 176 |
| 171 glShaderSource(vertex_shader, 1, &vertex_src, NULL); | 177 const char* header_and_body[2]; |
| 172 glShaderSource(fragment_shader, 1, &fragment_src, NULL); | 178 header_and_body[0] = header ? header : ""; |
| 179 header_and_body[1] = vertex_src; |
| 180 glShaderSource(vertex_shader, |
| 181 arraysize(header_and_body), header_and_body, NULL); |
| 182 header_and_body[1] = fragment_src; |
| 183 glShaderSource(fragment_shader, |
| 184 arraysize(header_and_body), header_and_body, NULL); |
| 173 | 185 |
| 174 glCompileShader(vertex_shader); | 186 glCompileShader(vertex_shader); |
| 175 print_info_log(vertex_shader); | 187 print_info_log(vertex_shader); |
| 176 glCompileShader(fragment_shader); | 188 glCompileShader(fragment_shader); |
| 177 print_info_log(fragment_shader); | 189 print_info_log(fragment_shader); |
| 178 | 190 |
| 179 GLuint program = glCreateProgram(); | 191 GLuint program = glCreateProgram(); |
| 180 glAttachShader(program, vertex_shader); | 192 glAttachShader(program, vertex_shader); |
| 181 glAttachShader(program, fragment_shader); | 193 glAttachShader(program, fragment_shader); |
| 182 glLinkProgram(program); | 194 glLinkProgram(program); |
| 183 print_info_log(program); | 195 print_info_log(program); |
| 184 glUseProgram(program); | 196 glUseProgram(program); |
| 185 | 197 |
| 186 glDeleteShader(vertex_shader); | 198 glDeleteShader(vertex_shader); |
| 187 glDeleteShader(fragment_shader); | 199 glDeleteShader(fragment_shader); |
| 188 | 200 |
| 189 return program; | 201 return program; |
| 190 } | 202 } |
| 191 | 203 |
| 192 } // namespace glbench | 204 } // namespace glbench |
| OLD | NEW |