1 /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*-
2 * This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 #ifndef GFX_D2DSURFACE_H
7 #define GFX_D2DSURFACE_H
9 #include "gfxASurface.h"
14 struct ID3D10Texture2D
;
17 class gfxD2DSurface
: public gfxASurface
{
20 gfxD2DSurface(HWND wnd
,
21 gfxContentType aContent
);
23 gfxD2DSurface(const gfxIntSize
& size
,
24 gfxImageFormat imageFormat
= gfxImageFormat::RGB24
);
26 gfxD2DSurface(HANDLE handle
, gfxContentType aContent
);
28 gfxD2DSurface(ID3D10Texture2D
*texture
, gfxContentType aContent
);
30 gfxD2DSurface(cairo_surface_t
*csurf
);
32 virtual ~gfxD2DSurface();
35 void Scroll(const nsIntPoint
&aDelta
, const nsIntRect
&aClip
);
37 virtual const gfxIntSize
GetSize() const;
39 ID3D10Texture2D
*GetTexture();
41 HDC
GetDC(bool aRetainContents
);
42 void ReleaseDC(const nsIntRect
*aUpdatedRect
);
45 #endif /* GFX_D2DSURFACE_H */