Selaa lähdekoodia

DRI2: Provide an interface for drivers to flush front-buffer rendering

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kristian Høgsberg <krh@redhat.com>
tags/mesa_7_5_rc1
Ian Romanick 16 vuotta sitten
vanhempi
commit
82634ee8df
2 muutettua tiedostoa jossa 24 lisäystä ja 1 poistoa
  1. 14
    1
      include/GL/internal/dri_interface.h
  2. 10
    0
      src/glx/x11/dri2_glx.c

+ 14
- 1
include/GL/internal/dri_interface.h Näytä tiedosto

@@ -659,7 +659,7 @@ struct __DRIbufferRec {
};

#define __DRI_DRI2_LOADER "DRI_DRI2Loader"
#define __DRI_DRI2_LOADER_VERSION 1
#define __DRI_DRI2_LOADER_VERSION 2
struct __DRIdri2LoaderExtensionRec {
__DRIextension base;

@@ -667,6 +667,19 @@ struct __DRIdri2LoaderExtensionRec {
int *width, int *height,
unsigned int *attachments, int count,
int *out_count, void *loaderPrivate);

/**
* Flush pending front-buffer rendering
*
* Any rendering that has been performed to the
* \c __DRI_BUFFER_FAKE_FRONT_LEFT will be flushed to the
* \c __DRI_BUFFER_FRONT_LEFT.
*
* \param driDrawable Drawable whose front-buffer is to be flushed
* \param loaderPrivate Loader's private data that was previously passed
* into __DRIdri2ExtensionRec::createNewDrawable
*/
void (*flushFrontBuffer)(__DRIdrawable *driDrawable, void *loaderPrivate);
};

/**

+ 10
- 0
src/glx/x11/dri2_glx.c Näytä tiedosto

@@ -273,6 +273,15 @@ static void dri2WaitGL(__GLXDRIdrawable *pdraw)
XFixesDestroyRegion(pdraw->psc->dpy, region);
}


static void dri2FlushFrontBuffer(__DRIdrawable *driDrawable,
void *loaderPrivate)
{
(void) driDrawable;
dri2WaitGL((__GLXDRIdrawable *) loaderPrivate);
}


static void dri2DestroyScreen(__GLXscreenConfigs *psc)
{
/* Free the direct rendering per screen data */
@@ -327,6 +336,7 @@ dri2GetBuffers(__DRIdrawable *driDrawable,
static const __DRIdri2LoaderExtension dri2LoaderExtension = {
{ __DRI_DRI2_LOADER, __DRI_DRI2_LOADER_VERSION },
dri2GetBuffers,
dri2FlushFrontBuffer
};

static const __DRIextension *loader_extensions[] = {

Loading…
Peruuta
Tallenna