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#ifndef PPAPI_THUNK_PPB_COMPOSITOR_LAYER_API_H_
6#define PPAPI_THUNK_PPB_COMPOSITOR_LAYER_API_H_
7
8#include "base/memory/ref_counted.h"
9#include "ppapi/c/ppb_compositor_layer.h"
10#include "ppapi/shared_impl/tracked_callback.h"
11
12namespace ppapi {
13namespace thunk {
14
15class PPAPI_THUNK_EXPORT PPB_CompositorLayer_API {
16 public:
17  virtual ~PPB_CompositorLayer_API() {}
18  virtual int32_t SetColor(float red,
19                           float green,
20                           float blue,
21                           float alpha,
22                           const PP_Size* size) = 0;
23  virtual int32_t SetTexture0_1(
24      PP_Resource context,
25      uint32_t texture,
26      const PP_Size* size,
27      const scoped_refptr<ppapi::TrackedCallback>& callback) = 0;
28  virtual int32_t SetTexture(
29      PP_Resource context,
30      uint32_t target,
31      uint32_t texture,
32      const PP_Size* size,
33      const scoped_refptr<ppapi::TrackedCallback>& callback) = 0;
34  virtual int32_t SetImage(
35      PP_Resource image_data,
36      const PP_Size* size,
37      const scoped_refptr<ppapi::TrackedCallback>& callback) = 0;
38  virtual int32_t SetClipRect(const PP_Rect* rects) = 0;
39  virtual int32_t SetTransform(const float matrix[16]) = 0;
40  virtual int32_t SetOpacity(float opacity) = 0;
41  virtual int32_t SetBlendMode(PP_BlendMode mode) = 0;
42  virtual int32_t SetSourceRect(const PP_FloatRect* rect) = 0;
43  virtual int32_t SetPremultipliedAlpha(PP_Bool premult) = 0;
44};
45
46}  // namespace thunk
47}  // namespace ppapi
48
49#endif  // PPAPI_THUNK_PPB_COMPOSITOR_API_H_
50