Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1739)

Unified Diff: gpu/command_buffer/service/texture_manager.cc

Issue 1133033002: Update GetTexParameter* and TexParameter* for ES3 in GPU command buffer (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Use previous macro Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: gpu/command_buffer/service/texture_manager.cc
diff --git a/gpu/command_buffer/service/texture_manager.cc b/gpu/command_buffer/service/texture_manager.cc
index 1f3fbc8bdd137eebf9f802530b2923197d1ae762..90b7d2a236bac599bb4ba8c2f967485f6de5963c 100644
--- a/gpu/command_buffer/service/texture_manager.cc
+++ b/gpu/command_buffer/service/texture_manager.cc
@@ -29,14 +29,21 @@ struct TextureSignature {
GLint level_;
GLenum min_filter_;
GLenum mag_filter_;
+ GLenum wrap_r_;
GLenum wrap_s_;
GLenum wrap_t_;
GLenum usage_;
GLenum internal_format_;
+ GLenum compare_func_;
+ GLenum compare_mode_;
GLsizei width_;
GLsizei height_;
GLsizei depth_;
+ GLfloat max_lod_;
+ GLfloat min_lod_;
+ GLint base_level_;
GLint border_;
+ GLint max_level_;
GLenum format_;
GLenum type_;
bool has_image_;
@@ -52,14 +59,21 @@ struct TextureSignature {
GLint level,
GLenum min_filter,
GLenum mag_filter,
+ GLenum wrap_r,
GLenum wrap_s,
GLenum wrap_t,
GLenum usage,
GLenum internal_format,
+ GLenum compare_func,
+ GLenum compare_mode,
GLsizei width,
GLsizei height,
GLsizei depth,
+ GLfloat max_lod,
+ GLfloat min_lod,
+ GLint base_level,
GLint border,
+ GLint max_level,
GLenum format,
GLenum type,
bool has_image,
@@ -71,14 +85,21 @@ struct TextureSignature {
level_ = level;
min_filter_ = min_filter;
mag_filter_ = mag_filter;
+ wrap_r_ = wrap_r;
wrap_s_ = wrap_s;
wrap_t_ = wrap_t;
usage_ = usage;
internal_format_ = internal_format;
+ compare_func_ = compare_func;
+ compare_mode_ = compare_mode;
width_ = width;
height_ = height;
depth_ = depth;
+ max_lod_ = max_lod;
+ min_lod_ = min_lod;
+ base_level_ = base_level;
border_ = border;
+ max_level_ = max_level;
format_ = format;
type_ = type;
has_image_ = has_image;
@@ -133,10 +154,17 @@ Texture::Texture(GLuint service_id)
target_(0),
min_filter_(GL_NEAREST_MIPMAP_LINEAR),
mag_filter_(GL_LINEAR),
+ wrap_r_(GL_REPEAT),
wrap_s_(GL_REPEAT),
wrap_t_(GL_REPEAT),
usage_(GL_NONE),
pool_(GL_TEXTURE_POOL_UNMANAGED_CHROMIUM),
+ compare_func_(GL_LEQUAL),
+ compare_mode_(GL_NONE),
+ max_lod_(1000.0f),
+ min_lod_(-1000.0f),
+ base_level_(0),
+ max_level_(1000),
max_level_set_(-1),
texture_complete_(false),
texture_mips_dirty_(false),
@@ -305,14 +333,21 @@ void Texture::AddToSignature(
level,
min_filter_,
mag_filter_,
+ wrap_r_,
wrap_s_,
wrap_t_,
usage_,
info.internal_format,
+ compare_func_,
+ compare_mode_,
info.width,
info.height,
info.depth,
+ max_lod_,
+ min_lod_,
+ base_level_,
info.border,
+ max_level_,
info.format,
info.type,
info.image.get() != NULL,
@@ -745,6 +780,12 @@ GLenum Texture::SetParameteri(
pool_ = param;
GetMemTracker()->TrackMemAlloc(estimated_size());
break;
+ case GL_TEXTURE_WRAP_R:
+ if (!feature_info->validators()->texture_wrap_mode.IsValid(param)) {
+ return GL_INVALID_ENUM;
+ }
+ wrap_r_ = param;
+ break;
case GL_TEXTURE_WRAP_S:
if (!feature_info->validators()->texture_wrap_mode.IsValid(param)) {
return GL_INVALID_ENUM;
@@ -757,6 +798,30 @@ GLenum Texture::SetParameteri(
}
wrap_t_ = param;
break;
+ case GL_TEXTURE_COMPARE_FUNC:
+ if (!feature_info->validators()->texture_compare_func.IsValid(param)) {
+ return GL_INVALID_ENUM;
+ }
+ compare_func_ = param;
+ break;
+ case GL_TEXTURE_COMPARE_MODE:
+ if (!feature_info->validators()->texture_compare_mode.IsValid(param)) {
+ return GL_INVALID_ENUM;
+ }
+ compare_mode_ = param;
+ break;
+ case GL_TEXTURE_BASE_LEVEL:
+ if (param < 0) {
+ return GL_INVALID_VALUE;
+ }
+ base_level_ = param;
+ break;
+ case GL_TEXTURE_MAX_LEVEL:
+ if (param < 0) {
+ return GL_INVALID_VALUE;
+ }
+ max_level_ = param;
+ break;
case GL_TEXTURE_MAX_ANISOTROPY_EXT:
if (param < 1) {
return GL_INVALID_VALUE;
@@ -791,6 +856,12 @@ GLenum Texture::SetParameterf(
GLint iparam = static_cast<GLint>(param);
return SetParameteri(feature_info, pname, iparam);
}
+ case GL_TEXTURE_MIN_LOD:
+ min_lod_ = param;
+ break;
+ case GL_TEXTURE_MAX_LOD:
+ max_lod_ = param;
+ break;
case GL_TEXTURE_MAX_ANISOTROPY_EXT:
if (param < 1.f) {
return GL_INVALID_VALUE;
« gpu/blink/webgraphicscontext3d_impl.cc ('K') | « gpu/command_buffer/service/texture_manager.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698