Bug 1236785 - return WebGLTexture cache value for GetTexParameter() call. r=mtseng

--HG--
extra : rebase_source : 6c5d6358f6f4ee0f3c5f4e09a2b17998657415e8
This commit is contained in:
JerryShih 2016-08-02 20:20:00 +02:00
parent 28b72fb07b
commit 184798636b
2 changed files with 24 additions and 6 deletions

View File

@ -803,22 +803,37 @@ WebGLTexture::GetTexParameter(TexTarget texTarget, GLenum pname)
switch (pname) {
case LOCAL_GL_TEXTURE_MIN_FILTER:
return JS::NumberValue(uint32_t(mMinFilter.get()));
case LOCAL_GL_TEXTURE_MAG_FILTER:
return JS::NumberValue(uint32_t(mMagFilter.get()));
case LOCAL_GL_TEXTURE_WRAP_S:
return JS::NumberValue(uint32_t(mWrapS.get()));
case LOCAL_GL_TEXTURE_WRAP_T:
return JS::NumberValue(uint32_t(mWrapT.get()));
case LOCAL_GL_TEXTURE_BASE_LEVEL:
case LOCAL_GL_TEXTURE_COMPARE_FUNC:
return JS::NumberValue(mBaseMipmapLevel);
case LOCAL_GL_TEXTURE_COMPARE_MODE:
case LOCAL_GL_TEXTURE_IMMUTABLE_LEVELS:
return JS::NumberValue(uint32_t(mTexCompareMode));
case LOCAL_GL_TEXTURE_MAX_LEVEL:
return JS::NumberValue(mMaxMipmapLevel);
case LOCAL_GL_TEXTURE_IMMUTABLE_FORMAT:
return JS::BooleanValue(mImmutable);
case LOCAL_GL_TEXTURE_IMMUTABLE_LEVELS:
return JS::NumberValue(uint32_t(mImmutableLevelCount));
case LOCAL_GL_TEXTURE_COMPARE_FUNC:
case LOCAL_GL_TEXTURE_WRAP_R:
mContext->gl->fGetTexParameteriv(texTarget.get(), pname, &i);
return JS::NumberValue(uint32_t(i));
case LOCAL_GL_TEXTURE_IMMUTABLE_FORMAT:
mContext->gl->fGetTexParameteriv(texTarget.get(), pname, &i);
return JS::BooleanValue(bool(i));
case LOCAL_GL_TEXTURE_MAX_ANISOTROPY_EXT:
case LOCAL_GL_TEXTURE_MAX_LOD:
case LOCAL_GL_TEXTURE_MIN_LOD:
@ -999,11 +1014,13 @@ WebGLTexture::TexParameter(TexTarget texTarget, GLenum pname, GLint* maybeIntPar
case LOCAL_GL_TEXTURE_BASE_LEVEL:
mBaseMipmapLevel = intParam;
ClampLevelBaseAndMax();
intParam = mBaseMipmapLevel;
break;
case LOCAL_GL_TEXTURE_MAX_LEVEL:
mMaxMipmapLevel = intParam;
ClampLevelBaseAndMax();
intParam = mMaxMipmapLevel;
break;
case LOCAL_GL_TEXTURE_MIN_FILTER:

View File

@ -1229,6 +1229,7 @@ WebGLTexture::TexStorage(const char* funcName, TexTarget target, GLsizei levels,
PopulateMipChain(0, levels-1);
mImmutable = true;
mImmutableLevelCount = levels;
}
////////////////////////////////////////