progs/util: added GetShaderCompile/LinkTime() to get compilation/link times

This commit is contained in:
Brian Paul
2009-08-20 14:29:26 -06:00
parent 8a883d1657
commit f300db379e
2 changed files with 39 additions and 0 deletions

View File

@@ -14,6 +14,12 @@
#include <GL/glut.h>
#include "shaderutil.h"
/** time to compile previous shader */
static GLdouble CompileTime = 0.0;
/** time to linke previous program */
static GLdouble LinkTime = 0.0;
GLboolean
ShadersSupported(void)
@@ -37,10 +43,17 @@ CompileShaderText(GLenum shaderType, const char *text)
{
GLuint shader;
GLint stat;
GLdouble t0, t1;
shader = glCreateShader(shaderType);
glShaderSource(shader, 1, (const GLchar **) &text, NULL);
t0 = glutGet(GLUT_ELAPSED_TIME) * 0.001;
glCompileShader(shader);
t1 = glutGet(GLUT_ELAPSED_TIME) * 0.001;
CompileTime = t1 - t0;
glGetShaderiv(shader, GL_COMPILE_STATUS, &stat);
if (!stat) {
GLchar log[1000];
@@ -95,6 +108,7 @@ GLuint
LinkShaders(GLuint vertShader, GLuint fragShader)
{
GLuint program = glCreateProgram();
GLdouble t0, t1;
assert(vertShader || fragShader);
@@ -102,7 +116,12 @@ LinkShaders(GLuint vertShader, GLuint fragShader)
glAttachShader(program, fragShader);
if (vertShader)
glAttachShader(program, vertShader);
t0 = glutGet(GLUT_ELAPSED_TIME) * 0.001;
glLinkProgram(program);
t1 = glutGet(GLUT_ELAPSED_TIME) * 0.001;
LinkTime = t1 - t0;
/* check link */
{
@@ -121,6 +140,20 @@ LinkShaders(GLuint vertShader, GLuint fragShader)
}
GLdouble
GetShaderCompileTime(void)
{
return CompileTime;
}
GLdouble
GetShaderLinkTime(void)
{
return LinkTime;
}
void
SetUniformValues(GLuint program, struct uniform_info uniforms[])
{