Advertisement
Guest User

kotlin opengl trouble

a guest
Apr 29th, 2017
239
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 2.02 KB | None | 0 0
  1. //renderer
  2. package com.stuff.vitali.rubicscubeopengl
  3.  
  4. import android.content.Context
  5. import android.opengl.GLES20.*
  6. import android.opengl.GLSurfaceView
  7. import android.util.Log
  8. import java.nio.ByteBuffer
  9. import java.nio.ByteOrder
  10. import javax.microedition.khronos.egl.EGLConfig
  11. import javax.microedition.khronos.opengles.GL10
  12.  
  13. class MyRenderer(val context: Context) : GLSurfaceView.Renderer {
  14.     private var shaderProgramId: Int? = null
  15.     private var colorUniformLocation: Int? = null
  16.     private var positionAttrLocation: Int? = null
  17.  
  18.     companion object{
  19.         const val TAG = "MY_RENDERER_TAG"
  20.     }
  21.  
  22.     override fun onSurfaceCreated(unused: GL10?, config: EGLConfig?) {
  23.         glClearColor(0f, 0f, 0f, 1f)
  24.         val vertShader = ShaderUtils.createShader(context, GL_VERTEX_SHADER, R.raw.vertex_shader)
  25.         val fragShader = ShaderUtils.createShader(context, GL_FRAGMENT_SHADER, R.raw.fragment_shader)
  26.         shaderProgramId = ShaderUtils.createProgramm(vertShader, fragShader)
  27.         Log.d(TAG, "After creating programm")
  28.         glUseProgram(shaderProgramId!!)
  29.         Log.d(TAG, "After using shader")
  30.         val vertices = floatArrayOf(-0.5f, -0.2f, 0.0f, 0.2f, -0.5f, -0.2f)
  31.         val vertexData = ByteBuffer.allocateDirect(vertices.size * 4).order(ByteOrder.nativeOrder()).asFloatBuffer()
  32.         vertexData.put(vertices)
  33.         colorUniformLocation = glGetUniformLocation(shaderProgramId!!, "fr_Color")
  34.         glUniform4f(colorUniformLocation!!, 0f, 0f, 1f, 1f)
  35.         positionAttrLocation = glGetAttribLocation(shaderProgramId!!, "v_position")
  36.         vertexData.position(0)
  37.         glVertexAttribPointer(positionAttrLocation!!, 2, GL_FLOAT, false, 0, vertexData)
  38.         glEnableVertexAttribArray(positionAttrLocation!!)
  39.  
  40.  
  41.     }
  42.     override fun onDrawFrame(unused: GL10?) {
  43.         glClear(GL_COLOR_BUFFER_BIT)
  44.         glDrawArrays(GL_TRIANGLES, 0, 3)
  45.     }
  46.  
  47.     override fun onSurfaceChanged(unused: GL10?, width: Int, height: Int) {
  48.         glViewport(0, 0, width, height)
  49.     }
  50.  
  51.  
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement