#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 ELT_TABLE_SIZE 16 |
#define MAX_PRIM 32 |
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.