Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
7b41d97
Add basis for ASTC decoding
Erik-White Nov 12, 2025
ae2c4c4
Update to use AstcSharp
Erik-White Feb 3, 2026
52ff132
Fix comment tags
Erik-White Feb 3, 2026
48c9802
Merge branch 'main' into add-astc-decoding
Erik-White Feb 3, 2026
2563be5
Use strongly named AstcSharp
Erik-White Feb 4, 2026
5df747f
Remove temporary tests
Erik-White Feb 4, 2026
6db3033
Reduce code duplication for ASTC block sizes
Erik-White Feb 4, 2026
d8d9d44
Remove debug code
Erik-White Feb 4, 2026
8e86c7c
Add ASTC block size reference tests
Erik-White Feb 11, 2026
710f018
Update naming of ktx2 test files
Erik-White Feb 11, 2026
3d9fd53
Add ASTC 8x8 test for KTX1
Erik-White Feb 11, 2026
37e067f
Add unorm and srgb test cases
Erik-White Feb 12, 2026
0b1639a
UNORM -> Unorm
Erik-White Feb 12, 2026
f9c119c
Update block size test data
Erik-White Feb 12, 2026
a149d52
Use tighter comparison for KTX1 tests
Erik-White Feb 12, 2026
310f012
Add placeholder tests for supercompressed ASTC
Erik-White Feb 12, 2026
aceb57a
Add cubemap decoding test
Erik-White Feb 13, 2026
5e8a097
Add test for mipmap levels
Erik-White Feb 13, 2026
52058fc
Improve and reorganize flat tests
Erik-White Feb 13, 2026
e5c2e5e
Clean up test images list
Erik-White Feb 13, 2026
f26130b
Add large image test
Erik-White Feb 13, 2026
297f802
Tidy up test image naming
Erik-White Feb 13, 2026
1946b6c
Tidy up unused test files
Erik-White Feb 13, 2026
fc7387b
Restore existing test images
Erik-White Feb 13, 2026
1c6be57
Update ASTC types to follow style recommendations
Erik-White Feb 13, 2026
d8535e5
Remove unsupported test images
Erik-White Feb 13, 2026
bba744e
Tidy up AstcDecoder and add more guards
Erik-White Feb 13, 2026
7bc09d0
Correctly guard image dimensions
Erik-White Feb 13, 2026
4ca0d00
Update readme
Erik-White Feb 14, 2026
1ae2ca3
Update AstcSharp
Erik-White Feb 25, 2026
2b635e2
Bring AstcSharp inside ImageSharp.Textures
Erik-White Feb 25, 2026
cab129c
Update style and formatting to ImageSharp standard
Erik-White Feb 25, 2026
b79ef15
Move Astc tests into existing test project
Erik-White Feb 25, 2026
b9cc7b1
Use ImageSharp test utilites to load and compare images
Erik-White Feb 25, 2026
5179597
Use ImageSharp test utils to load images
Erik-White Feb 25, 2026
d52ee77
Fix style warnings in tests
Erik-White Feb 25, 2026
517ec1a
Fix more style warnings
Erik-White Feb 26, 2026
78ddda8
Update test dependencies
Erik-White Feb 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
80 changes: 73 additions & 7 deletions ImageSharp.Textures.sln
Original file line number Diff line number Diff line change
Expand Up @@ -49,35 +49,92 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "workflows", "workflows", "{
.github\workflows\build-and-test.yml = .github\workflows\build-and-test.yml
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ImageSharp.Textures.Astc", "src\ImageSharp.Textures.Astc\ImageSharp.Textures.Astc.csproj", "{AE37301B-3635-4C61-A026-DEB2E1328DD1}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ImageSharp.Textures.Astc.Reference.Tests", "tests\ImageSharp.Textures.Astc.Reference.Tests\ImageSharp.Textures.Astc.Reference.Tests.csproj", "{E15C2E1A-FCD6-42B1-82D2-2C72CC4DC720}"
EndProject
Global
GlobalSection(SharedMSBuildProjectFiles) = preSolution
shared-infrastructure\src\SharedInfrastructure\SharedInfrastructure.projitems*{1588f6c4-2186-4a35-9693-e9f296791393}*SharedItemsImports = 5
tests\Images\Images.projitems*{17fcbd4d-d232-45e8-876f-dfbc2fad52cf}*SharedItemsImports = 5
tests\Images\Images.projitems*{18be79b6-6b95-4ed7-a963-ad75f6cb9f3c}*SharedItemsImports = 5
tests\Images\Images.projitems*{68a8cc40-6aed-4e96-b524-31b1158fdeea}*SharedItemsImports = 13
tests\Images\Images.projitems*{b159ffd1-e646-42d0-892c-4abf69103712}*SharedItemsImports = 5
EndGlobalSection
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{1588F6C4-2186-4A35-9693-E9F296791393}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1588F6C4-2186-4A35-9693-E9F296791393}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1588F6C4-2186-4A35-9693-E9F296791393}.Debug|x64.ActiveCfg = Debug|Any CPU
{1588F6C4-2186-4A35-9693-E9F296791393}.Debug|x64.Build.0 = Debug|Any CPU
{1588F6C4-2186-4A35-9693-E9F296791393}.Debug|x86.ActiveCfg = Debug|Any CPU
{1588F6C4-2186-4A35-9693-E9F296791393}.Debug|x86.Build.0 = Debug|Any CPU
{1588F6C4-2186-4A35-9693-E9F296791393}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1588F6C4-2186-4A35-9693-E9F296791393}.Release|Any CPU.Build.0 = Release|Any CPU
{1588F6C4-2186-4A35-9693-E9F296791393}.Release|x64.ActiveCfg = Release|Any CPU
{1588F6C4-2186-4A35-9693-E9F296791393}.Release|x64.Build.0 = Release|Any CPU
{1588F6C4-2186-4A35-9693-E9F296791393}.Release|x86.ActiveCfg = Release|Any CPU
{1588F6C4-2186-4A35-9693-E9F296791393}.Release|x86.Build.0 = Release|Any CPU
{B159FFD1-E646-42D0-892C-4ABF69103712}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B159FFD1-E646-42D0-892C-4ABF69103712}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B159FFD1-E646-42D0-892C-4ABF69103712}.Debug|x64.ActiveCfg = Debug|Any CPU
{B159FFD1-E646-42D0-892C-4ABF69103712}.Debug|x64.Build.0 = Debug|Any CPU
{B159FFD1-E646-42D0-892C-4ABF69103712}.Debug|x86.ActiveCfg = Debug|Any CPU
{B159FFD1-E646-42D0-892C-4ABF69103712}.Debug|x86.Build.0 = Debug|Any CPU
{B159FFD1-E646-42D0-892C-4ABF69103712}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B159FFD1-E646-42D0-892C-4ABF69103712}.Release|Any CPU.Build.0 = Release|Any CPU
{B159FFD1-E646-42D0-892C-4ABF69103712}.Release|x64.ActiveCfg = Release|Any CPU
{B159FFD1-E646-42D0-892C-4ABF69103712}.Release|x64.Build.0 = Release|Any CPU
{B159FFD1-E646-42D0-892C-4ABF69103712}.Release|x86.ActiveCfg = Release|Any CPU
{B159FFD1-E646-42D0-892C-4ABF69103712}.Release|x86.Build.0 = Release|Any CPU
{18BE79B6-6B95-4ED7-A963-AD75F6CB9F3C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{18BE79B6-6B95-4ED7-A963-AD75F6CB9F3C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{18BE79B6-6B95-4ED7-A963-AD75F6CB9F3C}.Debug|x64.ActiveCfg = Debug|Any CPU
{18BE79B6-6B95-4ED7-A963-AD75F6CB9F3C}.Debug|x64.Build.0 = Debug|Any CPU
{18BE79B6-6B95-4ED7-A963-AD75F6CB9F3C}.Debug|x86.ActiveCfg = Debug|Any CPU
{18BE79B6-6B95-4ED7-A963-AD75F6CB9F3C}.Debug|x86.Build.0 = Debug|Any CPU
{18BE79B6-6B95-4ED7-A963-AD75F6CB9F3C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{18BE79B6-6B95-4ED7-A963-AD75F6CB9F3C}.Release|Any CPU.Build.0 = Release|Any CPU
{18BE79B6-6B95-4ED7-A963-AD75F6CB9F3C}.Release|x64.ActiveCfg = Release|Any CPU
{18BE79B6-6B95-4ED7-A963-AD75F6CB9F3C}.Release|x64.Build.0 = Release|Any CPU
{18BE79B6-6B95-4ED7-A963-AD75F6CB9F3C}.Release|x86.ActiveCfg = Release|Any CPU
{18BE79B6-6B95-4ED7-A963-AD75F6CB9F3C}.Release|x86.Build.0 = Release|Any CPU
{17FCBD4D-D232-45E8-876F-DFBC2FAD52CF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{17FCBD4D-D232-45E8-876F-DFBC2FAD52CF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{17FCBD4D-D232-45E8-876F-DFBC2FAD52CF}.Debug|x64.ActiveCfg = Debug|Any CPU
{17FCBD4D-D232-45E8-876F-DFBC2FAD52CF}.Debug|x64.Build.0 = Debug|Any CPU
{17FCBD4D-D232-45E8-876F-DFBC2FAD52CF}.Debug|x86.ActiveCfg = Debug|Any CPU
{17FCBD4D-D232-45E8-876F-DFBC2FAD52CF}.Debug|x86.Build.0 = Debug|Any CPU
{17FCBD4D-D232-45E8-876F-DFBC2FAD52CF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{17FCBD4D-D232-45E8-876F-DFBC2FAD52CF}.Release|Any CPU.Build.0 = Release|Any CPU
{17FCBD4D-D232-45E8-876F-DFBC2FAD52CF}.Release|x64.ActiveCfg = Release|Any CPU
{17FCBD4D-D232-45E8-876F-DFBC2FAD52CF}.Release|x64.Build.0 = Release|Any CPU
{17FCBD4D-D232-45E8-876F-DFBC2FAD52CF}.Release|x86.ActiveCfg = Release|Any CPU
{17FCBD4D-D232-45E8-876F-DFBC2FAD52CF}.Release|x86.Build.0 = Release|Any CPU
{AE37301B-3635-4C61-A026-DEB2E1328DD1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{AE37301B-3635-4C61-A026-DEB2E1328DD1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AE37301B-3635-4C61-A026-DEB2E1328DD1}.Debug|x64.ActiveCfg = Debug|Any CPU
{AE37301B-3635-4C61-A026-DEB2E1328DD1}.Debug|x64.Build.0 = Debug|Any CPU
{AE37301B-3635-4C61-A026-DEB2E1328DD1}.Debug|x86.ActiveCfg = Debug|Any CPU
{AE37301B-3635-4C61-A026-DEB2E1328DD1}.Debug|x86.Build.0 = Debug|Any CPU
{AE37301B-3635-4C61-A026-DEB2E1328DD1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AE37301B-3635-4C61-A026-DEB2E1328DD1}.Release|Any CPU.Build.0 = Release|Any CPU
{AE37301B-3635-4C61-A026-DEB2E1328DD1}.Release|x64.ActiveCfg = Release|Any CPU
{AE37301B-3635-4C61-A026-DEB2E1328DD1}.Release|x64.Build.0 = Release|Any CPU
{AE37301B-3635-4C61-A026-DEB2E1328DD1}.Release|x86.ActiveCfg = Release|Any CPU
{AE37301B-3635-4C61-A026-DEB2E1328DD1}.Release|x86.Build.0 = Release|Any CPU
{E15C2E1A-FCD6-42B1-82D2-2C72CC4DC720}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E15C2E1A-FCD6-42B1-82D2-2C72CC4DC720}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E15C2E1A-FCD6-42B1-82D2-2C72CC4DC720}.Debug|x64.ActiveCfg = Debug|Any CPU
{E15C2E1A-FCD6-42B1-82D2-2C72CC4DC720}.Debug|x64.Build.0 = Debug|Any CPU
{E15C2E1A-FCD6-42B1-82D2-2C72CC4DC720}.Debug|x86.ActiveCfg = Debug|Any CPU
{E15C2E1A-FCD6-42B1-82D2-2C72CC4DC720}.Debug|x86.Build.0 = Debug|Any CPU
{E15C2E1A-FCD6-42B1-82D2-2C72CC4DC720}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E15C2E1A-FCD6-42B1-82D2-2C72CC4DC720}.Release|Any CPU.Build.0 = Release|Any CPU
{E15C2E1A-FCD6-42B1-82D2-2C72CC4DC720}.Release|x64.ActiveCfg = Release|Any CPU
{E15C2E1A-FCD6-42B1-82D2-2C72CC4DC720}.Release|x64.Build.0 = Release|Any CPU
{E15C2E1A-FCD6-42B1-82D2-2C72CC4DC720}.Release|x86.ActiveCfg = Release|Any CPU
{E15C2E1A-FCD6-42B1-82D2-2C72CC4DC720}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand All @@ -90,8 +147,17 @@ Global
{17FCBD4D-D232-45E8-876F-DFBC2FAD52CF} = {6DF92068-B792-4038-8E3F-5FDF2E026BE7}
{E6224AB7-6987-4BA1-B2A6-ECFB7DA281DE} = {9F1F0B0F-704F-4B71-89EF-EE36042A27C9}
{9F19EBB4-32DB-4AFE-A5E4-722EDFAAE04B} = {E6224AB7-6987-4BA1-B2A6-ECFB7DA281DE}
{AE37301B-3635-4C61-A026-DEB2E1328DD1} = {5E6840D2-9CBB-4FDE-8378-33086CF5A8D8}
{E15C2E1A-FCD6-42B1-82D2-2C72CC4DC720} = {6DF92068-B792-4038-8E3F-5FDF2E026BE7}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {F1762A0D-74C4-454A-BCB7-C010BB067E58}
EndGlobalSection
GlobalSection(SharedMSBuildProjectFiles) = preSolution
shared-infrastructure\src\SharedInfrastructure\SharedInfrastructure.projitems*{1588f6c4-2186-4a35-9693-e9f296791393}*SharedItemsImports = 5
tests\Images\Images.projitems*{17fcbd4d-d232-45e8-876f-dfbc2fad52cf}*SharedItemsImports = 5
tests\Images\Images.projitems*{18be79b6-6b95-4ed7-a963-ad75f6cb9f3c}*SharedItemsImports = 5
tests\Images\Images.projitems*{68a8cc40-6aed-4e96-b524-31b1158fdeea}*SharedItemsImports = 13
tests\Images\Images.projitems*{b159ffd1-e646-42d0-892c-4abf69103712}*SharedItemsImports = 5
EndGlobalSection
EndGlobal
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ SixLabors.ImageSharp.Textures

[![Build Status](https://img.shields.io/github/actions/workflow/status/SixLabors/ImageSharp.Textures/build-and-test.yml?branch=main)](https://github.com/SixLabors/ImageSharp.Textures/actions)
[![Code coverage](https://codecov.io/gh/SixLabors/ImageSharp.Textures/branch/main/graph/badge.svg)](https://codecov.io/gh/SixLabors/ImageSharp)
[![License: Apache 2.0](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
[![License: Six Labors Split](https://img.shields.io/badge/license-Six%20Labors%20Split-%23e30183)](https://github.com/SixLabors/ImageSharp/blob/main/LICENSE)
[![Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=flat&logo=twitter)](https://twitter.com/intent/tweet?hashtags=imagesharp,dotnet,oss&text=ImageSharp.+A+new+cross-platform+2D+graphics+API+in+C%23&url=https%3a%2f%2fgithub.com%2fSixLabors%2fImageSharp&via=sixlabors)

</div>
Expand All @@ -33,6 +33,7 @@ with the following compressions:
- BC5
- BC6H
- BC7
- ASTC

Encoding textures is **not** yet supported. PR are of course very welcome.

Expand Down
3 changes: 2 additions & 1 deletion src/Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
-->

<!-- Import the shared src .props file -->
<Import Project="$(MSBuildThisFileDirectory)..\shared-infrastructure\msbuild\props\SixLabors.Src.props" />
<Import Project="$(MSBuildThisFileDirectory)../shared-infrastructure/msbuild/props/SixLabors.Src.props" />

<!-- Import the solution .props file. -->
<Import Project="$(MSBuildThisFileDirectory)..\Directory.Build.props" />
Expand All @@ -25,6 +25,7 @@
<InternalsVisibleTo Include="SixLabors.ImageSharp.Textures.Benchmarks" Key="$(SixLaborsPublicKey)" />
<InternalsVisibleTo Include="SixLabors.ImageSharp.Textures.InteractiveTest" Key="$(SixLaborsPublicKey)" />
<InternalsVisibleTo Include="SixLabors.ImageSharp.Textures.Tests" Key="$(SixLaborsPublicKey)" />
<InternalsVisibleTo Include="SixLabors.ImageSharp.Textures.Astc.Reference.Tests" Key="$(SixLaborsPublicKey)" />
</ItemGroup>

</Project>
Loading
Loading