mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-31 07:00:27 +01:00
added driUpdateFramebufferSize()
This commit is contained in:
parent
f084f60f8b
commit
9ae952a88c
2 changed files with 29 additions and 2 deletions
|
|
@ -1,15 +1,19 @@
|
|||
|
||||
#include "mtypes.h"
|
||||
#include "drirenderbuffer.h"
|
||||
#include "framebuffer.h"
|
||||
#include "renderbuffer.h"
|
||||
#include "imports.h"
|
||||
|
||||
|
||||
/**
|
||||
* This will get called when a window is resized.
|
||||
* This will get called when a window (gl_framebuffer) is resized (probably
|
||||
* via driUpdateFramebufferSize(), below).
|
||||
* Just update width, height and internal format fields for now.
|
||||
* There's usually no memory allocation above because the present
|
||||
* DRI drivers use statically-allocated full-screen buffers.
|
||||
* DRI drivers use statically-allocated full-screen buffers. If that's not
|
||||
* the case for a DRI driver, a different AllocStorage method should
|
||||
* be used.
|
||||
*/
|
||||
static GLboolean
|
||||
driRenderbufferStorage(GLcontext *ctx, struct gl_renderbuffer *rb,
|
||||
|
|
@ -164,3 +168,21 @@ driFlipRenderbuffers(struct gl_framebuffer *fb, GLboolean flipped)
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Check that the gl_framebuffer associated with dPriv is the right size.
|
||||
* Resize the gl_framebuffer if needed.
|
||||
* It's expected that the dPriv->driverPrivate member points to a
|
||||
* gl_framebuffer object.
|
||||
*/
|
||||
void
|
||||
driUpdateFramebufferSize(GLcontext *ctx, const __DRIdrawablePrivate *dPriv)
|
||||
{
|
||||
struct gl_framebuffer *fb = (struct gl_framebuffer *) dPriv->driverPrivate;
|
||||
if (fb && (dPriv->w != fb->Width || dPriv->h != fb->Height)) {
|
||||
_mesa_resize_framebuffer(ctx, fb, dPriv->w, dPriv->h);
|
||||
assert(fb->Width == dPriv->w);
|
||||
assert(fb->Height == dPriv->h);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -67,4 +67,9 @@ driNewRenderbuffer(GLenum format, GLvoid *addr,
|
|||
extern void
|
||||
driFlipRenderbuffers(struct gl_framebuffer *fb, GLboolean flipped);
|
||||
|
||||
|
||||
extern void
|
||||
driUpdateFramebufferSize(GLcontext *ctx, const __DRIdrawablePrivate *dPriv);
|
||||
|
||||
|
||||
#endif /* DRIRENDERBUFFER_H */
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue