X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fgraphics%2Fquartz%2Fquartzloader.cpp;h=3799bcde6681fe7ccac941f43bc179ceb70392b2;hb=917c43de100807f4397e36b66b1a748dbf44370e;hp=472e066f49665a64356cf1c50d93fba878589487;hpb=2ebdf45974a0a7649b3488f9da4b8cf90a1db584;p=libs%2Fgui.git diff --git a/source/graphics/quartz/quartzloader.cpp b/source/graphics/quartz/quartzloader.cpp index 472e066..3799bcd 100644 --- a/source/graphics/quartz/quartzloader.cpp +++ b/source/graphics/quartz/quartzloader.cpp @@ -109,16 +109,6 @@ void QuartzLoader::load_(Image::Data &data) } else throw unsupported_image_format("unknown colorspace"); - - CGDataProviderRef dp = CGImageGetDataProvider(image); - CFDataRef image_data = CGDataProviderCopyData(dp); - data.pixels = new char[data.height*data.stride]; - unsigned offset = (alpha==kCGImageAlphaNoneSkipFirst); - CFRange range = CFRangeMake(offset, CFDataGetLength(image_data)-offset); - CFDataGetBytes(image_data, range, reinterpret_cast(data.pixels)); - CFRelease(image_data); - - CFRelease(image); } catch(...) { @@ -127,5 +117,17 @@ void QuartzLoader::load_(Image::Data &data) } } +void QuartzLoader::load_(Image::Data &data) +{ + CGDataProviderRef dp = CGImageGetDataProvider(image); + CFDataRef image_data = CGDataProviderCopyData(dp); + unsigned offset = (alpha==kCGImageAlphaNoneSkipFirst); + CFRange range = CFRangeMake(offset, CFDataGetLength(image_data)-offset); + CFDataGetBytes(image_data, range, reinterpret_cast(data.pixels)); + CFRelease(image_data); + + CFRelease(image); +} + } // namespace Graphics } // namespace Msp