summaryrefslogtreecommitdiffstats
path: root/font
diff options
context:
space:
mode:
authorMartin Algesten <martin@algesten.se>2017-05-31 11:10:05 +0200
committerJoe Wilm <jwilm@users.noreply.github.com>2017-05-31 09:30:54 -0700
commitd5ab4183c69e37e8d309acf7b38c2071106bceb7 (patch)
treeded62796f176922b01537956147a63f6d588c3b7 /font
parentdafa4ccde9ea233b5212018cf0d87425ac4f78a0 (diff)
remove code that has been upstreamed
Diffstat (limited to 'font')
-rw-r--r--font/src/darwin/cg_color.rs92
-rw-r--r--font/src/darwin/mod.rs106
2 files changed, 5 insertions, 193 deletions
diff --git a/font/src/darwin/cg_color.rs b/font/src/darwin/cg_color.rs
deleted file mode 100644
index 79ea0863..00000000
--- a/font/src/darwin/cg_color.rs
+++ /dev/null
@@ -1,92 +0,0 @@
-// Copyright 2016 Joe Wilm, The Alacritty Project Contributors
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-use core_foundation::base::{CFRelease, CFRetain, CFTypeID, CFTypeRef, TCFType};
-use core_graphics::color_space::{CGColorSpace, CGColorSpaceRef};
-use core_graphics::base::CGFloat;
-use std::mem;
-
-#[repr(C)]
-pub struct __CGColor;
-
-pub type CGColorRef = *const __CGColor;
-
-pub struct CGColor {
- obj: CGColorRef,
-}
-
-impl Drop for CGColor {
- fn drop(&mut self) {
- unsafe {
- CFRelease(self.as_CFTypeRef())
- }
- }
-}
-
-impl Clone for CGColor {
- fn clone(&self) -> CGColor {
- unsafe {
- TCFType::wrap_under_get_rule(self.as_concrete_TypeRef())
- }
- }
-}
-
-impl TCFType<CGColorRef> for CGColor {
- #[inline]
- fn as_concrete_TypeRef(&self) -> CGColorRef {
- self.obj
- }
-
- #[inline]
- unsafe fn wrap_under_get_rule(reference: CGColorRef) -> CGColor {
- let reference: CGColorRef = mem::transmute(CFRetain(mem::transmute(reference)));
- TCFType::wrap_under_create_rule(reference)
- }
-
- #[inline]
- fn as_CFTypeRef(&self) -> CFTypeRef {
- unsafe {
- mem::transmute(self.as_concrete_TypeRef())
- }
- }
-
- #[inline]
- unsafe fn wrap_under_create_rule(obj: CGColorRef) -> CGColor {
- CGColor {
- obj: obj,
- }
- }
-
- #[inline]
- fn type_id() -> CFTypeID {
- unsafe {
- CGColorGetTypeID()
- }
- }
-}
-
-impl CGColor {
- pub fn new(color_space: CGColorSpace, values: [CGFloat; 4]) -> CGColor {
- unsafe {
- let result = CGColorCreate(color_space.as_concrete_TypeRef(), values.as_ptr());
- TCFType::wrap_under_create_rule(result)
- }
- }
-}
-
-#[link(name = "ApplicationServices", kind = "framework")]
-extern {
- fn CGColorCreate(space: CGColorSpaceRef, vals: *const CGFloat) -> CGColorRef;
- fn CGColorGetTypeID() -> CFTypeID;
-}
-
diff --git a/font/src/darwin/mod.rs b/font/src/darwin/mod.rs
index d5c65b50..2d354152 100644
--- a/font/src/darwin/mod.rs
+++ b/font/src/darwin/mod.rs
@@ -26,10 +26,9 @@ use core_foundation::string::{CFString, CFStringRef};
use core_foundation::array::CFIndex;
use core_foundation_sys::string::UniChar;
use core_graphics::base::kCGImageAlphaPremultipliedFirst;
-use core_graphics::base::CGFloat;
use core_graphics::color_space::CGColorSpace;
use core_graphics::context::{CGContext, CGContextRef};
-use core_graphics::font::{CGFont, CGFontRef, CGGlyph};
+use core_graphics::font::{CGFont, CGGlyph};
use core_graphics::geometry::{CGPoint, CGRect, CGSize};
use core_text::font::{CTFont, new_from_descriptor as ct_new_from_descriptor};
use core_text::font_collection::create_for_family;
@@ -40,7 +39,7 @@ use core_text::font_descriptor::kCTFontVerticalOrientation;
use core_text::font_descriptor::{CTFontDescriptor, CTFontDescriptorRef, CTFontOrientation};
use core_text::font_descriptor::SymbolicTraitAccessors;
-use libc::{size_t, c_int};
+use libc::{c_int};
use euclid::point::Point2D;
use euclid::rect::Rect;
@@ -48,9 +47,6 @@ use euclid::size::Size2D;
use super::{FontDesc, RasterizedGlyph, Metrics, FontKey, GlyphKey};
-pub mod cg_color;
-use self::cg_color::{CGColorRef, CGColor};
-
pub mod byte_order;
use self::byte_order::kCGBitmapByteOrder32Host;
use self::byte_order::extract_rgb;
@@ -462,94 +458,14 @@ impl Font {
/// Additional methods needed to render fonts for Alacritty
///
-/// TODO upstream these into core_graphics crate
+/// TODO CGContextSetFontSmoothingStyle has been upstreamed in
+/// core-graphics 0.8.0, but core-text must be bumped before we
+/// can use it.
pub trait CGContextExt {
- fn set_allows_font_subpixel_quantization(&self, bool);
- fn set_should_subpixel_quantize_fonts(&self, bool);
- fn set_allows_font_subpixel_positioning(&self, bool);
- fn set_should_subpixel_position_fonts(&self, bool);
- fn set_allows_antialiasing(&self, bool);
- fn set_should_antialias(&self, bool);
- fn fill_rect(&self, rect: CGRect);
- fn set_font_smoothing_background_color(&self, color: CGColor);
- fn show_glyphs_at_positions(&self, &[CGGlyph], &[CGPoint]);
- fn set_font(&self, &CGFont);
- fn set_font_size(&self, size: f64);
fn set_font_smoothing_style(&self, style: i32);
}
impl CGContextExt for CGContext {
- fn set_allows_font_subpixel_quantization(&self, allows: bool) {
- unsafe {
- CGContextSetAllowsFontSubpixelQuantization(self.as_concrete_TypeRef(), allows);
- }
- }
-
- fn set_should_subpixel_quantize_fonts(&self, should: bool) {
- unsafe {
- CGContextSetShouldSubpixelQuantizeFonts(self.as_concrete_TypeRef(), should);
- }
- }
-
- fn set_should_subpixel_position_fonts(&self, should: bool) {
- unsafe {
- CGContextSetShouldSubpixelPositionFonts(self.as_concrete_TypeRef(), should);
- }
- }
-
- fn set_allows_font_subpixel_positioning(&self, allows: bool) {
- unsafe {
- CGContextSetAllowsFontSubpixelPositioning(self.as_concrete_TypeRef(), allows);
- }
- }
-
- fn set_should_antialias(&self, should: bool) {
- unsafe {
- CGContextSetShouldAntialias(self.as_concrete_TypeRef(), should);
- }
- }
-
- fn set_allows_antialiasing(&self, allows: bool) {
- unsafe {
- CGContextSetAllowsAntialiasing(self.as_concrete_TypeRef(), allows);
- }
- }
-
- fn fill_rect(&self, rect: CGRect) {
- unsafe {
- CGContextFillRect(self.as_concrete_TypeRef(), rect);
- }
- }
-
- fn set_font_smoothing_background_color(&self, color: CGColor) {
- unsafe {
- CGContextSetFontSmoothingBackgroundColor(self.as_concrete_TypeRef(),
- color.as_concrete_TypeRef());
- }
- }
-
- fn show_glyphs_at_positions(&self, glyphs: &[CGGlyph], positions: &[CGPoint]) {
- assert_eq!(glyphs.len(), positions.len());
- unsafe {
- CGContextShowGlyphsAtPositions(self.as_concrete_TypeRef(),
- glyphs.as_ptr(),
- positions.as_ptr(),
- glyphs.len());
- }
- }
-
- fn set_font(&self, font: &CGFont) {
- unsafe {
- CGContextSetFont(self.as_concrete_TypeRef(), font.as_concrete_TypeRef());
- }
- }
-
- fn set_font_size(&self, size: f64) {
- unsafe {
- CGContextSetFontSize(self.as_concrete_TypeRef(), size as CGFloat);
- }
- }
-
fn set_font_smoothing_style(&self, style: i32) {
unsafe {
CGContextSetFontSmoothingStyle(self.as_concrete_TypeRef(), style as _);
@@ -559,18 +475,6 @@ impl CGContextExt for CGContext {
#[link(name = "ApplicationServices", kind = "framework")]
extern {
- fn CGContextSetAllowsFontSubpixelQuantization(c: CGContextRef, allows: bool);
- fn CGContextSetShouldSubpixelQuantizeFonts(c: CGContextRef, should: bool);
- fn CGContextSetAllowsFontSubpixelPositioning(c: CGContextRef, allows: bool);
- fn CGContextSetShouldSubpixelPositionFonts(c: CGContextRef, should: bool);
- fn CGContextSetAllowsAntialiasing(c: CGContextRef, allows: bool);
- fn CGContextSetShouldAntialias(c: CGContextRef, should: bool);
- fn CGContextFillRect(c: CGContextRef, r: CGRect);
- fn CGContextSetFontSmoothingBackgroundColor(c: CGContextRef, color: CGColorRef);
- fn CGContextShowGlyphsAtPositions(c: CGContextRef, glyphs: *const CGGlyph,
- positions: *const CGPoint, count: size_t);
- fn CGContextSetFont(c: CGContextRef, font: CGFontRef);
- fn CGContextSetFontSize(c: CGContextRef, size: CGFloat);
fn CGContextSetFontSmoothingStyle(c: CGContextRef, style: c_int);
}