Compare commits

..

6 Commits

Author SHA1 Message Date
Brian Paul
2f1b5ffcda mesa: remove debug code 2008-07-08 16:52:45 -06:00
Brian Paul
e4d9cc94b8 add yet another Makefile 2008-07-08 16:28:33 -06:00
Brian Paul
ee2a101123 bump version to rc3 2008-07-08 16:26:28 -06:00
Brian Paul
7d3feef9d6 added more Makefiles to file list 2008-07-08 16:26:06 -06:00
Brian Paul
2be54a8e8c mesa: implement glGetUniformiv() with new ctx->Driver function
The old implementation could overwrite the caller's param buffer.
2008-07-08 16:17:04 -06:00
Brian Paul
44029f15a8 added src/mesa/drivers/Makefile to file list 2008-07-08 16:16:57 -06:00
5 changed files with 53 additions and 14 deletions

View File

@@ -174,10 +174,10 @@ ultrix-gcc:
# Rules for making release tarballs
DIRECTORY = Mesa-7.1-rc2
LIB_NAME = MesaLib-7.1-rc2
DEMO_NAME = MesaDemos-7.1-rc2
GLUT_NAME = MesaGLUT-7.1-rc2
DIRECTORY = Mesa-7.1-rc3
LIB_NAME = MesaLib-7.1-rc3
DEMO_NAME = MesaDemos-7.1-rc3
GLUT_NAME = MesaGLUT-7.1-rc3
MAIN_FILES = \
$(DIRECTORY)/Makefile* \
@@ -258,6 +258,7 @@ MAIN_FILES = \
$(DIRECTORY)/src/mesa/tnl_dd/*.[ch] \
$(DIRECTORY)/src/mesa/tnl_dd/imm/*.[ch] \
$(DIRECTORY)/src/mesa/tnl_dd/imm/NOTES.imm \
$(DIRECTORY)/src/mesa/drivers/Makefile \
$(DIRECTORY)/src/mesa/drivers/beos/*.cpp \
$(DIRECTORY)/src/mesa/drivers/beos/Makefile \
$(DIRECTORY)/src/mesa/drivers/common/*.[ch] \
@@ -265,6 +266,7 @@ MAIN_FILES = \
$(DIRECTORY)/src/mesa/drivers/directfb/*.[ch] \
$(DIRECTORY)/src/mesa/drivers/directfb/Makefile \
$(DIRECTORY)/src/mesa/drivers/dos/*.[chS] \
$(DIRECTORY)/src/mesa/drivers/fbdev/Makefile \
$(DIRECTORY)/src/mesa/drivers/fbdev/glfbdev.c \
$(DIRECTORY)/src/mesa/drivers/glide/*.[ch] \
$(DIRECTORY)/src/mesa/drivers/ggi/*.[ch] \
@@ -274,6 +276,7 @@ MAIN_FILES = \
$(DIRECTORY)/src/mesa/drivers/ggi/display/*.c \
$(DIRECTORY)/src/mesa/drivers/ggi/display/fbdev.conf.in \
$(DIRECTORY)/src/mesa/drivers/ggi/include/ggi/mesa/*.h \
$(DIRECTORY)/src/mesa/drivers/osmesa/Makefile \
$(DIRECTORY)/src/mesa/drivers/osmesa/Makefile.win \
$(DIRECTORY)/src/mesa/drivers/osmesa/descrip.mms \
$(DIRECTORY)/src/mesa/drivers/osmesa/osmesa.def \
@@ -281,6 +284,7 @@ MAIN_FILES = \
$(DIRECTORY)/src/mesa/drivers/svga/*.[ch] \
$(DIRECTORY)/src/mesa/drivers/windows/*/*.[ch] \
$(DIRECTORY)/src/mesa/drivers/windows/*/*.def \
$(DIRECTORY)/src/mesa/drivers/x11/Makefile \
$(DIRECTORY)/src/mesa/drivers/x11/descrip.mms \
$(DIRECTORY)/src/mesa/drivers/x11/*.[ch] \
$(DIRECTORY)/src/mesa/ppc/*.[ch] \

View File

@@ -868,6 +868,8 @@ struct dd_function_table {
GLsizei *length, GLcharARB *sourceOut);
void (*GetUniformfv)(GLcontext *ctx, GLuint program, GLint location,
GLfloat *params);
void (*GetUniformiv)(GLcontext *ctx, GLuint program, GLint location,
GLint *params);
GLint (*GetUniformLocation)(GLcontext *ctx, GLuint program,
const GLcharARB *name);
GLboolean (*IsProgram)(GLcontext *ctx, GLuint name);

View File

@@ -309,11 +309,7 @@ void GLAPIENTRY
_mesa_GetUniformivARB(GLhandleARB program, GLint location, GLint * params)
{
GET_CURRENT_CONTEXT(ctx);
GLfloat fparams[16]; /* XXX is 16 enough? */
GLuint i;
ctx->Driver.GetUniformfv(ctx, program, location, fparams);
for (i = 0; i < 16; i++)
params[i] = (GLint) fparams[i]; /* XXX correct? */
ctx->Driver.GetUniformiv(ctx, program, location, params);
}

