#include "main/glheader.h"
#include "main/context.h"
#include "main/enums.h"
#include "main/macros.h"
#include "main/imports.h"
#include "main/mtypes.h"
#include "t_pipeline.h"
#include "t_vb_cliptmp.h"
#include "t_vb_rendertmp.h"
Defines | |
| #define | W(i) coord[i][3] |
| #define | Z(i) coord[i][2] |
| #define | Y(i) coord[i][1] |
| #define | X(i) coord[i][0] |
| #define | SIZE 4 |
| #define | TAG(x) x##_4 |
| #define | NEED_EDGEFLAG_SETUP (ctx->Polygon.FrontMode != GL_FILL || ctx->Polygon.BackMode != GL_FILL) |
| #define | EDGEFLAG_GET(idx) VB->EdgeFlag[idx] |
| #define | EDGEFLAG_SET(idx, val) VB->EdgeFlag[idx] = val |
| #define | CLIPMASK (CLIP_FRUSTUM_BITS | CLIP_CULL_BIT) |
| #define | RENDER_POINTS(start, count) tnl->Driver.Render.Points( ctx, start, count ) |
| #define | RENDER_LINE(v1, v2) |
| #define | RENDER_TRI(v1, v2, v3) |
| #define | RENDER_QUAD(v1, v2, v3, v4) |
| #define | LOCAL_VARS |
| #define | TAG(x) clip_##x##_verts |
| #define | INIT(x) tnl->Driver.Render.PrimitiveNotify( ctx, x ) |
| #define | RESET_STIPPLE if (stipple) tnl->Driver.Render.ResetLineStipple( ctx ) |
| #define | PRESERVE_VB_DEFS |
| #define | ELT(x) elt[x] |
| #define | TAG(x) clip_##x##_elts |
| #define | NEED_EDGEFLAG_SETUP (ctx->Polygon.FrontMode != GL_FILL || ctx->Polygon.BackMode != GL_FILL) |
| #define | EDGEFLAG_GET(idx) VB->EdgeFlag[idx] |
| #define | EDGEFLAG_SET(idx, val) VB->EdgeFlag[idx] = val |
| #define | RENDER_POINTS(start, count) tnl->Driver.Render.Points( ctx, start, count ) |
| #define | RENDER_LINE(v1, v2) LineFunc( ctx, v1, v2 ) |
| #define | RENDER_TRI(v1, v2, v3) TriangleFunc( ctx, v1, v2, v3 ) |
| #define | RENDER_QUAD(v1, v2, v3, v4) QuadFunc( ctx, v1, v2, v3, v4 ) |
| #define | TAG(x) _tnl_##x##_verts |
| #define | LOCAL_VARS |
| #define | RESET_STIPPLE if (stipple) tnl->Driver.Render.ResetLineStipple( ctx ) |
| #define | INIT(x) tnl->Driver.Render.PrimitiveNotify( ctx, x ) |
| #define | RENDER_TAB_QUALIFIER |
| #define | PRESERVE_VB_DEFS |
| #define | TAG(x) _tnl_##x##_elts |
| #define | ELT(x) elt[x] |
Functions | |
| static void | clip_elt_triangles (GLcontext *ctx, GLuint start, GLuint count, GLuint flags) |
| void | _tnl_RenderClippedPolygon (GLcontext *ctx, const GLuint *elts, GLuint n) |
| void | _tnl_RenderClippedLine (GLcontext *ctx, GLuint ii, GLuint jj) |
| static GLboolean | run_render (GLcontext *ctx, struct tnl_pipeline_stage *stage) |
Variables | |
| struct tnl_pipeline_stage | _tnl_render_stage |
| #define CLIPMASK (CLIP_FRUSTUM_BITS | CLIP_CULL_BIT) |
| #define EDGEFLAG_GET | ( | idx | ) | VB->EdgeFlag[idx] |
| #define EDGEFLAG_GET | ( | idx | ) | VB->EdgeFlag[idx] |
| #define EDGEFLAG_SET | ( | idx, | |||
| val | ) | VB->EdgeFlag[idx] = val |
| #define EDGEFLAG_SET | ( | idx, | |||
| val | ) | VB->EdgeFlag[idx] = val |
| #define ELT | ( | x | ) | elt[x] |
| #define ELT | ( | x | ) | elt[x] |
| #define INIT | ( | x | ) | tnl->Driver.Render.PrimitiveNotify( ctx, x ) |
| #define INIT | ( | x | ) | tnl->Driver.Render.PrimitiveNotify( ctx, x ) |
| #define LOCAL_VARS |
Value:
TNLcontext *tnl = TNL_CONTEXT(ctx); \ struct vertex_buffer *VB = &tnl->vb; \ const GLuint * const elt = VB->Elts; \ const tnl_line_func LineFunc = tnl->Driver.Render.Line; \ const tnl_triangle_func TriangleFunc = tnl->Driver.Render.Triangle; \ const tnl_quad_func QuadFunc = tnl->Driver.Render.Quad; \ const GLboolean stipple = ctx->Line.StippleFlag; \ (void) (LineFunc && TriangleFunc && QuadFunc); \ (void) elt; (void) stipple
| #define LOCAL_VARS |
Value:
TNLcontext *tnl = TNL_CONTEXT(ctx); \ struct vertex_buffer *VB = &tnl->vb; \ const GLuint * const elt = VB->Elts; \ const GLubyte *mask = VB->ClipMask; \ const GLuint sz = VB->ClipPtr->size; \ const tnl_line_func LineFunc = tnl->Driver.Render.Line; \ const tnl_triangle_func TriangleFunc = tnl->Driver.Render.Triangle; \ const tnl_quad_func QuadFunc = tnl->Driver.Render.Quad; \ const GLboolean stipple = ctx->Line.StippleFlag; \ (void) (LineFunc && TriangleFunc && QuadFunc); \ (void) elt; (void) mask; (void) sz; (void) stipple;
| #define NEED_EDGEFLAG_SETUP (ctx->Polygon.FrontMode != GL_FILL || ctx->Polygon.BackMode != GL_FILL) |
| #define NEED_EDGEFLAG_SETUP (ctx->Polygon.FrontMode != GL_FILL || ctx->Polygon.BackMode != GL_FILL) |
| #define PRESERVE_VB_DEFS |
| #define PRESERVE_VB_DEFS |
| #define RENDER_LINE | ( | v1, | |||
| v2 | ) | LineFunc( ctx, v1, v2 ) |
| #define RENDER_LINE | ( | v1, | |||
| v2 | ) |
| #define RENDER_POINTS | ( | start, | |||
| count | ) | tnl->Driver.Render.Points( ctx, start, count ) |
| #define RENDER_POINTS | ( | start, | |||
| count | ) | tnl->Driver.Render.Points( ctx, start, count ) |
| #define RENDER_QUAD | ( | v1, | |||
| v2, | |||||
| v3, | |||||
| v4 | ) | QuadFunc( ctx, v1, v2, v3, v4 ) |
| #define RENDER_QUAD | ( | v1, | |||
| v2, | |||||
| v3, | |||||
| v4 | ) |
| #define RENDER_TAB_QUALIFIER |
| #define RENDER_TRI | ( | v1, | |||
| v2, | |||||
| v3 | ) | TriangleFunc( ctx, v1, v2, v3 ) |
| #define RENDER_TRI | ( | v1, | |||
| v2, | |||||
| v3 | ) |
| #define RESET_STIPPLE if (stipple) tnl->Driver.Render.ResetLineStipple( ctx ) |
| #define RESET_STIPPLE if (stipple) tnl->Driver.Render.ResetLineStipple( ctx ) |
| #define SIZE 4 |
| #define TAG | ( | x | ) | _tnl_##x##_elts |
| #define TAG | ( | x | ) | _tnl_##x##_verts |
| #define TAG | ( | x | ) | clip_##x##_elts |
| #define TAG | ( | x | ) | clip_##x##_verts |
| #define TAG | ( | x | ) | x##_4 |
| #define W | ( | i | ) | coord[i][3] |
| #define X | ( | i | ) | coord[i][0] |
| #define Y | ( | i | ) | coord[i][1] |
| #define Z | ( | i | ) | coord[i][2] |
| void _tnl_RenderClippedLine | ( | GLcontext * | ctx, | |
| GLuint | ii, | |||
| GLuint | jj | |||
| ) |
| void _tnl_RenderClippedPolygon | ( | GLcontext * | ctx, | |
| const GLuint * | elts, | |||
| GLuint | n | |||
| ) |
| static void clip_elt_triangles | ( | GLcontext * | ctx, | |
| GLuint | start, | |||
| GLuint | count, | |||
| GLuint | flags | |||
| ) | [static] |
| static GLboolean run_render | ( | GLcontext * | ctx, | |
| struct tnl_pipeline_stage * | stage | |||
| ) | [static] |
Initial value:
{
"render",
NULL,
NULL,
NULL,
NULL,
run_render
}
1.5.4