mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-04 20:38:06 +02:00
Get DRI drawable from framebuffer object.
In the software rasterization fallbacks, get the __DRIdrawablePrivate pointer from the driRenderbuffer that is passed in. This eliminates the need for the mesa_drawable pointer in MGA context structure. This partially fixes bug #8799. wincopy no longer produces a black window for the destination window, but it does produce incorrect results if the destination window is resized.
This commit is contained in:
parent
075fae5200
commit
5af5260f3c
3 changed files with 2 additions and 10 deletions
|
|
@ -883,7 +883,6 @@ mgaMakeCurrent(__DRIcontextPrivate *driContextPriv,
|
|||
mmesa->driDrawable = driDrawPriv;
|
||||
mmesa->dirty = ~0;
|
||||
mmesa->dirty_cliprects = (MGA_FRONT|MGA_BACK);
|
||||
mmesa->mesa_drawable = driDrawPriv;
|
||||
}
|
||||
|
||||
mmesa->driReadable = driReadPriv;
|
||||
|
|
|
|||
|
|
@ -303,13 +303,6 @@ struct mga_context_t {
|
|||
__DRIdrawablePrivate *driDrawable;
|
||||
__DRIdrawablePrivate *driReadable;
|
||||
|
||||
/**
|
||||
* Drawable used by Mesa for software fallbacks for reading and
|
||||
* writing. It is set by Mesa's \c SetBuffer callback, and will always be
|
||||
* either \c mga_context_t::driDrawable or \c mga_context_t::driReadable.
|
||||
*/
|
||||
__DRIdrawablePrivate *mesa_drawable;
|
||||
|
||||
__DRIscreenPrivate *driScreen;
|
||||
struct mga_screen_private_s *mgaScreen;
|
||||
drm_mga_sarea_t *sarea;
|
||||
|
|
|
|||
|
|
@ -36,9 +36,9 @@
|
|||
|
||||
#define LOCAL_VARS \
|
||||
mgaContextPtr mmesa = MGA_CONTEXT(ctx); \
|
||||
__DRIdrawablePrivate *dPriv = mmesa->mesa_drawable; \
|
||||
__DRIscreenPrivate *sPriv = mmesa->driScreen; \
|
||||
driRenderbuffer *drb = (driRenderbuffer *) rb; \
|
||||
const __DRIdrawablePrivate *dPriv = drb->dPriv; \
|
||||
GLuint pitch = drb->pitch; \
|
||||
GLuint height = dPriv->h; \
|
||||
char *buf = (char *)(sPriv->pFB + \
|
||||
|
|
@ -52,9 +52,9 @@
|
|||
|
||||
#define LOCAL_DEPTH_VARS \
|
||||
mgaContextPtr mmesa = MGA_CONTEXT(ctx); \
|
||||
__DRIdrawablePrivate *dPriv = mmesa->mesa_drawable; \
|
||||
__DRIscreenPrivate *sPriv = mmesa->driScreen; \
|
||||
driRenderbuffer *drb = (driRenderbuffer *) rb; \
|
||||
const __DRIdrawablePrivate *dPriv = drb->dPriv; \
|
||||
GLuint pitch = drb->pitch; \
|
||||
GLuint height = dPriv->h; \
|
||||
char *buf = (char *)(sPriv->pFB + \
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue