Coverage Report

Created: 2018-09-25 14:53

/src/mozilla-central/gfx/layers/client/ClientCanvasRenderer.cpp
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
#include "ClientCanvasRenderer.h"
8
9
#include "ClientCanvasLayer.h"
10
11
namespace mozilla {
12
namespace layers {
13
14
CompositableForwarder*
15
ClientCanvasRenderer::GetForwarder()
16
0
{
17
0
  return mLayer->Manager()->AsShadowForwarder();
18
0
}
19
20
bool
21
ClientCanvasRenderer::CreateCompositable()
22
0
{
23
0
  if (!mCanvasClient) {
24
0
    TextureFlags flags = TextureFlags::DEFAULT;
25
0
    if (mOriginPos == gl::OriginPos::BottomLeft) {
26
0
      flags |= TextureFlags::ORIGIN_BOTTOM_LEFT;
27
0
    }
28
0
29
0
    if (!mIsAlphaPremultiplied) {
30
0
      flags |= TextureFlags::NON_PREMULTIPLIED;
31
0
    }
32
0
33
0
    mCanvasClient = CanvasClient::CreateCanvasClient(GetCanvasClientType(),
34
0
                                                     GetForwarder(),
35
0
                                                     flags);
36
0
    if (!mCanvasClient) {
37
0
      return false;
38
0
    }
39
0
40
0
    if (mLayer->HasShadow()) {
41
0
      if (mAsyncRenderer) {
42
0
        static_cast<CanvasClientBridge*>(mCanvasClient.get())->SetLayer(mLayer);
43
0
      } else {
44
0
        mCanvasClient->Connect();
45
0
        GetForwarder()->AsLayerForwarder()->Attach(mCanvasClient, mLayer);
46
0
      }
47
0
    }
48
0
  }
49
0
50
0
  return true;
51
0
}
52
53
} // namespace layers
54
} // namespace mozilla