コード例 #1
0
        private static string getProgramInfoLog(OpenGL gl, uint programHandle)
        {
            int[] logLength = new int[1];
            gl.GetProgram(programHandle, OpenGL.GL_INFO_LOG_LENGTH, logLength);

            StringBuilder log = new StringBuilder(logLength[0]);
            gl.GetProgramInfoLog(programHandle, logLength[0], IntPtr.Zero, log);

            return log.ToString();
        }
コード例 #2
0
 public static Option<string> GetLinkStatus(OpenGL gl, uint programHandle)
 {
     int[] status = new int[1];
     gl.GetProgram(programHandle, OpenGL.GL_LINK_STATUS, status);
     if (status[0] == OpenGL.GL_FALSE)
     {
     string log = getProgramInfoLog(gl, programHandle);
     return Option<string>.Some(log);
     } else
     {
     return Option<string>.None();
     }
 }
コード例 #3
0
        public static Option<string> Validate(OpenGL gl, uint programHandle)
        {
            gl.ValidateProgram(programHandle);

            int[] status = new int[1];
            gl.GetProgram(programHandle, OpenGL.GL_VALIDATE_STATUS, status);
            if (status[0] == OpenGL.GL_FALSE)
            {
            string log = getProgramInfoLog(gl, programHandle);
            return Option<string>.Some(log);
            } else
            {
            return Option<string>.None();
            }
        }
コード例 #4
0
 public int[] GetProgramResult(OpenGL gl, GetProgramActions action, uint expectedLength)
 {
     int[] parameters = new int[expectedLength];
     gl.GetProgram(ShaderProgramId, (uint)action, parameters);
     return parameters;
 }