summaryrefslogtreecommitdiff
path: root/libs/rs/rsSampler.cpp
diff options
context:
space:
mode:
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
commit9333e64f79f5876584ed992c7e2c2dffacab8df0 (patch)
tree0b0e9e54ebebabc0a357d0feb086f42585067c0e /libs/rs/rsSampler.cpp
parent27ac243e2dc4688b6e761edc3ee85eb7a3bf1f21 (diff)
Re-implement img npot support in HC.
Change-Id: Iac56ec54e46c998ec14f71d8e85eccdc5fb3aa91
Diffstat (limited to 'libs/rs/rsSampler.cpp')
-rw-r--r--libs/rs/rsSampler.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/libs/rs/rsSampler.cpp b/libs/rs/rsSampler.cpp
index e2757df10831..c80aecca79b8 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]);
}