#include "main/glheader.h"
#include "main/bufferobj.h"
#include "main/context.h"
#include "main/macros.h"
#include "main/vtxfmt.h"
#include "main/state.h"
#include "main/light.h"
#include "main/api_arrayelt.h"
#include "main/api_noop.h"
#include "glapi/dispatch.h"
#include "vbo_context.h"
#include "vbo_attrib_tmp.h"
Defines | |
| #define | IMM_BUFFER_NAME 0xaabbccdd |
| ID/name for immediate-mode VBO. | |
| #define | ATTR(A, N, V0, V1, V2, V3) |
| #define | ERROR() _mesa_error( ctx, GL_INVALID_ENUM, __FUNCTION__ ) |
| #define | TAG(x) vbo_##x |
Functions | |
| static void | reset_attrfv (struct vbo_exec_context *exec) |
| static void | vbo_exec_wrap_buffers (struct vbo_exec_context *exec) |
| void | vbo_exec_vtx_wrap (struct vbo_exec_context *exec) |
| static void | vbo_exec_copy_to_current (struct vbo_exec_context *exec) |
| static void | vbo_exec_copy_from_current (struct vbo_exec_context *exec) |
| static void | vbo_exec_wrap_upgrade_vertex (struct vbo_exec_context *exec, GLuint attr, GLuint newsz) |
| static void | vbo_exec_fixup_vertex (GLcontext *ctx, GLuint attr, GLuint sz) |
| static void GLAPIENTRY | vbo_exec_EvalCoord1f (GLfloat u) |
| static void GLAPIENTRY | vbo_exec_EvalCoord2f (GLfloat u, GLfloat v) |
| static void GLAPIENTRY | vbo_exec_EvalCoord1fv (const GLfloat *u) |
| static void GLAPIENTRY | vbo_exec_EvalCoord2fv (const GLfloat *u) |
| static void GLAPIENTRY | vbo_exec_EvalPoint1 (GLint i) |
| static void GLAPIENTRY | vbo_exec_EvalPoint2 (GLint i, GLint j) |
| static void GLAPIENTRY | vbo_exec_Begin (GLenum mode) |
| static void GLAPIENTRY | vbo_exec_End (void) |
| static void | vbo_exec_vtxfmt_init (struct vbo_exec_context *exec) |
| void | vbo_use_buffer_objects (GLcontext *ctx) |
| Tell the VBO module to use a real OpenGL vertex buffer object to store accumulated immediate-mode vertex data. | |
| void | vbo_exec_vtx_init (struct vbo_exec_context *exec) |
| void | vbo_exec_vtx_destroy (struct vbo_exec_context *exec) |
| void | vbo_exec_BeginVertices (GLcontext *ctx) |
| void | vbo_exec_FlushVertices_internal (GLcontext *ctx, GLboolean unmap) |
| void | vbo_exec_FlushVertices (GLcontext *ctx, GLuint flags) |
| void GLAPIENTRY | _vbo_Color4f (GLfloat r, GLfloat g, GLfloat b, GLfloat a) |
| void GLAPIENTRY | _vbo_Normal3f (GLfloat x, GLfloat y, GLfloat z) |
| void GLAPIENTRY | _vbo_MultiTexCoord4f (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q) |
| void GLAPIENTRY | _vbo_Materialfv (GLenum face, GLenum pname, const GLfloat *params) |
| void GLAPIENTRY | _vbo_VertexAttrib4f (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w) |
| #define ATTR | ( | A, | |||
| N, | |||||
| V0, | |||||
| V1, | |||||
| V2, | |||||
| V3 | ) |
Value:
do { \ struct vbo_exec_context *exec = &vbo_context(ctx)->exec; \ \ if (exec->vtx.active_sz[A] != N) \ vbo_exec_fixup_vertex(ctx, A, N); \ \ { \ GLfloat *dest = exec->vtx.attrptr[A]; \ if (N>0) dest[0] = V0; \ if (N>1) dest[1] = V1; \ if (N>2) dest[2] = V2; \ if (N>3) dest[3] = V3; \ } \ \ if ((A) == 0) { \ GLuint i; \ \ for (i = 0; i < exec->vtx.vertex_size; i++) \ exec->vtx.buffer_ptr[i] = exec->vtx.vertex[i]; \ \ exec->vtx.buffer_ptr += exec->vtx.vertex_size; \ exec->ctx->Driver.NeedFlush |= FLUSH_STORED_VERTICES; \ \ if (++exec->vtx.vert_count >= exec->vtx.max_vert) \ vbo_exec_vtx_wrap( exec ); \ } \ } while (0)
| #define ERROR | ( | ) | _mesa_error( ctx, GL_INVALID_ENUM, __FUNCTION__ ) |
| #define IMM_BUFFER_NAME 0xaabbccdd |
ID/name for immediate-mode VBO.
| #define TAG | ( | x | ) | vbo_##x |
| void GLAPIENTRY _vbo_Color4f | ( | GLfloat | r, | |
| GLfloat | g, | |||
| GLfloat | b, | |||
| GLfloat | a | |||
| ) |
| void GLAPIENTRY _vbo_Materialfv | ( | GLenum | face, | |
| GLenum | pname, | |||
| const GLfloat * | params | |||
| ) |
| void GLAPIENTRY _vbo_MultiTexCoord4f | ( | GLenum | target, | |
| GLfloat | s, | |||
| GLfloat | t, | |||
| GLfloat | r, | |||
| GLfloat | q | |||
| ) |
| void GLAPIENTRY _vbo_Normal3f | ( | GLfloat | x, | |
| GLfloat | y, | |||
| GLfloat | z | |||
| ) |
| void GLAPIENTRY _vbo_VertexAttrib4f | ( | GLuint | index, | |
| GLfloat | x, | |||
| GLfloat | y, | |||
| GLfloat | z, | |||
| GLfloat | w | |||
| ) |
| static void reset_attrfv | ( | struct vbo_exec_context * | exec | ) | [static] |
| static void GLAPIENTRY vbo_exec_Begin | ( | GLenum | mode | ) | [static] |
| void vbo_exec_BeginVertices | ( | GLcontext * | ctx | ) |
| static void vbo_exec_copy_from_current | ( | struct vbo_exec_context * | exec | ) | [static] |
| static void vbo_exec_copy_to_current | ( | struct vbo_exec_context * | exec | ) | [static] |
| static void GLAPIENTRY vbo_exec_End | ( | void | ) | [static] |
| static void GLAPIENTRY vbo_exec_EvalCoord1f | ( | GLfloat | u | ) | [static] |
| static void GLAPIENTRY vbo_exec_EvalCoord1fv | ( | const GLfloat * | u | ) | [static] |
| static void GLAPIENTRY vbo_exec_EvalCoord2f | ( | GLfloat | u, | |
| GLfloat | v | |||
| ) | [static] |
| static void GLAPIENTRY vbo_exec_EvalCoord2fv | ( | const GLfloat * | u | ) | [static] |
| static void GLAPIENTRY vbo_exec_EvalPoint1 | ( | GLint | i | ) | [static] |
| static void GLAPIENTRY vbo_exec_EvalPoint2 | ( | GLint | i, | |
| GLint | j | |||
| ) | [static] |
| static void vbo_exec_fixup_vertex | ( | GLcontext * | ctx, | |
| GLuint | attr, | |||
| GLuint | sz | |||
| ) | [static] |
| void vbo_exec_FlushVertices | ( | GLcontext * | ctx, | |
| GLuint | flags | |||
| ) |
| void vbo_exec_FlushVertices_internal | ( | GLcontext * | ctx, | |
| GLboolean | unmap | |||
| ) |
| void vbo_exec_vtx_destroy | ( | struct vbo_exec_context * | exec | ) |
| void vbo_exec_vtx_init | ( | struct vbo_exec_context * | exec | ) |
| void vbo_exec_vtx_wrap | ( | struct vbo_exec_context * | exec | ) |
| static void vbo_exec_vtxfmt_init | ( | struct vbo_exec_context * | exec | ) | [static] |
| static void vbo_exec_wrap_buffers | ( | struct vbo_exec_context * | exec | ) | [static] |
| static void vbo_exec_wrap_upgrade_vertex | ( | struct vbo_exec_context * | exec, | |
| GLuint | attr, | |||
| GLuint | newsz | |||
| ) | [static] |
| void vbo_use_buffer_objects | ( | GLcontext * | ctx | ) |
Tell the VBO module to use a real OpenGL vertex buffer object to store accumulated immediate-mode vertex data.
This replaces the malloced buffer which was created in vb_exec_vtx_init() below.
1.5.4