View File

@@ -31,7 +31,7 @@
#define MESA_MAJOR 7
#define MESA_MINOR 1
#define MESA_PATCH 0
#define MESA_VERSION_STRING "7.1 rc2"
#define MESA_VERSION_STRING "7.1 rc3"
/* To make version comparison easy */
#define MESA_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))

View File

@@ -955,12 +955,15 @@ _mesa_get_shader_source(GLcontext *ctx, GLuint shader, GLsizei maxLength,
}
#define MAX_UNIFORM_ELEMENTS 16
/**
* Called via ctx->Driver.GetUniformfv().
* Helper for GetUniformfv(), GetUniformiv()
* Returns number of elements written to 'params' output.
*/
static void
_mesa_get_uniformfv(GLcontext *ctx, GLuint program, GLint location,
GLfloat *params)
static GLuint
get_uniformfv(GLcontext *ctx, GLuint program, GLint location,
GLfloat *params)
{
struct gl_shader_program *shProg
= _mesa_lookup_shader_program(ctx, program);
@@ -984,9 +987,13 @@ _mesa_get_uniformfv(GLcontext *ctx, GLuint program, GLint location,
ASSERT(prog);
if (prog) {
/* See uniformiv() below */
assert(prog->Parameters->Parameters[progPos].Size <= MAX_UNIFORM_ELEMENTS);
for (i = 0; i < prog->Parameters->Parameters[progPos].Size; i++) {
params[i] = prog->Parameters->ParameterValues[progPos][i];
}
return prog->Parameters->Parameters[progPos].Size;
}
}
else {
@@ -996,6 +1003,35 @@ _mesa_get_uniformfv(GLcontext *ctx, GLuint program, GLint location,
else {
_mesa_error(ctx, GL_INVALID_OPERATION, "glGetUniformfv(program)");
}
return 0;
}
/**
* Called via ctx->Driver.GetUniformfv().
*/
static void
_mesa_get_uniformfv(GLcontext *ctx, GLuint program, GLint location,
GLfloat *params)
{
(void) get_uniformfv(ctx, program, location, params);
}
/**
* Called via ctx->Driver.GetUniformiv().
*/
static void
_mesa_get_uniformiv(GLcontext *ctx, GLuint program, GLint location,
GLint *params)
{
GLfloat fparams[MAX_UNIFORM_ELEMENTS];
GLuint n = get_uniformfv(ctx, program, location, fparams);
GLuint i;
assert(n <= MAX_UNIFORM_ELEMENTS);
for (i = 0; i < n; i++) {
params[i] = (GLint) fparams[i];
}
}
@@ -1413,6 +1449,7 @@ _mesa_init_glsl_driver_functions(struct dd_function_table *driver)
driver->GetShaderInfoLog = _mesa_get_shader_info_log;
driver->GetShaderSource = _mesa_get_shader_source;
driver->GetUniformfv = _mesa_get_uniformfv;
driver->GetUniformiv = _mesa_get_uniformiv;
driver->GetUniformLocation = _mesa_get_uniform_location;
driver->IsProgram = _mesa_is_program;
driver->IsShader = _mesa_is_shader;