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// From ppb_compositor_layer.idl modified Thu Aug 14 18:06:33 2014. 6 7#include "ppapi/c/pp_completion_callback.h" 8#include "ppapi/c/pp_errors.h" 9#include "ppapi/c/ppb_compositor_layer.h" 10#include "ppapi/shared_impl/tracked_callback.h" 11#include "ppapi/thunk/enter.h" 12#include "ppapi/thunk/ppapi_thunk_export.h" 13#include "ppapi/thunk/ppb_compositor_layer_api.h" 14 15namespace ppapi { 16namespace thunk { 17 18namespace { 19 20PP_Bool IsCompositorLayer(PP_Resource resource) { 21 VLOG(4) << "PPB_CompositorLayer::IsCompositorLayer()"; 22 EnterResource<PPB_CompositorLayer_API> enter(resource, false); 23 return PP_FromBool(enter.succeeded()); 24} 25 26int32_t SetColor(PP_Resource layer, 27 float red, 28 float green, 29 float blue, 30 float alpha, 31 const struct PP_Size* size) { 32 VLOG(4) << "PPB_CompositorLayer::SetColor()"; 33 EnterResource<PPB_CompositorLayer_API> enter(layer, true); 34 if (enter.failed()) 35 return enter.retval(); 36 return enter.object()->SetColor(red, green, blue, alpha, size); 37} 38 39int32_t SetTexture_0_1(PP_Resource layer, 40 PP_Resource context, 41 uint32_t texture, 42 const struct PP_Size* size, 43 struct PP_CompletionCallback cc) { 44 VLOG(4) << "PPB_CompositorLayer::SetTexture()"; 45 EnterResource<PPB_CompositorLayer_API> enter(layer, cc, true); 46 if (enter.failed()) 47 return enter.retval(); 48 return enter.SetResult(enter.object()->SetTexture0_1(context, 49 texture, 50 size, 51 enter.callback())); 52} 53 54int32_t SetTexture(PP_Resource layer, 55 PP_Resource context, 56 uint32_t target, 57 uint32_t texture, 58 const struct PP_Size* size, 59 struct PP_CompletionCallback cc) { 60 VLOG(4) << "PPB_CompositorLayer::SetTexture()"; 61 EnterResource<PPB_CompositorLayer_API> enter(layer, cc, true); 62 if (enter.failed()) 63 return enter.retval(); 64 return enter.SetResult(enter.object()->SetTexture(context, 65 target, 66 texture, 67 size, 68 enter.callback())); 69} 70 71int32_t SetImage(PP_Resource layer, 72 PP_Resource image_data, 73 const struct PP_Size* size, 74 struct PP_CompletionCallback cc) { 75 VLOG(4) << "PPB_CompositorLayer::SetImage()"; 76 EnterResource<PPB_CompositorLayer_API> enter(layer, cc, true); 77 if (enter.failed()) 78 return enter.retval(); 79 return enter.SetResult(enter.object()->SetImage(image_data, 80 size, 81 enter.callback())); 82} 83 84int32_t SetClipRect(PP_Resource layer, const struct PP_Rect* rect) { 85 VLOG(4) << "PPB_CompositorLayer::SetClipRect()"; 86 EnterResource<PPB_CompositorLayer_API> enter(layer, true); 87 if (enter.failed()) 88 return enter.retval(); 89 return enter.object()->SetClipRect(rect); 90} 91 92int32_t SetTransform(PP_Resource layer, const float matrix[16]) { 93 VLOG(4) << "PPB_CompositorLayer::SetTransform()"; 94 EnterResource<PPB_CompositorLayer_API> enter(layer, true); 95 if (enter.failed()) 96 return enter.retval(); 97 return enter.object()->SetTransform(matrix); 98} 99 100int32_t SetOpacity(PP_Resource layer, float opacity) { 101 VLOG(4) << "PPB_CompositorLayer::SetOpacity()"; 102 EnterResource<PPB_CompositorLayer_API> enter(layer, true); 103 if (enter.failed()) 104 return enter.retval(); 105 return enter.object()->SetOpacity(opacity); 106} 107 108int32_t SetBlendMode(PP_Resource layer, PP_BlendMode mode) { 109 VLOG(4) << "PPB_CompositorLayer::SetBlendMode()"; 110 EnterResource<PPB_CompositorLayer_API> enter(layer, true); 111 if (enter.failed()) 112 return enter.retval(); 113 return enter.object()->SetBlendMode(mode); 114} 115 116int32_t SetSourceRect(PP_Resource layer, const struct PP_FloatRect* rect) { 117 VLOG(4) << "PPB_CompositorLayer::SetSourceRect()"; 118 EnterResource<PPB_CompositorLayer_API> enter(layer, true); 119 if (enter.failed()) 120 return enter.retval(); 121 return enter.object()->SetSourceRect(rect); 122} 123 124int32_t SetPremultipliedAlpha(PP_Resource layer, PP_Bool premult) { 125 VLOG(4) << "PPB_CompositorLayer::SetPremultipliedAlpha()"; 126 EnterResource<PPB_CompositorLayer_API> enter(layer, true); 127 if (enter.failed()) 128 return enter.retval(); 129 return enter.object()->SetPremultipliedAlpha(premult); 130} 131 132const PPB_CompositorLayer_0_1 g_ppb_compositorlayer_thunk_0_1 = { 133 &IsCompositorLayer, 134 &SetColor, 135 &SetTexture_0_1, 136 &SetImage, 137 &SetClipRect, 138 &SetTransform, 139 &SetOpacity, 140 &SetBlendMode, 141 &SetSourceRect, 142 &SetPremultipliedAlpha 143}; 144 145const PPB_CompositorLayer_0_2 g_ppb_compositorlayer_thunk_0_2 = { 146 &IsCompositorLayer, 147 &SetColor, 148 &SetTexture, 149 &SetImage, 150 &SetClipRect, 151 &SetTransform, 152 &SetOpacity, 153 &SetBlendMode, 154 &SetSourceRect, 155 &SetPremultipliedAlpha 156}; 157 158} // namespace 159 160PPAPI_THUNK_EXPORT const PPB_CompositorLayer_0_1* 161 GetPPB_CompositorLayer_0_1_Thunk() { 162 return &g_ppb_compositorlayer_thunk_0_1; 163} 164 165PPAPI_THUNK_EXPORT const PPB_CompositorLayer_0_2* 166 GetPPB_CompositorLayer_0_2_Thunk() { 167 return &g_ppb_compositorlayer_thunk_0_2; 168} 169 170} // namespace thunk 171} // namespace ppapi 172