Changeset 3598 for trunk/src/opengl/mesa/3dfx/fxstripdet.c
- Timestamp:
- May 23, 2000, 10:41:28 PM (25 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/opengl/mesa/3dfx/fxstripdet.c
r2938 r3598 3 3 /* 4 4 * Mesa 3-D graphics library 5 * Version: 3. 15 * Version: 3.3 6 6 * 7 7 * Copyright (C) 1999 Brian Paul All Rights Reserved. … … 52 52 #include "vbcull.h" 53 53 54 55 #define STRIP0(u,v) ((u1 == v1) && (u2 == v0))56 #define STRIP1(u,v) ((u0 == v0) && (u2 == v1))57 54 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)) 62 57 63 #define INIT(a) 58 #define LOCAL_VARS fxVertex* gWin = FX_DRIVER_DATA(VB)->verts; \ 59 GrVertex** sb = FX_DRIVER_DATA(VB)->strips_b; 64 60 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; 70 62 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) 74 64 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 76 76 77 77 #include "fxsdettmp.h" … … 79 79 80 80 /* Clipped but no userclip */ 81 #define STRIP0(u,v) ((u1 == v1) && (u2 == v0)) && !clipmask[v2]82 #define STRIP1(u,v) 81 #define STRIP0(u,v) ((u1 == v1) && (u2 == v0)) && !clipmask[v2] 82 #define STRIP1(u,v) ((u0 == v0) && (u2 == v1)) && !clipmask[v2] 83 83 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; 91 89 92 #define INIT(a)90 #define STRIPSLOCAL_VAR int sc = 0; 93 91 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) 99 93 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 109 109 110 110 #include "fxsdettmp.h" 111 111 112 112 /* Clipped and might be userclip */ 113 #define STRIP0(u,v) ((u1 == v1) && (u2 == v0)) && !clipmask[v2]114 #define STRIP1(u,v) 113 #define STRIP0(u,v) ((u1 == v1) && (u2 == v0)) && !clipmask[v2] 114 #define STRIP1(u,v) ((u0 == v0) && (u2 == v1)) && !clipmask[v2] 115 115 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; 124 122 125 #define INIT(a)123 #define STRIPSLOCAL_VAR int sc = 0; 126 124 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) 132 126 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 150 150 151 151 #include "fxsdettmp.h"
Note:
See TracChangeset
for help on using the changeset viewer.