<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <title>VDPAU: VdpBitmapSurface; Bitmap Surface object</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.6.2 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li><a href="files.html"><span>Files</span></a></li> <li><a href="dirs.html"><span>Directories</span></a></li> </ul> </div> </div> <div class="contents"> <h1>VdpBitmapSurface; Bitmap Surface object<br/> <small> [<a class="el" href="group__api__core.html">Core API</a>]</small> </h1> <p><div class="dynheader"> Collaboration diagram for VdpBitmapSurface; Bitmap Surface object:</div> <div class="dynsection"> <center><table><tr><td><img src="group___vdp_bitmap_surface.png" border="0" alt="" usemap="#group______vdp__bitmap__surface_map"/> <map name="group______vdp__bitmap__surface_map" id="group______vdp__bitmap__surface"> <area shape="rect" id="node1" href="group__api__core.html" title="Core API" alt="" coords="7,5,81,35"/></map></td></tr></table></center> </div> </p> <table border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="2"><h2>Typedefs</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="group__error__handling.html#ga7fa6c302213052e531b20bab723e5778">VdpStatus</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___vdp_bitmap_surface.html#gad5fa26d20c3811c3974a6423419c1bb1">VdpBitmapSurfaceQueryCapabilities</a> (<a class="el" href="group___vdp_device.html#gae7abc48cf32de14e4c8f249bf06e1605">VdpDevice</a> device, <a class="el" href="group__misc__types.html#ga718383d01ac1ff36094fb46f91a8a3aa">VdpRGBAFormat</a> surface_rgba_format, <a class="el" href="group__base__types.html#ga2572319be6fed508c86cbe5ca96eeb73">VdpBool</a> *is_supported, uint32_t *max_width, uint32_t *max_height)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Query the implementation's VdpBitmapSurface capabilities. <a href="#gad5fa26d20c3811c3974a6423419c1bb1"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group___vdp_bitmap_surface.html#gad320825923573683205bfe94c4f0f6b9">VdpBitmapSurface</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">An opaque handle representing a VdpBitmapSurface object. <a href="#gad320825923573683205bfe94c4f0f6b9"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="group__error__handling.html#ga7fa6c302213052e531b20bab723e5778">VdpStatus</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___vdp_bitmap_surface.html#gae6f9b251f8cfb6a807b0a1f871efb887">VdpBitmapSurfaceCreate</a> (<a class="el" href="group___vdp_device.html#gae7abc48cf32de14e4c8f249bf06e1605">VdpDevice</a> device, <a class="el" href="group__misc__types.html#ga718383d01ac1ff36094fb46f91a8a3aa">VdpRGBAFormat</a> rgba_format, uint32_t width, uint32_t height, <a class="el" href="group__base__types.html#ga2572319be6fed508c86cbe5ca96eeb73">VdpBool</a> frequently_accessed, <a class="el" href="group___vdp_bitmap_surface.html#gad320825923573683205bfe94c4f0f6b9">VdpBitmapSurface</a> *surface)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Create a VdpBitmapSurface. <a href="#gae6f9b251f8cfb6a807b0a1f871efb887"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="group__error__handling.html#ga7fa6c302213052e531b20bab723e5778">VdpStatus</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___vdp_bitmap_surface.html#ga9f24ca76de4b6c4b59fb9283f9404494">VdpBitmapSurfaceDestroy</a> (<a class="el" href="group___vdp_bitmap_surface.html#gad320825923573683205bfe94c4f0f6b9">VdpBitmapSurface</a> surface)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Destroy a VdpBitmapSurface. <a href="#ga9f24ca76de4b6c4b59fb9283f9404494"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="group__error__handling.html#ga7fa6c302213052e531b20bab723e5778">VdpStatus</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___vdp_bitmap_surface.html#gaf48a784eea914943a1db1d22575bd9fd">VdpBitmapSurfaceGetParameters</a> (<a class="el" href="group___vdp_bitmap_surface.html#gad320825923573683205bfe94c4f0f6b9">VdpBitmapSurface</a> surface, <a class="el" href="group__misc__types.html#ga718383d01ac1ff36094fb46f91a8a3aa">VdpRGBAFormat</a> *rgba_format, uint32_t *width, uint32_t *height, <a class="el" href="group__base__types.html#ga2572319be6fed508c86cbe5ca96eeb73">VdpBool</a> *frequently_accessed)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Retrieve the parameters used to create a VdpBitmapSurface. <a href="#gaf48a784eea914943a1db1d22575bd9fd"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="group__error__handling.html#ga7fa6c302213052e531b20bab723e5778">VdpStatus</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___vdp_bitmap_surface.html#ga05d4ffd24f7c919103b3dc2c45487983">VdpBitmapSurfacePutBitsNative</a> (<a class="el" href="group___vdp_bitmap_surface.html#gad320825923573683205bfe94c4f0f6b9">VdpBitmapSurface</a> surface, void const *const *source_data, uint32_t const *source_pitches, <a class="el" href="struct_vdp_rect.html">VdpRect</a> const *destination_rect)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Copy image data from application memory in the surface's native format to a VdpBitmapSurface. <a href="#ga05d4ffd24f7c919103b3dc2c45487983"></a><br/></td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <p>A VdpBitmapSurface stores RGBA data in a defined format.</p> <p>A VdpBitmapSurface may be filled with:</p> <ul> <li>Data provided by the CPU via the <a class="el" href="group___vdp_bitmap_surface.html#ga05d4ffd24f7c919103b3dc2c45487983">VdpBitmapSurfacePutBitsNative</a> function.</li> </ul> <p>VdpBitmapSurface content may be accessed by:</p> <ul> <li>The Hardware that implements <a class="el" href="group___vdp_output_surface.html">VdpOutputSurface</a> <a class="el" href="group___vdp_output_surface_render.html">rendering functionality</a></li> </ul> <p>VdpBitmapSurface objects are intended to store static read-only data, such as font glyphs, and the bitmaps used to compose an applications' user-interface.</p> <p>The primary differences between VdpBitmapSurfaces and <a class="el" href="group___vdp_output_surface.html">VdpOutputSurface</a>s are:</p> <ul> <li>You cannot render to a VdpBitmapSurface, just upload native data via the PutBits API.</li> </ul> <ul> <li>The read-only nature of a VdpBitmapSurface gives the implementation more flexibility in its choice of data storage location for the bitmap data. For example, some implementations may choose to store some/all VdpBitmapSurface objects in system memory to relieve GPU memory pressure.</li> </ul> <ul> <li>VdpBitmapSurface and VdpOutputSurface may support different subsets of all known RGBA formats. </li> </ul> <hr/><h2>Typedef Documentation</h2> <a class="anchor" id="gad320825923573683205bfe94c4f0f6b9"></a><!-- doxytag: member="vdpau.h::VdpBitmapSurface" ref="gad320825923573683205bfe94c4f0f6b9" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef uint32_t <a class="el" href="group___vdp_bitmap_surface.html#gad320825923573683205bfe94c4f0f6b9">VdpBitmapSurface</a></td> </tr> </table> </div> <div class="memdoc"> <p>An opaque handle representing a VdpBitmapSurface object. </p> </div> </div> <a class="anchor" id="gae6f9b251f8cfb6a807b0a1f871efb887"></a><!-- doxytag: member="vdpau.h::VdpBitmapSurfaceCreate" ref="gae6f9b251f8cfb6a807b0a1f871efb887" args="(VdpDevice device, VdpRGBAFormat rgba_format, uint32_t width, uint32_t height, VdpBool frequently_accessed, VdpBitmapSurface *surface)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef <a class="el" href="group__error__handling.html#ga7fa6c302213052e531b20bab723e5778">VdpStatus</a> <a class="el" href="group___vdp_bitmap_surface.html#gae6f9b251f8cfb6a807b0a1f871efb887">VdpBitmapSurfaceCreate</a>(<a class="el" href="group___vdp_device.html#gae7abc48cf32de14e4c8f249bf06e1605">VdpDevice</a> device, <a class="el" href="group__misc__types.html#ga718383d01ac1ff36094fb46f91a8a3aa">VdpRGBAFormat</a> rgba_format, uint32_t width, uint32_t height, <a class="el" href="group__base__types.html#ga2572319be6fed508c86cbe5ca96eeb73">VdpBool</a> frequently_accessed,<a class="el" href="group___vdp_bitmap_surface.html#gad320825923573683205bfe94c4f0f6b9">VdpBitmapSurface</a> *surface)</td> </tr> </table> </div> <div class="memdoc"> <p>Create a VdpBitmapSurface. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>device</em> </td><td>The device that will contain the surface. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>rgba_format</em> </td><td>The format of the new surface. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>width</em> </td><td>The width of the new surface. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>height</em> </td><td>The height of the new surface. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>frequently_accessed</em> </td><td>Is this bitmap used frequently, or infrequently, by compositing options? Implementations may use this as a hint to determine how to allocate the underlying storage for the surface. </td></tr> <tr><td valign="top"><tt>[out]</tt> </td><td valign="top"><em>surface</em> </td><td>The new surface's handle. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>VdpStatus The completion status of the operation.</dd></dl> <p>The memory backing the surface may not be initialized during creation. Applications are expected initialize any region that they use, via <a class="el" href="group___vdp_bitmap_surface.html#ga05d4ffd24f7c919103b3dc2c45487983">VdpBitmapSurfacePutBitsNative</a>. </p> </div> </div> <a class="anchor" id="ga9f24ca76de4b6c4b59fb9283f9404494"></a><!-- doxytag: member="vdpau.h::VdpBitmapSurfaceDestroy" ref="ga9f24ca76de4b6c4b59fb9283f9404494" args="(VdpBitmapSurface surface)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef <a class="el" href="group__error__handling.html#ga7fa6c302213052e531b20bab723e5778">VdpStatus</a> <a class="el" href="group___vdp_bitmap_surface.html#ga9f24ca76de4b6c4b59fb9283f9404494">VdpBitmapSurfaceDestroy</a>(<a class="el" href="group___vdp_bitmap_surface.html#gad320825923573683205bfe94c4f0f6b9">VdpBitmapSurface</a> surface)</td> </tr> </table> </div> <div class="memdoc"> <p>Destroy a VdpBitmapSurface. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>surface</em> </td><td>The surface's handle. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>VdpStatus The completion status of the operation. </dd></dl> </div> </div> <a class="anchor" id="gaf48a784eea914943a1db1d22575bd9fd"></a><!-- doxytag: member="vdpau.h::VdpBitmapSurfaceGetParameters" ref="gaf48a784eea914943a1db1d22575bd9fd" args="(VdpBitmapSurface surface, VdpRGBAFormat *rgba_format, uint32_t *width, uint32_t *height, VdpBool *frequently_accessed)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef <a class="el" href="group__error__handling.html#ga7fa6c302213052e531b20bab723e5778">VdpStatus</a> <a class="el" href="group___vdp_bitmap_surface.html#gaf48a784eea914943a1db1d22575bd9fd">VdpBitmapSurfaceGetParameters</a>(<a class="el" href="group___vdp_bitmap_surface.html#gad320825923573683205bfe94c4f0f6b9">VdpBitmapSurface</a> surface,<a class="el" href="group__misc__types.html#ga718383d01ac1ff36094fb46f91a8a3aa">VdpRGBAFormat</a> *rgba_format, uint32_t *width, uint32_t *height, <a class="el" href="group__base__types.html#ga2572319be6fed508c86cbe5ca96eeb73">VdpBool</a> *frequently_accessed)</td> </tr> </table> </div> <div class="memdoc"> <p>Retrieve the parameters used to create a VdpBitmapSurface. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>surface</em> </td><td>The surface's handle. </td></tr> <tr><td valign="top"><tt>[out]</tt> </td><td valign="top"><em>rgba_format</em> </td><td>The format of the surface. </td></tr> <tr><td valign="top"><tt>[out]</tt> </td><td valign="top"><em>width</em> </td><td>The width of the surface. </td></tr> <tr><td valign="top"><tt>[out]</tt> </td><td valign="top"><em>height</em> </td><td>The height of the surface. </td></tr> <tr><td valign="top"><tt>[out]</tt> </td><td valign="top"><em>frequently_accessed</em> </td><td>The frequently_accessed state of the surface. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>VdpStatus The completion status of the operation. </dd></dl> </div> </div> <a class="anchor" id="ga05d4ffd24f7c919103b3dc2c45487983"></a><!-- doxytag: member="vdpau.h::VdpBitmapSurfacePutBitsNative" ref="ga05d4ffd24f7c919103b3dc2c45487983" args="(VdpBitmapSurface surface, void const *const *source_data, uint32_t const *source_pitches, VdpRect const *destination_rect)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef <a class="el" href="group__error__handling.html#ga7fa6c302213052e531b20bab723e5778">VdpStatus</a> <a class="el" href="group___vdp_bitmap_surface.html#ga05d4ffd24f7c919103b3dc2c45487983">VdpBitmapSurfacePutBitsNative</a>(<a class="el" href="group___vdp_bitmap_surface.html#gad320825923573683205bfe94c4f0f6b9">VdpBitmapSurface</a> surface, void const *const *source_data, uint32_t const *source_pitches, <a class="el" href="struct_vdp_rect.html">VdpRect</a> const *destination_rect)</td> </tr> </table> </div> <div class="memdoc"> <p>Copy image data from application memory in the surface's native format to a VdpBitmapSurface. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>surface</em> </td><td>The surface's handle. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>source_data</em> </td><td>Pointers to the application data buffers from which the image data will be copied. Note that this is an array of pointers, one per plane. The source_format parameter will define how many planes are required. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>source_pitches</em> </td><td>Pointers to the pitch values for the application data buffers. Note that this is an array of pointers, one per plane. The source_format parameter will define how many planes are required. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>destination_rect</em> </td><td>The sub-rectangle of the surface to fill with application data. If NULL, the entire surface will be updated. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>VdpStatus The completion status of the operation. </dd></dl> </div> </div> <a class="anchor" id="gad5fa26d20c3811c3974a6423419c1bb1"></a><!-- doxytag: member="vdpau.h::VdpBitmapSurfaceQueryCapabilities" ref="gad5fa26d20c3811c3974a6423419c1bb1" args="(VdpDevice device, VdpRGBAFormat surface_rgba_format, VdpBool *is_supported, uint32_t *max_width, uint32_t *max_height)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef <a class="el" href="group__error__handling.html#ga7fa6c302213052e531b20bab723e5778">VdpStatus</a> <a class="el" href="group___vdp_bitmap_surface.html#gad5fa26d20c3811c3974a6423419c1bb1">VdpBitmapSurfaceQueryCapabilities</a>(<a class="el" href="group___vdp_device.html#gae7abc48cf32de14e4c8f249bf06e1605">VdpDevice</a> device, <a class="el" href="group__misc__types.html#ga718383d01ac1ff36094fb46f91a8a3aa">VdpRGBAFormat</a> surface_rgba_format,<a class="el" href="group__base__types.html#ga2572319be6fed508c86cbe5ca96eeb73">VdpBool</a> *is_supported, uint32_t *max_width, uint32_t *max_height)</td> </tr> </table> </div> <div class="memdoc"> <p>Query the implementation's VdpBitmapSurface capabilities. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>device</em> </td><td>The device to query. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>surface_rgba_format</em> </td><td>The surface format for which information is requested. </td></tr> <tr><td valign="top"><tt>[out]</tt> </td><td valign="top"><em>is_supported</em> </td><td>Is this surface format supported? </td></tr> <tr><td valign="top"><tt>[out]</tt> </td><td valign="top"><em>max_width</em> </td><td>The maximum supported surface width for this chroma type. </td></tr> <tr><td valign="top"><tt>[out]</tt> </td><td valign="top"><em>max_height</em> </td><td>The maximum supported surface height for this chroma type. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>VdpStatus The completion status of the operation. </dd></dl> </div> </div> </div> <hr size="1"/><address style="text-align: right;"><small>Generated by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address> </body> </html>