summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBrian Paul <brianp@vmware.com>2009-08-27 16:54:32 -0600
committerBrian Paul <brianp@vmware.com>2009-08-27 16:54:32 -0600
commite363ec1d08858735c6f2b1454c43f39c96d5bab6 (patch)
treeaf83e165bd5fba58851f6e65ed3071f2c221005d /src
parentc2ef10803d6c30e13f8f762cc874e3bccc8a2881 (diff)
parent0d7bed9f8973547b675c35c0083996e946d7cecb (diff)
Merge branch 'mesa_7_5_branch'
Diffstat (limited to 'src')
-rw-r--r--src/mesa/shader/prog_print.c16
-rw-r--r--src/mesa/swrast/s_feedback.c4
-rw-r--r--src/mesa/swrast/s_triangle.c12
3 files changed, 17 insertions, 15 deletions
diff --git a/src/mesa/shader/prog_print.c b/src/mesa/shader/prog_print.c
index c8346d4293..b71735aa80 100644
--- a/src/mesa/shader/prog_print.c
+++ b/src/mesa/shader/prog_print.c
@@ -533,7 +533,7 @@ void
_mesa_print_alu_instruction(const struct prog_instruction *inst,
const char *opcode_string, GLuint numRegs)
{
- fprint_alu_instruction(stdout, inst, opcode_string,
+ fprint_alu_instruction(stderr, inst, opcode_string,
numRegs, PROG_PRINT_DEBUG, NULL);
}
@@ -757,7 +757,7 @@ _mesa_print_instruction_opt(const struct prog_instruction *inst,
gl_prog_print_mode mode,
const struct gl_program *prog)
{
- return _mesa_fprint_instruction_opt(stdout, inst, indent, mode, prog);
+ return _mesa_fprint_instruction_opt(stderr, inst, indent, mode, prog);
}
@@ -765,7 +765,7 @@ void
_mesa_print_instruction(const struct prog_instruction *inst)
{
/* note: 4th param should be ignored for PROG_PRINT_DEBUG */
- _mesa_fprint_instruction_opt(stdout, inst, 0, PROG_PRINT_DEBUG, NULL);
+ _mesa_fprint_instruction_opt(stderr, inst, 0, PROG_PRINT_DEBUG, NULL);
}
@@ -811,7 +811,7 @@ _mesa_fprint_program_opt(FILE *f,
/**
- * Print program to stdout, default options.
+ * Print program to stderr, default options.
*/
void
_mesa_print_program(const struct gl_program *prog)
@@ -884,12 +884,12 @@ _mesa_fprint_program_parameters(FILE *f,
/**
- * Print all of a program's parameters/fields to stdout.
+ * Print all of a program's parameters/fields to stderr.
*/
void
_mesa_print_program_parameters(GLcontext *ctx, const struct gl_program *prog)
{
- _mesa_fprint_program_parameters(stdout, ctx, prog);
+ _mesa_fprint_program_parameters(stderr, ctx, prog);
}
@@ -929,12 +929,12 @@ _mesa_fprint_parameter_list(FILE *f,
/**
- * Print a program parameter list to stdout.
+ * Print a program parameter list to stderr.
*/
void
_mesa_print_parameter_list(const struct gl_program_parameter_list *list)
{
- _mesa_fprint_parameter_list(stdout, list);
+ _mesa_fprint_parameter_list(stderr, list);
}
diff --git a/src/mesa/swrast/s_feedback.c b/src/mesa/swrast/s_feedback.c
index 7bb914b658..47ed25ee10 100644
--- a/src/mesa/swrast/s_feedback.c
+++ b/src/mesa/swrast/s_feedback.c
@@ -58,7 +58,7 @@ void
_swrast_feedback_triangle(GLcontext *ctx, const SWvertex *v0,
const SWvertex *v1, const SWvertex *v2)
{
- if (_swrast_culltriangle(ctx, v0, v1, v2)) {
+ if (!_swrast_culltriangle(ctx, v0, v1, v2)) {
_mesa_feedback_token(ctx, (GLfloat) (GLint) GL_POLYGON_TOKEN);
_mesa_feedback_token(ctx, (GLfloat) 3); /* three vertices */
@@ -113,7 +113,7 @@ void
_swrast_select_triangle(GLcontext *ctx, const SWvertex *v0,
const SWvertex *v1, const SWvertex *v2)
{
- if (_swrast_culltriangle(ctx, v0, v1, v2)) {
+ if (!_swrast_culltriangle(ctx, v0, v1, v2)) {
const GLfloat zs = 1.0F / ctx->DrawBuffer->_DepthMaxF;
_mesa_update_hitflag( ctx, v0->attrib[FRAG_ATTRIB_WPOS][2] * zs );
diff --git a/src/mesa/swrast/s_triangle.c b/src/mesa/swrast/s_triangle.c
index 9260e35066..1d2fed7169 100644
--- a/src/mesa/swrast/s_triangle.c
+++ b/src/mesa/swrast/s_triangle.c
@@ -44,8 +44,9 @@
#include "s_triangle.h"
-/*
- * Just used for feedback mode.
+/**
+ * Test if a triangle should be culled. Used for feedback and selection mode.
+ * \return GL_TRUE if the triangle is to be culled, GL_FALSE otherwise.
*/
GLboolean
_swrast_culltriangle( GLcontext *ctx,
@@ -53,16 +54,17 @@ _swrast_culltriangle( GLcontext *ctx,
const SWvertex *v1,
const SWvertex *v2 )
{
+ SWcontext *swrast = SWRAST_CONTEXT(ctx);
GLfloat ex = v1->attrib[FRAG_ATTRIB_WPOS][0] - v0->attrib[FRAG_ATTRIB_WPOS][0];
GLfloat ey = v1->attrib[FRAG_ATTRIB_WPOS][1] - v0->attrib[FRAG_ATTRIB_WPOS][1];
GLfloat fx = v2->attrib[FRAG_ATTRIB_WPOS][0] - v0->attrib[FRAG_ATTRIB_WPOS][0];
GLfloat fy = v2->attrib[FRAG_ATTRIB_WPOS][1] - v0->attrib[FRAG_ATTRIB_WPOS][1];
GLfloat c = ex*fy-ey*fx;
- if (c * SWRAST_CONTEXT(ctx)->_BackfaceCullSign > 0)
- return 0;
+ if (c * swrast->_BackfaceSign * swrast->_BackfaceCullSign < 0.0F)
+ return GL_FALSE;
- return 1;
+ return GL_TRUE;
}