@@ -13,4 +13,31 @@ val ShaderProgram.name
1313 get() = program()
1414
1515fun ShaderCode.create (gl : GL2ES2 , type : Int , context : Class <* >, sourceFiles : Array <String >)
16- = ShaderCode .create(gl, type, sourceFiles.size, context, sourceFiles, false )
16+ = ShaderCode .create(gl, type, sourceFiles.size, context, sourceFiles, false )
17+
18+ fun createShaderProgram (gl : GL2ES2 , context : Class <* >, shaderSrc : String ): ShaderProgram {
19+
20+ val program = ShaderProgram ()
21+
22+ val vertShader = ShaderCode .create(gl, GL2ES2 .GL_VERTEX_SHADER , 1 , context, arrayOf(" $shaderSrc .vert" ), false )
23+ val fragShader = ShaderCode .create(gl, GL2ES2 .GL_FRAGMENT_SHADER , 1 , context, arrayOf(" $shaderSrc .frag" ), false )
24+
25+ program.add(vertShader)
26+ program.add(fragShader)
27+
28+ program.init (gl)
29+
30+ program.link(gl, System .err)
31+
32+ vertShader.destroy(gl)
33+ fragShader.destroy(gl)
34+
35+ return program
36+ }
37+
38+ class ShaderProgramUtil () {
39+ companion object {
40+ @JvmStatic fun create (gl : GL2ES2 , context : Class <* >, shaderSrc : String ): ShaderProgram =
41+ createShaderProgram(gl, context, shaderSrc)
42+ }
43+ }
0 commit comments