OLD | NEW |
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_split.h" | 7 #include "base/strings/string_split.h" |
8 #include "gpu/command_buffer/service/feature_info.h" | 8 #include "gpu/command_buffer/service/feature_info.h" |
9 #include "gpu/command_buffer/service/gl_utils.h" | 9 #include "gpu/command_buffer/service/gl_utils.h" |
10 #include "ui/gl/gl_version_info.h" | 10 #include "ui/gl/gl_version_info.h" |
(...skipping 867 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
878 glBindTexture(target, service_id); | 878 glBindTexture(target, service_id); |
879 } | 879 } |
880 } | 880 } |
881 | 881 |
882 // Reset the active texture unit if it was changed | 882 // Reset the active texture unit if it was changed |
883 if (cur_texture_unit != active_texture_unit_) { | 883 if (cur_texture_unit != active_texture_unit_) { |
884 glActiveTexture(static_cast<GLenum>(GL_TEXTURE0 + active_texture_unit_)); | 884 glActiveTexture(static_cast<GLenum>(GL_TEXTURE0 + active_texture_unit_)); |
885 } | 885 } |
886 } | 886 } |
887 | 887 |
888 error::Error GLES2DecoderPassthroughImpl::BindTexImage2DCHROMIUMImpl( | |
889 GLenum target, | |
890 GLenum internalformat, | |
891 GLint imageId) { | |
892 if (target != GL_TEXTURE_2D) { | |
893 InsertError(GL_INVALID_ENUM, "Invalid target"); | |
894 return error::kNoError; | |
895 } | |
896 | |
897 gl::GLImage* image = image_manager_->LookupImage(imageId); | |
898 if (image == nullptr) { | |
899 InsertError(GL_INVALID_OPERATION, "No image found with the given ID"); | |
900 return error::kNoError; | |
901 } | |
902 | |
903 if (internalformat) { | |
904 if (!image->BindTexImageWithInternalformat(target, internalformat)) { | |
905 image->CopyTexImage(target); | |
906 } | |
907 } else { | |
908 if (!image->BindTexImage(target)) { | |
909 image->CopyTexImage(target); | |
910 } | |
911 } | |
912 | |
913 return error::kNoError; | |
914 } | |
915 | |
916 #define GLES2_CMD_OP(name) \ | 888 #define GLES2_CMD_OP(name) \ |
917 { \ | 889 { \ |
918 &GLES2DecoderPassthroughImpl::Handle##name, cmds::name::kArgFlags, \ | 890 &GLES2DecoderPassthroughImpl::Handle##name, cmds::name::kArgFlags, \ |
919 cmds::name::cmd_flags, \ | 891 cmds::name::cmd_flags, \ |
920 sizeof(cmds::name) / sizeof(CommandBufferEntry) - 1, \ | 892 sizeof(cmds::name) / sizeof(CommandBufferEntry) - 1, \ |
921 }, /* NOLINT */ | 893 }, /* NOLINT */ |
922 | 894 |
923 const GLES2DecoderPassthroughImpl::CommandInfo | 895 const GLES2DecoderPassthroughImpl::CommandInfo |
924 GLES2DecoderPassthroughImpl::command_info[] = { | 896 GLES2DecoderPassthroughImpl::command_info[] = { |
925 GLES2_COMMAND_LIST(GLES2_CMD_OP)}; | 897 GLES2_COMMAND_LIST(GLES2_CMD_OP)}; |
926 | 898 |
927 #undef GLES2_CMD_OP | 899 #undef GLES2_CMD_OP |
928 | 900 |
929 } // namespace gles2 | 901 } // namespace gles2 |
930 } // namespace gpu | 902 } // namespace gpu |
OLD | NEW |