| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <dlfcn.h> | 5 #include <dlfcn.h> |
| 6 | 6 |
| 7 #include "base/singleton.h" | 7 #include "base/singleton.h" |
| 8 #include "app/surface/io_surface_support_mac.h" | 8 #include "app/surface/io_surface_support_mac.h" |
| 9 | 9 |
| 10 typedef CFTypeRef (*IOSurfaceCreateProcPtr)(CFDictionaryRef properties); | 10 typedef CFTypeRef (*IOSurfaceCreateProcPtr)(CFDictionaryRef properties); |
| 11 typedef uint32 (*IOSurfaceGetIDProcPtr)(CFTypeRef io_surface); | 11 typedef uint32 (*IOSurfaceGetIDProcPtr)(CFTypeRef io_surface); |
| 12 typedef CFTypeRef (*IOSurfaceLookupProcPtr)(uint32 io_surface_id); | 12 typedef CFTypeRef (*IOSurfaceLookupProcPtr)(uint32 io_surface_id); |
| 13 typedef mach_port_t (*IOSurfaceCreateMachPortProcPtr)(CFTypeRef io_surface); | 13 typedef mach_port_t (*IOSurfaceCreateMachPortProcPtr)(CFTypeRef io_surface); |
| 14 typedef CFTypeRef (*IOSurfaceLookupFromMachPortProcPtr)(mach_port_t port); | 14 typedef CFTypeRef (*IOSurfaceLookupFromMachPortProcPtr)(mach_port_t port); |
| 15 typedef size_t (*IOSurfaceGetWidthPtr)(CFTypeRef io_surface); | 15 typedef size_t (*IOSurfaceGetWidthPtr)(CFTypeRef io_surface); |
| 16 typedef size_t (*IOSurfaceGetHeightPtr)(CFTypeRef io_surface); | 16 typedef size_t (*IOSurfaceGetHeightPtr)(CFTypeRef io_surface); |
| 17 typedef CGLError (*CGLTexImageIOSurface2DProcPtr)(CGLContextObj ctx, | 17 typedef CGLError (*CGLTexImageIOSurface2DProcPtr)(CGLContextObj ctx, |
| 18 GLenum target, | 18 GLenum target, |
| 19 GLenum internal_format, | 19 GLenum internal_format, |
| 20 GLsizei width, | 20 GLsizei width, |
| 21 GLsizei height, | 21 GLsizei height, |
| 22 GLenum format, | 22 GLenum format, |
| 23 GLenum type, | 23 GLenum type, |
| 24 CFTypeRef io_surface, | 24 CFTypeRef io_surface, |
| 25 GLuint plane); | 25 GLuint plane); |
| 26 | 26 |
| 27 class IOSurfaceSupportImpl : public IOSurfaceSupport { | 27 class IOSurfaceSupportImpl : public IOSurfaceSupport { |
| 28 public: | 28 public: |
| 29 static IOSurfaceSupportImpl* Initialize(); | 29 static IOSurfaceSupportImpl* GetInstance(); |
| 30 | 30 |
| 31 bool InitializedSuccessfully() { | 31 bool InitializedSuccessfully() { |
| 32 return initialized_successfully_; | 32 return initialized_successfully_; |
| 33 } | 33 } |
| 34 | 34 |
| 35 virtual CFStringRef GetKIOSurfaceWidth(); | 35 virtual CFStringRef GetKIOSurfaceWidth(); |
| 36 virtual CFStringRef GetKIOSurfaceHeight(); | 36 virtual CFStringRef GetKIOSurfaceHeight(); |
| 37 virtual CFStringRef GetKIOSurfaceBytesPerElement(); | 37 virtual CFStringRef GetKIOSurfaceBytesPerElement(); |
| 38 virtual CFStringRef GetKIOSurfaceIsGlobal(); | 38 virtual CFStringRef GetKIOSurfaceIsGlobal(); |
| 39 | 39 |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 73 IOSurfaceLookupFromMachPortProcPtr io_surface_lookup_from_mach_port_; | 73 IOSurfaceLookupFromMachPortProcPtr io_surface_lookup_from_mach_port_; |
| 74 IOSurfaceGetWidthPtr io_surface_get_width_; | 74 IOSurfaceGetWidthPtr io_surface_get_width_; |
| 75 IOSurfaceGetHeightPtr io_surface_get_height_; | 75 IOSurfaceGetHeightPtr io_surface_get_height_; |
| 76 CGLTexImageIOSurface2DProcPtr cgl_tex_image_io_surface_2d_; | 76 CGLTexImageIOSurface2DProcPtr cgl_tex_image_io_surface_2d_; |
| 77 bool initialized_successfully_; | 77 bool initialized_successfully_; |
| 78 | 78 |
| 79 friend struct DefaultSingletonTraits<IOSurfaceSupportImpl>; | 79 friend struct DefaultSingletonTraits<IOSurfaceSupportImpl>; |
| 80 DISALLOW_COPY_AND_ASSIGN(IOSurfaceSupportImpl); | 80 DISALLOW_COPY_AND_ASSIGN(IOSurfaceSupportImpl); |
| 81 }; | 81 }; |
| 82 | 82 |
| 83 IOSurfaceSupportImpl* IOSurfaceSupportImpl::Initialize() { | 83 IOSurfaceSupportImpl* IOSurfaceSupportImpl::GetInstance() { |
| 84 IOSurfaceSupportImpl* impl = Singleton<IOSurfaceSupportImpl>::get(); | 84 IOSurfaceSupportImpl* impl = Singleton<IOSurfaceSupportImpl>::get(); |
| 85 if (impl->InitializedSuccessfully()) | 85 if (impl->InitializedSuccessfully()) |
| 86 return impl; | 86 return impl; |
| 87 return NULL; | 87 return NULL; |
| 88 } | 88 } |
| 89 | 89 |
| 90 CFStringRef IOSurfaceSupportImpl::GetKIOSurfaceWidth() { | 90 CFStringRef IOSurfaceSupportImpl::GetKIOSurfaceWidth() { |
| 91 return k_io_surface_width_; | 91 return k_io_surface_width_; |
| 92 } | 92 } |
| 93 | 93 |
| (...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 252 } | 252 } |
| 253 | 253 |
| 254 IOSurfaceSupportImpl::~IOSurfaceSupportImpl() { | 254 IOSurfaceSupportImpl::~IOSurfaceSupportImpl() { |
| 255 if (iosurface_handle_) | 255 if (iosurface_handle_) |
| 256 dlclose(iosurface_handle_); | 256 dlclose(iosurface_handle_); |
| 257 if (opengl_handle_) | 257 if (opengl_handle_) |
| 258 dlclose(opengl_handle_); | 258 dlclose(opengl_handle_); |
| 259 } | 259 } |
| 260 | 260 |
| 261 IOSurfaceSupport* IOSurfaceSupport::Initialize() { | 261 IOSurfaceSupport* IOSurfaceSupport::Initialize() { |
| 262 return IOSurfaceSupportImpl::Initialize(); | 262 return IOSurfaceSupportImpl::GetInstance(); |
| 263 } | 263 } |
| 264 | 264 |
| 265 IOSurfaceSupport::IOSurfaceSupport() { | 265 IOSurfaceSupport::IOSurfaceSupport() { |
| 266 } | 266 } |
| 267 | 267 |
| 268 IOSurfaceSupport::~IOSurfaceSupport() { | 268 IOSurfaceSupport::~IOSurfaceSupport() { |
| 269 } | 269 } |
| 270 | 270 |
| OLD | NEW |