core | glapi | vbo | math | shader | swrast | swrast_setup | tnl | tnl_dd

t_context.h File Reference


Detailed Description

TnL module datatypes and definitions.

Author:
Keith Whitwell

#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 Documentation

#define _TNL_ATTRIB_ERROR   (_TNL_ATTRIB_GENERIC15 + 1)

#define _TNL_ATTRIB_GENERIC ( n   )     (_TNL_ATTRIB_GENERIC0 + (n))

#define _TNL_ATTRIB_TEX (  )     (_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) & 0xf)


Typedef Documentation

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)


Enumeration Type Documentation

anonymous enum

Enumerator:
_TNL_ATTRIB_POS 
_TNL_ATTRIB_WEIGHT 
_TNL_ATTRIB_NORMAL 
_TNL_ATTRIB_COLOR0 
_TNL_ATTRIB_COLOR1 
_TNL_ATTRIB_FOG 
_TNL_ATTRIB_COLOR_INDEX 
_TNL_ATTRIB_EDGEFLAG 
_TNL_ATTRIB_TEX0 
_TNL_ATTRIB_TEX1 
_TNL_ATTRIB_TEX2 
_TNL_ATTRIB_TEX3 
_TNL_ATTRIB_TEX4 
_TNL_ATTRIB_TEX5 
_TNL_ATTRIB_TEX6 
_TNL_ATTRIB_TEX7 
_TNL_ATTRIB_GENERIC0 
_TNL_ATTRIB_GENERIC1 
_TNL_ATTRIB_GENERIC2 
_TNL_ATTRIB_GENERIC3 
_TNL_ATTRIB_GENERIC4 
_TNL_ATTRIB_GENERIC5 
_TNL_ATTRIB_GENERIC6 
_TNL_ATTRIB_GENERIC7 
_TNL_ATTRIB_GENERIC8 
_TNL_ATTRIB_GENERIC9 
_TNL_ATTRIB_GENERIC10 
_TNL_ATTRIB_GENERIC11 
_TNL_ATTRIB_GENERIC12 
_TNL_ATTRIB_GENERIC13 
_TNL_ATTRIB_GENERIC14 
_TNL_ATTRIB_GENERIC15 
_TNL_ATTRIB_MAT_FRONT_AMBIENT 
_TNL_ATTRIB_MAT_BACK_AMBIENT 
_TNL_ATTRIB_MAT_FRONT_DIFFUSE 
_TNL_ATTRIB_MAT_BACK_DIFFUSE 
_TNL_ATTRIB_MAT_FRONT_SPECULAR 
_TNL_ATTRIB_MAT_BACK_SPECULAR 
_TNL_ATTRIB_MAT_FRONT_EMISSION 
_TNL_ATTRIB_MAT_BACK_EMISSION 
_TNL_ATTRIB_MAT_FRONT_SHININESS 
_TNL_ATTRIB_MAT_BACK_SHININESS 
_TNL_ATTRIB_MAT_FRONT_INDEXES 
_TNL_ATTRIB_MAT_BACK_INDEXES 
_TNL_ATTRIB_POINTSIZE 
_TNL_ATTRIB_MAX 


Function Documentation

static INLINE GLuint _tnl_translate_prim ( const struct _mesa_prim prim  )  [static]

void tnl_clip_prepare ( GLcontext ctx  ) 


Generated on Sun Sep 27 06:48:09 2009 for Mesa Transform and Lighting (tnl) by  doxygen 1.5.4