progs/util: added GetShaderCompile/LinkTime() to get compilation/link times
This commit is contained in:
@@ -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[])
|
||||
{
|
||||
|
Reference in New Issue
Block a user