Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(745)

Side by Side Diff: gpu/demos/app_framework/gles2_utils.cc

Issue 525070: Resubmit 35500: Added an application framework for demos. Ported hellotriangl... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 10 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « gpu/demos/app_framework/gles2_utils.h ('k') | gpu/demos/app_framework/platform.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Property Changes:
Added: svn:eol-style
+ LF
OLDNEW
(Empty)
1 // Copyright (c) 2006-2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "gpu/demos/app_framework/gles2_utils.h"
6
7 namespace {
8 static const int kInfoBufferLength = 1024;
9 } // namespace
10
11 namespace gpu_demos {
12 namespace gles2_utils {
13
14 GLuint LoadShader(GLenum type, const char* shader_src) {
15 GLuint shader = glCreateShader(type);
16 if (shader == 0) return 0;
17
18 // Load the shader source
19 glShaderSource(shader, 1, &shader_src, NULL);
20 // Compile the shader
21 glCompileShader(shader);
22 // Check the compile status
23 GLint value;
24 glGetShaderiv(shader, GL_COMPILE_STATUS, &value);
25 if (value == 0) {
26 char buffer[kInfoBufferLength];
27 GLsizei length;
28 glGetShaderInfoLog(shader, sizeof(buffer), &length, buffer);
29 std::string log(buffer, length);
30 DLOG(ERROR) << "Error compiling shader:" << log;
31 glDeleteShader(shader);
32 shader = 0;
33 }
34 return shader;
35 }
36
37 GLuint LoadProgram(const char* v_shader_src, const char* f_shader_src) {
38 GLuint v_shader = LoadShader(GL_VERTEX_SHADER, v_shader_src);
39 if (v_shader == 0) return 0;
40
41 GLuint f_shader = LoadShader(GL_FRAGMENT_SHADER, f_shader_src);
42 if (f_shader == 0) return 0;
43
44 // Create the program object
45 GLuint program_object = glCreateProgram();
46 if (program_object == 0) return 0;
47
48 // Link the program and check status.
49 glAttachShader(program_object, v_shader);
50 glAttachShader(program_object, f_shader);
51 glLinkProgram(program_object);
52 GLint linked = 0;
53 glGetProgramiv(program_object, GL_LINK_STATUS, &linked);
54 if (linked == 0) {
55 char buffer[kInfoBufferLength];
56 GLsizei length;
57 glGetProgramInfoLog(program_object, sizeof(buffer), &length, buffer);
58 std::string log(buffer, length);
59 DLOG(ERROR) << "Error linking program:" << log;
60 glDeleteProgram(program_object);
61 program_object = 0;
62 }
63 return program_object;
64 }
65
66 } // namespace gles2_utils
67 } // namespace gpu_demos
OLDNEW
« no previous file with comments | « gpu/demos/app_framework/gles2_utils.h ('k') | gpu/demos/app_framework/platform.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698