diff --git a/examples/flutter/materials/lib/main.dart b/examples/flutter/materials/lib/main.dart deleted file mode 100644 index 183e8d27..00000000 --- a/examples/flutter/materials/lib/main.dart +++ /dev/null @@ -1,80 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:thermion_flutter/thermion_flutter.dart'; -import 'package:vector_math/vector_math_64.dart' hide Colors; - -void main() { - runApp(const MyApp()); -} - -class MyApp extends StatelessWidget { - const MyApp({super.key}); - - @override - Widget build(BuildContext context) { - return MaterialApp( - title: 'Flutter Demo', - theme: ThemeData( - colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple), - useMaterial3: true, - ), - home: const MyHomePage(title: 'Flutter Demo Home Page'), - ); - } -} - -class MyHomePage extends StatefulWidget { - const MyHomePage({super.key, required this.title}); - - final String title; - - @override - State createState() => _MyHomePageState(); -} - -class _MyHomePageState extends State { - ThermionViewer? _viewer; - late ThermionAsset _asset; - late MaterialInstance _materialInstance; - - @override - void initState() { - super.initState(); - ThermionFlutterPlugin.createViewer().then((viewer) async { - _viewer = viewer; - await _viewer!.setPostProcessing(true); - _materialInstance = await _viewer!.createUnlitMaterialInstance(); - _asset = await _viewer!.createGeometry( - GeometryHelper.cube(normals: false, uvs: false), - materialInstances: [_materialInstance]); - - await _viewer! - .setTransform(_asset.entity, Matrix4.translation(Vector3.all(2))); - await _materialInstance.setParameterFloat4( - "baseColorFactor", 0.0, 1.0, 0.0, 1.0); - await _viewer!.setCameraPosition(0, 0, 10); - await _viewer!.setRendering(true); - setState(() {}); - }); - } - - @override - Widget build(BuildContext context) { - return Scaffold( - body: Stack(children: [ - if (_viewer == null) CircularProgressIndicator(), - if (_viewer != null) ...[ - Positioned.fill(child: ThermionWidget(viewer: _viewer!)), - Align( - alignment: Alignment.bottomCenter, - child: Padding( - padding: EdgeInsets.all(12), - child: ElevatedButton( - onPressed: () async { - await _materialInstance.setParameterFloat4( - "baseColorFactor", 1.0, 0.0, 0.0, 1.0); - }, - child: Text("Set material property (baseColorFactor)")))) - ] - ])); - } -} diff --git a/examples/flutter/materials/.gitignore b/examples/flutter/materials_and_textures/.gitignore similarity index 100% rename from examples/flutter/materials/.gitignore rename to examples/flutter/materials_and_textures/.gitignore diff --git a/examples/flutter/materials/.metadata b/examples/flutter/materials_and_textures/.metadata similarity index 100% rename from examples/flutter/materials/.metadata rename to examples/flutter/materials_and_textures/.metadata diff --git a/examples/flutter/materials/README.md b/examples/flutter/materials_and_textures/README.md similarity index 100% rename from examples/flutter/materials/README.md rename to examples/flutter/materials_and_textures/README.md diff --git a/examples/flutter/materials/analysis_options.yaml b/examples/flutter/materials_and_textures/analysis_options.yaml similarity index 100% rename from examples/flutter/materials/analysis_options.yaml rename to examples/flutter/materials_and_textures/analysis_options.yaml diff --git a/examples/flutter/materials_and_textures/assets b/examples/flutter/materials_and_textures/assets new file mode 120000 index 00000000..41aef43f --- /dev/null +++ b/examples/flutter/materials_and_textures/assets @@ -0,0 +1 @@ +../../assets \ No newline at end of file diff --git a/examples/flutter/materials/ios/.gitignore b/examples/flutter/materials_and_textures/ios/.gitignore similarity index 100% rename from examples/flutter/materials/ios/.gitignore rename to examples/flutter/materials_and_textures/ios/.gitignore diff --git a/examples/flutter/materials/ios/Flutter/AppFrameworkInfo.plist b/examples/flutter/materials_and_textures/ios/Flutter/AppFrameworkInfo.plist similarity index 100% rename from examples/flutter/materials/ios/Flutter/AppFrameworkInfo.plist rename to examples/flutter/materials_and_textures/ios/Flutter/AppFrameworkInfo.plist diff --git a/examples/flutter/materials/ios/Flutter/Debug.xcconfig b/examples/flutter/materials_and_textures/ios/Flutter/Debug.xcconfig similarity index 100% rename from examples/flutter/materials/ios/Flutter/Debug.xcconfig rename to examples/flutter/materials_and_textures/ios/Flutter/Debug.xcconfig diff --git a/examples/flutter/materials/ios/Flutter/Release.xcconfig b/examples/flutter/materials_and_textures/ios/Flutter/Release.xcconfig similarity index 100% rename from examples/flutter/materials/ios/Flutter/Release.xcconfig rename to examples/flutter/materials_and_textures/ios/Flutter/Release.xcconfig diff --git a/examples/flutter/materials/ios/Podfile b/examples/flutter/materials_and_textures/ios/Podfile similarity index 100% rename from examples/flutter/materials/ios/Podfile rename to examples/flutter/materials_and_textures/ios/Podfile diff --git a/examples/flutter/materials/ios/Podfile.lock b/examples/flutter/materials_and_textures/ios/Podfile.lock similarity index 100% rename from examples/flutter/materials/ios/Podfile.lock rename to examples/flutter/materials_and_textures/ios/Podfile.lock diff --git a/examples/flutter/materials/ios/Runner.xcodeproj/project.pbxproj b/examples/flutter/materials_and_textures/ios/Runner.xcodeproj/project.pbxproj similarity index 100% rename from examples/flutter/materials/ios/Runner.xcodeproj/project.pbxproj rename to examples/flutter/materials_and_textures/ios/Runner.xcodeproj/project.pbxproj diff --git a/examples/flutter/materials/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/examples/flutter/materials_and_textures/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata similarity index 100% rename from examples/flutter/materials/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename to examples/flutter/materials_and_textures/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata diff --git a/examples/flutter/materials/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/examples/flutter/materials_and_textures/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist similarity index 100% rename from examples/flutter/materials/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist rename to examples/flutter/materials_and_textures/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/examples/flutter/materials/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/examples/flutter/materials_and_textures/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings similarity index 100% rename from examples/flutter/materials/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings rename to examples/flutter/materials_and_textures/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings diff --git a/examples/flutter/materials/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/examples/flutter/materials_and_textures/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme similarity index 100% rename from examples/flutter/materials/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme rename to examples/flutter/materials_and_textures/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme diff --git a/examples/flutter/materials/ios/Runner.xcworkspace/contents.xcworkspacedata b/examples/flutter/materials_and_textures/ios/Runner.xcworkspace/contents.xcworkspacedata similarity index 100% rename from examples/flutter/materials/ios/Runner.xcworkspace/contents.xcworkspacedata rename to examples/flutter/materials_and_textures/ios/Runner.xcworkspace/contents.xcworkspacedata diff --git a/examples/flutter/materials/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/examples/flutter/materials_and_textures/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist similarity index 100% rename from examples/flutter/materials/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist rename to examples/flutter/materials_and_textures/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/examples/flutter/materials/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/examples/flutter/materials_and_textures/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings similarity index 100% rename from examples/flutter/materials/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings rename to examples/flutter/materials_and_textures/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings diff --git a/examples/flutter/materials/ios/Runner/AppDelegate.swift b/examples/flutter/materials_and_textures/ios/Runner/AppDelegate.swift similarity index 100% rename from examples/flutter/materials/ios/Runner/AppDelegate.swift rename to examples/flutter/materials_and_textures/ios/Runner/AppDelegate.swift diff --git a/examples/flutter/materials/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/examples/flutter/materials_and_textures/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from examples/flutter/materials/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json rename to examples/flutter/materials_and_textures/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/examples/flutter/materials/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/examples/flutter/materials_and_textures/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png similarity index 100% rename from examples/flutter/materials/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png rename to examples/flutter/materials_and_textures/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png diff --git a/examples/flutter/materials/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/examples/flutter/materials_and_textures/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png similarity index 100% rename from examples/flutter/materials/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png rename to examples/flutter/materials_and_textures/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png diff --git a/examples/flutter/materials/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/examples/flutter/materials_and_textures/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png similarity index 100% rename from examples/flutter/materials/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png rename to examples/flutter/materials_and_textures/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png diff --git a/examples/flutter/materials/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/examples/flutter/materials_and_textures/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png similarity index 100% rename from examples/flutter/materials/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png rename to examples/flutter/materials_and_textures/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png diff --git a/examples/flutter/materials/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/examples/flutter/materials_and_textures/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png similarity index 100% rename from examples/flutter/materials/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png rename to examples/flutter/materials_and_textures/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png diff --git a/examples/flutter/materials/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/examples/flutter/materials_and_textures/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png similarity index 100% rename from examples/flutter/materials/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png rename to examples/flutter/materials_and_textures/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png diff --git a/examples/flutter/materials/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/examples/flutter/materials_and_textures/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png similarity index 100% rename from examples/flutter/materials/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png rename to examples/flutter/materials_and_textures/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png diff --git a/examples/flutter/materials/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/examples/flutter/materials_and_textures/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png similarity index 100% rename from examples/flutter/materials/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png rename to examples/flutter/materials_and_textures/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png diff --git a/examples/flutter/materials/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/examples/flutter/materials_and_textures/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png similarity index 100% rename from examples/flutter/materials/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png rename to examples/flutter/materials_and_textures/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png diff --git a/examples/flutter/materials/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/examples/flutter/materials_and_textures/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png similarity index 100% rename from examples/flutter/materials/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png rename to examples/flutter/materials_and_textures/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png diff --git a/examples/flutter/materials/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/examples/flutter/materials_and_textures/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png similarity index 100% rename from examples/flutter/materials/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png rename to examples/flutter/materials_and_textures/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png diff --git a/examples/flutter/materials/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/examples/flutter/materials_and_textures/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png similarity index 100% rename from examples/flutter/materials/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png rename to examples/flutter/materials_and_textures/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png diff --git a/examples/flutter/materials/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/examples/flutter/materials_and_textures/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png similarity index 100% rename from examples/flutter/materials/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png rename to examples/flutter/materials_and_textures/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png diff --git a/examples/flutter/materials/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/examples/flutter/materials_and_textures/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png similarity index 100% rename from examples/flutter/materials/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png rename to examples/flutter/materials_and_textures/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png diff --git a/examples/flutter/materials/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/examples/flutter/materials_and_textures/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png similarity index 100% rename from examples/flutter/materials/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png rename to examples/flutter/materials_and_textures/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png diff --git a/examples/flutter/materials/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/examples/flutter/materials_and_textures/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json similarity index 100% rename from examples/flutter/materials/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json rename to examples/flutter/materials_and_textures/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json diff --git a/examples/flutter/materials/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/examples/flutter/materials_and_textures/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png similarity index 100% rename from examples/flutter/materials/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png rename to examples/flutter/materials_and_textures/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png diff --git a/examples/flutter/materials/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/examples/flutter/materials_and_textures/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png similarity index 100% rename from examples/flutter/materials/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png rename to examples/flutter/materials_and_textures/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png diff --git a/examples/flutter/materials/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/examples/flutter/materials_and_textures/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png similarity index 100% rename from examples/flutter/materials/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png rename to examples/flutter/materials_and_textures/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png diff --git a/examples/flutter/materials/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/examples/flutter/materials_and_textures/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md similarity index 100% rename from examples/flutter/materials/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md rename to examples/flutter/materials_and_textures/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md diff --git a/examples/flutter/materials/ios/Runner/Base.lproj/LaunchScreen.storyboard b/examples/flutter/materials_and_textures/ios/Runner/Base.lproj/LaunchScreen.storyboard similarity index 100% rename from examples/flutter/materials/ios/Runner/Base.lproj/LaunchScreen.storyboard rename to examples/flutter/materials_and_textures/ios/Runner/Base.lproj/LaunchScreen.storyboard diff --git a/examples/flutter/materials/ios/Runner/Base.lproj/Main.storyboard b/examples/flutter/materials_and_textures/ios/Runner/Base.lproj/Main.storyboard similarity index 100% rename from examples/flutter/materials/ios/Runner/Base.lproj/Main.storyboard rename to examples/flutter/materials_and_textures/ios/Runner/Base.lproj/Main.storyboard diff --git a/examples/flutter/materials/ios/Runner/Info.plist b/examples/flutter/materials_and_textures/ios/Runner/Info.plist similarity index 100% rename from examples/flutter/materials/ios/Runner/Info.plist rename to examples/flutter/materials_and_textures/ios/Runner/Info.plist diff --git a/examples/flutter/materials/ios/Runner/Runner-Bridging-Header.h b/examples/flutter/materials_and_textures/ios/Runner/Runner-Bridging-Header.h similarity index 100% rename from examples/flutter/materials/ios/Runner/Runner-Bridging-Header.h rename to examples/flutter/materials_and_textures/ios/Runner/Runner-Bridging-Header.h diff --git a/examples/flutter/materials/ios/RunnerTests/RunnerTests.swift b/examples/flutter/materials_and_textures/ios/RunnerTests/RunnerTests.swift similarity index 100% rename from examples/flutter/materials/ios/RunnerTests/RunnerTests.swift rename to examples/flutter/materials_and_textures/ios/RunnerTests/RunnerTests.swift diff --git a/examples/flutter/materials_and_textures/lib/main.dart b/examples/flutter/materials_and_textures/lib/main.dart new file mode 100644 index 00000000..8a42c0ab --- /dev/null +++ b/examples/flutter/materials_and_textures/lib/main.dart @@ -0,0 +1,186 @@ +import 'dart:io'; + +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:thermion_flutter/thermion_flutter.dart'; +import 'package:thermion_flutter/thermion_flutter.dart' as t; +import 'package:vector_math/vector_math_64.dart' hide Colors; + +void main() { + runApp(const MyApp()); +} + +class MyApp extends StatelessWidget { + const MyApp({super.key}); + + @override + Widget build(BuildContext context) { + return MaterialApp( + title: 'Flutter Demo', + theme: ThemeData( + colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple), + useMaterial3: true, + ), + home: const MyHomePage(title: 'Flutter Demo Home Page'), + ); + } +} + +class MyHomePage extends StatefulWidget { + const MyHomePage({super.key, required this.title}); + + final String title; + + @override + State createState() => _MyHomePageState(); +} + +class _MyHomePageState extends State { + ThermionViewer? _viewer; + late ThermionAsset _asset; + bool green = true; + bool unlit = true; + + t.Texture? _texture; + t.Texture? _textureSampler; + t.LinearImage? _image; + late MaterialInstance _unlitMaterial; + late MaterialInstance _litMaterial; + + @override + void initState() { + super.initState(); + ThermionFlutterPlugin.createViewer().then((viewer) async { + _viewer = viewer; + await _viewer!.setPostProcessing(true); + + _unlitMaterial = await _viewer!.createUnlitMaterialInstance(); + _litMaterial = await _viewer!.createUbershaderMaterialInstance(); + await _viewer!.addDirectLight( + DirectLight.sun( + intensity: 50000, + direction: Vector3(1, -1, -1).normalized(), + ), + ); + await _viewer!.loadSkybox("assets/default_env_skybox.ktx"); + await _viewer!.loadIbl("assets/default_env_ibl.ktx"); + + for (var material in [_unlitMaterial, _litMaterial]) { + await material.setParameterInt("baseColorIndex", -1); + await material.setParameterFloat4( + "baseColorFactor", + 0.0, + 1.0, + 0.0, + 1.0, + ); + } + + _asset = await _viewer!.createGeometry( + GeometryHelper.cube(), + materialInstances: [_unlitMaterial], + ); + + await _viewer!.setCameraPosition(0, 0, 5); + await _viewer!.setRendering(true); + setState(() {}); + }); + } + + Future _setMaterialTexture(MaterialInstance materialInstance) async { + await _textureSampler?.dispose(); + await _texture?.dispose(); + await _image?.destroy(); + + await materialInstance.setParameterInt("baseColorIndex", 0); + var imageBuffer = await rootBundle.load("assets/background.png"); + var imageData = imageBuffer.buffer.asUint8List(imageBuffer.offsetInBytes); + _image = await _viewer!.decodeImage(imageData); + var width = await _image!.getWidth(); + var height = await _image!.getHeight(); + + _texture = await _viewer!.createTexture(width, height); + await _texture!.setLinearImage( + _image!, + PixelDataFormat.RGBA, + PixelDataType.FLOAT, + ); + + final textureSampler = await _viewer!.createTextureSampler(); + await materialInstance.setParameterTexture( + "baseColorMap", + _texture!, + textureSampler, + ); + } + + Future _setActiveMaterialColor() async { + var active = unlit ? _unlitMaterial : _litMaterial; + await active.setParameterFloat4( + "baseColorFactor", + green ? 0.0 : 1.0, + green ? 1.0 : 0.0, + 0.0, + 1.0, + ); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + body: Stack( + children: [ + if (_viewer == null) CircularProgressIndicator(), + if (_viewer != null) ...[ + Positioned.fill( + child: ThermionListenerWidget( + inputHandler: DelegateInputHandler.fixedOrbit(_viewer!), + child: ThermionWidget(viewer: _viewer!), + ), + ), + Align( + alignment: Alignment.bottomCenter, + child: Padding( + padding: EdgeInsets.all(12), + child: Row( + children: [ + ElevatedButton( + onPressed: () async { + green = !green; + _setActiveMaterialColor(); + }, + child: Text( + "Set baseColorFactor to ${green ? "red" : "green"}", + ), + ), + ElevatedButton( + onPressed: () async { + unlit = !unlit; + setState(() { + + }); + await _asset.setMaterialInstanceAt( + unlit ? _unlitMaterial : _litMaterial, + ); + _setActiveMaterialColor(); + }, + child: Text("Use ${unlit ? "lit" : "unlit"} material"), + ), + ElevatedButton( + onPressed: () async { + var materialInstance = await _viewer! + .getMaterialInstanceAt(_asset.entity, 0); + await _setMaterialTexture(materialInstance); + }, + child: Text("Apply texture"), + ), + ], + ), + ), + ), + ], + ], + ), + ); + } +} diff --git a/examples/flutter/materials/macos/.gitignore b/examples/flutter/materials_and_textures/macos/.gitignore similarity index 100% rename from examples/flutter/materials/macos/.gitignore rename to examples/flutter/materials_and_textures/macos/.gitignore diff --git a/examples/flutter/materials/macos/Flutter/Flutter-Debug.xcconfig b/examples/flutter/materials_and_textures/macos/Flutter/Flutter-Debug.xcconfig similarity index 100% rename from examples/flutter/materials/macos/Flutter/Flutter-Debug.xcconfig rename to examples/flutter/materials_and_textures/macos/Flutter/Flutter-Debug.xcconfig diff --git a/examples/flutter/materials/macos/Flutter/Flutter-Release.xcconfig b/examples/flutter/materials_and_textures/macos/Flutter/Flutter-Release.xcconfig similarity index 100% rename from examples/flutter/materials/macos/Flutter/Flutter-Release.xcconfig rename to examples/flutter/materials_and_textures/macos/Flutter/Flutter-Release.xcconfig diff --git a/examples/flutter/materials/macos/Flutter/GeneratedPluginRegistrant.swift b/examples/flutter/materials_and_textures/macos/Flutter/GeneratedPluginRegistrant.swift similarity index 100% rename from examples/flutter/materials/macos/Flutter/GeneratedPluginRegistrant.swift rename to examples/flutter/materials_and_textures/macos/Flutter/GeneratedPluginRegistrant.swift diff --git a/examples/flutter/materials/macos/Podfile b/examples/flutter/materials_and_textures/macos/Podfile similarity index 100% rename from examples/flutter/materials/macos/Podfile rename to examples/flutter/materials_and_textures/macos/Podfile diff --git a/examples/flutter/materials/macos/Podfile.lock b/examples/flutter/materials_and_textures/macos/Podfile.lock similarity index 100% rename from examples/flutter/materials/macos/Podfile.lock rename to examples/flutter/materials_and_textures/macos/Podfile.lock diff --git a/examples/flutter/materials/macos/Runner.xcodeproj/project.pbxproj b/examples/flutter/materials_and_textures/macos/Runner.xcodeproj/project.pbxproj similarity index 100% rename from examples/flutter/materials/macos/Runner.xcodeproj/project.pbxproj rename to examples/flutter/materials_and_textures/macos/Runner.xcodeproj/project.pbxproj diff --git a/examples/flutter/materials/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/examples/flutter/materials_and_textures/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist similarity index 100% rename from examples/flutter/materials/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist rename to examples/flutter/materials_and_textures/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/examples/flutter/materials/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/examples/flutter/materials_and_textures/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme similarity index 99% rename from examples/flutter/materials/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme rename to examples/flutter/materials_and_textures/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 1626a842..5903dffd 100644 --- a/examples/flutter/materials/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/examples/flutter/materials_and_textures/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -59,6 +59,7 @@ ignoresPersistentStateOnLaunch = "NO" debugDocumentVersioning = "YES" debugServiceExtension = "internal" + enableGPUValidationMode = "1" allowLocationSimulation = "YES"> diff --git a/examples/flutter/materials/macos/Runner.xcworkspace/contents.xcworkspacedata b/examples/flutter/materials_and_textures/macos/Runner.xcworkspace/contents.xcworkspacedata similarity index 100% rename from examples/flutter/materials/macos/Runner.xcworkspace/contents.xcworkspacedata rename to examples/flutter/materials_and_textures/macos/Runner.xcworkspace/contents.xcworkspacedata diff --git a/examples/flutter/materials/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/examples/flutter/materials_and_textures/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist similarity index 100% rename from examples/flutter/materials/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist rename to examples/flutter/materials_and_textures/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/examples/flutter/materials/macos/Runner/AppDelegate.swift b/examples/flutter/materials_and_textures/macos/Runner/AppDelegate.swift similarity index 100% rename from examples/flutter/materials/macos/Runner/AppDelegate.swift rename to examples/flutter/materials_and_textures/macos/Runner/AppDelegate.swift diff --git a/examples/flutter/materials/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/examples/flutter/materials_and_textures/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from examples/flutter/materials/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json rename to examples/flutter/materials_and_textures/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/examples/flutter/materials/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png b/examples/flutter/materials_and_textures/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png similarity index 100% rename from examples/flutter/materials/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png rename to examples/flutter/materials_and_textures/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png diff --git a/examples/flutter/materials/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png b/examples/flutter/materials_and_textures/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png similarity index 100% rename from examples/flutter/materials/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png rename to examples/flutter/materials_and_textures/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png diff --git a/examples/flutter/materials/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png b/examples/flutter/materials_and_textures/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png similarity index 100% rename from examples/flutter/materials/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png rename to examples/flutter/materials_and_textures/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png diff --git a/examples/flutter/materials/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png b/examples/flutter/materials_and_textures/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png similarity index 100% rename from examples/flutter/materials/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png rename to examples/flutter/materials_and_textures/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png diff --git a/examples/flutter/materials/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png b/examples/flutter/materials_and_textures/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png similarity index 100% rename from examples/flutter/materials/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png rename to examples/flutter/materials_and_textures/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png diff --git a/examples/flutter/materials/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png b/examples/flutter/materials_and_textures/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png similarity index 100% rename from examples/flutter/materials/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png rename to examples/flutter/materials_and_textures/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png diff --git a/examples/flutter/materials/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png b/examples/flutter/materials_and_textures/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png similarity index 100% rename from examples/flutter/materials/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png rename to examples/flutter/materials_and_textures/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png diff --git a/examples/flutter/materials/macos/Runner/Base.lproj/MainMenu.xib b/examples/flutter/materials_and_textures/macos/Runner/Base.lproj/MainMenu.xib similarity index 100% rename from examples/flutter/materials/macos/Runner/Base.lproj/MainMenu.xib rename to examples/flutter/materials_and_textures/macos/Runner/Base.lproj/MainMenu.xib diff --git a/examples/flutter/materials/macos/Runner/Configs/AppInfo.xcconfig b/examples/flutter/materials_and_textures/macos/Runner/Configs/AppInfo.xcconfig similarity index 100% rename from examples/flutter/materials/macos/Runner/Configs/AppInfo.xcconfig rename to examples/flutter/materials_and_textures/macos/Runner/Configs/AppInfo.xcconfig diff --git a/examples/flutter/materials/macos/Runner/Configs/Debug.xcconfig b/examples/flutter/materials_and_textures/macos/Runner/Configs/Debug.xcconfig similarity index 100% rename from examples/flutter/materials/macos/Runner/Configs/Debug.xcconfig rename to examples/flutter/materials_and_textures/macos/Runner/Configs/Debug.xcconfig diff --git a/examples/flutter/materials/macos/Runner/Configs/Release.xcconfig b/examples/flutter/materials_and_textures/macos/Runner/Configs/Release.xcconfig similarity index 100% rename from examples/flutter/materials/macos/Runner/Configs/Release.xcconfig rename to examples/flutter/materials_and_textures/macos/Runner/Configs/Release.xcconfig diff --git a/examples/flutter/materials/macos/Runner/Configs/Warnings.xcconfig b/examples/flutter/materials_and_textures/macos/Runner/Configs/Warnings.xcconfig similarity index 100% rename from examples/flutter/materials/macos/Runner/Configs/Warnings.xcconfig rename to examples/flutter/materials_and_textures/macos/Runner/Configs/Warnings.xcconfig diff --git a/examples/flutter/materials/macos/Runner/DebugProfile.entitlements b/examples/flutter/materials_and_textures/macos/Runner/DebugProfile.entitlements similarity index 100% rename from examples/flutter/materials/macos/Runner/DebugProfile.entitlements rename to examples/flutter/materials_and_textures/macos/Runner/DebugProfile.entitlements diff --git a/examples/flutter/materials/macos/Runner/Info.plist b/examples/flutter/materials_and_textures/macos/Runner/Info.plist similarity index 100% rename from examples/flutter/materials/macos/Runner/Info.plist rename to examples/flutter/materials_and_textures/macos/Runner/Info.plist diff --git a/examples/flutter/materials/macos/Runner/MainFlutterWindow.swift b/examples/flutter/materials_and_textures/macos/Runner/MainFlutterWindow.swift similarity index 100% rename from examples/flutter/materials/macos/Runner/MainFlutterWindow.swift rename to examples/flutter/materials_and_textures/macos/Runner/MainFlutterWindow.swift diff --git a/examples/flutter/materials/macos/Runner/Release.entitlements b/examples/flutter/materials_and_textures/macos/Runner/Release.entitlements similarity index 100% rename from examples/flutter/materials/macos/Runner/Release.entitlements rename to examples/flutter/materials_and_textures/macos/Runner/Release.entitlements diff --git a/examples/flutter/materials/macos/Runner/RunnerDebug.entitlements b/examples/flutter/materials_and_textures/macos/Runner/RunnerDebug.entitlements similarity index 100% rename from examples/flutter/materials/macos/Runner/RunnerDebug.entitlements rename to examples/flutter/materials_and_textures/macos/Runner/RunnerDebug.entitlements diff --git a/examples/flutter/materials/macos/RunnerTests/RunnerTests.swift b/examples/flutter/materials_and_textures/macos/RunnerTests/RunnerTests.swift similarity index 100% rename from examples/flutter/materials/macos/RunnerTests/RunnerTests.swift rename to examples/flutter/materials_and_textures/macos/RunnerTests/RunnerTests.swift diff --git a/examples/flutter/materials/pubspec.yaml b/examples/flutter/materials_and_textures/pubspec.yaml similarity index 95% rename from examples/flutter/materials/pubspec.yaml rename to examples/flutter/materials_and_textures/pubspec.yaml index 3f1e7547..febcc437 100644 --- a/examples/flutter/materials/pubspec.yaml +++ b/examples/flutter/materials_and_textures/pubspec.yaml @@ -1,4 +1,4 @@ -name: materials +name: materials_and_textures description: "A new Flutter project." publish_to: 'none' # Remove this line if you wish to publish to pub.dev @@ -38,3 +38,5 @@ dependency_overrides: flutter: uses-material-design: true + assets: + - assets/ \ No newline at end of file diff --git a/examples/flutter/materials/test/widget_test.dart b/examples/flutter/materials_and_textures/test/widget_test.dart similarity index 100% rename from examples/flutter/materials/test/widget_test.dart rename to examples/flutter/materials_and_textures/test/widget_test.dart