| 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 <algorithm> | 8 #include <algorithm> |
| 9 #include <list> | 9 #include <list> |
| 10 #include <set> | 10 #include <set> |
| (...skipping 852 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 863 // Presumes the pointer is valid. | 863 // Presumes the pointer is valid. |
| 864 TextureRef** texture_ref); | 864 TextureRef** texture_ref); |
| 865 | 865 |
| 866 void ValidateAndDoTexImage( | 866 void ValidateAndDoTexImage( |
| 867 DecoderTextureState* texture_state, | 867 DecoderTextureState* texture_state, |
| 868 ContextState* state, | 868 ContextState* state, |
| 869 DecoderFramebufferState* framebuffer_state, | 869 DecoderFramebufferState* framebuffer_state, |
| 870 const char* function_name, | 870 const char* function_name, |
| 871 const DoTexImageArguments& args); | 871 const DoTexImageArguments& args); |
| 872 | 872 |
| 873 struct DoTexSubImageArguments { |
| 874 GLenum target; |
| 875 GLint level; |
| 876 GLint xoffset; |
| 877 GLint yoffset; |
| 878 GLsizei width; |
| 879 GLsizei height; |
| 880 GLenum format; |
| 881 GLenum type; |
| 882 const void* pixels; |
| 883 uint32 pixels_size; |
| 884 // TODO(kkinnunen): currently this is used only for TexSubImage2D. |
| 885 }; |
| 886 |
| 887 bool ValidateTexSubImage( |
| 888 ContextState* state, |
| 889 const char* function_name, |
| 890 const DoTexSubImageArguments& args, |
| 891 // Pointer to TextureRef filled in if validation successful. |
| 892 // Presumes the pointer is valid. |
| 893 TextureRef** texture_ref); |
| 894 |
| 895 void ValidateAndDoTexSubImage(GLES2Decoder* decoder, |
| 896 DecoderTextureState* texture_state, |
| 897 ContextState* state, |
| 898 DecoderFramebufferState* framebuffer_state, |
| 899 const char* function_name, |
| 900 const DoTexSubImageArguments& args); |
| 901 |
| 873 // TODO(kloveless): Make GetTexture* private once this is no longer called | 902 // TODO(kloveless): Make GetTexture* private once this is no longer called |
| 874 // from gles2_cmd_decoder. | 903 // from gles2_cmd_decoder. |
| 875 TextureRef* GetTextureInfoForTarget(ContextState* state, GLenum target); | 904 TextureRef* GetTextureInfoForTarget(ContextState* state, GLenum target); |
| 876 TextureRef* GetTextureInfoForTargetUnlessDefault( | 905 TextureRef* GetTextureInfoForTargetUnlessDefault( |
| 877 ContextState* state, GLenum target); | 906 ContextState* state, GLenum target); |
| 878 | 907 |
| 879 // Note that internal_format is only checked in relation to the format | 908 // Note that internal_format is only checked in relation to the format |
| 880 // parameter, so that this function may be used to validate texSubImage2D. | 909 // parameter, so that this function may be used to validate texSubImage2D. |
| 881 bool ValidateTextureParameters( | 910 bool ValidateTextureParameters( |
| 882 ErrorState* error_state, const char* function_name, | 911 ErrorState* error_state, const char* function_name, |
| 883 GLenum format, GLenum type, GLenum internal_format, GLint level); | 912 GLenum format, GLenum type, GLenum internal_format, GLint level); |
| 884 | 913 |
| 885 // base::trace_event::MemoryDumpProvider implementation. | 914 // base::trace_event::MemoryDumpProvider implementation. |
| 886 bool OnMemoryDump(const base::trace_event::MemoryDumpArgs& args, | 915 bool OnMemoryDump(const base::trace_event::MemoryDumpArgs& args, |
| 887 base::trace_event::ProcessMemoryDump* pmd) override; | 916 base::trace_event::ProcessMemoryDump* pmd) override; |
| 888 | 917 |
| 918 // Returns the union of |rect1| and |rect2| if one of the rectangles is empty, |
| 919 // contains the other rectangle or shares an edge with the other rectangle. |
| 920 // Part of the public interface because texture pixel data rectangle |
| 921 // operations are also implemented in decoder at the moment. |
| 922 static bool CombineAdjacentRects(const gfx::Rect& rect1, |
| 923 const gfx::Rect& rect2, |
| 924 gfx::Rect* result); |
| 925 |
| 889 private: | 926 private: |
| 890 friend class Texture; | 927 friend class Texture; |
| 891 friend class TextureRef; | 928 friend class TextureRef; |
| 892 | 929 |
| 893 // Helper for Initialize(). | 930 // Helper for Initialize(). |
| 894 scoped_refptr<TextureRef> CreateDefaultAndBlackTextures( | 931 scoped_refptr<TextureRef> CreateDefaultAndBlackTextures( |
| 895 GLenum target, | 932 GLenum target, |
| 896 GLuint* black_texture); | 933 GLuint* black_texture); |
| 897 | 934 |
| 898 void DoTexImage( | 935 void DoTexImage( |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 974 private: | 1011 private: |
| 975 DecoderTextureState* texture_state_; | 1012 DecoderTextureState* texture_state_; |
| 976 base::TimeTicks begin_time_; | 1013 base::TimeTicks begin_time_; |
| 977 DISALLOW_COPY_AND_ASSIGN(ScopedTextureUploadTimer); | 1014 DISALLOW_COPY_AND_ASSIGN(ScopedTextureUploadTimer); |
| 978 }; | 1015 }; |
| 979 | 1016 |
| 980 } // namespace gles2 | 1017 } // namespace gles2 |
| 981 } // namespace gpu | 1018 } // namespace gpu |
| 982 | 1019 |
| 983 #endif // GPU_COMMAND_BUFFER_SERVICE_TEXTURE_MANAGER_H_ | 1020 #endif // GPU_COMMAND_BUFFER_SERVICE_TEXTURE_MANAGER_H_ |
| OLD | NEW |