gfx/thebes/gfxD2DSurface.h

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:d8a72f1ff673
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/. */
5
6 #ifndef GFX_D2DSURFACE_H
7 #define GFX_D2DSURFACE_H
8
9 #include "gfxASurface.h"
10 #include "nsPoint.h"
11
12 #include <windows.h>
13
14 struct ID3D10Texture2D;
15 struct nsIntRect;
16
17 class gfxD2DSurface : public gfxASurface {
18 public:
19
20 gfxD2DSurface(HWND wnd,
21 gfxContentType aContent);
22
23 gfxD2DSurface(const gfxIntSize& size,
24 gfxImageFormat imageFormat = gfxImageFormat::RGB24);
25
26 gfxD2DSurface(HANDLE handle, gfxContentType aContent);
27
28 gfxD2DSurface(ID3D10Texture2D *texture, gfxContentType aContent);
29
30 gfxD2DSurface(cairo_surface_t *csurf);
31
32 void MovePixels(const nsIntRect& aSourceRect,
33 const nsIntPoint& aDestTopLeft)
34 {
35 FastMovePixels(aSourceRect, aDestTopLeft);
36 }
37
38 virtual ~gfxD2DSurface();
39
40 void Present();
41 void Scroll(const nsIntPoint &aDelta, const nsIntRect &aClip);
42
43 virtual const gfxIntSize GetSize() const;
44
45 ID3D10Texture2D *GetTexture();
46
47 HDC GetDC(bool aRetainContents);
48 void ReleaseDC(const nsIntRect *aUpdatedRect);
49 };
50
51 #endif /* GFX_D2DSURFACE_H */

mercurial