CARVIEW |
Select Language
HTTP/2 200
date: Sun, 12 Oct 2025 12:27:45 GMT
content-type: text/html; charset=utf-8
vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With,Accept-Encoding, Accept, X-Requested-With
x-repository-download: git clone https://github.com/astiob/xy-VSFilter.git
etag: W/"50d984100c5e1254bf2605ee38cbe3bc"
cache-control: max-age=0, private, must-revalidate
strict-transport-security: max-age=31536000; includeSubdomains; preload
x-frame-options: deny
x-content-type-options: nosniff
x-xss-protection: 0
referrer-policy: no-referrer-when-downgrade
content-security-policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com github.githubassets.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com wss://alive-staging.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com marketplace-screenshots.githubusercontent.com/ copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
server: github.com
content-encoding: gzip
accept-ranges: bytes
set-cookie: _gh_sess=OTk2AVrY5UDeebxiAqxBi0cOuBYqP4GV8fIYGIeb6DStJVz6xfzKIrOWlSapRWYDVIV7mtYeniWBTeuO4hQbERs%2ByscDLgPwavkL2K7KPqYJHdQzgOh%2BwhOB6q7SQuZobSDhB8JflfUlgA%2FU%2ByyG8Rfl96FxFv9O1ZnX7A3Frg%2Bmhap2i2p3AbkZbMPNwkTVLH6y1rN5KA9%2BSEy%2FXcrwhvyfuvMh4wyh3aI3DdOxofVNrg%2F%2BAR98aTOl8WYXvd96oEn52TxeTe2AB6F9P0U66w%3D%3D--UGxxiqKIW8pa%2FgSc--faGR%2Bafhv6k460att%2B3Juw%3D%3D; Path=/; HttpOnly; Secure; SameSite=Lax
set-cookie: _octo=GH1.1.639008718.1760272064; Path=/; Domain=github.com; Expires=Mon, 12 Oct 2026 12:27:44 GMT; Secure; SameSite=Lax
set-cookie: logged_in=no; Path=/; Domain=github.com; Expires=Mon, 12 Oct 2026 12:27:44 GMT; HttpOnly; Secure; SameSite=Lax
x-github-request-id: B192:2E6B02:F40676:1452338:68EB9EC0
WIP: Support Kerning ASS header to force Uniscribe rendering for all … · astiob/xy-VSFilter@f17dca9 · GitHub
Skip to content
Navigation Menu
{{ message }}
forked from Cyberbeing/xy-VSFilter
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit f17dca9
committed
WIP: Support Kerning ASS header to force Uniscribe rendering for all text
This force-enables OpenType shaping (GPOS kerning and GSUB ligatures)
and inline font fallback throughout the text.
The existing behaviour (preserved with Kerning: no) is that TextOut and
GetTextExtentPoint32 automatically enable it in CWords that either contain
non-European scripts (as determined by ScriptIsComplex) or use fonts that
lack European support (as determined by having glyphs for the 4 characters
'd', 'M', 'r', '"'), but this leads to inconsistent and suboptimal output:
* some words or lines may have kerning while others lack it;
* font choice may differ when the primary font is missing some glyphs,
and some words or lines may even show tofu boxes while others show
glyphs from fallback fonts;
* line layout is performed using widths computed for each individual
word, but output is often performed several words at a time: if any
of the words involved triggers complex script shaping, then the whole
sequence gains kerning and ligatures, which can change the width
significantly and cause layout inconsistencies such as right-aligned
lines being placed too far to the left of the alignment point;
* kerning and ligatures improve text display quality, but subtitle
authors have no sane way to enable them in European languages;
* libass currently unconditionally displays ligatures and performs
font fallback and supports kerning with the Kerning header,
but VSFilter provides no sane way to achieve the same output.
While we have the chance, also disable (avoid enabling) some legacy
compatibility features concerning bidirectional text and localized digits
when Kerning: yes. This provides more standards-compliant output
and better matches libass's current output.
In a separate commit, bidirectional pair matching may also be enabled
in coordination with libass: to do this, ScriptStringAnalyse simply needs
to be passed a SCRIPT_CONTROL instance with fUseStandardBidi = 1.1 parent 053d932 commit f17dca9Copy full SHA for f17dca9
Expand file treeCollapse file tree
3 files changed
+51
-0
lines changedCollapse file: src/subtitles/RTS.cpp
+40Lines changed: 40 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
666 | 666 |
| |
667 | 667 |
| |
668 | 668 |
| |
| 669 | + | |
| 670 | + | |
| 671 | + | |
| 672 | + | |
| 673 | + | |
| 674 | + | |
| 675 | + | |
| 676 | + | |
| 677 | + | |
| 678 | + | |
| 679 | + | |
| 680 | + | |
| 681 | + | |
| 682 | + | |
| 683 | + | |
| 684 | + | |
| 685 | + | |
| 686 | + | |
| 687 | + | |
| 688 | + | |
| 689 | + | |
| 690 | + | |
| 691 | + | |
| 692 | + | |
| 693 | + | |
| 694 | + | |
| 695 | + | |
669 | 696 |
| |
670 | 697 |
| |
671 | 698 |
| |
| |||
712 | 739 |
| |
713 | 740 |
| |
714 | 741 |
| |
| 742 | + | |
| 743 | + | |
| 744 | + | |
| 745 | + | |
| 746 | + | |
| 747 | + | |
| 748 | + | |
| 749 | + | |
| 750 | + | |
| 751 | + | |
| 752 | + | |
| 753 | + | |
715 | 754 |
| |
716 | 755 |
| |
717 | 756 |
| |
| |||
2959 | 2998 |
| |
2960 | 2999 |
| |
2961 | 3000 |
| |
| 3001 | + | |
2962 | 3002 |
| |
2963 | 3003 |
| |
2964 | 3004 |
| |
|
Collapse file: src/subtitles/STS.cpp
+7Lines changed: 7 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
2096 | 2096 |
| |
2097 | 2097 |
| |
2098 | 2098 |
| |
| 2099 | + | |
| 2100 | + | |
| 2101 | + | |
| 2102 | + | |
| 2103 | + | |
| 2104 | + | |
2099 | 2105 |
| |
2100 | 2106 |
| |
2101 | 2107 |
| |
| |||
3643 | 3649 |
| |
3644 | 3650 |
| |
3645 | 3651 |
| |
| 3652 | + | |
3646 | 3653 |
| |
3647 | 3654 |
| |
3648 | 3655 |
| |
|
Collapse file: src/subtitles/STS.h
+4Lines changed: 4 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
78 | 78 |
| |
79 | 79 |
| |
80 | 80 |
| |
| 81 | + | |
| 82 | + | |
| 83 | + | |
81 | 84 |
| |
82 | 85 |
| |
83 | 86 |
| |
| |||
180 | 183 |
| |
181 | 184 |
| |
182 | 185 |
| |
| 186 | + | |
183 | 187 |
| |
184 | 188 |
| |
185 | 189 |
| |
|
You can’t perform that action at this time.
0 commit comments