@@ -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 ;
@@ -891,12 +891,21 @@ fn variations() {
891
891
// Check if new_from_CGFont will work on our CGFont with variations applied
892
892
let ct_font = new_from_CGFont ( & var_font. clone ( ) , 19. ) ;
893
893
match macos_version ( ) {
894
- ( 10 , 15 , 0 ) => assert_ne ! ( ct_font. family_name( ) , ".LastResort" ) ,
895
- ( 10 , 14 , 0 ) => assert_eq ! ( ct_font. family_name( ) , ".LastResort" ) ,
896
- ( 10 , 13 , 0 ) => assert_eq ! ( ct_font. family_name( ) , ".LastResort" ) ,
897
- ( 10 , 12 , 0 ) => assert_eq ! ( ct_font. family_name( ) , ".LastResort" ) ,
898
- ( 10 , 11 , 0 ) => assert_ne ! ( ct_font. family_name( ) , ".LastResort" ) ,
894
+ ( 10 , 15 , _ ) => assert_ne ! ( ct_font. family_name( ) , ".LastResort" ) ,
895
+ ( 10 , 14 , _ ) => assert_eq ! ( ct_font. family_name( ) , ".LastResort" ) ,
896
+ ( 10 , 13 , _ ) => assert_eq ! ( ct_font. family_name( ) , ".LastResort" ) ,
897
+ ( 10 , 12 , _ ) => assert_eq ! ( ct_font. family_name( ) , ".LastResort" ) ,
898
+ ( 10 , 11 , _ ) => assert_ne ! ( ct_font. family_name( ) , ".LastResort" ) ,
899
899
_ => assert_ne ! ( ct_font. family_name( ) , ".LastResort" ) ,
900
-
901
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
+ assert_ne ! ( ct_font. family_name( ) , ".LastResort" ) ;
902
911
}
0 commit comments