Bumping manifests a=b2g-bump
[gecko.git] / gfx / thebes / gfxD2DSurface.h
blob10687e6403281ecd536183bedecdd51e3e728cee
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"
10 #include "nsPoint.h"
12 #include <windows.h>
14 struct ID3D10Texture2D;
15 struct nsIntRect;
17 class gfxD2DSurface : public gfxASurface {
18 public:
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();
34 void Present();
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 */