Pepper_47_C++_interfaces
compositor.cc
Go to the documentation of this file.
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "ppapi/cpp/compositor.h"
6 
7 #include "ppapi/c/pp_errors.h"
10 #include "ppapi/cpp/var.h"
11 
12 namespace pp {
13 
14 namespace {
15 
16 template <> const char* interface_name<PPB_Compositor_0_1>() {
17  return PPB_COMPOSITOR_INTERFACE_0_1;
18 }
19 
20 } // namespace
21 
23 }
24 
26  if (has_interface<PPB_Compositor_0_1>()) {
27  PassRefFromConstructor(get_interface<PPB_Compositor_0_1>()->Create(
28  instance.pp_instance()));
29  }
30 }
31 
33  const Compositor& other) : Resource(other) {
34 }
35 
37  : Resource(resource) {
38  PP_DCHECK(IsCompositor(resource));
39 }
40 
42  : Resource(PASS_REF, resource) {
43 }
44 
46 }
47 
49  PP_Resource layer = 0;
50  if (has_interface<PPB_Compositor_0_1>()) {
51  layer = get_interface<PPB_Compositor_0_1>()->AddLayer(pp_resource());
52  }
53  return CompositorLayer(PASS_REF, layer);
54 }
55 
57  if (has_interface<PPB_Compositor_0_1>()) {
58  return get_interface<PPB_Compositor_0_1>()->CommitLayers(
60  }
61  return cc.MayForce(PP_ERROR_NOINTERFACE);
62 }
63 
65  if (has_interface<PPB_Compositor_0_1>()) {
66  return get_interface<PPB_Compositor_0_1>()->ResetLayers(pp_resource());
67  }
68  return PP_ERROR_NOINTERFACE;
69 }
70 
71 bool Compositor::IsCompositor(const Resource& resource) {
72  if (has_interface<PPB_Compositor_0_1>()) {
73  return PP_ToBool(get_interface<PPB_Compositor_0_1>()->
74  IsCompositor(resource.pp_resource()));
75  }
76  return false;
77 }
78 
79 } // namespace pp
~Compositor()
Destructor.
Definition: compositor.cc:45
void PassRefFromConstructor(PP_Resource resource)
Definition: resource.cc:50
int32_t ResetLayers()
Definition: compositor.cc:64
CompositorLayer AddLayer()
Definition: compositor.cc:48
#define PP_DCHECK(a)
Definition: logging.h:16
int32_t MayForce(int32_t result) const
const PP_CompletionCallback & pp_completion_callback() const
PassRef
Definition: pass_ref.h:17
static bool IsCompositor(const Resource &resource)
Definition: compositor.cc:71
int32_t CommitLayers(const CompletionCallback &cc)
Definition: compositor.cc:56
PP_Resource pp_resource() const
Definition: resource.h:47
PP_Instance pp_instance() const
A reference counted module resource.
Definition: resource.h:20