Revision 194ab46f
Added by Leszek Koltunski over 7 years ago
src/main/java/org/distorted/library/DistortedTexture.java | ||
---|---|---|
21 | 21 |
|
22 | 22 |
import android.graphics.Bitmap; |
23 | 23 |
import android.graphics.Matrix; |
24 |
import android.opengl.GLES20;
|
|
24 |
import android.opengl.GLES30;
|
|
25 | 25 |
import android.opengl.GLUtils; |
26 | 26 |
|
27 | 27 |
import java.util.Iterator; |
... | ... | |
84 | 84 |
|
85 | 85 |
if( mTextureDataH[0]==0 ) |
86 | 86 |
{ |
87 |
GLES20.glGenTextures(1, mTextureDataH, 0);
|
|
88 |
GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mTextureDataH[0]);
|
|
89 |
GLES20.glTexParameteri ( GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR );
|
|
90 |
GLES20.glTexParameteri ( GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR );
|
|
91 |
GLES20.glTexParameteri ( GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE );
|
|
92 |
GLES20.glTexParameteri ( GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE );
|
|
93 |
GLUtils.texImage2D(GLES20.GL_TEXTURE_2D, 0, flipBitmap(mBmp), 0);
|
|
87 |
GLES30.glGenTextures(1, mTextureDataH, 0);
|
|
88 |
GLES30.glBindTexture(GLES30.GL_TEXTURE_2D, mTextureDataH[0]);
|
|
89 |
GLES30.glTexParameteri ( GLES30.GL_TEXTURE_2D, GLES30.GL_TEXTURE_MIN_FILTER, GLES30.GL_LINEAR );
|
|
90 |
GLES30.glTexParameteri ( GLES30.GL_TEXTURE_2D, GLES30.GL_TEXTURE_MAG_FILTER, GLES30.GL_LINEAR );
|
|
91 |
GLES30.glTexParameteri ( GLES30.GL_TEXTURE_2D, GLES30.GL_TEXTURE_WRAP_S, GLES30.GL_CLAMP_TO_EDGE );
|
|
92 |
GLES30.glTexParameteri ( GLES30.GL_TEXTURE_2D, GLES30.GL_TEXTURE_WRAP_T, GLES30.GL_CLAMP_TO_EDGE );
|
|
93 |
GLUtils.texImage2D(GLES30.GL_TEXTURE_2D, 0, flipBitmap(mBmp), 0);
|
|
94 | 94 |
} |
95 | 95 |
else |
96 | 96 |
{ |
97 |
GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mTextureDataH[0]);
|
|
98 |
GLUtils.texSubImage2D(GLES20.GL_TEXTURE_2D, 0,0,0,flipBitmap(mBmp));
|
|
97 |
GLES30.glBindTexture(GLES30.GL_TEXTURE_2D, mTextureDataH[0]);
|
|
98 |
GLUtils.texSubImage2D(GLES30.GL_TEXTURE_2D, 0,0,0,flipBitmap(mBmp));
|
|
99 | 99 |
} |
100 | 100 |
|
101 | 101 |
mBmp = null; |
... | ... | |
111 | 111 |
{ |
112 | 112 |
//android.util.Log.e("Texture", "deleting "+mID); |
113 | 113 |
|
114 |
GLES20.glDeleteTextures(1, mTextureDataH, 0);
|
|
114 |
GLES30.glDeleteTextures(1, mTextureDataH, 0);
|
|
115 | 115 |
|
116 | 116 |
mTextureDataH[0] = 0; |
117 | 117 |
mBitmapSet= false; |
... | ... | |
133 | 133 |
{ |
134 | 134 |
if( mBitmapSet ) |
135 | 135 |
{ |
136 |
GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mTextureDataH[0]);
|
|
136 |
GLES30.glBindTexture(GLES30.GL_TEXTURE_2D, mTextureDataH[0]);
|
|
137 | 137 |
return true; |
138 | 138 |
} |
139 | 139 |
|
... | ... | |
144 | 144 |
|
145 | 145 |
static void getUniforms(int mProgramH) |
146 | 146 |
{ |
147 |
mTextureH= GLES20.glGetUniformLocation( mProgramH, "u_Texture");
|
|
147 |
mTextureH= GLES30.glGetUniformLocation( mProgramH, "u_Texture");
|
|
148 | 148 |
|
149 |
GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
|
|
150 |
GLES20.glUniform1i(mTextureH, 0);
|
|
149 |
GLES30.glActiveTexture(GLES30.GL_TEXTURE0);
|
|
150 |
GLES30.glUniform1i(mTextureH, 0);
|
|
151 | 151 |
} |
152 | 152 |
|
153 | 153 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
Also available in: Unified diff
Try using OpenGL ES 3.0 everywhere (but if device does not support it, try creating 2.0 context - this is important because of the emulator!)