Mercurial > repos > rliterman > csp2
view CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/share/gtk-doc/html/cairo/cairo-Win32-Surfaces.html @ 68:5028fdace37b
planemo upload commit 2e9511a184a1ca667c7be0c6321a36dc4e3d116d
author | jpayne |
---|---|
date | Tue, 18 Mar 2025 16:23:26 -0400 |
parents | |
children |
line wrap: on
line source
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Win32 Surfaces: Cairo: A Vector Graphics Library</title> <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"> <link rel="home" href="index.html" title="Cairo: A Vector Graphics Library"> <link rel="up" href="cairo-surfaces.html" title="Surfaces"> <link rel="prev" href="cairo-Recording-Surfaces.html" title="Recording Surfaces"> <link rel="next" href="cairo-SVG-Surfaces.html" title="SVG Surfaces"> <meta name="generator" content="GTK-Doc V1.27 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> <td width="100%" align="left" class="shortcuts"> <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> <a href="#cairo-Win32-Surfaces.description" class="shortcut">Description</a></span> </td> <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> <td><a accesskey="u" href="cairo-surfaces.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> <td><a accesskey="p" href="cairo-Recording-Surfaces.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> <td><a accesskey="n" href="cairo-SVG-Surfaces.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="cairo-Win32-Surfaces"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> <td valign="top"> <h2><span class="refentrytitle"><a name="cairo-Win32-Surfaces.top_of_page"></a>Win32 Surfaces</span></h2> <p>Win32 Surfaces — Microsoft Windows surface support</p> </td> <td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="cairo-Win32-Surfaces.functions"></a><h2>Functions</h2> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="150px" class="functions_return"> <col class="functions_name"> </colgroup> <tbody> <tr> <td class="function_type"> <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> * </td> <td class="function_name"> <a class="link" href="cairo-Win32-Surfaces.html#cairo-win32-surface-create" title="cairo_win32_surface_create ()">cairo_win32_surface_create</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> * </td> <td class="function_name"> <a class="link" href="cairo-Win32-Surfaces.html#cairo-win32-surface-create-with-dib" title="cairo_win32_surface_create_with_dib ()">cairo_win32_surface_create_with_dib</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> * </td> <td class="function_name"> <a class="link" href="cairo-Win32-Surfaces.html#cairo-win32-surface-create-with-ddb" title="cairo_win32_surface_create_with_ddb ()">cairo_win32_surface_create_with_ddb</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> * </td> <td class="function_name"> <a class="link" href="cairo-Win32-Surfaces.html#cairo-win32-surface-create-with-format" title="cairo_win32_surface_create_with_format ()">cairo_win32_surface_create_with_format</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> * </td> <td class="function_name"> <a class="link" href="cairo-Win32-Surfaces.html#cairo-win32-printing-surface-create" title="cairo_win32_printing_surface_create ()">cairo_win32_printing_surface_create</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <span class="returnvalue">HDC</span> </td> <td class="function_name"> <a class="link" href="cairo-Win32-Surfaces.html#cairo-win32-surface-get-dc" title="cairo_win32_surface_get_dc ()">cairo_win32_surface_get_dc</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> * </td> <td class="function_name"> <a class="link" href="cairo-Win32-Surfaces.html#cairo-win32-surface-get-image" title="cairo_win32_surface_get_image ()">cairo_win32_surface_get_image</a> <span class="c_punctuation">()</span> </td> </tr> </tbody> </table></div> </div> <div class="refsect1"> <a name="cairo-Win32-Surfaces.other"></a><h2>Types and Values</h2> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="150px" class="name"> <col class="description"> </colgroup> <tbody><tr> <td class="define_keyword">#define</td> <td class="function_name"><a class="link" href="cairo-Win32-Surfaces.html#CAIRO-HAS-WIN32-SURFACE:CAPS" title="CAIRO_HAS_WIN32_SURFACE">CAIRO_HAS_WIN32_SURFACE</a></td> </tr></tbody> </table></div> </div> <div class="refsect1"> <a name="cairo-Win32-Surfaces.description"></a><h2>Description</h2> <p>The Microsoft Windows surface is used to render cairo graphics to Microsoft Windows windows, bitmaps, and printing device contexts.</p> <p>The surface returned by <a class="link" href="cairo-Win32-Surfaces.html#cairo-win32-printing-surface-create" title="cairo_win32_printing_surface_create ()"><code class="function">cairo_win32_printing_surface_create()</code></a> is of surface type <a class="link" href="cairo-cairo-surface-t.html#CAIRO-SURFACE-TYPE-WIN32-PRINTING:CAPS"><code class="literal">CAIRO_SURFACE_TYPE_WIN32_PRINTING</code></a> and is a multi-page vector surface type.</p> <p>The surface returned by the other win32 constructors is of surface type <a class="link" href="cairo-cairo-surface-t.html#CAIRO-SURFACE-TYPE-WIN32:CAPS"><code class="literal">CAIRO_SURFACE_TYPE_WIN32</code></a> and is a raster surface type.</p> </div> <div class="refsect1"> <a name="cairo-Win32-Surfaces.functions_details"></a><h2>Functions</h2> <div class="refsect2"> <a name="cairo-win32-surface-create"></a><h3>cairo_win32_surface_create ()</h3> <pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> * cairo_win32_surface_create (<em class="parameter"><code><span class="type">HDC</span> hdc</code></em>);</pre> <p>Creates a cairo surface that targets the given DC. The DC will be queried for its initial clip extents, and this will be used as the size of the cairo surface. The resulting surface will always be of format <a class="link" href="cairo-Image-Surfaces.html#CAIRO-FORMAT-RGB24:CAPS"><code class="literal">CAIRO_FORMAT_RGB24</code></a>; should you need another surface format, you will need to create one through <a class="link" href="cairo-Win32-Surfaces.html#cairo-win32-surface-create-with-format" title="cairo_win32_surface_create_with_format ()"><code class="function">cairo_win32_surface_create_with_format()</code></a> or <a class="link" href="cairo-Win32-Surfaces.html#cairo-win32-surface-create-with-dib" title="cairo_win32_surface_create_with_dib ()"><code class="function">cairo_win32_surface_create_with_dib()</code></a>.</p> <div class="refsect3"> <a name="cairo-win32-surface-create.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="150px" class="parameters_name"> <col class="parameters_description"> <col width="200px" class="parameters_annotations"> </colgroup> <tbody><tr> <td class="parameter_name"><p>hdc</p></td> <td class="parameter_description"><p>the DC to create a surface for</p></td> <td class="parameter_annotations"> </td> </tr></tbody> </table></div> </div> <div class="refsect3"> <a name="cairo-win32-surface-create.returns"></a><h4>Returns</h4> <p> the newly created surface, NULL on failure</p> </div> <p class="since">Since: 1.0</p> </div> <hr> <div class="refsect2"> <a name="cairo-win32-surface-create-with-dib"></a><h3>cairo_win32_surface_create_with_dib ()</h3> <pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> * cairo_win32_surface_create_with_dib (<em class="parameter"><code><a class="link" href="cairo-Image-Surfaces.html#cairo-format-t" title="enum cairo_format_t"><span class="type">cairo_format_t</span></a> format</code></em>, <em class="parameter"><code><span class="type">int</span> width</code></em>, <em class="parameter"><code><span class="type">int</span> height</code></em>);</pre> <p>Creates a device-independent-bitmap surface not associated with any particular existing surface or device context. The created bitmap will be uninitialized.</p> <div class="refsect3"> <a name="cairo-win32-surface-create-with-dib.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="150px" class="parameters_name"> <col class="parameters_description"> <col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> <td class="parameter_name"><p>format</p></td> <td class="parameter_description"><p>format of pixels in the surface to create</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>width</p></td> <td class="parameter_description"><p>width of the surface, in pixels</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>height</p></td> <td class="parameter_description"><p>height of the surface, in pixels</p></td> <td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> <div class="refsect3"> <a name="cairo-win32-surface-create-with-dib.returns"></a><h4>Returns</h4> <p> the newly created surface</p> </div> <p class="since">Since: 1.2</p> </div> <hr> <div class="refsect2"> <a name="cairo-win32-surface-create-with-ddb"></a><h3>cairo_win32_surface_create_with_ddb ()</h3> <pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> * cairo_win32_surface_create_with_ddb (<em class="parameter"><code><span class="type">HDC</span> hdc</code></em>, <em class="parameter"><code><a class="link" href="cairo-Image-Surfaces.html#cairo-format-t" title="enum cairo_format_t"><span class="type">cairo_format_t</span></a> format</code></em>, <em class="parameter"><code><span class="type">int</span> width</code></em>, <em class="parameter"><code><span class="type">int</span> height</code></em>);</pre> <p>Creates a device-dependent-bitmap surface not associated with any particular existing surface or device context. The created bitmap will be uninitialized.</p> <div class="refsect3"> <a name="cairo-win32-surface-create-with-ddb.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="150px" class="parameters_name"> <col class="parameters_description"> <col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> <td class="parameter_name"><p>hdc</p></td> <td class="parameter_description"><p>a DC compatible with the surface to create</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>format</p></td> <td class="parameter_description"><p>format of pixels in the surface to create</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>width</p></td> <td class="parameter_description"><p>width of the surface, in pixels</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>height</p></td> <td class="parameter_description"><p>height of the surface, in pixels</p></td> <td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> <div class="refsect3"> <a name="cairo-win32-surface-create-with-ddb.returns"></a><h4>Returns</h4> <p> the newly created surface</p> </div> <p class="since">Since: 1.4</p> </div> <hr> <div class="refsect2"> <a name="cairo-win32-surface-create-with-format"></a><h3>cairo_win32_surface_create_with_format ()</h3> <pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> * cairo_win32_surface_create_with_format (<em class="parameter"><code><span class="type">HDC</span> hdc</code></em>, <em class="parameter"><code><a class="link" href="cairo-Image-Surfaces.html#cairo-format-t" title="enum cairo_format_t"><span class="type">cairo_format_t</span></a> format</code></em>);</pre> <p>Creates a cairo surface that targets the given DC. The DC will be queried for its initial clip extents, and this will be used as the size of the cairo surface.</p> <p>Supported formats are: <a class="link" href="cairo-Image-Surfaces.html#CAIRO-FORMAT-ARGB32:CAPS"><code class="literal">CAIRO_FORMAT_ARGB32</code></a> <a class="link" href="cairo-Image-Surfaces.html#CAIRO-FORMAT-RGB24:CAPS"><code class="literal">CAIRO_FORMAT_RGB24</code></a></p> <p>Note: <em class="parameter"><code>format</code></em> only tells cairo how to draw on the surface, not what the format of the surface is. Namely, cairo does not (and cannot) check that <em class="parameter"><code>hdc</code></em> actually supports alpha-transparency.</p> <div class="refsect3"> <a name="cairo-win32-surface-create-with-format.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="150px" class="parameters_name"> <col class="parameters_description"> <col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> <td class="parameter_name"><p>hdc</p></td> <td class="parameter_description"><p>the DC to create a surface for</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>format</p></td> <td class="parameter_description"><p>format of pixels in the surface to create</p></td> <td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> <div class="refsect3"> <a name="cairo-win32-surface-create-with-format.returns"></a><h4>Returns</h4> <p> the newly created surface, NULL on failure</p> </div> <p class="since">Since: 1.14</p> </div> <hr> <div class="refsect2"> <a name="cairo-win32-printing-surface-create"></a><h3>cairo_win32_printing_surface_create ()</h3> <pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> * cairo_win32_printing_surface_create (<em class="parameter"><code><span class="type">HDC</span> hdc</code></em>);</pre> <p>Creates a cairo surface that targets the given DC. The DC will be queried for its initial clip extents, and this will be used as the size of the cairo surface. The DC should be a printing DC; antialiasing will be ignored, and GDI will be used as much as possible to draw to the surface.</p> <p>The returned surface will be wrapped using the paginated surface to provide correct complex rendering behaviour; <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-show-page" title="cairo_surface_show_page ()"><code class="function">cairo_surface_show_page()</code></a> and associated methods must be used for correct output.</p> <div class="refsect3"> <a name="cairo-win32-printing-surface-create.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="150px" class="parameters_name"> <col class="parameters_description"> <col width="200px" class="parameters_annotations"> </colgroup> <tbody><tr> <td class="parameter_name"><p>hdc</p></td> <td class="parameter_description"><p>the DC to create a surface for</p></td> <td class="parameter_annotations"> </td> </tr></tbody> </table></div> </div> <div class="refsect3"> <a name="cairo-win32-printing-surface-create.returns"></a><h4>Returns</h4> <p> the newly created surface</p> </div> <p class="since">Since: 1.6</p> </div> <hr> <div class="refsect2"> <a name="cairo-win32-surface-get-dc"></a><h3>cairo_win32_surface_get_dc ()</h3> <pre class="programlisting"><span class="returnvalue">HDC</span> cairo_win32_surface_get_dc (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>);</pre> <p>Returns the HDC associated with this surface, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if none. Also returns <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the surface is not a win32 surface.</p> <p>A call to <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-flush" title="cairo_surface_flush ()"><code class="function">cairo_surface_flush()</code></a> is required before using the HDC to ensure that all pending drawing operations are finished and to restore any temporary modification cairo has made to its state. A call to <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-mark-dirty" title="cairo_surface_mark_dirty ()"><code class="function">cairo_surface_mark_dirty()</code></a> is required after the state or the content of the HDC has been modified.</p> <div class="refsect3"> <a name="cairo-win32-surface-get-dc.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="150px" class="parameters_name"> <col class="parameters_description"> <col width="200px" class="parameters_annotations"> </colgroup> <tbody><tr> <td class="parameter_name"><p>surface</p></td> <td class="parameter_description"><p>a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p></td> <td class="parameter_annotations"> </td> </tr></tbody> </table></div> </div> <div class="refsect3"> <a name="cairo-win32-surface-get-dc.returns"></a><h4>Returns</h4> <p> HDC or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if no HDC available.</p> </div> <p class="since">Since: 1.2</p> </div> <hr> <div class="refsect2"> <a name="cairo-win32-surface-get-image"></a><h3>cairo_win32_surface_get_image ()</h3> <pre class="programlisting"><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="returnvalue">cairo_surface_t</span></a> * cairo_win32_surface_get_image (<em class="parameter"><code><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> *surface</code></em>);</pre> <p>Returns a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> image surface that refers to the same bits as the DIB of the Win32 surface. If the passed-in win32 surface is not a DIB surface, <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> is returned.</p> <div class="refsect3"> <a name="cairo-win32-surface-get-image.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="150px" class="parameters_name"> <col class="parameters_description"> <col width="200px" class="parameters_annotations"> </colgroup> <tbody><tr> <td class="parameter_name"><p>surface</p></td> <td class="parameter_description"><p>a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p></td> <td class="parameter_annotations"> </td> </tr></tbody> </table></div> </div> <div class="refsect3"> <a name="cairo-win32-surface-get-image.returns"></a><h4>Returns</h4> <p> a <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a> (owned by the win32 <a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a>), or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the win32 surface is not a DIB.</p> </div> <p class="since">Since: 1.4</p> </div> </div> <div class="refsect1"> <a name="cairo-Win32-Surfaces.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="CAIRO-HAS-WIN32-SURFACE:CAPS"></a><h3>CAIRO_HAS_WIN32_SURFACE</h3> <pre class="programlisting">#define CAIRO_HAS_WIN32_SURFACE 1 </pre> <p>Defined if the Microsoft Windows surface backend is available. This macro can be used to conditionally compile backend-specific code.</p> <p class="since">Since: 1.0</p> </div> </div> <div class="refsect1"> <a name="cairo-Win32-Surfaces.see-also"></a><h2>See Also</h2> <p><a class="link" href="cairo-cairo-surface-t.html#cairo-surface-t" title="cairo_surface_t"><span class="type">cairo_surface_t</span></a></p> </div> </div> <div class="footer"> <hr>Generated by GTK-Doc V1.27</div> </body> </html>