/** * Retrieve the parameters used to create a VdpOutputSurface. */ VdpStatus vlVdpOutputSurfaceGetParameters(VdpOutputSurface surface, VdpRGBAFormat *rgba_format, uint32_t *width, uint32_t *height) { vlVdpOutputSurface *vlsurface; vlsurface = vlGetDataHTAB(surface); if (!vlsurface) return VDP_STATUS_INVALID_HANDLE; *rgba_format = PipeToFormatRGBA(vlsurface->sampler_view->texture->format); *width = vlsurface->sampler_view->texture->width0; *height = vlsurface->sampler_view->texture->height0; return VDP_STATUS_OK; }
/** * Retrieve the parameters used to create a VdpBitmapSurface. */ VdpStatus vlVdpBitmapSurfaceGetParameters(VdpBitmapSurface surface, VdpRGBAFormat *rgba_format, 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; 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; }