#include "main/glheader.h"
#include "main/bitset.h"
#include "main/mtypes.h"
#include "math/m_matrix.h"
#include "math/m_vector.h"
#include "math/m_xform.h"
#include "vbo/vbo.h"
Data Structures | |
struct | vertex_buffer |
Contains the current state of a running pipeline. More... | |
struct | tnl_pipeline_stage |
Describes an individual operation on the pipeline. More... | |
struct | tnl_pipeline |
Contains the array of all pipeline stages. More... | |
struct | tnl_clipspace_attr |
Describes how to convert/move a vertex attribute from a vertex array to a vertex structure. More... | |
struct | tnl_attr_type |
struct | tnl_clipspace_fastpath |
struct | tnl_clipspace |
Used to describe conversion of vertex arrays to vertex structures. More... | |
struct | tnl_device_driver |
struct | TNLcontext |
Context state for T&L context. More... | |
Defines | |
#define | MAX_PIPELINE_STAGES 30 |
#define | _TNL_ATTRIB_TEX(u) (_TNL_ATTRIB_TEX0 + (u)) |
#define | _TNL_ATTRIB_GENERIC(n) (_TNL_ATTRIB_GENERIC0 + (n)) |
#define | _TNL_ATTRIB_ERROR (_TNL_ATTRIB_GENERIC15 + 1) |
#define | _TNL_FIRST_PROG _TNL_ATTRIB_WEIGHT |
Handy attribute ranges:. | |
#define | _TNL_LAST_PROG _TNL_ATTRIB_TEX7 |
#define | _TNL_FIRST_TEX _TNL_ATTRIB_TEX0 |
#define | _TNL_LAST_TEX _TNL_ATTRIB_TEX7 |
#define | _TNL_FIRST_GENERIC _TNL_ATTRIB_GENERIC0 |
#define | _TNL_LAST_GENERIC _TNL_ATTRIB_GENERIC15 |
#define | _TNL_FIRST_MAT _TNL_ATTRIB_MAT_FRONT_AMBIENT |
#define | _TNL_LAST_MAT _TNL_ATTRIB_MAT_BACK_INDEXES |
#define | _TNL_NUM_GENERIC 16 |
#define | _TNL_NUM_EVAL 16 |
#define | PRIM_BEGIN 0x10 |
#define | PRIM_END 0x20 |
#define | PRIM_MODE_MASK 0x0f |
#define | DECLARE_RENDERINPUTS(name) BITSET64_DECLARE(name, _TNL_ATTRIB_MAX) |
#define | RENDERINPUTS_COPY BITSET64_COPY |
#define | RENDERINPUTS_EQUAL BITSET64_EQUAL |
#define | RENDERINPUTS_ZERO BITSET64_ZERO |
#define | RENDERINPUTS_ONES BITSET64_ONES |
#define | RENDERINPUTS_TEST BITSET64_TEST |
#define | RENDERINPUTS_SET BITSET64_SET |
#define | RENDERINPUTS_CLEAR BITSET64_CLEAR |
#define | RENDERINPUTS_TEST_RANGE BITSET64_TEST_RANGE |
#define | RENDERINPUTS_SET_RANGE BITSET64_SET_RANGE |
#define | RENDERINPUTS_CLEAR_RANGE BITSET64_CLEAR_RANGE |
#define | TNL_CONTEXT(ctx) ((TNLcontext *)((ctx)->swtnl_context)) |
#define | TYPE_IDX(t) ((t) & 0xf) |
#define | MAX_TYPES TYPE_IDX(GL_DOUBLE)+1 |
Typedefs | |
typedef void(* | tnl_extract_func )(const struct tnl_clipspace_attr *a, GLfloat *out, const GLubyte *v) |
typedef void(* | tnl_insert_func )(const struct tnl_clipspace_attr *a, GLubyte *v, const GLfloat *in) |
typedef void(* | tnl_emit_func )(GLcontext *ctx, GLuint count, GLubyte *dest) |
typedef void(* | tnl_points_func )(GLcontext *ctx, GLuint first, GLuint last) |
typedef void(* | tnl_line_func )(GLcontext *ctx, GLuint v1, GLuint v2) |
typedef void(* | tnl_triangle_func )(GLcontext *ctx, GLuint v1, GLuint v2, GLuint v3) |
typedef void(* | tnl_quad_func )(GLcontext *ctx, GLuint v1, GLuint v2, GLuint v3, GLuint v4) |
typedef void(* | tnl_render_func )(GLcontext *ctx, GLuint start, GLuint count, GLuint flags) |
typedef void(* | tnl_interp_func )(GLcontext *ctx, GLfloat t, GLuint dst, GLuint out, GLuint in, GLboolean force_boundary) |
typedef void(* | tnl_copy_pv_func )(GLcontext *ctx, GLuint dst, GLuint src) |
typedef void(* | tnl_setup_func )(GLcontext *ctx, GLuint start, GLuint end, GLuint new_inputs) |
Enumerations | |
enum | { _TNL_ATTRIB_POS = 0, _TNL_ATTRIB_WEIGHT = 1, _TNL_ATTRIB_NORMAL = 2, _TNL_ATTRIB_COLOR0 = 3, _TNL_ATTRIB_COLOR1 = 4, _TNL_ATTRIB_FOG = 5, _TNL_ATTRIB_COLOR_INDEX = 6, _TNL_ATTRIB_EDGEFLAG = 7, _TNL_ATTRIB_TEX0 = 8, _TNL_ATTRIB_TEX1 = 9, _TNL_ATTRIB_TEX2 = 10, _TNL_ATTRIB_TEX3 = 11, _TNL_ATTRIB_TEX4 = 12, _TNL_ATTRIB_TEX5 = 13, _TNL_ATTRIB_TEX6 = 14, _TNL_ATTRIB_TEX7 = 15, _TNL_ATTRIB_GENERIC0 = 16, _TNL_ATTRIB_GENERIC1 = 17, _TNL_ATTRIB_GENERIC2 = 18, _TNL_ATTRIB_GENERIC3 = 19, _TNL_ATTRIB_GENERIC4 = 20, _TNL_ATTRIB_GENERIC5 = 21, _TNL_ATTRIB_GENERIC6 = 22, _TNL_ATTRIB_GENERIC7 = 23, _TNL_ATTRIB_GENERIC8 = 24, _TNL_ATTRIB_GENERIC9 = 25, _TNL_ATTRIB_GENERIC10 = 26, _TNL_ATTRIB_GENERIC11 = 27, _TNL_ATTRIB_GENERIC12 = 28, _TNL_ATTRIB_GENERIC13 = 29, _TNL_ATTRIB_GENERIC14 = 30, _TNL_ATTRIB_GENERIC15 = 31, _TNL_ATTRIB_MAT_FRONT_AMBIENT = 16, _TNL_ATTRIB_MAT_BACK_AMBIENT = 17, _TNL_ATTRIB_MAT_FRONT_DIFFUSE = 18, _TNL_ATTRIB_MAT_BACK_DIFFUSE = 19, _TNL_ATTRIB_MAT_FRONT_SPECULAR = 20, _TNL_ATTRIB_MAT_BACK_SPECULAR = 21, _TNL_ATTRIB_MAT_FRONT_EMISSION = 22, _TNL_ATTRIB_MAT_BACK_EMISSION = 23, _TNL_ATTRIB_MAT_FRONT_SHININESS = 24, _TNL_ATTRIB_MAT_BACK_SHININESS = 25, _TNL_ATTRIB_MAT_FRONT_INDEXES = 26, _TNL_ATTRIB_MAT_BACK_INDEXES = 27, _TNL_ATTRIB_POINTSIZE = 16, _TNL_ATTRIB_MAX = 32 } |
Functions | |
static INLINE GLuint | _tnl_translate_prim (const struct _mesa_prim *prim) |
void | tnl_clip_prepare (GLcontext *ctx) |
#define _TNL_ATTRIB_ERROR (_TNL_ATTRIB_GENERIC15 + 1) |
#define _TNL_ATTRIB_TEX | ( | u | ) | (_TNL_ATTRIB_TEX0 + (u)) |
#define _TNL_FIRST_GENERIC _TNL_ATTRIB_GENERIC0 |
#define _TNL_FIRST_MAT _TNL_ATTRIB_MAT_FRONT_AMBIENT |
#define _TNL_FIRST_PROG _TNL_ATTRIB_WEIGHT |
Handy attribute ranges:.
#define _TNL_FIRST_TEX _TNL_ATTRIB_TEX0 |
#define _TNL_LAST_GENERIC _TNL_ATTRIB_GENERIC15 |
#define _TNL_LAST_MAT _TNL_ATTRIB_MAT_BACK_INDEXES |
#define _TNL_LAST_PROG _TNL_ATTRIB_TEX7 |
#define _TNL_LAST_TEX _TNL_ATTRIB_TEX7 |
#define _TNL_NUM_EVAL 16 |
#define _TNL_NUM_GENERIC 16 |
#define DECLARE_RENDERINPUTS | ( | name | ) | BITSET64_DECLARE(name, _TNL_ATTRIB_MAX) |
#define MAX_PIPELINE_STAGES 30 |
#define MAX_TYPES TYPE_IDX(GL_DOUBLE)+1 |
#define PRIM_BEGIN 0x10 |
#define PRIM_END 0x20 |
#define PRIM_MODE_MASK 0x0f |
#define RENDERINPUTS_CLEAR BITSET64_CLEAR |
#define RENDERINPUTS_CLEAR_RANGE BITSET64_CLEAR_RANGE |
#define RENDERINPUTS_COPY BITSET64_COPY |
#define RENDERINPUTS_EQUAL BITSET64_EQUAL |
#define RENDERINPUTS_ONES BITSET64_ONES |
#define RENDERINPUTS_SET BITSET64_SET |
#define RENDERINPUTS_SET_RANGE BITSET64_SET_RANGE |
#define RENDERINPUTS_TEST BITSET64_TEST |
#define RENDERINPUTS_TEST_RANGE BITSET64_TEST_RANGE |
#define RENDERINPUTS_ZERO BITSET64_ZERO |
#define TNL_CONTEXT | ( | ctx | ) | ((TNLcontext *)((ctx)->swtnl_context)) |
#define TYPE_IDX | ( | t | ) | ((t) & 0xf) |
typedef void(* tnl_copy_pv_func)(GLcontext *ctx, GLuint dst, GLuint src) |
typedef void(* tnl_emit_func)(GLcontext *ctx, GLuint count, GLubyte *dest) |
typedef void(* tnl_extract_func)(const struct tnl_clipspace_attr *a, GLfloat *out, const GLubyte *v) |
typedef void(* tnl_insert_func)(const struct tnl_clipspace_attr *a, GLubyte *v, const GLfloat *in) |
typedef void(* tnl_interp_func)(GLcontext *ctx, GLfloat t, GLuint dst, GLuint out, GLuint in, GLboolean force_boundary) |
typedef void(* tnl_line_func)(GLcontext *ctx, GLuint v1, GLuint v2) |
typedef void(* tnl_points_func)(GLcontext *ctx, GLuint first, GLuint last) |
typedef void(* tnl_quad_func)(GLcontext *ctx, GLuint v1, GLuint v2, GLuint v3, GLuint v4) |
typedef void(* tnl_render_func)(GLcontext *ctx, GLuint start, GLuint count, GLuint flags) |
typedef void(* tnl_setup_func)(GLcontext *ctx, GLuint start, GLuint end, GLuint new_inputs) |
typedef void(* tnl_triangle_func)(GLcontext *ctx, GLuint v1, GLuint v2, GLuint v3) |
anonymous enum |
static INLINE GLuint _tnl_translate_prim | ( | const struct _mesa_prim * | prim | ) | [static] |
void tnl_clip_prepare | ( | GLcontext * | ctx | ) |