Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ackage com.stuff.vitali.rubicscubeopengl
- import android.content.Context
- import android.opengl.GLES20.*
- import android.util.Log
- object ShaderUtils {
- const val TAG = "SHADER_UTILS_TAG"
- fun createProgramm(vertexShaderId: Int, fragmentShaderId: Int): Int {
- val programId = glCreateProgram()
- if(programId == 0) return 0
- glAttachShader(programId, vertexShaderId)
- glAttachShader(programId, fragmentShaderId)
- glLinkProgram(programId)
- val linkStatus = IntArray(1)
- glGetProgramiv(programId, GL_LINK_STATUS, linkStatus, 0)
- if(linkStatus[0] == GL_FALSE) {
- val linkLogInfo = glGetProgramInfoLog(programId)
- Log.d(TAG, "Error to link programm: $linkLogInfo")
- Log.d(TAG, "End error")
- glDeleteProgram(programId)
- return 0
- }
- return programId
- }
- fun createShader(context: Context, type: Int, shaderRawResourceId: Int): Int {
- val shaderString = FileUtils.readTextFromRaw(context, shaderRawResourceId)
- val shaderId = glCreateShader(type)
- if(shaderId == 0) return 0
- glShaderSource(shaderId, shaderString)
- glCompileShader(shaderId)
- val compileStatus = IntArray(1)
- glGetShaderiv(shaderId, GL_COMPILE_STATUS, compileStatus, 0)
- if (compileStatus[0] == GL_FALSE){
- val compileLogInfo = glGetShaderInfoLog(shaderId)
- Log.d(TAG, "Error to compile shader: $compileLogInfo in \n$shaderString")
- Log.d(TAG, "End error")
- glDeleteShader(shaderId)
- return 0
- }
- return shaderId
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement