#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.
1.5.4