Пример #1
0
 /**
  * Detaches all shader codes and deletes the program. If <code>destroyShaderCode</code> is true it
  * destroys the shader codes as well.
  */
 public synchronized void release(GL2ES2 gl, boolean destroyShaderCode) {
   useProgram(gl, false);
   for (Iterator<ShaderCode> iter = allShaderCode.iterator(); iter.hasNext(); ) {
     ShaderCode shaderCode = iter.next();
     if (attachedShaderCode.remove(shaderCode)) {
       ShaderUtil.detachShader(gl, shaderProgram, shaderCode.shader());
     }
     if (destroyShaderCode) {
       shaderCode.destroy(gl);
     }
   }
   allShaderCode.clear();
   attachedShaderCode.clear();
   if (0 != shaderProgram) {
     gl.glDeleteProgram(shaderProgram);
     shaderProgram = 0;
   }
 }