[vlc-commits] Windowless Mac Plugin: cache CGColorSpace
Felix Paul Kühne
git at videolan.org
Wed Jan 16 02:29:21 CET 2013
npapi-vlc | branch: master | Felix Paul Kühne <fkuehne at videolan.org> | Wed Jan 16 02:28:53 2013 +0100| [9b53551e152f824236947c5728b496c7e9735555] | committer: Felix Paul Kühne
Windowless Mac Plugin: cache CGColorSpace
> http://git.videolan.org/gitweb.cgi/npapi-vlc.git/?a=commit;h=9b53551e152f824236947c5728b496c7e9735555
---
npapi/vlcwindowless_mac.cpp | 9 ++++++---
npapi/vlcwindowless_mac.h | 4 ++++
2 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/npapi/vlcwindowless_mac.cpp b/npapi/vlcwindowless_mac.cpp
index 844ed76..a578948 100644
--- a/npapi/vlcwindowless_mac.cpp
+++ b/npapi/vlcwindowless_mac.cpp
@@ -27,6 +27,12 @@
VlcWindowlessMac::VlcWindowlessMac(NPP instance, NPuint16_t mode) :
VlcWindowlessBase(instance, mode)
{
+ colorspace = CGColorSpaceCreateDeviceRGB();
+}
+
+VlcWindowlessMac::~VlcWindowlessMac()
+{
+ CGColorSpaceRelease(colorspace);
}
void VlcWindowlessMac::drawBackground(CGContextRef cgContext)
@@ -192,7 +198,6 @@ bool VlcWindowlessMac::handle_event(void *event)
sizeof(m_frame_buf[0]),
kCFAllocatorNull);
CGDataProviderRef dataProvider = CGDataProviderCreateWithCFData(dataRef);
- CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceRGB();
CGImageRef image = CGImageCreate(m_media_width,
m_media_height,
kBitsPerComponent,
@@ -205,7 +210,6 @@ bool VlcWindowlessMac::handle_event(void *event)
true,
kCGRenderingIntentPerceptual);
if (!image) {
- CGColorSpaceRelease(colorspace);
CGImageRelease(image);
CGDataProviderRelease(dataProvider);
CGContextRestoreGState(cgContext);
@@ -214,7 +218,6 @@ bool VlcWindowlessMac::handle_event(void *event)
CGRect rect = CGRectMake(left, top, m_media_width, m_media_height);
CGContextDrawImage(cgContext, rect, image);
- CGColorSpaceRelease(colorspace);
CGImageRelease(image);
CGDataProviderRelease(dataProvider);
diff --git a/npapi/vlcwindowless_mac.h b/npapi/vlcwindowless_mac.h
index 5fe6cb9..8288e34 100644
--- a/npapi/vlcwindowless_mac.h
+++ b/npapi/vlcwindowless_mac.h
@@ -30,6 +30,7 @@ class VlcWindowlessMac : public VlcWindowlessBase
{
public:
VlcWindowlessMac(NPP instance, NPuint16_t mode);
+ virtual ~VlcWindowlessMac();
bool handle_event(void *event);
NPError get_root_layer(void *value);
@@ -37,6 +38,9 @@ public:
protected:
void drawBackground(CGContextRef cgContext);
void drawNoPlayback(CGContextRef cgContext);
+
+private:
+ CGColorSpaceRef colorspace;
};
#endif /* __VLCWINDOWLESS_MAC_H__ */
More information about the vlc-commits
mailing list