#include "context.h"
Functions | |
| static INLINE GLboolean | _mesa_bufferobj_mapped (const struct gl_buffer_object *obj) |
| Is the given buffer object currently mapped? | |
| static INLINE GLboolean | _mesa_is_bufferobj (const struct gl_buffer_object *obj) |
| Is the given buffer object a user-created buffer object? Mesa uses default buffer objects in several places. | |
| void | _mesa_init_buffer_objects (GLcontext *ctx) |
| Initialize the state associated with buffer objects. | |
| void | _mesa_update_default_objects_buffer_objects (GLcontext *ctx) |
| Update the default buffer objects in the given context to reference those specified in the shared state and release those referencing the old shared state. | |
| struct gl_buffer_object * | _mesa_lookup_bufferobj (GLcontext *ctx, GLuint buffer) |
| Return the gl_buffer_object for the given ID. | |
| void | _mesa_initialize_buffer_object (struct gl_buffer_object *obj, GLuint name, GLenum target) |
| Initialize a buffer object to default values. | |
| void | _mesa_reference_buffer_object (GLcontext *ctx, struct gl_buffer_object **ptr, struct gl_buffer_object *bufObj) |
| Set ptr to bufObj w/ reference counting. | |
| GLboolean | _mesa_validate_pbo_access (GLuint dimensions, const struct gl_pixelstore_attrib *pack, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *ptr) |
| When we're about to read pixel data out of a PBO (via glDrawPixels, glTexImage, etc) or write data into a PBO (via glReadPixels, glGetTexImage, etc) we call this function to check that we're not going to read out of bounds. | |
| const GLvoid * | _mesa_map_pbo_source (GLcontext *ctx, const struct gl_pixelstore_attrib *unpack, const GLvoid *src) |
| For commands that read from a PBO (glDrawPixels, glTexImage, glPolygonStipple, etc), if we're reading from a PBO, map it read-only and return the pointer into the PBO. | |
| const GLvoid * | _mesa_map_validate_pbo_source (GLcontext *ctx, GLuint dimensions, const struct gl_pixelstore_attrib *unpack, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *ptr, const char *where) |
| Combine PBO-read validation and mapping. | |
| void | _mesa_unmap_pbo_source (GLcontext *ctx, const struct gl_pixelstore_attrib *unpack) |
| Counterpart to _mesa_map_pbo_source(). | |
| void * | _mesa_map_pbo_dest (GLcontext *ctx, const struct gl_pixelstore_attrib *pack, GLvoid *dest) |
| For commands that write to a PBO (glReadPixels, glGetColorTable, etc), if we're writing to a PBO, map it write-only and return the pointer into the PBO. | |
| GLvoid * | _mesa_map_validate_pbo_dest (GLcontext *ctx, GLuint dimensions, const struct gl_pixelstore_attrib *unpack, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid *ptr, const char *where) |
| Combine PBO-write validation and mapping. | |
| void | _mesa_unmap_pbo_dest (GLcontext *ctx, const struct gl_pixelstore_attrib *pack) |
| Counterpart to _mesa_map_pbo_dest(). | |
| void | _mesa_init_buffer_object_functions (struct dd_function_table *driver) |
| Plug default/fallback buffer object functions into the device driver hooks. | |
| void GLAPIENTRY | _mesa_BindBufferARB (GLenum target, GLuint buffer) |
| void GLAPIENTRY | _mesa_DeleteBuffersARB (GLsizei n, const GLuint *buffer) |
| Delete a set of buffer objects. | |
| void GLAPIENTRY | _mesa_GenBuffersARB (GLsizei n, GLuint *buffer) |
Generate a set of unique buffer object IDs and store them in buffer. | |
| GLboolean GLAPIENTRY | _mesa_IsBufferARB (GLuint buffer) |
| Determine if ID is the name of a buffer object. | |
| void GLAPIENTRY | _mesa_BufferDataARB (GLenum target, GLsizeiptrARB size, const GLvoid *data, GLenum usage) |
| void GLAPIENTRY | _mesa_BufferSubDataARB (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid *data) |
| void GLAPIENTRY | _mesa_GetBufferSubDataARB (GLenum target, GLintptrARB offset, GLsizeiptrARB size, void *data) |
| void *GLAPIENTRY | _mesa_MapBufferARB (GLenum target, GLenum access) |
| GLboolean GLAPIENTRY | _mesa_UnmapBufferARB (GLenum target) |
| void GLAPIENTRY | _mesa_GetBufferParameterivARB (GLenum target, GLenum pname, GLint *params) |
| void GLAPIENTRY | _mesa_GetBufferPointervARB (GLenum target, GLenum pname, GLvoid **params) |
| void GLAPIENTRY | _mesa_CopyBufferSubData (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size) |
| void *GLAPIENTRY | _mesa_MapBufferRange (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access) |
| See GL_ARB_map_buffer_range spec. | |
| void GLAPIENTRY | _mesa_FlushMappedBufferRange (GLenum target, GLintptr offset, GLsizeiptr length) |
| See GL_ARB_map_buffer_range spec. | |
| void GLAPIENTRY _mesa_BindBufferARB | ( | GLenum | target, | |
| GLuint | buffer | |||
| ) |
| void GLAPIENTRY _mesa_BufferDataARB | ( | GLenum | target, | |
| GLsizeiptrARB | size, | |||
| const GLvoid * | data, | |||
| GLenum | usage | |||
| ) |
| static INLINE GLboolean _mesa_bufferobj_mapped | ( | const struct gl_buffer_object * | obj | ) | [static] |
Is the given buffer object currently mapped?
| void GLAPIENTRY _mesa_BufferSubDataARB | ( | GLenum | target, | |
| GLintptrARB | offset, | |||
| GLsizeiptrARB | size, | |||
| const GLvoid * | data | |||
| ) |
| void GLAPIENTRY _mesa_CopyBufferSubData | ( | GLenum | readTarget, | |
| GLenum | writeTarget, | |||
| GLintptr | readOffset, | |||
| GLintptr | writeOffset, | |||
| GLsizeiptr | size | |||
| ) |
| void GLAPIENTRY _mesa_DeleteBuffersARB | ( | GLsizei | n, | |
| const GLuint * | ids | |||
| ) |
Delete a set of buffer objects.
| n | Number of buffer objects to delete. | |
| ids | Array of n buffer object IDs. |
| void GLAPIENTRY _mesa_FlushMappedBufferRange | ( | GLenum | target, | |
| GLintptr | offset, | |||
| GLsizeiptr | length | |||
| ) |
See GL_ARB_map_buffer_range spec.
| void GLAPIENTRY _mesa_GenBuffersARB | ( | GLsizei | n, | |
| GLuint * | buffer | |||
| ) |
Generate a set of unique buffer object IDs and store them in buffer.
| n | Number of IDs to generate. | |
| buffer | Array of n locations to store the IDs. |
| void GLAPIENTRY _mesa_GetBufferParameterivARB | ( | GLenum | target, | |
| GLenum | pname, | |||
| GLint * | params | |||
| ) |
| void GLAPIENTRY _mesa_GetBufferPointervARB | ( | GLenum | target, | |
| GLenum | pname, | |||
| GLvoid ** | params | |||
| ) |
| void GLAPIENTRY _mesa_GetBufferSubDataARB | ( | GLenum | target, | |
| GLintptrARB | offset, | |||
| GLsizeiptrARB | size, | |||
| void * | data | |||
| ) |
| void _mesa_init_buffer_object_functions | ( | struct dd_function_table * | driver | ) |
Plug default/fallback buffer object functions into the device driver hooks.
| void _mesa_init_buffer_objects | ( | GLcontext * | ctx | ) |
Initialize the state associated with buffer objects.
| void _mesa_initialize_buffer_object | ( | struct gl_buffer_object * | obj, | |
| GLuint | name, | |||
| GLenum | target | |||
| ) |
Initialize a buffer object to default values.
| static INLINE GLboolean _mesa_is_bufferobj | ( | const struct gl_buffer_object * | obj | ) | [static] |
Is the given buffer object a user-created buffer object? Mesa uses default buffer objects in several places.
Default buffers always have Name==0. User created buffers have Name!=0.
| GLboolean GLAPIENTRY _mesa_IsBufferARB | ( | GLuint | id | ) |
Determine if ID is the name of a buffer object.
| id | ID of the potential buffer object. |
GL_TRUE if id is the name of a buffer object, GL_FALSE otherwise. | struct gl_buffer_object* _mesa_lookup_bufferobj | ( | GLcontext * | ctx, | |
| GLuint | buffer | |||
| ) | [read] |
Return the gl_buffer_object for the given ID.
Always return NULL for ID 0.
| void* _mesa_map_pbo_dest | ( | GLcontext * | ctx, | |
| const struct gl_pixelstore_attrib * | pack, | |||
| GLvoid * | dest | |||
| ) |
For commands that write to a PBO (glReadPixels, glGetColorTable, etc), if we're writing to a PBO, map it write-only and return the pointer into the PBO.
If we're not writing to a PBO, return dst as-is. If non-null return, must call _mesa_unmap_pbo_dest() when done.
| const GLvoid* _mesa_map_pbo_source | ( | GLcontext * | ctx, | |
| const struct gl_pixelstore_attrib * | unpack, | |||
| const GLvoid * | src | |||
| ) |
For commands that read from a PBO (glDrawPixels, glTexImage, glPolygonStipple, etc), if we're reading from a PBO, map it read-only and return the pointer into the PBO.
If we're not reading from a PBO, return src as-is. If non-null return, must call _mesa_unmap_pbo_source() when done.
| GLvoid* _mesa_map_validate_pbo_dest | ( | GLcontext * | ctx, | |
| GLuint | dimensions, | |||
| const struct gl_pixelstore_attrib * | unpack, | |||
| GLsizei | width, | |||
| GLsizei | height, | |||
| GLsizei | depth, | |||
| GLenum | format, | |||
| GLenum | type, | |||
| GLvoid * | ptr, | |||
| const char * | where | |||
| ) |
Combine PBO-write validation and mapping.
If any GL errors are detected, they'll be recorded and NULL returned.
_mesa_map_pbo_dest A call to this function should have a matching call to _mesa_unmap_pbo_dest().
| const GLvoid* _mesa_map_validate_pbo_source | ( | GLcontext * | ctx, | |
| GLuint | dimensions, | |||
| const struct gl_pixelstore_attrib * | unpack, | |||
| GLsizei | width, | |||
| GLsizei | height, | |||
| GLsizei | depth, | |||
| GLenum | format, | |||
| GLenum | type, | |||
| const GLvoid * | ptr, | |||
| const char * | where | |||
| ) |
Combine PBO-read validation and mapping.
If any GL errors are detected, they'll be recorded and NULL returned.
_mesa_map_pbo_source A call to this function should have a matching call to _mesa_unmap_pbo_source().
| void* GLAPIENTRY _mesa_MapBufferARB | ( | GLenum | target, | |
| GLenum | access | |||
| ) |
| void* GLAPIENTRY _mesa_MapBufferRange | ( | GLenum | target, | |
| GLintptr | offset, | |||
| GLsizeiptr | length, | |||
| GLbitfield | access | |||
| ) |
See GL_ARB_map_buffer_range spec.
| void _mesa_reference_buffer_object | ( | GLcontext * | ctx, | |
| struct gl_buffer_object ** | ptr, | |||
| struct gl_buffer_object * | bufObj | |||
| ) |
Set ptr to bufObj w/ reference counting.
| void _mesa_unmap_pbo_dest | ( | GLcontext * | ctx, | |
| const struct gl_pixelstore_attrib * | pack | |||
| ) |
Counterpart to _mesa_map_pbo_dest().
| void _mesa_unmap_pbo_source | ( | GLcontext * | ctx, | |
| const struct gl_pixelstore_attrib * | unpack | |||
| ) |
Counterpart to _mesa_map_pbo_source().
| GLboolean GLAPIENTRY _mesa_UnmapBufferARB | ( | GLenum | target | ) |
| void _mesa_update_default_objects_buffer_objects | ( | GLcontext * | ctx | ) |
Update the default buffer objects in the given context to reference those specified in the shared state and release those referencing the old shared state.
| GLboolean _mesa_validate_pbo_access | ( | GLuint | dimensions, | |
| const struct gl_pixelstore_attrib * | pack, | |||
| GLsizei | width, | |||
| GLsizei | height, | |||
| GLsizei | depth, | |||
| GLenum | format, | |||
| GLenum | type, | |||
| const GLvoid * | ptr | |||
| ) |
When we're about to read pixel data out of a PBO (via glDrawPixels, glTexImage, etc) or write data into a PBO (via glReadPixels, glGetTexImage, etc) we call this function to check that we're not going to read out of bounds.
XXX This would also be a convenient time to check that the PBO isn't currently mapped. Whoever calls this function should check for that. Remember, we can't use a PBO when it's mapped!
If we're not using a PBO, this is a no-op.
| width | width of image to read/write | |
| height | height of image to read/write | |
| depth | depth of image to read/write | |
| format | format of image to read/write | |
| type | datatype of image to read/write | |
| ptr | the user-provided pointer/offset |
1.5.4