Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 2724 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2735 LOG(ERROR) << "Underlying driver does not support ES3."; | 2735 LOG(ERROR) << "Underlying driver does not support ES3."; |
| 2736 Destroy(true); | 2736 Destroy(true); |
| 2737 return false; | 2737 return false; |
| 2738 } | 2738 } |
| 2739 feature_info_->EnableES3Validators(); | 2739 feature_info_->EnableES3Validators(); |
| 2740 set_unsafe_es3_apis_enabled(true); | 2740 set_unsafe_es3_apis_enabled(true); |
| 2741 | 2741 |
| 2742 frag_depth_explicitly_enabled_ = true; | 2742 frag_depth_explicitly_enabled_ = true; |
| 2743 draw_buffers_explicitly_enabled_ = true; | 2743 draw_buffers_explicitly_enabled_ = true; |
| 2744 // TODO(zmo): Look into shader_texture_lod_explicitly_enabled_ situation. | 2744 // TODO(zmo): Look into shader_texture_lod_explicitly_enabled_ situation. |
| 2745 | |
| 2746 // TEXTURE_CUBE_MAP_SEAMLESS is available on Desktop GL 3.2 or above. | |
| 2747 // ES3 requires it to be always supported. | |
| 2748 // We don't support ES3 on Desktop GL lower than 3.2. | |
| 2749 if (!feature_info_->gl_version_info().BehavesLikeGLES()) { | |
| 2750 glEnable(GL_TEXTURE_CUBE_MAP_SEAMLESS); | |
| 2751 } | |
|
piman
2016/03/25 17:01:04
Can you remove this? The code below will take care
Zhenyao Mo
2016/03/25 17:17:29
Ah, nasty. I thought I deleted already.
| |
| 2745 } | 2752 } |
| 2746 | 2753 |
| 2747 state_.attrib_values.resize(group_->max_vertex_attribs()); | 2754 state_.attrib_values.resize(group_->max_vertex_attribs()); |
| 2748 vertex_array_manager_.reset(new VertexArrayManager()); | 2755 vertex_array_manager_.reset(new VertexArrayManager()); |
| 2749 | 2756 |
| 2750 GLuint default_vertex_attrib_service_id = 0; | 2757 GLuint default_vertex_attrib_service_id = 0; |
| 2751 if (features().native_vertex_array_object) { | 2758 if (features().native_vertex_array_object) { |
| 2752 glGenVertexArraysOES(1, &default_vertex_attrib_service_id); | 2759 glGenVertexArraysOES(1, &default_vertex_attrib_service_id); |
| 2753 glBindVertexArrayOES(default_vertex_attrib_service_id); | 2760 glBindVertexArrayOES(default_vertex_attrib_service_id); |
| 2754 } | 2761 } |
| (...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3011 // variable in fragment shaders. | 3018 // variable in fragment shaders. |
| 3012 if (!feature_info_->gl_version_info().BehavesLikeGLES()) { | 3019 if (!feature_info_->gl_version_info().BehavesLikeGLES()) { |
| 3013 glEnable(GL_VERTEX_PROGRAM_POINT_SIZE); | 3020 glEnable(GL_VERTEX_PROGRAM_POINT_SIZE); |
| 3014 glEnable(GL_POINT_SPRITE); | 3021 glEnable(GL_POINT_SPRITE); |
| 3015 } else if (feature_info_->gl_version_info().is_desktop_core_profile) { | 3022 } else if (feature_info_->gl_version_info().is_desktop_core_profile) { |
| 3016 // The desktop core profile changed how program point size mode is | 3023 // The desktop core profile changed how program point size mode is |
| 3017 // enabled. | 3024 // enabled. |
| 3018 glEnable(GL_PROGRAM_POINT_SIZE); | 3025 glEnable(GL_PROGRAM_POINT_SIZE); |
| 3019 } | 3026 } |
| 3020 | 3027 |
| 3028 // ES3 requires seamless cubemap. ES2 does not. | |
| 3029 // However, when ES2 is implemented on top of DX11, seamless cubemap is | |
| 3030 // always enabled and there is no way to disable it. | |
| 3031 // Therefore, it seems OK to also always enable it on top of Desktop GL for | |
| 3032 // both ES2 and ES3 contexts. | |
| 3033 if (feature_info_->gl_version_info().IsAtLeastGL(3, 2)) { | |
| 3034 glEnable(GL_TEXTURE_CUBE_MAP_SEAMLESS); | |
| 3035 } | |
| 3036 | |
| 3021 has_robustness_extension_ = | 3037 has_robustness_extension_ = |
| 3022 context->HasExtension("GL_ARB_robustness") || | 3038 context->HasExtension("GL_ARB_robustness") || |
| 3023 context->HasExtension("GL_KHR_robustness") || | 3039 context->HasExtension("GL_KHR_robustness") || |
| 3024 context->HasExtension("GL_EXT_robustness"); | 3040 context->HasExtension("GL_EXT_robustness"); |
| 3025 | 3041 |
| 3026 if (!InitializeShaderTranslator()) { | 3042 if (!InitializeShaderTranslator()) { |
| 3027 return false; | 3043 return false; |
| 3028 } | 3044 } |
| 3029 | 3045 |
| 3030 GLint viewport_params[4] = { 0 }; | 3046 GLint viewport_params[4] = { 0 }; |
| (...skipping 13302 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 16333 } | 16349 } |
| 16334 | 16350 |
| 16335 // Include the auto-generated part of this file. We split this because it means | 16351 // Include the auto-generated part of this file. We split this because it means |
| 16336 // we can easily edit the non-auto generated parts right here in this file | 16352 // we can easily edit the non-auto generated parts right here in this file |
| 16337 // instead of having to edit some template or the code generator. | 16353 // instead of having to edit some template or the code generator. |
| 16338 #include "base/macros.h" | 16354 #include "base/macros.h" |
| 16339 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h" | 16355 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h" |
| 16340 | 16356 |
| 16341 } // namespace gles2 | 16357 } // namespace gles2 |
| 16342 } // namespace gpu | 16358 } // namespace gpu |
| OLD | NEW |