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

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

Issue 1494553002: Revert of Upgrade PixelStorei to ES3/WebGL2. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years 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/command_buffer/service/context_state.h" 5 #include "gpu/command_buffer/service/context_state.h"
6 6
7 #include <cmath> 7 #include <cmath>
8 8
9 #include "gpu/command_buffer/common/gles2_cmd_utils.h" 9 #include "gpu/command_buffer/common/gles2_cmd_utils.h"
10 #include "gpu/command_buffer/service/buffer_manager.h" 10 #include "gpu/command_buffer/service/buffer_manager.h"
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after
263 glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, GetBufferId(element_array_buffer)); 263 glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, GetBufferId(element_array_buffer));
264 } 264 }
265 glBindBuffer(GL_ARRAY_BUFFER, GetBufferId(bound_array_buffer.get())); 265 glBindBuffer(GL_ARRAY_BUFFER, GetBufferId(bound_array_buffer.get()));
266 if (feature_info_->IsES3Capable()) { 266 if (feature_info_->IsES3Capable()) {
267 glBindBuffer(GL_COPY_READ_BUFFER, 267 glBindBuffer(GL_COPY_READ_BUFFER,
268 GetBufferId(bound_copy_read_buffer.get())); 268 GetBufferId(bound_copy_read_buffer.get()));
269 glBindBuffer(GL_COPY_WRITE_BUFFER, 269 glBindBuffer(GL_COPY_WRITE_BUFFER,
270 GetBufferId(bound_copy_write_buffer.get())); 270 GetBufferId(bound_copy_write_buffer.get()));
271 glBindBuffer(GL_PIXEL_PACK_BUFFER, 271 glBindBuffer(GL_PIXEL_PACK_BUFFER,
272 GetBufferId(bound_pixel_pack_buffer.get())); 272 GetBufferId(bound_pixel_pack_buffer.get()));
273 UpdatePackParameters();
274 glBindBuffer(GL_PIXEL_UNPACK_BUFFER, 273 glBindBuffer(GL_PIXEL_UNPACK_BUFFER,
275 GetBufferId(bound_pixel_unpack_buffer.get())); 274 GetBufferId(bound_pixel_unpack_buffer.get()));
276 UpdateUnpackParameters();
277 glBindBuffer(GL_TRANSFORM_FEEDBACK_BUFFER, 275 glBindBuffer(GL_TRANSFORM_FEEDBACK_BUFFER,
278 GetBufferId(bound_transform_feedback_buffer.get())); 276 GetBufferId(bound_transform_feedback_buffer.get()));
279 glBindBuffer(GL_UNIFORM_BUFFER, GetBufferId(bound_uniform_buffer.get())); 277 glBindBuffer(GL_UNIFORM_BUFFER, GetBufferId(bound_uniform_buffer.get()));
280 } 278 }
281 } 279 }
282 280
283 void ContextState::RestoreRenderbufferBindings() { 281 void ContextState::RestoreRenderbufferBindings() {
284 // Require Renderbuffer rebind. 282 // Require Renderbuffer rebind.
285 bound_renderbuffer_valid = false; 283 bound_renderbuffer_valid = false;
286 } 284 }
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
437 if (feature_info_->feature_flags().emulate_primitive_restart_fixed_index) 435 if (feature_info_->feature_flags().emulate_primitive_restart_fixed_index)
438 pname = GL_PRIMITIVE_RESTART; 436 pname = GL_PRIMITIVE_RESTART;
439 } 437 }
440 if (enable) { 438 if (enable) {
441 glEnable(pname); 439 glEnable(pname);
442 } else { 440 } else {
443 glDisable(pname); 441 glDisable(pname);
444 } 442 }
445 } 443 }
446 444
447 void ContextState::UpdatePackParameters() const {
448 if (!feature_info_->IsES3Capable())
449 return;
450 if (bound_pixel_pack_buffer.get()) {
451 glPixelStorei(GL_PACK_ROW_LENGTH, pack_row_length);
452 glPixelStorei(GL_PACK_SKIP_PIXELS, pack_skip_pixels);
453 glPixelStorei(GL_PACK_SKIP_ROWS, pack_skip_rows);
454 } else {
455 glPixelStorei(GL_PACK_ROW_LENGTH, 0);
456 glPixelStorei(GL_PACK_SKIP_PIXELS, 0);
457 glPixelStorei(GL_PACK_SKIP_ROWS, 0);
458 }
459 }
460
461 void ContextState::UpdateUnpackParameters() const {
462 if (!feature_info_->IsES3Capable())
463 return;
464 if (bound_pixel_unpack_buffer.get()) {
465 glPixelStorei(GL_UNPACK_ROW_LENGTH, unpack_row_length);
466 glPixelStorei(GL_UNPACK_IMAGE_HEIGHT, unpack_image_height);
467 glPixelStorei(GL_UNPACK_SKIP_PIXELS, unpack_skip_pixels);
468 glPixelStorei(GL_UNPACK_SKIP_ROWS, unpack_skip_rows);
469 glPixelStorei(GL_UNPACK_SKIP_IMAGES, unpack_skip_images);
470 } else {
471 glPixelStorei(GL_UNPACK_ROW_LENGTH, 0);
472 glPixelStorei(GL_UNPACK_IMAGE_HEIGHT, 0);
473 glPixelStorei(GL_UNPACK_SKIP_PIXELS, 0);
474 glPixelStorei(GL_UNPACK_SKIP_ROWS, 0);
475 glPixelStorei(GL_UNPACK_SKIP_IMAGES, 0);
476 }
477 }
478
479 void ContextState::SetBoundBuffer(GLenum target, Buffer* buffer) { 445 void ContextState::SetBoundBuffer(GLenum target, Buffer* buffer) {
480 switch (target) { 446 switch (target) {
481 case GL_ARRAY_BUFFER: 447 case GL_ARRAY_BUFFER:
482 bound_array_buffer = buffer; 448 bound_array_buffer = buffer;
483 break; 449 break;
484 case GL_ELEMENT_ARRAY_BUFFER: 450 case GL_ELEMENT_ARRAY_BUFFER:
485 vertex_attrib_manager->SetElementArrayBuffer(buffer); 451 vertex_attrib_manager->SetElementArrayBuffer(buffer);
486 break; 452 break;
487 case GL_COPY_READ_BUFFER: 453 case GL_COPY_READ_BUFFER:
488 bound_copy_read_buffer = buffer; 454 bound_copy_read_buffer = buffer;
489 break; 455 break;
490 case GL_COPY_WRITE_BUFFER: 456 case GL_COPY_WRITE_BUFFER:
491 bound_copy_write_buffer = buffer; 457 bound_copy_write_buffer = buffer;
492 break; 458 break;
493 case GL_PIXEL_PACK_BUFFER: 459 case GL_PIXEL_PACK_BUFFER:
494 bound_pixel_pack_buffer = buffer; 460 bound_pixel_pack_buffer = buffer;
495 UpdatePackParameters();
496 break; 461 break;
497 case GL_PIXEL_UNPACK_BUFFER: 462 case GL_PIXEL_UNPACK_BUFFER:
498 bound_pixel_unpack_buffer = buffer; 463 bound_pixel_unpack_buffer = buffer;
499 UpdateUnpackParameters();
500 break; 464 break;
501 case GL_TRANSFORM_FEEDBACK_BUFFER: 465 case GL_TRANSFORM_FEEDBACK_BUFFER:
502 bound_transform_feedback_buffer = buffer; 466 bound_transform_feedback_buffer = buffer;
503 break; 467 break;
504 case GL_UNIFORM_BUFFER: 468 case GL_UNIFORM_BUFFER:
505 bound_uniform_buffer = buffer; 469 bound_uniform_buffer = buffer;
506 break; 470 break;
507 default: 471 default:
508 NOTREACHED(); 472 NOTREACHED();
509 break; 473 break;
510 } 474 }
511 } 475 }
512 476
513 void ContextState::RemoveBoundBuffer(Buffer* buffer) { 477 void ContextState::RemoveBoundBuffer(Buffer* buffer) {
514 DCHECK(buffer); 478 DCHECK(buffer);
515 vertex_attrib_manager->Unbind(buffer); 479 vertex_attrib_manager->Unbind(buffer);
516 if (bound_array_buffer.get() == buffer) { 480 if (bound_array_buffer.get() == buffer) {
517 bound_array_buffer = nullptr; 481 bound_array_buffer = nullptr;
518 } 482 }
519 if (bound_copy_read_buffer.get() == buffer) { 483 if (bound_copy_read_buffer.get() == buffer) {
520 bound_copy_read_buffer = nullptr; 484 bound_copy_read_buffer = nullptr;
521 } 485 }
522 if (bound_copy_write_buffer.get() == buffer) { 486 if (bound_copy_write_buffer.get() == buffer) {
523 bound_copy_write_buffer = nullptr; 487 bound_copy_write_buffer = nullptr;
524 } 488 }
525 if (bound_pixel_pack_buffer.get() == buffer) { 489 if (bound_pixel_pack_buffer.get() == buffer) {
526 bound_pixel_pack_buffer = nullptr; 490 bound_pixel_pack_buffer = nullptr;
527 UpdatePackParameters();
528 } 491 }
529 if (bound_pixel_unpack_buffer.get() == buffer) { 492 if (bound_pixel_unpack_buffer.get() == buffer) {
530 bound_pixel_unpack_buffer = nullptr; 493 bound_pixel_unpack_buffer = nullptr;
531 UpdateUnpackParameters();
532 } 494 }
533 if (bound_transform_feedback_buffer.get() == buffer) { 495 if (bound_transform_feedback_buffer.get() == buffer) {
534 bound_transform_feedback_buffer = nullptr; 496 bound_transform_feedback_buffer = nullptr;
535 } 497 }
536 if (bound_uniform_buffer.get() == buffer) { 498 if (bound_uniform_buffer.get() == buffer) {
537 bound_uniform_buffer = nullptr; 499 bound_uniform_buffer = nullptr;
538 } 500 }
539 } 501 }
540 502
541 void ContextState::UnbindTexture(TextureRef* texture) { 503 void ContextState::UnbindTexture(TextureRef* texture) {
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
585 } 547 }
586 } 548 }
587 549
588 // Include the auto-generated part of this file. We split this because it means 550 // Include the auto-generated part of this file. We split this because it means
589 // we can easily edit the non-auto generated parts right here in this file 551 // we can easily edit the non-auto generated parts right here in this file
590 // instead of having to edit some template or the code generator. 552 // instead of having to edit some template or the code generator.
591 #include "gpu/command_buffer/service/context_state_impl_autogen.h" 553 #include "gpu/command_buffer/service/context_state_impl_autogen.h"
592 554
593 } // namespace gles2 555 } // namespace gles2
594 } // namespace gpu 556 } // namespace gpu
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/context_state.h ('k') | gpu/command_buffer/service/context_state_autogen.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698