projects
/
mesa.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'kasanen-post-process-v2'
[mesa.git]
/
src
/
mesa
/
tnl
/
t_vb_texmat.c
diff --git
a/src/mesa/tnl/t_vb_texmat.c
b/src/mesa/tnl/t_vb_texmat.c
index 00330b689aebb9aa8abfe3a9df15ce5856ed6468..38aa51fc496abf2f15d9ebb1bdf14f72f942cf76 100644
(file)
--- a/
src/mesa/tnl/t_vb_texmat.c
+++ b/
src/mesa/tnl/t_vb_texmat.c
@@
-1,8
+1,8
@@
/*
* Mesa 3-D graphics library
/*
* Mesa 3-D graphics library
- * Version: 6.
1
+ * Version: 6.
5
*
*
- * Copyright (C) 1999-200
4
Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-200
6
Brian Paul All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@@
-26,12
+26,11
@@
*/
*/
-#include "glheader.h"
-#include "colormac.h"
-#include "context.h"
-#include "macros.h"
-#include "imports.h"
-#include "mtypes.h"
+#include "main/glheader.h"
+#include "main/colormac.h"
+#include "main/macros.h"
+#include "main/imports.h"
+#include "main/mtypes.h"
#include "math/m_xform.h"
#include "math/m_xform.h"
@@
-52,51
+51,38
@@
struct texmat_stage_data {
#define TEXMAT_STAGE_DATA(stage) ((struct texmat_stage_data *)stage->privatePtr)
#define TEXMAT_STAGE_DATA(stage) ((struct texmat_stage_data *)stage->privatePtr)
-static void check_texmat( GLcontext *ctx, struct tnl_pipeline_stage *stage )
-{
- GLuint i;
- stage->active = 0;
-
- if (ctx->Texture._TexMatEnabled && !ctx->VertexProgram._Enabled) {
- GLuint flags = 0;
- for (i = 0 ; i < ctx->Const.MaxTextureCoordUnits ; i++)
- if (ctx->Texture._TexMatEnabled & ENABLE_TEXMAT(i))
- flags |= _TNL_BIT_TEX(i);
-
- stage->active = 1;
- stage->inputs = flags;
- stage->outputs = flags;
- }
-}
-static GLboolean run_texmat_stage(
GL
context *ctx,
+static GLboolean run_texmat_stage(
struct gl_
context *ctx,
struct tnl_pipeline_stage *stage )
{
struct texmat_stage_data *store = TEXMAT_STAGE_DATA(stage);
struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb;
GLuint i;
struct tnl_pipeline_stage *stage )
{
struct texmat_stage_data *store = TEXMAT_STAGE_DATA(stage);
struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb;
GLuint i;
+ if (!ctx->Texture._TexMatEnabled || ctx->VertexProgram._Current)
+ return GL_TRUE;
+
/* ENABLE_TEXMAT implies that the texture matrix is not the
* identity, so we don't have to check that here.
*/
/* ENABLE_TEXMAT implies that the texture matrix is not the
* identity, so we don't have to check that here.
*/
- for (i = 0 ; i < ctx->Const.MaxTextureCoordUnits ; i++)
+ for (i = 0 ; i < ctx->Const.MaxTextureCoordUnits ; i++)
{
if (ctx->Texture._TexMatEnabled & ENABLE_TEXMAT(i)) {
if (ctx->Texture._TexMatEnabled & ENABLE_TEXMAT(i)) {
- if (stage->changed_inputs & _TNL_BIT_TEX(i))
- (void) TransformRaw( &store->texcoord[i],
- ctx->TextureMatrixStack[i].Top,
- VB->TexCoordPtr[i]);
+ (void) TransformRaw( &store->texcoord[i],
+ ctx->TextureMatrixStack[i].Top,
+ VB->AttribPtr[_TNL_ATTRIB_TEX0 + i]);
- VB->AttribPtr[VERT_ATTRIB_TEX0+i] =
- VB->TexCoordPtr[i] = &store->texcoord[i];
+ VB->AttribPtr[VERT_ATTRIB_TEX0+i] = &store->texcoord[i];
}
}
+ }
+
return GL_TRUE;
}
/* Called the first time stage->run() is invoked.
*/
return GL_TRUE;
}
/* Called the first time stage->run() is invoked.
*/
-static GLboolean alloc_texmat_data(
GL
context *ctx,
+static GLboolean alloc_texmat_data(
struct gl_
context *ctx,
struct tnl_pipeline_stage *stage )
{
struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb;
struct tnl_pipeline_stage *stage )
{
struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb;
@@
-111,10
+97,7
@@
static GLboolean alloc_texmat_data( GLcontext *ctx,
for (i = 0 ; i < ctx->Const.MaxTextureCoordUnits ; i++)
_mesa_vector4f_alloc( &store->texcoord[i], 0, VB->Size, 32 );
for (i = 0 ; i < ctx->Const.MaxTextureCoordUnits ; i++)
_mesa_vector4f_alloc( &store->texcoord[i], 0, VB->Size, 32 );
- /* Now run the stage.
- */
- stage->run = run_texmat_stage;
- return stage->run( ctx, stage );
+ return GL_TRUE;
}
}
@@
-137,14
+120,9
@@
static void free_texmat_data( struct tnl_pipeline_stage *stage )
const struct tnl_pipeline_stage _tnl_texture_transform_stage =
{
"texture transform", /* name */
const struct tnl_pipeline_stage _tnl_texture_transform_stage =
{
"texture transform", /* name */
- _NEW_TEXTURE|_NEW_TEXTURE_MATRIX|_NEW_PROGRAM, /* check_state */
- _NEW_TEXTURE|_NEW_TEXTURE_MATRIX, /* run_state */
- GL_FALSE, /* active? */
- 0, /* inputs */
- 0, /* outputs */
- 0, /* changed_inputs */
NULL, /* private data */
NULL, /* private data */
+ alloc_texmat_data,
free_texmat_data, /* destructor */
free_texmat_data, /* destructor */
- check_texmat, /* check */
- alloc_texmat_data, /* run -- initially set to init */
+ NULL,
+ run_texmat_stage,
};
};