diff options
author | Jason Sams <rjsams@android.com> | 2011-01-13 17:02:35 -0800 |
---|---|---|
committer | Jason Sams <rjsams@android.com> | 2011-01-13 17:02:35 -0800 |
commit | 9333e64f79f5876584ed992c7e2c2dffacab8df0 (patch) | |
tree | 0b0e9e54ebebabc0a357d0feb086f42585067c0e /libs/rs/rsSampler.cpp | |
parent | 27ac243e2dc4688b6e761edc3ee85eb7a3bf1f21 (diff) | |
download | frameworks_base-9333e64f79f5876584ed992c7e2c2dffacab8df0.zip frameworks_base-9333e64f79f5876584ed992c7e2c2dffacab8df0.tar.gz frameworks_base-9333e64f79f5876584ed992c7e2c2dffacab8df0.tar.bz2 |
Re-implement img npot support in HC.
Change-Id: Iac56ec54e46c998ec14f71d8e85eccdc5fb3aa91
Diffstat (limited to 'libs/rs/rsSampler.cpp')
-rw-r--r-- | libs/rs/rsSampler.cpp | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/libs/rs/rsSampler.cpp b/libs/rs/rsSampler.cpp index e2757df..c80aecc 100644 --- a/libs/rs/rsSampler.cpp +++ b/libs/rs/rsSampler.cpp @@ -77,8 +77,20 @@ void Sampler::setupGL(const Context *rsc, const Allocation *tex) { GLenum target = (GLenum)tex->getGLTarget(); if (!rsc->ext_OES_texture_npot() && tex->getType()->getIsNp2()) { - if (tex->getHasGraphicsMipmaps() && rsc->ext_GL_NV_texture_npot_2D_mipmap()) { - glTexParameteri(target, GL_TEXTURE_MIN_FILTER, trans[mMinFilter]); + if (tex->getHasGraphicsMipmaps() && + (rsc->ext_GL_NV_texture_npot_2D_mipmap() || rsc->ext_GL_IMG_texture_npot())) { + if (rsc->ext_GL_NV_texture_npot_2D_mipmap()) { + glTexParameteri(target, GL_TEXTURE_MIN_FILTER, trans[mMinFilter]); + } else { + switch (trans[mMinFilter]) { + case GL_LINEAR_MIPMAP_LINEAR: + glTexParameteri(target, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_NEAREST); + break; + default: + glTexParameteri(target, GL_TEXTURE_MIN_FILTER, trans[mMinFilter]); + break; + } + } } else { glTexParameteri(target, GL_TEXTURE_MIN_FILTER, transNP[mMinFilter]); } |