Chromium Code Reviews| Index: gpu/command_buffer/service/texture_manager.h |
| diff --git a/gpu/command_buffer/service/texture_manager.h b/gpu/command_buffer/service/texture_manager.h |
| index 2f118de18f0d3bd8d3f047740ccf13bcdfb4bb11..27a14b928047b040335822a65cce786ee2b40e0b 100644 |
| --- a/gpu/command_buffer/service/texture_manager.h |
| +++ b/gpu/command_buffer/service/texture_manager.h |
| @@ -16,6 +16,7 @@ |
| #include "gpu/command_buffer/service/feature_info.h" |
| #include "gpu/command_buffer/service/gl_utils.h" |
| #include "gpu/command_buffer/service/memory_tracking.h" |
| +#include "gpu/command_buffer/service/sampler_manager.h" |
| #include "gpu/gpu_export.h" |
| #include "ui/gfx/geometry/rect.h" |
| #include "ui/gl/gl_image.h" |
| @@ -57,24 +58,28 @@ class GPU_EXPORT Texture { |
| explicit Texture(GLuint service_id); |
| + const SamplerState* sampler_state() const { |
|
piman
2015/12/14 14:04:14
nit: const SamplerState&
|
| + return &sampler_state_; |
| + } |
| + |
| GLenum min_filter() const { |
| - return min_filter_; |
| + return sampler_state_.min_filter; |
| } |
| GLenum mag_filter() const { |
| - return mag_filter_; |
| + return sampler_state_.mag_filter; |
| } |
| GLenum wrap_r() const { |
| - return wrap_r_; |
| + return sampler_state_.wrap_r; |
| } |
| GLenum wrap_s() const { |
| - return wrap_s_; |
| + return sampler_state_.wrap_s; |
| } |
| GLenum wrap_t() const { |
| - return wrap_t_; |
| + return sampler_state_.wrap_t; |
| } |
| GLenum usage() const { |
| @@ -82,19 +87,19 @@ class GPU_EXPORT Texture { |
| } |
| GLenum compare_func() const { |
| - return compare_func_; |
| + return sampler_state_.compare_func; |
| } |
| GLenum compare_mode() const { |
| - return compare_mode_; |
| + return sampler_state_.compare_mode; |
| } |
| GLfloat max_lod() const { |
| - return max_lod_; |
| + return sampler_state_.max_lod; |
| } |
| GLfloat min_lod() const { |
| - return min_lod_; |
| + return sampler_state_.min_lod; |
| } |
| GLint base_level() const { |
| @@ -245,7 +250,7 @@ class GPU_EXPORT Texture { |
| enum CanRenderCondition { |
| CAN_RENDER_ALWAYS, |
| CAN_RENDER_NEVER, |
| - CAN_RENDER_ONLY_IF_NPOT |
| + CAN_RENDER_NEEDS_VALIDATION, |
| }; |
| struct LevelInfo { |
| @@ -340,12 +345,15 @@ class GPU_EXPORT Texture { |
| bool MarkMipmapsGenerated(const FeatureInfo* feature_info); |
| bool NeedsMips() const { |
| - return min_filter_ != GL_NEAREST && min_filter_ != GL_LINEAR; |
| + return sampler_state_.min_filter != GL_NEAREST && |
| + sampler_state_.min_filter != GL_LINEAR; |
| } |
| // True if this texture meets all the GLES2 criteria for rendering. |
| // See section 3.8.2 of the GLES2 spec. |
| bool CanRender(const FeatureInfo* feature_info) const; |
| + bool CanRenderWithSampler(const FeatureInfo* feature_info, |
| + const SamplerState* sampler_state) const; |
|
piman
2015/12/14 14:04:14
nit: use const &
|
| // Returns true if mipmaps can be generated by GL. |
| bool CanGenerateMipmaps(const FeatureInfo* feature_info) const; |
| @@ -452,16 +460,8 @@ class GPU_EXPORT Texture { |
| GLenum target_; |
| // Texture parameters. |
| - GLenum min_filter_; |
| - GLenum mag_filter_; |
| - GLenum wrap_r_; |
| - GLenum wrap_s_; |
| - GLenum wrap_t_; |
| + SamplerState sampler_state_; |
| GLenum usage_; |
| - GLenum compare_func_; |
| - GLenum compare_mode_; |
| - GLfloat max_lod_; |
| - GLfloat min_lod_; |
| GLint base_level_; |
| GLint max_level_; |
| @@ -678,6 +678,12 @@ class GPU_EXPORT TextureManager : public base::trace_event::MemoryDumpProvider { |
| return ref->texture()->CanRender(feature_info_.get()); |
| } |
| + bool CanRenderWithSampler( |
| + const TextureRef* ref, const SamplerState* sampler_state) const { |
| + return ref->texture()->CanRenderWithSampler( |
| + feature_info_.get(), sampler_state); |
| + } |
| + |
| // Returns true if mipmaps can be generated by GL. |
| bool CanGenerateMipmaps(const TextureRef* ref) const { |
| return ref->texture()->CanGenerateMipmaps(feature_info_.get()); |
| @@ -774,10 +780,6 @@ class GPU_EXPORT TextureManager : public base::trace_event::MemoryDumpProvider { |
| } |
| } |
| - bool HaveUnrenderableTextures() const { |
| - return num_unrenderable_textures_ > 0; |
| - } |
| - |
| bool HaveUnsafeTextures() const { |
| return num_unsafe_textures_ > 0; |
| } |
| @@ -986,7 +988,6 @@ class GPU_EXPORT TextureManager : public base::trace_event::MemoryDumpProvider { |
| const bool use_default_textures_; |
| - int num_unrenderable_textures_; |
| int num_unsafe_textures_; |
| int num_uncleared_mips_; |
| int num_images_; |