Coverage Report

Created: 2018-09-25 14:53

/src/mozilla-central/gfx/layers/composite/GPUVideoTextureHost.h
Line
Count
Source (jump to first uncovered line)
1
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
3
/* This Source Code Form is subject to the terms of the Mozilla Public
4
 * License, v. 2.0. If a copy of the MPL was not distributed with this
5
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6
7
#ifndef MOZILLA_GFX_GPUVIDEOTEXTUREHOST_H
8
#define MOZILLA_GFX_GPUVIDEOTEXTUREHOST_H
9
10
#include "mozilla/layers/TextureHost.h"
11
12
namespace mozilla {
13
namespace layers {
14
15
class GPUVideoTextureHost : public TextureHost
16
{
17
public:
18
  static GPUVideoTextureHost* CreateFromDescriptor(
19
    TextureFlags aFlags,
20
    const SurfaceDescriptorGPUVideo& aDescriptor);
21
22
  virtual ~GPUVideoTextureHost();
23
24
0
  virtual void DeallocateDeviceData() override {}
25
26
  virtual void SetTextureSourceProvider(TextureSourceProvider* aProvider) override;
27
28
  virtual bool Lock() override;
29
30
  virtual void Unlock() override;
31
32
  virtual gfx::SurfaceFormat GetFormat() const override;
33
34
  virtual bool BindTextureSource(CompositableTextureSourceRef& aTexture) override;
35
  virtual bool AcquireTextureSource(CompositableTextureSourceRef& aTexture) override;
36
37
  virtual already_AddRefed<gfx::DataSourceSurface> GetAsSurface() override
38
0
  {
39
0
    return nullptr; // XXX - implement this (for MOZ_DUMP_PAINTING)
40
0
  }
41
42
  virtual YUVColorSpace GetYUVColorSpace() const override;
43
44
  virtual gfx::IntSize GetSize() const override;
45
46
#ifdef MOZ_LAYERS_HAVE_LOG
47
0
  virtual const char* Name() override { return "GPUVideoTextureHost"; }
48
#endif
49
50
  virtual bool HasIntermediateBuffer() const override;
51
52
  virtual void CreateRenderTexture(const wr::ExternalImageId& aExternalImageId) override;
53
54
  virtual uint32_t NumSubTextures() const override;
55
56
  virtual void PushResourceUpdates(wr::TransactionBuilder& aResources,
57
                                   ResourceUpdateOp aOp,
58
                                   const Range<wr::ImageKey>& aImageKeys,
59
                                   const wr::ExternalImageId& aExtID) override;
60
61
  virtual void PushDisplayItems(wr::DisplayListBuilder& aBuilder,
62
                                const wr::LayoutRect& aBounds,
63
                                const wr::LayoutRect& aClip,
64
                                wr::ImageRendering aFilter,
65
                                const Range<wr::ImageKey>& aImageKeys) override;
66
67
  virtual bool SupportsWrNativeTexture() override;
68
69
protected:
70
  GPUVideoTextureHost(TextureFlags aFlags, TextureHost* aWrappedTextureHost);
71
72
  RefPtr<TextureHost> mWrappedTextureHost;
73
};
74
75
} // namespace layers
76
} // namespace mozilla
77
78
#endif // MOZILLA_GFX_GPUVIDEOTEXTUREHOST_H