mirror of
https://github.com/servo/servo.git
synced 2025-08-11 00:15:32 +01:00
gfx: Remove FontTemplateData
(#32034)
Now that `FontTemplateData` is more or less the same on all platforms, it can be removed. This is a preparatory change for a full refactor of the font system on Servo. The major changes here are: - Remove `FontTemplateData` and move its members into `FontTemplate` - Make `FontTemplate` have full interior mutability instead of only the `FontTemplateData` member. This is preparation for having these data types `Send` and `Sync` with locking. - Remove the strong/weak reference concept for font data. In practice, all font data references were strong, so this was never fully complete. Instead of using this approach, the new font system will use a central font data cache with references associated to layouts. - The `CTFont` cache is now a global cache, so `CTFont`s can be shared between threads. The cache is cleared when clearing font caches. A benefit of this change (apart from `CTFont` sharing) is that font data loading is platform-independent now.
This commit is contained in:
parent
689c144714
commit
6b2fa91357
19 changed files with 394 additions and 600 deletions
|
@ -3,11 +3,11 @@
|
|||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#[cfg(any(target_os = "linux", target_os = "android"))]
|
||||
pub use crate::platform::freetype::{font, font_list, font_template, library_handle};
|
||||
pub use crate::platform::freetype::{font, font_list, library_handle};
|
||||
#[cfg(target_os = "macos")]
|
||||
pub use crate::platform::macos::{font, font_list, font_template};
|
||||
#[cfg(target_os = "windows")]
|
||||
pub use crate::platform::windows::{font, font_list, font_template};
|
||||
pub use crate::platform::windows::{font, font_list};
|
||||
|
||||
#[cfg(any(target_os = "linux", target_os = "android"))]
|
||||
mod freetype {
|
||||
|
@ -36,7 +36,6 @@ mod freetype {
|
|||
#[cfg(target_os = "android")]
|
||||
pub use self::android::font_list;
|
||||
|
||||
pub mod font_template;
|
||||
pub mod library_handle;
|
||||
}
|
||||
|
||||
|
@ -51,5 +50,4 @@ mod macos {
|
|||
mod windows {
|
||||
pub mod font;
|
||||
pub mod font_list;
|
||||
pub mod font_template;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue