| 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 680 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 691 bool force_context_lost_; | 691 bool force_context_lost_; |
| 692 | 692 |
| 693 DISALLOW_COPY_AND_ASSIGN(TextureRef); | 693 DISALLOW_COPY_AND_ASSIGN(TextureRef); |
| 694 }; | 694 }; |
| 695 | 695 |
| 696 // Holds data that is per gles2_cmd_decoder, but is related to to the | 696 // Holds data that is per gles2_cmd_decoder, but is related to to the |
| 697 // TextureManager. | 697 // TextureManager. |
| 698 struct DecoderTextureState { | 698 struct DecoderTextureState { |
| 699 // total_texture_upload_time automatically initialized to 0 in default | 699 // total_texture_upload_time automatically initialized to 0 in default |
| 700 // constructor. | 700 // constructor. |
| 701 explicit DecoderTextureState(const GpuDriverBugWorkarounds& workarounds) | 701 explicit DecoderTextureState(const GpuDriverBugWorkarounds& workarounds); |
| 702 : tex_image_failed(false), | |
| 703 texture_upload_count(0), | |
| 704 texsubimage_faster_than_teximage( | |
| 705 workarounds.texsubimage_faster_than_teximage), | |
| 706 force_cube_map_positive_x_allocation( | |
| 707 workarounds.force_cube_map_positive_x_allocation), | |
| 708 force_cube_complete(workarounds.force_cube_complete), | |
| 709 unpack_alignment_workaround_with_unpack_buffer( | |
| 710 workarounds.unpack_alignment_workaround_with_unpack_buffer), | |
| 711 unpack_overlapping_rows_separately_unpack_buffer( | |
| 712 workarounds.unpack_overlapping_rows_separately_unpack_buffer), | |
| 713 unpack_image_height_workaround_with_unpack_buffer( | |
| 714 workarounds.unpack_image_height_workaround_with_unpack_buffer) {} | |
| 715 | 702 |
| 716 // This indicates all the following texSubImage*D calls that are part of the | 703 // This indicates all the following texSubImage*D calls that are part of the |
| 717 // failed texImage*D call should be ignored. The client calls have a lock | 704 // failed texImage*D call should be ignored. The client calls have a lock |
| 718 // around them, so it will affect only a single texImage*D + texSubImage*D | 705 // around them, so it will affect only a single texImage*D + texSubImage*D |
| 719 // group. | 706 // group. |
| 720 bool tex_image_failed; | 707 bool tex_image_failed; |
| 721 | 708 |
| 722 // Command buffer stats. | 709 // Command buffer stats. |
| 723 int texture_upload_count; | 710 int texture_upload_count; |
| 724 base::TimeDelta total_texture_upload_time; | 711 base::TimeDelta total_texture_upload_time; |
| 725 | 712 |
| 726 bool texsubimage_faster_than_teximage; | 713 bool texsubimage_faster_than_teximage; |
| 727 bool force_cube_map_positive_x_allocation; | 714 bool force_cube_map_positive_x_allocation; |
| 728 bool force_cube_complete; | 715 bool force_cube_complete; |
| 716 bool force_int_or_srgb_cube_texture_complete; |
| 729 bool unpack_alignment_workaround_with_unpack_buffer; | 717 bool unpack_alignment_workaround_with_unpack_buffer; |
| 730 bool unpack_overlapping_rows_separately_unpack_buffer; | 718 bool unpack_overlapping_rows_separately_unpack_buffer; |
| 731 bool unpack_image_height_workaround_with_unpack_buffer; | 719 bool unpack_image_height_workaround_with_unpack_buffer; |
| 732 }; | 720 }; |
| 733 | 721 |
| 734 // This class keeps track of the textures and their sizes so we can do NPOT and | 722 // This class keeps track of the textures and their sizes so we can do NPOT and |
| 735 // texture complete checking. | 723 // texture complete checking. |
| 736 // | 724 // |
| 737 // NOTE: To support shared resources an instance of this class will need to be | 725 // NOTE: To support shared resources an instance of this class will need to be |
| 738 // shared by multiple GLES2Decoders. | 726 // shared by multiple GLES2Decoders. |
| (...skipping 525 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1264 private: | 1252 private: |
| 1265 DecoderTextureState* texture_state_; | 1253 DecoderTextureState* texture_state_; |
| 1266 base::TimeTicks begin_time_; | 1254 base::TimeTicks begin_time_; |
| 1267 DISALLOW_COPY_AND_ASSIGN(ScopedTextureUploadTimer); | 1255 DISALLOW_COPY_AND_ASSIGN(ScopedTextureUploadTimer); |
| 1268 }; | 1256 }; |
| 1269 | 1257 |
| 1270 } // namespace gles2 | 1258 } // namespace gles2 |
| 1271 } // namespace gpu | 1259 } // namespace gpu |
| 1272 | 1260 |
| 1273 #endif // GPU_COMMAND_BUFFER_SERVICE_TEXTURE_MANAGER_H_ | 1261 #endif // GPU_COMMAND_BUFFER_SERVICE_TEXTURE_MANAGER_H_ |
| OLD | NEW |