diff options
Diffstat (limited to 'ppapi/cpp/image_data.cc')
-rw-r--r-- | ppapi/cpp/image_data.cc | 29 |
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(); } |