@@ -781,7 +781,7 @@ fn maxPow2LessThanEqual(a: i32) -> i32 {
781
781
}
782
782
783
783
784
- fn construct_font_data ( font : CGFont ) -> Vec < u8 > {
784
+ fn construct_font_data ( font : & CGFont ) -> Vec < u8 > {
785
785
struct TableRecord {
786
786
tag : u32 ,
787
787
checkSum : u32 ,
@@ -865,7 +865,7 @@ fn font_data() {
865
865
)
866
866
} ;
867
867
println ! ( "{:?}" , ( small. postscript_name( ) , small. url( ) ) ) ;
868
- let data = construct_font_data ( small. copy_to_CGFont ( ) ) ;
868
+ let data = construct_font_data ( & small. copy_to_CGFont ( ) ) ;
869
869
let mut file = std:: fs:: File :: create ( "test.ttf" ) . unwrap ( ) ;
870
870
// Write a slice of bytes to the file
871
871
use std:: io:: Write ;
@@ -897,6 +897,22 @@ fn variations() {
897
897
( 10 , 12 , 0 ) => assert_eq ! ( ct_font. family_name( ) , ".LastResort" ) ,
898
898
( 10 , 11 , 0 ) => assert_ne ! ( ct_font. family_name( ) , ".LastResort" ) ,
899
899
_ => assert_ne ! ( ct_font. family_name( ) , ".LastResort" ) ,
900
+ }
900
901
902
+ let data = construct_font_data ( & font) ;
903
+ let font = new_from_buffer ( & data) . unwrap ( ) ;
904
+ let font = font. copy_to_CGFont ( ) ;
905
+ vals_str. push ( ( CFString :: new ( "Weight" ) , ( 700. ) . into ( ) ) ) ;
906
+ let vars = CFDictionary :: from_CFType_pairs ( & vals_str) ;
907
+ let var_font = CGFont :: create_copy_from_variations ( & font, & vars) . unwrap ( ) ;
908
+ // Check if new_from_CGFont will work on our CGFont with variations applied
909
+ let ct_font = new_from_CGFont ( & var_font. clone ( ) , 19. ) ;
910
+ match macos_version ( ) {
911
+ ( 10 , 15 , 0 ) => assert_ne ! ( ct_font. family_name( ) , ".LastResort" ) ,
912
+ ( 10 , 14 , 0 ) => assert_eq ! ( ct_font. family_name( ) , ".LastResort" ) ,
913
+ ( 10 , 13 , 0 ) => assert_eq ! ( ct_font. family_name( ) , ".LastResort" ) ,
914
+ ( 10 , 12 , 0 ) => assert_eq ! ( ct_font. family_name( ) , ".LastResort" ) ,
915
+ ( 10 , 11 , 0 ) => assert_ne ! ( ct_font. family_name( ) , ".LastResort" ) ,
916
+ _ => assert_ne ! ( ct_font. family_name( ) , ".LastResort" ) ,
901
917
}
902
918
}
0 commit comments