Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- glActiveTexture(GL_TEXTURE1);
- glUniform1i(uTextureLocation, 1);
- public class RendererClass implements Renderer {
- Context context;
- FloatBuffer verticesInBuffer;
- int aPositionLocation;
- int aTextureLocation;
- int uTextureLocation;
- int program;
- public RendererClass(Context context){
- this.context = context;
- }
- @Override
- public void onSurfaceCreated(GL10 arg0, EGLConfig config) {
- GLES20.glClearColor(1.0f, 0.0f, 0.0f, 0.0f);
- float[] vertices = {
- -0.5f, 0.5f, 0.5f, 0.5f,
- -1.0f, 0.0f, 0.0f, 0.0f,
- 0.0f, 0.0f, 1.0f, 0.0f,
- 0.0f, 1.0f, 1.0f, 1.0f,
- -1.0f, 1.0f, 0.0f, 1.0f,
- -1.0f, 0.0f, 0.0f, 0.0f
- };
- verticesInBuffer = ByteBuffer.allocateDirect(vertices.length*4).order(ByteOrder.nativeOrder()).asFloatBuffer().put(vertices);
- String vss = "attribute vec4 a_Position;" +
- "attribute vec2 a_Texture;" +
- "varying vec2 v_Texture;" +
- "void main(){" +
- " v_Texture = a_Texture;" +
- " gl_Position = a_Position;" +
- "}";
- String fss = "precision mediump float;" +
- "varying vec2 v_Texture;" +
- "uniform sampler2D u_Texture;" +
- "void main(){" +
- " gl_FragColor = texture2D(u_Texture, v_Texture);" +
- "}";
- int vs = glCreateShader(GL_VERTEX_SHADER);
- int fs = glCreateShader(GL_FRAGMENT_SHADER);
- glShaderSource(vs, vss);
- glShaderSource(fs, fss);
- glCompileShader(vs);
- glCompileShader(fs);
- program = glCreateProgram();
- glAttachShader(program, vs);
- glAttachShader(program, fs);
- glLinkProgram(program);
- aPositionLocation = glGetAttribLocation(program, "a_Position");
- // ***** Texture stuff starts here </</</</
- // Fase 1
- glActiveTexture(GL_TEXTURE0);
- int[] genTextures = new int[1];
- glGenTextures(1, genTextures, 0);
- glBindTexture(GL_TEXTURE_2D, genTextures[0]);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
- // Fase 2
- BitmapFactory.Options options = new BitmapFactory.Options();
- options.inScaled = false;
- Bitmap bitmap1 = BitmapFactory.decodeResource(context.getResources(), R.drawable.res_for_test_1, options);
- // Fase 3
- texImage2D(GL_TEXTURE_2D, 0, bitmap1, 0);
- glGenerateMipmap(GL_TEXTURE_2D);
- // Fase 4
- aTextureLocation = glGetAttribLocation(program, "a_Texture");
- uTextureLocation = glGetUniformLocation(program, "u_Texture");
- glUniform1i(uTextureLocation, 0);
- verticesInBuffer.position(2);
- glEnableVertexAttribArray(aTextureLocation);
- glVertexAttribPointer(aTextureLocation, 2, GL_FLOAT, false, 16, verticesInBuffer);
- // ***** Texture stuff ends here </</</</
- }
- @Override
- public void onSurfaceChanged(GL10 arg0, int width, int height) {
- GLES20.glViewport(0, 0, width, height);
- }
- @Override
- public void onDrawFrame(GL10 glUnused) {
- GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);
- glUseProgram(program);
- verticesInBuffer.position(0);
- glEnableVertexAttribArray(aPositionLocation);
- glVertexAttribPointer(aPositionLocation, 2, GL_FLOAT, false, 16, verticesInBuffer);
- glDrawArrays(GL_TRIANGLE_FAN, 0, 6);
- }
- }
- GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + textureUnit);
- GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, textureID);
- GLES20.glUniform1i(uniformID, textureUnit);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement