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

Side by Side Diff: gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doers.cc

Issue 2480373002: Refactor context creation parameters into a struct. (Closed)
Patch Set: address piman's comments Created 4 years, 1 month 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) 2016 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2016 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/command_buffer/service/gles2_cmd_decoder_passthrough.h" 5 #include "gpu/command_buffer/service/gles2_cmd_decoder_passthrough.h"
6 6
7 #include "base/strings/string_number_conversions.h" 7 #include "base/strings/string_number_conversions.h"
8 8
9 namespace gpu { 9 namespace gpu {
10 namespace gles2 { 10 namespace gles2 {
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
129 ClientServiceMap<GLuint, GLuint>* id_map, 129 ClientServiceMap<GLuint, GLuint>* id_map,
130 bool create_if_missing) { 130 bool create_if_missing) {
131 return GetServiceID(client_id, id_map, create_if_missing, []() { 131 return GetServiceID(client_id, id_map, create_if_missing, []() {
132 GLuint service_id = 0; 132 GLuint service_id = 0;
133 glGenFramebuffersEXT(1, &service_id); 133 glGenFramebuffersEXT(1, &service_id);
134 return service_id; 134 return service_id;
135 }); 135 });
136 } 136 }
137 137
138 GLuint GetTransformFeedbackServiceID(GLuint client_id, 138 GLuint GetTransformFeedbackServiceID(GLuint client_id,
139 ClientServiceMap<GLuint, GLuint>* id_map, 139 ClientServiceMap<GLuint, GLuint>* id_map) {
140 bool create_if_missing) { 140 return id_map->GetServiceIDOrInvalid(client_id);
141 return GetServiceID(client_id, id_map, create_if_missing, []() {
142 GLuint service_id = 0;
143 glGenTransformFeedbacks(1, &service_id);
144 return service_id;
145 });
146 } 141 }
147 142
148 GLuint GetVertexArrayServiceID(GLuint client_id, 143 GLuint GetVertexArrayServiceID(GLuint client_id,
149 ClientServiceMap<GLuint, GLuint>* id_map, 144 ClientServiceMap<GLuint, GLuint>* id_map) {
150 bool create_if_missing) { 145 return id_map->GetServiceIDOrInvalid(client_id);
151 return GetServiceID(client_id, id_map, create_if_missing, []() {
152 GLuint service_id = 0;
153 glGenVertexArraysOES(1, &service_id);
154 return service_id;
155 });
156 } 146 }
157 147
158 GLuint GetProgramServiceID(GLuint client_id, PassthroughResources* resources) { 148 GLuint GetProgramServiceID(GLuint client_id, PassthroughResources* resources) {
159 return resources->program_id_map.GetServiceIDOrInvalid(client_id); 149 return resources->program_id_map.GetServiceIDOrInvalid(client_id);
160 } 150 }
161 151
162 GLuint GetShaderServiceID(GLuint client_id, PassthroughResources* resources) { 152 GLuint GetShaderServiceID(GLuint client_id, PassthroughResources* resources) {
163 return resources->shader_id_map.GetServiceIDOrInvalid(client_id); 153 return resources->shader_id_map.GetServiceIDOrInvalid(client_id);
164 } 154 }
165 155
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
283 bound_textures_[active_texture_unit_] = texture; 273 bound_textures_[active_texture_unit_] = texture;
284 } 274 }
285 return error::kNoError; 275 return error::kNoError;
286 } 276 }
287 277
288 error::Error GLES2DecoderPassthroughImpl::DoBindTransformFeedback( 278 error::Error GLES2DecoderPassthroughImpl::DoBindTransformFeedback(
289 GLenum target, 279 GLenum target,
290 GLuint transformfeedback) { 280 GLuint transformfeedback) {
291 glBindTransformFeedback( 281 glBindTransformFeedback(
292 target, GetTransformFeedbackServiceID(transformfeedback, 282 target, GetTransformFeedbackServiceID(transformfeedback,
293 &transform_feedback_id_map_, 283 &transform_feedback_id_map_));
294 bind_generates_resource_));
295 return error::kNoError; 284 return error::kNoError;
296 } 285 }
297 286
298 error::Error GLES2DecoderPassthroughImpl::DoBlendColor(GLclampf red, 287 error::Error GLES2DecoderPassthroughImpl::DoBlendColor(GLclampf red,
299 GLclampf green, 288 GLclampf green,
300 GLclampf blue, 289 GLclampf blue,
301 GLclampf alpha) { 290 GLclampf alpha) {
302 glBlendColor(red, green, blue, alpha); 291 glBlendColor(red, green, blue, alpha);
303 return error::kNoError; 292 return error::kNoError;
304 } 293 }
(...skipping 411 matching lines...) Expand 10 before | Expand all | Expand 10 after
716 GLintptr offset, 705 GLintptr offset,
717 GLsizeiptr size) { 706 GLsizeiptr size) {
718 return error::kNoError; 707 return error::kNoError;
719 } 708 }
720 709
721 error::Error GLES2DecoderPassthroughImpl::DoFramebufferRenderbuffer( 710 error::Error GLES2DecoderPassthroughImpl::DoFramebufferRenderbuffer(
722 GLenum target, 711 GLenum target,
723 GLenum attachment, 712 GLenum attachment,
724 GLenum renderbuffertarget, 713 GLenum renderbuffertarget,
725 GLuint renderbuffer) { 714 GLuint renderbuffer) {
726 // TODO(geofflang): Handle this case in ANGLE by adding a WebGL validation 715 glFramebufferRenderbufferEXT(
727 // mode. 716 target, attachment, renderbuffertarget,
728 if (attachment == GL_DEPTH_STENCIL_ATTACHMENT) { 717 GetRenderbufferServiceID(renderbuffer, resources_, false));
729 glFramebufferRenderbufferEXT(
730 target, GL_DEPTH_ATTACHMENT, renderbuffertarget,
731 GetRenderbufferServiceID(renderbuffer, resources_, false));
732 glFramebufferRenderbufferEXT(
733 target, GL_STENCIL_ATTACHMENT, renderbuffertarget,
734 GetRenderbufferServiceID(renderbuffer, resources_, false));
735 } else {
736 glFramebufferRenderbufferEXT(
737 target, attachment, renderbuffertarget,
738 GetRenderbufferServiceID(renderbuffer, resources_, false));
739 }
740 return error::kNoError; 718 return error::kNoError;
741 } 719 }
742 720
743 error::Error GLES2DecoderPassthroughImpl::DoFramebufferTexture2D( 721 error::Error GLES2DecoderPassthroughImpl::DoFramebufferTexture2D(
744 GLenum target, 722 GLenum target,
745 GLenum attachment, 723 GLenum attachment,
746 GLenum textarget, 724 GLenum textarget,
747 GLuint texture, 725 GLuint texture,
748 GLint level) { 726 GLint level) {
749 glFramebufferTexture2DEXT(target, attachment, textarget, 727 glFramebufferTexture2DEXT(target, attachment, textarget,
(...skipping 587 matching lines...) Expand 10 before | Expand all | Expand 10 after
1337 error::Error GLES2DecoderPassthroughImpl::DoIsTexture(GLuint texture, 1315 error::Error GLES2DecoderPassthroughImpl::DoIsTexture(GLuint texture,
1338 uint32_t* result) { 1316 uint32_t* result) {
1339 *result = glIsTexture(GetTextureServiceID(texture, resources_, false)); 1317 *result = glIsTexture(GetTextureServiceID(texture, resources_, false));
1340 return error::kNoError; 1318 return error::kNoError;
1341 } 1319 }
1342 1320
1343 error::Error GLES2DecoderPassthroughImpl::DoIsTransformFeedback( 1321 error::Error GLES2DecoderPassthroughImpl::DoIsTransformFeedback(
1344 GLuint transformfeedback, 1322 GLuint transformfeedback,
1345 uint32_t* result) { 1323 uint32_t* result) {
1346 *result = glIsTransformFeedback(GetTransformFeedbackServiceID( 1324 *result = glIsTransformFeedback(GetTransformFeedbackServiceID(
1347 transformfeedback, &transform_feedback_id_map_, false)); 1325 transformfeedback, &transform_feedback_id_map_));
1348 return error::kNoError; 1326 return error::kNoError;
1349 } 1327 }
1350 1328
1351 error::Error GLES2DecoderPassthroughImpl::DoLineWidth(GLfloat width) { 1329 error::Error GLES2DecoderPassthroughImpl::DoLineWidth(GLfloat width) {
1352 glLineWidth(width); 1330 glLineWidth(width);
1353 return error::kNoError; 1331 return error::kNoError;
1354 } 1332 }
1355 1333
1356 error::Error GLES2DecoderPassthroughImpl::DoLinkProgram(GLuint program) { 1334 error::Error GLES2DecoderPassthroughImpl::DoLinkProgram(GLuint program) {
1357 glLinkProgram(GetProgramServiceID(program, resources_)); 1335 glLinkProgram(GetProgramServiceID(program, resources_));
(...skipping 844 matching lines...) Expand 10 before | Expand all | Expand 10 after
2202 error::Error GLES2DecoderPassthroughImpl::DoDeleteVertexArraysOES( 2180 error::Error GLES2DecoderPassthroughImpl::DoDeleteVertexArraysOES(
2203 GLsizei n, 2181 GLsizei n,
2204 const volatile GLuint* arrays) { 2182 const volatile GLuint* arrays) {
2205 return DeleteHelper( 2183 return DeleteHelper(
2206 n, arrays, &vertex_array_id_map_, 2184 n, arrays, &vertex_array_id_map_,
2207 [](GLsizei n, GLuint* arrays) { glDeleteVertexArraysOES(n, arrays); }); 2185 [](GLsizei n, GLuint* arrays) { glDeleteVertexArraysOES(n, arrays); });
2208 } 2186 }
2209 2187
2210 error::Error GLES2DecoderPassthroughImpl::DoIsVertexArrayOES(GLuint array, 2188 error::Error GLES2DecoderPassthroughImpl::DoIsVertexArrayOES(GLuint array,
2211 uint32_t* result) { 2189 uint32_t* result) {
2212 *result = glIsVertexArrayOES( 2190 *result =
2213 GetVertexArrayServiceID(array, &vertex_array_id_map_, false)); 2191 glIsVertexArrayOES(GetVertexArrayServiceID(array, &vertex_array_id_map_));
2214 return error::kNoError; 2192 return error::kNoError;
2215 } 2193 }
2216 2194
2217 error::Error GLES2DecoderPassthroughImpl::DoBindVertexArrayOES(GLuint array) { 2195 error::Error GLES2DecoderPassthroughImpl::DoBindVertexArrayOES(GLuint array) {
2218 glBindVertexArrayOES(GetVertexArrayServiceID(array, &vertex_array_id_map_, 2196 glBindVertexArrayOES(GetVertexArrayServiceID(array, &vertex_array_id_map_));
2219 bind_generates_resource_));
2220 return error::kNoError; 2197 return error::kNoError;
2221 } 2198 }
2222 2199
2223 error::Error GLES2DecoderPassthroughImpl::DoSwapBuffers() { 2200 error::Error GLES2DecoderPassthroughImpl::DoSwapBuffers() {
2224 gfx::SwapResult result = surface_->SwapBuffers(); 2201 gfx::SwapResult result = surface_->SwapBuffers();
2225 if (result == gfx::SwapResult::SWAP_FAILED) { 2202 if (result == gfx::SwapResult::SWAP_FAILED) {
2226 LOG(ERROR) << "Context lost because SwapBuffers failed."; 2203 LOG(ERROR) << "Context lost because SwapBuffers failed.";
2227 } 2204 }
2228 // TODO(geofflang): force the context loss? 2205 // TODO(geofflang): force the context loss?
2229 return error::kNoError; 2206 return error::kNoError;
(...skipping 793 matching lines...) Expand 10 before | Expand all | Expand 10 after
3023 GLES2DecoderPassthroughImpl::DoUniformMatrix4fvStreamTextureMatrixCHROMIUM( 3000 GLES2DecoderPassthroughImpl::DoUniformMatrix4fvStreamTextureMatrixCHROMIUM(
3024 GLint location, 3001 GLint location,
3025 GLboolean transpose, 3002 GLboolean transpose,
3026 const volatile GLfloat* defaultValue) { 3003 const volatile GLfloat* defaultValue) {
3027 NOTIMPLEMENTED(); 3004 NOTIMPLEMENTED();
3028 return error::kNoError; 3005 return error::kNoError;
3029 } 3006 }
3030 3007
3031 } // namespace gles2 3008 } // namespace gles2
3032 } // namespace gpu 3009 } // namespace gpu
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698