accomodate vtx-0-2-branch
This commit is contained in:
parent
0f3cd3f894
commit
854b4a3b54
|
@ -216,16 +216,10 @@ TNL_SOURCES = \
|
|||
tnl/t_array_api.c \
|
||||
tnl/t_array_import.c \
|
||||
tnl/t_context.c \
|
||||
tnl/t_eval_api.c \
|
||||
tnl/t_imm_alloc.c \
|
||||
tnl/t_imm_api.c \
|
||||
tnl/t_imm_debug.c \
|
||||
tnl/t_imm_dlist.c \
|
||||
tnl/t_imm_elt.c \
|
||||
tnl/t_imm_eval.c \
|
||||
tnl/t_imm_exec.c \
|
||||
tnl/t_imm_fixup.c \
|
||||
tnl/t_pipeline.c \
|
||||
tnl/t_save_api.c \
|
||||
tnl/t_save_loopback.c \
|
||||
tnl/t_save_playback.c \
|
||||
tnl/t_vb_fog.c \
|
||||
tnl/t_vb_light.c \
|
||||
tnl/t_vb_normals.c \
|
||||
|
@ -234,7 +228,10 @@ TNL_SOURCES = \
|
|||
tnl/t_vb_render.c \
|
||||
tnl/t_vb_texgen.c \
|
||||
tnl/t_vb_texmat.c \
|
||||
tnl/t_vb_vertex.c
|
||||
tnl/t_vb_vertex.c \
|
||||
tnl/t_vtx_api.c \
|
||||
tnl/t_vtx_eval.c \
|
||||
tnl/t_vtx_exec.c
|
||||
|
||||
X86_SOURCES = \
|
||||
x86/x86.c \
|
||||
|
@ -268,9 +265,9 @@ CORE_SOURCES = \
|
|||
$(GLAPI_SOURCES) \
|
||||
$(MATH_SOURCES) \
|
||||
$(ARRAY_CACHE_SOURCES) \
|
||||
$(TNL_SOURCES) \
|
||||
$(SWRAST_SOURCES) \
|
||||
$(SWRAST_SETUP_SOURCES) \
|
||||
$(TNL_SOURCES)
|
||||
$(SWRAST_SETUP_SOURCES)
|
||||
|
||||
ifeq ($(HAVE_MMX),1)
|
||||
X86_SOURCES += $(MMX_SOURCES)
|
||||
|
|
|
@ -209,16 +209,10 @@ TNL_SOURCES = \
|
|||
tnl/t_array_api.c \
|
||||
tnl/t_array_import.c \
|
||||
tnl/t_context.c \
|
||||
tnl/t_eval_api.c \
|
||||
tnl/t_imm_alloc.c \
|
||||
tnl/t_imm_api.c \
|
||||
tnl/t_imm_debug.c \
|
||||
tnl/t_imm_dlist.c \
|
||||
tnl/t_imm_elt.c \
|
||||
tnl/t_imm_eval.c \
|
||||
tnl/t_imm_exec.c \
|
||||
tnl/t_imm_fixup.c \
|
||||
tnl/t_pipeline.c \
|
||||
tnl/t_save_api.c \
|
||||
tnl/t_save_loopback.c \
|
||||
tnl/t_save_playback.c \
|
||||
tnl/t_vb_fog.c \
|
||||
tnl/t_vb_light.c \
|
||||
tnl/t_vb_normals.c \
|
||||
|
@ -227,7 +221,10 @@ TNL_SOURCES = \
|
|||
tnl/t_vb_render.c \
|
||||
tnl/t_vb_texgen.c \
|
||||
tnl/t_vb_texmat.c \
|
||||
tnl/t_vb_vertex.c
|
||||
tnl/t_vb_vertex.c \
|
||||
tnl/t_vtx_api.c \
|
||||
tnl/t_vtx_eval.c \
|
||||
tnl/t_vtx_exec.c
|
||||
|
||||
X86_SOURCES = \
|
||||
x86/x86.c \
|
||||
|
@ -261,9 +258,9 @@ CORE_SOURCES = \
|
|||
$(GLAPI_SOURCES) \
|
||||
$(MATH_SOURCES) \
|
||||
$(ARRAY_CACHE_SOURCES) \
|
||||
$(TNL_SOURCES) \
|
||||
$(SWRAST_SOURCES) \
|
||||
$(SWRAST_SETUP_SOURCES) \
|
||||
$(TNL_SOURCES)
|
||||
$(SWRAST_SETUP_SOURCES)
|
||||
|
||||
ifeq ($(HAVE_MMX),1)
|
||||
X86_SOURCES += $(MMX_SOURCES)
|
||||
|
|
|
@ -231,16 +231,10 @@ TNL_SOURCES =\
|
|||
tnl\t_array_api.c\
|
||||
tnl\t_array_import.c\
|
||||
tnl\t_context.c\
|
||||
tnl\t_eval_api.c\
|
||||
tnl\t_imm_alloc.c\
|
||||
tnl\t_imm_api.c\
|
||||
tnl\t_imm_debug.c\
|
||||
tnl\t_imm_dlist.c\
|
||||
tnl\t_imm_elt.c\
|
||||
tnl\t_imm_eval.c\
|
||||
tnl\t_imm_exec.c\
|
||||
tnl\t_imm_fixup.c\
|
||||
tnl\t_pipeline.c\
|
||||
tnl\t_save_api.c\
|
||||
tnl\t_save_loopback.c\
|
||||
tnl\t_save_playback.c\
|
||||
tnl\t_vb_fog.c\
|
||||
tnl\t_vb_light.c\
|
||||
tnl\t_vb_normals.c\
|
||||
|
@ -249,7 +243,10 @@ TNL_SOURCES =\
|
|||
tnl\t_vb_render.c\
|
||||
tnl\t_vb_texgen.c\
|
||||
tnl\t_vb_texmat.c\
|
||||
tnl\t_vb_vertex.c
|
||||
tnl\t_vb_vertex.c\
|
||||
tnl\t_vtx_api.c\
|
||||
tnl\t_vtx_eval.c\
|
||||
tnl\t_vtx_exec.c
|
||||
|
||||
DRIVER_SOURCES =\
|
||||
drivers\glide\fxapi.c\
|
||||
|
|
|
@ -119,7 +119,8 @@ typedef struct {
|
|||
float oow; /* 1/W (used for W-buffering, texturing) */
|
||||
unsigned char pargb[4]; /* B, G, R, A [0..255] */
|
||||
GrTmuVertex tmuvtx[GLIDE_NUM_TMU];
|
||||
long pad[16 - 11]; /* future use; also ensure 64b structure */
|
||||
float fog; /* fog coordinate */
|
||||
long pad[16 - 12]; /* ensure 64b structure */
|
||||
} GrVertex;
|
||||
|
||||
#define GR_VERTEX_X_OFFSET 0
|
||||
|
@ -133,6 +134,7 @@ typedef struct {
|
|||
#define GR_VERTEX_SOW_TMU1_OFFSET 8
|
||||
#define GR_VERTEX_TOW_TMU1_OFFSET 9
|
||||
#define GR_VERTEX_OOW_TMU1_OFFSET 10
|
||||
#define GR_VERTEX_FOG_OFFSET 11
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
|
||||
/* Authors:
|
||||
* Keith Whitwell <keith@tungstengraphics.com>
|
||||
* Daniel Borca <dborca@users.sourceforge.net>
|
||||
*/
|
||||
|
||||
#include "glheader.h"
|
||||
|
@ -310,10 +311,10 @@ static struct {
|
|||
|
||||
#define VERT_SET_RGBA( dst, f ) \
|
||||
do { \
|
||||
dst->pargb[2] = f[0]; \
|
||||
dst->pargb[1] = f[1]; \
|
||||
dst->pargb[0] = f[2]; \
|
||||
dst->pargb[3] = f[3]; \
|
||||
dst->pargb[2] = f[0] * 255.; \
|
||||
dst->pargb[1] = f[1] * 255.; \
|
||||
dst->pargb[0] = f[2] * 255.; \
|
||||
dst->pargb[3] = f[3] * 255.; \
|
||||
} while (0)
|
||||
|
||||
#define VERT_COPY_RGBA( v0, v1 ) \
|
||||
|
@ -343,7 +344,7 @@ do { \
|
|||
#define RENDER_PRIMITIVE fxMesa->render_primitive
|
||||
#define IND FX_FALLBACK_BIT
|
||||
#define TAG(x) x
|
||||
#include "../common/t_dd_unfilled.h"
|
||||
#include "../../tnl_dd/t_dd_unfilled.h"
|
||||
#undef IND
|
||||
|
||||
/***********************************************************************
|
||||
|
@ -352,136 +353,136 @@ do { \
|
|||
|
||||
#define IND (0)
|
||||
#define TAG(x) x
|
||||
#include "../common/t_dd_tritmp.h"
|
||||
#include "../../tnl_dd/t_dd_tritmp.h"
|
||||
|
||||
#define IND (FX_OFFSET_BIT)
|
||||
#define TAG(x) x##_offset
|
||||
#include "../common/t_dd_tritmp.h"
|
||||
#include "../../tnl_dd/t_dd_tritmp.h"
|
||||
|
||||
#define IND (FX_TWOSIDE_BIT)
|
||||
#define TAG(x) x##_twoside
|
||||
#include "../common/t_dd_tritmp.h"
|
||||
#include "../../tnl_dd/t_dd_tritmp.h"
|
||||
|
||||
#define IND (FX_TWOSIDE_BIT|FX_OFFSET_BIT)
|
||||
#define TAG(x) x##_twoside_offset
|
||||
#include "../common/t_dd_tritmp.h"
|
||||
#include "../../tnl_dd/t_dd_tritmp.h"
|
||||
|
||||
#define IND (FX_UNFILLED_BIT)
|
||||
#define TAG(x) x##_unfilled
|
||||
#include "../common/t_dd_tritmp.h"
|
||||
#include "../../tnl_dd/t_dd_tritmp.h"
|
||||
|
||||
#define IND (FX_OFFSET_BIT|FX_UNFILLED_BIT)
|
||||
#define TAG(x) x##_offset_unfilled
|
||||
#include "../common/t_dd_tritmp.h"
|
||||
#include "../../tnl_dd/t_dd_tritmp.h"
|
||||
|
||||
#define IND (FX_TWOSIDE_BIT|FX_UNFILLED_BIT)
|
||||
#define TAG(x) x##_twoside_unfilled
|
||||
#include "../common/t_dd_tritmp.h"
|
||||
#include "../../tnl_dd/t_dd_tritmp.h"
|
||||
|
||||
#define IND (FX_TWOSIDE_BIT|FX_OFFSET_BIT|FX_UNFILLED_BIT)
|
||||
#define TAG(x) x##_twoside_offset_unfilled
|
||||
#include "../common/t_dd_tritmp.h"
|
||||
#include "../../tnl_dd/t_dd_tritmp.h"
|
||||
|
||||
#define IND (FX_FALLBACK_BIT)
|
||||
#define TAG(x) x##_fallback
|
||||
#include "../common/t_dd_tritmp.h"
|
||||
#include "../../tnl_dd/t_dd_tritmp.h"
|
||||
|
||||
#define IND (FX_OFFSET_BIT|FX_FALLBACK_BIT)
|
||||
#define TAG(x) x##_offset_fallback
|
||||
#include "../common/t_dd_tritmp.h"
|
||||
#include "../../tnl_dd/t_dd_tritmp.h"
|
||||
|
||||
#define IND (FX_TWOSIDE_BIT|FX_FALLBACK_BIT)
|
||||
#define TAG(x) x##_twoside_fallback
|
||||
#include "../common/t_dd_tritmp.h"
|
||||
#include "../../tnl_dd/t_dd_tritmp.h"
|
||||
|
||||
#define IND (FX_TWOSIDE_BIT|FX_OFFSET_BIT|FX_FALLBACK_BIT)
|
||||
#define TAG(x) x##_twoside_offset_fallback
|
||||
#include "../common/t_dd_tritmp.h"
|
||||
#include "../../tnl_dd/t_dd_tritmp.h"
|
||||
|
||||
#define IND (FX_UNFILLED_BIT|FX_FALLBACK_BIT)
|
||||
#define TAG(x) x##_unfilled_fallback
|
||||
#include "../common/t_dd_tritmp.h"
|
||||
#include "../../tnl_dd/t_dd_tritmp.h"
|
||||
|
||||
#define IND (FX_OFFSET_BIT|FX_UNFILLED_BIT|FX_FALLBACK_BIT)
|
||||
#define TAG(x) x##_offset_unfilled_fallback
|
||||
#include "../common/t_dd_tritmp.h"
|
||||
#include "../../tnl_dd/t_dd_tritmp.h"
|
||||
|
||||
#define IND (FX_TWOSIDE_BIT|FX_UNFILLED_BIT|FX_FALLBACK_BIT)
|
||||
#define TAG(x) x##_twoside_unfilled_fallback
|
||||
#include "../common/t_dd_tritmp.h"
|
||||
#include "../../tnl_dd/t_dd_tritmp.h"
|
||||
|
||||
#define IND (FX_TWOSIDE_BIT|FX_OFFSET_BIT|FX_UNFILLED_BIT| \
|
||||
FX_FALLBACK_BIT)
|
||||
#define TAG(x) x##_twoside_offset_unfilled_fallback
|
||||
#include "../common/t_dd_tritmp.h"
|
||||
#include "../../tnl_dd/t_dd_tritmp.h"
|
||||
|
||||
|
||||
/* Fx doesn't support provoking-vertex flat-shading?
|
||||
*/
|
||||
#define IND (FX_FLAT_BIT)
|
||||
#define TAG(x) x##_flat
|
||||
#include "../common/t_dd_tritmp.h"
|
||||
#include "../../tnl_dd/t_dd_tritmp.h"
|
||||
|
||||
#define IND (FX_OFFSET_BIT|FX_FLAT_BIT)
|
||||
#define TAG(x) x##_offset_flat
|
||||
#include "../common/t_dd_tritmp.h"
|
||||
#include "../../tnl_dd/t_dd_tritmp.h"
|
||||
|
||||
#define IND (FX_TWOSIDE_BIT|FX_FLAT_BIT)
|
||||
#define TAG(x) x##_twoside_flat
|
||||
#include "../common/t_dd_tritmp.h"
|
||||
#include "../../tnl_dd/t_dd_tritmp.h"
|
||||
|
||||
#define IND (FX_TWOSIDE_BIT|FX_OFFSET_BIT|FX_FLAT_BIT)
|
||||
#define TAG(x) x##_twoside_offset_flat
|
||||
#include "../common/t_dd_tritmp.h"
|
||||
#include "../../tnl_dd/t_dd_tritmp.h"
|
||||
|
||||
#define IND (FX_UNFILLED_BIT|FX_FLAT_BIT)
|
||||
#define TAG(x) x##_unfilled_flat
|
||||
#include "../common/t_dd_tritmp.h"
|
||||
#include "../../tnl_dd/t_dd_tritmp.h"
|
||||
|
||||
#define IND (FX_OFFSET_BIT|FX_UNFILLED_BIT|FX_FLAT_BIT)
|
||||
#define TAG(x) x##_offset_unfilled_flat
|
||||
#include "../common/t_dd_tritmp.h"
|
||||
#include "../../tnl_dd/t_dd_tritmp.h"
|
||||
|
||||
#define IND (FX_TWOSIDE_BIT|FX_UNFILLED_BIT|FX_FLAT_BIT)
|
||||
#define TAG(x) x##_twoside_unfilled_flat
|
||||
#include "../common/t_dd_tritmp.h"
|
||||
#include "../../tnl_dd/t_dd_tritmp.h"
|
||||
|
||||
#define IND (FX_TWOSIDE_BIT|FX_OFFSET_BIT|FX_UNFILLED_BIT|FX_FLAT_BIT)
|
||||
#define TAG(x) x##_twoside_offset_unfilled_flat
|
||||
#include "../common/t_dd_tritmp.h"
|
||||
#include "../../tnl_dd/t_dd_tritmp.h"
|
||||
|
||||
#define IND (FX_FALLBACK_BIT|FX_FLAT_BIT)
|
||||
#define TAG(x) x##_fallback_flat
|
||||
#include "../common/t_dd_tritmp.h"
|
||||
#include "../../tnl_dd/t_dd_tritmp.h"
|
||||
|
||||
#define IND (FX_OFFSET_BIT|FX_FALLBACK_BIT|FX_FLAT_BIT)
|
||||
#define TAG(x) x##_offset_fallback_flat
|
||||
#include "../common/t_dd_tritmp.h"
|
||||
#include "../../tnl_dd/t_dd_tritmp.h"
|
||||
|
||||
#define IND (FX_TWOSIDE_BIT|FX_FALLBACK_BIT|FX_FLAT_BIT)
|
||||
#define TAG(x) x##_twoside_fallback_flat
|
||||
#include "../common/t_dd_tritmp.h"
|
||||
#include "../../tnl_dd/t_dd_tritmp.h"
|
||||
|
||||
#define IND (FX_TWOSIDE_BIT|FX_OFFSET_BIT|FX_FALLBACK_BIT|FX_FLAT_BIT)
|
||||
#define TAG(x) x##_twoside_offset_fallback_flat
|
||||
#include "../common/t_dd_tritmp.h"
|
||||
#include "../../tnl_dd/t_dd_tritmp.h"
|
||||
|
||||
#define IND (FX_UNFILLED_BIT|FX_FALLBACK_BIT|FX_FLAT_BIT)
|
||||
#define TAG(x) x##_unfilled_fallback_flat
|
||||
#include "../common/t_dd_tritmp.h"
|
||||
#include "../../tnl_dd/t_dd_tritmp.h"
|
||||
|
||||
#define IND (FX_OFFSET_BIT|FX_UNFILLED_BIT|FX_FALLBACK_BIT|FX_FLAT_BIT)
|
||||
#define TAG(x) x##_offset_unfilled_fallback_flat
|
||||
#include "../common/t_dd_tritmp.h"
|
||||
#include "../../tnl_dd/t_dd_tritmp.h"
|
||||
|
||||
#define IND (FX_TWOSIDE_BIT|FX_UNFILLED_BIT|FX_FALLBACK_BIT|FX_FLAT_BIT)
|
||||
#define TAG(x) x##_twoside_unfilled_fallback_flat
|
||||
#include "../common/t_dd_tritmp.h"
|
||||
#include "../../tnl_dd/t_dd_tritmp.h"
|
||||
|
||||
#define IND (FX_TWOSIDE_BIT|FX_OFFSET_BIT|FX_UNFILLED_BIT| \
|
||||
FX_FALLBACK_BIT|FX_FLAT_BIT)
|
||||
#define TAG(x) x##_twoside_offset_unfilled_fallback_flat
|
||||
#include "../common/t_dd_tritmp.h"
|
||||
#include "../../tnl_dd/t_dd_tritmp.h"
|
||||
|
||||
|
||||
static void init_rast_tab( void )
|
||||
|
@ -719,9 +720,10 @@ static void fx_render_vb_tri_strip( GLcontext *ctx,
|
|||
|
||||
INIT(GL_TRIANGLE_STRIP);
|
||||
|
||||
/* [dBorca] WTF?!?
|
||||
if (flags & PRIM_PARITY)
|
||||
mode = GR_TRIANGLE_STRIP_CONTINUE;
|
||||
else
|
||||
else*/
|
||||
mode = GR_TRIANGLE_STRIP;
|
||||
|
||||
grDrawVertexArrayContiguous( mode, count-start,
|
||||
|
@ -837,7 +839,7 @@ static void (*fx_render_tab_verts[GL_POLYGON+2])(GLcontext *,
|
|||
fx_render_vb_poly,
|
||||
fx_render_vb_noop,
|
||||
};
|
||||
#undef INIT(x)
|
||||
#undef INIT
|
||||
|
||||
|
||||
/**********************************************************************/
|
||||
|
@ -879,7 +881,7 @@ static void (*fx_render_tab_verts[GL_POLYGON+2])(GLcontext *,
|
|||
#undef TAG
|
||||
#define TAG(x) fx_##x##_elts
|
||||
#define ELT(x) elt[x]
|
||||
#include "../common/t_dd_rendertmp.h"
|
||||
#include "../../tnl_dd/t_dd_rendertmp.h"
|
||||
|
||||
/* Verts, no clipping.
|
||||
*/
|
||||
|
@ -887,7 +889,7 @@ static void (*fx_render_tab_verts[GL_POLYGON+2])(GLcontext *,
|
|||
#undef TAG
|
||||
#define TAG(x) fx_##x##_verts
|
||||
#define ELT(x) x
|
||||
/*#include "../common/t_dd_rendertmp.h"*/ /* we have fx_render_vb_* now */
|
||||
/*#include "../../tnl_dd/t_dd_rendertmp.h"*/ /* we have fx_render_vb_* now */
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -24,7 +24,8 @@
|
|||
*/
|
||||
|
||||
/* Authors:
|
||||
* Keith Whitwell
|
||||
* Keith Whitwell <keith@tungstengraphics.com>
|
||||
* Daniel Borca <dborca@users.sourceforge.net>
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
|
@ -67,41 +68,7 @@ static struct {
|
|||
} setup_tab[MAX_SETUP];
|
||||
|
||||
|
||||
static void import_float_colors( GLcontext *ctx )
|
||||
{
|
||||
struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb;
|
||||
struct gl_client_array *from = VB->ColorPtr[0];
|
||||
struct gl_client_array *to = &FX_CONTEXT(ctx)->UbyteColor;
|
||||
GLuint count = VB->Count;
|
||||
|
||||
if (!to->Ptr) {
|
||||
to->Ptr = ALIGN_MALLOC( VB->Size * 4 * sizeof(GLubyte), 32 );
|
||||
to->Type = GL_UNSIGNED_BYTE;
|
||||
}
|
||||
|
||||
/* No need to transform the same value 3000 times.
|
||||
*/
|
||||
if (!from->StrideB) {
|
||||
to->StrideB = 0;
|
||||
count = 1;
|
||||
}
|
||||
else
|
||||
to->StrideB = 4 * sizeof(GLubyte);
|
||||
|
||||
_math_trans_4ub( (GLubyte (*)[4]) to->Ptr,
|
||||
from->Ptr,
|
||||
from->StrideB,
|
||||
from->Type,
|
||||
from->Size,
|
||||
0,
|
||||
count);
|
||||
|
||||
VB->ColorPtr[0] = to;
|
||||
}
|
||||
|
||||
|
||||
/* Hack alert: assume chan is 8 bits */
|
||||
#define GET_COLOR(ptr, idx) (((GLchan (*)[4])((ptr)->Ptr))[idx])
|
||||
#define GET_COLOR(ptr, idx) ((ptr)->data[idx])
|
||||
|
||||
|
||||
static void interp_extras( GLcontext *ctx,
|
||||
|
@ -112,13 +79,15 @@ static void interp_extras( GLcontext *ctx,
|
|||
struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb;
|
||||
|
||||
if (VB->ColorPtr[1]) {
|
||||
INTERP_4CHAN( t,
|
||||
assert(VB->ColorPtr[1]->stride == 4 * sizeof(GLfloat));
|
||||
|
||||
INTERP_4F( t,
|
||||
GET_COLOR(VB->ColorPtr[1], dst),
|
||||
GET_COLOR(VB->ColorPtr[1], out),
|
||||
GET_COLOR(VB->ColorPtr[1], in) );
|
||||
#if 1 /* [dBorca] GL_EXT_separate_specular_color */
|
||||
if (VB->SecondaryColorPtr[1]) {
|
||||
INTERP_3CHAN( t,
|
||||
INTERP_3F( t,
|
||||
GET_COLOR(VB->SecondaryColorPtr[1], dst),
|
||||
GET_COLOR(VB->SecondaryColorPtr[1], out),
|
||||
GET_COLOR(VB->SecondaryColorPtr[1], in) );
|
||||
|
@ -139,11 +108,11 @@ static void copy_pv_extras( GLcontext *ctx, GLuint dst, GLuint src )
|
|||
struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb;
|
||||
|
||||
if (VB->ColorPtr[1]) {
|
||||
COPY_CHAN4( GET_COLOR(VB->ColorPtr[1], dst),
|
||||
COPY_4FV( GET_COLOR(VB->ColorPtr[1], dst),
|
||||
GET_COLOR(VB->ColorPtr[1], src) );
|
||||
#if 1 /* [dBorca] GL_EXT_separate_specular_color */
|
||||
if (VB->SecondaryColorPtr[1]) {
|
||||
COPY_CHAN4( GET_COLOR(VB->SecondaryColorPtr[1], dst),
|
||||
COPY_4FV( GET_COLOR(VB->SecondaryColorPtr[1], dst),
|
||||
GET_COLOR(VB->SecondaryColorPtr[1], src) );
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
|
||||
/* Authors:
|
||||
* Keith Whitwell <keith@tungstengraphics.com>
|
||||
* Daniel Borca <dborca@users.sourceforge.net>
|
||||
*/
|
||||
|
||||
|
||||
|
@ -40,7 +41,7 @@ static void TAG(emit)( GLcontext *ctx,
|
|||
GLuint tmu0_source = fxMesa->tmu_source[0];
|
||||
GLuint tmu1_source = fxMesa->tmu_source[1];
|
||||
GLfloat (*tc0)[4], (*tc1)[4];
|
||||
GLubyte (*col)[4];
|
||||
GLfloat (*col)[4];
|
||||
GLuint tc0_stride, tc1_stride, col_stride;
|
||||
GLuint tc0_size, tc1_size;
|
||||
GLfloat (*proj)[4] = VB->NdcPtr->data;
|
||||
|
@ -71,10 +72,8 @@ static void TAG(emit)( GLcontext *ctx,
|
|||
}
|
||||
|
||||
if (IND & SETUP_RGBA) {
|
||||
if (VB->ColorPtr[0]->Type != GL_UNSIGNED_BYTE)
|
||||
import_float_colors( ctx );
|
||||
col = VB->ColorPtr[0]->Ptr;
|
||||
col_stride = VB->ColorPtr[0]->StrideB;
|
||||
col = VB->ColorPtr[0]->data;
|
||||
col_stride = VB->ColorPtr[0]->stride;
|
||||
}
|
||||
|
||||
if (start) {
|
||||
|
@ -84,7 +83,7 @@ static void TAG(emit)( GLcontext *ctx,
|
|||
if (IND & SETUP_TMU1)
|
||||
tc1 = (GLfloat (*)[4])((GLubyte *)tc1 + start * tc1_stride);
|
||||
if (IND & SETUP_RGBA)
|
||||
STRIDE_4UB(col, start * col_stride);
|
||||
STRIDE_4F(col, start * col_stride);
|
||||
}
|
||||
|
||||
for (i=start; i < end; i++, v++) {
|
||||
|
@ -116,11 +115,11 @@ static void TAG(emit)( GLcontext *ctx,
|
|||
proj = (GLfloat (*)[4])((GLubyte *)proj + proj_stride);
|
||||
}
|
||||
if (IND & SETUP_RGBA) {
|
||||
v->pargb[2] = col[0][0];
|
||||
v->pargb[1] = col[0][1];
|
||||
v->pargb[0] = col[0][2];
|
||||
v->pargb[3] = col[0][3];
|
||||
STRIDE_4UB(col, col_stride);
|
||||
v->pargb[2] = col[0][0] * 255.;
|
||||
v->pargb[1] = col[0][1] * 255.;
|
||||
v->pargb[0] = col[0][2] * 255.;
|
||||
v->pargb[3] = col[0][3] * 255.;
|
||||
STRIDE_4F(col, col_stride);
|
||||
}
|
||||
if (IND & SETUP_TMU0) {
|
||||
GLfloat w = v->oow;
|
||||
|
|
|
@ -186,9 +186,6 @@ static void TAG(render_tri_strip)( GLcontext *ctx,
|
|||
GLuint parity = 0;
|
||||
LOCAL_VARS;
|
||||
|
||||
if (TEST_PRIM_PARITY(flags))
|
||||
parity = 1;
|
||||
|
||||
INIT(GL_TRIANGLE_STRIP);
|
||||
if (NEED_EDGEFLAG_SETUP) {
|
||||
for (j=start+2;j<count;j++,parity^=1) {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: 3dnow_normal.S,v 1.5 2003/01/30 14:30:24 brianp Exp $ */
|
||||
/* $Id: 3dnow_normal.S,v 1.6 2003/11/26 08:32:35 dborca Exp $ */
|
||||
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
|
@ -50,17 +50,17 @@ GLNAME(_mesa_3dnow_transform_normalize_normals):
|
|||
MOV_L ( ARG_LENGTHS, EDI )
|
||||
MOV_L ( ARG_IN, ESI )
|
||||
MOV_L ( ARG_DEST, EAX )
|
||||
MOV_L ( REGOFF(V3F_COUNT, ESI), EBP ) /* dest->count = in->count */
|
||||
MOV_L ( EBP, REGOFF(V3F_COUNT, EAX) )
|
||||
MOV_L ( REGOFF(V3F_START, ESI), EDX ) /* in->start */
|
||||
MOV_L ( REGOFF(V3F_START, EAX), EAX ) /* dest->start */
|
||||
MOV_L ( REGOFF(V4F_COUNT, ESI), EBP ) /* dest->count = in->count */
|
||||
MOV_L ( EBP, REGOFF(V4F_COUNT, EAX) )
|
||||
MOV_L ( REGOFF(V4F_START, ESI), EDX ) /* in->start */
|
||||
MOV_L ( REGOFF(V4F_START, EAX), EAX ) /* dest->start */
|
||||
MOV_L ( ARG_MAT, ECX )
|
||||
MOV_L ( REGOFF(MATRIX_INV, ECX), ECX ) /* mat->inv */
|
||||
|
||||
CMP_L ( CONST(0), EBP ) /* count > 0 ?? */
|
||||
JE ( LLBL (G3TN_end) )
|
||||
|
||||
MOV_L ( REGOFF (V3F_COUNT, ESI), EBP )
|
||||
MOV_L ( REGOFF (V4F_COUNT, ESI), EBP )
|
||||
FEMMS
|
||||
|
||||
PUSH_L ( EBP )
|
||||
|
@ -228,12 +228,12 @@ GLNAME(_mesa_3dnow_transform_normalize_normals_no_rot):
|
|||
MOV_L ( ARG_LENGTHS, EDI )
|
||||
MOV_L ( ARG_IN, ESI )
|
||||
MOV_L ( ARG_DEST, EAX )
|
||||
MOV_L ( REGOFF(V3F_COUNT, ESI), EBP ) /* dest->count = in->count */
|
||||
MOV_L ( EBP, REGOFF(V3F_COUNT, EAX) )
|
||||
MOV_L ( REGOFF(V4F_COUNT, ESI), EBP ) /* dest->count = in->count */
|
||||
MOV_L ( EBP, REGOFF(V4F_COUNT, EAX) )
|
||||
MOV_L ( ARG_MAT, ECX )
|
||||
MOV_L ( REGOFF(V3F_START, EAX), EAX ) /* dest->start */
|
||||
MOV_L ( REGOFF(V4F_START, EAX), EAX ) /* dest->start */
|
||||
MOV_L ( REGOFF(MATRIX_INV, ECX), ECX ) /* mat->inv */
|
||||
MOV_L ( REGOFF(V3F_START, ESI), EDX ) /* in->start */
|
||||
MOV_L ( REGOFF(V4F_START, ESI), EDX ) /* in->start */
|
||||
|
||||
CMP_L ( CONST(0), EBP ) /* count > 0 ?? */
|
||||
JE ( LLBL (G3TNNR_end) )
|
||||
|
@ -366,13 +366,13 @@ GLNAME(_mesa_3dnow_transform_rescale_normals_no_rot):
|
|||
|
||||
MOV_L ( ARG_IN, EAX )
|
||||
MOV_L ( ARG_DEST, EDX )
|
||||
MOV_L ( REGOFF(V3F_COUNT, EAX), EBP ) /* dest->count = in->count */
|
||||
MOV_L ( EBP, REGOFF(V3F_COUNT, EDX) )
|
||||
MOV_L ( REGOFF(V4F_COUNT, EAX), EBP ) /* dest->count = in->count */
|
||||
MOV_L ( EBP, REGOFF(V4F_COUNT, EDX) )
|
||||
MOV_L ( ARG_IN, ESI )
|
||||
MOV_L ( ARG_MAT, ECX )
|
||||
MOV_L ( REGOFF(MATRIX_INV, ECX), ECX ) /* mat->inv */
|
||||
MOV_L ( REGOFF(V3F_START, EDX), EAX ) /* dest->start */
|
||||
MOV_L ( REGOFF(V3F_START, ESI), EDX ) /* in->start */
|
||||
MOV_L ( REGOFF(V4F_START, EDX), EAX ) /* dest->start */
|
||||
MOV_L ( REGOFF(V4F_START, ESI), EDX ) /* in->start */
|
||||
|
||||
CMP_L ( CONST(0), EBP )
|
||||
JE ( LLBL (G3TRNR_end) )
|
||||
|
@ -437,10 +437,10 @@ GLNAME(_mesa_3dnow_transform_rescale_normals):
|
|||
MOV_L ( ARG_IN, ESI )
|
||||
MOV_L ( ARG_DEST, EAX )
|
||||
MOV_L ( ARG_MAT, ECX )
|
||||
MOV_L ( REGOFF(V3F_COUNT, ESI), EDI ) /* dest->count = in->count */
|
||||
MOV_L ( EDI, REGOFF(V3F_COUNT, EAX) )
|
||||
MOV_L ( REGOFF(V3F_START, EAX), EAX ) /* dest->start */
|
||||
MOV_L ( REGOFF(V3F_START, ESI), EDX ) /* in->start */
|
||||
MOV_L ( REGOFF(V4F_COUNT, ESI), EDI ) /* dest->count = in->count */
|
||||
MOV_L ( EDI, REGOFF(V4F_COUNT, EAX) )
|
||||
MOV_L ( REGOFF(V4F_START, EAX), EAX ) /* dest->start */
|
||||
MOV_L ( REGOFF(V4F_START, ESI), EDX ) /* in->start */
|
||||
MOV_L ( REGOFF(MATRIX_INV, ECX), ECX ) /* mat->inv */
|
||||
|
||||
CMP_L ( CONST(0), EDI )
|
||||
|
@ -534,10 +534,10 @@ GLNAME(_mesa_3dnow_transform_normals_no_rot):
|
|||
MOV_L ( ARG_IN, ESI )
|
||||
MOV_L ( ARG_DEST, EAX )
|
||||
MOV_L ( ARG_MAT, ECX )
|
||||
MOV_L ( REGOFF(V3F_COUNT, ESI), EDI ) /* dest->count = in->count */
|
||||
MOV_L ( EDI, REGOFF(V3F_COUNT, EAX) )
|
||||
MOV_L ( REGOFF(V3F_START, EAX), EAX ) /* dest->start */
|
||||
MOV_L ( REGOFF(V3F_START, ESI), EDX ) /* in->start */
|
||||
MOV_L ( REGOFF(V4F_COUNT, ESI), EDI ) /* dest->count = in->count */
|
||||
MOV_L ( EDI, REGOFF(V4F_COUNT, EAX) )
|
||||
MOV_L ( REGOFF(V4F_START, EAX), EAX ) /* dest->start */
|
||||
MOV_L ( REGOFF(V4F_START, ESI), EDX ) /* in->start */
|
||||
MOV_L ( REGOFF(MATRIX_INV, ECX), ECX ) /* mat->inv */
|
||||
|
||||
CMP_L ( CONST(0), EDI )
|
||||
|
@ -600,10 +600,10 @@ GLNAME(_mesa_3dnow_transform_normals):
|
|||
MOV_L ( ARG_IN, ESI )
|
||||
MOV_L ( ARG_DEST, EAX )
|
||||
MOV_L ( ARG_MAT, ECX )
|
||||
MOV_L ( REGOFF(V3F_COUNT, ESI), EDI ) /* dest->count = in->count */
|
||||
MOV_L ( EDI, REGOFF(V3F_COUNT, EAX) )
|
||||
MOV_L ( REGOFF(V3F_START, EAX), EAX ) /* dest->start */
|
||||
MOV_L ( REGOFF(V3F_START, ESI), EDX ) /* in->start */
|
||||
MOV_L ( REGOFF(V4F_COUNT, ESI), EDI ) /* dest->count = in->count */
|
||||
MOV_L ( EDI, REGOFF(V4F_COUNT, EAX) )
|
||||
MOV_L ( REGOFF(V4F_START, EAX), EAX ) /* dest->start */
|
||||
MOV_L ( REGOFF(V4F_START, ESI), EDX ) /* in->start */
|
||||
MOV_L ( REGOFF(MATRIX_INV, ECX), ECX ) /* mat->inv */
|
||||
|
||||
CMP_L ( CONST(0), EDI ) /* count > 0 ?? */
|
||||
|
@ -684,10 +684,10 @@ GLNAME(_mesa_3dnow_normalize_normals):
|
|||
|
||||
MOV_L ( ARG_IN, ESI )
|
||||
MOV_L ( ARG_DEST, EAX )
|
||||
MOV_L ( REGOFF(V3F_COUNT, ESI), EBP ) /* dest->count = in->count */
|
||||
MOV_L ( EBP, REGOFF(V3F_COUNT, EAX) )
|
||||
MOV_L ( REGOFF(V3F_START, EAX), EAX ) /* dest->start */
|
||||
MOV_L ( REGOFF(V3F_START, ESI), ECX ) /* in->start */
|
||||
MOV_L ( REGOFF(V4F_COUNT, ESI), EBP ) /* dest->count = in->count */
|
||||
MOV_L ( EBP, REGOFF(V4F_COUNT, EAX) )
|
||||
MOV_L ( REGOFF(V4F_START, EAX), EAX ) /* dest->start */
|
||||
MOV_L ( REGOFF(V4F_START, ESI), ECX ) /* in->start */
|
||||
MOV_L ( ARG_LENGTHS, EDX )
|
||||
|
||||
CMP_L ( CONST(0), EBP ) /* count > 0 ?? */
|
||||
|
@ -793,10 +793,10 @@ GLNAME(_mesa_3dnow_rescale_normals):
|
|||
|
||||
MOV_L ( ARG_IN, ESI )
|
||||
MOV_L ( ARG_DEST, EAX )
|
||||
MOV_L ( REGOFF(V3F_COUNT, ESI), EDX ) /* dest->count = in->count */
|
||||
MOV_L ( EDX, REGOFF(V3F_COUNT, EAX) )
|
||||
MOV_L ( REGOFF(V3F_START, EAX), EAX ) /* dest->start */
|
||||
MOV_L ( REGOFF(V3F_START, ESI), ECX ) /* in->start */
|
||||
MOV_L ( REGOFF(V4F_COUNT, ESI), EDX ) /* dest->count = in->count */
|
||||
MOV_L ( EDX, REGOFF(V4F_COUNT, EAX) )
|
||||
MOV_L ( REGOFF(V4F_START, EAX), EAX ) /* dest->start */
|
||||
MOV_L ( REGOFF(V4F_START, ESI), ECX ) /* in->start */
|
||||
|
||||
CMP_L ( CONST(0), EDX )
|
||||
JE ( LLBL (G3R_end) )
|
||||
|
|
|
@ -120,9 +120,6 @@ int main( int argc, char **argv )
|
|||
OFFSET( "VB_SIZE ", struct vertex_buffer, Size );
|
||||
OFFSET( "VB_COUNT ", struct vertex_buffer, Count );
|
||||
printf( "\n" );
|
||||
OFFSET( "VB_FIRST_CLIPPED ", struct vertex_buffer, FirstClipped );
|
||||
OFFSET( "VB_FIRST_PRIMITIVE ", struct vertex_buffer, FirstPrimitive );
|
||||
printf( "\n" );
|
||||
OFFSET( "VB_ELTS ", struct vertex_buffer, Elts );
|
||||
OFFSET( "VB_OBJ_PTR ", struct vertex_buffer, ObjPtr );
|
||||
OFFSET( "VB_EYE_PTR ", struct vertex_buffer, EyePtr );
|
||||
|
@ -141,13 +138,7 @@ int main( int argc, char **argv )
|
|||
OFFSET( "VB_SECONDARY_COLOR_PTR ", struct vertex_buffer, SecondaryColorPtr );
|
||||
OFFSET( "VB_FOG_COORD_PTR ", struct vertex_buffer, FogCoordPtr );
|
||||
OFFSET( "VB_POINT_SIZE_PTR ", struct vertex_buffer, PointSizePtr );
|
||||
OFFSET( "VB_MATERIAL ", struct vertex_buffer, Material );
|
||||
OFFSET( "VB_MATERIAL_MASK ", struct vertex_buffer, MaterialMask );
|
||||
OFFSET( "VB_FLAG ", struct vertex_buffer, Flag );
|
||||
OFFSET( "VB_PRIMITIVE ", struct vertex_buffer, Primitive );
|
||||
OFFSET( "VB_PRIMITIVE_LENGTH ", struct vertex_buffer, PrimitiveLength );
|
||||
printf( "\n" );
|
||||
OFFSET( "VB_IMPORTABLE_DATA ", struct vertex_buffer, importable_data );
|
||||
printf( "\n" );
|
||||
OFFSET( "VB_LAST_CLIPPED ", struct vertex_buffer, LastClipped );
|
||||
|
||||
|
@ -159,39 +150,10 @@ int main( int argc, char **argv )
|
|||
DEFINE( "VERT_BIT_RGBA ", VERT_BIT_COLOR0 );
|
||||
DEFINE( "VERT_BIT_SPEC_RGB ", VERT_BIT_COLOR1 );
|
||||
DEFINE( "VERT_BIT_FOG_COORD ", VERT_BIT_FOG );
|
||||
DEFINE( "VERT_BIT_INDEX ", VERT_BIT_INDEX );
|
||||
DEFINE( "VERT_BIT_EDGE ", VERT_BIT_EDGEFLAG );
|
||||
DEFINE( "VERT_BIT_TEX0 ", VERT_BIT_TEX0 );
|
||||
DEFINE( "VERT_BIT_TEX1 ", VERT_BIT_TEX1 );
|
||||
DEFINE( "VERT_BIT_TEX2 ", VERT_BIT_TEX2 );
|
||||
DEFINE( "VERT_BIT_TEX3 ", VERT_BIT_TEX3 );
|
||||
DEFINE( "VERT_BIT_EVAL_C1 ", VERT_BIT_EVAL_C1 );
|
||||
DEFINE( "VERT_BIT_EVAL_C2 ", VERT_BIT_EVAL_C2 );
|
||||
DEFINE( "VERT_BIT_EVAL_P1 ", VERT_BIT_EVAL_P1 );
|
||||
DEFINE( "VERT_BIT_EVAL_P2 ", VERT_BIT_EVAL_P2 );
|
||||
DEFINE( "VERT_BIT_OBJ_3 ", VERT_BIT_OBJ_3 );
|
||||
DEFINE( "VERT_BIT_OBJ_4 ", VERT_BIT_OBJ_4 );
|
||||
DEFINE( "VERT_BIT_MATERIAL ", VERT_BIT_MATERIAL );
|
||||
DEFINE( "VERT_BIT_ELT ", VERT_BIT_ELT );
|
||||
DEFINE( "VERT_BIT_BEGIN ", VERT_BIT_BEGIN );
|
||||
DEFINE( "VERT_BIT_END ", VERT_BIT_END );
|
||||
DEFINE( "VERT_BIT_END_VB ", VERT_BIT_END_VB );
|
||||
DEFINE( "VERT_BIT_POINT_SIZE ", VERT_BIT_POINT_SIZE );
|
||||
DEFINE( "VERT_BIT_EYE ", VERT_BIT_EYE );
|
||||
printf( "\n" );
|
||||
DEFINE( "VERT_BIT_OBJ_23 ", VERT_BIT_OBJ_3 );
|
||||
DEFINE( "VERT_BIT_OBJ_234 ", VERT_BIT_OBJ_4 );
|
||||
|
||||
|
||||
/* GLvector3f offsets:
|
||||
*/
|
||||
OFFSET_HEADER( "GLvector3f" );
|
||||
|
||||
OFFSET( "V3F_DATA ", GLvector3f, data );
|
||||
OFFSET( "V3F_START ", GLvector3f, start );
|
||||
OFFSET( "V3F_COUNT ", GLvector3f, count );
|
||||
OFFSET( "V3F_STRIDE ", GLvector3f, stride );
|
||||
OFFSET( "V3F_FLAGS ", GLvector3f, flags );
|
||||
|
||||
|
||||
/* GLvector4f offsets:
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: norm_args.h,v 1.3 2002/10/29 20:28:58 brianp Exp $ */
|
||||
/* $Id: norm_args.h,v 1.4 2003/11/26 08:32:36 dborca Exp $ */
|
||||
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
|
@ -39,9 +39,9 @@
|
|||
*
|
||||
* typedef void (*normal_func)( CONST GLmatrix *mat,
|
||||
* GLfloat scale,
|
||||
* CONST GLvector3f *in,
|
||||
* CONST GLvector4f *in,
|
||||
* CONST GLfloat lengths[],
|
||||
* GLvector3f *dest );
|
||||
* GLvector4f *dest );
|
||||
*/
|
||||
#define OFFSET_MAT 4
|
||||
#define OFFSET_SCALE 8
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: sse_normal.S,v 1.2 2002/08/07 16:40:18 brianp Exp $ */
|
||||
/* $Id: sse_normal.S,v 1.3 2003/11/26 08:32:36 dborca Exp $ */
|
||||
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
|
@ -56,18 +56,18 @@ GLNAME(_mesa_sse_transform_rescale_normals_no_rot):
|
|||
MOV_L ( ARG_MAT, EDX ) /* ptr to matrix */
|
||||
MOV_L ( REGOFF(MATRIX_INV, EDX), EDX) /* matrix->inv */
|
||||
|
||||
MOV_L ( REGOFF(V3F_COUNT, ESI), ECX ) /* source count */
|
||||
MOV_L ( REGOFF(V4F_COUNT, ESI), ECX ) /* source count */
|
||||
|
||||
TEST_L ( ECX, ECX )
|
||||
JZ( LLBL(K_G3TRNNRR_finish) ) /* count was zero; go to finish */
|
||||
|
||||
MOV_L ( STRIDE, EAX ) /* stride */
|
||||
MOV_L ( ECX, REGOFF(V3F_COUNT, EDI) ) /* set dest-count */
|
||||
MOV_L ( ECX, REGOFF(V4F_COUNT, EDI) ) /* set dest-count */
|
||||
|
||||
IMUL_L( CONST(16), ECX ) /* count *= 16 */
|
||||
MOV_L( REGOFF(V3F_START, ESI), ESI ) /* ptr to first source vertex */
|
||||
MOV_L( REGOFF(V4F_START, ESI), ESI ) /* ptr to first source vertex */
|
||||
|
||||
MOV_L( REGOFF(V3F_START, EDI), EDI ) /* ptr to first dest vertex */
|
||||
MOV_L( REGOFF(V4F_START, EDI), EDI ) /* ptr to first dest vertex */
|
||||
ADD_L( EDI, ECX ) /* count += dest ptr */
|
||||
|
||||
ALIGNTEXT32
|
||||
|
@ -117,18 +117,18 @@ GLNAME(_mesa_sse_transform_rescale_normals):
|
|||
MOV_L ( ARG_MAT, EDX ) /* ptr to matrix */
|
||||
MOV_L ( REGOFF(MATRIX_INV, EDX), EDX) /* matrix->inv */
|
||||
|
||||
MOV_L ( REGOFF(V3F_COUNT, ESI), ECX ) /* source count */
|
||||
MOV_L ( REGOFF(V4F_COUNT, ESI), ECX ) /* source count */
|
||||
|
||||
TEST_L ( ECX, ECX )
|
||||
JZ( LLBL(K_G3TRNR_finish) ) /* count was zero; go to finish */
|
||||
|
||||
MOV_L ( STRIDE, EAX ) /* stride */
|
||||
MOV_L ( ECX, REGOFF(V3F_COUNT, EDI) ) /* set dest-count */
|
||||
MOV_L ( ECX, REGOFF(V4F_COUNT, EDI) ) /* set dest-count */
|
||||
|
||||
IMUL_L( CONST(16), ECX ) /* count *= 16 */
|
||||
MOV_L( REGOFF(V3F_START, ESI), ESI ) /* ptr to first source vertex */
|
||||
MOV_L( REGOFF(V4F_START, ESI), ESI ) /* ptr to first source vertex */
|
||||
|
||||
MOV_L( REGOFF(V3F_START, EDI), EDI ) /* ptr to first dest vertex */
|
||||
MOV_L( REGOFF(V4F_START, EDI), EDI ) /* ptr to first dest vertex */
|
||||
ADD_L( EDI, ECX ) /* count += dest ptr */
|
||||
|
||||
ALIGNTEXT32
|
||||
|
@ -209,18 +209,18 @@ GLNAME(_mesa_sse_transform_normals_no_rot):
|
|||
MOV_L ( ARG_MAT, EDX ) /* ptr to matrix */
|
||||
MOV_L ( REGOFF(MATRIX_INV, EDX), EDX) /* matrix->inv */
|
||||
|
||||
MOV_L ( REGOFF(V3F_COUNT, ESI), ECX ) /* source count */
|
||||
MOV_L ( REGOFF(V4F_COUNT, ESI), ECX ) /* source count */
|
||||
|
||||
TEST_L ( ECX, ECX )
|
||||
JZ( LLBL(K_G3TNNRR_finish) ) /* count was zero; go to finish */
|
||||
|
||||
MOV_L ( STRIDE, EAX ) /* stride */
|
||||
MOV_L ( ECX, REGOFF(V3F_COUNT, EDI) ) /* set dest-count */
|
||||
MOV_L ( ECX, REGOFF(V4F_COUNT, EDI) ) /* set dest-count */
|
||||
|
||||
IMUL_L( CONST(16), ECX ) /* count *= 16 */
|
||||
MOV_L( REGOFF(V3F_START, ESI), ESI ) /* ptr to first source vertex */
|
||||
MOV_L( REGOFF(V4F_START, ESI), ESI ) /* ptr to first source vertex */
|
||||
|
||||
MOV_L( REGOFF(V3F_START, EDI), EDI ) /* ptr to first dest vertex */
|
||||
MOV_L( REGOFF(V4F_START, EDI), EDI ) /* ptr to first dest vertex */
|
||||
ADD_L( EDI, ECX ) /* count += dest ptr */
|
||||
|
||||
ALIGNTEXT32
|
||||
|
|
Loading…
Reference in New Issue