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

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

Issue 1785483002: Handle UNPACK_SKIP_* and PACK_SKIP_* parameters on the client side. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 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/command_buffer/service/gles2_cmd_decoder.h" 5 #include "gpu/command_buffer/service/gles2_cmd_decoder.h"
6 6
7 #include <limits.h> 7 #include <limits.h>
8 #include <stddef.h> 8 #include <stddef.h>
9 #include <stdint.h> 9 #include <stdint.h>
10 #include <stdio.h> 10 #include <stdio.h>
(...skipping 9529 matching lines...) Expand 10 before | Expand all | Expand 10 after
9540 switch (pname) { 9540 switch (pname) {
9541 case GL_PACK_ALIGNMENT: 9541 case GL_PACK_ALIGNMENT:
9542 case GL_UNPACK_ALIGNMENT: 9542 case GL_UNPACK_ALIGNMENT:
9543 if (!validators_->pixel_store_alignment.IsValid(param)) { 9543 if (!validators_->pixel_store_alignment.IsValid(param)) {
9544 LOCAL_SET_GL_ERROR( 9544 LOCAL_SET_GL_ERROR(
9545 GL_INVALID_VALUE, "glPixelStorei", "invalid param"); 9545 GL_INVALID_VALUE, "glPixelStorei", "invalid param");
9546 return error::kNoError; 9546 return error::kNoError;
9547 } 9547 }
9548 break; 9548 break;
9549 case GL_PACK_ROW_LENGTH: 9549 case GL_PACK_ROW_LENGTH:
9550 case GL_PACK_SKIP_PIXELS:
9551 case GL_PACK_SKIP_ROWS:
9552 case GL_UNPACK_ROW_LENGTH: 9550 case GL_UNPACK_ROW_LENGTH:
9553 case GL_UNPACK_IMAGE_HEIGHT: 9551 case GL_UNPACK_IMAGE_HEIGHT:
9554 case GL_UNPACK_SKIP_PIXELS:
9555 case GL_UNPACK_SKIP_ROWS:
9556 case GL_UNPACK_SKIP_IMAGES:
9557 if (param < 0) { 9552 if (param < 0) {
9558 LOCAL_SET_GL_ERROR( 9553 LOCAL_SET_GL_ERROR(
9559 GL_INVALID_VALUE, "glPixelStorei", "invalid param"); 9554 GL_INVALID_VALUE, "glPixelStorei", "invalid param");
9560 return error::kNoError; 9555 return error::kNoError;
9561 } 9556 }
9557 break;
9558 case GL_PACK_SKIP_PIXELS:
9559 case GL_PACK_SKIP_ROWS:
9560 case GL_UNPACK_SKIP_PIXELS:
9561 case GL_UNPACK_SKIP_ROWS:
9562 case GL_UNPACK_SKIP_IMAGES:
9563 // All SKIP parameters are handled on the client side and should never
9564 // be passed to the service side.
9565 return error::kInvalidArguments;
9562 default: 9566 default:
9563 break; 9567 break;
9564 } 9568 }
9565 // For pack skip parameters, we don't apply them and handle them in command
9566 // buffer.
9567 // For alignment parameters, we always apply them. 9569 // For alignment parameters, we always apply them.
9568 // For other parameters, we don't apply them if no buffer is bound at 9570 // For other parameters, we don't apply them if no buffer is bound at
9569 // PIXEL_PACK or PIXEL_UNPACK. We will handle pack and unpack according to 9571 // PIXEL_PACK or PIXEL_UNPACK. We will handle pack and unpack according to
9570 // the user specified parameters on the client side. 9572 // the user specified parameters on the client side.
9571 switch (pname) { 9573 switch (pname) {
9572 case GL_PACK_ROW_LENGTH: 9574 case GL_PACK_ROW_LENGTH:
9573 if (state_.bound_pixel_pack_buffer.get()) 9575 if (state_.bound_pixel_pack_buffer.get())
9574 glPixelStorei(pname, param); 9576 glPixelStorei(pname, param);
9575 break; 9577 break;
9576 case GL_PACK_SKIP_PIXELS:
9577 case GL_PACK_SKIP_ROWS:
9578 break;
9579 case GL_UNPACK_ROW_LENGTH: 9578 case GL_UNPACK_ROW_LENGTH:
9580 case GL_UNPACK_IMAGE_HEIGHT: 9579 case GL_UNPACK_IMAGE_HEIGHT:
9581 case GL_UNPACK_SKIP_PIXELS:
9582 case GL_UNPACK_SKIP_ROWS:
9583 case GL_UNPACK_SKIP_IMAGES:
9584 if (state_.bound_pixel_unpack_buffer.get()) 9580 if (state_.bound_pixel_unpack_buffer.get())
9585 glPixelStorei(pname, param); 9581 glPixelStorei(pname, param);
9586 break; 9582 break;
9587 default: 9583 default:
9588 glPixelStorei(pname, param); 9584 glPixelStorei(pname, param);
9589 break; 9585 break;
9590 } 9586 }
9591 switch (pname) { 9587 switch (pname) {
9592 case GL_PACK_ALIGNMENT: 9588 case GL_PACK_ALIGNMENT:
9593 state_.pack_alignment = param; 9589 state_.pack_alignment = param;
9594 break; 9590 break;
9595 case GL_PACK_ROW_LENGTH: 9591 case GL_PACK_ROW_LENGTH:
9596 state_.pack_row_length = param; 9592 state_.pack_row_length = param;
9597 break; 9593 break;
9598 case GL_PACK_SKIP_PIXELS:
9599 state_.pack_skip_pixels = param;
9600 break;
9601 case GL_PACK_SKIP_ROWS:
9602 state_.pack_skip_rows = param;
9603 break;
9604 case GL_UNPACK_ALIGNMENT: 9594 case GL_UNPACK_ALIGNMENT:
9605 state_.unpack_alignment = param; 9595 state_.unpack_alignment = param;
9606 break; 9596 break;
9607 case GL_UNPACK_ROW_LENGTH: 9597 case GL_UNPACK_ROW_LENGTH:
9608 state_.unpack_row_length = param; 9598 state_.unpack_row_length = param;
9609 break; 9599 break;
9610 case GL_UNPACK_IMAGE_HEIGHT: 9600 case GL_UNPACK_IMAGE_HEIGHT:
9611 state_.unpack_image_height = param; 9601 state_.unpack_image_height = param;
9612 break; 9602 break;
9613 case GL_UNPACK_SKIP_PIXELS:
9614 state_.unpack_skip_pixels = param;
9615 break;
9616 case GL_UNPACK_SKIP_ROWS:
9617 state_.unpack_skip_rows = param;
9618 break;
9619 case GL_UNPACK_SKIP_IMAGES:
9620 state_.unpack_skip_images = param;
9621 break;
9622 default: 9603 default:
9623 // Validation should have prevented us from getting here. 9604 // Validation should have prevented us from getting here.
9624 NOTREACHED(); 9605 NOTREACHED();
9625 break; 9606 break;
9626 } 9607 }
9627 return error::kNoError; 9608 return error::kNoError;
9628 } 9609 }
9629 9610
9630 error::Error GLES2DecoderImpl::HandlePostSubBufferCHROMIUM( 9611 error::Error GLES2DecoderImpl::HandlePostSubBufferCHROMIUM(
9631 uint32_t immediate_data_size, 9612 uint32_t immediate_data_size,
(...skipping 6327 matching lines...) Expand 10 before | Expand all | Expand 10 after
15959 } 15940 }
15960 15941
15961 // Include the auto-generated part of this file. We split this because it means 15942 // Include the auto-generated part of this file. We split this because it means
15962 // we can easily edit the non-auto generated parts right here in this file 15943 // we can easily edit the non-auto generated parts right here in this file
15963 // instead of having to edit some template or the code generator. 15944 // instead of having to edit some template or the code generator.
15964 #include "base/macros.h" 15945 #include "base/macros.h"
15965 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h" 15946 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h"
15966 15947
15967 } // namespace gles2 15948 } // namespace gles2
15968 } // namespace gpu 15949 } // namespace gpu
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/feature_info_unittest.cc ('k') | gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698