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

vbo_split_copy.c File Reference

#include "main/glheader.h"
#include "main/bufferobj.h"
#include "main/imports.h"
#include "main/image.h"
#include "main/macros.h"
#include "main/enums.h"
#include "main/mtypes.h"
#include "vbo_split.h"
#include "vbo.h"

Data Structures

struct  copy_context
 Used for vertex-level splitting of indexed buffers. More...

Defines

#define ELT_TABLE_SIZE   16
#define MAX_PRIM   32

Functions

static GLuint attr_size (const struct gl_client_array *array)
static GLboolean check_flush (struct copy_context *copy)
 Starts returning true slightly before the buffer fills, to ensure that there is sufficient room for any remaining vertices to finish off the prim:.
static void dump_draw_info (GLcontext *ctx, const struct gl_client_array **arrays, const struct _mesa_prim *prims, GLuint nr_prims, const struct _mesa_index_buffer *ib, GLuint min_index, GLuint max_index)
 Dump the parameters/info for a vbo->draw() call.
static void flush (struct copy_context *copy)
static void begin (struct copy_context *copy, GLenum mode, GLboolean begin_flag)
 Called at begin of each primitive during replay.
static GLuint elt (struct copy_context *copy, GLuint elt_idx)
 Use a hashtable to attempt to identify recently-emitted vertices and avoid re-emitting them.
static void end (struct copy_context *copy, GLboolean end_flag)
 Called at end of each primitive during replay.
static void replay_elts (struct copy_context *copy)
static void replay_init (struct copy_context *copy)
static void replay_finish (struct copy_context *copy)
 Free up everything allocated during split/replay.
void vbo_split_copy (GLcontext *ctx, const struct gl_client_array *arrays[], const struct _mesa_prim *prim, GLuint nr_prims, const struct _mesa_index_buffer *ib, vbo_draw_func draw, const struct split_limits *limits)
 Split VBO into smaller pieces, draw the pieces.


Define Documentation

#define ELT_TABLE_SIZE   16

#define MAX_PRIM   32


Function Documentation

static GLuint attr_size ( const struct gl_client_array array  )  [static]

static void begin ( struct copy_context copy,
GLenum  mode,
GLboolean  begin_flag 
) [static]

Called at begin of each primitive during replay.

static GLboolean check_flush ( struct copy_context copy  )  [static]

Starts returning true slightly before the buffer fills, to ensure that there is sufficient room for any remaining vertices to finish off the prim:.

static void dump_draw_info ( GLcontext ctx,
const struct gl_client_array **  arrays,
const struct _mesa_prim prims,
GLuint  nr_prims,
const struct _mesa_index_buffer ib,
GLuint  min_index,
GLuint  max_index 
) [static]

Dump the parameters/info for a vbo->draw() call.

static GLuint elt ( struct copy_context copy,
GLuint  elt_idx 
) [static]

Use a hashtable to attempt to identify recently-emitted vertices and avoid re-emitting them.

static void end ( struct copy_context copy,
GLboolean  end_flag 
) [static]

Called at end of each primitive during replay.

static void flush ( struct copy_context copy  )  [static]

static void replay_elts ( struct copy_context copy  )  [static]

static void replay_finish ( struct copy_context copy  )  [static]

Free up everything allocated during split/replay.

static void replay_init ( struct copy_context copy  )  [static]

void vbo_split_copy ( GLcontext ctx,
const struct gl_client_array arrays[],
const struct _mesa_prim prim,
GLuint  nr_prims,
const struct _mesa_index_buffer ib,
vbo_draw_func  draw,
const struct split_limits limits 
)

Split VBO into smaller pieces, draw the pieces.


Generated on Sun Sep 27 06:47:52 2009 for Mesa vbo by  doxygen 1.5.4