Ignore:
Timestamp:
May 23, 2000, 10:41:28 PM (25 years ago)
Author:
jeroen
Message:

* empty log message *

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/opengl/mesa/3dfx/fxstripdet.c

    r2938 r3598  
    33/*
    44 * Mesa 3-D graphics library
    5  * Version:  3.1
     5 * Version:  3.3
    66 *
    77 * Copyright (C) 1999  Brian Paul   All Rights Reserved.
     
    5252#include "vbcull.h"
    5353
    54  
    55 #define STRIP0(u,v)             ((u1 == v1) && (u2 == v0))     
    56 #define STRIP1(u,v)             ((u0 == v0) && (u2 == v1))
    5754
    58 #define LOCAL_VARS              fxVertex* gWin = FX_DRIVER_DATA(VB)->verts;     \
    59                                 GrVertex** sb = FX_DRIVER_DATA(VB)->strips_b;   
    60                                
    61 #define STRIPSLOCAL_VAR         int sc         = 0;
     55#define STRIP0(u,v)             ((u1 == v1) && (u2 == v0))
     56#define STRIP1(u,v)             ((u0 == v0) && (u2 == v1))
    6257
    63 #define INIT(a)                 
     58#define LOCAL_VARS              fxVertex* gWin = FX_DRIVER_DATA(VB)->verts;     \
     59                                GrVertex** sb = FX_DRIVER_DATA(VB)->strips_b;
    6460
    65 #define SENDTRI(u0,u1,u2)       FX_grDrawTriangle((GrVertex*)&(gWin[u0].f),(GrVertex*)&(gWin[u1].f),(GrVertex*)&(gWin[u2].f))
    66 #define FLUSHTRI()              /* No-Op */
    67 #define STARTSTRIPS(u0,u1,u2)   { sb[sc++] = (GrVertex*)&(gWin[u0].f); sb[sc++] = (GrVertex*)&(gWin[u1].f); sb[sc++] = (GrVertex*)&(gWin[u2].f); }
    68 #define SENDSTRIPS(v2)          { sb[sc++] = (GrVertex*)&(gWin[v2].f); }
    69 #define FLUSHSTRIPS()           FX_grDrawVertexArray(GR_TRIANGLE_STRIP,sc,sb)
     61#define STRIPSLOCAL_VAR         int sc         = 0;
    7062
    71 #define CLIPPED(a,b,c)          0
    72 #define CULLED(a,b,c)           0
    73 #define SENDCLIPTRI(a,b,c)      /* NoOp */             
     63#define INIT(a)
    7464
    75 #define TAG(x)                  x##_fx
     65#define SENDTRI(u0,u1,u2)       FX_grDrawTriangle((GrVertex*)&(gWin[u0].f),(GrVertex*)&(gWin[u1].f),(GrVertex*)&(gWin[u2].f))
     66#define FLUSHTRI()              /* No-Op */
     67#define STARTSTRIPS(u0,u1,u2)   { sb[sc++] = (GrVertex*)&(gWin[u0].f); sb[sc++] = (GrVertex*)&(gWin[u1].f); sb[sc++] = (GrVertex*)&(gWin[u2].f); }
     68#define SENDSTRIPS(v2)          { sb[sc++] = (GrVertex*)&(gWin[v2].f); }
     69#define FLUSHSTRIPS()           FX_grDrawVertexArray(GR_TRIANGLE_STRIP,sc,sb)
     70
     71#define CLIPPED(a,b,c)          0
     72#define CULLED(a,b,c)           0
     73#define SENDCLIPTRI(a,b,c)      /* NoOp */
     74
     75#define TAG(x)                  x##_fx
    7676
    7777#include "fxsdettmp.h"
     
    7979
    8080/* Clipped but no userclip */
    81 #define STRIP0(u,v)             ((u1 == v1) && (u2 == v0)) && !clipmask[v2]     
    82 #define STRIP1(u,v)             ((u0 == v0) && (u2 == v1)) && !clipmask[v2]
     81#define STRIP0(u,v)             ((u1 == v1) && (u2 == v0)) && !clipmask[v2]
     82#define STRIP1(u,v)             ((u0 == v0) && (u2 == v1)) && !clipmask[v2]
    8383
    84 #define LOCAL_VARS              fxVertex* gWin = FX_DRIVER_DATA(VB)->verts;                     \
    85                                 GrVertex** sb = FX_DRIVER_DATA(VB)->strips_b;                   \
    86                                 const GLubyte *const clipmask = VB->ClipMask;                           \
    87                                 const fxMesaContext fxMesa=(fxMesaContext)VB->ctx->DriverCtx;   \
    88                                 const tfxTriClipFunc cliptri = fxMesa->clip_tri_stride;
    89                                
    90 #define STRIPSLOCAL_VAR         int sc         = 0;
     84#define LOCAL_VARS              fxVertex* gWin = FX_DRIVER_DATA(VB)->verts;                     \
     85                                GrVertex** sb = FX_DRIVER_DATA(VB)->strips_b;                   \
     86                                const GLubyte *const clipmask = VB->ClipMask;                           \
     87                                const fxMesaContext fxMesa=(fxMesaContext)VB->ctx->DriverCtx;   \
     88                                const tfxTriClipFunc cliptri = fxMesa->clip_tri_stride;
    9189
    92 #define INIT(a)                 
     90#define STRIPSLOCAL_VAR         int sc         = 0;
    9391
    94 #define SENDTRI(u0,u1,u2)       FX_grDrawTriangle((GrVertex*)&(gWin[u0].f),(GrVertex*)&(gWin[u1].f),(GrVertex*)&(gWin[u2].f))
    95 #define FLUSHTRI()              /* No-Op */
    96 #define STARTSTRIPS(u0,u1,u2)   { sb[sc++] = (GrVertex*)&(gWin[u0].f); sb[sc++] = (GrVertex*)&(gWin[u1].f); sb[sc++] = (GrVertex*)&(gWin[u2].f); }
    97 #define SENDSTRIPS(v2)          { sb[sc++] = (GrVertex*)&(gWin[v2].f); }
    98 #define FLUSHSTRIPS()           FX_grDrawVertexArray(GR_TRIANGLE_STRIP,sc,sb)
     92#define INIT(a)
    9993
    100 #define CLIPPED(u0,u1,u2)       (clipmask[u0] | clipmask[u1] | clipmask[u2])
    101 #define CULLED(u0,u1,u2)        (clipmask[u0] & clipmask[u1] & clipmask[u2])
    102 #define SENDCLIPTRI(u0,u1,u2)   {                                                                       \
    103                                    GLuint vl[3];                                                        \
    104                                    ASSIGN_3V(vl, u0, u1, u2 );                                          \
    105                                    cliptri(VB,vl,clipmask[u0] | clipmask[u1] | clipmask[u2]);           \
    106                                 }
    107  
    108 #define TAG(x)                  x##_fx_view_clipped
     94#define SENDTRI(u0,u1,u2)       FX_grDrawTriangle((GrVertex*)&(gWin[u0].f),(GrVertex*)&(gWin[u1].f),(GrVertex*)&(gWin[u2].f))
     95#define FLUSHTRI()              /* No-Op */
     96#define STARTSTRIPS(u0,u1,u2)   { sb[sc++] = (GrVertex*)&(gWin[u0].f); sb[sc++] = (GrVertex*)&(gWin[u1].f); sb[sc++] = (GrVertex*)&(gWin[u2].f); }
     97#define SENDSTRIPS(v2)          { sb[sc++] = (GrVertex*)&(gWin[v2].f); }
     98#define FLUSHSTRIPS()           FX_grDrawVertexArray(GR_TRIANGLE_STRIP,sc,sb)
     99
     100#define CLIPPED(u0,u1,u2)       (clipmask[u0] | clipmask[u1] | clipmask[u2])
     101#define CULLED(u0,u1,u2)        (clipmask[u0] & clipmask[u1] & clipmask[u2])
     102#define SENDCLIPTRI(u0,u1,u2)   {                                                                       \
     103                                   GLuint vl[3];                                                        \
     104                                   ASSIGN_3V(vl, u0, u1, u2 );                                          \
     105                                   cliptri(VB,vl,clipmask[u0] | clipmask[u1] | clipmask[u2]);           \
     106                                }
     107
     108#define TAG(x)                  x##_fx_view_clipped
    109109
    110110#include "fxsdettmp.h"
    111111
    112112/* Clipped and might be userclip */
    113 #define STRIP0(u,v)             ((u1 == v1) && (u2 == v0)) && !clipmask[v2]     
    114 #define STRIP1(u,v)             ((u0 == v0) && (u2 == v1)) && !clipmask[v2]
     113#define STRIP0(u,v)             ((u1 == v1) && (u2 == v0)) && !clipmask[v2]
     114#define STRIP1(u,v)             ((u0 == v0) && (u2 == v1)) && !clipmask[v2]
    115115
    116 #define LOCAL_VARS              fxVertex* gWin = FX_DRIVER_DATA(VB)->verts;                     \
    117                                 GrVertex** sb = FX_DRIVER_DATA(VB)->strips_b;                   \
    118                                 const GLubyte *const clipmask = VB->ClipMask;                   \
    119                                 const GLubyte *userclipmask = VB->UserClipMask;                 \
    120                                 const fxMesaContext fxMesa=(fxMesaContext)VB->ctx->DriverCtx;   \
    121                                 const tfxTriClipFunc cliptri = fxMesa->clip_tri_stride;
    122                                
    123 #define STRIPSLOCAL_VAR         int sc         = 0;
     116#define LOCAL_VARS              fxVertex* gWin = FX_DRIVER_DATA(VB)->verts;                     \
     117                                GrVertex** sb = FX_DRIVER_DATA(VB)->strips_b;                   \
     118                                const GLubyte *const clipmask = VB->ClipMask;                   \
     119                                const GLubyte *userclipmask = VB->UserClipMask;                 \
     120                                const fxMesaContext fxMesa=(fxMesaContext)VB->ctx->DriverCtx;   \
     121                                const tfxTriClipFunc cliptri = fxMesa->clip_tri_stride;
    124122
    125 #define INIT(a)                 
     123#define STRIPSLOCAL_VAR         int sc         = 0;
    126124
    127 #define SENDTRI(u0,u1,u2)       FX_grDrawTriangle((GrVertex*)&(gWin[u0].f),(GrVertex*)&(gWin[u1].f),(GrVertex*)&(gWin[u2].f))
    128 #define FLUSHTRI()              /* No-Op */
    129 #define STARTSTRIPS(u0,u1,u2)   { sb[sc++] = (GrVertex*)&(gWin[u0].f); sb[sc++] = (GrVertex*)&(gWin[u1].f); sb[sc++] = (GrVertex*)&(gWin[u2].f); }
    130 #define SENDSTRIPS(v2)          { sb[sc++] = (GrVertex*)&(gWin[v2].f); }
    131 #define FLUSHSTRIPS()           FX_grDrawVertexArray(GR_TRIANGLE_STRIP,sc,sb)
     125#define INIT(a)
    132126
    133 #define CLIPPED(u0,u1,u2)       (clipmask[u0] | clipmask[u1] | clipmask[u2])
    134 #define CULLED(u0,u1,u2)        (clipmask[u0] & clipmask[u1] & clipmask[u2] & CLIP_ALL_BITS)
    135 #define SENDCLIPTRI(u0,u1,u2)   {                                                                                         \
    136                                         GLuint vl[3];                                                                     \
    137                                         GLuint imask = (clipmask[u0] | clipmask[u1] | clipmask[u2]);                      \
    138                                                                                                                           \
    139                                         if (imask & CLIP_USER_BIT) {                                                      \
    140                                                 if (!(userclipmask[u2] & userclipmask[u1] & userclipmask[u0]))            \
    141                                                 { ASSIGN_3V(vl, u2, u1, u0 );                                             \
    142                                                   imask |= (userclipmask[u2] | userclipmask[u1] | userclipmask[u0]) << 8; \
    143                                                    cliptri( VB, vl, imask );}                                             \
    144                                         }                                                                                 \
    145                                         else { ASSIGN_3V(vl, u2, u1, u0 );                                                \
    146                                             cliptri( VB, vl, imask );   }                                                 \
    147                                 }
    148  
    149 #define TAG(x)                  x##_fx_clipped
     127#define SENDTRI(u0,u1,u2)       FX_grDrawTriangle((GrVertex*)&(gWin[u0].f),(GrVertex*)&(gWin[u1].f),(GrVertex*)&(gWin[u2].f))
     128#define FLUSHTRI()              /* No-Op */
     129#define STARTSTRIPS(u0,u1,u2)   { sb[sc++] = (GrVertex*)&(gWin[u0].f); sb[sc++] = (GrVertex*)&(gWin[u1].f); sb[sc++] = (GrVertex*)&(gWin[u2].f); }
     130#define SENDSTRIPS(v2)          { sb[sc++] = (GrVertex*)&(gWin[v2].f); }
     131#define FLUSHSTRIPS()           FX_grDrawVertexArray(GR_TRIANGLE_STRIP,sc,sb)
     132
     133#define CLIPPED(u0,u1,u2)       (clipmask[u0] | clipmask[u1] | clipmask[u2])
     134#define CULLED(u0,u1,u2)        (clipmask[u0] & clipmask[u1] & clipmask[u2] & CLIP_ALL_BITS)
     135#define SENDCLIPTRI(u0,u1,u2)   {                                                                                         \
     136                                        GLuint vl[3];                                                                     \
     137                                        GLuint imask = (clipmask[u0] | clipmask[u1] | clipmask[u2]);                      \
     138                                                                                                                          \
     139                                        if (imask & CLIP_USER_BIT) {                                                      \
     140                                                if (!(userclipmask[u2] & userclipmask[u1] & userclipmask[u0]))            \
     141                                                { ASSIGN_3V(vl, u2, u1, u0 );                                             \
     142                                                  imask |= (userclipmask[u2] | userclipmask[u1] | userclipmask[u0]) << 8; \
     143                                                   cliptri( VB, vl, imask );}                                             \
     144                                        }                                                                                 \
     145                                        else { ASSIGN_3V(vl, u2, u1, u0 );                                                \
     146                                            cliptri( VB, vl, imask );   }                                                 \
     147                                }
     148
     149#define TAG(x)                  x##_fx_clipped
    150150
    151151#include "fxsdettmp.h"
Note: See TracChangeset for help on using the changeset viewer.