mesa: Remove Driver.GetBufferSize and its callers.
Only the GDI driver set it to non-NULL any more, and that driver has a Viewport hook that should keep it limping along as well as it ever has. Reviewed-by: Brian Paul <brianp@vmware.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
@@ -75,7 +75,6 @@ _mesa_init_driver_functions(struct dd_function_table *driver)
|
|||||||
|
|
||||||
driver->GetString = NULL; /* REQUIRED! */
|
driver->GetString = NULL; /* REQUIRED! */
|
||||||
driver->UpdateState = NULL; /* REQUIRED! */
|
driver->UpdateState = NULL; /* REQUIRED! */
|
||||||
driver->GetBufferSize = NULL; /* REQUIRED! */
|
|
||||||
driver->ResizeBuffers = _mesa_resize_framebuffer;
|
driver->ResizeBuffers = _mesa_resize_framebuffer;
|
||||||
|
|
||||||
driver->Finish = NULL;
|
driver->Finish = NULL;
|
||||||
|
@@ -139,7 +139,6 @@ static const struct tnl_pipeline_stage *r200_pipeline[] = {
|
|||||||
*/
|
*/
|
||||||
static void r200InitDriverFuncs( struct dd_function_table *functions )
|
static void r200InitDriverFuncs( struct dd_function_table *functions )
|
||||||
{
|
{
|
||||||
functions->GetBufferSize = NULL; /* OBSOLETE */
|
|
||||||
functions->GetString = r200GetString;
|
functions->GetString = r200GetString;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -642,7 +642,6 @@ swrast_init_driver_functions(struct dd_function_table *driver)
|
|||||||
{
|
{
|
||||||
driver->GetString = get_string;
|
driver->GetString = get_string;
|
||||||
driver->UpdateState = update_state;
|
driver->UpdateState = update_state;
|
||||||
driver->GetBufferSize = NULL;
|
|
||||||
driver->Viewport = viewport;
|
driver->Viewport = viewport;
|
||||||
driver->ChooseTextureFormat = swrastChooseTextureFormat;
|
driver->ChooseTextureFormat = swrastChooseTextureFormat;
|
||||||
driver->MapRenderbuffer = swrast_map_renderbuffer;
|
driver->MapRenderbuffer = swrast_map_renderbuffer;
|
||||||
|
@@ -710,7 +710,6 @@ OSMesaCreateContextExt( GLenum format, GLint depthBits, GLint stencilBits,
|
|||||||
/* override with our functions */
|
/* override with our functions */
|
||||||
functions.GetString = get_string;
|
functions.GetString = get_string;
|
||||||
functions.UpdateState = osmesa_update_state;
|
functions.UpdateState = osmesa_update_state;
|
||||||
functions.GetBufferSize = NULL;
|
|
||||||
|
|
||||||
if (!_mesa_initialize_context(&osmesa->mesa,
|
if (!_mesa_initialize_context(&osmesa->mesa,
|
||||||
API_OPENGL_COMPAT,
|
API_OPENGL_COMPAT,
|
||||||
|
@@ -605,7 +605,6 @@ WMesaContext WMesaCreateContext(HDC hDC,
|
|||||||
_mesa_init_driver_functions(&functions);
|
_mesa_init_driver_functions(&functions);
|
||||||
functions.GetString = wmesa_get_string;
|
functions.GetString = wmesa_get_string;
|
||||||
functions.UpdateState = wmesa_update_state;
|
functions.UpdateState = wmesa_update_state;
|
||||||
functions.GetBufferSize = wmesa_get_buffer_size;
|
|
||||||
functions.Flush = wmesa_flush;
|
functions.Flush = wmesa_flush;
|
||||||
functions.Clear = clear;
|
functions.Clear = clear;
|
||||||
functions.ResizeBuffers = wmesa_resize_buffers;
|
functions.ResizeBuffers = wmesa_resize_buffers;
|
||||||
|
@@ -841,7 +841,6 @@ xmesa_init_driver_functions( XMesaVisual xmvisual,
|
|||||||
{
|
{
|
||||||
driver->GetString = get_string;
|
driver->GetString = get_string;
|
||||||
driver->UpdateState = xmesa_update_state;
|
driver->UpdateState = xmesa_update_state;
|
||||||
driver->GetBufferSize = NULL; /* OBSOLETE */
|
|
||||||
driver->Flush = finish_or_flush;
|
driver->Flush = finish_or_flush;
|
||||||
driver->Finish = finish_or_flush;
|
driver->Finish = finish_or_flush;
|
||||||
driver->ColorMask = color_mask;
|
driver->ColorMask = color_mask;
|
||||||
|
@@ -1387,25 +1387,6 @@ check_compatible(const struct gl_context *ctx,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Do one-time initialization for the given framebuffer. Specifically,
|
|
||||||
* ask the driver for the window's current size and update the framebuffer
|
|
||||||
* object to match.
|
|
||||||
* Really, the device driver should totally take care of this.
|
|
||||||
*/
|
|
||||||
static void
|
|
||||||
initialize_framebuffer_size(struct gl_context *ctx, struct gl_framebuffer *fb)
|
|
||||||
{
|
|
||||||
GLuint width, height;
|
|
||||||
if (ctx->Driver.GetBufferSize) {
|
|
||||||
ctx->Driver.GetBufferSize(fb, &width, &height);
|
|
||||||
if (ctx->Driver.ResizeBuffers)
|
|
||||||
ctx->Driver.ResizeBuffers(ctx, fb, width, height);
|
|
||||||
fb->Initialized = GL_TRUE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check if the viewport/scissor size has not yet been initialized.
|
* Check if the viewport/scissor size has not yet been initialized.
|
||||||
* Initialize the size if the given width and height are non-zero.
|
* Initialize the size if the given width and height are non-zero.
|
||||||
@@ -1508,32 +1489,6 @@ _mesa_make_current( struct gl_context *newCtx,
|
|||||||
*/
|
*/
|
||||||
newCtx->NewState |= _NEW_BUFFERS;
|
newCtx->NewState |= _NEW_BUFFERS;
|
||||||
|
|
||||||
#if 1
|
|
||||||
/* We want to get rid of these lines: */
|
|
||||||
if (!drawBuffer->Initialized) {
|
|
||||||
initialize_framebuffer_size(newCtx, drawBuffer);
|
|
||||||
}
|
|
||||||
if (readBuffer != drawBuffer && !readBuffer->Initialized) {
|
|
||||||
initialize_framebuffer_size(newCtx, readBuffer);
|
|
||||||
}
|
|
||||||
|
|
||||||
_mesa_resizebuffers(newCtx);
|
|
||||||
#else
|
|
||||||
/* We want the drawBuffer and readBuffer to be initialized by
|
|
||||||
* the driver.
|
|
||||||
* This generally means the Width and Height match the actual
|
|
||||||
* window size and the renderbuffers (both hardware and software
|
|
||||||
* based) are allocated to match. The later can generally be
|
|
||||||
* done with a call to _mesa_resize_framebuffer().
|
|
||||||
*
|
|
||||||
* It's theoretically possible for a buffer to have zero width
|
|
||||||
* or height, but for now, assert check that the driver did what's
|
|
||||||
* expected of it.
|
|
||||||
*/
|
|
||||||
ASSERT(drawBuffer->Width > 0);
|
|
||||||
ASSERT(drawBuffer->Height > 0);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (drawBuffer) {
|
if (drawBuffer) {
|
||||||
_mesa_check_init_viewport(newCtx,
|
_mesa_check_init_viewport(newCtx,
|
||||||
drawBuffer->Width, drawBuffer->Height);
|
drawBuffer->Width, drawBuffer->Height);
|
||||||
|
@@ -92,15 +92,6 @@ struct dd_function_table {
|
|||||||
*/
|
*/
|
||||||
void (*UpdateState)( struct gl_context *ctx, GLbitfield new_state );
|
void (*UpdateState)( struct gl_context *ctx, GLbitfield new_state );
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the width and height of the named buffer/window.
|
|
||||||
*
|
|
||||||
* Mesa uses this to determine when the driver's window size has changed.
|
|
||||||
* XXX OBSOLETE: this function will be removed in the future.
|
|
||||||
*/
|
|
||||||
void (*GetBufferSize)( struct gl_framebuffer *buffer,
|
|
||||||
GLuint *width, GLuint *height );
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Resize the given framebuffer to the given size.
|
* Resize the given framebuffer to the given size.
|
||||||
* XXX OBSOLETE: this function will be removed in the future.
|
* XXX OBSOLETE: this function will be removed in the future.
|
||||||
|
@@ -319,81 +319,12 @@ _mesa_resize_framebuffer(struct gl_context *ctx, struct gl_framebuffer *fb,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* XXX THIS IS OBSOLETE - drivers should take care of detecting window
|
|
||||||
* size changes and act accordingly, likely calling _mesa_resize_framebuffer().
|
|
||||||
*
|
|
||||||
* GL_MESA_resize_buffers extension.
|
|
||||||
*
|
|
||||||
* When this function is called, we'll ask the window system how large
|
|
||||||
* the current window is. If it's a new size, we'll call the driver's
|
|
||||||
* ResizeBuffers function. The driver will then resize its color buffers
|
|
||||||
* as needed, and maybe call the swrast's routine for reallocating
|
|
||||||
* swrast-managed depth/stencil/accum/etc buffers.
|
|
||||||
* \note This function should only be called through the GL API, not
|
|
||||||
* from device drivers (as was done in the past).
|
|
||||||
*/
|
|
||||||
void
|
|
||||||
_mesa_resizebuffers( struct gl_context *ctx )
|
|
||||||
{
|
|
||||||
FLUSH_VERTICES(ctx, 0);
|
|
||||||
|
|
||||||
if (MESA_VERBOSE & VERBOSE_API)
|
|
||||||
_mesa_debug(ctx, "glResizeBuffersMESA\n");
|
|
||||||
|
|
||||||
if (!ctx->Driver.GetBufferSize) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ctx->WinSysDrawBuffer) {
|
|
||||||
GLuint newWidth, newHeight;
|
|
||||||
struct gl_framebuffer *buffer = ctx->WinSysDrawBuffer;
|
|
||||||
|
|
||||||
assert(_mesa_is_winsys_fbo(buffer));
|
|
||||||
|
|
||||||
/* ask device driver for size of output buffer */
|
|
||||||
ctx->Driver.GetBufferSize( buffer, &newWidth, &newHeight );
|
|
||||||
|
|
||||||
/* see if size of device driver's color buffer (window) has changed */
|
|
||||||
if (buffer->Width != newWidth || buffer->Height != newHeight) {
|
|
||||||
if (ctx->Driver.ResizeBuffers)
|
|
||||||
ctx->Driver.ResizeBuffers(ctx, buffer, newWidth, newHeight );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ctx->WinSysReadBuffer
|
|
||||||
&& ctx->WinSysReadBuffer != ctx->WinSysDrawBuffer) {
|
|
||||||
GLuint newWidth, newHeight;
|
|
||||||
struct gl_framebuffer *buffer = ctx->WinSysReadBuffer;
|
|
||||||
|
|
||||||
assert(_mesa_is_winsys_fbo(buffer));
|
|
||||||
|
|
||||||
/* ask device driver for size of read buffer */
|
|
||||||
ctx->Driver.GetBufferSize( buffer, &newWidth, &newHeight );
|
|
||||||
|
|
||||||
/* see if size of device driver's color buffer (window) has changed */
|
|
||||||
if (buffer->Width != newWidth || buffer->Height != newHeight) {
|
|
||||||
if (ctx->Driver.ResizeBuffers)
|
|
||||||
ctx->Driver.ResizeBuffers(ctx, buffer, newWidth, newHeight );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ctx->NewState |= _NEW_BUFFERS; /* to update scissor / window bounds */
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XXX THIS IS OBSOLETE
|
* XXX THIS IS OBSOLETE
|
||||||
*/
|
*/
|
||||||
void GLAPIENTRY
|
void GLAPIENTRY
|
||||||
_mesa_ResizeBuffersMESA( void )
|
_mesa_ResizeBuffersMESA( void )
|
||||||
{
|
{
|
||||||
GET_CURRENT_CONTEXT(ctx);
|
|
||||||
|
|
||||||
if (ctx->Extensions.MESA_resize_buffers)
|
|
||||||
_mesa_resizebuffers( ctx );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user