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

Side by Side Diff: gpu/blink/webgraphicscontext3d_impl.cc

Issue 1834983003: Remove string-getting methods from WebGraphicsContext3D. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: getactive: pointers Created 4 years, 8 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium 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 "gpu/blink/webgraphicscontext3d_impl.h" 5 #include "gpu/blink/webgraphicscontext3d_impl.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include "base/atomicops.h" 9 #include "base/atomicops.h"
10 #include "base/lazy_instance.h" 10 #include "base/lazy_instance.h"
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 : initialized_(false), 66 : initialized_(false),
67 initialize_failed_(false), 67 initialize_failed_(false),
68 context_lost_callback_(0), 68 context_lost_callback_(0),
69 error_message_callback_(0), 69 error_message_callback_(0),
70 gl_(NULL) {} 70 gl_(NULL) {}
71 71
72 WebGraphicsContext3DImpl::~WebGraphicsContext3DImpl() { 72 WebGraphicsContext3DImpl::~WebGraphicsContext3DImpl() {
73 73
74 } 74 }
75 75
76 bool WebGraphicsContext3DImpl::getActiveAttrib(
77 WebGLId program, WGC3Duint index, ActiveInfo& info) {
78 GLint max_name_length = -1;
79 gl_->GetProgramiv(
80 program, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, &max_name_length);
81 // The caller already checked that there is some active attribute.
82 DCHECK_GT(max_name_length, 0);
83 scoped_ptr<GLchar[]> name(new GLchar[max_name_length]);
84 GLsizei length = 0;
85 GLint size = -1;
86 GLenum type = 0;
87 gl_->GetActiveAttrib(
88 program, index, max_name_length, &length, &size, &type, name.get());
89 if (size < 0) {
90 return false;
91 }
92 info.name = blink::WebString::fromUTF8(name.get(), length);
93 info.type = type;
94 info.size = size;
95 return true;
96 }
97
98 bool WebGraphicsContext3DImpl::getActiveUniform(
99 WebGLId program, WGC3Duint index, ActiveInfo& info) {
100 GLint max_name_length = -1;
101 gl_->GetProgramiv(
102 program, GL_ACTIVE_UNIFORM_MAX_LENGTH, &max_name_length);
103 // The caller already checked that there is some active uniform.
104 DCHECK_GT(max_name_length, 0);
105 scoped_ptr<GLchar[]> name(new GLchar[max_name_length]);
106 GLsizei length = 0;
107 GLint size = -1;
108 GLenum type = 0;
109 gl_->GetActiveUniform(
110 program, index, max_name_length, &length, &size, &type, name.get());
111 if (size < 0) {
112 return false;
113 }
114 info.name = blink::WebString::fromUTF8(name.get(), length);
115 info.type = type;
116 info.size = size;
117 return true;
118 }
119
120 blink::WebString WebGraphicsContext3DImpl::getProgramInfoLog(
121 WebGLId program) {
122 GLint logLength = 0;
123 gl_->GetProgramiv(program, GL_INFO_LOG_LENGTH, &logLength);
124 if (!logLength)
125 return blink::WebString();
126 scoped_ptr<GLchar[]> log(new GLchar[logLength]);
127 if (!log)
128 return blink::WebString();
129 GLsizei returnedLogLength = 0;
130 gl_->GetProgramInfoLog(
131 program, logLength, &returnedLogLength, log.get());
132 DCHECK_EQ(logLength, returnedLogLength + 1);
133 blink::WebString res =
134 blink::WebString::fromUTF8(log.get(), returnedLogLength);
135 return res;
136 }
137
138 blink::WebString WebGraphicsContext3DImpl::getShaderInfoLog(
139 WebGLId shader) {
140 GLint logLength = 0;
141 gl_->GetShaderiv(shader, GL_INFO_LOG_LENGTH, &logLength);
142 if (!logLength)
143 return blink::WebString();
144 scoped_ptr<GLchar[]> log(new GLchar[logLength]);
145 if (!log)
146 return blink::WebString();
147 GLsizei returnedLogLength = 0;
148 gl_->GetShaderInfoLog(
149 shader, logLength, &returnedLogLength, log.get());
150 DCHECK_EQ(logLength, returnedLogLength + 1);
151 blink::WebString res =
152 blink::WebString::fromUTF8(log.get(), returnedLogLength);
153 return res;
154 }
155
156 blink::WebString WebGraphicsContext3DImpl::getShaderSource(
157 WebGLId shader) {
158 GLint logLength = 0;
159 gl_->GetShaderiv(shader, GL_SHADER_SOURCE_LENGTH, &logLength);
160 if (!logLength)
161 return blink::WebString();
162 scoped_ptr<GLchar[]> log(new GLchar[logLength]);
163 if (!log)
164 return blink::WebString();
165 GLsizei returnedLogLength = 0;
166 gl_->GetShaderSource(
167 shader, logLength, &returnedLogLength, log.get());
168 if (!returnedLogLength)
169 return blink::WebString();
170 DCHECK_EQ(logLength, returnedLogLength + 1);
171 blink::WebString res =
172 blink::WebString::fromUTF8(log.get(), returnedLogLength);
173 return res;
174 }
175
176 blink::WebString WebGraphicsContext3DImpl::
177 getTranslatedShaderSourceANGLE(WebGLId shader) {
178 GLint logLength = 0;
179 gl_->GetShaderiv(
180 shader, GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE, &logLength);
181 if (!logLength)
182 return blink::WebString();
183 scoped_ptr<GLchar[]> log(new GLchar[logLength]);
184 if (!log)
185 return blink::WebString();
186 GLsizei returnedLogLength = 0;
187 gl_->GetTranslatedShaderSourceANGLE(
188 shader, logLength, &returnedLogLength, log.get());
189 if (!returnedLogLength)
190 return blink::WebString();
191 DCHECK_EQ(logLength, returnedLogLength + 1);
192 blink::WebString res =
193 blink::WebString::fromUTF8(log.get(), returnedLogLength);
194 return res;
195 }
196
197 void WebGraphicsContext3DImpl::setErrorMessageCallback( 76 void WebGraphicsContext3DImpl::setErrorMessageCallback(
198 WebGraphicsContext3D::WebGraphicsErrorMessageCallback* cb) { 77 WebGraphicsContext3D::WebGraphicsErrorMessageCallback* cb) {
199 error_message_callback_ = cb; 78 error_message_callback_ = cb;
200 } 79 }
201 80
202 void WebGraphicsContext3DImpl::setContextLostCallback( 81 void WebGraphicsContext3DImpl::setContextLostCallback(
203 WebGraphicsContext3D::WebGraphicsContextLostCallback* cb) { 82 WebGraphicsContext3D::WebGraphicsContextLostCallback* cb) {
204 context_lost_callback_ = cb; 83 context_lost_callback_ = cb;
205 } 84 }
206 85
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
262 output_attribs->context_type = ::gpu::gles2::CONTEXT_TYPE_WEBGL2; 141 output_attribs->context_type = ::gpu::gles2::CONTEXT_TYPE_WEBGL2;
263 break; 142 break;
264 default: 143 default:
265 NOTREACHED(); 144 NOTREACHED();
266 output_attribs->context_type = ::gpu::gles2::CONTEXT_TYPE_OPENGLES2; 145 output_attribs->context_type = ::gpu::gles2::CONTEXT_TYPE_OPENGLES2;
267 break; 146 break;
268 } 147 }
269 } 148 }
270 149
271 } // namespace gpu_blink 150 } // namespace gpu_blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698