/usr/include/cairomm-1.0/cairomm/win32_surface.h is in libcairomm-1.0-dev 1.12.0-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 | /* Copyright (C) 2005 The cairomm Development Team
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
#ifndef __CAIROMM_WIN32_SURFACE_H
#define __CAIROMM_WIN32_SURFACE_H
#include <cairomm/surface.h>
#include <cairomm/enums.h>
#include <cairo-features.h>
#ifdef CAIRO_HAS_WIN32_SURFACE
#include <cairo-win32.h>
// This header is not included by cairomm.h because it requires Windows headers that
// tend to pollute the namespace with non-prefixed #defines and typedefs.
// You may include it directly if you need to use this API.
namespace Cairo
{
/** A Win32Surface provides a way to render within Microsoft Windows. If you
* want to draw to the screen within a Microsoft Windows application, you
* should use this Surface type.
*
* @note For this Surface to be available, cairo must have been compiled with
* Win32 support
*/
class Win32Surface : public Surface
{
public:
/** Create a C++ wrapper for the C instance. This C++ instance should then be
* given to a RefPtr.
*
* @param cobject The C instance.
* @param has_reference whether we already have a reference. Otherwise, the
* constructor will take an extra reference.
*/
explicit Win32Surface(cairo_surface_t* cobject, bool has_reference = false);
virtual ~Win32Surface();
/** Returns the HDC associated with this surface, or NULL if none. Also
* returns NULL if the surface is not a win32 surface.
*
* @return HDC or NULL if no HDC available.
*/
HDC get_dc() const;
//TODO: What does owned mean here? murrayc
//TODO: If this is just a get, shouldn't there be a const version too? murrayc
/** Returns a ImageSurface that refers to the same bits as the DIB of the
* Win32 surface. If the passed-in win32 surface is not a DIB surface, the
* returned surface will be NULL
*
* @return a ImageSurface (owned by the Win32Surface), or an empty RefPtr if the win32
* surface is not a DIB.
*
* @since 1.8
*/
RefPtr<ImageSurface> get_image();
/** 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. Also, if the DC is a raster DC, it will be queried for its
* pixel format and the cairo surface format will be set appropriately.
*
* @param hdc the DC to create a surface for.
* @return the newly created surface.
*/
static RefPtr<Win32Surface> create(HDC hdc);
/**
* @deprecated use create_with_dib()
*/
static RefPtr<Win32Surface> create(Format format, int width, int height);
/** Creates a device-independent-bitmap surface not associated with any
* particular existing surface or device context. The created bitmap will be
* unititialized.
*
* @param format format of pixels in the surface to create.
* @param width width of the surface, in pixels.
* @param height height of the surface, in pixels.
* @return the newly created surface.
*
* @since 1.8
*/
static RefPtr<Win32Surface> create_with_dib(Format format, int width, int height);
/** Creates a device-independent-bitmap surface not associated with any
* particular existing surface or device context. The created bitmap will be
* uninitialized.
*
* @param hdc the DC to create a surface for.
* @param format format of pixels in the surface to create,
* @param width width of the surface, in pixels.
* @param height height of the surface, in pixels.
* @return the newly created surface.
*
* @since 1.8
*/
static RefPtr<Win32Surface> create_with_ddb(HDC hdc, Format format, int width, int height);
};
/** A multi-page vector surface type for printing on Microsoft Windows
*
* @note For this Surface to be available, cairo must have been compiled with
* Win32 support
*
* @since 1.8
*/
class Win32PrintingSurface : public Surface
{
public:
explicit Win32PrintingSurface(cairo_surface_t* cobject, bool has_reference = false);
virtual ~Win32PrintingSurface();
/** 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.
*
* The returned surface will be wrapped using the paginated surface to provide
* correct complex rendering behaviour; show_page() and associated methods
* must be used for correct output.
*
* @param hdc the DC to create a surface for.
*
* @since 1.8
*/
static RefPtr<Win32PrintingSurface> create(HDC hdc);
};
} // namespace Cairo
#endif // CAIRO_HAS_WIN32_SURFACE
#endif //__CAIROMM_WIN32_SURFACE_H
// vim: ts=2 sw=2 et
|