Skip to content

Add BC7/BC5 thumbnails, installer, and CI#1

Merged
GuiSaiUwU merged 2 commits into
masterfrom
feat/bc7-bc5-thumbnails-and-installer
May 29, 2026
Merged

Add BC7/BC5 thumbnails, installer, and CI#1
GuiSaiUwU merged 2 commits into
masterfrom
feat/bc7-bc5-thumbnails-and-installer

Conversation

@DexalGT

@DexalGT DexalGT commented May 29, 2026

Copy link
Copy Markdown
Member

Decoding

  • Add self-contained BC7 (full 8-mode) and BC5 (normal-map) software decoders to s3tc.cpp; BC7 tables/flow match the BC7 spec. Wire both into TexThumbnailProvider.cpp (tex_format 0x0D / 0x0E).

Priority over Photoshop

  • DllRegisterServer now also registers the handler CLSID under the current .tex ProgID and SystemFileAssociations.tex in HKCU, which overrides the HKLM handler Photoshop registers. Only the thumbnail subkey is touched. DllUnregisterServer tears these down too.

Distribution

  • scripts/install-thumbnail-handler.ps1 + uninstall script: one-liner iwr ... | iex install that pulls the DLL from the latest Release and registers it per-user (no admin).
  • .github/workflows/build.yml: build every push/PR, upload DLL artifact.
  • .github/workflows/release.yml: on v* tag, build and attach the DLL (+ sha256) to the GitHub Release.

Cleanup

  • Rewrite README for this project; remove the obsolete VS2008 .vcproj.

Decoding
- Add self-contained BC7 (full 8-mode) and BC5 (normal-map) software
  decoders to s3tc.cpp; BC7 tables/flow match the BC7 spec. Wire both
  into TexThumbnailProvider.cpp (tex_format 0x0D / 0x0E).

Priority over Photoshop
- DllRegisterServer now also registers the handler CLSID under the
  current .tex ProgID and SystemFileAssociations\.tex in HKCU, which
  overrides the HKLM handler Photoshop registers. Only the thumbnail
  subkey is touched. DllUnregisterServer tears these down too.

Distribution
- scripts/install-thumbnail-handler.ps1 + uninstall script: one-liner
  `iwr ... | iex` install that pulls the DLL from the latest Release and
  registers it per-user (no admin).
- scripts/install-local.ps1: build + install a local DLL for testing.
- .github/workflows/build.yml: build every push/PR, upload DLL artifact.
- .github/workflows/release.yml: on `v*` tag, build and attach the DLL
  (+ sha256) to the GitHub Release.

Cleanup
- Rewrite README for this project; remove the obsolete VS2008 .vcproj.
@DexalGT DexalGT force-pushed the feat/bc7-bc5-thumbnails-and-installer branch from b01ceee to 448adb7 Compare May 29, 2026 13:50

@GuiSaiUwU GuiSaiUwU left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@GuiSaiUwU GuiSaiUwU merged commit 759b8e8 into master May 29, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants