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 #ifndef GPU_COMMAND_BUFFER_SERVICE_TEXTURE_MANAGER_H_ | 5 #ifndef GPU_COMMAND_BUFFER_SERVICE_TEXTURE_MANAGER_H_ |
6 #define GPU_COMMAND_BUFFER_SERVICE_TEXTURE_MANAGER_H_ | 6 #define GPU_COMMAND_BUFFER_SERVICE_TEXTURE_MANAGER_H_ |
7 | 7 |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 #include <stdint.h> | 9 #include <stdint.h> |
10 | 10 |
(...skipping 679 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
690 Texture* texture_; | 690 Texture* texture_; |
691 GLuint client_id_; | 691 GLuint client_id_; |
692 GLint num_observers_; | 692 GLint num_observers_; |
693 bool force_context_lost_; | 693 bool force_context_lost_; |
694 | 694 |
695 DISALLOW_COPY_AND_ASSIGN(TextureRef); | 695 DISALLOW_COPY_AND_ASSIGN(TextureRef); |
696 }; | 696 }; |
697 | 697 |
698 // Holds data that is per gles2_cmd_decoder, but is related to to the | 698 // Holds data that is per gles2_cmd_decoder, but is related to to the |
699 // TextureManager. | 699 // TextureManager. |
700 struct DecoderTextureState { | 700 struct GPU_EXPORT DecoderTextureState { |
701 // total_texture_upload_time automatically initialized to 0 in default | 701 // total_texture_upload_time automatically initialized to 0 in default |
702 // constructor. | 702 // constructor. |
703 explicit DecoderTextureState(const GpuDriverBugWorkarounds& workarounds); | 703 explicit DecoderTextureState(const GpuDriverBugWorkarounds& workarounds); |
704 | 704 |
705 // This indicates all the following texSubImage*D calls that are part of the | 705 // This indicates all the following texSubImage*D calls that are part of the |
706 // failed texImage*D call should be ignored. The client calls have a lock | 706 // failed texImage*D call should be ignored. The client calls have a lock |
707 // around them, so it will affect only a single texImage*D + texSubImage*D | 707 // around them, so it will affect only a single texImage*D + texSubImage*D |
708 // group. | 708 // group. |
709 bool tex_image_failed; | 709 bool tex_image_failed; |
710 | 710 |
(...skipping 411 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1122 DecoderTextureState* texture_state, | 1122 DecoderTextureState* texture_state, |
1123 ContextState* state, | 1123 ContextState* state, |
1124 DecoderFramebufferState* framebuffer_state, | 1124 DecoderFramebufferState* framebuffer_state, |
1125 TextureRef* texture_ref, | 1125 TextureRef* texture_ref, |
1126 const char* function_name, | 1126 const char* function_name, |
1127 const DoTexImageArguments& args) { | 1127 const DoTexImageArguments& args) { |
1128 DoCubeMapWorkaround(texture_state, state, framebuffer_state, | 1128 DoCubeMapWorkaround(texture_state, state, framebuffer_state, |
1129 texture_ref, function_name, args); | 1129 texture_ref, function_name, args); |
1130 } | 1130 } |
1131 | 1131 |
1132 void DoTexImage(DecoderTextureState* texture_state, | |
1133 ContextState* state, | |
1134 DecoderFramebufferState* framebuffer_state, | |
1135 const char* function_name, | |
1136 TextureRef* texture_ref, | |
1137 const DoTexImageArguments& args); | |
1138 | |
yizhou.jiang
2017/06/09 07:58:16
I move DoTexImage to public in order to test it in
| |
1132 private: | 1139 private: |
1133 friend class Texture; | 1140 friend class Texture; |
1134 friend class TextureRef; | 1141 friend class TextureRef; |
1135 | 1142 |
1136 // Helper for Initialize(). | 1143 // Helper for Initialize(). |
1137 scoped_refptr<TextureRef> CreateDefaultAndBlackTextures( | 1144 scoped_refptr<TextureRef> CreateDefaultAndBlackTextures( |
1138 GLenum target, | 1145 GLenum target, |
1139 GLuint* black_texture); | 1146 GLuint* black_texture); |
1140 | 1147 |
1141 void DoTexImage( | |
1142 DecoderTextureState* texture_state, | |
1143 ContextState* state, | |
1144 DecoderFramebufferState* framebuffer_state, | |
1145 const char* function_name, | |
1146 TextureRef* texture_ref, | |
1147 const DoTexImageArguments& args); | |
1148 | |
1149 // Reserve memory for the texture and set its attributes so it can be filled | 1148 // Reserve memory for the texture and set its attributes so it can be filled |
1150 // with TexSubImage. The image contents are undefined after this function, | 1149 // with TexSubImage. The image contents are undefined after this function, |
1151 // so make sure it's subsequently filled in its entirety. | 1150 // so make sure it's subsequently filled in its entirety. |
1152 void ReserveTexImageToBeFilled(DecoderTextureState* texture_state, | 1151 void ReserveTexImageToBeFilled(DecoderTextureState* texture_state, |
1153 ContextState* state, | 1152 ContextState* state, |
1154 DecoderFramebufferState* framebuffer_state, | 1153 DecoderFramebufferState* framebuffer_state, |
1155 const char* function_name, | 1154 const char* function_name, |
1156 TextureRef* texture_ref, | 1155 TextureRef* texture_ref, |
1157 const DoTexImageArguments& args); | 1156 const DoTexImageArguments& args); |
1158 | 1157 |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1246 | 1245 |
1247 ServiceDiscardableManager* discardable_manager_; | 1246 ServiceDiscardableManager* discardable_manager_; |
1248 | 1247 |
1249 DISALLOW_COPY_AND_ASSIGN(TextureManager); | 1248 DISALLOW_COPY_AND_ASSIGN(TextureManager); |
1250 }; | 1249 }; |
1251 | 1250 |
1252 } // namespace gles2 | 1251 } // namespace gles2 |
1253 } // namespace gpu | 1252 } // namespace gpu |
1254 | 1253 |
1255 #endif // GPU_COMMAND_BUFFER_SERVICE_TEXTURE_MANAGER_H_ | 1254 #endif // GPU_COMMAND_BUFFER_SERVICE_TEXTURE_MANAGER_H_ |
OLD | NEW |