Functions | |
void | _mesa_init_renderbuffer (struct gl_renderbuffer *rb, GLuint name) |
Initialize the fields of a gl_renderbuffer to default values. | |
struct gl_renderbuffer * | _mesa_new_renderbuffer (GLcontext *ctx, GLuint name) |
Allocate a new gl_renderbuffer object. | |
void | _mesa_delete_renderbuffer (struct gl_renderbuffer *rb) |
Delete a gl_framebuffer. | |
struct gl_renderbuffer * | _mesa_new_soft_renderbuffer (GLcontext *ctx, GLuint name) |
Allocate a software-based renderbuffer. | |
GLboolean | _mesa_soft_renderbuffer_storage (GLcontext *ctx, struct gl_renderbuffer *rb, GLenum internalFormat, GLuint width, GLuint height) |
This is a software fallback for the gl_renderbuffer->AllocStorage function. | |
GLboolean | _mesa_add_color_renderbuffers (GLcontext *ctx, struct gl_framebuffer *fb, GLuint rgbBits, GLuint alphaBits, GLboolean frontLeft, GLboolean backLeft, GLboolean frontRight, GLboolean backRight) |
Add software-based color renderbuffers to the given framebuffer. | |
GLboolean | _mesa_add_color_index_renderbuffers (GLcontext *ctx, struct gl_framebuffer *fb, GLuint indexBits, GLboolean frontLeft, GLboolean backLeft, GLboolean frontRight, GLboolean backRight) |
Add software-based color index renderbuffers to the given framebuffer. | |
GLboolean | _mesa_add_alpha_renderbuffers (GLcontext *ctx, struct gl_framebuffer *fb, GLuint alphaBits, GLboolean frontLeft, GLboolean backLeft, GLboolean frontRight, GLboolean backRight) |
Add software-based alpha renderbuffers to the given framebuffer. | |
void | _mesa_copy_soft_alpha_renderbuffers (GLcontext *ctx, struct gl_framebuffer *fb) |
For framebuffers that use a software alpha channel wrapper created by _mesa_add_alpha_renderbuffer or _mesa_add_soft_renderbuffers, copy the back buffer alpha channel into the front buffer alpha channel. | |
GLboolean | _mesa_add_depth_renderbuffer (GLcontext *ctx, struct gl_framebuffer *fb, GLuint depthBits) |
Add a software-based depth renderbuffer to the given framebuffer. | |
GLboolean | _mesa_add_stencil_renderbuffer (GLcontext *ctx, struct gl_framebuffer *fb, GLuint stencilBits) |
Add a software-based stencil renderbuffer to the given framebuffer. | |
GLboolean | _mesa_add_accum_renderbuffer (GLcontext *ctx, struct gl_framebuffer *fb, GLuint redBits, GLuint greenBits, GLuint blueBits, GLuint alphaBits) |
Add a software-based accumulation renderbuffer to the given framebuffer. | |
GLboolean | _mesa_add_aux_renderbuffers (GLcontext *ctx, struct gl_framebuffer *fb, GLuint bits, GLuint numBuffers) |
Add a software-based accumulation renderbuffer to the given framebuffer. | |
void | _mesa_add_soft_renderbuffers (struct gl_framebuffer *fb, GLboolean color, GLboolean depth, GLboolean stencil, GLboolean accum, GLboolean alpha, GLboolean aux) |
Create/attach software-based renderbuffers to the given framebuffer. | |
void | _mesa_add_renderbuffer (struct gl_framebuffer *fb, GLuint bufferName, struct gl_renderbuffer *rb) |
Attach a renderbuffer to a framebuffer. | |
void | _mesa_remove_renderbuffer (struct gl_framebuffer *fb, GLuint bufferName) |
Remove the named renderbuffer from the given framebuffer. | |
void | _mesa_reference_renderbuffer (struct gl_renderbuffer **ptr, struct gl_renderbuffer *rb) |
Set *ptr to point to rb. | |
struct gl_renderbuffer * | _mesa_new_depthstencil_renderbuffer (GLcontext *ctx, GLuint name) |
Create a new combined depth/stencil renderbuffer for implementing the GL_EXT_packed_depth_stencil extension. |
GLboolean _mesa_add_accum_renderbuffer | ( | GLcontext * | ctx, | |
struct gl_framebuffer * | fb, | |||
GLuint | redBits, | |||
GLuint | greenBits, | |||
GLuint | blueBits, | |||
GLuint | alphaBits | |||
) |
Add a software-based accumulation renderbuffer to the given framebuffer.
This is a helper routine for device drivers when creating a window system framebuffer (not a user-created render/framebuffer). Once this function is called, you can basically forget about this renderbuffer; core Mesa will handle all the buffer management and rendering!
GLboolean _mesa_add_alpha_renderbuffers | ( | GLcontext * | ctx, | |
struct gl_framebuffer * | fb, | |||
GLuint | alphaBits, | |||
GLboolean | frontLeft, | |||
GLboolean | backLeft, | |||
GLboolean | frontRight, | |||
GLboolean | backRight | |||
) |
Add software-based alpha renderbuffers to the given framebuffer.
This is a helper routine for device drivers when creating a window system framebuffer (not a user-created render/framebuffer). Once this function is called, you can basically forget about this renderbuffer; core Mesa will handle all the buffer management and rendering!
GLboolean _mesa_add_aux_renderbuffers | ( | GLcontext * | ctx, | |
struct gl_framebuffer * | fb, | |||
GLuint | colorBits, | |||
GLuint | numBuffers | |||
) |
Add a software-based accumulation renderbuffer to the given framebuffer.
This is a helper routine for device drivers when creating a window system framebuffer (not a user-created render/framebuffer). Once this function is called, you can basically forget about this renderbuffer; core Mesa will handle all the buffer management and rendering!
NOTE: color-index aux buffers not supported.
GLboolean _mesa_add_color_index_renderbuffers | ( | GLcontext * | ctx, | |
struct gl_framebuffer * | fb, | |||
GLuint | indexBits, | |||
GLboolean | frontLeft, | |||
GLboolean | backLeft, | |||
GLboolean | frontRight, | |||
GLboolean | backRight | |||
) |
Add software-based color index renderbuffers to the given framebuffer.
This is a helper routine for device drivers when creating a window system framebuffer (not a user-created render/framebuffer). Once this function is called, you can basically forget about this renderbuffer; core Mesa will handle all the buffer management and rendering!
GLboolean _mesa_add_color_renderbuffers | ( | GLcontext * | ctx, | |
struct gl_framebuffer * | fb, | |||
GLuint | rgbBits, | |||
GLuint | alphaBits, | |||
GLboolean | frontLeft, | |||
GLboolean | backLeft, | |||
GLboolean | frontRight, | |||
GLboolean | backRight | |||
) |
Add software-based color renderbuffers to the given framebuffer.
This is a helper routine for device drivers when creating a window system framebuffer (not a user-created render/framebuffer). Once this function is called, you can basically forget about this renderbuffer; core Mesa will handle all the buffer management and rendering!
GLboolean _mesa_add_depth_renderbuffer | ( | GLcontext * | ctx, | |
struct gl_framebuffer * | fb, | |||
GLuint | depthBits | |||
) |
Add a software-based depth renderbuffer to the given framebuffer.
This is a helper routine for device drivers when creating a window system framebuffer (not a user-created render/framebuffer). Once this function is called, you can basically forget about this renderbuffer; core Mesa will handle all the buffer management and rendering!
void _mesa_add_renderbuffer | ( | struct gl_framebuffer * | fb, | |
GLuint | bufferName, | |||
struct gl_renderbuffer * | rb | |||
) |
Attach a renderbuffer to a framebuffer.
void _mesa_add_soft_renderbuffers | ( | struct gl_framebuffer * | fb, | |
GLboolean | color, | |||
GLboolean | depth, | |||
GLboolean | stencil, | |||
GLboolean | accum, | |||
GLboolean | alpha, | |||
GLboolean | aux | |||
) |
Create/attach software-based renderbuffers to the given framebuffer.
This is a helper routine for device drivers. Drivers can just as well call the individual _mesa_add_*_renderbuffer() routines directly.
GLboolean _mesa_add_stencil_renderbuffer | ( | GLcontext * | ctx, | |
struct gl_framebuffer * | fb, | |||
GLuint | stencilBits | |||
) |
Add a software-based stencil renderbuffer to the given framebuffer.
This is a helper routine for device drivers when creating a window system framebuffer (not a user-created render/framebuffer). Once this function is called, you can basically forget about this renderbuffer; core Mesa will handle all the buffer management and rendering!
void _mesa_copy_soft_alpha_renderbuffers | ( | GLcontext * | ctx, | |
struct gl_framebuffer * | fb | |||
) |
For framebuffers that use a software alpha channel wrapper created by _mesa_add_alpha_renderbuffer or _mesa_add_soft_renderbuffers, copy the back buffer alpha channel into the front buffer alpha channel.
void _mesa_delete_renderbuffer | ( | struct gl_renderbuffer * | rb | ) |
Delete a gl_framebuffer.
This is the default function for renderbuffer->Delete().
void _mesa_init_renderbuffer | ( | struct gl_renderbuffer * | rb, | |
GLuint | name | |||
) |
Initialize the fields of a gl_renderbuffer to default values.
struct gl_renderbuffer* _mesa_new_depthstencil_renderbuffer | ( | GLcontext * | ctx, | |
GLuint | name | |||
) | [read] |
Create a new combined depth/stencil renderbuffer for implementing the GL_EXT_packed_depth_stencil extension.
struct gl_renderbuffer* _mesa_new_renderbuffer | ( | GLcontext * | ctx, | |
GLuint | name | |||
) | [read] |
Allocate a new gl_renderbuffer object.
This can be used for user-created renderbuffers or window-system renderbuffers.
struct gl_renderbuffer* _mesa_new_soft_renderbuffer | ( | GLcontext * | ctx, | |
GLuint | name | |||
) | [read] |
Allocate a software-based renderbuffer.
This is called via the ctx->Driver.NewRenderbuffer() function when the user creates a new renderbuffer. This would not be used for hardware-based renderbuffers.
void _mesa_reference_renderbuffer | ( | struct gl_renderbuffer ** | ptr, | |
struct gl_renderbuffer * | rb | |||
) |
Set *ptr to point to rb.
If *ptr points to another renderbuffer, dereference that buffer first. The new renderbuffer's refcount will be incremented. The old renderbuffer's refcount will be decremented.
void _mesa_remove_renderbuffer | ( | struct gl_framebuffer * | fb, | |
GLuint | bufferName | |||
) |
Remove the named renderbuffer from the given framebuffer.
GLboolean _mesa_soft_renderbuffer_storage | ( | GLcontext * | ctx, | |
struct gl_renderbuffer * | rb, | |||
GLenum | internalFormat, | |||
GLuint | width, | |||
GLuint | height | |||
) |
This is a software fallback for the gl_renderbuffer->AllocStorage function.
Device drivers will typically override this function for the buffers which it manages (typically color buffers, Z and stencil). Other buffers (like software accumulation and aux buffers) which the driver doesn't manage can be handled with this function.
This one multi-purpose function can allocate stencil, depth, accum, color or color-index buffers!
This function also plugs in the appropriate GetPointer, Get/PutRow and Get/PutValues functions.