예제 #1
0
 public int[] GetShaderResult(OpenGL gl, ShaderTypes shaderType, GetShaderActions action, uint expectedLength)
 {
     int[] parameters = new int[expectedLength];
     gl.GetShader(ShaderIds[shaderType], (uint)action, parameters);
     return parameters;
 }
예제 #2
-1
        public static Option<string> GetShaderInfoLog(OpenGL gl, uint shaderHandle)
        {
            int[] status = new int[1];
            gl.GetShader(shaderHandle, OpenGL.GL_COMPILE_STATUS, status);
            if (status[0] == OpenGL.GL_FALSE)
            {
            int[] logLength = new int[1];
            gl.GetShader(shaderHandle, OpenGL.GL_INFO_LOG_LENGTH, logLength);

            StringBuilder log = new StringBuilder(logLength[0]);
            gl.GetShaderInfoLog(shaderHandle, logLength[0], IntPtr.Zero, log);
            return Option<string>.Some(log.ToString());
            } else
            {
            return Option<string>.None();
            }
        }