[Mesa-dev] [PATCH 13/25] st/vdpau: implement BitmapSurfaceGetParameters

Christian König deathsimple at vodafone.de
Mon Feb 27 08:25:41 PST 2012


Signed-off-by: Christian König <deathsimple at vodafone.de>
---
 src/gallium/state_trackers/vdpau/bitmap.c |   15 ++++++++++++++-
 1 files changed, 14 insertions(+), 1 deletions(-)

diff --git a/src/gallium/state_trackers/vdpau/bitmap.c b/src/gallium/state_trackers/vdpau/bitmap.c
index c2c8a44..0b885c8 100644
--- a/src/gallium/state_trackers/vdpau/bitmap.c
+++ b/src/gallium/state_trackers/vdpau/bitmap.c
@@ -136,10 +136,23 @@ vlVdpBitmapSurfaceGetParameters(VdpBitmapSurface surface,
                                 uint32_t *width, uint32_t *height,
                                 VdpBool *frequently_accessed)
 {
+   vlVdpBitmapSurface *vlsurface;
+   struct pipe_resource *res;
+
+   vlsurface = vlGetDataHTAB(surface);
+   if (!vlsurface)
+      return VDP_STATUS_INVALID_HANDLE;
+
    if (!(rgba_format && width && height && frequently_accessed))
       return VDP_STATUS_INVALID_POINTER;
 
-   return VDP_STATUS_NO_IMPLEMENTATION;
+   res = vlsurface->sampler_view->texture;
+   *rgba_format = PipeToFormatRGBA(res->format);
+   *width = res->width0;
+   *height = res->height0;
+   *frequently_accessed = res->usage == PIPE_USAGE_DYNAMIC;
+
+   return VDP_STATUS_OK;
 }
 
 /**
-- 
1.7.5.4



More information about the mesa-dev mailing list