diff options
Diffstat (limited to 'ppapi/thunk')
-rw-r--r-- | ppapi/thunk/interfaces_ppb_public_dev.h | 2 | ||||
-rw-r--r-- | ppapi/thunk/ppb_resource_array_api.h | 25 | ||||
-rw-r--r-- | ppapi/thunk/ppb_resource_array_thunk.cc | 53 | ||||
-rw-r--r-- | ppapi/thunk/resource_creation_api.h | 5 |
4 files changed, 84 insertions, 1 deletions
diff --git a/ppapi/thunk/interfaces_ppb_public_dev.h b/ppapi/thunk/interfaces_ppb_public_dev.h index 7161449..f72fa7c 100644 --- a/ppapi/thunk/interfaces_ppb_public_dev.h +++ b/ppapi/thunk/interfaces_ppb_public_dev.h @@ -48,6 +48,8 @@ UNPROXIED_IFACE(PPB_Instance, PPB_ZOOM_DEV_INTERFACE_0_2, PPB_Zoom_Dev_0_2) UNPROXIED_IFACE(PPB_LayerCompositor, PPB_LAYER_COMPOSITOR_DEV_INTERFACE_0_2, PPB_LayerCompositor_Dev_0_2) PROXIED_IFACE(NoAPIName, PPB_MEMORY_DEV_INTERFACE_0_1, PPB_Memory_Dev_0_1) +PROXIED_IFACE(NoAPIName, PPB_RESOURCEARRAY_DEV_INTERFACE_0_1, + PPB_ResourceArray_Dev_0_1) UNPROXIED_IFACE(PPB_Scrollbar, PPB_SCROLLBAR_DEV_INTERFACE_0_5, PPB_Scrollbar_Dev_0_5) PROXIED_IFACE(PPB_TextInput, PPB_TEXTINPUT_DEV_INTERFACE_0_1, diff --git a/ppapi/thunk/ppb_resource_array_api.h b/ppapi/thunk/ppb_resource_array_api.h new file mode 100644 index 0000000..ec37f9e --- /dev/null +++ b/ppapi/thunk/ppb_resource_array_api.h @@ -0,0 +1,25 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef PPAPI_THUNK_PPB_RESOURCE_ARRAY_API_H_ +#define PPAPI_THUNK_PPB_RESOURCE_ARRAY_API_H_ + +#include "ppapi/c/dev/ppb_resource_array_dev.h" +#include "ppapi/thunk/ppapi_thunk_export.h" + +namespace ppapi { +namespace thunk { + +class PPAPI_THUNK_EXPORT PPB_ResourceArray_API { + public: + virtual ~PPB_ResourceArray_API() {} + + virtual uint32_t GetSize() = 0; + virtual PP_Resource GetAt(uint32_t index) = 0; +}; + +} // namespace thunk +} // namespace ppapi + +#endif // PPAPI_THUNK_PPB_RESOURCE_ARRAY_API_H_ diff --git a/ppapi/thunk/ppb_resource_array_thunk.cc b/ppapi/thunk/ppb_resource_array_thunk.cc new file mode 100644 index 0000000..1526028 --- /dev/null +++ b/ppapi/thunk/ppb_resource_array_thunk.cc @@ -0,0 +1,53 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "ppapi/thunk/enter.h" +#include "ppapi/thunk/ppb_resource_array_api.h" +#include "ppapi/thunk/resource_creation_api.h" +#include "ppapi/thunk/thunk.h" + +namespace ppapi { +namespace thunk { + +namespace { + +PP_Resource Create(PP_Instance instance, + const PP_Resource elements[], + uint32_t size) { + EnterFunction<ResourceCreationAPI> enter(instance, true); + if (enter.failed()) + return 0; + return enter.functions()->CreateResourceArray(instance, elements, size); +} + +PP_Bool IsResourceArray(PP_Resource resource) { + EnterResource<PPB_ResourceArray_API> enter(resource, false); + return enter.succeeded() ? PP_TRUE : PP_FALSE; +} + +uint32_t GetSize(PP_Resource resource_array) { + EnterResource<PPB_ResourceArray_API> enter(resource_array, true); + return enter.succeeded() ? enter.object()->GetSize() : 0; +} + +PP_Resource GetAt(PP_Resource resource_array, uint32_t index) { + EnterResource<PPB_ResourceArray_API> enter(resource_array, true); + return enter.succeeded() ? enter.object()->GetAt(index) : 0; +} + +const PPB_ResourceArray_Dev g_ppb_resource_array_thunk = { + &Create, + &IsResourceArray, + &GetSize, + &GetAt +}; + +} // namespace + +const PPB_ResourceArray_Dev_0_1* GetPPB_ResourceArray_Dev_0_1_Thunk() { + return &g_ppb_resource_array_thunk; +} + +} // namespace thunk +} // namespace ppapi diff --git a/ppapi/thunk/resource_creation_api.h b/ppapi/thunk/resource_creation_api.h index ecab7cd..90442ed 100644 --- a/ppapi/thunk/resource_creation_api.h +++ b/ppapi/thunk/resource_creation_api.h @@ -1,4 +1,4 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -103,6 +103,9 @@ class ResourceCreationAPI { const PP_Point* mouse_position, int32_t click_count, const PP_Point* mouse_movement) = 0; + virtual PP_Resource CreateResourceArray(PP_Instance instance, + const PP_Resource elements[], + uint32_t size) = 0; virtual PP_Resource CreateScrollbar(PP_Instance instance, PP_Bool vertical) = 0; virtual PP_Resource CreateTCPSocketPrivate(PP_Instance instace) = 0; |