Coverage Report

Created: 2018-09-25 14:53

/src/mozilla-central/gfx/layers/mlgpu/RenderPassMLGPU-inl.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_layers_mlgpu_RenderPassMLGPU_inl_h
8
#define mozilla_gfx_layers_mlgpu_RenderPassMLGPU_inl_h
9
10
namespace mozilla {
11
namespace layers {
12
13
template <typename Traits>
14
static inline bool
15
AddShaderTriangles(VertexStagingBuffer* aBuffer,
16
                   const Traits& aTraits,
17
                   const gfx::Polygon* aGeometry = nullptr)
18
0
{
19
0
  typedef typename Traits::TriangleVertices TriangleVertices;
20
0
  typedef typename Traits::FirstTriangle FirstTriangle;
21
0
  typedef typename Traits::SecondTriangle SecondTriangle;
22
0
23
0
  if (!aGeometry) {
24
0
    TriangleVertices base1 = aTraits.MakeVertex(FirstTriangle());
25
0
    TriangleVertices base2 = aTraits.MakeVertex(SecondTriangle());
26
0
    auto data1 = aTraits.MakeVertexData(FirstTriangle());
27
0
    auto data2 = aTraits.MakeVertexData(SecondTriangle());
28
0
    return aBuffer->PrependItem(base1, data1) && aBuffer->PrependItem(base2, data2);
29
0
  }
30
0
31
0
  auto triangles = aTraits.GenerateTriangles(*aGeometry);
32
0
  for (const auto& triangle : triangles) {
33
0
    TriangleVertices base = aTraits.MakeVertex(triangle);
34
0
    auto data = aTraits.MakeVertexData(triangle);
35
0
    if (!aBuffer->PrependItem(base, data)) {
36
0
      return false;
37
0
    }
38
0
  }
39
0
  return true;
40
0
}
Unexecuted instantiation: Unified_cpp_gfx_layers10.cpp:bool mozilla::layers::AddShaderTriangles<mozilla::layers::mlg::ColorTraits>(mozilla::layers::StagingBuffer<0ul>*, mozilla::layers::mlg::ColorTraits const&, mozilla::gfx::PolygonTyped<mozilla::gfx::UnknownUnits> const*)
Unexecuted instantiation: Unified_cpp_gfx_layers10.cpp:bool mozilla::layers::AddShaderTriangles<mozilla::layers::mlg::TexturedTraits>(mozilla::layers::StagingBuffer<0ul>*, mozilla::layers::mlg::TexturedTraits const&, mozilla::gfx::PolygonTyped<mozilla::gfx::UnknownUnits> const*)
41
42
template <typename Traits>
43
inline bool
44
BatchRenderPass<Traits>::Txn::AddImpl(const Traits& aTraits)
45
0
{
46
0
  VertexStagingBuffer* instances = mPass->GetInstances();
47
0
48
0
  if (mPass->mGeometry == GeometryMode::Polygon) {
49
0
    if (const Maybe<gfx::Polygon>& geometry = aTraits.geometry()) {
50
0
      gfx::Polygon polygon = geometry->ClipPolygon(aTraits.rect());
51
0
      if (polygon.IsEmpty()) {
52
0
        return true;
53
0
      }
54
0
      return AddShaderTriangles(instances, aTraits, &polygon);
55
0
    }
56
0
    return AddShaderTriangles(instances, aTraits);
57
0
  }
58
0
59
0
  typedef typename Traits::UnitQuadVertex UnitQuadVertex;
60
0
  typedef typename Traits::UnitQuad UnitQuad;
61
0
62
0
  UnitQuadVertex base = aTraits.MakeUnitQuadVertex();
63
0
  auto data = aTraits.MakeVertexData(UnitQuad());
64
0
  return instances->AddItem(base, data);
65
0
}
Unexecuted instantiation: mozilla::layers::BatchRenderPass<mozilla::layers::mlg::ColorTraits>::Txn::AddImpl(mozilla::layers::mlg::ColorTraits const&)
Unexecuted instantiation: mozilla::layers::BatchRenderPass<mozilla::layers::mlg::TexturedTraits>::Txn::AddImpl(mozilla::layers::mlg::TexturedTraits const&)
66
67
} // namespace layers
68
} // namespace mozilla
69
70
#endif // mozilla_gfx_layers_mlgpu_RenderPassMLGPU_inl_h