gfx/layers/basic/X11TextureSourceBasic.h

branch
TOR_BUG_3246
changeset 7
129ffea94266
equal deleted inserted replaced
-1:000000000000 0:ffb32de349c3
1 /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 2 -*-
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 MOZILLA_GFX_X11TEXTURESOURCEBASIC__H
7 #define MOZILLA_GFX_X11TEXTURESOURCEBASIC__H
8
9 #include "mozilla/layers/TextureHostBasic.h"
10 #include "mozilla/gfx/2D.h"
11
12 namespace mozilla {
13 namespace layers {
14
15 class BasicCompositor;
16
17 // TextureSource for Xlib-backed surfaces.
18 class X11TextureSourceBasic
19 : public TextureSourceBasic
20 , public NewTextureSource
21 {
22 public:
23 X11TextureSourceBasic(BasicCompositor* aCompositor, gfxXlibSurface* aSurface);
24
25 virtual X11TextureSourceBasic* AsSourceBasic() MOZ_OVERRIDE { return this; }
26
27 virtual gfx::IntSize GetSize() const MOZ_OVERRIDE;
28
29 virtual gfx::SurfaceFormat GetFormat() const MOZ_OVERRIDE;
30
31 virtual gfx::SourceSurface* GetSurface(gfx::DrawTarget* aTarget) MOZ_OVERRIDE;
32
33 virtual void DeallocateDeviceData() MOZ_OVERRIDE { }
34
35 virtual void SetCompositor(Compositor* aCompositor);
36
37 static gfx::SurfaceFormat ContentTypeToSurfaceFormat(gfxContentType aType);
38
39 protected:
40 BasicCompositor* mCompositor;
41 RefPtr<gfxXlibSurface> mSurface;
42 RefPtr<gfx::SourceSurface> mSourceSurface;
43 };
44
45 } // namespace layers
46 } // namespace mozilla
47
48 #endif // MOZILLA_GFX_X11TEXTURESOURCEBASIC__H

mercurial