Skip to content

Commit 4da3150

Browse files
aliasbinmanaliasbinman
andcommitted
Add gpu compressed decoders (#12237) 195d4fcb25
* feat(renderer): GPU compressed texture support (BC7 / ASTC / ETC2) - Software decoders for BC, ASTC, ETC2 in the decoders library. - KTX2 reader extended to parse BC7, ASTC LDR (all footprints), ETC2 RGBA8. - Ktx2HwSupport + per-backend cap flags; DecodeKtx2 falls back to SW decode + tight RGBA mip chain when HW lacks the format. - Native compressed upload in Vulkan, GL, Metal, WebGPU (D3D11/D3D12 already supported BC7); per-mip uploads, no auto-mipgen for compressed. - Texture compressor premultiplies alpha before BC7 encode so output matches the runtime PNG path. - Android CMakeLists exposes decoders include directory. * Android break * fix(android): always expose decoders/include for renderer sources * fix(decoders): include <cstdio> for stderr in texture_decoder.cpp * Clang format * Update premake5_pls_renderer.lua * Update render_context_gl_impl.cpp * Update render_context_vulkan_impl.cpp * Fix null renderer * Update decode_ktx2.hpp * Update astc_footprints.hpp * Copyright * Update texture_decoder.cpp * Comments * Comments * Update to ETC * Update decode_bc_texture.cpp * Update decode_bc_texture.cpp * More comments * Comments * Bug fix on block sizes * Clang format * Fix ASTC * Fix android * Update UE and Other platform * Update render_context_vulkan_impl.cpp * Josh Comments Co-authored-by: John White <aliasbinman@gmail.com>
1 parent 0ec7f12 commit 4da3150

5 files changed

Lines changed: 14 additions & 5 deletions

File tree

.rive_head

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
fe77b2ec3dd8ea1f11cb8b54f950c33ed0b87dc6
1+
195d4fcb25427e309307e07670afb060c6886fec

kotlin/src/main/cpp/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,8 @@ endif ()
144144
target_include_directories(rive-android PUBLIC
145145
${CMAKE_CURRENT_SOURCE_DIR}/include
146146
${RIVE_RUNTIME_DIR}/include
147-
${RIVE_RUNTIME_DIR}/renderer/include)
147+
${RIVE_RUNTIME_DIR}/renderer/include
148+
${RIVE_RUNTIME_DIR}/decoders/include)
148149

149150
# Link each static library
150151
foreach (X IN LISTS static_libs)

kotlin/src/main/cpp/include/models/render_context.hpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,11 @@ struct RenderContextGL : RenderContext
214214
height,
215215
mipLevelCount,
216216
rive::GPUTextureFormat::rgba32,
217-
imageDataRGBA.get());
217+
imageDataRGBA.get(),
218+
/*blockWidth=*/1,
219+
/*blockHeight=*/1,
220+
/*srgb=*/false,
221+
/*generateRemainingMips=*/true);
218222
return rive::make_rcp<rive::RiveRenderImage>(texture);
219223
}
220224

kotlin/src/main/cpp/src/helpers/android_factories.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,11 @@ AndroidImage::AndroidImage(int width,
181181
m_Height,
182182
mipLevelCount,
183183
rive::GPUTextureFormat::rgba32,
184-
imageDataRGBA));
184+
imageDataRGBA,
185+
/*blockWidth=*/1,
186+
/*blockHeight=*/1,
187+
/*srgb=*/false,
188+
/*generateRemainingMips=*/true));
185189
delete[] imageDataRGBA;
186190
});
187191
}

submodules/rive-runtime

Submodule rive-runtime updated 33 files

0 commit comments

Comments
 (0)