summaryrefslogtreecommitdiffstats
path: root/ppapi/cpp/image_data.cc
diff options
context:
space:
mode:
Diffstat (limited to 'ppapi/cpp/image_data.cc')
-rw-r--r--ppapi/cpp/image_data.cc29
1 files changed, 14 insertions, 15 deletions
diff --git a/ppapi/cpp/image_data.cc b/ppapi/cpp/image_data.cc
index d4b15e0..61a291d 100644
--- a/ppapi/cpp/image_data.cc
+++ b/ppapi/cpp/image_data.cc
@@ -13,14 +13,16 @@
#include "ppapi/cpp/module.h"
#include "ppapi/cpp/module_impl.h"
+namespace pp {
+
namespace {
-DeviceFuncs<PPB_ImageData> image_data_f(PPB_IMAGEDATA_INTERFACE);
+template <> const char* interface_name<PPB_ImageData>() {
+ return PPB_IMAGEDATA_INTERFACE;
+}
} // namespace
-namespace pp {
-
ImageData::ImageData() : data_(NULL) {
memset(&desc_, 0, sizeof(PP_ImageDataDesc));
}
@@ -35,7 +37,7 @@ ImageData::ImageData(PassRef, PP_Resource resource)
: data_(NULL) {
memset(&desc_, 0, sizeof(PP_ImageDataDesc));
- if (!image_data_f)
+ if (!has_interface<PPB_ImageData>())
return;
PassRefAndInitData(resource);
@@ -47,15 +49,12 @@ ImageData::ImageData(PP_ImageDataFormat format,
: data_(NULL) {
memset(&desc_, 0, sizeof(PP_ImageDataDesc));
- if (!image_data_f)
+ if (!has_interface<PPB_ImageData>())
return;
- PassRefAndInitData(image_data_f->Create(Module::Get()->pp_module(),
- format, &size.pp_size(),
- BoolToPPBool(init_to_zero)));
-}
-
-ImageData::~ImageData() {
+ PassRefAndInitData(get_interface<PPB_ImageData>()->Create(
+ Module::Get()->pp_module(), format, &size.pp_size(),
+ BoolToPPBool(init_to_zero)));
}
ImageData& ImageData::operator=(const ImageData& other) {
@@ -84,15 +83,15 @@ uint32_t* ImageData::GetAddr32(const Point& coord) {
// static
PP_ImageDataFormat ImageData::GetNativeImageDataFormat() {
- if (!image_data_f)
+ if (!has_interface<PPB_ImageData>())
return PP_IMAGEDATAFORMAT_BGRA_PREMUL; // Default to something on failure.
- return image_data_f->GetNativeImageDataFormat();
+ return get_interface<PPB_ImageData>()->GetNativeImageDataFormat();
}
void ImageData::PassRefAndInitData(PP_Resource resource) {
PassRefFromConstructor(resource);
- if (!image_data_f->Describe(pp_resource(), &desc_) ||
- !(data_ = image_data_f->Map(pp_resource())))
+ if (!get_interface<PPB_ImageData>()->Describe(pp_resource(), &desc_) ||
+ !(data_ = get_interface<PPB_ImageData>()->Map(pp_resource())))
*this = ImageData();
}