Line data Source code
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 GFX_CanvasLayerMLGPU_H
7 : #define GFX_CanvasLayerMLGPU_H
8 :
9 : #include "Layers.h" // for CanvasLayer, etc
10 : #include "TexturedLayerMLGPU.h"
11 : #include "mozilla/Attributes.h" // for override
12 : #include "mozilla/RefPtr.h" // for RefPtr
13 : #include "mozilla/layers/LayerManagerMLGPU.h" // for LayerComposite, etc
14 : #include "mozilla/layers/LayersTypes.h" // for LayerRenderState, etc
15 : #include "nsDebug.h" // for NS_RUNTIMEABORT
16 : #include "nsRect.h" // for mozilla::gfx::IntRect
17 : #include "nscore.h" // for nsACString
18 :
19 : namespace mozilla {
20 : namespace layers {
21 :
22 : class CompositableHost;
23 : class ImageHost;
24 :
25 : class CanvasLayerMLGPU final : public CanvasLayer,
26 : public TexturedLayerMLGPU
27 : {
28 : public:
29 : explicit CanvasLayerMLGPU(LayerManagerMLGPU* aManager);
30 :
31 : protected:
32 : ~CanvasLayerMLGPU() override;
33 :
34 : public:
35 0 : void Initialize(const Data& aData) override {
36 0 : MOZ_CRASH("Incompatibe surface type");
37 : }
38 :
39 : Layer* GetLayer() override;
40 : void Disconnect() override;
41 :
42 0 : HostLayer* AsHostLayer() override { return this; }
43 0 : CanvasLayerMLGPU* AsCanvasLayerMLGPU() override { return this; }
44 : gfx::SamplingFilter GetSamplingFilter() override;
45 : void ClearCachedResources() override;
46 : void SetRegionToRender(LayerIntRegion&& aRegion) override;
47 :
48 0 : MOZ_LAYER_DECL_NAME("CanvasLayerMLGPU", TYPE_CANVAS)
49 :
50 : protected:
51 : void PrintInfo(std::stringstream& aStream, const char* aPrefix) override;
52 : void CleanupResources();
53 : };
54 :
55 : } // namespace layers
56 : } // namespace mozilla
57 :
58 : #endif /* GFX_CanvasLayerMLGPU_H */
|