OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 <stdio.h> | 7 #include <stdio.h> |
8 | 8 |
9 #include <algorithm> | 9 #include <algorithm> |
10 #include <list> | 10 #include <list> |
(...skipping 19 matching lines...) Expand all Loading... |
30 #include "gpu/command_buffer/service/framebuffer_manager.h" | 30 #include "gpu/command_buffer/service/framebuffer_manager.h" |
31 #include "gpu/command_buffer/service/gl_utils.h" | 31 #include "gpu/command_buffer/service/gl_utils.h" |
32 #include "gpu/command_buffer/service/gles2_cmd_validation.h" | 32 #include "gpu/command_buffer/service/gles2_cmd_validation.h" |
33 #include "gpu/command_buffer/service/program_manager.h" | 33 #include "gpu/command_buffer/service/program_manager.h" |
34 #include "gpu/command_buffer/service/renderbuffer_manager.h" | 34 #include "gpu/command_buffer/service/renderbuffer_manager.h" |
35 #include "gpu/command_buffer/service/shader_manager.h" | 35 #include "gpu/command_buffer/service/shader_manager.h" |
36 #include "gpu/command_buffer/service/shader_translator.h" | 36 #include "gpu/command_buffer/service/shader_translator.h" |
37 #include "gpu/command_buffer/service/surface_manager.h" | 37 #include "gpu/command_buffer/service/surface_manager.h" |
38 #include "gpu/command_buffer/service/texture_manager.h" | 38 #include "gpu/command_buffer/service/texture_manager.h" |
39 #include "gpu/command_buffer/service/vertex_attrib_manager.h" | 39 #include "gpu/command_buffer/service/vertex_attrib_manager.h" |
40 #include "gpu/GLES2/gles2_command_buffer.h" | |
41 #include "ui/gfx/gl/gl_context.h" | 40 #include "ui/gfx/gl/gl_context.h" |
42 #include "ui/gfx/gl/gl_implementation.h" | 41 #include "ui/gfx/gl/gl_implementation.h" |
43 #include "ui/gfx/gl/gl_surface.h" | 42 #include "ui/gfx/gl/gl_surface.h" |
44 | 43 |
45 #if !defined(GL_DEPTH24_STENCIL8) | 44 #if !defined(GL_DEPTH24_STENCIL8) |
46 #define GL_DEPTH24_STENCIL8 0x88F0 | 45 #define GL_DEPTH24_STENCIL8 0x88F0 |
47 #endif | 46 #endif |
48 | 47 |
49 namespace gpu { | 48 namespace gpu { |
50 namespace gles2 { | 49 namespace gles2 { |
(...skipping 6526 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6577 } | 6576 } |
6578 } | 6577 } |
6579 | 6578 |
6580 if (swap_buffers_callback_.get()) { | 6579 if (swap_buffers_callback_.get()) { |
6581 swap_buffers_callback_->Run(); | 6580 swap_buffers_callback_->Run(); |
6582 } | 6581 } |
6583 | 6582 |
6584 return error::kNoError; | 6583 return error::kNoError; |
6585 } | 6584 } |
6586 | 6585 |
6587 error::Error GLES2DecoderImpl::HandleCommandBufferEnableCHROMIUM( | 6586 error::Error GLES2DecoderImpl::HandleEnableFeatureCHROMIUM( |
6588 uint32 immediate_data_size, const gles2::CommandBufferEnableCHROMIUM& c) { | 6587 uint32 immediate_data_size, const gles2::EnableFeatureCHROMIUM& c) { |
6589 Bucket* bucket = GetBucket(c.bucket_id); | 6588 Bucket* bucket = GetBucket(c.bucket_id); |
6590 typedef gles2::CommandBufferEnableCHROMIUM::Result Result; | 6589 typedef gles2::EnableFeatureCHROMIUM::Result Result; |
6591 Result* result = GetSharedMemoryAs<Result*>( | 6590 Result* result = GetSharedMemoryAs<Result*>( |
6592 c.result_shm_id, c.result_shm_offset, sizeof(*result)); | 6591 c.result_shm_id, c.result_shm_offset, sizeof(*result)); |
6593 if (!result) { | 6592 if (!result) { |
6594 return error::kOutOfBounds; | 6593 return error::kOutOfBounds; |
6595 } | 6594 } |
6596 // Check that the client initialized the result. | 6595 // Check that the client initialized the result. |
6597 if (*result != 0) { | 6596 if (*result != 0) { |
6598 return error::kInvalidArguments; | 6597 return error::kInvalidArguments; |
6599 } | 6598 } |
6600 std::string feature_str; | 6599 std::string feature_str; |
6601 if (!bucket->GetAsString(&feature_str)) { | 6600 if (!bucket->GetAsString(&feature_str)) { |
6602 return error::kInvalidArguments; | 6601 return error::kInvalidArguments; |
6603 } | 6602 } |
6604 | 6603 |
6605 // TODO(gman): make this some kind of table to function pointer thingy. | 6604 // TODO(gman): make this some kind of table to function pointer thingy. |
6606 if (feature_str.compare(PEPPER3D_ALLOW_BUFFERS_ON_MULTIPLE_TARGETS) == 0) { | 6605 if (feature_str.compare("pepper3d_allow_buffers_on_multiple_targets") == 0) { |
6607 buffer_manager()->set_allow_buffers_on_multiple_targets(true); | 6606 buffer_manager()->set_allow_buffers_on_multiple_targets(true); |
6608 } else if (feature_str.compare(PEPPER3D_SUPPORT_FIXED_ATTRIBS) == 0) { | 6607 } else if (feature_str.compare("pepper3d_support_fixed_attribs") == 0) { |
6609 buffer_manager()->set_allow_buffers_on_multiple_targets(true); | 6608 buffer_manager()->set_allow_buffers_on_multiple_targets(true); |
6610 // TODO(gman): decide how to remove the need for this const_cast. | 6609 // TODO(gman): decide how to remove the need for this const_cast. |
6611 // I could make validators_ non const but that seems bad as this is the only | 6610 // I could make validators_ non const but that seems bad as this is the only |
6612 // place it is needed. I could make some special friend class of validators | 6611 // place it is needed. I could make some special friend class of validators |
6613 // just to allow this to set them. That seems silly. I could refactor this | 6612 // just to allow this to set them. That seems silly. I could refactor this |
6614 // code to use the extension mechanism or the initialization attributes to | 6613 // code to use the extension mechanism or the initialization attributes to |
6615 // turn this feature on. Given that the only real point of this is to make | 6614 // turn this feature on. Given that the only real point of this is to make |
6616 // the conformance tests pass and given that there is lots of real work that | 6615 // the conformance tests pass and given that there is lots of real work that |
6617 // needs to be done it seems like refactoring for one to one of those | 6616 // needs to be done it seems like refactoring for one to one of those |
6618 // methods is a very low priority. | 6617 // methods is a very low priority. |
6619 const_cast<Validators*>(validators_)->vertex_attrib_type.AddValue(GL_FIXED); | 6618 const_cast<Validators*>(validators_)->vertex_attrib_type.AddValue(GL_FIXED); |
6620 } else if (feature_str.compare(PEPPER3D_SKIP_GLSL_TRANSLATION) == 0) { | |
6621 use_shader_translator_ = false; | |
6622 } else { | 6619 } else { |
6623 return error::kNoError; | 6620 return error::kNoError; |
6624 } | 6621 } |
6625 | 6622 |
6626 *result = 1; // true. | 6623 *result = 1; // true. |
6627 return error::kNoError; | 6624 return error::kNoError; |
6628 } | 6625 } |
6629 | 6626 |
6630 error::Error GLES2DecoderImpl::HandleGetRequestableExtensionsCHROMIUM( | 6627 error::Error GLES2DecoderImpl::HandleGetRequestableExtensionsCHROMIUM( |
6631 uint32 immediate_data_size, | 6628 uint32 immediate_data_size, |
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6791 return false; | 6788 return false; |
6792 } | 6789 } |
6793 | 6790 |
6794 // Include the auto-generated part of this file. We split this because it means | 6791 // Include the auto-generated part of this file. We split this because it means |
6795 // we can easily edit the non-auto generated parts right here in this file | 6792 // we can easily edit the non-auto generated parts right here in this file |
6796 // instead of having to edit some template or the code generator. | 6793 // instead of having to edit some template or the code generator. |
6797 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h" | 6794 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h" |
6798 | 6795 |
6799 } // namespace gles2 | 6796 } // namespace gles2 |
6800 } // namespace gpu | 6797 } // namespace gpu |
OLD | NEW |