add Dart IndirectLight and Ktx1Bundle classes, and separate KTX decoding from skybox/IBL creation

This commit is contained in:
Nick Fisher
2025-06-12 11:31:44 +08:00
parent f252c86152
commit ad26fc4563
16 changed files with 424 additions and 104 deletions

View File

@@ -0,0 +1,33 @@
import 'dart:io';
import 'package:test/test.dart';
import 'package:thermion_dart/src/filament/src/interface/filament_app.dart';
import 'helpers.dart';
void main() async {
final testHelper = TestHelper("images");
await testHelper.setup();
test('decode KTX', () async {
await testHelper.withViewer((viewer) async {
await FilamentApp.instance!.decodeKtx(
File("${testHelper.testDir}/assets/default_env_skybox.ktx").readAsBytesSync());
});
});
test('set background color', () async {
await testHelper.withViewer((viewer) async {
await viewer.setBackgroundColor(0, 1, 0, 1);
await testHelper.capture(viewer.view, "background_green");
await viewer.setBackgroundColor(1, 0, 0, 1);
await testHelper.capture(viewer.view, "background_red");
});
});
test('set background image', () async {
await testHelper.withViewer((viewer) async {
await viewer.setBackgroundImage(
"file://${testHelper.testDir}/assets/cube_texture_512x512.png");
await testHelper.capture(viewer.view, "background_image");
});
});
}