diff --git a/src/components/gfx/platform/macos/font.rs b/src/components/gfx/platform/macos/font.rs index 885f35ecf04..884d71e7064 100644 --- a/src/components/gfx/platform/macos/font.rs +++ b/src/components/gfx/platform/macos/font.rs @@ -23,13 +23,13 @@ use core_foundation::string::UniChar; use core_graphics::data_provider::CGDataProvider; use core_graphics::font::{CGFont, CGGlyph}; use core_graphics::geometry::CGRect; -use core_graphics; -use core_text::font::{CTFont, CTFontMethods, CTFontMethodsPrivate}; +use core_text::font::CTFont; use core_text::font_descriptor::{SymbolicTraitAccessors, TraitAccessors}; use core_text::font_descriptor::{kCTFontDefaultOrientation}; use core_text; use std::ptr; +use std::vec; pub struct FontTable { data: CFData, @@ -48,7 +48,7 @@ impl FontTable { impl FontTableMethods for FontTable { fn with_buffer(&self, blk: &fn(*u8, uint)) { - blk(self.data.bytes(), self.data.len()); + blk(vec::raw::to_ptr(self.data.bytes()), self.data.len() as uint); } } @@ -80,11 +80,8 @@ impl FontHandle { impl FontHandleMethods for FontHandle { fn new_from_buffer(_: &FontContextHandle, buf: ~[u8], style: &SpecifiedFontStyle) -> Result { - let fontprov : CGDataProvider = do buf.as_imm_buf |cbuf, len| { - core_graphics::data_provider::new_from_buffer(cbuf, len) - }; - - let cgfont = core_graphics::font::create_with_data_provider(&fontprov); + let fontprov = CGDataProvider::from_buffer(buf); + let cgfont = CGFont::from_data_provider(fontprov); let ctfont = core_text::font::new_from_CGFont(&cgfont, style.pt_size); let result = Ok(FontHandle { diff --git a/src/components/gfx/platform/macos/font_list.rs b/src/components/gfx/platform/macos/font_list.rs index 6b6fc33bdc5..d1533aca166 100644 --- a/src/components/gfx/platform/macos/font_list.rs +++ b/src/components/gfx/platform/macos/font_list.rs @@ -8,12 +8,12 @@ use font_list::{FontEntry, FontFamily, FontFamilyMap}; use platform::macos::font::FontHandle; use platform::macos::font_context::FontContextHandle; -use core_foundation::array::CFArray; -use core_foundation::base::CFWrapper; +use core_foundation::base::TCFType; use core_foundation::string::{CFString, CFStringRef}; -use core_text::font_collection::CTFontCollectionMethods; use core_text; +use core_text::font_descriptor::{CTFontDescriptor, CTFontDescriptorRef}; +use std::cast; use std::hashmap::HashMap; pub struct FontListHandle { @@ -28,10 +28,12 @@ impl FontListHandle { } pub fn get_available_families(&self) -> FontFamilyMap { - let family_names: CFArray = core_text::font_collection::get_family_names(); + let family_names = core_text::font_collection::get_family_names(); let mut family_map: FontFamilyMap = HashMap::new(); for strref in family_names.iter() { - let family_name = CFString::wrap_shared(strref).to_str(); + let family_name_ref: CFStringRef = unsafe { cast::transmute(strref) }; + let family_name_cf: CFString = unsafe { TCFType::wrap_under_get_rule(family_name_ref) }; + let family_name = family_name_cf.to_str(); debug!("Creating new FontFamily for family: {:s}", family_name); let new_family = @mut FontFamily::new(family_name); @@ -46,7 +48,8 @@ impl FontListHandle { let family_collection = core_text::font_collection::create_for_family(family.family_name); let family_descriptors = family_collection.get_descriptors(); for descref in family_descriptors.iter() { - let desc = CFWrapper::wrap_shared(descref); + let descref: CTFontDescriptorRef = unsafe { cast::transmute(descref) }; + let desc: CTFontDescriptor = unsafe { TCFType::wrap_under_get_rule(descref) }; let font = core_text::font::new_from_descriptor(&desc, 0.0); let handle = FontHandle::new_from_CTFont(&self.fctx, font).unwrap(); diff --git a/src/components/msg/platform/macos/surface.rs b/src/components/msg/platform/macos/surface.rs index 3bf5f9b5ab7..eee7d091317 100644 --- a/src/components/msg/platform/macos/surface.rs +++ b/src/components/msg/platform/macos/surface.rs @@ -8,7 +8,6 @@ use platform::surface::NativeSurfaceAzureMethods; use azure::AzSkiaGrGLSharedSurfaceRef; -use core_foundation::base::CFWrapper; use io_surface::IOSurface; use layers::platform::surface::NativeSurface; use std::cast; @@ -17,7 +16,7 @@ impl NativeSurfaceAzureMethods for NativeSurface { fn from_azure_surface(surface: AzSkiaGrGLSharedSurfaceRef) -> NativeSurface { unsafe { let io_surface = IOSurface { - contents: CFWrapper::wrap_owned(cast::transmute(surface)), + obj: cast::transmute(surface), }; NativeSurface::from_io_surface(io_surface) }