📄 ffb_rendertmp.h
字号:
__FUNCTION__, start, count, flags);#endif ffbRenderPrimitive(ctx, GL_TRIANGLE_STRIP); i = start + 2; goto something_clipped; something_clipped: for (; i < count; i++, parity ^= 1) { ffb_vertex *v0 = &fmesa->verts[ELT(i - 2 + parity)]; ffb_vertex *v1 = &fmesa->verts[ELT(i - 1 - parity)]; ffb_vertex *v2 = &fmesa->verts[ELT(i - 0)]; FFB_AREA_DECLARE FFB_COMPUTE_AREA_TRI(v0, v1, v2); FFB_CULL_TRI(continue;); FFBFifo(fmesa, (FFB_PRIM_COLOR_COST + (FFB_VERTEX_COLOR_COST * 3) + 9)); FFB_SET_PRIM_COLOR(v2); FFB_SET_VERTEX_COLOR(v0); ffb->z = FFB_GET_Z(v0); ffb->ryf = FFB_GET_Y(v0); ffb->rxf = FFB_GET_X(v0); FFB_SET_VERTEX_COLOR(v1); ffb->z = FFB_GET_Z(v1); ffb->y = FFB_GET_Y(v1); ffb->x = FFB_GET_X(v1); FFB_SET_VERTEX_COLOR(v2); ffb->z = FFB_GET_Z(v2); ffb->y = FFB_GET_Y(v2); ffb->x = FFB_GET_X(v2); i++; parity ^= 1; break; } for (; i < count; i++, parity ^= 1) { ffb_vertex *v0 = &fmesa->verts[ELT(i - 2 + parity)]; ffb_vertex *v1 = &fmesa->verts[ELT(i - 1 - parity)]; ffb_vertex *v2 = &fmesa->verts[ELT(i - 0)]; FFB_AREA_DECLARE (void) v0; (void) v1; FFB_COMPUTE_AREA_TRI(v0, v1, v2); FFB_CULL_TRI(i++; parity^=1; goto something_clipped;); FFBFifo(fmesa, (FFB_PRIM_COLOR_COST + (FFB_VERTEX_COLOR_COST * 1) + 3)); FFB_SET_PRIM_COLOR(v2); FFB_SET_VERTEX_COLOR(v2); ffb->z = FFB_GET_Z(v2); ffb->y = FFB_GET_Y(v2); ffb->x = FFB_GET_X(v2); } fmesa->ffbScreen->rp_active = 1;}static void TAG(ffb_vb_tri_fan)(GLcontext *ctx, GLuint start, GLuint count, GLuint flags){ GLint i; IMPL_LOCAL_VARS;#ifdef FFB_RENDER_TRACE fprintf(stderr, "%s: start(%d) count(%d) flags(%x)\n", __FUNCTION__, start, count, flags);#endif ffbRenderPrimitive(ctx, GL_TRIANGLE_FAN); i = start + 2; goto something_clipped; something_clipped: for ( ; i < count; i++) { ffb_vertex *v0 = &fmesa->verts[ELT(start)]; ffb_vertex *v1 = &fmesa->verts[ELT(i - 1)]; ffb_vertex *v2 = &fmesa->verts[ELT(i - 0)]; FFB_AREA_DECLARE FFB_COMPUTE_AREA_TRI(v0, v1, v2); FFB_CULL_TRI(continue;); FFBFifo(fmesa, (FFB_PRIM_COLOR_COST + (FFB_VERTEX_COLOR_COST * 3) + 9)); FFB_SET_PRIM_COLOR(v2); FFB_SET_VERTEX_COLOR(v0); ffb->z = FFB_GET_Z(v0); ffb->ryf = FFB_GET_Y(v0); ffb->rxf = FFB_GET_X(v0); FFB_SET_VERTEX_COLOR(v1); ffb->z = FFB_GET_Z(v1); ffb->y = FFB_GET_Y(v1); ffb->x = FFB_GET_X(v1); FFB_SET_VERTEX_COLOR(v2); ffb->z = FFB_GET_Z(v2); ffb->y = FFB_GET_Y(v2); ffb->x = FFB_GET_X(v2); i++; break; } for (; i < count; i++) { ffb_vertex *v0 = &fmesa->verts[ELT(start)]; ffb_vertex *v1 = &fmesa->verts[ELT(i - 1)]; ffb_vertex *v2 = &fmesa->verts[ELT(i - 0)]; FFB_AREA_DECLARE (void) v0; (void) v1; FFB_COMPUTE_AREA_TRI(v0, v1, v2); FFB_CULL_TRI(i++; goto something_clipped;); FFBFifo(fmesa, (FFB_PRIM_COLOR_COST + (FFB_VERTEX_COLOR_COST * 1) + 3)); FFB_SET_PRIM_COLOR(v2); FFB_SET_VERTEX_COLOR(v2); ffb->z = FFB_GET_Z(v2); ffb->dmyf = FFB_GET_Y(v2); ffb->dmxf = FFB_GET_X(v2); } fmesa->ffbScreen->rp_active = 1;}static void TAG(ffb_vb_poly)(GLcontext *ctx, GLuint start, GLuint count, GLuint flags){ GLint i; IMPL_LOCAL_VARS;#ifdef FFB_RENDER_TRACE fprintf(stderr, "%s: start(%d) count(%d) flags(%x)\n", __FUNCTION__, start, count, flags);#endif ffbRenderPrimitive(ctx, GL_POLYGON); /* XXX Optimize XXX */ for (i = start + 2; i < count; i++) { ffb_vertex *v0 = &fmesa->verts[ELT(i - 1)]; ffb_vertex *v1 = &fmesa->verts[ELT(i)]; ffb_vertex *v2 = &fmesa->verts[ELT(start)]; FFB_AREA_DECLARE FFB_COMPUTE_AREA_TRI(v0, v1, v2); FFB_CULL_TRI(continue;); FFBFifo(fmesa, (FFB_PRIM_COLOR_COST + (FFB_VERTEX_COLOR_COST * 3) + 9)); FFB_SET_PRIM_COLOR(v2); FFB_SET_VERTEX_COLOR(v0); ffb->z = FFB_GET_Z(v0); ffb->ryf = FFB_GET_Y(v0); ffb->rxf = FFB_GET_X(v0); FFB_SET_VERTEX_COLOR(v1); ffb->z = FFB_GET_Z(v1); ffb->y = FFB_GET_Y(v1); ffb->x = FFB_GET_X(v1); FFB_SET_VERTEX_COLOR(v2); ffb->z = FFB_GET_Z(v2); ffb->y = FFB_GET_Y(v2); ffb->x = FFB_GET_X(v2); } fmesa->ffbScreen->rp_active = 1;}static void TAG(ffb_vb_quads)(GLcontext *ctx, GLuint start, GLuint count, GLuint flags){ GLint i; IMPL_LOCAL_VARS;#ifdef FFB_RENDER_TRACE fprintf(stderr, "%s: start(%d) count(%d) flags(%x)\n", __FUNCTION__, start, count, flags);#endif ffbRenderPrimitive(ctx, GL_QUADS); for (i = start + 3; i < count; i += 4) { ffb_vertex *v0 = &fmesa->verts[ELT(i - 3)]; ffb_vertex *v1 = &fmesa->verts[ELT(i - 2)]; ffb_vertex *v2 = &fmesa->verts[ELT(i - 1)]; ffb_vertex *v3 = &fmesa->verts[ELT(i - 0)]; FFB_AREA_DECLARE FFB_COMPUTE_AREA_QUAD(v0, v1, v2, v3); FFB_CULL_QUAD(continue;); FFBFifo(fmesa, (FFB_PRIM_COLOR_COST + (FFB_VERTEX_COLOR_COST * 4) + 12)); FFB_SET_PRIM_COLOR(v3); FFB_SET_VERTEX_COLOR(v0); ffb->z = FFB_GET_Z(v0); ffb->ryf = FFB_GET_Y(v0); ffb->rxf = FFB_GET_X(v0); FFB_SET_VERTEX_COLOR(v1); ffb->z = FFB_GET_Z(v1); ffb->y = FFB_GET_Y(v1); ffb->x = FFB_GET_X(v1); FFB_SET_VERTEX_COLOR(v2); ffb->z = FFB_GET_Z(v2); ffb->y = FFB_GET_Y(v2); ffb->x = FFB_GET_X(v2); FFB_SET_VERTEX_COLOR(v3); ffb->z = FFB_GET_Z(v3); ffb->dmyf = FFB_GET_Y(v3); ffb->dmxf = FFB_GET_X(v3); } fmesa->ffbScreen->rp_active = 1;}static void TAG(ffb_vb_quad_strip)(GLcontext *ctx, GLuint start, GLuint count, GLuint flags){ GLint i; IMPL_LOCAL_VARS;#ifdef FFB_RENDER_TRACE fprintf(stderr, "%s: start(%d) count(%d) flags(%x)\n", __FUNCTION__, start, count, flags);#endif ffbRenderPrimitive(ctx, GL_QUAD_STRIP); /* XXX Optimize XXX */ for (i = start + 3; i < count; i += 2) { ffb_vertex *v0 = &fmesa->verts[ELT(i - 1)]; ffb_vertex *v1 = &fmesa->verts[ELT(i - 3)]; ffb_vertex *v2 = &fmesa->verts[ELT(i - 2)]; ffb_vertex *v3 = &fmesa->verts[ELT(i - 0)]; FFB_AREA_DECLARE FFB_COMPUTE_AREA_QUAD(v0, v1, v2, v3); FFB_CULL_QUAD(continue;); FFBFifo(fmesa, (FFB_PRIM_COLOR_COST + (FFB_VERTEX_COLOR_COST * 4) + 12)); FFB_SET_PRIM_COLOR(v3); FFB_DUMP_VERTEX(v0); FFB_SET_VERTEX_COLOR(v0); ffb->z = FFB_GET_Z(v0); ffb->ryf = FFB_GET_Y(v0); ffb->rxf = FFB_GET_X(v0); FFB_DUMP_VERTEX(v1); FFB_SET_VERTEX_COLOR(v1); ffb->z = FFB_GET_Z(v1); ffb->y = FFB_GET_Y(v1); ffb->x = FFB_GET_X(v1); FFB_DUMP_VERTEX(v2); FFB_SET_VERTEX_COLOR(v2); ffb->z = FFB_GET_Z(v2); ffb->y = FFB_GET_Y(v2); ffb->x = FFB_GET_X(v2); FFB_DUMP_VERTEX(v3); FFB_SET_VERTEX_COLOR(v3); ffb->z = FFB_GET_Z(v3); ffb->dmyf = FFB_GET_Y(v3); ffb->dmxf = FFB_GET_X(v3); } fmesa->ffbScreen->rp_active = 1;}static void (*TAG(render_tab)[GL_POLYGON + 2])(GLcontext *, GLuint, GLuint, GLuint) ={#if !(IND & (FFB_TRI_CULL_BIT)) TAG(ffb_vb_points), TAG(ffb_vb_lines), TAG(ffb_vb_line_loop), TAG(ffb_vb_line_strip),#else NULL, NULL, NULL, NULL,#endif TAG(ffb_vb_triangles), TAG(ffb_vb_tri_strip), TAG(ffb_vb_tri_fan), TAG(ffb_vb_quads), TAG(ffb_vb_quad_strip), TAG(ffb_vb_poly), ffb_vb_noop,};#undef IND#undef TAG#undef IMPL_LOCAL_VARS#undef FFB_DECLARE_CACHED_COLOR#undef FFB_COMPUTE_CACHED_COLOR#undef FFB_CACHED_COLOR_SAME#undef FFB_CACHED_COLOR_SET#undef FFB_CACHED_COLOR_UPDATE#undef FFB_SET_PRIM_COLOR#undef FFB_PRIM_COLOR_COST#undef FFB_SET_VERTEX_COLOR#undef FFB_VERTEX_COLOR_COST#undef RESET_STIPPLE#undef FFB_AREA_DECLARE#undef FFB_COMPUTE_AREA_TRI#undef FFB_COMPUTE_AREA_QUAD#undef FFB_CULL_TRI#undef FFB_CULL_QUAD
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -