Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FEATURE] support all Opentype font formats #459

Open
terefang opened this issue Apr 4, 2024 · 0 comments
Open

[FEATURE] support all Opentype font formats #459

terefang opened this issue Apr 4, 2024 · 0 comments
Labels
feature proposal for a new feature, or alleged bug triaged as intentional but warranting improvement

Comments

@terefang
Copy link

terefang commented Apr 4, 2024

Is your feature request related to a problem?

First i would like to refer to: https://news.povray.org/povray.general/message/%3C60ad4d83%241%40news.povray.org%3E/#%3C60ad4d83%241%40news.povray.org%3E

OpenType format fonts have emerged as the dominant choice in font technology, largely due to their versatility, cross-platform compatibility, and extensive typographic features. With 99% of fonts on most systems being OpenType, it's evident that the format has become the standard choice for designers and users alike. Its flexibility, support for international typography, and ongoing evolution make OpenType fonts the clear path forward into the future of typography and design.

Describe the solution you'd like

Libfreetype, a popular font rendering library, supports various font formats, enabling applications to render text with high-quality typography. Here are the font formats supported by libfreetype:

  • TrueType (TTF): TrueType is one of the most widely used font formats, known for its scalability and high-quality rendering. Libfreetype fully supports TrueType fonts, allowing applications to load and render text accurately from TrueType font files.
  • OpenType (OTF): OpenType is an extension of the TrueType font format, offering additional typographic features and capabilities. Libfreetype provides comprehensive support for OpenType fonts, including advanced features such as ligatures, alternate glyphs, and contextual substitutions.
  • PostScript Type 1 (PFB/PFA): PostScript Type 1 fonts are an older font format developed by Adobe Systems, known for their precise outlines and compatibility with PostScript printers. Libfreetype supports loading and rendering Type 1 fonts, enabling applications to utilize this font format.
  • PostScript Type 42 (PFA/PFB with TrueType outlines): PostScript Type 42 fonts combine the structure of PostScript Type 1 fonts with TrueType outlines, offering the benefits of both formats. Libfreetype includes support for Type 42 fonts, allowing applications to render text from files that use this format.
  • CID-keyed fonts (Type 0): CID-keyed fonts, also known as Type 0 fonts, are used for handling complex writing systems such as East Asian languages. Libfreetype provides support for Type 0 fonts, enabling applications to render text in languages that require this format.
  • SFNT-based bitmap fonts (PCF, FNT, and BDF): SFNT-based bitmap fonts are bitmap font formats stored within an SFNT container. Libfreetype supports various SFNT-based bitmap font formats, including PCF (Portable Compiled Format), FNT (Windows Bitmap Font), and BDF (Glyph Bitmap Distribution Format).
  • SVG fonts: Scalable Vector Graphics (SVG) fonts use XML-based vector graphics to define glyphs. Libfreetype includes support for SVG fonts, allowing applications to render text using this scalable and versatile font format.

POV-Ray, could significantly benefit from transitioning to a modern font library for several compelling reasons. Here's an elaboration on why such a move would be advantageous:

  • Enhanced Typography Features: A modern font library would offer advanced typographic capabilities that align with contemporary design standards. This includes support for OpenType fonts, which provide a broader range of typographic features such as ligatures, alternate glyphs, and contextual substitutions.
  • Improved Cross-Platform Compatibility: Modern font libraries are designed to be cross-platform, ensuring consistent font rendering across different operating systems and devices. By adopting a modern font library, POV-Ray can provide a seamless user experience regardless of the platform, eliminating potential font rendering discrepancies and compatibility issues.
  • Optimized Performance: Modern font libraries are optimized for performance and efficiency, allowing for faster font loading and rendering. This optimization is particularly beneficial for complex scenes with numerous text elements, as it helps improve overall rendering speed and responsiveness within POV-Ray.
  • Expanded Font Format Support: Unlike POV-Ray today, modern font libraries support a wide range of font formats, including TrueType, OpenType, and Type 1 fonts. This expanded format support gives users greater flexibility in selecting fonts for their scenes and ensures compatibility with the latest font technologies and standards.
  • Future-Proofing: Transitioning to a modern font library ensures that POV-Ray remains relevant and adaptable to future developments in font technology. As fonts continue to evolve and new typographic features emerge, a modern font library provides the foundation for incorporating these advancements into POV-Ray, ensuring its longevity and competitiveness in the ever-changing landscape of computer graphics.

In conclusion, adopting a modern font library would empower POV-Ray with enhanced typographic features, improved cross-platform compatibility, optimized performance and expanded font format support, and provide users with a more versatile and engaging rendering experience.

Describe alternatives you've considered

there are none

@terefang terefang added the feature proposal for a new feature, or alleged bug triaged as intentional but warranting improvement label Apr 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature proposal for a new feature, or alleged bug triaged as intentional but warranting improvement
Projects
None yet
Development

No branches or pull requests

1 participant