feat: Migrate samples to Kadre and validate kextract-based wgpu4k-native rendering in CI#121
Closed
ygdrasil-io wants to merge 7 commits into
Closed
feat: Migrate samples to Kadre and validate kextract-based wgpu4k-native rendering in CI#121ygdrasil-io wants to merge 7 commits into
ygdrasil-io wants to merge 7 commits into
Conversation
These files appear to be obsolete or unnecessary, including GroupLayout, MemorySegment, NativeString, SegmentAllocator, and a large set of generated structures. Their removal helps clean up the codebase and reduces maintenance overhead.
Deleted all Android-related templates, generator code, and documentation to streamline the project. This includes the removal of `toAndroidFunctions`, `toAndroidStructure`, and related callbacks, aligning the focus on core platform support.
All `Callback` implementations for Android, Native, and JVM platforms have been deleted. This likely simplifies the codebase and may indicate a shift in callback architecture or platform support.
…e getters and setters to handle `NULL` values appropriately.
…improvements. Added detailed documentation for bitflags, enums, and constants, ensuring clarity for developers. Expanded type information and annotations and improved consistency with WebGPU standards.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Migrated the binding pipeline away from the legacy YAML-generated declarations toward kextract-generated Kotlin bindings.
Restored missing generated API coverage exposed by the C headers, including function declarations, handle/value-class mappings, texture usage constants, native display handle support, and callback plumbing.
Adjusted common/JVM/native call sites to match the kextract output more closely, including nullable handles, descriptor types, callback info structs, and generated WebGPU type aliases.
Kept legacy YAML-era assumptions out of the samples where possible so the demos exercise the generated kextract bindings directly.
Migrated the JVM desktop sample to use Kadre windowing across supported desktop backends.
Migrated the Android sample from the custom WGPUSurfaceView flow to Kadre’s KadreActivity / ApplicationHandler model.
Added an offscreen JVM capture path that renders the wgpu4k-native triangle into a texture, reads it back, writes a PNG, and validates representative pixels.
Added CI coverage for the visual capture check on macOS, with the generated PNG uploaded as an artifact.
Aligned the parent build with Kadre’s Android Gradle Plugin version so the composite build can resolve Android Kadre modules.
Validation
./gradlew :demo:desktop-and-ios:verifyJvmCapture
./gradlew :demo:android:assembleDebug
./gradlew :demo:android-native:assembleDebug
./gradlew :demo:android:compileDebugKotlinAndroid :demo:desktop-and-ios:compileKotlinMacosArm64
Notes