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

Rework windows font collector #107

Closed

Commits on Feb 1, 2024

  1. Configuration menu
    Copy the full SHA
    eea7006 View commit details
    Browse the repository at this point in the history
  2. [src\font_file_lister_gdi] Rework GDI FontCollector to use DirectWrite

    This replaces all the logic of using the Windows registry to obtain the font path by using DirectWrite. The goal is simply to improve the quality of the code. This doesn't change any functionality
    moi15moi committed Feb 1, 2024
    Configuration menu
    Copy the full SHA
    042f0c5 View commit details
    Browse the repository at this point in the history
  3. [src\meson.build] Remove Uniscribe has dependency

    Uniscribe was only used for the FontCollector. Since we now use DirectWrite, we don't need it anymore.
    moi15moi committed Feb 1, 2024
    Configuration menu
    Copy the full SHA
    11cc16d View commit details
    Browse the repository at this point in the history
  4. [src\dialog_fonts_collector] Catch exceptions that FontCollector may …

    …raise
    
    On Windows, the initialization of the FontCollector can raise an exception
    moi15moi committed Feb 1, 2024
    Configuration menu
    Copy the full SHA
    e3107ac View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    6a3643f View commit details
    Browse the repository at this point in the history

Commits on Feb 2, 2024

  1. Configuration menu
    Copy the full SHA
    ea6a339 View commit details
    Browse the repository at this point in the history

Commits on Feb 9, 2024

  1. Configuration menu
    Copy the full SHA
    de1d3e3 View commit details
    Browse the repository at this point in the history

Commits on Mar 2, 2024

  1. Configuration menu
    Copy the full SHA
    7d099da View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    9697588 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    5212d1c View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    9af7c22 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    863d427 View commit details
    Browse the repository at this point in the history

Commits on Mar 3, 2024

  1. Configuration menu
    Copy the full SHA
    38a5a99 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    62813a6 View commit details
    Browse the repository at this point in the history

Commits on Mar 5, 2024

  1. [src\font_file_lister_gdi] Use IDWriteFontFace::GetSimulations to det…

    …ect fake_italic/fake_bold
    
    See this comment: arch1t3cht#107 (comment)
    moi15moi committed Mar 5, 2024
    Configuration menu
    Copy the full SHA
    83f8c7f View commit details
    Browse the repository at this point in the history

Commits on Mar 8, 2024

  1. [src\font_file_lister_gdi] If Win7/8 has Win 10 SDK on compile time, …

    …correctly verify if font has character(s)
    
    With the Visual Studio 2019 toolchain on Windows 7, it installs the Windows 10 SDK by default. Because of this, ``HAVE_DWRITE_3`` is true, so the ``QueryInterface`` always fails. Now, if the ``QueryInterface`` fails, we try to verify if the font has characters with a Windows Vista SP2 compatible code.
    moi15moi committed Mar 8, 2024
    Configuration menu
    Copy the full SHA
    2988f79 View commit details
    Browse the repository at this point in the history

Commits on Mar 16, 2024

  1. [src\font_file_lister_gdi] Support facename that contains only whites…

    …pace AND truncated facename
    
    Problem 1:
    Previously, if a user wrote "\fn   ", it would return the font Arial, which is not what we want. This is because when we request EnumFontFamiliesEx with whitespace or an empty lfFaceName, it will enumerate all the installed fonts.
    
    Solution 1:
    To resolve this issue, let's implement a solution similar to libass to determine if the selected facename exists: https://github.com/libass/libass/blob/649a7c2e1fc6f4188ea1a89968560715800b883d/libass/ass_directwrite.c#L737-L747
    
    Problem 2:
    GDI truncates font names to 31 characters. See: libass/libass#459
    However, since I changed the method to determine if a facename exists, I ensured that we still support this "feature".
    
    To test this, I used the font in: libass/libass#710
    moi15moi committed Mar 16, 2024
    Configuration menu
    Copy the full SHA
    fd08ee2 View commit details
    Browse the repository at this point in the history

Commits on Mar 17, 2024

  1. [src\font_file_lister_gdi] Add a FIXME comment regarding the utilizat…

    …ion of std::wstring over WCHAR
    moi15moi committed Mar 17, 2024
    Configuration menu
    Copy the full SHA
    44b81fd View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    17a3f48 View commit details
    Browse the repository at this point in the history