diff --git a/CHANGELOG.md b/CHANGELOG.md index d0395fe9..aabf6140 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,82 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## 2024-06-26 + +### Changes + +--- + +Packages with breaking changes: + + - [`thermion_dart` - `v0.1.1+2`](#thermion_dart---v0112) + - [`thermion_flutter` - `v0.1.1+7`](#thermion_flutter---v0117) + +Packages with other changes: + + - [`thermion_flutter_ffi` - `v0.1.0+6`](#thermion_flutter_ffi---v0106) + - [`thermion_flutter_platform_interface` - `v0.1.0+6`](#thermion_flutter_platform_interface---v0106) + - [`thermion_flutter_web` - `v0.0.1+6`](#thermion_flutter_web---v0016) + +Packages graduated to a stable release (see pre-releases prior to the stable version for changelog entries): + + - `thermion_dart` - `v0.1.1+2` + - `thermion_flutter` - `v0.1.1+7` + - `thermion_flutter_ffi` - `v0.1.0+6` + - `thermion_flutter_platform_interface` - `v0.1.0+6` + - `thermion_flutter_web` - `v0.0.1+6` + +--- + +#### `thermion_dart` - `v0.1.1+2` + +#### `thermion_flutter` - `v0.1.1+7` + +#### `thermion_flutter_ffi` - `v0.1.0+6` + +#### `thermion_flutter_platform_interface` - `v0.1.0+6` + +#### `thermion_flutter_web` - `v0.0.1+6` + + +## 2024-06-26 + +### Changes + +--- + +Packages with breaking changes: + + - There are no breaking changes in this release. + +Packages with other changes: + + - [`thermion_dart` - `v0.1.1-dev.0+2`](#thermion_dart---v011-dev02) + - [`thermion_flutter` - `v0.1.1-dev.0+7`](#thermion_flutter---v011-dev07) + - [`thermion_flutter_platform_interface` - `v0.1.0-dev.0+6`](#thermion_flutter_platform_interface---v010-dev06) + - [`thermion_flutter_web` - `v0.0.1-dev.0+6`](#thermion_flutter_web---v001-dev06) + - [`thermion_flutter_ffi` - `v0.1.0-dev.0+6`](#thermion_flutter_ffi---v010-dev06) + +Packages with dependency updates only: + +> Packages listed below depend on other packages in this workspace that have had changes. Their versions have been incremented to bump the minimum dependency versions of the packages they depend upon in this project. + + - `thermion_flutter_platform_interface` - `v0.1.0-dev.0+6` + - `thermion_flutter_web` - `v0.0.1-dev.0+6` + - `thermion_flutter_ffi` - `v0.1.0-dev.0+6` + +--- + +#### `thermion_dart` - `v0.1.1-dev.0+2` + + - **FIX**: revert to std::thread (pthreads not easily available on Windows). + - **FIX**: on Windows, pass static libs via -l rather than custom linkWith property so build.dart stays compatible between published & custom versions. + +#### `thermion_flutter` - `v0.1.1-dev.0+7` + + - **FIX**: add ResourceBuffer header directly to Windows build so I don't have to fiddle around getting the CMake path right. + + ## 2024-06-22 ### Changes diff --git a/GETTING_STARTED.md b/GETTING_STARTED.md deleted file mode 100644 index 484c8e74..00000000 --- a/GETTING_STARTED.md +++ /dev/null @@ -1,38 +0,0 @@ -# Thermion -Thermion is a package for creating 3D applications with Dart and/or Flutter. - -## Overview - -### Packages  -The two most relevant Thermion packages are:- [thermion_dart], which contains all the code needed to create a viewer, - [thermion_flutter], which is a Flutter-only package that contains all the logic necessary to create/embed a rendering surface inside a Flutter app.  -By decoupling the Flutter-specific components from the Dart-only components, Thermion can be used for rendering in both Flutter and non-Flutter applications. As far as the latter is concerned, Thermion ships with examples for  Javascript/WASM/HTML, and for CLI/headless mode on MacOS.  - -### pubspec.yaml -If you are creating a Flutter application, add [thermion_flutter] as a dependency to your `pubspec.yaml`. -```$ cd /path/to/your/flutter/project$ flutter pub add thermion_flutter``` - -### ThermionFlutterPlugin -Create an instance of `ThermionFlutterPlugin` in your app. -```dart -class _MyAppState extends State { -  late ThermionFlutterPlugin _thermionFlutterPlugin;  late Future _thermionViewer; -  void initState() {    _thermionFlutterPlugin = ThermionFlutterPlugin();    _thermionViewer = _thermionFlutterPlugin.createViewer();  }}``` -`ThermionFlutterPlugin` is a singleton, and mostly just handles creating a 3D rendering surface that can be embedded in a Flutter widget hierarchy.  [ThermionViewer] is the interface for actually interacting with the scene (loading assets, manipulating the camera, and so on). Call `createViewer` on `ThermionFlutterPlugin` to obtain a reference to `ThermionViewer` (which is also a singleton). -Note: `ThermionFlutterPlugin` and `ThermionViewer` were designed as separate classes so we can use `ThermionViewer` in non-Flutter apps. -### ThermionWidget -On most platforms[0], [ThermionWidget] is the widget where your rendered content (i.e. your viewport) will appear. This can be any size; the 3D viewport will be scaled to fit the dimensions on this widget. On most platforms, a [ThermionWidget] can be positioned above or below any other widget in the hierarchy and the Z-order will be preserved. -```class _MyAppState extends State { -  late ThermionFlutterPlugin _thermionFlutterPlugin;  late Future _thermionViewer; -  void initState() {    _thermionFlutterPlugin = ThermionFlutterPlugin();    _thermionViewer = _thermionFlutterPlugin.createViewer();  }    Widget build(BuildContext context) {       return Stack(children:[      Positioned.fill(        child:ThermionWidget(          plugin:_thermionFlutterPlugin        )      )    ]);  }}``` - -[0] Currently, the rendering surface on Windows and Web will always appear at the bottom of the application. You still need a ThermionWidget, but this only keeps track of the dimensions of your viewport and punches a transparent hole in the hierarchy; the actual rendering surface is attached beneath the Flutter window. -`ThermionWidget` will not display the rendering surface (even an empty one) until the call to `createViewer` has been completed. -- by default a Container will be rendered with solid red. If you want to change this, pass a widget as the initial paramer to the ThermionWidget constructor.on the second frame, ThermionWidget will pass its dimensions/pixel ratio to the FilamentController - - You can then call createViewer to create:the rendering surface (on most platforms, a backing texture that will be registered with Flutter for use in a Texture widget)a rendering threada ThermionViewerFFI and an AssetManager, which will allow you to load assets/cameras/lighting/etc via the FilamentControllerafter an indeterminate number of frames, FilamentController will notify ThermionWidget when a rendering surface is available the viewportThermionWidget will replace the default initial Widget with the viewport (which will initially be solid black or white, depending on your platform).IMPORTANT: there will be a delay between adding a ThermionWidget, calling createViewer and the actual rendering viewport becoming available. This is why we fill ThermionWidget with red - to make it abundantly clear that you need to handle this asynchronous delay appropriately. Once createViewer has completed, the viewport is available for rendering. -Currently, the initial widget will also be displayed whenever the viewport is resized (including changing orientation on mobile and drag-to-resize on desktop). You probably want to change this from the default red. -Congratulations! You now have a scene. It's completely empty, so you probably want to add something visible. - - - - diff --git a/docs/another-page.mdx b/docs/another-page.mdx deleted file mode 100644 index 581e0d15..00000000 --- a/docs/another-page.mdx +++ /dev/null @@ -1 +0,0 @@ -# Another Page \ No newline at end of file diff --git a/docs/examples.mdx b/docs/examples.mdx index c6ccb62b..700e2c63 100644 --- a/docs/examples.mdx +++ b/docs/examples.mdx @@ -1,8 +1,16 @@ -# Examples -Thermion is a package for creating 3D applications with Dart and/or Flutter. +## Showcase + +## DartPad Playground + +A custom DartPad that lets you experiment with Thermion from your browser (currently, only Chrome is supported). + +[![Screenshot of Thermion Dartpad](images/dartpad.thermion.dev_.png)](https://thermion.dev) + +## Nick Fisher + +My personal website, where I create an interactive clone of myself with Avaturn & Cartesia (no Flutter, made with Thermion and the [Jaspr Dart UI framework](https://github.com/schultek/jaspr). + +[![Screenshot of Nick Fisher's personal website](images/nick-fisher.com.png)](https://nick-fisher.com) -## Polyvox -iOS app -## Nick Fisher (Personal Website) \ No newline at end of file diff --git a/docs/images/dartpad.thermion.dev_.png b/docs/images/dartpad.thermion.dev_.png new file mode 100644 index 00000000..4c7f5763 Binary files /dev/null and b/docs/images/dartpad.thermion.dev_.png differ diff --git a/docs/images/nick-fisher.com.png b/docs/images/nick-fisher.com.png new file mode 100644 index 00000000..15eddf42 Binary files /dev/null and b/docs/images/nick-fisher.com.png differ diff --git a/docs/quickstart.mdx b/docs/quickstart.mdx index ad685fed..2ec94ba8 100644 --- a/docs/quickstart.mdx +++ b/docs/quickstart.mdx @@ -1,6 +1,6 @@ ## Quickstart (Flutter) -> You can find the entire project below in the [examples/flutter/quickstart](examples/flutter/quickstart) folder of the repository. +> You can find the entire project below in the [https://github.com/nmfisher/thermion_examples/tree/master/flutter/quickstart](flutter/quickstart) folder of the `thermion_examples` repository. 1. Switch to Flutter master channel, create a new project, then add `thermion_flutter` as a dependency @@ -13,7 +13,7 @@ $ flutter pub add thermion_flutter 2. If running on iOS or MacOS, change the minimum deployment target to OSX 13 - + Make sure the `platform` entry refers to `13.0` in your Podfile. @@ -38,6 +38,11 @@ and change the minimum deployment target to 13.0: + +See the [/windows](Windows) page for steps needed to build on Windows. + + + 2. Add a folder containing your assets (glTF model + skybox ktx) to your `pubspec.yaml` asset list ```yaml @@ -70,18 +75,21 @@ class _MyAppState extends State { class _MyAppState extends State { - late ThermionFlutterPlugin _thermionFlutterPlugin;  - late Future _thermionViewer; + ThermionViewer? _thermionViewer; void initState() {    - _thermionFlutterPlugin = ThermionFlutterPlugin(); - _thermionViewer = _thermionFlutterPlugin.initialize(); + _thermionFlutterPlugin.createViewer().then((viewer) { + setState(() { + _thermionViewer = viewer; + }); + }); }    Widget build(BuildContext context) { return Stack(children:[ + if(_thermionViewer != null)     Positioned.fill( child:ThermionWidget( - plugin:_thermionFlutterPlugin + plugin:_thermionViewer!         )      )     ]);  @@ -104,11 +112,12 @@ class _MyAppState extends State { Widget build(BuildContext context) { return Stack(children:[ +     if(_thermionViewer != null)     Positioned.fill( child:ThermionWidget( - plugin:_thermionFlutterPlugin + plugin:_thermionViewer!         )  -     ), +     ), if (!_loaded) Center( child: ElevatedButton( @@ -204,6 +213,8 @@ The cube still won't be visible until we add a light to the scene and tell Therm $ flutter run -d macos ``` +> You may experience a noticeable delay the very first time you run the project. Don't panic, it's not frozen! This is due to the build system downloading the prebuilt Filament binaries from Cloudflare, which can take some time (particularly on Windows). These binaries will be cached after first download, so subsequent runs will be much faster (though every time you run flutter clean, the binaries will be re-downloaded). + ![Screenshot of Thermion Quickstart project](images/thermion_sample_project.png) Your first Thermion project is complete! \ No newline at end of file diff --git a/docs/windows.mdx b/docs/windows.mdx index c2644256..86637bf2 100644 --- a/docs/windows.mdx +++ b/docs/windows.mdx @@ -1,15 +1,29 @@ ## Windows +## CMakeLists + +You will need to disable the `/WX` compiler flag. + +In your project, open the `windows/CMakeList.txt` file and find the following line: + +`target_compile_options(${TARGET} PRIVATE /W4 /WX /wd"4100")` + +Delete the `/WX`: + +`target_compile_options(${TARGET} PRIVATE /W4 /wd"4100")` + + ## pubspec.yaml On Windows, you will need to add a custom version of `native_toolchain_c` to your `dependency_overrides`. This is currently needed to link static libraries when building a DLL. ``` -native_toolchain_c: +dependency_overrides: + native_toolchain_c: git: - url: git@github.com:nmfisher/native.git + url: https://github.com/nmfisher/native.git path: pkgs/native_toolchain_c - ref: 99020084c4687be4c58c7115a167088c0441d1de + ref: windows_dll_fix ``` This will eventually be fixed upstream in the `native_toolchain_c` package, so this should be a short-term/temporary issue only. diff --git a/examples/assets/1.glb b/examples/assets/1.glb deleted file mode 100644 index f6e5c4cf..00000000 --- a/examples/assets/1.glb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4a1d72d69da8b933bde5453ef2000612b561f8ddfa536a7ad89288ef11eb876d -size 1624 diff --git a/examples/assets/2.glb b/examples/assets/2.glb deleted file mode 100644 index a5bd07f7..00000000 --- a/examples/assets/2.glb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fe0151ced8fd8609f9692f3d62dbd30890dada97cb6995572e37c7e7b4440d86 -size 21304 diff --git a/examples/assets/3.glb b/examples/assets/3.glb deleted file mode 100644 index de666f7c..00000000 --- a/examples/assets/3.glb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0f8b793f6513cf83f80ce9c63c7b51d329908b1991f17ca642911634b15b32de -size 34172 diff --git a/examples/assets/BusterDrone/scene.bin b/examples/assets/BusterDrone/scene.bin deleted file mode 100644 index a3590eae..00000000 --- a/examples/assets/BusterDrone/scene.bin +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2aafaedba913b3c5642907e4fc57f5fcd2f4f4deb0a5a6c9ad17ef2b0ae2ed1f -size 1810780 diff --git a/examples/assets/BusterDrone/scene.gltf b/examples/assets/BusterDrone/scene.gltf deleted file mode 100644 index 2d63a2cc..00000000 --- a/examples/assets/BusterDrone/scene.gltf +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ea5425c972afb40de5b0c5caa1ae121c51592143245c4e8a39273ac26ca19d01 -size 232514 diff --git a/examples/assets/BusterDrone/textures/Boden_baseColor.jpg b/examples/assets/BusterDrone/textures/Boden_baseColor.jpg deleted file mode 100644 index 9e5419f0..00000000 --- a/examples/assets/BusterDrone/textures/Boden_baseColor.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f6d208315a0b37935face8f9b159ee3bdf44d3b95bcfdf441d1725f6c81d0faa -size 543635 diff --git a/examples/assets/BusterDrone/textures/Boden_metallicRoughness.jpg b/examples/assets/BusterDrone/textures/Boden_metallicRoughness.jpg deleted file mode 100644 index 46b9968b..00000000 --- a/examples/assets/BusterDrone/textures/Boden_metallicRoughness.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e5f3a5f2deb2abd7382905a2fb483071f610152f1433eecc527dc8d8ded1c98b -size 1680 diff --git a/examples/assets/BusterDrone/textures/Boden_normal.jpg b/examples/assets/BusterDrone/textures/Boden_normal.jpg deleted file mode 100644 index 86535ac3..00000000 --- a/examples/assets/BusterDrone/textures/Boden_normal.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1c9fe38941e09e853ab8410a84a0336d0fc1e2733a4a2b8571e5b5e47b5fd30c -size 876491 diff --git a/examples/assets/BusterDrone/textures/body_baseColor.jpg b/examples/assets/BusterDrone/textures/body_baseColor.jpg deleted file mode 100644 index 6976673e..00000000 --- a/examples/assets/BusterDrone/textures/body_baseColor.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e57477f5e57d6e3381051367dd05425327643c7bd19a972a1172275ecc675106 -size 1501226 diff --git a/examples/assets/BusterDrone/textures/body_emissive.jpg b/examples/assets/BusterDrone/textures/body_emissive.jpg deleted file mode 100644 index dc52448a..00000000 --- a/examples/assets/BusterDrone/textures/body_emissive.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:999903752cd80ca12b074117942a7128c1c84d27edc8cc773bb15a7f7ddcdcb9 -size 197691 diff --git a/examples/assets/BusterDrone/textures/body_metallicRoughness.jpg b/examples/assets/BusterDrone/textures/body_metallicRoughness.jpg deleted file mode 100644 index 8126ce4b..00000000 --- a/examples/assets/BusterDrone/textures/body_metallicRoughness.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d88568b3463f21a96400cd265286fbb26accdef3a11dbeb65e9faf824a441e4e -size 3868939 diff --git a/examples/assets/BusterDrone/textures/body_normal.jpg b/examples/assets/BusterDrone/textures/body_normal.jpg deleted file mode 100644 index 72a1d807..00000000 --- a/examples/assets/BusterDrone/textures/body_normal.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a34c5fdd0696d1679f5f0464f8fdfc5f012dc2be435046218158bed1bed0f7cb -size 1369811 diff --git a/examples/assets/BusterDrone/textures/material_baseColor.jpg b/examples/assets/BusterDrone/textures/material_baseColor.jpg deleted file mode 100644 index 1438a607..00000000 --- a/examples/assets/BusterDrone/textures/material_baseColor.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8de472e97570c33f0945bb38e97fea2af779e972e21d0226145060ab3ec83fd2 -size 512354 diff --git a/examples/assets/BusterDrone/textures/material_metallicRoughness.jpg b/examples/assets/BusterDrone/textures/material_metallicRoughness.jpg deleted file mode 100644 index 13c3d7e4..00000000 --- a/examples/assets/BusterDrone/textures/material_metallicRoughness.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:df391e772b5ff04540d5187cdf01d5cb04adf661931b2ccbe8744909b0954100 -size 628316 diff --git a/examples/assets/BusterDrone/textures/material_normal.jpg b/examples/assets/BusterDrone/textures/material_normal.jpg deleted file mode 100644 index bb9a61ee..00000000 --- a/examples/assets/BusterDrone/textures/material_normal.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:20dec60f67ea38b14ac45ae2490ddd4bbf5c108f842e244a5fe3f90c7010cc7f -size 468148 diff --git a/examples/assets/FlightHelmet/FlightHelmet.bin b/examples/assets/FlightHelmet/FlightHelmet.bin deleted file mode 100644 index a56edd8c..00000000 --- a/examples/assets/FlightHelmet/FlightHelmet.bin +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a8b61da658f891a244ffba8a293b0b4dcf384893f99c6bcaa4ab653f981de853 -size 501824 diff --git a/examples/assets/FlightHelmet/FlightHelmet.gltf b/examples/assets/FlightHelmet/FlightHelmet.gltf deleted file mode 100644 index 680f64dd..00000000 --- a/examples/assets/FlightHelmet/FlightHelmet.gltf +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7b05a4cf63ea1c614a9385cdb902c62bad324eccbb87a6c9e3370da2b6f36f2d -size 14565 diff --git a/examples/assets/FlightHelmet/FlightHelmet_baseColor.png b/examples/assets/FlightHelmet/FlightHelmet_baseColor.png deleted file mode 100644 index 121fa21d..00000000 --- a/examples/assets/FlightHelmet/FlightHelmet_baseColor.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8e5567daf7a3ac83f6ebc04605f3605ac17c19a153b6b8aadd2596690209c34c -size 2778518 diff --git a/examples/assets/FlightHelmet/FlightHelmet_baseColor1.png b/examples/assets/FlightHelmet/FlightHelmet_baseColor1.png deleted file mode 100644 index 4fad1b98..00000000 --- a/examples/assets/FlightHelmet/FlightHelmet_baseColor1.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fd1207967131afbe2fa523c9f4bae1f6dbce1a8fdd0ebfad5ec0cf7ba6a66dc1 -size 5348302 diff --git a/examples/assets/FlightHelmet/FlightHelmet_baseColor2.png b/examples/assets/FlightHelmet/FlightHelmet_baseColor2.png deleted file mode 100644 index d85c68c6..00000000 --- a/examples/assets/FlightHelmet/FlightHelmet_baseColor2.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7729882e59bc227554d1b26ffd6494bbd37357ee37ac959fad2932b16d586f79 -size 825327 diff --git a/examples/assets/FlightHelmet/FlightHelmet_baseColor3.png b/examples/assets/FlightHelmet/FlightHelmet_baseColor3.png deleted file mode 100644 index 3c8eaed2..00000000 --- a/examples/assets/FlightHelmet/FlightHelmet_baseColor3.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3c8bd17cfddecede5a3fa9e1933ac6f309ce4cc6bc85d4122b9ae39b0ba2b0d8 -size 2990685 diff --git a/examples/assets/FlightHelmet/FlightHelmet_baseColor4.png b/examples/assets/FlightHelmet/FlightHelmet_baseColor4.png deleted file mode 100644 index 368de825..00000000 --- a/examples/assets/FlightHelmet/FlightHelmet_baseColor4.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7987620b2a90887fa1a0521bf72f84933a2eadca88965f47599204dd55dae62a -size 3974850 diff --git a/examples/assets/FlightHelmet/FlightHelmet_normal.png b/examples/assets/FlightHelmet/FlightHelmet_normal.png deleted file mode 100644 index b94892ea..00000000 --- a/examples/assets/FlightHelmet/FlightHelmet_normal.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7acaed3775bb6246c266c8e3dcd803391a08a528b727781bf11559f016752f61 -size 3185146 diff --git a/examples/assets/FlightHelmet/FlightHelmet_normal1.png b/examples/assets/FlightHelmet/FlightHelmet_normal1.png deleted file mode 100644 index afa3ce9b..00000000 --- a/examples/assets/FlightHelmet/FlightHelmet_normal1.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:573a3d39db8a109352d16a421aff316d37faeb52f6abf01d0ca72db279bde7d9 -size 5708074 diff --git a/examples/assets/FlightHelmet/FlightHelmet_normal2.png b/examples/assets/FlightHelmet/FlightHelmet_normal2.png deleted file mode 100644 index 00b58e74..00000000 --- a/examples/assets/FlightHelmet/FlightHelmet_normal2.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:13e867927da090fe696248e0d884087a7d4e310dca8315cd8d4d686b95db7aef -size 17805 diff --git a/examples/assets/FlightHelmet/FlightHelmet_normal3.png b/examples/assets/FlightHelmet/FlightHelmet_normal3.png deleted file mode 100644 index bef510ce..00000000 --- a/examples/assets/FlightHelmet/FlightHelmet_normal3.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3506c43687bf4bd441eef301b157761574c2edecab6c8af6b8e6a85b772abe15 -size 3713769 diff --git a/examples/assets/FlightHelmet/FlightHelmet_normal4.png b/examples/assets/FlightHelmet/FlightHelmet_normal4.png deleted file mode 100644 index 074d5538..00000000 --- a/examples/assets/FlightHelmet/FlightHelmet_normal4.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c34919581290d71a541697454ef9200d3f693236e8e9ddac89b49fa83c3befd9 -size 3702691 diff --git a/examples/assets/FlightHelmet/FlightHelmet_occlusionRoughnessMetallic.png b/examples/assets/FlightHelmet/FlightHelmet_occlusionRoughnessMetallic.png deleted file mode 100644 index 3421ab6c..00000000 --- a/examples/assets/FlightHelmet/FlightHelmet_occlusionRoughnessMetallic.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7fe00edcc79fb3266f7fe61ddb3fbf08f425b731985af7543bc5b677414cbf19 -size 4591738 diff --git a/examples/assets/FlightHelmet/FlightHelmet_occlusionRoughnessMetallic1.png b/examples/assets/FlightHelmet/FlightHelmet_occlusionRoughnessMetallic1.png deleted file mode 100644 index f0edcd24..00000000 --- a/examples/assets/FlightHelmet/FlightHelmet_occlusionRoughnessMetallic1.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c6f75cb920285d4b0eb1f087bc79e70d31b1801c3df4edba294351516fa98953 -size 5304637 diff --git a/examples/assets/FlightHelmet/FlightHelmet_occlusionRoughnessMetallic2.png b/examples/assets/FlightHelmet/FlightHelmet_occlusionRoughnessMetallic2.png deleted file mode 100644 index b1f50b08..00000000 --- a/examples/assets/FlightHelmet/FlightHelmet_occlusionRoughnessMetallic2.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:32afd5ae0da2f2880fc85753b993a6945da1993f4087e562f2f75e107ecbf2f3 -size 755081 diff --git a/examples/assets/FlightHelmet/FlightHelmet_occlusionRoughnessMetallic3.png b/examples/assets/FlightHelmet/FlightHelmet_occlusionRoughnessMetallic3.png deleted file mode 100644 index f32a6371..00000000 --- a/examples/assets/FlightHelmet/FlightHelmet_occlusionRoughnessMetallic3.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c15354b40ef4f79b83d16d6aaa37cfd7654a8e281ef5e5dc5a25934d55f16f7a -size 3748216 diff --git a/examples/assets/FlightHelmet/FlightHelmet_occlusionRoughnessMetallic4.png b/examples/assets/FlightHelmet/FlightHelmet_occlusionRoughnessMetallic4.png deleted file mode 100644 index 73fd570e..00000000 --- a/examples/assets/FlightHelmet/FlightHelmet_occlusionRoughnessMetallic4.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c821ef0709398d8bc3cccfa311572fb45d4d9198514155f940936019ad0f32fd -size 4489618 diff --git a/examples/assets/FlightHelmet/README.md b/examples/assets/FlightHelmet/README.md deleted file mode 100644 index 2a99b3a0..00000000 --- a/examples/assets/FlightHelmet/README.md +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0bc81c711f74fdfd2ef56e34d747383444a3ab6a1ee52fe62cb5838e59b0be56 -size 545 diff --git a/examples/assets/background.ktx b/examples/assets/background.ktx deleted file mode 100644 index 4f13ac3a..00000000 --- a/examples/assets/background.ktx +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:620bfa644724e9914df19949346ad0f441357fbb176879421d66b4377705836b -size 1048644 diff --git a/examples/assets/background.png b/examples/assets/background.png deleted file mode 100644 index 2ca89ebb..00000000 --- a/examples/assets/background.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bedb625eca04a9abba66d1521efda591819212e44cef0ab2438631596902140c -size 585493 diff --git a/examples/assets/default_env/default_env_ibl.ktx b/examples/assets/default_env/default_env_ibl.ktx deleted file mode 100644 index 4ba3a2cc..00000000 --- a/examples/assets/default_env/default_env_ibl.ktx +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0245800fa846c2a3c15cb1d2aa6ded86fcf8355e568907dcd50e073c589f85d6 -size 2095464 diff --git a/examples/assets/default_env/default_env_skybox.ktx b/examples/assets/default_env/default_env_skybox.ktx deleted file mode 100644 index 33f4d477..00000000 --- a/examples/assets/default_env/default_env_skybox.ktx +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:40379fcd881ca3729b0fa057f66b8fedbd8ab92b8e407bc3a4fd17c1a2b6e75e -size 1572932 diff --git a/examples/assets/shapes/shapes.bin b/examples/assets/shapes/shapes.bin deleted file mode 100644 index 661d051b..00000000 --- a/examples/assets/shapes/shapes.bin +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5821c53850d84c5b2d0b39ad28e6cde94d8fc7e1bbb97d5d898c40733e2d4e99 -size 107424 diff --git a/examples/assets/shapes/shapes.blend b/examples/assets/shapes/shapes.blend deleted file mode 100644 index 1f15f926..00000000 --- a/examples/assets/shapes/shapes.blend +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d9134594e40a4bad7601d0396bb5f2a7600656bda5d815b3cb2e855ba6c6c5e4 -size 1263808 diff --git a/examples/assets/shapes/shapes.blend1 b/examples/assets/shapes/shapes.blend1 deleted file mode 100644 index 27743c63..00000000 --- a/examples/assets/shapes/shapes.blend1 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ab0cada556723be0d138d7b1cadb5e315a273524db0468e0c4255d8d2b0c1c2d -size 1222992 diff --git a/examples/assets/shapes/shapes.glb b/examples/assets/shapes/shapes.glb deleted file mode 100644 index 9d154306..00000000 --- a/examples/assets/shapes/shapes.glb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6c58d82602dc9b4dabb63f378fecd7ecb9eaf6f5da5746552ec42dde4ec211d7 -size 121104 diff --git a/examples/assets/shapes/shapes.gltf b/examples/assets/shapes/shapes.gltf deleted file mode 100644 index f06ccefc..00000000 --- a/examples/assets/shapes/shapes.gltf +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0c1d3eac0151a58c3f36bea0f636691559612fd2d5ce21bb3551d43e86043e26 -size 36741 diff --git a/examples/assets/shapes/texture_test.png b/examples/assets/shapes/texture_test.png deleted file mode 100644 index 078faa47..00000000 --- a/examples/assets/shapes/texture_test.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b58c687c2687f5b3b576e4f5672981fde5657519f51dd331e6e671634c77640f -size 29920 diff --git a/examples/assets/solidcolor.filamat b/examples/assets/solidcolor.filamat deleted file mode 100644 index 4b3536e9..00000000 --- a/examples/assets/solidcolor.filamat +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c07d5f3b06fb763d74e4d6afa2ff933d8953e8f73828320d0c34c2105e346d97 -size 38119 diff --git a/examples/assets/solidcolor.mat b/examples/assets/solidcolor.mat deleted file mode 100644 index d416afd8..00000000 --- a/examples/assets/solidcolor.mat +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2033d3f7f8e0af983d8ab237737b45db2ed476b9283c6b0fda6a6954e1a72dea -size 294 diff --git a/examples/dart/cli_macos/.gitignore b/examples/dart/cli_macos/.gitignore deleted file mode 100644 index 3a857904..00000000 --- a/examples/dart/cli_macos/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -# https://dart.dev/guides/libraries/private-files -# Created by `dart pub` -.dart_tool/ diff --git a/examples/dart/cli_macos/CHANGELOG.md b/examples/dart/cli_macos/CHANGELOG.md deleted file mode 100644 index effe43c8..00000000 --- a/examples/dart/cli_macos/CHANGELOG.md +++ /dev/null @@ -1,3 +0,0 @@ -## 1.0.0 - -- Initial version. diff --git a/examples/dart/cli_macos/README.md b/examples/dart/cli_macos/README.md deleted file mode 100644 index 3816eca3..00000000 --- a/examples/dart/cli_macos/README.md +++ /dev/null @@ -1,2 +0,0 @@ -A sample command-line application with an entrypoint in `bin/`, library code -in `lib/`, and example unit test in `test/`. diff --git a/examples/dart/cli_macos/analysis_options.yaml b/examples/dart/cli_macos/analysis_options.yaml deleted file mode 100644 index dee8927a..00000000 --- a/examples/dart/cli_macos/analysis_options.yaml +++ /dev/null @@ -1,30 +0,0 @@ -# This file configures the static analysis results for your project (errors, -# warnings, and lints). -# -# This enables the 'recommended' set of lints from `package:lints`. -# This set helps identify many issues that may lead to problems when running -# or consuming Dart code, and enforces writing Dart using a single, idiomatic -# style and format. -# -# If you want a smaller set of lints you can change this to specify -# 'package:lints/core.yaml'. These are just the most critical lints -# (the recommended set includes the core lints). -# The core lints are also what is used by pub.dev for scoring packages. - -include: package:lints/recommended.yaml - -# Uncomment the following section to specify additional rules. - -# linter: -# rules: -# - camel_case_types - -# analyzer: -# exclude: -# - path/to/excluded/files/** - -# For more information about the core and recommended set of lints, see -# https://dart.dev/go/core-lints - -# For additional information about configuring this file, see -# https://dart.dev/guides/language/analysis-options diff --git a/examples/dart/cli_macos/bin/assets b/examples/dart/cli_macos/bin/assets deleted file mode 120000 index 2978ef39..00000000 --- a/examples/dart/cli_macos/bin/assets +++ /dev/null @@ -1 +0,0 @@ -../../../assets \ No newline at end of file diff --git a/examples/dart/cli_macos/bin/example_cli.dart b/examples/dart/cli_macos/bin/example_cli.dart deleted file mode 100644 index e56c3400..00000000 --- a/examples/dart/cli_macos/bin/example_cli.dart +++ /dev/null @@ -1,46 +0,0 @@ -import 'dart:io'; -import 'package:thermion_dart/thermion_dart/compatibility/compatibility.dart'; -import 'package:thermion_dart/thermion_dart/swift/swift_bindings.g.dart'; -import 'package:thermion_dart/thermion_dart/compatibility/compatibility.dart'; -import 'package:thermion_dart/thermion_dart/utils/dart_resources.dart'; -import 'package:ffi/ffi.dart'; -import 'package:thermion_dart/thermion_dart.dart'; - -void main() async { - var scriptDir = File(Platform.script.toFilePath()).parent.path; - final lib = ThermionDartTexture1( - DynamicLibrary.open("$scriptDir/libthermion_swift.dylib")); - final object = ThermionDartTexture.new1(lib); - object.initWithWidth_height_(500, 500); - - final resourceLoader = calloc(1); - var loadToOut = NativeCallable< - Void Function(Pointer, - Pointer)>.listener(DartResourceLoader.loadResource); - - resourceLoader.ref.loadToOut = loadToOut.nativeFunction; - var freeResource = NativeCallable.listener( - DartResourceLoader.freeResource); - resourceLoader.ref.freeResource = freeResource.nativeFunction; - - var viewer = ThermionViewerFFI(resourceLoader: resourceLoader.cast()); - - await viewer.initialized; - await viewer.createSwapChain(500, 500); - await viewer.createRenderTarget(500, 500, object.metalTextureAddress); - await viewer.updateViewportAndCameraProjection(500, 500); - - var outDir = Directory("$scriptDir/output"); - if (outDir.existsSync()) { - outDir.deleteSync(recursive: true); - } - outDir.createSync(); - - await viewer.setRecordingOutputDirectory(outDir.path); - await viewer.setRecording(true); - await viewer.loadSkybox( - "file:///$scriptDir/assets/default_env/default_env_skybox.ktx"); - await Future.delayed(Duration(milliseconds: 16)); - await viewer.render(); - await viewer.dispose(); -} diff --git a/examples/dart/cli_macos/bin/libthermion_swift.dylib b/examples/dart/cli_macos/bin/libthermion_swift.dylib deleted file mode 120000 index c9146a01..00000000 --- a/examples/dart/cli_macos/bin/libthermion_swift.dylib +++ /dev/null @@ -1 +0,0 @@ -../../../../thermion_dart/native/lib/macos/swift/libthermion_swift.dylib \ No newline at end of file diff --git a/examples/dart/cli_macos/bin/output/output_000007.png b/examples/dart/cli_macos/bin/output/output_000007.png deleted file mode 100644 index 656ea930..00000000 Binary files a/examples/dart/cli_macos/bin/output/output_000007.png and /dev/null differ diff --git a/examples/dart/cli_macos/pubspec.yaml b/examples/dart/cli_macos/pubspec.yaml deleted file mode 100644 index e2672c8a..00000000 --- a/examples/dart/cli_macos/pubspec.yaml +++ /dev/null @@ -1,18 +0,0 @@ -name: example_cli -description: A sample command-line application. -version: 1.0.0 -# repository: https://github.com/my_org/my_repo - -environment: - sdk: ^3.3.0 - -# Add regular dependencies here. -dependencies: - thermion_dart: - path: ../../../thermion_dart - ffi: - -dev_dependencies: - ffigen: ^11.0.0 - lints: ^3.0.0 - test: ^1.24.0 diff --git a/examples/dart/cli_macos/test/example_cli_test.dart b/examples/dart/cli_macos/test/example_cli_test.dart deleted file mode 100644 index 900e362a..00000000 --- a/examples/dart/cli_macos/test/example_cli_test.dart +++ /dev/null @@ -1,8 +0,0 @@ -import 'package:example_cli/example_cli.dart'; -import 'package:test/test.dart'; - -void main() { - test('calculate', () { - expect(calculate(), 42); - }); -} diff --git a/examples/dart/cli_wasm/.gitignore b/examples/dart/cli_wasm/.gitignore deleted file mode 100644 index 3a857904..00000000 --- a/examples/dart/cli_wasm/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -# https://dart.dev/guides/libraries/private-files -# Created by `dart pub` -.dart_tool/ diff --git a/examples/dart/cli_wasm/CHANGELOG.md b/examples/dart/cli_wasm/CHANGELOG.md deleted file mode 100644 index effe43c8..00000000 --- a/examples/dart/cli_wasm/CHANGELOG.md +++ /dev/null @@ -1,3 +0,0 @@ -## 1.0.0 - -- Initial version. diff --git a/examples/dart/cli_wasm/README.md b/examples/dart/cli_wasm/README.md deleted file mode 100644 index 3816eca3..00000000 --- a/examples/dart/cli_wasm/README.md +++ /dev/null @@ -1,2 +0,0 @@ -A sample command-line application with an entrypoint in `bin/`, library code -in `lib/`, and example unit test in `test/`. diff --git a/examples/dart/cli_wasm/analysis_options.yaml b/examples/dart/cli_wasm/analysis_options.yaml deleted file mode 100644 index dee8927a..00000000 --- a/examples/dart/cli_wasm/analysis_options.yaml +++ /dev/null @@ -1,30 +0,0 @@ -# This file configures the static analysis results for your project (errors, -# warnings, and lints). -# -# This enables the 'recommended' set of lints from `package:lints`. -# This set helps identify many issues that may lead to problems when running -# or consuming Dart code, and enforces writing Dart using a single, idiomatic -# style and format. -# -# If you want a smaller set of lints you can change this to specify -# 'package:lints/core.yaml'. These are just the most critical lints -# (the recommended set includes the core lints). -# The core lints are also what is used by pub.dev for scoring packages. - -include: package:lints/recommended.yaml - -# Uncomment the following section to specify additional rules. - -# linter: -# rules: -# - camel_case_types - -# analyzer: -# exclude: -# - path/to/excluded/files/** - -# For more information about the core and recommended set of lints, see -# https://dart.dev/go/core-lints - -# For additional information about configuring this file, see -# https://dart.dev/guides/language/analysis-options diff --git a/examples/dart/cli_wasm/bin/.gitignore b/examples/dart/cli_wasm/bin/.gitignore deleted file mode 100644 index 768bac72..00000000 --- a/examples/dart/cli_wasm/bin/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -example_cli.mjs -example_cli.wasm -example_cli.unopt.wasm -node_modules/**/* diff --git a/examples/dart/cli_wasm/bin/build.log b/examples/dart/cli_wasm/bin/build.log deleted file mode 100644 index 2f3f8079..00000000 --- a/examples/dart/cli_wasm/bin/build.log +++ /dev/null @@ -1,98 +0,0 @@ -MAIN -initializing -gto uberarchive ptr -create void ptr callback -resolve -try -done, returning -created -got promise [object Promise] -got fn ptr address 2720 -Calling create_filament_viewer_ffi -Call complete -Created viewer, waiting for initialization -Creating WebGL context. -Created WebGL context 2.0 -Made WebGL context current -FEngine (32 bits) created at 0x1937d0 (threading is disabled) - -[stack-gl], [ANGLE], [OpenGL ES 3.0 (WebGL 1.0 stack-gl 8.0.2)], [OpenGL ES GLSL ES 1.00 (WebGL GLSL ES 1.0 stack-gl)] - -Feature level: 1 -Active workarounds: - -Backend feature level: 1 - -FEngine feature level: 1 - -Set frame interval to 16.666666 -Setting tone mapping to ACES -Bloom is disabled on WebGL builds as it causes instability with certain drivers. setBloom will be ignored -View created -Camera aperture 16.000000 shutter 0.008000 sensitivity 100.000000 -Created ubershader provider. -Added imageEntity 6 -Got void ptr callback -Set viewer to true -Created viewer 1652064 -Initialied -Loading GLB from buffer of length 116948 -Loaded glb -Entities : [10, 11, 12] -entityName : Cone -Getting morpht arget names -No insdtance -Using asset instance -Getting morpht arget names -No insdtance -Using asset instance -Getting morpht arget names -No insdtance -Using asset instance -Getting morpht arget names -No insdtance -Using asset instance -Getting morpht arget names -No insdtance -Using asset instance -Getting morpht arget names -No insdtance -Using asset instance -Getting morpht arget names -No insdtance -Using asset instance -Getting morpht arget names -No insdtance -Using asset instance -Getting morpht arget names -No insdtance -Using asset instance -morph targets : [Key 1, Key 2, Key 3, Key 4, Key 5, Key 6, Key 7, Key 8] -entityName : Cube -Getting morpht arget names -No insdtance -Using asset instance -Getting morpht arget names -No insdtance -Using asset instance -Getting morpht arget names -No insdtance -Using asset instance -morph targets : [Key 1, Key 2] -entityName : Cylinder -Getting morpht arget names -No insdtance -Using asset instance -Getting morpht arget names -No insdtance -Using asset instance -Getting morpht arget names -No insdtance -Using asset instance -Getting morpht arget names -No insdtance -Using asset instance -Getting morpht arget names -No insdtance -Using asset instance -morph targets : [Key 1, Key 2, Key 3, Key 4] diff --git a/examples/dart/cli_wasm/bin/example_cli.dart b/examples/dart/cli_wasm/bin/example_cli.dart deleted file mode 100644 index 7e5f0a1f..00000000 --- a/examples/dart/cli_wasm/bin/example_cli.dart +++ /dev/null @@ -1,33 +0,0 @@ -import 'package:thermion_dart/thermion_dart/compatibility/compatibility.dart'; -import 'package:thermion_dart/thermion_dart.dart'; -import 'package:animation_tools_dart/animation_tools_dart.dart'; - -void main(List args) async { - final resourceLoader = thermion_dart_web_get_resource_loader_wrapper(); - var viewer = ThermionViewerFFI(resourceLoader: resourceLoader.cast()); - viewer.initialized.then((_) async { - var entity = await viewer.loadGlb( - "/Users/nickfisher/Documents/polyvox/apps/packages/thermion_flutter/thermion_flutter_federated/thermion_flutter/example/assets/shapes/shapes.glb"); - var entities = await viewer.getChildEntities(entity, true); - for (final childEntity in entities) { - final childName = await viewer.getNameForEntity(childEntity); - var morphTargetNames = - await viewer.getMorphTargetNames(entity, childEntity!); - if (morphTargetNames.isNotEmpty) { - await viewer.setMorphTargetWeights( - childEntity, List.filled(morphTargetNames.length, 1.0)); - } - var animationData = MorphAnimationData( - List.generate( - 10, (_) => List.filled(morphTargetNames.length, 1.0)), - morphTargetNames); - - await viewer.setMorphAnimationData(entity, animationData, - targetMeshNames: [childName!]); - } - }); - - while (true) { - await Future.delayed(Duration(seconds: 1)); - } -} diff --git a/examples/dart/cli_wasm/bin/main.js b/examples/dart/cli_wasm/bin/main.js deleted file mode 100644 index 9a2a5033..00000000 --- a/examples/dart/cli_wasm/bin/main.js +++ /dev/null @@ -1,123 +0,0 @@ -const fs = require('node:fs'); -const thermion_dart = require("./thermion_dart.js") -const GLctx = require('gl')(100, 100, { preserveDrawingBuffer: true }) - -// queueMicrotask = (func) => { -// func(); -// } -// read('thermion_dart.wasm', 'binary') -// const exports = {}; -// const module = {}; - -const wasmBuffer = fs.readFileSync('thermion_dart.wasm'); - -var dartFilamentModulePromise = WebAssembly.compile(wasmBuffer); -let globalDf; -thermion_dart({ - dartFilamentResolveCallback: (cb, data) => { - const fn = globalDf.wasmTable.get(cb); - if(data) { - fn(data); - } else { - fn(); - } - }, - ctx:GLctx}).then((df) => { - globalDf = df; - createVoidCallback = () => { - let res; //placeholder for resolver callback, outside of promise - const promise = new Promise((resolve, reject) => { - res = resolve; - }); - try { - const callback = () => { - try { - res({}); - } catch(err) { - console.log(err); - } - } - const fnPtr = df.addFunction(callback, 'v'); - return [promise, fnPtr]; - } catch(err) { - console.log(err); - return null; - } - } - createIntCallback = () => { - let res; - const promise = new Promise((resolve, reject) => { - res = resolve; - }); - try { - const callback = (val) => { - try { - res(val); - } catch(err) { - console.log(err); - } - } - const fnPtr = df.addFunction(callback, 'vi'); - return [promise, fnPtr]; - } catch(err) { - console.log(err); - return null; - } - } - createVoidPointerCallback = () => { - console.log("create void ptr callback"); - let res; //placeholder for resolver callback, outside of promise - const promise = new Promise((resolve, reject) => { - console.log("resolve"); - res = resolve; - }); - try { - console.log("try"); - const callback = (voidPtr) => { - try { - res(voidPtr); - } catch(err) { - console.log(err); - } - } - const fnPtr = df.addFunction(callback, 'vi'); - console.log("done, returning"); - return [promise, fnPtr]; - } catch(err) { - console.log(err); - return null; - } - } - - createBoolCallback = () => { - let res; //placeholder for resolver callback, outside of promise - - const promise = new Promise((resolve, reject) => { - res = resolve; - }); - try { - const callback = (val) => { - try { - res(val); - } catch(err) { - console.log(err); - } - } - const fnPtr = df.addFunction(callback, 'vi'); - return [promise, fnPtr]; - } catch(err) { - console.log(err); - return null; - } - } - - import('./example_cli.mjs').then((dart2wasm_runtime) => { - var dartModulePromise = WebAssembly.compile(fs.readFileSync('./example_cli.wasm')); - const imports = {"thermion_dart": df, "ctx": GLctx}; - dart2wasm_runtime.instantiate(dartModulePromise, imports).then((moduleInstance) => { - dart2wasm_runtime.invoke(moduleInstance); - }); - }); -}); - -// // dartModulePromise.then((dartModule) => { console.log(dartModule.exports); dart2wasm_runtime.invoke(dartModule, imports);}); }); \ No newline at end of file diff --git a/examples/dart/cli_wasm/bin/package-lock.json b/examples/dart/cli_wasm/bin/package-lock.json deleted file mode 100644 index 69892e83..00000000 --- a/examples/dart/cli_wasm/bin/package-lock.json +++ /dev/null @@ -1,1559 +0,0 @@ -{ - "name": "bin", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "dependencies": { - "gl": "^8.0.2" - } - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@npmcli/agent": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.2.tgz", - "integrity": "sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==", - "dependencies": { - "agent-base": "^7.1.0", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.1", - "lru-cache": "^10.0.1", - "socks-proxy-agent": "^8.0.3" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/fs": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", - "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", - "dependencies": { - "semver": "^7.3.5" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/abbrev": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", - "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/agent-base": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", - "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", - "dependencies": { - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dependencies": { - "file-uri-to-path": "1.0.0" - } - }, - "node_modules/bit-twiddle": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bit-twiddle/-/bit-twiddle-1.0.2.tgz", - "integrity": "sha512-B9UhK0DKFZhoTFcfvAzhqsjStvGJp9vYWf3+6SNTtdSQnvIgfkHbgHrg/e4+TH71N2GDu8tpmCVoyfrL1d7ntA==" - }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/cacache": { - "version": "18.0.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.3.tgz", - "integrity": "sha512-qXCd4rh6I07cnDqh8V48/94Tc/WSfj+o3Gn6NZ0aZovS255bUx8O13uKxRFd2eWG0xgsco7+YItQNPaa5E85hg==", - "dependencies": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^10.0.1", - "minipass": "^7.0.3", - "minipass-collect": "^2.0.1", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "engines": { - "node": ">=10" - } - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/cross-spawn/node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, - "node_modules/cross-spawn/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dependencies": { - "mimic-response": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/detect-libc": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", - "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "optional": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" - }, - "node_modules/expand-template": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", - "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/exponential-backoff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", - "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==" - }, - "node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" - }, - "node_modules/foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" - }, - "node_modules/fs-minipass": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", - "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/github-from-package": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==" - }, - "node_modules/gl": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/gl/-/gl-8.0.2.tgz", - "integrity": "sha512-bAQg+aXnz/uBDwWEld/6Fifj0KBN3H3XElQgoz/F9hmBhIYKRohZP/41y43tHBQ6+LqVt1JKM1vts7t+Nzc6oA==", - "hasInstallScript": true, - "dependencies": { - "bindings": "^1.5.0", - "bit-twiddle": "^1.0.2", - "glsl-tokenizer": "^2.1.5", - "nan": "^2.18.0", - "node-abi": "^3.56.0", - "node-gyp": "^10.0.1", - "prebuild-install": "^7.1.1" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/glob": { - "version": "10.3.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.15.tgz", - "integrity": "sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw==", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.6", - "minimatch": "^9.0.1", - "minipass": "^7.0.4", - "path-scurry": "^1.11.0" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glsl-tokenizer": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/glsl-tokenizer/-/glsl-tokenizer-2.1.5.tgz", - "integrity": "sha512-XSZEJ/i4dmz3Pmbnpsy3cKh7cotvFlBiZnDOwnj/05EwNp2XrhQ4XKJxT7/pDt4kp4YcpRSKz8eTV7S+mwV6MA==", - "dependencies": { - "through2": "^0.6.3" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" - }, - "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" - }, - "node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/https-proxy-agent": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", - "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", - "dependencies": { - "agent-base": "^7.0.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "node_modules/ip-address": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", - "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", - "dependencies": { - "jsbn": "1.1.0", - "sprintf-js": "^1.1.3" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==" - }, - "node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" - }, - "node_modules/isexe": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", - "engines": { - "node": ">=16" - } - }, - "node_modules/jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/jsbn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", - "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==" - }, - "node_modules/lru-cache": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", - "engines": { - "node": "14 || >=16.14" - } - }, - "node_modules/make-fetch-happen": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz", - "integrity": "sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==", - "dependencies": { - "@npmcli/agent": "^2.0.0", - "cacache": "^18.0.0", - "http-cache-semantics": "^4.1.1", - "is-lambda": "^1.0.1", - "minipass": "^7.0.2", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "proc-log": "^4.2.0", - "promise-retry": "^2.0.1", - "ssri": "^10.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/make-fetch-happen/node_modules/proc-log": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", - "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/minipass": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.1.tgz", - "integrity": "sha512-UZ7eQ+h8ywIRAW1hIEl2AqdwzJucU/Kp59+8kkZeSvafXhZjul247BvIJjEVFVeON6d7lM46XX1HXCduKAS8VA==", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/minipass-collect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", - "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/minipass-fetch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.5.tgz", - "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==", - "dependencies": { - "minipass": "^7.0.3", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-flush/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-pipeline/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-sized/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minizlib/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/nan": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.19.0.tgz", - "integrity": "sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw==" - }, - "node_modules/napi-build-utils": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", - "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==" - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/node-abi": { - "version": "3.62.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.62.0.tgz", - "integrity": "sha512-CPMcGa+y33xuL1E0TcNIu4YyaZCxnnvkVaEXrsosR3FxN+fV8xvb7Mzpb7IgKler10qeMkE6+Dp8qJhpzdq35g==", - "dependencies": { - "semver": "^7.3.5" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/node-gyp": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.1.0.tgz", - "integrity": "sha512-B4J5M1cABxPc5PwfjhbV5hoy2DP9p8lFXASnEN6hugXOa61416tnTZ29x9sSwAd0o99XNIcpvDDy1swAExsVKA==", - "dependencies": { - "env-paths": "^2.2.0", - "exponential-backoff": "^3.1.1", - "glob": "^10.3.10", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^13.0.0", - "nopt": "^7.0.0", - "proc-log": "^3.0.0", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^4.0.0" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/nopt": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz", - "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==", - "dependencies": { - "abbrev": "^2.0.0" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/prebuild-install": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.2.tgz", - "integrity": "sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==", - "dependencies": { - "detect-libc": "^2.0.0", - "expand-template": "^2.0.3", - "github-from-package": "0.0.0", - "minimist": "^1.2.3", - "mkdirp-classic": "^0.5.3", - "napi-build-utils": "^1.0.1", - "node-abi": "^3.3.0", - "pump": "^3.0.0", - "rc": "^1.2.7", - "simple-get": "^4.0.0", - "tar-fs": "^2.0.0", - "tunnel-agent": "^0.6.0" - }, - "bin": { - "prebuild-install": "bin.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/proc-log": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", - "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/promise-retry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", - "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "optional": true - }, - "node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "engines": { - "node": ">=8" - } - }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/simple-get": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", - "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "decompress-response": "^6.0.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", - "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", - "dependencies": { - "ip-address": "^9.0.5", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.3.tgz", - "integrity": "sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==", - "dependencies": { - "agent-base": "^7.1.1", - "debug": "^4.3.4", - "socks": "^2.7.1" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/sprintf-js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", - "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==" - }, - "node_modules/ssri": { - "version": "10.0.6", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz", - "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/string-width-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/tar": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", - "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^5.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/tar-fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", - "dependencies": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" - } - }, - "node_modules/tar-fs/node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" - }, - "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tar/node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tar/node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha512-RkK/CCESdTKQZHdmKICijdKKsCRVHs5KsLZ6pACAmF/1GPUQhonHSXWNERctxEp7RmvjdNbZTL5z9V7nSCXKcg==", - "dependencies": { - "readable-stream": ">=1.0.33-1 <1.1.0-0", - "xtend": ">=4.0.0 <4.1.0-0" - } - }, - "node_modules/through2/node_modules/readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/through2/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/unique-filename": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", - "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", - "dependencies": { - "unique-slug": "^4.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/unique-slug": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", - "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", - "dependencies": { - "imurmurhash": "^0.1.4" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "node_modules/which": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", - "dependencies": { - "isexe": "^3.1.1" - }, - "bin": { - "node-which": "bin/which.js" - }, - "engines": { - "node": "^16.13.0 || >=18.0.0" - } - }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/wrap-ansi-cjs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } - } -} diff --git a/examples/dart/cli_wasm/bin/package.json b/examples/dart/cli_wasm/bin/package.json deleted file mode 100644 index c6382089..00000000 --- a/examples/dart/cli_wasm/bin/package.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "dependencies": { - "gl": "^8.0.2" - } -} diff --git a/examples/dart/cli_wasm/bin/thermion_dart.js b/examples/dart/cli_wasm/bin/thermion_dart.js deleted file mode 120000 index 6710a76f..00000000 --- a/examples/dart/cli_wasm/bin/thermion_dart.js +++ /dev/null @@ -1 +0,0 @@ -../../../native/web/build/build/out/dart_filament.js \ No newline at end of file diff --git a/examples/dart/cli_wasm/bin/thermion_dart.wasm b/examples/dart/cli_wasm/bin/thermion_dart.wasm deleted file mode 120000 index a1439c39..00000000 --- a/examples/dart/cli_wasm/bin/thermion_dart.wasm +++ /dev/null @@ -1 +0,0 @@ -../../../native/web/build/build/out/dart_filament.wasm \ No newline at end of file diff --git a/examples/dart/cli_wasm/bin/thermion_dart.worker.js b/examples/dart/cli_wasm/bin/thermion_dart.worker.js deleted file mode 120000 index 54392ba9..00000000 --- a/examples/dart/cli_wasm/bin/thermion_dart.worker.js +++ /dev/null @@ -1 +0,0 @@ -../../../native/web/build/build/out/dart_filament.worker.js \ No newline at end of file diff --git a/examples/dart/cli_wasm/pubspec.yaml b/examples/dart/cli_wasm/pubspec.yaml deleted file mode 100644 index e02af0c1..00000000 --- a/examples/dart/cli_wasm/pubspec.yaml +++ /dev/null @@ -1,18 +0,0 @@ -name: example_cli -description: A sample command-line application. -version: 1.0.0 -# repository: https://github.com/my_org/my_repo - -environment: - sdk: ^3.3.0 - -# Add regular dependencies here. -dependencies: - thermion_dart: - path: ../../ - ffi: - -dev_dependencies: - ffigen: ^11.0.0 - lints: ^3.0.0 - test: ^1.24.0 diff --git a/examples/dart/cli_wasm/test/example_cli_test.dart b/examples/dart/cli_wasm/test/example_cli_test.dart deleted file mode 100644 index 900e362a..00000000 --- a/examples/dart/cli_wasm/test/example_cli_test.dart +++ /dev/null @@ -1,8 +0,0 @@ -import 'package:example_cli/example_cli.dart'; -import 'package:test/test.dart'; - -void main() { - test('calculate', () { - expect(calculate(), 42); - }); -} diff --git a/examples/dart/web_wasm/.gitignore b/examples/dart/web_wasm/.gitignore deleted file mode 100644 index 3a857904..00000000 --- a/examples/dart/web_wasm/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -# https://dart.dev/guides/libraries/private-files -# Created by `dart pub` -.dart_tool/ diff --git a/examples/dart/web_wasm/CHANGELOG.md b/examples/dart/web_wasm/CHANGELOG.md deleted file mode 100644 index effe43c8..00000000 --- a/examples/dart/web_wasm/CHANGELOG.md +++ /dev/null @@ -1,3 +0,0 @@ -## 1.0.0 - -- Initial version. diff --git a/examples/dart/web_wasm/README.md b/examples/dart/web_wasm/README.md deleted file mode 100644 index 3816eca3..00000000 --- a/examples/dart/web_wasm/README.md +++ /dev/null @@ -1,2 +0,0 @@ -A sample command-line application with an entrypoint in `bin/`, library code -in `lib/`, and example unit test in `test/`. diff --git a/examples/dart/web_wasm/analysis_options.yaml b/examples/dart/web_wasm/analysis_options.yaml deleted file mode 100644 index dee8927a..00000000 --- a/examples/dart/web_wasm/analysis_options.yaml +++ /dev/null @@ -1,30 +0,0 @@ -# This file configures the static analysis results for your project (errors, -# warnings, and lints). -# -# This enables the 'recommended' set of lints from `package:lints`. -# This set helps identify many issues that may lead to problems when running -# or consuming Dart code, and enforces writing Dart using a single, idiomatic -# style and format. -# -# If you want a smaller set of lints you can change this to specify -# 'package:lints/core.yaml'. These are just the most critical lints -# (the recommended set includes the core lints). -# The core lints are also what is used by pub.dev for scoring packages. - -include: package:lints/recommended.yaml - -# Uncomment the following section to specify additional rules. - -# linter: -# rules: -# - camel_case_types - -# analyzer: -# exclude: -# - path/to/excluded/files/** - -# For more information about the core and recommended set of lints, see -# https://dart.dev/go/core-lints - -# For additional information about configuring this file, see -# https://dart.dev/guides/language/analysis-options diff --git a/examples/dart/web_wasm/bin/README.md b/examples/dart/web_wasm/bin/README.md deleted file mode 100644 index 75aba073..00000000 --- a/examples/dart/web_wasm/bin/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Flight Helmet - -## Screenshot - -![screenshot](screenshot/screenshot.jpg) - -## License Information - -Donated by Microsoft for glTF testing - -[![CC0](http://i.creativecommons.org/p/zero/1.0/88x31.png)](http://creativecommons.org/publicdomain/zero/1.0/) -To the extent possible under law, Microsoft has waived all copyright and related or neighboring rights to this asset. - -Draco compression was done via Cesium tools on 27-03-2020 as follows. - - gltf-pipeline -i FlightHelmet.gltf -o FlightHelmet.gltf -d -s --keep-unused-elements diff --git a/examples/dart/web_wasm/bin/assets b/examples/dart/web_wasm/bin/assets deleted file mode 120000 index 0500631d..00000000 --- a/examples/dart/web_wasm/bin/assets +++ /dev/null @@ -1 +0,0 @@ -../../../../flutter_filament_federated/flutter_filament/example/assets \ No newline at end of file diff --git a/examples/dart/web_wasm/bin/example_web.dart b/examples/dart/web_wasm/bin/example_web.dart deleted file mode 100644 index 37e35c1a..00000000 --- a/examples/dart/web_wasm/bin/example_web.dart +++ /dev/null @@ -1,57 +0,0 @@ -import 'dart:js_interop'; -import 'dart:js_interop_unsafe'; -import 'package:thermion_dart/thermion_dart/compatibility/compatibility.dart'; -import 'package:thermion_dart/thermion_dart/thermion_viewer_ffi.dart'; -import 'package:web/web.dart'; - -void main(List arguments) async { - var fc = FooChar(); - - final canvas = document.getElementById("canvas") as HTMLCanvasElement; - canvas.width = window.innerWidth; - canvas.height = window.innerHeight; - - var resourceLoader = thermion_dart_web_get_resource_loader_wrapper(); - - var viewer = ThermionViewerFFI(resourceLoader: resourceLoader); - - var mousedown = (JSObject event) { - var x = event.getProperty("clientX".toJS) as JSNumber; - var y = event.getProperty("clientY".toJS) as JSNumber; - viewer.rotateStart(x.toDartDouble, y.toDartDouble); - }; - - canvas.addEventListener("mousedown", mousedown.toJS); - - var mousemove = (JSObject event) { - var x = event.getProperty("clientX".toJS) as JSNumber; - var y = event.getProperty("clientY".toJS) as JSNumber; - viewer.rotateUpdate(x.toDartDouble, y.toDartDouble); - }; - - canvas.addEventListener("mousemove", mousemove.toJS); - - var mouseup = (JSObject event) { - viewer.rotateEnd(); - }; - - canvas.addEventListener("mouseup", mousedown.toJS); - - await viewer.initialized; - var width = window.innerWidth; - var height = window.innerHeight; - await viewer.createSwapChain(width.toDouble(), height.toDouble()); - await viewer.setBackgroundColor(0.0, 1.0, 1.0, 1.0); - await viewer.loadSkybox("assets/default_env_skybox.ktx"); - await viewer.loadIbl("assets/default_env_ibl.ktx"); - await viewer.loadGltf("assets/FlightHelmet.gltf", "assets"); - await viewer.updateViewportAndCameraProjection( - width.toDouble(), height.toDouble()); - await viewer.setPostProcessing(true); - await viewer.setRendering(true); - - while (true) { - await Future.delayed(Duration(milliseconds: 16)); - } - print("Finisehd!"); -} diff --git a/examples/dart/web_wasm/bin/example_web.mjs b/examples/dart/web_wasm/bin/example_web.mjs deleted file mode 100644 index 836f37a3..00000000 --- a/examples/dart/web_wasm/bin/example_web.mjs +++ /dev/null @@ -1,249 +0,0 @@ -let buildArgsList; - -// `modulePromise` is a promise to the `WebAssembly.module` object to be -// instantiated. -// `importObjectPromise` is a promise to an object that contains any additional -// imports needed by the module that aren't provided by the standard runtime. -// The fields on this object will be merged into the importObject with which -// the module will be instantiated. -// This function returns a promise to the instantiated module. -export const instantiate = async (modulePromise, importObjectPromise) => { - let dartInstance; - - function stringFromDartString(string) { - const totalLength = dartInstance.exports.$stringLength(string); - let result = ''; - let index = 0; - while (index < totalLength) { - let chunkLength = Math.min(totalLength - index, 0xFFFF); - const array = new Array(chunkLength); - for (let i = 0; i < chunkLength; i++) { - array[i] = dartInstance.exports.$stringRead(string, index++); - } - result += String.fromCharCode(...array); - } - return result; - } - - function stringToDartString(string) { - const length = string.length; - let range = 0; - for (let i = 0; i < length; i++) { - range |= string.codePointAt(i); - } - if (range < 256) { - const dartString = dartInstance.exports.$stringAllocate1(length); - for (let i = 0; i < length; i++) { - dartInstance.exports.$stringWrite1(dartString, i, string.codePointAt(i)); - } - return dartString; - } else { - const dartString = dartInstance.exports.$stringAllocate2(length); - for (let i = 0; i < length; i++) { - dartInstance.exports.$stringWrite2(dartString, i, string.charCodeAt(i)); - } - return dartString; - } - } - - // Prints to the console - function printToConsole(value) { - if (typeof dartPrint == "function") { - dartPrint(value); - return; - } - if (typeof console == "object" && typeof console.log != "undefined") { - console.log(value); - return; - } - if (typeof print == "function") { - print(value); - return; - } - - throw "Unable to print message: " + js; - } - - // Converts a Dart List to a JS array. Any Dart objects will be converted, but - // this will be cheap for JSValues. - function arrayFromDartList(constructor, list) { - const length = dartInstance.exports.$listLength(list); - const array = new constructor(length); - for (let i = 0; i < length; i++) { - array[i] = dartInstance.exports.$listRead(list, i); - } - return array; - } - - buildArgsList = function(list) { - const dartList = dartInstance.exports.$makeStringList(); - for (let i = 0; i < list.length; i++) { - dartInstance.exports.$listAdd(dartList, stringToDartString(list[i])); - } - return dartList; - } - - // A special symbol attached to functions that wrap Dart functions. - const jsWrappedDartFunctionSymbol = Symbol("JSWrappedDartFunction"); - - function finalizeWrapper(dartFunction, wrapped) { - wrapped.dartFunction = dartFunction; - wrapped[jsWrappedDartFunctionSymbol] = true; - return wrapped; - } - - // Imports - const dart2wasm = { - -_18: f => finalizeWrapper(f,x0 => dartInstance.exports._18(f,x0)), -_19: f => finalizeWrapper(f,x0 => dartInstance.exports._19(f,x0)), -_75: (x0,x1) => x0.getElementById(x1), -_76: f => finalizeWrapper(f,x0 => dartInstance.exports._76(f,x0)), -_77: (x0,x1,x2) => x0.addEventListener(x1,x2), -_78: f => finalizeWrapper(f,x0 => dartInstance.exports._78(f,x0)), -_79: f => finalizeWrapper(f,x0 => dartInstance.exports._79(f,x0)), -_1499: (x0,x1) => x0.width = x1, -_1501: (x0,x1) => x0.height = x1, -_1878: () => globalThis.window, -_1920: x0 => x0.innerWidth, -_1921: x0 => x0.innerHeight, -_6854: () => globalThis.document, -_12721: () => globalThis.createBoolCallback(), -_12722: () => globalThis.createVoidPointerCallback(), -_12723: () => globalThis.createVoidCallback(), -_12727: v => stringToDartString(v.toString()), -_12743: () => { - let stackString = new Error().stack.toString(); - let frames = stackString.split('\n'); - let drop = 2; - if (frames[0] === 'Error') { - drop += 1; - } - return frames.slice(drop).join('\n'); - }, -_12762: s => stringToDartString(JSON.stringify(stringFromDartString(s))), -_12763: s => printToConsole(stringFromDartString(s)), -_12777: (ms, c) => - setTimeout(() => dartInstance.exports.$invokeCallback(c),ms), -_12781: (c) => - queueMicrotask(() => dartInstance.exports.$invokeCallback(c)), -_12783: (a, i) => a.push(i), -_12794: a => a.length, -_12796: (a, i) => a[i], -_12797: (a, i, v) => a[i] = v, -_12799: a => a.join(''), -_12809: (s, p, i) => s.indexOf(p, i), -_12812: (o, start, length) => new Uint8Array(o.buffer, o.byteOffset + start, length), -_12813: (o, start, length) => new Int8Array(o.buffer, o.byteOffset + start, length), -_12814: (o, start, length) => new Uint8ClampedArray(o.buffer, o.byteOffset + start, length), -_12815: (o, start, length) => new Uint16Array(o.buffer, o.byteOffset + start, length), -_12816: (o, start, length) => new Int16Array(o.buffer, o.byteOffset + start, length), -_12817: (o, start, length) => new Uint32Array(o.buffer, o.byteOffset + start, length), -_12818: (o, start, length) => new Int32Array(o.buffer, o.byteOffset + start, length), -_12821: (o, start, length) => new Float32Array(o.buffer, o.byteOffset + start, length), -_12822: (o, start, length) => new Float64Array(o.buffer, o.byteOffset + start, length), -_12827: (o) => new DataView(o.buffer, o.byteOffset, o.byteLength), -_12831: Function.prototype.call.bind(Object.getOwnPropertyDescriptor(DataView.prototype, 'byteLength').get), -_12832: (b, o) => new DataView(b, o), -_12834: Function.prototype.call.bind(DataView.prototype.getUint8), -_12836: Function.prototype.call.bind(DataView.prototype.getInt8), -_12838: Function.prototype.call.bind(DataView.prototype.getUint16), -_12840: Function.prototype.call.bind(DataView.prototype.getInt16), -_12842: Function.prototype.call.bind(DataView.prototype.getUint32), -_12844: Function.prototype.call.bind(DataView.prototype.getInt32), -_12850: Function.prototype.call.bind(DataView.prototype.getFloat32), -_12852: Function.prototype.call.bind(DataView.prototype.getFloat64), -_12873: o => o === undefined, -_12874: o => typeof o === 'boolean', -_12875: o => typeof o === 'number', -_12877: o => typeof o === 'string', -_12880: o => o instanceof Int8Array, -_12881: o => o instanceof Uint8Array, -_12882: o => o instanceof Uint8ClampedArray, -_12883: o => o instanceof Int16Array, -_12884: o => o instanceof Uint16Array, -_12885: o => o instanceof Int32Array, -_12886: o => o instanceof Uint32Array, -_12887: o => o instanceof Float32Array, -_12888: o => o instanceof Float64Array, -_12889: o => o instanceof ArrayBuffer, -_12890: o => o instanceof DataView, -_12891: o => o instanceof Array, -_12892: o => typeof o === 'function' && o[jsWrappedDartFunctionSymbol] === true, -_12896: (l, r) => l === r, -_12897: o => o, -_12898: o => o, -_12899: o => o, -_12900: b => !!b, -_12901: o => o.length, -_12904: (o, i) => o[i], -_12905: f => f.dartFunction, -_12906: l => arrayFromDartList(Int8Array, l), -_12907: l => arrayFromDartList(Uint8Array, l), -_12908: l => arrayFromDartList(Uint8ClampedArray, l), -_12909: l => arrayFromDartList(Int16Array, l), -_12910: l => arrayFromDartList(Uint16Array, l), -_12911: l => arrayFromDartList(Int32Array, l), -_12912: l => arrayFromDartList(Uint32Array, l), -_12913: l => arrayFromDartList(Float32Array, l), -_12914: l => arrayFromDartList(Float64Array, l), -_12915: (data, length) => { - const view = new DataView(new ArrayBuffer(length)); - for (let i = 0; i < length; i++) { - view.setUint8(i, dartInstance.exports.$byteDataGetUint8(data, i)); - } - return view; - }, -_12916: l => arrayFromDartList(Array, l), -_12917: stringFromDartString, -_12918: stringToDartString, -_12921: l => new Array(l), -_12925: (o, p) => o[p], -_12929: o => String(o), -_12930: (p, s, f) => p.then(s, f), -_12949: (o, p) => o[p] - }; - - const baseImports = { - dart2wasm: dart2wasm, - - - Math: Math, - Date: Date, - Object: Object, - Array: Array, - Reflect: Reflect, - }; - - const jsStringPolyfill = { - "charCodeAt": (s, i) => s.charCodeAt(i), - "compare": (s1, s2) => { - if (s1 < s2) return -1; - if (s1 > s2) return 1; - return 0; - }, - "concat": (s1, s2) => s1 + s2, - "equals": (s1, s2) => s1 === s2, - "fromCharCode": (i) => String.fromCharCode(i), - "length": (s) => s.length, - "substring": (s, a, b) => s.substring(a, b), - }; - - dartInstance = await WebAssembly.instantiate(await modulePromise, { - ...baseImports, - ...(await importObjectPromise), - "wasm:js-string": jsStringPolyfill, - }); - - return dartInstance; -} - -// Call the main function for the instantiated module -// `moduleInstance` is the instantiated dart2wasm module -// `args` are any arguments that should be passed into the main function. -export const invoke = (moduleInstance, ...args) => { - const dartMain = moduleInstance.exports.$getMain(); - const dartArgs = buildArgsList(args); - moduleInstance.exports.$invokeMain(dartMain, dartArgs); -} - diff --git a/examples/dart/web_wasm/bin/example_web.unopt.wasm b/examples/dart/web_wasm/bin/example_web.unopt.wasm deleted file mode 100644 index 3bda1345..00000000 Binary files a/examples/dart/web_wasm/bin/example_web.unopt.wasm and /dev/null differ diff --git a/examples/dart/web_wasm/bin/example_web.wasm b/examples/dart/web_wasm/bin/example_web.wasm deleted file mode 100644 index 763b8df9..00000000 Binary files a/examples/dart/web_wasm/bin/example_web.wasm and /dev/null differ diff --git a/examples/dart/web_wasm/bin/index.html b/examples/dart/web_wasm/bin/index.html deleted file mode 100644 index 7abc5620..00000000 --- a/examples/dart/web_wasm/bin/index.html +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/examples/dart/web_wasm/bin/thermion_dart.js b/examples/dart/web_wasm/bin/thermion_dart.js deleted file mode 120000 index 6710a76f..00000000 --- a/examples/dart/web_wasm/bin/thermion_dart.js +++ /dev/null @@ -1 +0,0 @@ -../../../native/web/build/build/out/dart_filament.js \ No newline at end of file diff --git a/examples/dart/web_wasm/bin/thermion_dart.wasm b/examples/dart/web_wasm/bin/thermion_dart.wasm deleted file mode 120000 index a1439c39..00000000 --- a/examples/dart/web_wasm/bin/thermion_dart.wasm +++ /dev/null @@ -1 +0,0 @@ -../../../native/web/build/build/out/dart_filament.wasm \ No newline at end of file diff --git a/examples/dart/web_wasm/bin/thermion_dart.worker.js b/examples/dart/web_wasm/bin/thermion_dart.worker.js deleted file mode 120000 index 54392ba9..00000000 --- a/examples/dart/web_wasm/bin/thermion_dart.worker.js +++ /dev/null @@ -1 +0,0 @@ -../../../native/web/build/build/out/dart_filament.worker.js \ No newline at end of file diff --git a/examples/dart/web_wasm/pubspec.yaml b/examples/dart/web_wasm/pubspec.yaml deleted file mode 100644 index e1be14e3..00000000 --- a/examples/dart/web_wasm/pubspec.yaml +++ /dev/null @@ -1,17 +0,0 @@ -name: example_web -description: A sample command-line application. -version: 1.0.0 -# repository: https://github.com/my_org/my_repo - -environment: - sdk: ^3.3.0 - -# Add regular dependencies here. -dependencies: - thermion_dart: - path: ../../ - ffi: - -dev_dependencies: - lints: ^3.0.0 - test: ^1.24.0 diff --git a/examples/dart/web_wasm/test/example_web_test.dart b/examples/dart/web_wasm/test/example_web_test.dart deleted file mode 100644 index 4c50d967..00000000 --- a/examples/dart/web_wasm/test/example_web_test.dart +++ /dev/null @@ -1,8 +0,0 @@ -import 'package:example_web/example_web.dart'; -import 'package:test/test.dart'; - -void main() { - test('calculate', () { - expect(calculate(), 42); - }); -} diff --git a/examples/flutter/example/.fvm/fvm_config.json b/examples/flutter/example/.fvm/fvm_config.json deleted file mode 100644 index 8fd7d3ea..00000000 --- a/examples/flutter/example/.fvm/fvm_config.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "flutterSdkVersion": "3.16.0-0.2.pre", - "flavors": {} -} \ No newline at end of file diff --git a/examples/flutter/example/.gitattributes b/examples/flutter/example/.gitattributes deleted file mode 100644 index 588e746e..00000000 --- a/examples/flutter/example/.gitattributes +++ /dev/null @@ -1,30 +0,0 @@ -assets/lit_opaque_43.uberz filter=lfs diff=lfs merge=lfs -text -assets/BusterDrone filter=lfs diff=lfs merge=lfs -text -assets/FlightHelmet filter=lfs diff=lfs merge=lfs -text -assets/lit_opaque_32.uberz filter=lfs diff=lfs merge=lfs -text -windows/lib/**/*.* filter=lfs diff=lfs merge=lfs -text -integration_test/goldens/ios/12_Settonemappingtolinear.png filter=lfs diff=lfs merge=lfs -text -integration_test/goldens/ios/3_loadIBL.png filter=lfs diff=lfs merge=lfs -text -integration_test/goldens/ios/6_zoomin.png filter=lfs diff=lfs merge=lfs -text -integration_test/goldens/ios/13_Movecameratoasset.png filter=lfs diff=lfs merge=lfs -text -integration_test/goldens/ios/14_movecamerato.png filter=lfs diff=lfs merge=lfs -text -integration_test/goldens/ios/7_rotate.png filter=lfs diff=lfs merge=lfs -text -integration_test/goldens/ios/9_transformtounitcube.png filter=lfs diff=lfs merge=lfs -text -integration_test/goldens/ios/0_fresh.png filter=lfs diff=lfs merge=lfs -text -integration_test/goldens/ios/10_setshapespositionto.png filter=lfs diff=lfs merge=lfs -text -integration_test/goldens/ios/2_loadskybox.png filter=lfs diff=lfs merge=lfs -text -integration_test/goldens/ios/4_Renderingfalse.png filter=lfs diff=lfs merge=lfs -text -integration_test/goldens/ios/8_pan.png filter=lfs diff=lfs merge=lfs -text -integration_test/goldens/ios/11_Disablefrustumculling.png filter=lfs diff=lfs merge=lfs -text -integration_test/goldens/ios/15_setcameratofirstcamerainshapesGLB.png filter=lfs diff=lfs merge=lfs -text -integration_test/goldens/ios/1_createviewerdefaultubershader.png filter=lfs diff=lfs merge=lfs -text -integration_test/goldens/ios/5_loadshapesGLB.png filter=lfs diff=lfs merge=lfs -text -integration_test/goldens/ios filter=lfs diff=lfs merge=lfs -text -integration_test/goldens/ios/16_resize.png filter=lfs diff=lfs merge=lfs -text -integration_test/goldens/ios/3_loadskybox.png filter=lfs diff=lfs merge=lfs -text -integration_test/goldens/ios/4_loadIBL.png filter=lfs diff=lfs merge=lfs -text -integration_test/goldens/ios/19_resize.png filter=lfs diff=lfs merge=lfs -text -integration_test/goldens/ios/17_resize.png filter=lfs diff=lfs merge=lfs -text -integration_test/goldens/ios/2_Renderingfalse.png filter=lfs diff=lfs merge=lfs -text -integration_test/goldens/ios/18_resize.png filter=lfs diff=lfs merge=lfs -text -integration_test/goldens/ios/diffs filter=lfs diff=lfs merge=lfs -text diff --git a/examples/flutter/example/.gitignore b/examples/flutter/example/.gitignore deleted file mode 100644 index 76cbb205..00000000 --- a/examples/flutter/example/.gitignore +++ /dev/null @@ -1,50 +0,0 @@ -# Miscellaneous -*.class -*.log -*.pyc -*.swp -.DS_Store -.atom/ -.buildlog/ -.history -.svn/ - -# IntelliJ related -*.iml -*.ipr -*.iws -.idea/ - -# The .vscode folder contains launch configuration and tasks you configure in -# VS Code which you may wish to be included in version control, so this line -# is commented out by default. -#.vscode/ - -# Flutter/Dart/Pub related -**/doc/api/ -**/ios/Flutter/.last_build_id -.dart_tool/ -.flutter-plugins -.flutter-plugins-dependencies -.packages -.pub-cache/ -.pub/ -/build/ - -# Web related - -# Symbolication related -app.*.symbols - -# Obfuscation related -app.*.map.json - -# Android Studio will place build artifacts here -/android/app/debug -/android/app/profile -/android/app/release - -/android/.cxx/**/* - -# fvm -.fvm/flutter_sdk diff --git a/examples/flutter/example/.metadata b/examples/flutter/example/.metadata deleted file mode 100644 index de6eb858..00000000 --- a/examples/flutter/example/.metadata +++ /dev/null @@ -1,30 +0,0 @@ -# This file tracks properties of this Flutter project. -# Used by Flutter tool to assess capabilities and perform upgrades etc. -# -# This file should be version controlled and should not be manually edited. - -version: - revision: "12d54de962782853206992fedce29723fcb4a95b" - channel: "master" - -project_type: app - -# Tracks metadata for the flutter migrate command -migration: - platforms: - - platform: root - create_revision: 12d54de962782853206992fedce29723fcb4a95b - base_revision: 12d54de962782853206992fedce29723fcb4a95b - - platform: macos - create_revision: 12d54de962782853206992fedce29723fcb4a95b - base_revision: 12d54de962782853206992fedce29723fcb4a95b - - # User provided section - - # List of Local paths (relative to this file) that should be - # ignored by the migrate tool. - # - # Files that are not part of the templates will be ignored by default. - unmanaged_files: - - 'lib/main.dart' - - 'ios/Runner.xcodeproj/project.pbxproj' diff --git a/examples/flutter/example/README.md b/examples/flutter/example/README.md deleted file mode 100644 index a1e9374f..00000000 --- a/examples/flutter/example/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# thermion_flutter_example - -Demonstrates how to use the thermion_flutter plugin. - -## Linux - -export PKG_CONFIG_PATH=/usr/lib/pkgconfig/:/usr/lib64/pkgconfig/ -export CPLUS_INCLUDE_PATH=/usr/include/gtk-3.0/:/usr/include/pango-1.0/:/usr/include/harfbuzz:/usr/include/cairo/:/usr/include/gdk-pixbuf-2.0/:/usr/include/atk-1.0/ - -## Getting Started - -This project is a starting point for a Flutter application. - -A few resources to get you started if this is your first Flutter project: - -- [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab) -- [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook) - -For help getting started with Flutter, view our -[online documentation](https://flutter.dev/docs), which offers tutorials, -samples, guidance on mobile development, and a full API reference. diff --git a/examples/flutter/example/analysis_options.yaml b/examples/flutter/example/analysis_options.yaml deleted file mode 100644 index 61b6c4de..00000000 --- a/examples/flutter/example/analysis_options.yaml +++ /dev/null @@ -1,29 +0,0 @@ -# This file configures the analyzer, which statically analyzes Dart code to -# check for errors, warnings, and lints. -# -# The issues identified by the analyzer are surfaced in the UI of Dart-enabled -# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be -# invoked from the command line by running `flutter analyze`. - -# The following line activates a set of recommended lints for Flutter apps, -# packages, and plugins designed to encourage good coding practices. -include: package:flutter_lints/flutter.yaml - -linter: - # The lint rules applied to this project can be customized in the - # section below to disable rules from the `package:flutter_lints/flutter.yaml` - # included above or to enable additional rules. A list of all available lints - # and their documentation is published at - # https://dart-lang.github.io/linter/lints/index.html. - # - # Instead of disabling a lint rule for the entire project in the - # section below, it can also be suppressed for a single line of code - # or a specific dart file by using the `// ignore: name_of_lint` and - # `// ignore_for_file: name_of_lint` syntax on the line or in the file - # producing the lint. - rules: - # avoid_print: false # Uncomment to disable the `avoid_print` rule - # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule - -# Additional information about this file can be found at -# https://dart.dev/guides/language/analysis-options diff --git a/examples/flutter/example/android/.gitignore b/examples/flutter/example/android/.gitignore deleted file mode 100644 index 6f568019..00000000 --- a/examples/flutter/example/android/.gitignore +++ /dev/null @@ -1,13 +0,0 @@ -gradle-wrapper.jar -/.gradle -/captures/ -/gradlew -/gradlew.bat -/local.properties -GeneratedPluginRegistrant.java - -# Remember to never publicly share your keystore. -# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app -key.properties -**/*.keystore -**/*.jks diff --git a/examples/flutter/example/android/app/build.gradle b/examples/flutter/example/android/app/build.gradle deleted file mode 100644 index 2641214e..00000000 --- a/examples/flutter/example/android/app/build.gradle +++ /dev/null @@ -1,51 +0,0 @@ -plugins { - id "com.android.application" - id "kotlin-android" - // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. - id "dev.flutter.flutter-gradle-plugin" -} - -android { - namespace = "app.polyvox.example" - compileSdkVersion 34 - ndkVersion "25.2.9519653" - - compileOptions { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 - } - - kotlinOptions { - jvmTarget = JavaVersion.VERSION_1_8 - } - - defaultConfig { - // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). - applicationId = "app.polyvox.example" - // You can update the following values to match your application needs. - // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. - minSdk = 30 - targetSdk = 31 - versionCode = flutter.versionCode - versionName = flutter.versionName - } - - buildTypes { - release { - signingConfig = signingConfigs.debug - shrinkResources false - minifyEnabled false - } - debug { - - } - } -} - -dependencies { - implementation 'net.java.dev.jna:jna:5.10.0@aar' -} - -flutter { - source = "../.." -} diff --git a/examples/flutter/example/android/app/src/debug/AndroidManifest.xml b/examples/flutter/example/android/app/src/debug/AndroidManifest.xml deleted file mode 100644 index 399f6981..00000000 --- a/examples/flutter/example/android/app/src/debug/AndroidManifest.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - diff --git a/examples/flutter/example/android/app/src/main/AndroidManifest.xml b/examples/flutter/example/android/app/src/main/AndroidManifest.xml deleted file mode 100644 index 74a78b93..00000000 --- a/examples/flutter/example/android/app/src/main/AndroidManifest.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/flutter/example/android/app/src/main/kotlin/app/polyvox/example/MainActivity.kt b/examples/flutter/example/android/app/src/main/kotlin/app/polyvox/example/MainActivity.kt deleted file mode 100644 index c546a613..00000000 --- a/examples/flutter/example/android/app/src/main/kotlin/app/polyvox/example/MainActivity.kt +++ /dev/null @@ -1,5 +0,0 @@ -package app.polyvox.example - -import io.flutter.embedding.android.FlutterActivity - -class MainActivity: FlutterActivity() diff --git a/examples/flutter/example/android/app/src/main/res/drawable-v21/launch_background.xml b/examples/flutter/example/android/app/src/main/res/drawable-v21/launch_background.xml deleted file mode 100644 index f74085f3..00000000 --- a/examples/flutter/example/android/app/src/main/res/drawable-v21/launch_background.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - diff --git a/examples/flutter/example/android/app/src/main/res/drawable/launch_background.xml b/examples/flutter/example/android/app/src/main/res/drawable/launch_background.xml deleted file mode 100644 index 304732f8..00000000 --- a/examples/flutter/example/android/app/src/main/res/drawable/launch_background.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - diff --git a/examples/flutter/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/examples/flutter/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index db77bb4b..00000000 Binary files a/examples/flutter/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/examples/flutter/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/examples/flutter/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 17987b79..00000000 Binary files a/examples/flutter/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/examples/flutter/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/examples/flutter/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 09d43914..00000000 Binary files a/examples/flutter/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/examples/flutter/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/examples/flutter/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index d5f1c8d3..00000000 Binary files a/examples/flutter/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/examples/flutter/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/examples/flutter/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 4d6372ee..00000000 Binary files a/examples/flutter/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/examples/flutter/example/android/app/src/main/res/values-night/styles.xml b/examples/flutter/example/android/app/src/main/res/values-night/styles.xml deleted file mode 100644 index 06952be7..00000000 --- a/examples/flutter/example/android/app/src/main/res/values-night/styles.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - diff --git a/examples/flutter/example/android/app/src/main/res/values/styles.xml b/examples/flutter/example/android/app/src/main/res/values/styles.xml deleted file mode 100644 index cb1ef880..00000000 --- a/examples/flutter/example/android/app/src/main/res/values/styles.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - diff --git a/examples/flutter/example/android/app/src/profile/AndroidManifest.xml b/examples/flutter/example/android/app/src/profile/AndroidManifest.xml deleted file mode 100644 index 399f6981..00000000 --- a/examples/flutter/example/android/app/src/profile/AndroidManifest.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - diff --git a/examples/flutter/example/android/build.gradle b/examples/flutter/example/android/build.gradle deleted file mode 100644 index d2ffbffa..00000000 --- a/examples/flutter/example/android/build.gradle +++ /dev/null @@ -1,18 +0,0 @@ -allprojects { - repositories { - google() - mavenCentral() - } -} - -rootProject.buildDir = "../build" -subprojects { - project.buildDir = "${rootProject.buildDir}/${project.name}" -} -subprojects { - project.evaluationDependsOn(":app") -} - -tasks.register("clean", Delete) { - delete rootProject.buildDir -} diff --git a/examples/flutter/example/android/gradle.properties b/examples/flutter/example/android/gradle.properties deleted file mode 100644 index 25971708..00000000 --- a/examples/flutter/example/android/gradle.properties +++ /dev/null @@ -1,3 +0,0 @@ -org.gradle.jvmargs=-Xmx4G -XX:MaxMetaspaceSize=2G -XX:+HeapDumpOnOutOfMemoryError -android.useAndroidX=true -android.enableJetifier=true diff --git a/examples/flutter/example/android/gradle/wrapper/gradle-wrapper.properties b/examples/flutter/example/android/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index e1ca574e..00000000 --- a/examples/flutter/example/android/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,5 +0,0 @@ -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.3-all.zip diff --git a/examples/flutter/example/android/settings.gradle b/examples/flutter/example/android/settings.gradle deleted file mode 100644 index 536165d3..00000000 --- a/examples/flutter/example/android/settings.gradle +++ /dev/null @@ -1,25 +0,0 @@ -pluginManagement { - def flutterSdkPath = { - def properties = new Properties() - file("local.properties").withInputStream { properties.load(it) } - def flutterSdkPath = properties.getProperty("flutter.sdk") - assert flutterSdkPath != null, "flutter.sdk not set in local.properties" - return flutterSdkPath - }() - - includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") - - repositories { - google() - mavenCentral() - gradlePluginPortal() - } -} - -plugins { - id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "7.3.0" apply false - id "org.jetbrains.kotlin.android" version "1.7.10" apply false -} - -include ":app" diff --git a/examples/flutter/example/assets b/examples/flutter/example/assets deleted file mode 120000 index 41aef43f..00000000 --- a/examples/flutter/example/assets +++ /dev/null @@ -1 +0,0 @@ -../../assets \ No newline at end of file diff --git a/examples/flutter/example/integration_test/goldens/ios/0_fresh.png b/examples/flutter/example/integration_test/goldens/ios/0_fresh.png deleted file mode 100644 index 7e09a470..00000000 --- a/examples/flutter/example/integration_test/goldens/ios/0_fresh.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ec2a9627f23ffe07750323c25afa78c6c7fcb7d26b5ed36d119363ced0b60f29 -size 258304 diff --git a/examples/flutter/example/integration_test/goldens/ios/10_setshapespositionto.png b/examples/flutter/example/integration_test/goldens/ios/10_setshapespositionto.png deleted file mode 100644 index 654bce23..00000000 --- a/examples/flutter/example/integration_test/goldens/ios/10_setshapespositionto.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:53256c9443c6d36edfb8c1234711173c847126e888d714151ae026c57495fe6b -size 1875814 diff --git a/examples/flutter/example/integration_test/goldens/ios/11_Disablefrustumculling.png b/examples/flutter/example/integration_test/goldens/ios/11_Disablefrustumculling.png deleted file mode 100644 index 938197ea..00000000 --- a/examples/flutter/example/integration_test/goldens/ios/11_Disablefrustumculling.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b0c715cadbf84c2161099e8373a404c7d6dbb093faf4157aa0e0aa3825c28217 -size 1868778 diff --git a/examples/flutter/example/integration_test/goldens/ios/12_Settonemappingtolinear.png b/examples/flutter/example/integration_test/goldens/ios/12_Settonemappingtolinear.png deleted file mode 100644 index a3f358a9..00000000 --- a/examples/flutter/example/integration_test/goldens/ios/12_Settonemappingtolinear.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:56a431b561db7038ad7fe92d025fc2fe2806dfa2cf68c29a0380c3cbd2b66fb5 -size 1742539 diff --git a/examples/flutter/example/integration_test/goldens/ios/13_Movecameratoasset.png b/examples/flutter/example/integration_test/goldens/ios/13_Movecameratoasset.png deleted file mode 100644 index 88cb252a..00000000 --- a/examples/flutter/example/integration_test/goldens/ios/13_Movecameratoasset.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:14193a392baf348f77895ca7bfb8cee160407c762d03c01bf1f7b5b771a9b1ab -size 2282401 diff --git a/examples/flutter/example/integration_test/goldens/ios/14_movecamerato.png b/examples/flutter/example/integration_test/goldens/ios/14_movecamerato.png deleted file mode 100644 index 3208625c..00000000 --- a/examples/flutter/example/integration_test/goldens/ios/14_movecamerato.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:77badd0b2a59122949e497297052064c403006272daa4488db43e492d60093e2 -size 1959141 diff --git a/examples/flutter/example/integration_test/goldens/ios/15_setcameratofirstcamerainshapesGLB.png b/examples/flutter/example/integration_test/goldens/ios/15_setcameratofirstcamerainshapesGLB.png deleted file mode 100644 index 8bd59ae0..00000000 --- a/examples/flutter/example/integration_test/goldens/ios/15_setcameratofirstcamerainshapesGLB.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bdf63e19e5a992f2c848cf71b55ceddf8930d6a9368c9b3adcc13e7c478c7146 -size 1889777 diff --git a/examples/flutter/example/integration_test/goldens/ios/16_resize.png b/examples/flutter/example/integration_test/goldens/ios/16_resize.png deleted file mode 100644 index 601b3963..00000000 --- a/examples/flutter/example/integration_test/goldens/ios/16_resize.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:651c19434ae3753488eb840695955b98db9d66a20b79bee1e21b3384c2358025 -size 1609541 diff --git a/examples/flutter/example/integration_test/goldens/ios/17_resize.png b/examples/flutter/example/integration_test/goldens/ios/17_resize.png deleted file mode 100644 index de3b79c8..00000000 --- a/examples/flutter/example/integration_test/goldens/ios/17_resize.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f11462c0fdf30d101b6ed6c430734adcf6451818f3c7824126c8423014836773 -size 2060944 diff --git a/examples/flutter/example/integration_test/goldens/ios/18_resize.png b/examples/flutter/example/integration_test/goldens/ios/18_resize.png deleted file mode 100644 index d193c61c..00000000 --- a/examples/flutter/example/integration_test/goldens/ios/18_resize.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:beb941d33777ad2e1d6ef3704ba6a63b3a5608ca885a516a1c9e807a31b533fc -size 1608407 diff --git a/examples/flutter/example/integration_test/goldens/ios/19_resize.png b/examples/flutter/example/integration_test/goldens/ios/19_resize.png deleted file mode 100644 index 18f22392..00000000 --- a/examples/flutter/example/integration_test/goldens/ios/19_resize.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2bcae11fd2eb593c419a62731e1799f7340408b28ad56575fab5f79db608ae17 -size 2062339 diff --git a/examples/flutter/example/integration_test/goldens/ios/1_createviewerdefaultubershader.png b/examples/flutter/example/integration_test/goldens/ios/1_createviewerdefaultubershader.png deleted file mode 100644 index a33704b3..00000000 --- a/examples/flutter/example/integration_test/goldens/ios/1_createviewerdefaultubershader.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:dc3b3c5e0678a5b71728cea8961925e6c0fb44a59340aa2d77d4ea92a24cc7d6 -size 316763 diff --git a/examples/flutter/example/integration_test/goldens/ios/2_Renderingfalse.png b/examples/flutter/example/integration_test/goldens/ios/2_Renderingfalse.png deleted file mode 100644 index 8b21177b..00000000 --- a/examples/flutter/example/integration_test/goldens/ios/2_Renderingfalse.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6dbbb518a86c546f188134c1d369762664f188dd6b9a38ec13963b6187cb4b25 -size 1456648 diff --git a/examples/flutter/example/integration_test/goldens/ios/3_loadskybox.png b/examples/flutter/example/integration_test/goldens/ios/3_loadskybox.png deleted file mode 100644 index 5fe8dd9c..00000000 --- a/examples/flutter/example/integration_test/goldens/ios/3_loadskybox.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2d7951418e5875da7c7ed8dea482dbf1cbe81a42b47d255db7f1b6e11c16a193 -size 1876507 diff --git a/examples/flutter/example/integration_test/goldens/ios/4_loadIBL.png b/examples/flutter/example/integration_test/goldens/ios/4_loadIBL.png deleted file mode 100644 index 1d4d7fd9..00000000 --- a/examples/flutter/example/integration_test/goldens/ios/4_loadIBL.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:80cd11f5be75012cfdf953569e409a355826ca23af35feba41aac78f0e3d35d8 -size 1874857 diff --git a/examples/flutter/example/integration_test/goldens/ios/5_loadshapesGLB.png b/examples/flutter/example/integration_test/goldens/ios/5_loadshapesGLB.png deleted file mode 100644 index f6d86acb..00000000 --- a/examples/flutter/example/integration_test/goldens/ios/5_loadshapesGLB.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e605bb18426ea657b9352ecca51f0b55daac904b15dba3afdcffc412a445548a -size 1941423 diff --git a/examples/flutter/example/integration_test/goldens/ios/6_zoomin.png b/examples/flutter/example/integration_test/goldens/ios/6_zoomin.png deleted file mode 100644 index 6406f7a2..00000000 --- a/examples/flutter/example/integration_test/goldens/ios/6_zoomin.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c026e8723922a6c56ab8e28f99a29805c53627ff5a659971590c95d89d7ac6bd -size 1940845 diff --git a/examples/flutter/example/integration_test/goldens/ios/7_rotate.png b/examples/flutter/example/integration_test/goldens/ios/7_rotate.png deleted file mode 100644 index 85cdf565..00000000 --- a/examples/flutter/example/integration_test/goldens/ios/7_rotate.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fffa285edd2c5474e16475cafc67d2519e000b74178ce1a0f8d88229827cfabf -size 1937116 diff --git a/examples/flutter/example/integration_test/goldens/ios/8_pan.png b/examples/flutter/example/integration_test/goldens/ios/8_pan.png deleted file mode 100644 index b26c2c78..00000000 --- a/examples/flutter/example/integration_test/goldens/ios/8_pan.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1db7a2f831d83e75e42dfe4f0547e9ed1f171152f45103e8f250d2b52ee3a8e1 -size 1937776 diff --git a/examples/flutter/example/integration_test/goldens/ios/9_transformtounitcube.png b/examples/flutter/example/integration_test/goldens/ios/9_transformtounitcube.png deleted file mode 100644 index 4db03efd..00000000 --- a/examples/flutter/example/integration_test/goldens/ios/9_transformtounitcube.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:00c70e7e77b98e4e72d0dde82482066096ebd502d25cccfada9cb87de332ecac -size 1941844 diff --git a/examples/flutter/example/integration_test/plugin_integration_test.dart b/examples/flutter/example/integration_test/plugin_integration_test.dart deleted file mode 100644 index d1a921f0..00000000 --- a/examples/flutter/example/integration_test/plugin_integration_test.dart +++ /dev/null @@ -1,190 +0,0 @@ -import 'dart:async'; -import 'dart:io'; -import 'dart:ui'; - -import 'package:flutter/gestures.dart'; -import 'package:flutter/widgets.dart'; -import 'package:thermion_flutter/filament/widgets/filament_widget.dart'; -import 'package:flutter_test/flutter_test.dart'; -import 'package:integration_test/integration_test.dart'; -import '../lib/main.dart' as app; - -void main() { - final binding = IntegrationTestWidgetsFlutterBinding.ensureInitialized() - as IntegrationTestWidgetsFlutterBinding; - - late String platformIdentifier; - if (Platform.isIOS) { - platformIdentifier = "ios"; - } else if (Platform.isAndroid) { - platformIdentifier = "android"; - } else if (Platform.isMacOS) { - platformIdentifier = "macos"; - } else if (Platform.isWindows) { - platformIdentifier = "windows"; - } else if (Platform.isLinux) { - platformIdentifier = "linux"; - } else { - throw Exception("Unexpected platform"); - } - - int _counter = 0; - - Future _snapshot(WidgetTester tester, String label, [int seconds = 0]) async { - await tester.pumpAndSettle(Duration(milliseconds: 16)); - for (int i = 0; i < seconds; i++) { - await Future.delayed(Duration(seconds: 1)); - await tester.pumpAndSettle(Duration(milliseconds: 16)); - } - await tester.pumpAndSettle(Duration(milliseconds: 16)); - var screenshotPath = '$platformIdentifier/${_counter}_$label'; - if (Platform.isIOS) { - // this is currently hanging on Android - // see https://github.com/flutter/flutter/issues/127306 - // it is also not yet implemented on Windows or MacOS - await binding.convertFlutterSurfaceToImage(); - final bytes = await binding.takeScreenshot(screenshotPath); - } - _counter++; - } - - Future tap(WidgetTester tester, String label, [int seconds = 0]) async { - var target = find.text(label, skipOffstage: false); - - if (!target.hasFound) { - print("Couldn't find target, waiting 100ms"); - await tester.pump(const Duration(milliseconds: 100)); - target = find.text(label); - } - - await tester.tap(target.first); - await _snapshot(tester, label.replaceAll(RegExp("[ -:]"), ""), seconds); - } - - Future pumpUntilFound( - WidgetTester tester, - Finder finder, { - Duration timeout = const Duration(seconds: 30), - }) async { - bool timerDone = false; - final timer = Timer( - timeout, () => throw TimeoutException("Pump until has timed out")); - while (timerDone != true) { - await tester.pump(); - - final found = tester.any(finder); - if (found) { - timerDone = true; - } - } - timer.cancel(); - } - - testWidgets('test', (WidgetTester tester) async { - app.main(); - await pumpUntilFound(tester, find.byType(app.ExampleWidget)); - - await tester.pumpAndSettle(); - - await _snapshot(tester, "fresh"); - - await tap(tester, "Controller / Viewer"); - await tap(tester, "Create ThermionFlutterPlugin (default ubershader)"); - await tap(tester, "Controller / Viewer"); - await tap(tester, "Create ThermionViewerFFI", - 4); // on older devices this may take a while, so let's insert a length delay - - await tap(tester, "Scene"); - await tap(tester, "Rendering"); - await tap(tester, "Set continuous rendering to true"); - - await tap(tester, "Scene"); - await tap(tester, "Assets"); - await tap(tester, "Shapes"); - await tap(tester, "Load GLB"); - - await tester.pump(); - - await tap(tester, "Scene"); - await tap(tester, "Assets"); - await tap(tester, "Load skybox", 1); - - await tap(tester, "Scene"); - await tap(tester, "Assets"); - await tap(tester, "Load IBL", 1); - - final Offset pointerLocation = - tester.getCenter(find.byType(ThermionWidget)); - TestPointer testPointer = TestPointer(1, PointerDeviceKind.mouse); - - // scroll/zoom - testPointer.hover(pointerLocation); - await tester.sendEventToBinding(testPointer.scroll(const Offset(0.0, 1.0))); - await tester.pumpAndSettle(); - await tester.sendEventToBinding(testPointer.scroll(const Offset(0.0, 1.0))); - await tester.pumpAndSettle(); - await _snapshot(tester, "zoomin"); - - // rotate - testPointer = - TestPointer(1, PointerDeviceKind.mouse, null, kTertiaryButton); - testPointer.hover(pointerLocation); - await tester.sendEventToBinding(testPointer.down(pointerLocation)); - await tester.pumpAndSettle(); - await tester.sendEventToBinding( - testPointer.move(pointerLocation + Offset(10.0, 10.0))); - await tester.pumpAndSettle(); - await tester.sendEventToBinding( - testPointer.move(pointerLocation + Offset(20.0, 20.0))); - await tester.pumpAndSettle(); - await tester.sendEventToBinding(testPointer.up()); - - await _snapshot(tester, "rotate", 2); - - // pan - testPointer = TestPointer(1, PointerDeviceKind.mouse, null, kPrimaryButton); - testPointer.hover(pointerLocation); - await tester.sendEventToBinding(testPointer.down(pointerLocation)); - await tester - .sendEventToBinding(testPointer.move(pointerLocation + Offset(0, 1.0))); - - for (int i = 0; i < 60; i++) { - await tester.sendEventToBinding(testPointer - .move(pointerLocation + Offset(i.toDouble() * 2, i.toDouble() * 2))); - await tester.pumpAndSettle(); - } - await tester.sendEventToBinding(testPointer.up()); - await tester.pumpAndSettle(); - - await _snapshot(tester, "pan"); - - await tap(tester, "Scene"); - await tap(tester, "Assets"); - await tap(tester, "Shapes"); - await tap(tester, "Transform to unit cube"); - - await tap(tester, "Scene"); - await tap(tester, "Assets"); - await tap(tester, "Shapes"); - await tap(tester, "Set position to 1, 1, -1"); - - await tap(tester, "Scene"); - await tap(tester, "Camera"); - await tap(tester, "Disable frustum culling"); - - await tap(tester, "Scene"); - await tap(tester, "Rendering"); - await tap(tester, "Set tone mapping to linear"); - - await tap(tester, "Scene"); - await tap(tester, "Camera"); - await tap(tester, 'Set to first camera in last added asset'); - - await tap(tester, "Move to last added asset"); - await tap(tester, "Move to 1, 1, -1"); - - await tap(tester, 'Toggle viewport size', 1); - await tap(tester, 'Toggle viewport size', 1); - await tap(tester, 'Toggle viewport size', 1); - }); -} diff --git a/examples/flutter/example/ios/.gitignore b/examples/flutter/example/ios/.gitignore deleted file mode 100644 index 7a7f9873..00000000 --- a/examples/flutter/example/ios/.gitignore +++ /dev/null @@ -1,34 +0,0 @@ -**/dgph -*.mode1v3 -*.mode2v3 -*.moved-aside -*.pbxuser -*.perspectivev3 -**/*sync/ -.sconsign.dblite -.tags* -**/.vagrant/ -**/DerivedData/ -Icon? -**/Pods/ -**/.symlinks/ -profile -xcuserdata -**/.generated/ -Flutter/App.framework -Flutter/Flutter.framework -Flutter/Flutter.podspec -Flutter/Generated.xcconfig -Flutter/ephemeral/ -Flutter/app.flx -Flutter/app.zip -Flutter/flutter_assets/ -Flutter/flutter_export_environment.sh -ServiceDefinitions.json -Runner/GeneratedPluginRegistrant.* - -# Exceptions to above rules. -!default.mode1v3 -!default.mode2v3 -!default.pbxuser -!default.perspectivev3 diff --git a/examples/flutter/example/ios/Flutter/AppFrameworkInfo.plist b/examples/flutter/example/ios/Flutter/AppFrameworkInfo.plist deleted file mode 100644 index 7c569640..00000000 --- a/examples/flutter/example/ios/Flutter/AppFrameworkInfo.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - App - CFBundleIdentifier - io.flutter.flutter.app - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - App - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1.0 - MinimumOSVersion - 12.0 - - diff --git a/examples/flutter/example/ios/Flutter/Debug.xcconfig b/examples/flutter/example/ios/Flutter/Debug.xcconfig deleted file mode 100644 index ec97fc6f..00000000 --- a/examples/flutter/example/ios/Flutter/Debug.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" -#include "Generated.xcconfig" diff --git a/examples/flutter/example/ios/Flutter/Release.xcconfig b/examples/flutter/example/ios/Flutter/Release.xcconfig deleted file mode 100644 index c4855bfe..00000000 --- a/examples/flutter/example/ios/Flutter/Release.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" -#include "Generated.xcconfig" diff --git a/examples/flutter/example/ios/Podfile b/examples/flutter/example/ios/Podfile deleted file mode 100644 index 3e44f9c6..00000000 --- a/examples/flutter/example/ios/Podfile +++ /dev/null @@ -1,44 +0,0 @@ -# Uncomment this line to define a global platform for your project -platform :ios, '13.0' - -# CocoaPods analytics sends network stats synchronously affecting flutter build latency. -ENV['COCOAPODS_DISABLE_STATS'] = 'true' - -project 'Runner', { - 'Debug' => :debug, - 'Profile' => :release, - 'Release' => :release, -} - -def flutter_root - generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__) - unless File.exist?(generated_xcode_build_settings_path) - raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first" - end - - File.foreach(generated_xcode_build_settings_path) do |line| - matches = line.match(/FLUTTER_ROOT\=(.*)/) - return matches[1].strip if matches - end - raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get" -end - -require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) - -flutter_ios_podfile_setup - -target 'Runner' do - use_frameworks! - use_modular_headers! - - flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) - target 'RunnerTests' do - inherit! :search_paths - end -end - -post_install do |installer| - installer.pods_project.targets.each do |target| - flutter_additional_ios_build_settings(target) - end -end diff --git a/examples/flutter/example/ios/Podfile.lock b/examples/flutter/example/ios/Podfile.lock deleted file mode 100644 index a4335a9c..00000000 --- a/examples/flutter/example/ios/Podfile.lock +++ /dev/null @@ -1,35 +0,0 @@ -PODS: - - Flutter (1.0.0) - - integration_test (0.0.1): - - Flutter - - path_provider_foundation (0.0.1): - - Flutter - - FlutterMacOS - - thermion_flutter (0.0.1): - - Flutter - -DEPENDENCIES: - - Flutter (from `Flutter`) - - integration_test (from `.symlinks/plugins/integration_test/ios`) - - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`) - - thermion_flutter (from `.symlinks/plugins/thermion_flutter/ios`) - -EXTERNAL SOURCES: - Flutter: - :path: Flutter - integration_test: - :path: ".symlinks/plugins/integration_test/ios" - path_provider_foundation: - :path: ".symlinks/plugins/path_provider_foundation/darwin" - thermion_flutter: - :path: ".symlinks/plugins/thermion_flutter/ios" - -SPEC CHECKSUMS: - Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 - integration_test: 252f60fa39af5e17c3aa9899d35d908a0721b573 - path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 - thermion_flutter: dd8d01cb3b3e6e9a612f5a1061a96be1e1c2f659 - -PODFILE CHECKSUM: a57f30d18f102dd3ce366b1d62a55ecbef2158e5 - -COCOAPODS: 1.15.2 diff --git a/examples/flutter/example/ios/Runner.xcodeproj/project.pbxproj b/examples/flutter/example/ios/Runner.xcodeproj/project.pbxproj deleted file mode 100644 index 0b85a8de..00000000 --- a/examples/flutter/example/ios/Runner.xcodeproj/project.pbxproj +++ /dev/null @@ -1,730 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 54; - objects = { - -/* Begin PBXBuildFile section */ - 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; - 18BA9BAB0A3151C581637BC5 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 913673949B5C862688BEB411 /* Pods_Runner.framework */; }; - 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; - 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; - 44B597F813CB15F7F7362D7F /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E559449EFA9688E4362535A /* Pods_RunnerTests.framework */; }; - 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; - 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; - 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; - 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 331C8085294A63A400263BE5 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 97C146E61CF9000F007C117D /* Project object */; - proxyType = 1; - remoteGlobalIDString = 97C146ED1CF9000F007C117D; - remoteInfo = Runner; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 9705A1C41CF9048500538489 /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; - 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; - 24862DEBD358E9187AF1957F /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; - 28E01474E257DCB9E5A9F16D /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; - 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; - 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 34F6152C42E578942239D66E /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; - 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; - 3E559449EFA9688E4362535A /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 71B8727E9D9717E2EC7D0632 /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; - 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; - 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; - 913673949B5C862688BEB411 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; - 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; - 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; - 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - C4E435CCE2B189B896F861F8 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; - FA604CE866685A80B2F7D1EA /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 97C146EB1CF9000F007C117D /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 18BA9BAB0A3151C581637BC5 /* Pods_Runner.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - E5F93109740F1CF8EAB7C740 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 44B597F813CB15F7F7362D7F /* Pods_RunnerTests.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 331C8082294A63A400263BE5 /* RunnerTests */ = { - isa = PBXGroup; - children = ( - 331C807B294A618700263BE5 /* RunnerTests.swift */, - ); - path = RunnerTests; - sourceTree = ""; - }; - 3762816736B339B0521FA963 /* Pods */ = { - isa = PBXGroup; - children = ( - FA604CE866685A80B2F7D1EA /* Pods-Runner.debug.xcconfig */, - C4E435CCE2B189B896F861F8 /* Pods-Runner.release.xcconfig */, - 24862DEBD358E9187AF1957F /* Pods-Runner.profile.xcconfig */, - 34F6152C42E578942239D66E /* Pods-RunnerTests.debug.xcconfig */, - 28E01474E257DCB9E5A9F16D /* Pods-RunnerTests.release.xcconfig */, - 71B8727E9D9717E2EC7D0632 /* Pods-RunnerTests.profile.xcconfig */, - ); - path = Pods; - sourceTree = ""; - }; - 9740EEB11CF90186004384FC /* Flutter */ = { - isa = PBXGroup; - children = ( - 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, - 9740EEB21CF90195004384FC /* Debug.xcconfig */, - 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, - 9740EEB31CF90195004384FC /* Generated.xcconfig */, - ); - name = Flutter; - sourceTree = ""; - }; - 97C146E51CF9000F007C117D = { - isa = PBXGroup; - children = ( - 9740EEB11CF90186004384FC /* Flutter */, - 97C146F01CF9000F007C117D /* Runner */, - 97C146EF1CF9000F007C117D /* Products */, - 331C8082294A63A400263BE5 /* RunnerTests */, - 3762816736B339B0521FA963 /* Pods */, - F604EC48BBC88B9D456C52C9 /* Frameworks */, - ); - sourceTree = ""; - }; - 97C146EF1CF9000F007C117D /* Products */ = { - isa = PBXGroup; - children = ( - 97C146EE1CF9000F007C117D /* Runner.app */, - 331C8081294A63A400263BE5 /* RunnerTests.xctest */, - ); - name = Products; - sourceTree = ""; - }; - 97C146F01CF9000F007C117D /* Runner */ = { - isa = PBXGroup; - children = ( - 97C146FA1CF9000F007C117D /* Main.storyboard */, - 97C146FD1CF9000F007C117D /* Assets.xcassets */, - 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, - 97C147021CF9000F007C117D /* Info.plist */, - 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, - 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, - 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, - 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, - ); - path = Runner; - sourceTree = ""; - }; - F604EC48BBC88B9D456C52C9 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 913673949B5C862688BEB411 /* Pods_Runner.framework */, - 3E559449EFA9688E4362535A /* Pods_RunnerTests.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 331C8080294A63A400263BE5 /* RunnerTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; - buildPhases = ( - 966EE0BC7D8B7994F46B60D0 /* [CP] Check Pods Manifest.lock */, - 331C807D294A63A400263BE5 /* Sources */, - 331C807F294A63A400263BE5 /* Resources */, - E5F93109740F1CF8EAB7C740 /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - 331C8086294A63A400263BE5 /* PBXTargetDependency */, - ); - name = RunnerTests; - productName = RunnerTests; - productReference = 331C8081294A63A400263BE5 /* RunnerTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - 97C146ED1CF9000F007C117D /* Runner */ = { - isa = PBXNativeTarget; - buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; - buildPhases = ( - F7EDF8FA795C5CA2175B4CDF /* [CP] Check Pods Manifest.lock */, - 9740EEB61CF901F6004384FC /* Run Script */, - 97C146EA1CF9000F007C117D /* Sources */, - 97C146EB1CF9000F007C117D /* Frameworks */, - 97C146EC1CF9000F007C117D /* Resources */, - 9705A1C41CF9048500538489 /* Embed Frameworks */, - 3B06AD1E1E4923F5004D2608 /* Thin Binary */, - ED098149A1804FAFC41C252E /* [CP] Embed Pods Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = Runner; - productName = Runner; - productReference = 97C146EE1CF9000F007C117D /* Runner.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 97C146E61CF9000F007C117D /* Project object */ = { - isa = PBXProject; - attributes = { - BuildIndependentTargetsInParallel = YES; - LastUpgradeCheck = 1510; - ORGANIZATIONNAME = ""; - TargetAttributes = { - 331C8080294A63A400263BE5 = { - CreatedOnToolsVersion = 14.0; - TestTargetID = 97C146ED1CF9000F007C117D; - }; - 97C146ED1CF9000F007C117D = { - CreatedOnToolsVersion = 7.3.1; - LastSwiftMigration = 1100; - }; - }; - }; - buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 97C146E51CF9000F007C117D; - productRefGroup = 97C146EF1CF9000F007C117D /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 97C146ED1CF9000F007C117D /* Runner */, - 331C8080294A63A400263BE5 /* RunnerTests */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 331C807F294A63A400263BE5 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 97C146EC1CF9000F007C117D /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, - 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, - 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, - 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { - isa = PBXShellScriptBuildPhase; - alwaysOutOfDate = 1; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", - ); - name = "Thin Binary"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; - }; - 966EE0BC7D8B7994F46B60D0 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - 9740EEB61CF901F6004384FC /* Run Script */ = { - isa = PBXShellScriptBuildPhase; - alwaysOutOfDate = 1; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Run Script"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; - }; - ED098149A1804FAFC41C252E /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Embed Pods Frameworks"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - F7EDF8FA795C5CA2175B4CDF /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 331C807D294A63A400263BE5 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 97C146EA1CF9000F007C117D /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, - 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 331C8086294A63A400263BE5 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 97C146ED1CF9000F007C117D /* Runner */; - targetProxy = 331C8085294A63A400263BE5 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - 97C146FA1CF9000F007C117D /* Main.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 97C146FB1CF9000F007C117D /* Base */, - ); - name = Main.storyboard; - sourceTree = ""; - }; - 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 97C147001CF9000F007C117D /* Base */, - ); - name = LaunchScreen.storyboard; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 249021D3217E4FDB00AE95B9 /* Profile */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - SUPPORTED_PLATFORMS = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Profile; - }; - 249021D4217E4FDB00AE95B9 /* Profile */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; - DEVELOPMENT_TEAM = TM2B4SJXNJ; - ENABLE_BITCODE = NO; - INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = "app.flutter-filament.example"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; - SWIFT_VERSION = 5.0; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = Profile; - }; - 331C8088294A63A400263BE5 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 34F6152C42E578942239D66E /* Pods-RunnerTests.debug.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - GENERATE_INFOPLIST_FILE = YES; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = app.polyvox.example.RunnerTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; - }; - name = Debug; - }; - 331C8089294A63A400263BE5 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 28E01474E257DCB9E5A9F16D /* Pods-RunnerTests.release.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - GENERATE_INFOPLIST_FILE = YES; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = app.polyvox.example.RunnerTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 5.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; - }; - name = Release; - }; - 331C808A294A63A400263BE5 /* Profile */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 71B8727E9D9717E2EC7D0632 /* Pods-RunnerTests.profile.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - GENERATE_INFOPLIST_FILE = YES; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = app.polyvox.example.RunnerTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 5.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; - }; - name = Profile; - }; - 97C147031CF9000F007C117D /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 97C147041CF9000F007C117D /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - SUPPORTED_PLATFORMS = iphoneos; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 97C147061CF9000F007C117D /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; - DEVELOPMENT_TEAM = TM2B4SJXNJ; - ENABLE_BITCODE = NO; - INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = "app.flutter-filament.example"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = Debug; - }; - 97C147071CF9000F007C117D /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; - DEVELOPMENT_TEAM = TM2B4SJXNJ; - ENABLE_BITCODE = NO; - INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = "app.flutter-filament.example"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; - SWIFT_VERSION = 5.0; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 331C8088294A63A400263BE5 /* Debug */, - 331C8089294A63A400263BE5 /* Release */, - 331C808A294A63A400263BE5 /* Profile */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 97C147031CF9000F007C117D /* Debug */, - 97C147041CF9000F007C117D /* Release */, - 249021D3217E4FDB00AE95B9 /* Profile */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 97C147061CF9000F007C117D /* Debug */, - 97C147071CF9000F007C117D /* Release */, - 249021D4217E4FDB00AE95B9 /* Profile */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 97C146E61CF9000F007C117D /* Project object */; -} diff --git a/examples/flutter/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/examples/flutter/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 919434a6..00000000 --- a/examples/flutter/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/examples/flutter/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/examples/flutter/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d98100..00000000 --- a/examples/flutter/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/examples/flutter/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/examples/flutter/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings deleted file mode 100644 index f9b0d7c5..00000000 --- a/examples/flutter/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings +++ /dev/null @@ -1,8 +0,0 @@ - - - - - PreviewsEnabled - - - diff --git a/examples/flutter/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/examples/flutter/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme deleted file mode 100644 index 8e3ca5df..00000000 --- a/examples/flutter/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/flutter/example/ios/Runner.xcworkspace/contents.xcworkspacedata b/examples/flutter/example/ios/Runner.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 21a3cc14..00000000 --- a/examples/flutter/example/ios/Runner.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - diff --git a/examples/flutter/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/examples/flutter/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d98100..00000000 --- a/examples/flutter/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/examples/flutter/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/examples/flutter/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings deleted file mode 100644 index f9b0d7c5..00000000 --- a/examples/flutter/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings +++ /dev/null @@ -1,8 +0,0 @@ - - - - - PreviewsEnabled - - - diff --git a/examples/flutter/example/ios/Runner/AppDelegate.swift b/examples/flutter/example/ios/Runner/AppDelegate.swift deleted file mode 100644 index 62666446..00000000 --- a/examples/flutter/example/ios/Runner/AppDelegate.swift +++ /dev/null @@ -1,13 +0,0 @@ -import Flutter -import UIKit - -@main -@objc class AppDelegate: FlutterAppDelegate { - override func application( - _ application: UIApplication, - didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? - ) -> Bool { - GeneratedPluginRegistrant.register(with: self) - return super.application(application, didFinishLaunchingWithOptions: launchOptions) - } -} diff --git a/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index d36b1fab..00000000 --- a/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,122 +0,0 @@ -{ - "images" : [ - { - "size" : "20x20", - "idiom" : "iphone", - "filename" : "Icon-App-20x20@2x.png", - "scale" : "2x" - }, - { - "size" : "20x20", - "idiom" : "iphone", - "filename" : "Icon-App-20x20@3x.png", - "scale" : "3x" - }, - { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "Icon-App-29x29@1x.png", - "scale" : "1x" - }, - { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "Icon-App-29x29@2x.png", - "scale" : "2x" - }, - { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "Icon-App-29x29@3x.png", - "scale" : "3x" - }, - { - "size" : "40x40", - "idiom" : "iphone", - "filename" : "Icon-App-40x40@2x.png", - "scale" : "2x" - }, - { - "size" : "40x40", - "idiom" : "iphone", - "filename" : "Icon-App-40x40@3x.png", - "scale" : "3x" - }, - { - "size" : "60x60", - "idiom" : "iphone", - "filename" : "Icon-App-60x60@2x.png", - "scale" : "2x" - }, - { - "size" : "60x60", - "idiom" : "iphone", - "filename" : "Icon-App-60x60@3x.png", - "scale" : "3x" - }, - { - "size" : "20x20", - "idiom" : "ipad", - "filename" : "Icon-App-20x20@1x.png", - "scale" : "1x" - }, - { - "size" : "20x20", - "idiom" : "ipad", - "filename" : "Icon-App-20x20@2x.png", - "scale" : "2x" - }, - { - "size" : "29x29", - "idiom" : "ipad", - "filename" : "Icon-App-29x29@1x.png", - "scale" : "1x" - }, - { - "size" : "29x29", - "idiom" : "ipad", - "filename" : "Icon-App-29x29@2x.png", - "scale" : "2x" - }, - { - "size" : "40x40", - "idiom" : "ipad", - "filename" : "Icon-App-40x40@1x.png", - "scale" : "1x" - }, - { - "size" : "40x40", - "idiom" : "ipad", - "filename" : "Icon-App-40x40@2x.png", - "scale" : "2x" - }, - { - "size" : "76x76", - "idiom" : "ipad", - "filename" : "Icon-App-76x76@1x.png", - "scale" : "1x" - }, - { - "size" : "76x76", - "idiom" : "ipad", - "filename" : "Icon-App-76x76@2x.png", - "scale" : "2x" - }, - { - "size" : "83.5x83.5", - "idiom" : "ipad", - "filename" : "Icon-App-83.5x83.5@2x.png", - "scale" : "2x" - }, - { - "size" : "1024x1024", - "idiom" : "ios-marketing", - "filename" : "Icon-App-1024x1024@1x.png", - "scale" : "1x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} diff --git a/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png deleted file mode 100644 index dc9ada47..00000000 Binary files a/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png and /dev/null differ diff --git a/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png deleted file mode 100644 index 7353c41e..00000000 Binary files a/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png and /dev/null differ diff --git a/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png deleted file mode 100644 index 797d452e..00000000 Binary files a/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png and /dev/null differ diff --git a/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png deleted file mode 100644 index 6ed2d933..00000000 Binary files a/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png and /dev/null differ diff --git a/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png deleted file mode 100644 index 4cd7b009..00000000 Binary files a/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png and /dev/null differ diff --git a/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png deleted file mode 100644 index fe730945..00000000 Binary files a/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png and /dev/null differ diff --git a/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png deleted file mode 100644 index 321773cd..00000000 Binary files a/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png and /dev/null differ diff --git a/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png deleted file mode 100644 index 797d452e..00000000 Binary files a/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png and /dev/null differ diff --git a/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png deleted file mode 100644 index 502f463a..00000000 Binary files a/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png and /dev/null differ diff --git a/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png deleted file mode 100644 index 0ec30343..00000000 Binary files a/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png and /dev/null differ diff --git a/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png deleted file mode 100644 index 0ec30343..00000000 Binary files a/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png and /dev/null differ diff --git a/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png deleted file mode 100644 index e9f5fea2..00000000 Binary files a/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png and /dev/null differ diff --git a/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png deleted file mode 100644 index 84ac32ae..00000000 Binary files a/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png and /dev/null differ diff --git a/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png deleted file mode 100644 index 8953cba0..00000000 Binary files a/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png and /dev/null differ diff --git a/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png deleted file mode 100644 index 0467bf12..00000000 Binary files a/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png and /dev/null differ diff --git a/examples/flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/examples/flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json deleted file mode 100644 index 0bedcf2f..00000000 --- a/examples/flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "LaunchImage.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "LaunchImage@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "LaunchImage@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} diff --git a/examples/flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/examples/flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png deleted file mode 100644 index 9da19eac..00000000 Binary files a/examples/flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png and /dev/null differ diff --git a/examples/flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/examples/flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png deleted file mode 100644 index 9da19eac..00000000 Binary files a/examples/flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png and /dev/null differ diff --git a/examples/flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/examples/flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png deleted file mode 100644 index 9da19eac..00000000 Binary files a/examples/flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png and /dev/null differ diff --git a/examples/flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/examples/flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md deleted file mode 100644 index 89c2725b..00000000 --- a/examples/flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# Launch Screen Assets - -You can customize the launch screen with your own desired assets by replacing the image files in this directory. - -You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. \ No newline at end of file diff --git a/examples/flutter/example/ios/Runner/Base.lproj/LaunchScreen.storyboard b/examples/flutter/example/ios/Runner/Base.lproj/LaunchScreen.storyboard deleted file mode 100644 index f2e259c7..00000000 --- a/examples/flutter/example/ios/Runner/Base.lproj/LaunchScreen.storyboard +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/flutter/example/ios/Runner/Base.lproj/Main.storyboard b/examples/flutter/example/ios/Runner/Base.lproj/Main.storyboard deleted file mode 100644 index f3c28516..00000000 --- a/examples/flutter/example/ios/Runner/Base.lproj/Main.storyboard +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/flutter/example/ios/Runner/Info.plist b/examples/flutter/example/ios/Runner/Info.plist deleted file mode 100644 index f15383a8..00000000 --- a/examples/flutter/example/ios/Runner/Info.plist +++ /dev/null @@ -1,49 +0,0 @@ - - - - - CADisableMinimumFrameDurationOnPhone - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleDisplayName - Example - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - example - CFBundlePackageType - APPL - CFBundleShortVersionString - $(FLUTTER_BUILD_NAME) - CFBundleSignature - ???? - CFBundleVersion - $(FLUTTER_BUILD_NUMBER) - LSRequiresIPhoneOS - - UIApplicationSupportsIndirectInputEvents - - UILaunchStoryboardName - LaunchScreen - UIMainStoryboardFile - Main - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/examples/flutter/example/ios/Runner/Runner-Bridging-Header.h b/examples/flutter/example/ios/Runner/Runner-Bridging-Header.h deleted file mode 100644 index 308a2a56..00000000 --- a/examples/flutter/example/ios/Runner/Runner-Bridging-Header.h +++ /dev/null @@ -1 +0,0 @@ -#import "GeneratedPluginRegistrant.h" diff --git a/examples/flutter/example/ios/RunnerTests/RunnerTests.swift b/examples/flutter/example/ios/RunnerTests/RunnerTests.swift deleted file mode 100644 index 86a7c3b1..00000000 --- a/examples/flutter/example/ios/RunnerTests/RunnerTests.swift +++ /dev/null @@ -1,12 +0,0 @@ -import Flutter -import UIKit -import XCTest - -class RunnerTests: XCTestCase { - - func testExample() { - // If you add code to the Runner application, consider adding tests here. - // See https://developer.apple.com/documentation/xctest for more information about using XCTest. - } - -} diff --git a/examples/flutter/example/lib/camera_matrix_overlay.dart b/examples/flutter/example/lib/camera_matrix_overlay.dart deleted file mode 100644 index a2c4c17d..00000000 --- a/examples/flutter/example/lib/camera_matrix_overlay.dart +++ /dev/null @@ -1,139 +0,0 @@ -import 'dart:async'; - -import 'package:flutter/material.dart'; -import 'package:flutter/widgets.dart'; -import 'package:thermion_flutter/thermion_flutter.dart'; -import 'package:vector_math/vector_math_64.dart' as v; -import 'package:thermion_dart/thermion_dart/thermion_viewer.dart'; - -class CameraMatrixOverlay extends StatefulWidget { - final ThermionViewer controller; - final bool showProjectionMatrices; - - const CameraMatrixOverlay( - {super.key, - required this.controller, - required this.showProjectionMatrices}); - - @override - State createState() => _CameraMatrixOverlayState(); -} - -class _CameraMatrixOverlayState extends State { - Timer? _cameraTimer; - String? _cameraPosition; - String? _cameraRotation; - - String? _cameraProjectionMatrix; - String? _cameraCullingProjectionMatrix; - - void _tick(Timer timer) async { - var cameraPosition = await widget.controller.getCameraPosition(); - var cameraRotation = await widget.controller.getCameraRotation(); - - _cameraPosition = - "${cameraPosition.storage.map((v) => v.toStringAsFixed(2))}"; - _cameraRotation = - "${cameraRotation.storage.map((v) => v.toStringAsFixed(2))}"; - - if (widget.showProjectionMatrices) { - var projMatrix = await widget.controller.getCameraProjectionMatrix(); - var cullingMatrix = - await widget.controller.getCameraCullingProjectionMatrix(); - - _cameraProjectionMatrix = - projMatrix.storage.map((v) => v.toStringAsFixed(2)).join(","); - _cameraCullingProjectionMatrix = - cullingMatrix.storage.map((v) => v.toStringAsFixed(2)).join(","); - _getFrustum(); - } - - setState(() {}); - } - - void _updateTimer() async { - _cameraTimer?.cancel(); - await widget.controller.initialized; - } - - v.Frustum? _frustum; - - void _getFrustum() async { - _frustum = await widget.controller.getCameraFrustum(); - } - - @override - void initState() { - super.initState(); - _updateTimer(); - } - - @override - void didUpdateWidget(CameraMatrixOverlay oldWidget) { - super.didUpdateWidget(oldWidget); - setState(() {}); - } - - @override - void dispose() { - super.dispose(); - _cameraTimer?.cancel(); - } - - @override - Widget build(BuildContext context) { - return Container( - decoration: BoxDecoration( - color: Colors.black.withOpacity(0.5), - borderRadius: BorderRadius.circular(29)), - padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 5), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisSize: MainAxisSize.min, - children: [ - Text("Camera : $_cameraPosition $_cameraRotation", - style: - const TextStyle(color: Colors.white, fontSize: 10)), - // widget.showProjectionMatrices - // ? Text("Projection matrix : $_cameraProjectionMatrix", - // style: const TextStyle(color: Colors.white, fontSize: 12)) - // : Container(), - // widget.showProjectionMatrices - // ? Text("Culling matrix : $_cameraCullingProjectionMatrix", - // style: const TextStyle(color: Colors.white, fontSize: 12)) - // : Container(), - widget.showProjectionMatrices - ? const Text("Frustum matrix", - style: TextStyle(color: Colors.white, fontSize: 10)) - : Container() - ] + - (_frustum == null - ? [] - : [ - _frustum!.plane0, - _frustum!.plane1, - _frustum!.plane2, - _frustum!.plane3, - _frustum!.plane4, - _frustum!.plane5 - ] - .map((plane) => Row( - children: [ - plane.normal.x, - plane.normal.y, - plane.normal.z, - plane.constant - ] - .map((v) => Text( - v.toStringAsFixed(2) + " ", - style: const TextStyle( - color: Colors.white, - fontSize: 10), - textAlign: TextAlign.center, - )) - .cast() - .toList())) - .cast() - .toList()))); - } -} diff --git a/examples/flutter/example/lib/example_viewport.dart b/examples/flutter/example/lib/example_viewport.dart deleted file mode 100644 index 4be74ea2..00000000 --- a/examples/flutter/example/lib/example_viewport.dart +++ /dev/null @@ -1,35 +0,0 @@ -import 'package:flutter/widgets.dart'; -import 'package:thermion_flutter/thermion/widgets/camera/entity_controller_mouse_widget.dart'; -import 'package:thermion_flutter/thermion_flutter.dart'; -import 'package:thermion_dart/thermion_dart/entities/entity_transform_controller.dart'; - - -class ExampleViewport extends StatelessWidget { - final ThermionViewer? viewer; - final EntityTransformController? entityTransformController; - final EdgeInsets padding; - final FocusNode keyboardFocusNode; - - const ExampleViewport( - {super.key, - required this.viewer, - required this.padding, - required this.keyboardFocusNode, - this.entityTransformController}); - - @override - Widget build(BuildContext context) { - return viewer != null - ? Padding( - padding: padding, - child: EntityTransformMouseControllerWidget( - transformController: entityTransformController, - child: ThermionGestureDetector( - showControlOverlay: true, - controller: viewer!, - child: ThermionWidget( - viewer: viewer!, - )))) - : Container(); - } -} diff --git a/examples/flutter/example/lib/main.dart b/examples/flutter/example/lib/main.dart deleted file mode 100644 index 4ab80781..00000000 --- a/examples/flutter/example/lib/main.dart +++ /dev/null @@ -1,196 +0,0 @@ -import 'dart:async'; -import 'package:flutter/material.dart'; -import 'package:thermion_flutter/thermion/widgets/debug/entity_list_widget.dart'; -import 'package:thermion_flutter_example/menus/controller_menu.dart'; -import 'package:thermion_flutter_example/example_viewport.dart'; -import 'package:thermion_flutter_example/menus/scene_menu.dart'; -import 'package:thermion_flutter/thermion_flutter.dart'; - -const loadDefaultScene = bool.hasEnvironment('--load-default-scene'); - -void main() async { - runApp(const MyApp()); -} - -class MyApp extends StatefulWidget { - const MyApp({Key? key}) : super(key: key); - - @override - State createState() => _MyAppState(); -} - -class _MyAppState extends State with SingleTickerProviderStateMixin { - @override - Widget build(BuildContext context) { - return MaterialApp( - theme: ThemeData( - useMaterial3: true, - textTheme: const TextTheme( - labelLarge: TextStyle(fontSize: 12), - displayMedium: TextStyle(fontSize: 12), - headlineMedium: const TextStyle(fontSize: 12), - titleMedium: TextStyle(fontSize: 12), - bodyLarge: TextStyle(fontSize: 14), - bodyMedium: TextStyle(fontSize: 12))), - // showPerformanceOverlay: true, - home: const Scaffold( - backgroundColor: Color(0x00000000), body: ExampleWidget())); - } -} - -class ExampleWidget extends StatefulWidget { - const ExampleWidget({super.key}); - - @override - State createState() { - return ExampleWidgetState(); - } -} - -enum MenuType { controller, assets, camera, misc } - -class ExampleWidgetState extends State { - ThermionViewer? _viewer; - - EdgeInsets _viewportMargin = EdgeInsets.zero; - - // these are all the options that can be set via the menu - // we store them here - static bool rendering = false; - static bool recording = false; - static int framerate = 60; - static bool postProcessing = false; - static bool antiAliasingMsaa = false; - static bool antiAliasingTaa = false; - static bool antiAliasingFxaa = false; - static bool frustumCulling = true; - - static double zoomSpeed = 0.01; - static double orbitSpeedX = 0.01; - static double orbitSpeedY = 0.01; - - static bool hasSkybox = false; - static bool coneHidden = false; - - static bool loop = false; - static final showProjectionMatrices = ValueNotifier(false); - - late StreamSubscription _listener; - - @override - void initState() { - super.initState(); - } - - @override - void dispose() { - super.dispose(); - _listener.cancel(); - } - - EntityTransformController? _transformController; - - final _sharedFocusNode = FocusNode(); - - @override - Widget build(BuildContext context) { - return Stack(fit: StackFit.expand, children: [ - if (_viewer != null) - Positioned.fill( - child: ExampleViewport( - viewer: _viewer!, - entityTransformController: _transformController, - padding: _viewportMargin, - keyboardFocusNode: _sharedFocusNode), - ), - Positioned( - bottom: 30, - left: 0, - right: 10, - height: 30, - child: Container( - height: 30, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(30), - color: Colors.white.withOpacity(0.25), - ), - padding: const EdgeInsets.symmetric(horizontal: 10), - child: - Row(crossAxisAlignment: CrossAxisAlignment.center, children: [ - ViewerMenu( - sharedFocusNode: _sharedFocusNode, - viewer: _viewer, - onToggleViewport: () { - setState(() { - _viewportMargin = (_viewportMargin == EdgeInsets.zero) - ? const EdgeInsets.all(30) - : EdgeInsets.zero; - }); - }, - onViewerDestroyed: () { - setState(() { - _viewer = null; - }); - }, - onViewerCreated: (v) { - setState(() { - _viewer = v; - }); - }), - SceneMenu( - sharedFocusNode: _sharedFocusNode, - controller: _viewer, - ), - GestureDetector( - onTap: () async { - await _viewer! - .loadGlb('assets/shapes/shapes.glb', numInstances: 1); - }, - child: Container( - color: Colors.transparent, - child: const Text("shapes.glb"))), - const SizedBox(width: 5), - GestureDetector( - onTap: () async { - await _viewer!.loadGlb('assets/1.glb'); - }, - child: Container( - color: Colors.transparent, child: const Text("1.glb"))), - const SizedBox(width: 5), - GestureDetector( - onTap: () async { - await _viewer!.loadGlb('assets/2.glb'); - }, - child: Container( - color: Colors.transparent, child: const Text("2.glb"))), - const SizedBox(width: 5), - GestureDetector( - onTap: () async { - await _viewer!.loadGlb('assets/3.glb'); - }, - child: Container( - color: Colors.transparent, child: const Text("3.glb"))), - Expanded(child: Container()), - ]))), - if (_viewer != null) ...[ - Positioned( - top: 10, - left: 10, - width: 200, - height: 200, - child: Container(child: EntityListWidget(controller: _viewer!))), - // Padding( - // padding: const EdgeInsets.only(top: 10, left: 20, right: 20), - // child: ValueListenableBuilder( - // valueListenable: showProjectionMatrices, - // builder: (ctx, value, child) => CameraMatrixOverlay( - // controller: _viewer!, showProjectionMatrices: value)), - // ), - // Align( - // alignment: Alignment.topRight, - // child: PickerResultWidget(controller: _viewer!), - // ) - ] - ]); - } -} diff --git a/examples/flutter/example/lib/menus/asset_submenu.dart b/examples/flutter/example/lib/menus/asset_submenu.dart deleted file mode 100644 index 78705f9c..00000000 --- a/examples/flutter/example/lib/menus/asset_submenu.dart +++ /dev/null @@ -1,263 +0,0 @@ -import 'dart:math'; - -import 'package:flutter/material.dart'; -import 'package:thermion_flutter/thermion_flutter.dart'; -import 'package:animation_tools_dart/animation_tools_dart.dart'; -import 'package:thermion_flutter_example/main.dart'; -import 'package:vector_math/vector_math_64.dart' as v; -import 'package:thermion_dart/thermion_dart/thermion_viewer.dart'; - -class AssetSubmenu extends StatefulWidget { - final ThermionViewer viewer; - const AssetSubmenu({super.key, required this.viewer}); - - @override - State createState() => _AssetSubmenuState(); -} - -class _AssetSubmenuState extends State { - @override - void initState() { - super.initState(); - } - - Widget _shapesSubmenu() { - var children = [ - MenuItemButton( - closeOnActivate: false, - onPressed: () async { - var entity = await widget.viewer.getChildEntity( - widget.viewer.scene.listEntities().last, "Cylinder"); - await showDialog( - context: context, - builder: (BuildContext context) { - return Center( - child: Container( - color: Colors.white, child: Text(entity.toString()))); - }); - }, - child: const Text('Find Cylinder entity by name')), - MenuItemButton( - onPressed: () async { - widget.viewer.setPosition( - widget.viewer.scene.listEntities().last, - 1.0, - 1.0, - -1.0); - }, - child: const Text('Set position to 1, 1, -1'), - ), - MenuItemButton( - onPressed: () async { - final color = Colors.purple; - widget.viewer.setMaterialColor( - widget.viewer.scene.listEntities().last, - "Cone", - 0, - color.red / 255.0, - color.green / 255.0, - color.blue / 255.0, - 1.0); - }, - child: const Text("Set cone material color to purple")), - ]; - - return SubmenuButton(menuChildren: children, child: const Text("Shapes")); - } - - Widget _geometrySubmenu() { - return SubmenuButton( - menuChildren: [ - MenuItemButton( - onPressed: () async { - var verts = [ - -1.0, - 0.0, - -1.0, - -1.0, - 0.0, - 1.0, - 1.0, - 0.0, - 1.0, - 1.0, - 0.0, - -1.0, - ]; - var indices = [0, 1, 2, 2, 3, 0]; - var geom = await widget.viewer.createGeometry( - verts, indices, - materialPath: "asset://assets/solidcolor.filamat"); - }, - child: const Text("Quad")), - MenuItemButton( - onPressed: () async { - await widget.viewer.createGeometry([ - 0, - 0, - 0, - 1, - 0, - 0, - ], [ - 0, - 1 - ], primitiveType: PrimitiveType.LINES); - }, - child: const Text("Line")) - ], - child: const Text("Custom Geometry"), - ); - } - - @override - Widget build(BuildContext context) { - return SubmenuButton( - menuChildren: [ - _shapesSubmenu(), - _geometrySubmenu(), - MenuItemButton( - onPressed: () async { - await widget.viewer.addLight( - LightType.DIRECTIONAL, 6500, 100000, 0, 1, 0, 0, -1, 0); - }, - child: const Text("Add directional light"), - ), - MenuItemButton( - onPressed: () async { - await widget.viewer.addLight( - LightType.POINT, 6500, 100000, 0, 1, 0, 0, -1, 0, - falloffRadius: 1.0); - }, - child: const Text("Add point light"), - ), - MenuItemButton( - onPressed: () async { - await widget.viewer.addLight( - LightType.SPOT, 6500, 1000000, 0, 0, 0, 0, 1, 0, - spotLightConeInner: 0.1, - spotLightConeOuter: 0.4, - falloffRadius: 100.0); - }, - child: const Text("Add spot light"), - ), - MenuItemButton( - onPressed: () async { - await widget.viewer.clearLights(); - }, - child: const Text("Clear lights"), - ), - MenuItemButton( - onPressed: () { - final color = const Color(0xAA73C9FA); - widget.viewer.setBackgroundColor(color.red / 255.0, - color.green / 255.0, color.blue / 255.0, 1.0); - }, - child: const Text("Set background color")), - MenuItemButton( - onPressed: () { - widget.viewer - .setBackgroundImage('assets/background.ktx'); - }, - child: const Text("Load background image")), - MenuItemButton( - onPressed: () { - widget.viewer.setBackgroundImage( - 'assets/background.ktx', - fillHeight: true); - }, - child: const Text("Load background image (fill height)")), - MenuItemButton( - onPressed: () { - if (ExampleWidgetState.hasSkybox) { - widget.viewer.removeSkybox(); - } else { - widget.viewer - .loadSkybox('assets/default_env/default_env_skybox.ktx'); - } - ExampleWidgetState.hasSkybox = !ExampleWidgetState.hasSkybox; - }, - child: Text(ExampleWidgetState.hasSkybox - ? 'Remove skybox' - : 'Load skybox')), - MenuItemButton( - onPressed: () { - widget.viewer - .loadIbl('assets/default_env/default_env_ibl.ktx'); - }, - child: const Text('Load IBL')), - MenuItemButton( - onPressed: () { - widget.viewer.removeIbl(); - }, - child: const Text('Remove IBL')), - MenuItemButton( - onPressed: () async { - await widget.viewer.clearEntities(); - }, - child: const Text('Clear assets')), - ], - child: const Text("Assets"), - ); - } -} - -// _item(() async { -// var frameData = Float32List.fromList( -// List.generate(120, (i) => i / 120).expand((x) { -// var vals = List.filled(7, x); -// vals[3] = 1.0; -// // vals[4] = 0; -// vals[5] = 0; -// vals[6] = 0; -// return vals; -// }).toList()); - -// widget.controller!.setBoneAnimation( -// _shapes!, -// BoneAnimationData( -// "Bone.001", ["Cube.001"], frameData, 1000.0 / 60.0)); -// // , -// // "Bone.001", -// // "Cube.001", -// // BoneTransform([Vec3(x: 0, y: 0.0, z: 0.0)], -// // [Quaternion(x: 1, y: 1, z: 1, w: 1)])); -// }, 'construct bone animation'), - -// _item(() async { -// var morphs = await widget.controller! -// .getMorphTargetNames(_shapes!, "Cylinder"); -// final animation = AnimationBuilder( -// availableMorphs: morphs, -// framerate: 30, -// meshName: "Cylinder") -// .setDuration(4) -// .setMorphTargets(["Key 1", "Key 2"]) -// .interpolateMorphWeights(0, 4, 0, 1) -// .build(); -// widget.controller!.setMorphAnimationData(_shapes!, animation); -// }, "animate cylinder morph weights #1 and #2"), -// _item(() async { -// var morphs = await widget.controller! -// .getMorphTargetNames(_shapes!, "Cylinder"); -// final animation = AnimationBuilder( -// availableMorphs: morphs, -// framerate: 30, -// meshName: "Cylinder") -// .setDuration(4) -// .setMorphTargets(["Key 3", "Key 4"]) -// .interpolateMorphWeights(0, 4, 0, 1) -// .build(); -// widget.controller!.setMorphAnimationData(_shapes!, animation); -// }, "animate cylinder morph weights #3 and #4"), -// _item(() async { -// var morphs = await widget.controller! -// .getMorphTargetNames(_shapes!, "Cube"); -// final animation = AnimationBuilder( -// availableMorphs: morphs, framerate: 30, meshName: "Cube") -// .setDuration(4) -// .setMorphTargets(["Key 1", "Key 2"]) -// .interpolateMorphWeights(0, 4, 0, 1) -// .build(); -// widget.controller!.setMorphAnimationData(_shapes!, animation); -// }, "animate shapes morph weights #1 and #2"), diff --git a/examples/flutter/example/lib/menus/camera_submenu.dart b/examples/flutter/example/lib/menus/camera_submenu.dart deleted file mode 100644 index 30033684..00000000 --- a/examples/flutter/example/lib/menus/camera_submenu.dart +++ /dev/null @@ -1,224 +0,0 @@ -import 'dart:async'; -import 'dart:math'; - -import 'package:flutter/material.dart'; -import 'package:vector_math/vector_math_64.dart' as v; -import 'package:thermion_flutter/thermion_flutter.dart'; -import 'package:thermion_dart/thermion_dart/thermion_viewer.dart'; -import 'package:thermion_flutter_example/main.dart'; - -class CameraSubmenu extends StatefulWidget { - final ThermionViewer viewer; - const CameraSubmenu({super.key, required this.viewer}); - - @override - State createState() => _CameraSubmenuState(); -} - -class _CameraSubmenuState extends State { - double? _near; - double? _far; - - @override - void initState() { - super.initState(); - widget.viewer.initialized.then((_) { - widget.viewer.getCameraCullingNear().then((v) { - _near = v; - widget.viewer.getCameraCullingFar().then((v) { - _far = v; - setState(() {}); - }); - }); - }); - } - - final _menuController = MenuController(); - - List _cameraMenu() { - return [ - MenuItemButton( - closeOnActivate: false, - onPressed: () async { - ExampleWidgetState.showProjectionMatrices.value = - !ExampleWidgetState.showProjectionMatrices.value; - print("Set to ${ExampleWidgetState.showProjectionMatrices}"); - }, - child: Text( - '${ExampleWidgetState.showProjectionMatrices.value ? "Hide" : "Display"} camera frustum', - style: TextStyle( - fontWeight: ExampleWidgetState.showProjectionMatrices.value - ? FontWeight.bold - : FontWeight.normal), - ), - ), - SubmenuButton( - menuChildren: [1.0, 7.0, 14.0, 28.0, 56.0] - .map((v) => MenuItemButton( - onPressed: () { - widget.viewer.setCameraFocalLength(v); - }, - child: Text( - v.toStringAsFixed(2), - ), - )) - .toList(), - child: const Text("Set camera focal length")), - SubmenuButton( - menuChildren: [0.05, 0.1, 1.0, 10.0, 100.0] - .map((v) => MenuItemButton( - onPressed: () { - _near = v; - print("Setting camera culling to $_near $_far!"); - - widget.viewer.setCameraCulling(_near!, _far!); - }, - child: Text( - v.toStringAsFixed(2), - ), - )) - .toList(), - child: const Text("Set near")), - SubmenuButton( - menuChildren: [5.0, 50.0, 500.0, 1000.0, 100000.0] - .map((v) => MenuItemButton( - onPressed: () { - _far = v; - print("Setting camera culling to $_near! $_far"); - widget.viewer.setCameraCulling(_near!, _far!); - }, - child: Text( - v.toStringAsFixed(2), - ), - )) - .toList(), - child: const Text("Set far")), - MenuItemButton( - onPressed: () async { - widget.viewer.setCameraPosition(1.0, 1.0, -1.0); - }, - child: const Text('Set position to 1, 1, -1 (leave rotation as-is)'), - ), - MenuItemButton( - onPressed: () async { - widget.viewer.setCameraPosition(0.0, 0.0, 0.0); - widget.viewer.setCameraRotation( - v.Quaternion.axisAngle(v.Vector3(0, 0.0, 1.0), 0.0)); - }, - child: const Text('Move to 0,0,0, facing towards 0,0,-1'), - ), - MenuItemButton( - onPressed: () { - widget.viewer.setCameraRotation( - v.Quaternion.axisAngle(v.Vector3(0, 1, 0), pi / 4)); - }, - child: const Text("Rotate camera 45 degrees around y axis"), - ), - MenuItemButton( - onPressed: () { - ExampleWidgetState.frustumCulling = - !ExampleWidgetState.frustumCulling; - widget.viewer - .setViewFrustumCulling(ExampleWidgetState.frustumCulling); - }, - child: Text( - "${ExampleWidgetState.frustumCulling ? "Disable" : "Enable"} frustum culling"), - ), - MenuItemButton( - closeOnActivate: false, - onPressed: () async { - var projMatrix = - await widget.viewer.getCameraProjectionMatrix(); - await showDialog( - context: context, - builder: (ctx) { - return Center( - child: Container( - height: 100, - width: 300, - color: Colors.white, - child: Text(projMatrix.storage - .map((v) => v.toStringAsFixed(2)) - .join(",")))); - }); - }, - child: const Text("Get projection matrix")), - SubmenuButton( - menuChildren: ManipulatorMode.values.map((mm) { - return MenuItemButton( - onPressed: () { - widget.viewer.setCameraManipulatorOptions( - mode: mm, - orbitSpeedX: ExampleWidgetState.orbitSpeedX, - orbitSpeedY: ExampleWidgetState.orbitSpeedY, - zoomSpeed: ExampleWidgetState.zoomSpeed); - }, - child: Text( - mm.name, - style: TextStyle( - // fontWeight: ExampleWidgetState.cameraManipulatorMode == mm - // ? FontWeight.bold - // : FontWeight.normal - ), - ), - ); - }).toList(), - child: const Text("Manipulator mode")), - SubmenuButton( - menuChildren: [0.01, 0.1, 1.0, 10.0, 100.0].map((speed) { - return MenuItemButton( - onPressed: () { - ExampleWidgetState.zoomSpeed = speed; - widget.viewer.setCameraManipulatorOptions( - orbitSpeedX: ExampleWidgetState.orbitSpeedX, - orbitSpeedY: ExampleWidgetState.orbitSpeedY, - zoomSpeed: ExampleWidgetState.zoomSpeed); - }, - child: Text( - speed.toString(), - style: TextStyle( - fontWeight: - (speed - ExampleWidgetState.zoomSpeed).abs() < 0.0001 - ? FontWeight.bold - : FontWeight.normal), - ), - ); - }).toList(), - child: const Text("Zoom speed")), - SubmenuButton( - menuChildren: [0.001, 0.01, 0.1, 1.0].map((speed) { - return MenuItemButton( - onPressed: () { - ExampleWidgetState.orbitSpeedX = speed; - ExampleWidgetState.orbitSpeedY = speed; - widget.viewer.setCameraManipulatorOptions( - orbitSpeedX: ExampleWidgetState.orbitSpeedX, - orbitSpeedY: ExampleWidgetState.orbitSpeedY, - zoomSpeed: ExampleWidgetState.zoomSpeed); - }, - child: Text( - speed.toString(), - style: TextStyle( - fontWeight: - (speed - ExampleWidgetState.orbitSpeedX).abs() < 0.0001 - ? FontWeight.bold - : FontWeight.normal), - ), - ); - }).toList(), - child: const Text("Orbit speed (X & Y)")) - ]; - } - - @override - Widget build(BuildContext context) { - // if (_near == null || _far == null) { - // return Container(); - // } - return SubmenuButton( - controller: _menuController, - menuChildren: _cameraMenu(), - child: const Text("Camera"), - ); - } -} diff --git a/examples/flutter/example/lib/menus/controller_menu.dart b/examples/flutter/example/lib/menus/controller_menu.dart deleted file mode 100644 index 08bd89d4..00000000 --- a/examples/flutter/example/lib/menus/controller_menu.dart +++ /dev/null @@ -1,107 +0,0 @@ -import 'dart:io'; - -import 'package:flutter/material.dart'; -import 'package:flutter/widgets.dart'; - -import 'package:thermion_flutter/thermion_flutter.dart'; - -class ViewerMenu extends StatefulWidget { - final ThermionViewer? viewer; - final void Function() onToggleViewport; - final void Function(ThermionViewer viewer) onViewerCreated; - final void Function() onViewerDestroyed; - final FocusNode sharedFocusNode; - - ViewerMenu( - { - required this.viewer, - required this.onViewerCreated, - required this.onViewerDestroyed, - required this.sharedFocusNode, - required this.onToggleViewport}); - - @override - State createState() => _ViewerMenuState(); -} - -class _ViewerMenuState extends State { - void _createViewer({String? uberArchivePath}) async { - var viewer = await ThermionFlutterPlugin.createViewer( - uberArchivePath: uberArchivePath); - await viewer.initialized; - widget.onViewerCreated(viewer); - } - - @override - void initState() { - super.initState(); - } - - @override - void didUpdateWidget(ViewerMenu oldWidget) { - super.didUpdateWidget(oldWidget); - } - - bool _initialized = false; - @override - Widget build(BuildContext context) { - var items = []; - if (!_initialized) { - items.addAll([ - MenuItemButton( - child: - const Text("Create ThermionFlutterPlugin (default ubershader)"), - onPressed: () { - _createViewer(); - }, - ), - MenuItemButton( - child: const Text( - "Create ThermionFlutterPlugin (custom ubershader - lit opaque only)"), - onPressed: () { - _createViewer( - uberArchivePath: Platform.isWindows - ? "assets/lit_opaque_32.uberz" - : Platform.isMacOS - ? "assets/lit_opaque_43.uberz" - : Platform.isIOS - ? "assets/lit_opaque_43.uberz" - : "assets/lit_opaque_43_gles.uberz"); - }, - ) - ]); - } else { - items.addAll([ - MenuItemButton( - child: const Text("Destroy viewer"), - onPressed: () async { - widget.viewer!.dispose(); - widget.onViewerDestroyed(); - setState(() {}); - }, - ) - ]); - } - return MenuAnchor( - childFocusNode: widget.sharedFocusNode, - menuChildren: items + - [ - TextButton( - child: const Text("Toggle viewport size"), - onPressed: widget.onToggleViewport, - ) - ], - builder: (BuildContext context, MenuController controller, Widget? child) { - return TextButton( - onPressed: () { - if (controller.isOpen) { - controller.close(); - } else { - controller.open(); - } - }, - child: const Text("Viewer / Viewer"), - ); - }); - } -} diff --git a/examples/flutter/example/lib/menus/rendering_submenu.dart b/examples/flutter/example/lib/menus/rendering_submenu.dart deleted file mode 100644 index c075c0ad..00000000 --- a/examples/flutter/example/lib/menus/rendering_submenu.dart +++ /dev/null @@ -1,95 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:thermion_flutter/thermion_flutter.dart'; -import 'package:thermion_flutter_example/main.dart'; -import 'package:thermion_dart/thermion_dart/thermion_viewer.dart'; - -class RenderingSubmenu extends StatefulWidget { - final ThermionViewer viewer; - - const RenderingSubmenu({super.key, required this.viewer}); - - @override - State createState() => _RenderingSubmenuState(); -} - -class _RenderingSubmenuState extends State { - @override - Widget build(BuildContext context) { - return SubmenuButton( - menuChildren: [ - MenuItemButton( - onPressed: () { - widget.viewer.render(); - }, - child: const Text("Render single frame"), - ), - MenuItemButton( - onPressed: () { - ExampleWidgetState.rendering = !ExampleWidgetState.rendering; - widget.viewer.setRendering(ExampleWidgetState.rendering); - }, - child: Text( - "Set continuous rendering to ${!ExampleWidgetState.rendering}"), - ), - MenuItemButton( - onPressed: () { - ExampleWidgetState.framerate = - ExampleWidgetState.framerate == 60 ? 30 : 60; - widget.viewer.setFrameRate(ExampleWidgetState.framerate); - }, - child: Text( - "Toggle framerate (currently ${ExampleWidgetState.framerate}) "), - ), - MenuItemButton( - onPressed: () { - widget.viewer.setToneMapping(ToneMapper.LINEAR); - }, - child: const Text("Set tone mapping to linear"), - ), - MenuItemButton( - onPressed: () { - ExampleWidgetState.postProcessing = - !ExampleWidgetState.postProcessing; - widget.viewer - .setPostProcessing(ExampleWidgetState.postProcessing); - }, - child: Text( - "${ExampleWidgetState.postProcessing ? "Disable" : "Enable"} postprocessing"), - ), - MenuItemButton( - onPressed: () { - ExampleWidgetState.antiAliasingMsaa = - !ExampleWidgetState.antiAliasingMsaa; - widget.viewer.setAntiAliasing( - ExampleWidgetState.antiAliasingMsaa, - ExampleWidgetState.antiAliasingFxaa, - ExampleWidgetState.antiAliasingTaa); - }, - child: Text( - "${ExampleWidgetState.antiAliasingMsaa ? "Disable" : "Enable"} MSAA antialiasing"), - ), - MenuItemButton( - onPressed: () { - ExampleWidgetState.antiAliasingFxaa = - !ExampleWidgetState.antiAliasingFxaa; - widget.viewer.setAntiAliasing( - ExampleWidgetState.antiAliasingMsaa, - ExampleWidgetState.antiAliasingFxaa, - ExampleWidgetState.antiAliasingTaa); - }, - child: Text( - "${ExampleWidgetState.antiAliasingFxaa ? "Disable" : "Enable"} FXAA antialiasing"), - ), - MenuItemButton( - onPressed: () { - ExampleWidgetState.recording = !ExampleWidgetState.recording; - widget.viewer.setRecording(ExampleWidgetState.recording); - }, - child: Text( - "Turn recording ${ExampleWidgetState.recording ? "OFF" : "ON"}) "), - ), - ], - child: const Text("Rendering"), - ); - } -} diff --git a/examples/flutter/example/lib/menus/scene_menu.dart b/examples/flutter/example/lib/menus/scene_menu.dart deleted file mode 100644 index 3a5e1d9b..00000000 --- a/examples/flutter/example/lib/menus/scene_menu.dart +++ /dev/null @@ -1,62 +0,0 @@ -import 'package:flutter/material.dart'; - -import 'package:thermion_flutter/thermion_flutter.dart'; -import 'package:thermion_flutter_example/menus/asset_submenu.dart'; -import 'package:thermion_flutter_example/menus/camera_submenu.dart'; -import 'package:thermion_flutter_example/menus/rendering_submenu.dart'; - -class SceneMenu extends StatefulWidget { - final ThermionViewer? controller; - final FocusNode sharedFocusNode; - - const SceneMenu( - {super.key, required this.controller, required this.sharedFocusNode}); - - @override - State createState() { - return _SceneMenuState(); - } -} - -class _SceneMenuState extends State { - @override - void didUpdateWidget(SceneMenu oldWidget) { - super.didUpdateWidget(oldWidget); - if (widget.controller != null && - (widget.controller != oldWidget.controller)) { - setState(() {}); - } - } - - @override - Widget build(BuildContext context) { - return MenuAnchor( - onClose: () {}, - childFocusNode: widget.sharedFocusNode, - menuChildren: widget.controller == null - ? [] - : [ - RenderingSubmenu( - viewer: widget.controller!, - ), - AssetSubmenu(viewer: widget.controller!), - CameraSubmenu( - viewer: widget.controller!, - ), - ], - builder: - (BuildContext context, MenuController controller, Widget? child) { - return TextButton( - onPressed: () { - if (controller.isOpen) { - controller.close(); - } else { - controller.open(); - } - }, - child: const Text("Scene"), - ); - }, - ); - } -} diff --git a/examples/flutter/example/lib/picker_result_widget.dart b/examples/flutter/example/lib/picker_result_widget.dart deleted file mode 100644 index 692c4fc6..00000000 --- a/examples/flutter/example/lib/picker_result_widget.dart +++ /dev/null @@ -1,20 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:thermion_dart/thermion_dart/thermion_viewer.dart'; - -class PickerResultWidget extends StatelessWidget { - final ThermionViewer controller; - - const PickerResultWidget({required this.controller, super.key}); - - @override - Widget build(BuildContext context) { - return StreamBuilder( - stream: controller.pickResult.map((result) { - return controller.getNameForEntity(result.entity); - }), - builder: (ctx, snapshot) => snapshot.data == null - ? Container() - : Text(snapshot.data!, - style: const TextStyle(color: Colors.green, fontSize: 24))); - } -} diff --git a/examples/flutter/example/linux/.gitignore b/examples/flutter/example/linux/.gitignore deleted file mode 100644 index d3896c98..00000000 --- a/examples/flutter/example/linux/.gitignore +++ /dev/null @@ -1 +0,0 @@ -flutter/ephemeral diff --git a/examples/flutter/example/linux/CMakeLists.txt b/examples/flutter/example/linux/CMakeLists.txt deleted file mode 100644 index 8e014c4d..00000000 --- a/examples/flutter/example/linux/CMakeLists.txt +++ /dev/null @@ -1,141 +0,0 @@ -# Project-level configuration. -cmake_minimum_required(VERSION 3.10) -project(runner LANGUAGES CXX) - -# The name of the executable created for the application. Change this to change -# the on-disk name of your application. -set(BINARY_NAME "thermion_flutter_example") -# The unique GTK application identifier for this application. See: -# https://wiki.gnome.org/HowDoI/ChooseApplicationID -set(APPLICATION_ID "app.polyvox.thermion_flutter") - -# Explicitly opt in to modern CMake behaviors to avoid warnings with recent -# versions of CMake. -cmake_policy(SET CMP0063 NEW) - -# Load bundled libraries from the lib/ directory relative to the binary. -set(CMAKE_INSTALL_RPATH "$ORIGIN/lib") - -# Root filesystem for cross-building. -if(FLUTTER_TARGET_PLATFORM_SYSROOT) - set(CMAKE_SYSROOT ${FLUTTER_TARGET_PLATFORM_SYSROOT}) - set(CMAKE_FIND_ROOT_PATH ${CMAKE_SYSROOT}) - set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) - set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) - set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) - set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) -endif() - -# Define build configuration options. -if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) - set(CMAKE_BUILD_TYPE "Debug" CACHE - STRING "Flutter build mode" FORCE) - set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS - "Debug" "Profile" "Release") -endif() - -# Compilation settings that should be applied to most targets. -# -# Be cautious about adding new options here, as plugins use this function by -# default. In most cases, you should add new options to specific targets instead -# of modifying this function. -function(APPLY_STANDARD_SETTINGS TARGET) - target_compile_features(${TARGET} PUBLIC cxx_std_14) - target_compile_options(${TARGET} PRIVATE -Wall -Werror -Wno-unused-function -Wno-unused-variable) - target_compile_options(${TARGET} PRIVATE "$<$>:-O3>") - target_compile_definitions(${TARGET} PRIVATE "$<$>:NDEBUG>") -endfunction() - -# Flutter library and tool build rules. -set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter") -add_subdirectory(${FLUTTER_MANAGED_DIR}) - -# System-level dependencies. -find_package(PkgConfig REQUIRED) -pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0) - -add_definitions(-DAPPLICATION_ID="${APPLICATION_ID}") - -# Define the application target. To change its name, change BINARY_NAME above, -# not the value here, or `flutter run` will no longer work. -# -# Any new source files that you add to the application should be added here. -add_executable(${BINARY_NAME} - "main.cc" - "my_application.cc" - "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" -) - -# Apply the standard set of build settings. This can be removed for applications -# that need different build settings. -apply_standard_settings(${BINARY_NAME}) - -# Add dependency libraries. Add any application-specific dependencies here. -target_link_libraries(${BINARY_NAME} PRIVATE flutter) -target_link_libraries(${BINARY_NAME} PRIVATE PkgConfig::GTK) - -# Run the Flutter tool portions of the build. This must not be removed. -add_dependencies(${BINARY_NAME} flutter_assemble) - -# Only the install-generated bundle's copy of the executable will launch -# correctly, since the resources must in the right relative locations. To avoid -# people trying to run the unbundled copy, put it in a subdirectory instead of -# the default top-level location. -set_target_properties(${BINARY_NAME} - PROPERTIES - RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/intermediates_do_not_run" -) - -# Generated plugin build rules, which manage building the plugins and adding -# them to the application. -include(flutter/generated_plugins.cmake) - -include_directories(../../ios/include) - - - -# === Installation === -# By default, "installing" just makes a relocatable bundle in the build -# directory. -set(BUILD_BUNDLE_DIR "${PROJECT_BINARY_DIR}/bundle") -if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) - set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE) -endif() - -# Start with a clean build bundle directory every time. -install(CODE " - file(REMOVE_RECURSE \"${BUILD_BUNDLE_DIR}/\") - " COMPONENT Runtime) - -set(INSTALL_BUNDLE_DATA_DIR "${CMAKE_INSTALL_PREFIX}/data") -set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib") - -install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}" - COMPONENT Runtime) - -install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" - COMPONENT Runtime) - -install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" - COMPONENT Runtime) - -foreach(bundled_library ${PLUGIN_BUNDLED_LIBRARIES}) - install(FILES "${bundled_library}" - DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" - COMPONENT Runtime) -endforeach(bundled_library) - -# Fully re-copy the assets directory on each build to avoid having stale files -# from a previous install. -set(FLUTTER_ASSET_DIR_NAME "flutter_assets") -install(CODE " - file(REMOVE_RECURSE \"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\") - " COMPONENT Runtime) -install(DIRECTORY "${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}" - DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" COMPONENT Runtime) - -# Install the AOT library on non-Debug builds only. -if(NOT CMAKE_BUILD_TYPE MATCHES "Debug") - install(FILES "${AOT_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" - COMPONENT Runtime) -endif() diff --git a/examples/flutter/example/linux/flutter/CMakeLists.txt b/examples/flutter/example/linux/flutter/CMakeLists.txt deleted file mode 100644 index d5bd0164..00000000 --- a/examples/flutter/example/linux/flutter/CMakeLists.txt +++ /dev/null @@ -1,88 +0,0 @@ -# This file controls Flutter-level build steps. It should not be edited. -cmake_minimum_required(VERSION 3.10) - -set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral") - -# Configuration provided via flutter tool. -include(${EPHEMERAL_DIR}/generated_config.cmake) - -# TODO: Move the rest of this into files in ephemeral. See -# https://github.com/flutter/flutter/issues/57146. - -# Serves the same purpose as list(TRANSFORM ... PREPEND ...), -# which isn't available in 3.10. -function(list_prepend LIST_NAME PREFIX) - set(NEW_LIST "") - foreach(element ${${LIST_NAME}}) - list(APPEND NEW_LIST "${PREFIX}${element}") - endforeach(element) - set(${LIST_NAME} "${NEW_LIST}" PARENT_SCOPE) -endfunction() - -# === Flutter Library === -# System-level dependencies. -find_package(PkgConfig REQUIRED) -pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0) -pkg_check_modules(GLIB REQUIRED IMPORTED_TARGET glib-2.0) -pkg_check_modules(GIO REQUIRED IMPORTED_TARGET gio-2.0) - -set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/libflutter_linux_gtk.so") - -# Published to parent scope for install step. -set(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE) -set(FLUTTER_ICU_DATA_FILE "${EPHEMERAL_DIR}/icudtl.dat" PARENT_SCOPE) -set(PROJECT_BUILD_DIR "${PROJECT_DIR}/build/" PARENT_SCOPE) -set(AOT_LIBRARY "${PROJECT_DIR}/build/lib/libapp.so" PARENT_SCOPE) - -list(APPEND FLUTTER_LIBRARY_HEADERS - "fl_basic_message_channel.h" - "fl_binary_codec.h" - "fl_binary_messenger.h" - "fl_dart_project.h" - "fl_engine.h" - "fl_json_message_codec.h" - "fl_json_method_codec.h" - "fl_message_codec.h" - "fl_method_call.h" - "fl_method_channel.h" - "fl_method_codec.h" - "fl_method_response.h" - "fl_plugin_registrar.h" - "fl_plugin_registry.h" - "fl_standard_message_codec.h" - "fl_standard_method_codec.h" - "fl_string_codec.h" - "fl_value.h" - "fl_view.h" - "flutter_linux.h" -) -list_prepend(FLUTTER_LIBRARY_HEADERS "${EPHEMERAL_DIR}/flutter_linux/") -add_library(flutter INTERFACE) -target_include_directories(flutter INTERFACE - "${EPHEMERAL_DIR}" -) -target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}") -target_link_libraries(flutter INTERFACE - PkgConfig::GTK - PkgConfig::GLIB - PkgConfig::GIO -) -add_dependencies(flutter flutter_assemble) - -# === Flutter tool backend === -# _phony_ is a non-existent file to force this command to run every time, -# since currently there's no way to get a full input/output list from the -# flutter tool. -add_custom_command( - OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS} - ${CMAKE_CURRENT_BINARY_DIR}/_phony_ - COMMAND ${CMAKE_COMMAND} -E env - ${FLUTTER_TOOL_ENVIRONMENT} - "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.sh" - ${FLUTTER_TARGET_PLATFORM} ${CMAKE_BUILD_TYPE} - VERBATIM -) -add_custom_target(flutter_assemble DEPENDS - "${FLUTTER_LIBRARY}" - ${FLUTTER_LIBRARY_HEADERS} -) diff --git a/examples/flutter/example/linux/flutter/generated_plugin_registrant.cc b/examples/flutter/example/linux/flutter/generated_plugin_registrant.cc deleted file mode 100644 index 01193c10..00000000 --- a/examples/flutter/example/linux/flutter/generated_plugin_registrant.cc +++ /dev/null @@ -1,15 +0,0 @@ -// -// Generated file. Do not edit. -// - -// clang-format off - -#include "generated_plugin_registrant.h" - -#include - -void fl_register_plugins(FlPluginRegistry* registry) { - g_autoptr(FlPluginRegistrar) thermion_flutter_registrar = - fl_plugin_registry_get_registrar_for_plugin(registry, "ThermionFlutterPlugin"); - thermion_flutter_plugin_register_with_registrar(thermion_flutter_registrar); -} diff --git a/examples/flutter/example/linux/flutter/generated_plugin_registrant.h b/examples/flutter/example/linux/flutter/generated_plugin_registrant.h deleted file mode 100644 index e0f0a47b..00000000 --- a/examples/flutter/example/linux/flutter/generated_plugin_registrant.h +++ /dev/null @@ -1,15 +0,0 @@ -// -// Generated file. Do not edit. -// - -// clang-format off - -#ifndef GENERATED_PLUGIN_REGISTRANT_ -#define GENERATED_PLUGIN_REGISTRANT_ - -#include - -// Registers Flutter plugins. -void fl_register_plugins(FlPluginRegistry* registry); - -#endif // GENERATED_PLUGIN_REGISTRANT_ diff --git a/examples/flutter/example/linux/flutter/generated_plugins.cmake b/examples/flutter/example/linux/flutter/generated_plugins.cmake deleted file mode 100644 index 274b5f60..00000000 --- a/examples/flutter/example/linux/flutter/generated_plugins.cmake +++ /dev/null @@ -1,24 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST - thermion_flutter -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/examples/flutter/example/linux/main.cc b/examples/flutter/example/linux/main.cc deleted file mode 100644 index e7c5c543..00000000 --- a/examples/flutter/example/linux/main.cc +++ /dev/null @@ -1,6 +0,0 @@ -#include "my_application.h" - -int main(int argc, char** argv) { - g_autoptr(MyApplication) app = my_application_new(); - return g_application_run(G_APPLICATION(app), argc, argv); -} diff --git a/examples/flutter/example/linux/my_application.cc b/examples/flutter/example/linux/my_application.cc deleted file mode 100644 index 75722485..00000000 --- a/examples/flutter/example/linux/my_application.cc +++ /dev/null @@ -1,104 +0,0 @@ -#include "my_application.h" - -#include -#ifdef GDK_WINDOWING_X11 -#include -#endif - -#include "flutter/generated_plugin_registrant.h" - -struct _MyApplication { - GtkApplication parent_instance; - char** dart_entrypoint_arguments; -}; - -G_DEFINE_TYPE(MyApplication, my_application, GTK_TYPE_APPLICATION) - -// Implements GApplication::activate. -static void my_application_activate(GApplication* application) { - MyApplication* self = MY_APPLICATION(application); - GtkWindow* window = - GTK_WINDOW(gtk_application_window_new(GTK_APPLICATION(application))); - - // Use a header bar when running in GNOME as this is the common style used - // by applications and is the setup most users will be using (e.g. Ubuntu - // desktop). - // If running on X and not using GNOME then just use a traditional title bar - // in case the window manager does more exotic layout, e.g. tiling. - // If running on Wayland assume the header bar will work (may need changing - // if future cases occur). - gboolean use_header_bar = TRUE; -#ifdef GDK_WINDOWING_X11 - GdkScreen* screen = gtk_window_get_screen(window); - if (GDK_IS_X11_SCREEN(screen)) { - const gchar* wm_name = gdk_x11_screen_get_window_manager_name(screen); - if (g_strcmp0(wm_name, "GNOME Shell") != 0) { - use_header_bar = FALSE; - } - } -#endif - if (use_header_bar) { - GtkHeaderBar* header_bar = GTK_HEADER_BAR(gtk_header_bar_new()); - gtk_widget_show(GTK_WIDGET(header_bar)); - gtk_header_bar_set_title(header_bar, "thermion_flutter_example"); - gtk_header_bar_set_show_close_button(header_bar, TRUE); - gtk_window_set_titlebar(window, GTK_WIDGET(header_bar)); - } else { - gtk_window_set_title(window, "thermion_flutter_example"); - } - - gtk_window_set_default_size(window, 1280, 720); - gtk_widget_show(GTK_WIDGET(window)); - - g_autoptr(FlDartProject) project = fl_dart_project_new(); - fl_dart_project_set_dart_entrypoint_arguments(project, self->dart_entrypoint_arguments); - - FlView* view = fl_view_new(project); - gtk_widget_show(GTK_WIDGET(view)); - gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(view)); - - fl_register_plugins(FL_PLUGIN_REGISTRY(view)); - - gtk_widget_grab_focus(GTK_WIDGET(view)); -} - -// Implements GApplication::local_command_line. -static gboolean my_application_local_command_line(GApplication* application, gchar*** arguments, int* exit_status) { - MyApplication* self = MY_APPLICATION(application); - // Strip out the first argument as it is the binary name. - self->dart_entrypoint_arguments = g_strdupv(*arguments + 1); - - g_autoptr(GError) error = nullptr; - if (!g_application_register(application, nullptr, &error)) { - g_warning("Failed to register: %s", error->message); - *exit_status = 1; - return TRUE; - } - - g_application_activate(application); - *exit_status = 0; - - return TRUE; -} - -// Implements GObject::dispose. -static void my_application_dispose(GObject* object) { - MyApplication* self = MY_APPLICATION(object); - g_clear_pointer(&self->dart_entrypoint_arguments, g_strfreev); - G_OBJECT_CLASS(my_application_parent_class)->dispose(object); -} - -static void my_application_class_init(MyApplicationClass* klass) { - G_APPLICATION_CLASS(klass)->activate = my_application_activate; - G_APPLICATION_CLASS(klass)->local_command_line = my_application_local_command_line; - G_OBJECT_CLASS(klass)->dispose = my_application_dispose; -} - -static void my_application_init(MyApplication* self) {} - -MyApplication* my_application_new() { - return MY_APPLICATION(g_object_new(my_application_get_type(), - "application-id", APPLICATION_ID, - "flags", G_APPLICATION_NON_UNIQUE, - nullptr)); -} diff --git a/examples/flutter/example/linux/my_application.h b/examples/flutter/example/linux/my_application.h deleted file mode 100644 index 72271d5e..00000000 --- a/examples/flutter/example/linux/my_application.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef FLUTTER_MY_APPLICATION_H_ -#define FLUTTER_MY_APPLICATION_H_ - -#include - -G_DECLARE_FINAL_TYPE(MyApplication, my_application, MY, APPLICATION, - GtkApplication) - -/** - * my_application_new: - * - * Creates a new Flutter-based application. - * - * Returns: a new #MyApplication. - */ -MyApplication* my_application_new(); - -#endif // FLUTTER_MY_APPLICATION_H_ diff --git a/examples/flutter/example/macos/.gitignore b/examples/flutter/example/macos/.gitignore deleted file mode 100644 index 746adbb6..00000000 --- a/examples/flutter/example/macos/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -# Flutter-related -**/Flutter/ephemeral/ -**/Pods/ - -# Xcode-related -**/dgph -**/xcuserdata/ diff --git a/examples/flutter/example/macos/Flutter/Flutter-Debug.xcconfig b/examples/flutter/example/macos/Flutter/Flutter-Debug.xcconfig deleted file mode 100644 index 4b81f9b2..00000000 --- a/examples/flutter/example/macos/Flutter/Flutter-Debug.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" -#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/examples/flutter/example/macos/Flutter/Flutter-Release.xcconfig b/examples/flutter/example/macos/Flutter/Flutter-Release.xcconfig deleted file mode 100644 index 5caa9d15..00000000 --- a/examples/flutter/example/macos/Flutter/Flutter-Release.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" -#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/examples/flutter/example/macos/Flutter/GeneratedPluginRegistrant.swift b/examples/flutter/example/macos/Flutter/GeneratedPluginRegistrant.swift deleted file mode 100644 index 93683cf5..00000000 --- a/examples/flutter/example/macos/Flutter/GeneratedPluginRegistrant.swift +++ /dev/null @@ -1,14 +0,0 @@ -// -// Generated file. Do not edit. -// - -import FlutterMacOS -import Foundation - -import path_provider_foundation -import thermion_flutter - -func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { - PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) - SwiftThermionFlutterPlugin.register(with: registry.registrar(forPlugin: "SwiftThermionFlutterPlugin")) -} diff --git a/examples/flutter/example/macos/Podfile b/examples/flutter/example/macos/Podfile deleted file mode 100644 index 90de47d4..00000000 --- a/examples/flutter/example/macos/Podfile +++ /dev/null @@ -1,43 +0,0 @@ -platform :osx, '13.0' - -# CocoaPods analytics sends network stats synchronously affecting flutter build latency. -ENV['COCOAPODS_DISABLE_STATS'] = 'true' - -project 'Runner', { - 'Debug' => :debug, - 'Profile' => :release, - 'Release' => :release, -} - -def flutter_root - generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'ephemeral', 'Flutter-Generated.xcconfig'), __FILE__) - unless File.exist?(generated_xcode_build_settings_path) - raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure \"flutter pub get\" is executed first" - end - - File.foreach(generated_xcode_build_settings_path) do |line| - matches = line.match(/FLUTTER_ROOT\=(.*)/) - return matches[1].strip if matches - end - raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Flutter-Generated.xcconfig, then run \"flutter pub get\"" -end - -require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) - -flutter_macos_podfile_setup - -target 'Runner' do - use_frameworks! - use_modular_headers! - - flutter_install_all_macos_pods File.dirname(File.realpath(__FILE__)) - target 'RunnerTests' do - inherit! :search_paths - end -end - -post_install do |installer| - installer.pods_project.targets.each do |target| - flutter_additional_macos_build_settings(target) - end -end diff --git a/examples/flutter/example/macos/Runner.xcodeproj/project.pbxproj b/examples/flutter/example/macos/Runner.xcodeproj/project.pbxproj deleted file mode 100644 index 6eba66ee..00000000 --- a/examples/flutter/example/macos/Runner.xcodeproj/project.pbxproj +++ /dev/null @@ -1,803 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 54; - objects = { - -/* Begin PBXAggregateTarget section */ - 33CC111A2044C6BA0003C045 /* Flutter Assemble */ = { - isa = PBXAggregateTarget; - buildConfigurationList = 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */; - buildPhases = ( - 33CC111E2044C6BF0003C045 /* ShellScript */, - ); - dependencies = ( - ); - name = "Flutter Assemble"; - productName = FLX; - }; -/* End PBXAggregateTarget section */ - -/* Begin PBXBuildFile section */ - 331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C80D7294CF71000263BE5 /* RunnerTests.swift */; }; - 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */; }; - 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC10F02044A3C60003C045 /* AppDelegate.swift */; }; - 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; - 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; - 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; - 73983334E7E3D03A0E12661E /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D8E0CF9C3C7800C07C9845FC /* Pods_RunnerTests.framework */; }; - C522DC3C60A9E9D8A157D709 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5A43AAD1E638EA0D1719DBA3 /* Pods_Runner.framework */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 331C80D9294CF71000263BE5 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 33CC10E52044A3C60003C045 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 33CC10EC2044A3C60003C045; - remoteInfo = Runner; - }; - 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 33CC10E52044A3C60003C045 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 33CC111A2044C6BA0003C045; - remoteInfo = FLX; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 33CC110E2044A8840003C045 /* Bundle Framework */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - ); - name = "Bundle Framework"; - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 07D325EB165BDBD20CA1B50D /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; - 331C80D5294CF71000263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; - 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; - 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = ""; }; - 33CC10ED2044A3C60003C045 /* example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = example.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = ""; }; - 33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; - 33CC10F72044A3C60003C045 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Runner/Info.plist; sourceTree = ""; }; - 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainFlutterWindow.swift; sourceTree = ""; }; - 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Debug.xcconfig"; sourceTree = ""; }; - 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Release.xcconfig"; sourceTree = ""; }; - 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "Flutter-Generated.xcconfig"; path = "ephemeral/Flutter-Generated.xcconfig"; sourceTree = ""; }; - 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = ""; }; - 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = ""; }; - 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; }; - 5A43AAD1E638EA0D1719DBA3 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 750CFF70D61D26C0BECD5590 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; - 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; - 8A325254C21887E4CBDE8294 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; - 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; - C29827A08E11D88646BFBE93 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; - D8E0CF9C3C7800C07C9845FC /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - DEA954DCA916B6FC51B8D22B /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; - F0328BD31CA3A8DD85456972 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 331C80D2294CF70F00263BE5 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 73983334E7E3D03A0E12661E /* Pods_RunnerTests.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 33CC10EA2044A3C60003C045 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - C522DC3C60A9E9D8A157D709 /* Pods_Runner.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 331C80D6294CF71000263BE5 /* RunnerTests */ = { - isa = PBXGroup; - children = ( - 331C80D7294CF71000263BE5 /* RunnerTests.swift */, - ); - path = RunnerTests; - sourceTree = ""; - }; - 33BA886A226E78AF003329D5 /* Configs */ = { - isa = PBXGroup; - children = ( - 33E5194F232828860026EE4D /* AppInfo.xcconfig */, - 9740EEB21CF90195004384FC /* Debug.xcconfig */, - 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, - 333000ED22D3DE5D00554162 /* Warnings.xcconfig */, - ); - path = Configs; - sourceTree = ""; - }; - 33CC10E42044A3C60003C045 = { - isa = PBXGroup; - children = ( - 33FAB671232836740065AC1E /* Runner */, - 33CEB47122A05771004F2AC0 /* Flutter */, - 331C80D6294CF71000263BE5 /* RunnerTests */, - 33CC10EE2044A3C60003C045 /* Products */, - D73912EC22F37F3D000D13A0 /* Frameworks */, - A1BEA79574E5550EED38B897 /* Pods */, - ); - sourceTree = ""; - }; - 33CC10EE2044A3C60003C045 /* Products */ = { - isa = PBXGroup; - children = ( - 33CC10ED2044A3C60003C045 /* example.app */, - 331C80D5294CF71000263BE5 /* RunnerTests.xctest */, - ); - name = Products; - sourceTree = ""; - }; - 33CC11242044D66E0003C045 /* Resources */ = { - isa = PBXGroup; - children = ( - 33CC10F22044A3C60003C045 /* Assets.xcassets */, - 33CC10F42044A3C60003C045 /* MainMenu.xib */, - 33CC10F72044A3C60003C045 /* Info.plist */, - ); - name = Resources; - path = ..; - sourceTree = ""; - }; - 33CEB47122A05771004F2AC0 /* Flutter */ = { - isa = PBXGroup; - children = ( - 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */, - 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */, - 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */, - 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */, - ); - path = Flutter; - sourceTree = ""; - }; - 33FAB671232836740065AC1E /* Runner */ = { - isa = PBXGroup; - children = ( - 33CC10F02044A3C60003C045 /* AppDelegate.swift */, - 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */, - 33E51913231747F40026EE4D /* DebugProfile.entitlements */, - 33E51914231749380026EE4D /* Release.entitlements */, - 33CC11242044D66E0003C045 /* Resources */, - 33BA886A226E78AF003329D5 /* Configs */, - ); - path = Runner; - sourceTree = ""; - }; - A1BEA79574E5550EED38B897 /* Pods */ = { - isa = PBXGroup; - children = ( - C29827A08E11D88646BFBE93 /* Pods-Runner.debug.xcconfig */, - F0328BD31CA3A8DD85456972 /* Pods-Runner.release.xcconfig */, - 8A325254C21887E4CBDE8294 /* Pods-Runner.profile.xcconfig */, - DEA954DCA916B6FC51B8D22B /* Pods-RunnerTests.debug.xcconfig */, - 750CFF70D61D26C0BECD5590 /* Pods-RunnerTests.release.xcconfig */, - 07D325EB165BDBD20CA1B50D /* Pods-RunnerTests.profile.xcconfig */, - ); - path = Pods; - sourceTree = ""; - }; - D73912EC22F37F3D000D13A0 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 5A43AAD1E638EA0D1719DBA3 /* Pods_Runner.framework */, - D8E0CF9C3C7800C07C9845FC /* Pods_RunnerTests.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 331C80D4294CF70F00263BE5 /* RunnerTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; - buildPhases = ( - 210FEE2628F42B7BDFED20C4 /* [CP] Check Pods Manifest.lock */, - 331C80D1294CF70F00263BE5 /* Sources */, - 331C80D2294CF70F00263BE5 /* Frameworks */, - 331C80D3294CF70F00263BE5 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 331C80DA294CF71000263BE5 /* PBXTargetDependency */, - ); - name = RunnerTests; - productName = RunnerTests; - productReference = 331C80D5294CF71000263BE5 /* RunnerTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - 33CC10EC2044A3C60003C045 /* Runner */ = { - isa = PBXNativeTarget; - buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; - buildPhases = ( - B67C6085C13299F59758F7CC /* [CP] Check Pods Manifest.lock */, - 33CC10E92044A3C60003C045 /* Sources */, - 33CC10EA2044A3C60003C045 /* Frameworks */, - 33CC10EB2044A3C60003C045 /* Resources */, - 33CC110E2044A8840003C045 /* Bundle Framework */, - 3399D490228B24CF009A79C7 /* ShellScript */, - D8E4D2DE64C21B53086793F8 /* [CP] Embed Pods Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - 33CC11202044C79F0003C045 /* PBXTargetDependency */, - ); - name = Runner; - productName = Runner; - productReference = 33CC10ED2044A3C60003C045 /* example.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 33CC10E52044A3C60003C045 /* Project object */ = { - isa = PBXProject; - attributes = { - BuildIndependentTargetsInParallel = YES; - LastSwiftUpdateCheck = 0920; - LastUpgradeCheck = 1510; - ORGANIZATIONNAME = ""; - TargetAttributes = { - 331C80D4294CF70F00263BE5 = { - CreatedOnToolsVersion = 14.0; - TestTargetID = 33CC10EC2044A3C60003C045; - }; - 33CC10EC2044A3C60003C045 = { - CreatedOnToolsVersion = 9.2; - LastSwiftMigration = 1100; - ProvisioningStyle = Automatic; - SystemCapabilities = { - com.apple.Sandbox = { - enabled = 1; - }; - }; - }; - 33CC111A2044C6BA0003C045 = { - CreatedOnToolsVersion = 9.2; - ProvisioningStyle = Manual; - }; - }; - }; - buildConfigurationList = 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 33CC10E42044A3C60003C045; - productRefGroup = 33CC10EE2044A3C60003C045 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 33CC10EC2044A3C60003C045 /* Runner */, - 331C80D4294CF70F00263BE5 /* RunnerTests */, - 33CC111A2044C6BA0003C045 /* Flutter Assemble */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 331C80D3294CF70F00263BE5 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 33CC10EB2044A3C60003C045 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */, - 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 210FEE2628F42B7BDFED20C4 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - 3399D490228B24CF009A79C7 /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - alwaysOutOfDate = 1; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - ); - outputFileListPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "echo \"$PRODUCT_NAME.app\" > \"$PROJECT_DIR\"/Flutter/ephemeral/.app_filename && \"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh embed\n"; - }; - 33CC111E2044C6BF0003C045 /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - Flutter/ephemeral/FlutterInputs.xcfilelist, - ); - inputPaths = ( - Flutter/ephemeral/tripwire, - ); - outputFileListPaths = ( - Flutter/ephemeral/FlutterOutputs.xcfilelist, - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; - }; - B67C6085C13299F59758F7CC /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - D8E4D2DE64C21B53086793F8 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Embed Pods Frameworks"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 331C80D1294CF70F00263BE5 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 33CC10E92044A3C60003C045 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */, - 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */, - 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 331C80DA294CF71000263BE5 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 33CC10EC2044A3C60003C045 /* Runner */; - targetProxy = 331C80D9294CF71000263BE5 /* PBXContainerItemProxy */; - }; - 33CC11202044C79F0003C045 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 33CC111A2044C6BA0003C045 /* Flutter Assemble */; - targetProxy = 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - 33CC10F42044A3C60003C045 /* MainMenu.xib */ = { - isa = PBXVariantGroup; - children = ( - 33CC10F52044A3C60003C045 /* Base */, - ); - name = MainMenu.xib; - path = Runner; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 331C80DB294CF71000263BE5 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = DEA954DCA916B6FC51B8D22B /* Pods-RunnerTests.debug.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CURRENT_PROJECT_VERSION = 1; - GENERATE_INFOPLIST_FILE = YES; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = app.polyvox.example.RunnerTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 5.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/example.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/example"; - }; - name = Debug; - }; - 331C80DC294CF71000263BE5 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 750CFF70D61D26C0BECD5590 /* Pods-RunnerTests.release.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CURRENT_PROJECT_VERSION = 1; - GENERATE_INFOPLIST_FILE = YES; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = app.polyvox.example.RunnerTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 5.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/example.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/example"; - }; - name = Release; - }; - 331C80DD294CF71000263BE5 /* Profile */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 07D325EB165BDBD20CA1B50D /* Pods-RunnerTests.profile.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CURRENT_PROJECT_VERSION = 1; - GENERATE_INFOPLIST_FILE = YES; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = app.polyvox.example.RunnerTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 5.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/example.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/example"; - }; - name = Profile; - }; - 338D0CE9231458BD00FA5F75 /* Profile */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CODE_SIGN_IDENTITY = "-"; - COPY_PHASE_STRIP = NO; - DEAD_CODE_STRIPPING = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.14; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = macosx; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - }; - name = Profile; - }; - 338D0CEA231458BD00FA5F75 /* Profile */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - ); - MACOSX_DEPLOYMENT_TARGET = 13.0; - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_VERSION = 5.0; - }; - name = Profile; - }; - 338D0CEB231458BD00FA5F75 /* Profile */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Manual; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Profile; - }; - 33CC10F92044A3C60003C045 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CODE_SIGN_IDENTITY = "-"; - COPY_PHASE_STRIP = NO; - DEAD_CODE_STRIPPING = YES; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.14; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = macosx; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - 33CC10FA2044A3C60003C045 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CODE_SIGN_IDENTITY = "-"; - COPY_PHASE_STRIP = NO; - DEAD_CODE_STRIPPING = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.14; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = macosx; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - }; - name = Release; - }; - 33CC10FC2044A3C60003C045 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - ); - MACOSX_DEPLOYMENT_TARGET = 13.0; - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - }; - name = Debug; - }; - 33CC10FD2044A3C60003C045 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - ); - MACOSX_DEPLOYMENT_TARGET = 13.0; - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_VERSION = 5.0; - }; - name = Release; - }; - 33CC111C2044C6BA0003C045 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Manual; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - 33CC111D2044C6BA0003C045 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 331C80DB294CF71000263BE5 /* Debug */, - 331C80DC294CF71000263BE5 /* Release */, - 331C80DD294CF71000263BE5 /* Profile */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 33CC10F92044A3C60003C045 /* Debug */, - 33CC10FA2044A3C60003C045 /* Release */, - 338D0CE9231458BD00FA5F75 /* Profile */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 33CC10FC2044A3C60003C045 /* Debug */, - 33CC10FD2044A3C60003C045 /* Release */, - 338D0CEA231458BD00FA5F75 /* Profile */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 33CC111C2044C6BA0003C045 /* Debug */, - 33CC111D2044C6BA0003C045 /* Release */, - 338D0CEB231458BD00FA5F75 /* Profile */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 33CC10E52044A3C60003C045 /* Project object */; -} diff --git a/examples/flutter/example/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/examples/flutter/example/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d98100..00000000 --- a/examples/flutter/example/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/examples/flutter/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/examples/flutter/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme deleted file mode 100644 index 15368ecc..00000000 --- a/examples/flutter/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/flutter/example/macos/Runner.xcworkspace/contents.xcworkspacedata b/examples/flutter/example/macos/Runner.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 21a3cc14..00000000 --- a/examples/flutter/example/macos/Runner.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - diff --git a/examples/flutter/example/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/examples/flutter/example/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d98100..00000000 --- a/examples/flutter/example/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/examples/flutter/example/macos/Runner/AppDelegate.swift b/examples/flutter/example/macos/Runner/AppDelegate.swift deleted file mode 100644 index 8e02df28..00000000 --- a/examples/flutter/example/macos/Runner/AppDelegate.swift +++ /dev/null @@ -1,9 +0,0 @@ -import Cocoa -import FlutterMacOS - -@main -class AppDelegate: FlutterAppDelegate { - override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { - return true - } -} diff --git a/examples/flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/examples/flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index a2ec33f1..00000000 --- a/examples/flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "images" : [ - { - "size" : "16x16", - "idiom" : "mac", - "filename" : "app_icon_16.png", - "scale" : "1x" - }, - { - "size" : "16x16", - "idiom" : "mac", - "filename" : "app_icon_32.png", - "scale" : "2x" - }, - { - "size" : "32x32", - "idiom" : "mac", - "filename" : "app_icon_32.png", - "scale" : "1x" - }, - { - "size" : "32x32", - "idiom" : "mac", - "filename" : "app_icon_64.png", - "scale" : "2x" - }, - { - "size" : "128x128", - "idiom" : "mac", - "filename" : "app_icon_128.png", - "scale" : "1x" - }, - { - "size" : "128x128", - "idiom" : "mac", - "filename" : "app_icon_256.png", - "scale" : "2x" - }, - { - "size" : "256x256", - "idiom" : "mac", - "filename" : "app_icon_256.png", - "scale" : "1x" - }, - { - "size" : "256x256", - "idiom" : "mac", - "filename" : "app_icon_512.png", - "scale" : "2x" - }, - { - "size" : "512x512", - "idiom" : "mac", - "filename" : "app_icon_512.png", - "scale" : "1x" - }, - { - "size" : "512x512", - "idiom" : "mac", - "filename" : "app_icon_1024.png", - "scale" : "2x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} diff --git a/examples/flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png b/examples/flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png deleted file mode 100644 index 82b6f9d9..00000000 Binary files a/examples/flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png and /dev/null differ diff --git a/examples/flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png b/examples/flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png deleted file mode 100644 index 13b35eba..00000000 Binary files a/examples/flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png and /dev/null differ diff --git a/examples/flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png b/examples/flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png deleted file mode 100644 index 0a3f5fa4..00000000 Binary files a/examples/flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png and /dev/null differ diff --git a/examples/flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png b/examples/flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png deleted file mode 100644 index bdb57226..00000000 Binary files a/examples/flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png and /dev/null differ diff --git a/examples/flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png b/examples/flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png deleted file mode 100644 index f083318e..00000000 Binary files a/examples/flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png and /dev/null differ diff --git a/examples/flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png b/examples/flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png deleted file mode 100644 index 326c0e72..00000000 Binary files a/examples/flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png and /dev/null differ diff --git a/examples/flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png b/examples/flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png deleted file mode 100644 index 2f1632cf..00000000 Binary files a/examples/flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png and /dev/null differ diff --git a/examples/flutter/example/macos/Runner/Base.lproj/MainMenu.xib b/examples/flutter/example/macos/Runner/Base.lproj/MainMenu.xib deleted file mode 100644 index 80e867a4..00000000 --- a/examples/flutter/example/macos/Runner/Base.lproj/MainMenu.xib +++ /dev/null @@ -1,343 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/flutter/example/macos/Runner/Configs/AppInfo.xcconfig b/examples/flutter/example/macos/Runner/Configs/AppInfo.xcconfig deleted file mode 100644 index 322ba235..00000000 --- a/examples/flutter/example/macos/Runner/Configs/AppInfo.xcconfig +++ /dev/null @@ -1,14 +0,0 @@ -// Application-level settings for the Runner target. -// -// This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the -// future. If not, the values below would default to using the project name when this becomes a -// 'flutter create' template. - -// The application's name. By default this is also the title of the Flutter window. -PRODUCT_NAME = example - -// The application's bundle identifier -PRODUCT_BUNDLE_IDENTIFIER = app.polyvox.example - -// The copyright displayed in application information -PRODUCT_COPYRIGHT = Copyright © 2024 app.polyvox. All rights reserved. diff --git a/examples/flutter/example/macos/Runner/Configs/Debug.xcconfig b/examples/flutter/example/macos/Runner/Configs/Debug.xcconfig deleted file mode 100644 index 36b0fd94..00000000 --- a/examples/flutter/example/macos/Runner/Configs/Debug.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include "../../Flutter/Flutter-Debug.xcconfig" -#include "Warnings.xcconfig" diff --git a/examples/flutter/example/macos/Runner/Configs/Release.xcconfig b/examples/flutter/example/macos/Runner/Configs/Release.xcconfig deleted file mode 100644 index dff4f495..00000000 --- a/examples/flutter/example/macos/Runner/Configs/Release.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include "../../Flutter/Flutter-Release.xcconfig" -#include "Warnings.xcconfig" diff --git a/examples/flutter/example/macos/Runner/Configs/Warnings.xcconfig b/examples/flutter/example/macos/Runner/Configs/Warnings.xcconfig deleted file mode 100644 index 42bcbf47..00000000 --- a/examples/flutter/example/macos/Runner/Configs/Warnings.xcconfig +++ /dev/null @@ -1,13 +0,0 @@ -WARNING_CFLAGS = -Wall -Wconditional-uninitialized -Wnullable-to-nonnull-conversion -Wmissing-method-return-type -Woverlength-strings -GCC_WARN_UNDECLARED_SELECTOR = YES -CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES -CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE -CLANG_WARN__DUPLICATE_METHOD_MATCH = YES -CLANG_WARN_PRAGMA_PACK = YES -CLANG_WARN_STRICT_PROTOTYPES = YES -CLANG_WARN_COMMA = YES -GCC_WARN_STRICT_SELECTOR_MATCH = YES -CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES -CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES -GCC_WARN_SHADOW = YES -CLANG_WARN_UNREACHABLE_CODE = YES diff --git a/examples/flutter/example/macos/Runner/DebugProfile.entitlements b/examples/flutter/example/macos/Runner/DebugProfile.entitlements deleted file mode 100644 index dddb8a30..00000000 --- a/examples/flutter/example/macos/Runner/DebugProfile.entitlements +++ /dev/null @@ -1,12 +0,0 @@ - - - - - com.apple.security.app-sandbox - - com.apple.security.cs.allow-jit - - com.apple.security.network.server - - - diff --git a/examples/flutter/example/macos/Runner/Info.plist b/examples/flutter/example/macos/Runner/Info.plist deleted file mode 100644 index 4789daa6..00000000 --- a/examples/flutter/example/macos/Runner/Info.plist +++ /dev/null @@ -1,32 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIconFile - - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - $(FLUTTER_BUILD_NAME) - CFBundleVersion - $(FLUTTER_BUILD_NUMBER) - LSMinimumSystemVersion - $(MACOSX_DEPLOYMENT_TARGET) - NSHumanReadableCopyright - $(PRODUCT_COPYRIGHT) - NSMainNibFile - MainMenu - NSPrincipalClass - NSApplication - - diff --git a/examples/flutter/example/macos/Runner/MainFlutterWindow.swift b/examples/flutter/example/macos/Runner/MainFlutterWindow.swift deleted file mode 100644 index 3cc05eb2..00000000 --- a/examples/flutter/example/macos/Runner/MainFlutterWindow.swift +++ /dev/null @@ -1,15 +0,0 @@ -import Cocoa -import FlutterMacOS - -class MainFlutterWindow: NSWindow { - override func awakeFromNib() { - let flutterViewController = FlutterViewController() - let windowFrame = self.frame - self.contentViewController = flutterViewController - self.setFrame(windowFrame, display: true) - - RegisterGeneratedPlugins(registry: flutterViewController) - - super.awakeFromNib() - } -} diff --git a/examples/flutter/example/macos/Runner/Release.entitlements b/examples/flutter/example/macos/Runner/Release.entitlements deleted file mode 100644 index 852fa1a4..00000000 --- a/examples/flutter/example/macos/Runner/Release.entitlements +++ /dev/null @@ -1,8 +0,0 @@ - - - - - com.apple.security.app-sandbox - - - diff --git a/examples/flutter/example/macos/RunnerTests/RunnerTests.swift b/examples/flutter/example/macos/RunnerTests/RunnerTests.swift deleted file mode 100644 index 61f3bd1f..00000000 --- a/examples/flutter/example/macos/RunnerTests/RunnerTests.swift +++ /dev/null @@ -1,12 +0,0 @@ -import Cocoa -import FlutterMacOS -import XCTest - -class RunnerTests: XCTestCase { - - func testExample() { - // If you add code to the Runner application, consider adding tests here. - // See https://developer.apple.com/documentation/xctest for more information about using XCTest. - } - -} diff --git a/examples/flutter/example/pubspec.yaml b/examples/flutter/example/pubspec.yaml deleted file mode 100644 index 2f10f80c..00000000 --- a/examples/flutter/example/pubspec.yaml +++ /dev/null @@ -1,51 +0,0 @@ -name: thermion_flutter_example -description: Demonstrates how to use the thermion_flutter plugin. - -# The following line prevents the package from being accidentally published to -# pub.dev using `flutter pub publish`. This is preferred for private packages. -publish_to: 'none' # Remove this line if you wish to publish to pub.dev - -environment: - sdk: ">=3.3.0 <4.0.0" - -dependencies: - flutter: - sdk: flutter - path_provider: - thermion_flutter: - path: ../../../thermion_flutter/thermion_flutter - cupertino_icons: ^1.0.2 - web: - -dependency_overrides: - thermion_flutter: - path: ../../../thermion_flutter/thermion_flutter - thermion_flutter_platform_interface: - path: ../../../thermion_flutter/thermion_flutter_platform_interface - thermion_flutter_ffi: - path: ../../../thermion_flutter/thermion_flutter_ffi - thermion_flutter_web: - path: ../../../thermion_flutter/thermion_flutter_web - thermion_dart: - path: ../../../thermion_dart - -dev_dependencies: - flutter_test: - sdk: flutter - integration_test: - sdk: flutter - flutter_lints: ^1.0.0 - crypto: - image_compare: ^1.1.2 - -# The following section is specific to Flutter. -flutter: - uses-material-design: true - assets: - - assets/ - - assets/shapes/ - - assets/default_env/ - - assets/BusterDrone/ - - assets/BusterDrone/textures/ - - assets/FlightHelmet/ - diff --git a/examples/flutter/example/test/widget_test.dart b/examples/flutter/example/test/widget_test.dart deleted file mode 100644 index c0873888..00000000 --- a/examples/flutter/example/test/widget_test.dart +++ /dev/null @@ -1,27 +0,0 @@ -// This is a basic Flutter widget test. -// -// To perform an interaction with a widget in your test, use the WidgetTester -// utility that Flutter provides. For example, you can send tap and scroll -// gestures. You can also use WidgetTester to find child widgets in the widget -// tree, read text, and verify that the values of widget properties are correct. - -import 'package:flutter/material.dart'; -import 'package:flutter_test/flutter_test.dart'; - -import 'package:thermion_flutter_example/main.dart'; - -void main() { - testWidgets('Verify Platform version', (WidgetTester tester) async { - // Build our app and trigger a frame. - await tester.pumpWidget(const MyApp()); - - // Verify that platform version is retrieved. - expect( - find.byWidgetPredicate( - (Widget widget) => - widget is Text && widget.data!.startsWith('Running on:'), - ), - findsOneWidget, - ); - }); -} diff --git a/examples/flutter/example/test_driver/compare_goldens.sh b/examples/flutter/example/test_driver/compare_goldens.sh deleted file mode 100644 index 952ec892..00000000 --- a/examples/flutter/example/test_driver/compare_goldens.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash -device=$1 -if [ -z "$device" ]; then - echo "Usage: $0 " - exit 1; -fi - -rm -f integration_test/goldens/{ios,macos,windows,android}/diffs/*.png -flutter drive --driver=test_driver/integration_test.dart -d $1 --target=integration_test/plugin_integration_test.dart diff --git a/examples/flutter/example/test_driver/integration_test.dart b/examples/flutter/example/test_driver/integration_test.dart deleted file mode 100644 index 752a3842..00000000 --- a/examples/flutter/example/test_driver/integration_test.dart +++ /dev/null @@ -1,58 +0,0 @@ -import 'dart:io'; - -import 'package:integration_test/integration_test_driver_extended.dart'; -import 'package:image_compare/image_compare.dart'; - -Future main() async { - await integrationDriver( - onScreenshot: ( - String screenshotName, - List screenshotBytes, [ - Map? args, - ]) async { - final dir = screenshotName.split("/")[0]; - final name = screenshotName.split("/")[1]; - final File golden = await File('integration_test/goldens/$dir/$name.png'); - - if (!golden.existsSync()) { - throw Exception( - "Golden image ${golden.path} doesn't exist yet. Make sure you have run integraton_test_update_goldens.dart first"); - } - - var result = await compareImages( - src1: screenshotBytes, - src2: golden.readAsBytesSync(), - algorithm: ChiSquareDistanceHistogram()); - - print(result); - - // TODO - it would be preferable to use Flutter's GoldenFileComparator here, e.g. - // - // ```var comparator = LocalFileComparator(testImage.uri); - // comparator.compare(imageBytes, golden) - // comparator.getFailureFile(failure, golden, basedir) - // var result = await comparator.compare( - // Uint8List.fromList(screenshotBytes), golden.uri); - // if (!result.passed) { - // for (var key in result.diffs!.keys) { - // var byteData = await result.diffs![key]!.toByteData(); - // File('integration_test/goldens/$dir/diffs/$name.png') - // .writeAsBytesSync( - // byteData!.buffer.asUint8List(byteData!.offsetInBytes)); - // } - // return false; - // }``` - // but this is only available via a Flutter shell which is currently unavailable (this script is run as a plain Dart file I guess). - // let's revisit if/when this changes - // see https://github.com/flutter/flutter/issues/51890 and https://github.com/flutter/flutter/issues/103222 - - if (result > 0.005) { - File('integration_test/goldens/$dir/diffs/$name.png') - .writeAsBytesSync(screenshotBytes); - return false; - } - - return true; - }, - ); -} diff --git a/examples/flutter/example/test_driver/integration_test_update_goldens.dart b/examples/flutter/example/test_driver/integration_test_update_goldens.dart deleted file mode 100644 index e32febe2..00000000 --- a/examples/flutter/example/test_driver/integration_test_update_goldens.dart +++ /dev/null @@ -1,22 +0,0 @@ -import 'dart:io'; -import 'package:crypto/crypto.dart'; -import 'package:integration_test/integration_test_driver_extended.dart'; - -Future main() async { - await integrationDriver( - onScreenshot: ( - String screenshotName, - List screenshotBytes, [ - Map? args, - ]) async { - final dir = screenshotName.split("/")[0]; - final name = screenshotName.split("/")[1]; - final File image = await File('integration_test/goldens/$dir/$name.png') - .create(recursive: true); - - image.writeAsBytesSync(screenshotBytes); - - return true; - }, - ); -} diff --git a/examples/flutter/example/test_driver/regenerate_goldens.sh b/examples/flutter/example/test_driver/regenerate_goldens.sh deleted file mode 100644 index b1f06b4f..00000000 --- a/examples/flutter/example/test_driver/regenerate_goldens.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash -device=$1 -if [ -z "$device" ]; then - echo "Usage: $0 " - exit 1; -fi -rm -f integration_test/goldens/{ios,macos,windows,android}/*.png -flutter drive --driver=test_driver/integration_test_update_goldens.dart -d $1 --target=integration_test/plugin_integration_test.dart diff --git a/examples/flutter/example/web/favicon.png b/examples/flutter/example/web/favicon.png deleted file mode 100644 index 8aaa46ac..00000000 Binary files a/examples/flutter/example/web/favicon.png and /dev/null differ diff --git a/examples/flutter/example/web/icons/Icon-192.png b/examples/flutter/example/web/icons/Icon-192.png deleted file mode 100644 index b749bfef..00000000 Binary files a/examples/flutter/example/web/icons/Icon-192.png and /dev/null differ diff --git a/examples/flutter/example/web/icons/Icon-512.png b/examples/flutter/example/web/icons/Icon-512.png deleted file mode 100644 index 88cfd48d..00000000 Binary files a/examples/flutter/example/web/icons/Icon-512.png and /dev/null differ diff --git a/examples/flutter/example/web/icons/Icon-maskable-192.png b/examples/flutter/example/web/icons/Icon-maskable-192.png deleted file mode 100644 index eb9b4d76..00000000 Binary files a/examples/flutter/example/web/icons/Icon-maskable-192.png and /dev/null differ diff --git a/examples/flutter/example/web/icons/Icon-maskable-512.png b/examples/flutter/example/web/icons/Icon-maskable-512.png deleted file mode 100644 index d69c5669..00000000 Binary files a/examples/flutter/example/web/icons/Icon-maskable-512.png and /dev/null differ diff --git a/examples/flutter/example/web/index.html b/examples/flutter/example/web/index.html deleted file mode 100644 index afc3b66e..00000000 --- a/examples/flutter/example/web/index.html +++ /dev/null @@ -1,146 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - thermion_flutter_example - - - - - - - - - - -
- - - diff --git a/examples/flutter/example/web/main.dart b/examples/flutter/example/web/main.dart deleted file mode 100644 index 91a2b0f9..00000000 --- a/examples/flutter/example/web/main.dart +++ /dev/null @@ -1,53 +0,0 @@ - -// import 'package:polyvox_engine/app/app.dart'; -// import 'package:polyvox_engine/app/states/states.dart'; -// import 'package:polyvox_engine/services/asr_service.dart'; -// import 'package:polyvox_web/error_handler.dart'; -// import 'package:polyvox_web/services/web_asr_service.dart'; -// import 'package:polyvox_web/services/web_asset_repository.dart'; -// import 'package:polyvox_web/services/web_audio_service.dart'; -// import 'package:polyvox_web/services/web_auth_service.dart'; -// import 'package:polyvox_web/services/web_data_provider.dart'; -// import 'package:polyvox_web/services/web_purchase_service.dart'; -// import 'package:polyvox_web/services/web_scoring_service.dart'; -// import 'package:polyvox_web/web_canvas.dart'; -import 'package:thermion_dart/thermion_dart/thermion_viewer.dart'; -import 'package:thermion_dart/thermion_dart/compatibility/web/compatibility.dart'; -import 'package:thermion_dart/thermion_dart/thermion_viewer_ffi.dart'; -import 'package:thermion_dart/thermion_dart/compatibility/web/interop/thermion_dart_js_export_type.dart'; -import 'package:thermion_dart/thermion_dart/compatibility/web/interop/thermion_dart_js_extension_type.dart'; -import 'package:web/web.dart'; - -void main(List arguments) async { - var viewer = await WebViewer.initialize(); - - ThermionDartJSExportViewer.initializeBindings(viewer); - - print("Set wrapper, running!"); - - while (true) { - await Future.delayed(Duration(milliseconds: 16)); - } - print("Finisehd!"); -} - -class WebViewer { - static Future initialize() async { - var fc = FooChar(); - final canvas = document.getElementById("canvas") as HTMLCanvasElement; - canvas.width = window.innerWidth; - canvas.height = window.innerHeight; - - var resourceLoader = thermion_dart_web_get_resource_loader_wrapper(); - - var viewer = ThermionViewerFFI(resourceLoader: resourceLoader); - - await viewer.initialized; - var width = window.innerWidth; - var height = window.innerHeight; - await viewer.createSwapChain(width.toDouble(), height.toDouble()); - await viewer.updateViewportAndCameraProjection( - width.toDouble(), height.toDouble()); - return viewer; - } -} diff --git a/examples/flutter/example/web/main.mjs b/examples/flutter/example/web/main.mjs deleted file mode 100644 index 559c241f..00000000 --- a/examples/flutter/example/web/main.mjs +++ /dev/null @@ -1,358 +0,0 @@ -let buildArgsList; - -// `modulePromise` is a promise to the `WebAssembly.module` object to be -// instantiated. -// `importObjectPromise` is a promise to an object that contains any additional -// imports needed by the module that aren't provided by the standard runtime. -// The fields on this object will be merged into the importObject with which -// the module will be instantiated. -// This function returns a promise to the instantiated module. -export const instantiate = async (modulePromise, importObjectPromise) => { - let dartInstance; - - function stringFromDartString(string) { - const totalLength = dartInstance.exports.$stringLength(string); - let result = ''; - let index = 0; - while (index < totalLength) { - let chunkLength = Math.min(totalLength - index, 0xFFFF); - const array = new Array(chunkLength); - for (let i = 0; i < chunkLength; i++) { - array[i] = dartInstance.exports.$stringRead(string, index++); - } - result += String.fromCharCode(...array); - } - return result; - } - - function stringToDartString(string) { - const length = string.length; - let range = 0; - for (let i = 0; i < length; i++) { - range |= string.codePointAt(i); - } - if (range < 256) { - const dartString = dartInstance.exports.$stringAllocate1(length); - for (let i = 0; i < length; i++) { - dartInstance.exports.$stringWrite1(dartString, i, string.codePointAt(i)); - } - return dartString; - } else { - const dartString = dartInstance.exports.$stringAllocate2(length); - for (let i = 0; i < length; i++) { - dartInstance.exports.$stringWrite2(dartString, i, string.charCodeAt(i)); - } - return dartString; - } - } - - // Prints to the console - function printToConsole(value) { - if (typeof dartPrint == "function") { - dartPrint(value); - return; - } - if (typeof console == "object" && typeof console.log != "undefined") { - console.log(value); - return; - } - if (typeof print == "function") { - print(value); - return; - } - - throw "Unable to print message: " + js; - } - - // Converts a Dart List to a JS array. Any Dart objects will be converted, but - // this will be cheap for JSValues. - function arrayFromDartList(constructor, list) { - const length = dartInstance.exports.$listLength(list); - const array = new constructor(length); - for (let i = 0; i < length; i++) { - array[i] = dartInstance.exports.$listRead(list, i); - } - return array; - } - - buildArgsList = function(list) { - const dartList = dartInstance.exports.$makeStringList(); - for (let i = 0; i < list.length; i++) { - dartInstance.exports.$listAdd(dartList, stringToDartString(list[i])); - } - return dartList; - } - - // A special symbol attached to functions that wrap Dart functions. - const jsWrappedDartFunctionSymbol = Symbol("JSWrappedDartFunction"); - - function finalizeWrapper(dartFunction, wrapped) { - wrapped.dartFunction = dartFunction; - wrapped[jsWrappedDartFunctionSymbol] = true; - return wrapped; - } - - // Imports - const dart2wasm = { - -_11: x0 => new Array(x0), -_12: x0 => new Promise(x0), -_17: (o,s,v) => o[s] = v, -_18: f => finalizeWrapper(f,x0 => dartInstance.exports._18(f,x0)), -_19: f => finalizeWrapper(f,x0 => dartInstance.exports._19(f,x0)), -_20: (x0,x1,x2) => x0.call(x1,x2), -_21: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._21(f,x0,x1)), -_22: (x0,x1) => x0.call(x1), -_23: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._23(f,x0,x1)), -_44: () => Symbol("jsBoxedDartObjectProperty"), -_75: (x0,x1) => x0.getElementById(x1), -_1495: (x0,x1) => x0.width = x1, -_1497: (x0,x1) => x0.height = x1, -_1874: () => globalThis.window, -_1916: x0 => x0.innerWidth, -_1917: x0 => x0.innerHeight, -_6850: () => globalThis.document, -_12719: () => globalThis.createVoidCallback(), -_12720: () => globalThis.createVoidPointerCallback(), -_12721: () => globalThis.createBoolCallback(), -_12722: () => globalThis.createBoolCallback(), -_12724: v => stringToDartString(v.toString()), -_12740: () => { - let stackString = new Error().stack.toString(); - let frames = stackString.split('\n'); - let drop = 2; - if (frames[0] === 'Error') { - drop += 1; - } - return frames.slice(drop).join('\n'); - }, -_12759: s => stringToDartString(JSON.stringify(stringFromDartString(s))), -_12760: s => printToConsole(stringFromDartString(s)), -_12761: f => finalizeWrapper(f,() => dartInstance.exports._12761(f)), -_12762: f => finalizeWrapper(f,() => dartInstance.exports._12762(f)), -_12763: f => finalizeWrapper(f,x0 => dartInstance.exports._12763(f,x0)), -_12764: f => finalizeWrapper(f,() => dartInstance.exports._12764(f)), -_12765: f => finalizeWrapper(f,x0 => dartInstance.exports._12765(f,x0)), -_12766: f => finalizeWrapper(f,() => dartInstance.exports._12766(f)), -_12767: f => finalizeWrapper(f,x0 => dartInstance.exports._12767(f,x0)), -_12768: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12768(f,x0,x1)), -_12769: f => finalizeWrapper(f,() => dartInstance.exports._12769(f)), -_12770: f => finalizeWrapper(f,(x0,x1,x2,x3) => dartInstance.exports._12770(f,x0,x1,x2,x3)), -_12771: f => finalizeWrapper(f,x0 => dartInstance.exports._12771(f,x0)), -_12772: f => finalizeWrapper(f,() => dartInstance.exports._12772(f)), -_12773: f => finalizeWrapper(f,x0 => dartInstance.exports._12773(f,x0)), -_12774: f => finalizeWrapper(f,x0 => dartInstance.exports._12774(f,x0)), -_12775: f => finalizeWrapper(f,() => dartInstance.exports._12775(f)), -_12776: f => finalizeWrapper(f,(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9) => dartInstance.exports._12776(f,x0,x1,x2,x3,x4,x5,x6,x7,x8,x9)), -_12777: f => finalizeWrapper(f,x0 => dartInstance.exports._12777(f,x0)), -_12778: f => finalizeWrapper(f,() => dartInstance.exports._12778(f)), -_12779: f => finalizeWrapper(f,x0 => dartInstance.exports._12779(f,x0)), -_12780: f => finalizeWrapper(f,x0 => dartInstance.exports._12780(f,x0)), -_12781: f => finalizeWrapper(f,x0 => dartInstance.exports._12781(f,x0)), -_12782: f => finalizeWrapper(f,x0 => dartInstance.exports._12782(f,x0)), -_12783: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12783(f,x0,x1)), -_12784: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12784(f,x0,x1)), -_12785: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12785(f,x0,x1)), -_12786: f => finalizeWrapper(f,() => dartInstance.exports._12786(f)), -_12787: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12787(f,x0,x1)), -_12788: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12788(f,x0,x1)), -_12789: f => finalizeWrapper(f,() => dartInstance.exports._12789(f)), -_12790: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12790(f,x0,x1)), -_12791: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12791(f,x0,x1)), -_12792: f => finalizeWrapper(f,x0 => dartInstance.exports._12792(f,x0)), -_12793: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12793(f,x0,x1)), -_12794: f => finalizeWrapper(f,(x0,x1,x2,x3,x4) => dartInstance.exports._12794(f,x0,x1,x2,x3,x4)), -_12795: f => finalizeWrapper(f,x0 => dartInstance.exports._12795(f,x0)), -_12796: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12796(f,x0,x1)), -_12797: f => finalizeWrapper(f,x0 => dartInstance.exports._12797(f,x0)), -_12798: f => finalizeWrapper(f,() => dartInstance.exports._12798(f)), -_12799: f => finalizeWrapper(f,() => dartInstance.exports._12799(f)), -_12800: f => finalizeWrapper(f,(x0,x1,x2) => dartInstance.exports._12800(f,x0,x1,x2)), -_12801: f => finalizeWrapper(f,() => dartInstance.exports._12801(f)), -_12802: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12802(f,x0,x1)), -_12803: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12803(f,x0,x1)), -_12804: f => finalizeWrapper(f,(x0,x1,x2) => dartInstance.exports._12804(f,x0,x1,x2)), -_12805: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12805(f,x0,x1)), -_12806: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12806(f,x0,x1)), -_12807: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12807(f,x0,x1)), -_12808: f => finalizeWrapper(f,() => dartInstance.exports._12808(f)), -_12809: f => finalizeWrapper(f,() => dartInstance.exports._12809(f)), -_12810: f => finalizeWrapper(f,(x0,x1,x2) => dartInstance.exports._12810(f,x0,x1,x2)), -_12811: f => finalizeWrapper(f,x0 => dartInstance.exports._12811(f,x0)), -_12812: f => finalizeWrapper(f,x0 => dartInstance.exports._12812(f,x0)), -_12813: f => finalizeWrapper(f,x0 => dartInstance.exports._12813(f,x0)), -_12814: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12814(f,x0,x1)), -_12815: f => finalizeWrapper(f,() => dartInstance.exports._12815(f)), -_12816: f => finalizeWrapper(f,() => dartInstance.exports._12816(f)), -_12817: f => finalizeWrapper(f,x0 => dartInstance.exports._12817(f,x0)), -_12818: f => finalizeWrapper(f,() => dartInstance.exports._12818(f)), -_12819: f => finalizeWrapper(f,() => dartInstance.exports._12819(f)), -_12820: f => finalizeWrapper(f,() => dartInstance.exports._12820(f)), -_12821: f => finalizeWrapper(f,() => dartInstance.exports._12821(f)), -_12822: f => finalizeWrapper(f,() => dartInstance.exports._12822(f)), -_12823: f => finalizeWrapper(f,() => dartInstance.exports._12823(f)), -_12824: f => finalizeWrapper(f,(x0,x1,x2) => dartInstance.exports._12824(f,x0,x1,x2)), -_12825: f => finalizeWrapper(f,() => dartInstance.exports._12825(f)), -_12826: f => finalizeWrapper(f,x0 => dartInstance.exports._12826(f,x0)), -_12827: f => finalizeWrapper(f,x0 => dartInstance.exports._12827(f,x0)), -_12828: f => finalizeWrapper(f,(x0,x1,x2) => dartInstance.exports._12828(f,x0,x1,x2)), -_12829: f => finalizeWrapper(f,x0 => dartInstance.exports._12829(f,x0)), -_12830: f => finalizeWrapper(f,x0 => dartInstance.exports._12830(f,x0)), -_12831: f => finalizeWrapper(f,(x0,x1,x2,x3,x4,x5,x6) => dartInstance.exports._12831(f,x0,x1,x2,x3,x4,x5,x6)), -_12832: f => finalizeWrapper(f,x0 => dartInstance.exports._12832(f,x0)), -_12833: f => finalizeWrapper(f,(x0,x1,x2,x3) => dartInstance.exports._12833(f,x0,x1,x2,x3)), -_12834: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12834(f,x0,x1)), -_12835: f => finalizeWrapper(f,(x0,x1,x2,x3,x4) => dartInstance.exports._12835(f,x0,x1,x2,x3,x4)), -_12836: f => finalizeWrapper(f,(x0,x1,x2,x3,x4) => dartInstance.exports._12836(f,x0,x1,x2,x3,x4)), -_12837: f => finalizeWrapper(f,(x0,x1,x2,x3,x4,x5) => dartInstance.exports._12837(f,x0,x1,x2,x3,x4,x5)), -_12838: f => finalizeWrapper(f,(x0,x1,x2) => dartInstance.exports._12838(f,x0,x1,x2)), -_12839: f => finalizeWrapper(f,x0 => dartInstance.exports._12839(f,x0)), -_12840: f => finalizeWrapper(f,(x0,x1,x2) => dartInstance.exports._12840(f,x0,x1,x2)), -_12841: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12841(f,x0,x1)), -_12842: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12842(f,x0,x1)), -_12843: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12843(f,x0,x1)), -_12844: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12844(f,x0,x1)), -_12845: f => finalizeWrapper(f,x0 => dartInstance.exports._12845(f,x0)), -_12846: f => finalizeWrapper(f,() => dartInstance.exports._12846(f)), -_12847: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12847(f,x0,x1)), -_12848: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12848(f,x0,x1)), -_12849: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12849(f,x0,x1)), -_12850: f => finalizeWrapper(f,x0 => dartInstance.exports._12850(f,x0)), -_12851: f => finalizeWrapper(f,x0 => dartInstance.exports._12851(f,x0)), -_12852: f => finalizeWrapper(f,x0 => dartInstance.exports._12852(f,x0)), -_12853: f => finalizeWrapper(f,x0 => dartInstance.exports._12853(f,x0)), -_12854: f => finalizeWrapper(f,() => dartInstance.exports._12854(f)), -_12868: (ms, c) => - setTimeout(() => dartInstance.exports.$invokeCallback(c),ms), -_12872: (c) => - queueMicrotask(() => dartInstance.exports.$invokeCallback(c)), -_12874: (a, i) => a.push(i), -_12885: a => a.length, -_12887: (a, i) => a[i], -_12888: (a, i, v) => a[i] = v, -_12890: a => a.join(''), -_12900: (s, p, i) => s.indexOf(p, i), -_12903: (o, start, length) => new Uint8Array(o.buffer, o.byteOffset + start, length), -_12904: (o, start, length) => new Int8Array(o.buffer, o.byteOffset + start, length), -_12905: (o, start, length) => new Uint8ClampedArray(o.buffer, o.byteOffset + start, length), -_12906: (o, start, length) => new Uint16Array(o.buffer, o.byteOffset + start, length), -_12907: (o, start, length) => new Int16Array(o.buffer, o.byteOffset + start, length), -_12908: (o, start, length) => new Uint32Array(o.buffer, o.byteOffset + start, length), -_12909: (o, start, length) => new Int32Array(o.buffer, o.byteOffset + start, length), -_12912: (o, start, length) => new Float32Array(o.buffer, o.byteOffset + start, length), -_12913: (o, start, length) => new Float64Array(o.buffer, o.byteOffset + start, length), -_12918: (o) => new DataView(o.buffer, o.byteOffset, o.byteLength), -_12922: Function.prototype.call.bind(Object.getOwnPropertyDescriptor(DataView.prototype, 'byteLength').get), -_12923: (b, o) => new DataView(b, o), -_12925: Function.prototype.call.bind(DataView.prototype.getUint8), -_12927: Function.prototype.call.bind(DataView.prototype.getInt8), -_12929: Function.prototype.call.bind(DataView.prototype.getUint16), -_12931: Function.prototype.call.bind(DataView.prototype.getInt16), -_12933: Function.prototype.call.bind(DataView.prototype.getUint32), -_12935: Function.prototype.call.bind(DataView.prototype.getInt32), -_12941: Function.prototype.call.bind(DataView.prototype.getFloat32), -_12943: Function.prototype.call.bind(DataView.prototype.getFloat64), -_12962: (x0,x1,x2) => x0[x1] = x2, -_12964: o => o === undefined, -_12965: o => typeof o === 'boolean', -_12966: o => typeof o === 'number', -_12968: o => typeof o === 'string', -_12971: o => o instanceof Int8Array, -_12972: o => o instanceof Uint8Array, -_12973: o => o instanceof Uint8ClampedArray, -_12974: o => o instanceof Int16Array, -_12975: o => o instanceof Uint16Array, -_12976: o => o instanceof Int32Array, -_12977: o => o instanceof Uint32Array, -_12978: o => o instanceof Float32Array, -_12979: o => o instanceof Float64Array, -_12980: o => o instanceof ArrayBuffer, -_12981: o => o instanceof DataView, -_12982: o => o instanceof Array, -_12983: o => typeof o === 'function' && o[jsWrappedDartFunctionSymbol] === true, -_12987: (l, r) => l === r, -_12988: o => o, -_12989: o => o, -_12990: o => o, -_12991: b => !!b, -_12992: o => o.length, -_12995: (o, i) => o[i], -_12996: f => f.dartFunction, -_12997: l => arrayFromDartList(Int8Array, l), -_12998: l => arrayFromDartList(Uint8Array, l), -_12999: l => arrayFromDartList(Uint8ClampedArray, l), -_13000: l => arrayFromDartList(Int16Array, l), -_13001: l => arrayFromDartList(Uint16Array, l), -_13002: l => arrayFromDartList(Int32Array, l), -_13003: l => arrayFromDartList(Uint32Array, l), -_13004: l => arrayFromDartList(Float32Array, l), -_13005: l => arrayFromDartList(Float64Array, l), -_13006: (data, length) => { - const view = new DataView(new ArrayBuffer(length)); - for (let i = 0; i < length; i++) { - view.setUint8(i, dartInstance.exports.$byteDataGetUint8(data, i)); - } - return view; - }, -_13007: l => arrayFromDartList(Array, l), -_13008: stringFromDartString, -_13009: stringToDartString, -_13010: () => ({}), -_13012: l => new Array(l), -_13013: () => globalThis, -_13014: (constructor, args) => { - const factoryFunction = constructor.bind.apply( - constructor, [null, ...args]); - return new factoryFunction(); - }, -_13016: (o, p) => o[p], -_13018: (o, m, a) => o[m].apply(o, a), -_13020: o => String(o), -_13021: (p, s, f) => p.then(s, f), -_13040: (o, p) => o[p], -_13041: (o, p, v) => o[p] = v - }; - - const baseImports = { - dart2wasm: dart2wasm, - - - Math: Math, - Date: Date, - Object: Object, - Array: Array, - Reflect: Reflect, - }; - - const jsStringPolyfill = { - "charCodeAt": (s, i) => s.charCodeAt(i), - "compare": (s1, s2) => { - if (s1 < s2) return -1; - if (s1 > s2) return 1; - return 0; - }, - "concat": (s1, s2) => s1 + s2, - "equals": (s1, s2) => s1 === s2, - "fromCharCode": (i) => String.fromCharCode(i), - "length": (s) => s.length, - "substring": (s, a, b) => s.substring(a, b), - }; - - dartInstance = await WebAssembly.instantiate(await modulePromise, { - ...baseImports, - ...(await importObjectPromise), - "wasm:js-string": jsStringPolyfill, - }); - - return dartInstance; -} - -// Call the main function for the instantiated module -// `moduleInstance` is the instantiated dart2wasm module -// `args` are any arguments that should be passed into the main function. -export const invoke = (moduleInstance, ...args) => { - const dartMain = moduleInstance.exports.$getMain(); - const dartArgs = buildArgsList(args); - moduleInstance.exports.$invokeMain(dartMain, dartArgs); -} - diff --git a/examples/flutter/example/web/main.unopt.wasm b/examples/flutter/example/web/main.unopt.wasm deleted file mode 100644 index a27decf0..00000000 Binary files a/examples/flutter/example/web/main.unopt.wasm and /dev/null differ diff --git a/examples/flutter/example/web/main.wasm b/examples/flutter/example/web/main.wasm deleted file mode 100644 index d38184ee..00000000 Binary files a/examples/flutter/example/web/main.wasm and /dev/null differ diff --git a/examples/flutter/example/web/manifest.json b/examples/flutter/example/web/manifest.json deleted file mode 100644 index ce87a996..00000000 --- a/examples/flutter/example/web/manifest.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "thermion_flutter_example", - "short_name": "thermion_flutter_example", - "start_url": ".", - "display": "standalone", - "background_color": "#0175C2", - "theme_color": "#0175C2", - "description": "Demonstrates how to use the thermion_flutter plugin.", - "orientation": "portrait-primary", - "prefer_related_applications": false, - "icons": [ - { - "src": "icons/Icon-192.png", - "sizes": "192x192", - "type": "image/png" - }, - { - "src": "icons/Icon-512.png", - "sizes": "512x512", - "type": "image/png" - }, - { - "src": "icons/Icon-maskable-192.png", - "sizes": "192x192", - "type": "image/png", - "purpose": "maskable" - }, - { - "src": "icons/Icon-maskable-512.png", - "sizes": "512x512", - "type": "image/png", - "purpose": "maskable" - } - ] -} diff --git a/examples/flutter/example/web/thermion_dart.js b/examples/flutter/example/web/thermion_dart.js deleted file mode 120000 index 941603ed..00000000 --- a/examples/flutter/example/web/thermion_dart.js +++ /dev/null @@ -1 +0,0 @@ -../../../../dart_filament/native/web/build/build/out/dart_filament.js \ No newline at end of file diff --git a/examples/flutter/example/web/thermion_dart.wasm b/examples/flutter/example/web/thermion_dart.wasm deleted file mode 120000 index 9aab600a..00000000 --- a/examples/flutter/example/web/thermion_dart.wasm +++ /dev/null @@ -1 +0,0 @@ -../../../../dart_filament/native/web/build/build/out/dart_filament.wasm \ No newline at end of file diff --git a/examples/flutter/example/web/thermion_dart.worker.js b/examples/flutter/example/web/thermion_dart.worker.js deleted file mode 120000 index 6f8be374..00000000 --- a/examples/flutter/example/web/thermion_dart.worker.js +++ /dev/null @@ -1 +0,0 @@ -../../../../dart_filament/native/web/build/build/out/dart_filament.worker.js \ No newline at end of file diff --git a/examples/flutter/example/windows/.gitignore b/examples/flutter/example/windows/.gitignore deleted file mode 100644 index d492d0d9..00000000 --- a/examples/flutter/example/windows/.gitignore +++ /dev/null @@ -1,17 +0,0 @@ -flutter/ephemeral/ - -# Visual Studio user-specific files. -*.suo -*.user -*.userosscache -*.sln.docstates - -# Visual Studio build-related files. -x64/ -x86/ - -# Visual Studio cache files -# files ending in .cache can be ignored -*.[Cc]ache -# but keep track of directories ending in .cache -!*.[Cc]ache/ diff --git a/examples/flutter/example/windows/CMakeLists.txt b/examples/flutter/example/windows/CMakeLists.txt deleted file mode 100644 index f80d4678..00000000 --- a/examples/flutter/example/windows/CMakeLists.txt +++ /dev/null @@ -1,95 +0,0 @@ -cmake_minimum_required(VERSION 3.14) -project(thermion_flutter_example LANGUAGES CXX) - -set(BINARY_NAME "thermion_flutter_example") - -cmake_policy(SET CMP0063 NEW) - -set(CMAKE_INSTALL_RPATH "$ORIGIN/lib") - -# Configure build options. -get_property(IS_MULTICONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) -if(IS_MULTICONFIG) - set(CMAKE_CONFIGURATION_TYPES "Debug;Profile;Release" - CACHE STRING "" FORCE) -else() - if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) - set(CMAKE_BUILD_TYPE "Debug" CACHE - STRING "Flutter build mode" FORCE) - set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS - "Debug" "Profile" "Release") - endif() -endif() - -set(CMAKE_EXE_LINKER_FLAGS_PROFILE "${CMAKE_EXE_LINKER_FLAGS_RELEASE}") -set(CMAKE_SHARED_LINKER_FLAGS_PROFILE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE}") -set(CMAKE_C_FLAGS_PROFILE "${CMAKE_C_FLAGS_RELEASE}") -set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_RELEASE}") - -# Use Unicode for all projects. -add_definitions(-DUNICODE -D_UNICODE) - -# Compilation settings that should be applied to most targets. -function(APPLY_STANDARD_SETTINGS TARGET) - target_compile_features(${TARGET} PUBLIC cxx_std_17) - target_compile_options(${TARGET} PRIVATE /W0 /wd"4100") - target_compile_options(${TARGET} PRIVATE /EHsc) - target_compile_definitions(${TARGET} PRIVATE "_HAS_EXCEPTIONS=0") - target_compile_definitions(${TARGET} PRIVATE "$<$:_DEBUG>") -endfunction() - -set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter") - -# Flutter library and tool build rules. -add_subdirectory(${FLUTTER_MANAGED_DIR}) - -# Application build -add_subdirectory("runner") - -# Generated plugin build rules, which manage building the plugins and adding -# them to the application. -include(flutter/generated_plugins.cmake) - - -# === Installation === -# Support files are copied into place next to the executable, so that it can -# run in place. This is done instead of making a separate bundle (as on Linux) -# so that building and running from within Visual Studio will work. -set(BUILD_BUNDLE_DIR "$") -# Make the "install" step default, as it's required to run. -set(CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD 1) -if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) - set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE) -endif() - -set(INSTALL_BUNDLE_DATA_DIR "${CMAKE_INSTALL_PREFIX}/data") -set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}") - -install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}" - COMPONENT Runtime) - -install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" - COMPONENT Runtime) - -install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" - COMPONENT Runtime) - -if(PLUGIN_BUNDLED_LIBRARIES) - install(FILES "${PLUGIN_BUNDLED_LIBRARIES}" - DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" - COMPONENT Runtime) -endif() - -# Fully re-copy the assets directory on each build to avoid having stale files -# from a previous install. -set(FLUTTER_ASSET_DIR_NAME "flutter_assets") -install(CODE " - file(REMOVE_RECURSE \"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\") - " COMPONENT Runtime) -install(DIRECTORY "${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}" - DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" COMPONENT Runtime) - -# Install the AOT library on non-Debug builds only. -install(FILES "${AOT_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" - CONFIGURATIONS Profile;Release - COMPONENT Runtime) diff --git a/examples/flutter/example/windows/flutter/CMakeLists.txt b/examples/flutter/example/windows/flutter/CMakeLists.txt deleted file mode 100644 index 4f2af69b..00000000 --- a/examples/flutter/example/windows/flutter/CMakeLists.txt +++ /dev/null @@ -1,108 +0,0 @@ -cmake_minimum_required(VERSION 3.14) - -set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral") - -# Configuration provided via flutter tool. -include(${EPHEMERAL_DIR}/generated_config.cmake) - -# TODO: Move the rest of this into files in ephemeral. See -# https://github.com/flutter/flutter/issues/57146. -set(WRAPPER_ROOT "${EPHEMERAL_DIR}/cpp_client_wrapper") - -# Set fallback configurations for older versions of the flutter tool. -if (NOT DEFINED FLUTTER_TARGET_PLATFORM) - set(FLUTTER_TARGET_PLATFORM "windows-x64") -endif() - -# === Flutter Library === -set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/flutter_windows.dll") - -# Published to parent scope for install step. -set(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE) -set(FLUTTER_ICU_DATA_FILE "${EPHEMERAL_DIR}/icudtl.dat" PARENT_SCOPE) -set(PROJECT_BUILD_DIR "${PROJECT_DIR}/build/" PARENT_SCOPE) -set(AOT_LIBRARY "${PROJECT_DIR}/build/windows/app.so" PARENT_SCOPE) - -list(APPEND FLUTTER_LIBRARY_HEADERS - "flutter_export.h" - "flutter_windows.h" - "flutter_messenger.h" - "flutter_plugin_registrar.h" - "flutter_texture_registrar.h" -) -list(TRANSFORM FLUTTER_LIBRARY_HEADERS PREPEND "${EPHEMERAL_DIR}/") -add_library(flutter INTERFACE) -target_include_directories(flutter INTERFACE - "${EPHEMERAL_DIR}" -) -target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}.lib") -add_dependencies(flutter flutter_assemble) - -# === Wrapper === -list(APPEND CPP_WRAPPER_SOURCES_CORE - "core_implementations.cc" - "standard_codec.cc" -) -list(TRANSFORM CPP_WRAPPER_SOURCES_CORE PREPEND "${WRAPPER_ROOT}/") -list(APPEND CPP_WRAPPER_SOURCES_PLUGIN - "plugin_registrar.cc" -) -list(TRANSFORM CPP_WRAPPER_SOURCES_PLUGIN PREPEND "${WRAPPER_ROOT}/") -list(APPEND CPP_WRAPPER_SOURCES_APP - "flutter_engine.cc" - "flutter_view_controller.cc" -) -list(TRANSFORM CPP_WRAPPER_SOURCES_APP PREPEND "${WRAPPER_ROOT}/") - -# Wrapper sources needed for a plugin. -add_library(flutter_wrapper_plugin STATIC - ${CPP_WRAPPER_SOURCES_CORE} - ${CPP_WRAPPER_SOURCES_PLUGIN} -) -apply_standard_settings(flutter_wrapper_plugin) -set_target_properties(flutter_wrapper_plugin PROPERTIES - POSITION_INDEPENDENT_CODE ON) -set_target_properties(flutter_wrapper_plugin PROPERTIES - CXX_VISIBILITY_PRESET hidden) -target_link_libraries(flutter_wrapper_plugin PUBLIC flutter) -target_include_directories(flutter_wrapper_plugin PUBLIC - "${WRAPPER_ROOT}/include" -) -add_dependencies(flutter_wrapper_plugin flutter_assemble) - -# Wrapper sources needed for the runner. -add_library(flutter_wrapper_app STATIC - ${CPP_WRAPPER_SOURCES_CORE} - ${CPP_WRAPPER_SOURCES_APP} -) -apply_standard_settings(flutter_wrapper_app) -target_link_libraries(flutter_wrapper_app PUBLIC flutter) -target_include_directories(flutter_wrapper_app PUBLIC - "${WRAPPER_ROOT}/include" -) -add_dependencies(flutter_wrapper_app flutter_assemble) - -# === Flutter tool backend === -# _phony_ is a non-existent file to force this command to run every time, -# since currently there's no way to get a full input/output list from the -# flutter tool. -set(PHONY_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/_phony_") -set_source_files_properties("${PHONY_OUTPUT}" PROPERTIES SYMBOLIC TRUE) -add_custom_command( - OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS} - ${CPP_WRAPPER_SOURCES_CORE} ${CPP_WRAPPER_SOURCES_PLUGIN} - ${CPP_WRAPPER_SOURCES_APP} - ${PHONY_OUTPUT} - COMMAND ${CMAKE_COMMAND} -E env - ${FLUTTER_TOOL_ENVIRONMENT} - "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.bat" - ${FLUTTER_TARGET_PLATFORM} $ - VERBATIM -) -add_custom_target(flutter_assemble DEPENDS - "${FLUTTER_LIBRARY}" - ${FLUTTER_LIBRARY_HEADERS} - ${CPP_WRAPPER_SOURCES_CORE} - ${CPP_WRAPPER_SOURCES_PLUGIN} - ${CPP_WRAPPER_SOURCES_APP} -) diff --git a/examples/flutter/example/windows/flutter/generated_plugin_registrant.cc b/examples/flutter/example/windows/flutter/generated_plugin_registrant.cc deleted file mode 100644 index 64919ad2..00000000 --- a/examples/flutter/example/windows/flutter/generated_plugin_registrant.cc +++ /dev/null @@ -1,14 +0,0 @@ -// -// Generated file. Do not edit. -// - -// clang-format off - -#include "generated_plugin_registrant.h" - -#include - -void RegisterPlugins(flutter::PluginRegistry* registry) { - ThermionFlutterPluginCApiRegisterWithRegistrar( - registry->GetRegistrarForPlugin("ThermionFlutterPluginCApi")); -} diff --git a/examples/flutter/example/windows/flutter/generated_plugin_registrant.h b/examples/flutter/example/windows/flutter/generated_plugin_registrant.h deleted file mode 100644 index dc139d85..00000000 --- a/examples/flutter/example/windows/flutter/generated_plugin_registrant.h +++ /dev/null @@ -1,15 +0,0 @@ -// -// Generated file. Do not edit. -// - -// clang-format off - -#ifndef GENERATED_PLUGIN_REGISTRANT_ -#define GENERATED_PLUGIN_REGISTRANT_ - -#include - -// Registers Flutter plugins. -void RegisterPlugins(flutter::PluginRegistry* registry); - -#endif // GENERATED_PLUGIN_REGISTRANT_ diff --git a/examples/flutter/example/windows/flutter/generated_plugins.cmake b/examples/flutter/example/windows/flutter/generated_plugins.cmake deleted file mode 100644 index 55f1a93d..00000000 --- a/examples/flutter/example/windows/flutter/generated_plugins.cmake +++ /dev/null @@ -1,24 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST - thermion_flutter -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/examples/flutter/example/windows/runner/CMakeLists.txt b/examples/flutter/example/windows/runner/CMakeLists.txt deleted file mode 100644 index de2d8916..00000000 --- a/examples/flutter/example/windows/runner/CMakeLists.txt +++ /dev/null @@ -1,17 +0,0 @@ -cmake_minimum_required(VERSION 3.14) -project(runner LANGUAGES CXX) - -add_executable(${BINARY_NAME} WIN32 - "flutter_window.cpp" - "main.cpp" - "utils.cpp" - "win32_window.cpp" - "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" - "Runner.rc" - "runner.exe.manifest" -) -apply_standard_settings(${BINARY_NAME}) -target_compile_definitions(${BINARY_NAME} PRIVATE "NOMINMAX") -target_link_libraries(${BINARY_NAME} PRIVATE flutter flutter_wrapper_app) -target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}") -add_dependencies(${BINARY_NAME} flutter_assemble) diff --git a/examples/flutter/example/windows/runner/Runner.rc b/examples/flutter/example/windows/runner/Runner.rc deleted file mode 100644 index efe6dc2b..00000000 --- a/examples/flutter/example/windows/runner/Runner.rc +++ /dev/null @@ -1,121 +0,0 @@ -// Microsoft Visual C++ generated resource script. -// -#pragma code_page(65001) -#include "resource.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#include "winres.h" - -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// English (United States) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE -BEGIN - "resource.h\0" -END - -2 TEXTINCLUDE -BEGIN - "#include ""winres.h""\r\n" - "\0" -END - -3 TEXTINCLUDE -BEGIN - "\r\n" - "\0" -END - -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// Icon -// - -// Icon with lowest ID value placed first to ensure application icon -// remains consistent on all systems. -IDI_APP_ICON ICON "resources\\app_icon.ico" - - -///////////////////////////////////////////////////////////////////////////// -// -// Version -// - -#if defined(FLUTTER_VERSION_MAJOR) && defined(FLUTTER_VERSION_MINOR) && defined(FLUTTER_VERSION_PATCH) && defined(FLUTTER_VERSION_BUILD) -#define VERSION_AS_NUMBER FLUTTER_VERSION_MAJOR,FLUTTER_VERSION_MINOR,FLUTTER_VERSION_PATCH,FLUTTER_VERSION_BUILD -#else -#define VERSION_AS_NUMBER 1,0,0,0 -#endif - -#if defined(FLUTTER_VERSION) -#define VERSION_AS_STRING FLUTTER_VERSION -#else -#define VERSION_AS_STRING "1.0.0" -#endif - -VS_VERSION_INFO VERSIONINFO - FILEVERSION VERSION_AS_NUMBER - PRODUCTVERSION VERSION_AS_NUMBER - FILEFLAGSMASK VS_FFI_FILEFLAGSMASK -#ifdef _DEBUG - FILEFLAGS VS_FF_DEBUG -#else - FILEFLAGS 0x0L -#endif - FILEOS VOS__WINDOWS32 - FILETYPE VFT_APP - FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904e4" - BEGIN - VALUE "CompanyName", "app.polyvox" "\0" - VALUE "FileDescription", "thermion_flutter_example" "\0" - VALUE "FileVersion", VERSION_AS_STRING "\0" - VALUE "InternalName", "thermion_flutter_example" "\0" - VALUE "LegalCopyright", "Copyright (C) 2022 app.polyvox. All rights reserved." "\0" - VALUE "OriginalFilename", "thermion_flutter_example.exe" "\0" - VALUE "ProductName", "thermion_flutter_example" "\0" - VALUE "ProductVersion", VERSION_AS_STRING "\0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x409, 1252 - END -END - -#endif // English (United States) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// - - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED diff --git a/examples/flutter/example/windows/runner/flutter_window.cpp b/examples/flutter/example/windows/runner/flutter_window.cpp deleted file mode 100644 index b43b9095..00000000 --- a/examples/flutter/example/windows/runner/flutter_window.cpp +++ /dev/null @@ -1,61 +0,0 @@ -#include "flutter_window.h" - -#include - -#include "flutter/generated_plugin_registrant.h" - -FlutterWindow::FlutterWindow(const flutter::DartProject& project) - : project_(project) {} - -FlutterWindow::~FlutterWindow() {} - -bool FlutterWindow::OnCreate() { - if (!Win32Window::OnCreate()) { - return false; - } - - RECT frame = GetClientArea(); - - // The size here must match the window dimensions to avoid unnecessary surface - // creation / destruction in the startup path. - flutter_controller_ = std::make_unique( - frame.right - frame.left, frame.bottom - frame.top, project_); - // Ensure that basic setup of the controller was successful. - if (!flutter_controller_->engine() || !flutter_controller_->view()) { - return false; - } - RegisterPlugins(flutter_controller_->engine()); - SetChildContent(flutter_controller_->view()->GetNativeWindow()); - return true; -} - -void FlutterWindow::OnDestroy() { - if (flutter_controller_) { - flutter_controller_ = nullptr; - } - - Win32Window::OnDestroy(); -} - -LRESULT -FlutterWindow::MessageHandler(HWND hwnd, UINT const message, - WPARAM const wparam, - LPARAM const lparam) noexcept { - // Give Flutter, including plugins, an opportunity to handle window messages. - if (flutter_controller_) { - std::optional result = - flutter_controller_->HandleTopLevelWindowProc(hwnd, message, wparam, - lparam); - if (result) { - return *result; - } - } - - switch (message) { - case WM_FONTCHANGE: - flutter_controller_->engine()->ReloadSystemFonts(); - break; - } - - return Win32Window::MessageHandler(hwnd, message, wparam, lparam); -} diff --git a/examples/flutter/example/windows/runner/flutter_window.h b/examples/flutter/example/windows/runner/flutter_window.h deleted file mode 100644 index 6da0652f..00000000 --- a/examples/flutter/example/windows/runner/flutter_window.h +++ /dev/null @@ -1,33 +0,0 @@ -#ifndef RUNNER_FLUTTER_WINDOW_H_ -#define RUNNER_FLUTTER_WINDOW_H_ - -#include -#include - -#include - -#include "win32_window.h" - -// A window that does nothing but host a Flutter view. -class FlutterWindow : public Win32Window { - public: - // Creates a new FlutterWindow hosting a Flutter view running |project|. - explicit FlutterWindow(const flutter::DartProject& project); - virtual ~FlutterWindow(); - - protected: - // Win32Window: - bool OnCreate() override; - void OnDestroy() override; - LRESULT MessageHandler(HWND window, UINT const message, WPARAM const wparam, - LPARAM const lparam) noexcept override; - - private: - // The project to run. - flutter::DartProject project_; - - // The Flutter instance hosted by this window. - std::unique_ptr flutter_controller_; -}; - -#endif // RUNNER_FLUTTER_WINDOW_H_ diff --git a/examples/flutter/example/windows/runner/main.cpp b/examples/flutter/example/windows/runner/main.cpp deleted file mode 100644 index 97489729..00000000 --- a/examples/flutter/example/windows/runner/main.cpp +++ /dev/null @@ -1,43 +0,0 @@ -#include -#include -#include - -#include "flutter_window.h" -#include "utils.h" - -int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev, - _In_ wchar_t *command_line, _In_ int show_command) { - // Attach to console when present (e.g., 'flutter run') or create a - // new console when running with a debugger. - if (!::AttachConsole(ATTACH_PARENT_PROCESS) && ::IsDebuggerPresent()) { - CreateAndAttachConsole(); - } - - // Initialize COM, so that it is available for use in the library and/or - // plugins. - ::CoInitializeEx(nullptr, COINIT_APARTMENTTHREADED); - - flutter::DartProject project(L"data"); - - std::vector command_line_arguments = - GetCommandLineArguments(); - - project.set_dart_entrypoint_arguments(std::move(command_line_arguments)); - - FlutterWindow window(project); - Win32Window::Point origin(10, 10); - Win32Window::Size size(1280, 720); - if (!window.CreateAndShow(L"thermion_flutter_example", origin, size)) { - return EXIT_FAILURE; - } - window.SetQuitOnClose(true); - - ::MSG msg; - while (::GetMessage(&msg, nullptr, 0, 0)) { - ::TranslateMessage(&msg); - ::DispatchMessage(&msg); - } - - ::CoUninitialize(); - return EXIT_SUCCESS; -} diff --git a/examples/flutter/example/windows/runner/resource.h b/examples/flutter/example/windows/runner/resource.h deleted file mode 100644 index 66a65d1e..00000000 --- a/examples/flutter/example/windows/runner/resource.h +++ /dev/null @@ -1,16 +0,0 @@ -//{{NO_DEPENDENCIES}} -// Microsoft Visual C++ generated include file. -// Used by Runner.rc -// -#define IDI_APP_ICON 101 - -// Next default values for new objects -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 102 -#define _APS_NEXT_COMMAND_VALUE 40001 -#define _APS_NEXT_CONTROL_VALUE 1001 -#define _APS_NEXT_SYMED_VALUE 101 -#endif -#endif diff --git a/examples/flutter/example/windows/runner/resources/app_icon.ico b/examples/flutter/example/windows/runner/resources/app_icon.ico deleted file mode 100644 index c04e20ca..00000000 Binary files a/examples/flutter/example/windows/runner/resources/app_icon.ico and /dev/null differ diff --git a/examples/flutter/example/windows/runner/runner.exe.manifest b/examples/flutter/example/windows/runner/runner.exe.manifest deleted file mode 100644 index c977c4a4..00000000 --- a/examples/flutter/example/windows/runner/runner.exe.manifest +++ /dev/null @@ -1,20 +0,0 @@ - - - - - PerMonitorV2 - - - - - - - - - - - - - - - diff --git a/examples/flutter/example/windows/runner/utils.cpp b/examples/flutter/example/windows/runner/utils.cpp deleted file mode 100644 index d19bdbbc..00000000 --- a/examples/flutter/example/windows/runner/utils.cpp +++ /dev/null @@ -1,64 +0,0 @@ -#include "utils.h" - -#include -#include -#include -#include - -#include - -void CreateAndAttachConsole() { - if (::AllocConsole()) { - FILE *unused; - if (freopen_s(&unused, "CONOUT$", "w", stdout)) { - _dup2(_fileno(stdout), 1); - } - if (freopen_s(&unused, "CONOUT$", "w", stderr)) { - _dup2(_fileno(stdout), 2); - } - std::ios::sync_with_stdio(); - FlutterDesktopResyncOutputStreams(); - } -} - -std::vector GetCommandLineArguments() { - // Convert the UTF-16 command line arguments to UTF-8 for the Engine to use. - int argc; - wchar_t** argv = ::CommandLineToArgvW(::GetCommandLineW(), &argc); - if (argv == nullptr) { - return std::vector(); - } - - std::vector command_line_arguments; - - // Skip the first argument as it's the binary name. - for (int i = 1; i < argc; i++) { - command_line_arguments.push_back(Utf8FromUtf16(argv[i])); - } - - ::LocalFree(argv); - - return command_line_arguments; -} - -std::string Utf8FromUtf16(const wchar_t* utf16_string) { - if (utf16_string == nullptr) { - return std::string(); - } - int target_length = ::WideCharToMultiByte( - CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string, - -1, nullptr, 0, nullptr, nullptr); - if (target_length == 0) { - return std::string(); - } - std::string utf8_string; - utf8_string.resize(target_length); - int converted_length = ::WideCharToMultiByte( - CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string, - -1, utf8_string.data(), - target_length, nullptr, nullptr); - if (converted_length == 0) { - return std::string(); - } - return utf8_string; -} diff --git a/examples/flutter/example/windows/runner/utils.h b/examples/flutter/example/windows/runner/utils.h deleted file mode 100644 index 3879d547..00000000 --- a/examples/flutter/example/windows/runner/utils.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef RUNNER_UTILS_H_ -#define RUNNER_UTILS_H_ - -#include -#include - -// Creates a console for the process, and redirects stdout and stderr to -// it for both the runner and the Flutter library. -void CreateAndAttachConsole(); - -// Takes a null-terminated wchar_t* encoded in UTF-16 and returns a std::string -// encoded in UTF-8. Returns an empty std::string on failure. -std::string Utf8FromUtf16(const wchar_t* utf16_string); - -// Gets the command line arguments passed in as a std::vector, -// encoded in UTF-8. Returns an empty std::vector on failure. -std::vector GetCommandLineArguments(); - -#endif // RUNNER_UTILS_H_ diff --git a/examples/flutter/example/windows/runner/win32_window.cpp b/examples/flutter/example/windows/runner/win32_window.cpp deleted file mode 100644 index c10f08dc..00000000 --- a/examples/flutter/example/windows/runner/win32_window.cpp +++ /dev/null @@ -1,245 +0,0 @@ -#include "win32_window.h" - -#include - -#include "resource.h" - -namespace { - -constexpr const wchar_t kWindowClassName[] = L"FLUTTER_RUNNER_WIN32_WINDOW"; - -// The number of Win32Window objects that currently exist. -static int g_active_window_count = 0; - -using EnableNonClientDpiScaling = BOOL __stdcall(HWND hwnd); - -// Scale helper to convert logical scaler values to physical using passed in -// scale factor -int Scale(int source, double scale_factor) { - return static_cast(source * scale_factor); -} - -// Dynamically loads the |EnableNonClientDpiScaling| from the User32 module. -// This API is only needed for PerMonitor V1 awareness mode. -void EnableFullDpiSupportIfAvailable(HWND hwnd) { - HMODULE user32_module = LoadLibraryA("User32.dll"); - if (!user32_module) { - return; - } - auto enable_non_client_dpi_scaling = - reinterpret_cast( - GetProcAddress(user32_module, "EnableNonClientDpiScaling")); - if (enable_non_client_dpi_scaling != nullptr) { - enable_non_client_dpi_scaling(hwnd); - FreeLibrary(user32_module); - } -} - -} // namespace - -// Manages the Win32Window's window class registration. -class WindowClassRegistrar { - public: - ~WindowClassRegistrar() = default; - - // Returns the singleton registar instance. - static WindowClassRegistrar* GetInstance() { - if (!instance_) { - instance_ = new WindowClassRegistrar(); - } - return instance_; - } - - // Returns the name of the window class, registering the class if it hasn't - // previously been registered. - const wchar_t* GetWindowClass(); - - // Unregisters the window class. Should only be called if there are no - // instances of the window. - void UnregisterWindowClass(); - - private: - WindowClassRegistrar() = default; - - static WindowClassRegistrar* instance_; - - bool class_registered_ = false; -}; - -WindowClassRegistrar* WindowClassRegistrar::instance_ = nullptr; - -const wchar_t* WindowClassRegistrar::GetWindowClass() { - if (!class_registered_) { - WNDCLASS window_class{}; - window_class.hCursor = LoadCursor(nullptr, IDC_ARROW); - window_class.lpszClassName = kWindowClassName; - window_class.style = CS_HREDRAW | CS_VREDRAW; - window_class.cbClsExtra = 0; - window_class.cbWndExtra = 0; - window_class.hInstance = GetModuleHandle(nullptr); - window_class.hIcon = - LoadIcon(window_class.hInstance, MAKEINTRESOURCE(IDI_APP_ICON)); - window_class.hbrBackground = 0; - window_class.lpszMenuName = nullptr; - window_class.lpfnWndProc = Win32Window::WndProc; - RegisterClass(&window_class); - class_registered_ = true; - } - return kWindowClassName; -} - -void WindowClassRegistrar::UnregisterWindowClass() { - UnregisterClass(kWindowClassName, nullptr); - class_registered_ = false; -} - -Win32Window::Win32Window() { - ++g_active_window_count; -} - -Win32Window::~Win32Window() { - --g_active_window_count; - Destroy(); -} - -bool Win32Window::CreateAndShow(const std::wstring& title, - const Point& origin, - const Size& size) { - Destroy(); - - const wchar_t* window_class = - WindowClassRegistrar::GetInstance()->GetWindowClass(); - - const POINT target_point = {static_cast(origin.x), - static_cast(origin.y)}; - HMONITOR monitor = MonitorFromPoint(target_point, MONITOR_DEFAULTTONEAREST); - UINT dpi = FlutterDesktopGetDpiForMonitor(monitor); - double scale_factor = dpi / 96.0; - - HWND window = CreateWindow( - window_class, title.c_str(), WS_OVERLAPPEDWINDOW | WS_VISIBLE, - Scale(origin.x, scale_factor), Scale(origin.y, scale_factor), - Scale(size.width, scale_factor), Scale(size.height, scale_factor), - nullptr, nullptr, GetModuleHandle(nullptr), this); - - if (!window) { - return false; - } - - return OnCreate(); -} - -// static -LRESULT CALLBACK Win32Window::WndProc(HWND const window, - UINT const message, - WPARAM const wparam, - LPARAM const lparam) noexcept { - if (message == WM_NCCREATE) { - auto window_struct = reinterpret_cast(lparam); - SetWindowLongPtr(window, GWLP_USERDATA, - reinterpret_cast(window_struct->lpCreateParams)); - - auto that = static_cast(window_struct->lpCreateParams); - EnableFullDpiSupportIfAvailable(window); - that->window_handle_ = window; - } else if (Win32Window* that = GetThisFromHandle(window)) { - return that->MessageHandler(window, message, wparam, lparam); - } - - return DefWindowProc(window, message, wparam, lparam); -} - -LRESULT -Win32Window::MessageHandler(HWND hwnd, - UINT const message, - WPARAM const wparam, - LPARAM const lparam) noexcept { - switch (message) { - case WM_DESTROY: - window_handle_ = nullptr; - Destroy(); - if (quit_on_close_) { - PostQuitMessage(0); - } - return 0; - - case WM_DPICHANGED: { - auto newRectSize = reinterpret_cast(lparam); - LONG newWidth = newRectSize->right - newRectSize->left; - LONG newHeight = newRectSize->bottom - newRectSize->top; - - SetWindowPos(hwnd, nullptr, newRectSize->left, newRectSize->top, newWidth, - newHeight, SWP_NOZORDER | SWP_NOACTIVATE); - - return 0; - } - case WM_SIZE: { - RECT rect = GetClientArea(); - if (child_content_ != nullptr) { - // Size and position the child window. - MoveWindow(child_content_, rect.left, rect.top, rect.right - rect.left, - rect.bottom - rect.top, TRUE); - } - return 0; - } - - case WM_ACTIVATE: - if (child_content_ != nullptr) { - SetFocus(child_content_); - } - return 0; - } - - return DefWindowProc(window_handle_, message, wparam, lparam); -} - -void Win32Window::Destroy() { - OnDestroy(); - - if (window_handle_) { - DestroyWindow(window_handle_); - window_handle_ = nullptr; - } - if (g_active_window_count == 0) { - WindowClassRegistrar::GetInstance()->UnregisterWindowClass(); - } -} - -Win32Window* Win32Window::GetThisFromHandle(HWND const window) noexcept { - return reinterpret_cast( - GetWindowLongPtr(window, GWLP_USERDATA)); -} - -void Win32Window::SetChildContent(HWND content) { - child_content_ = content; - SetParent(content, window_handle_); - RECT frame = GetClientArea(); - - MoveWindow(content, frame.left, frame.top, frame.right - frame.left, - frame.bottom - frame.top, true); - - SetFocus(child_content_); -} - -RECT Win32Window::GetClientArea() { - RECT frame; - GetClientRect(window_handle_, &frame); - return frame; -} - -HWND Win32Window::GetHandle() { - return window_handle_; -} - -void Win32Window::SetQuitOnClose(bool quit_on_close) { - quit_on_close_ = quit_on_close; -} - -bool Win32Window::OnCreate() { - // No-op; provided for subclasses. - return true; -} - -void Win32Window::OnDestroy() { - // No-op; provided for subclasses. -} diff --git a/examples/flutter/example/windows/runner/win32_window.h b/examples/flutter/example/windows/runner/win32_window.h deleted file mode 100644 index 17ba4311..00000000 --- a/examples/flutter/example/windows/runner/win32_window.h +++ /dev/null @@ -1,98 +0,0 @@ -#ifndef RUNNER_WIN32_WINDOW_H_ -#define RUNNER_WIN32_WINDOW_H_ - -#include - -#include -#include -#include - -// A class abstraction for a high DPI-aware Win32 Window. Intended to be -// inherited from by classes that wish to specialize with custom -// rendering and input handling -class Win32Window { - public: - struct Point { - unsigned int x; - unsigned int y; - Point(unsigned int x, unsigned int y) : x(x), y(y) {} - }; - - struct Size { - unsigned int width; - unsigned int height; - Size(unsigned int width, unsigned int height) - : width(width), height(height) {} - }; - - Win32Window(); - virtual ~Win32Window(); - - // Creates and shows a win32 window with |title| and position and size using - // |origin| and |size|. New windows are created on the default monitor. Window - // sizes are specified to the OS in physical pixels, hence to ensure a - // consistent size to will treat the width height passed in to this function - // as logical pixels and scale to appropriate for the default monitor. Returns - // true if the window was created successfully. - bool CreateAndShow(const std::wstring& title, - const Point& origin, - const Size& size); - - // Release OS resources associated with window. - void Destroy(); - - // Inserts |content| into the window tree. - void SetChildContent(HWND content); - - // Returns the backing Window handle to enable clients to set icon and other - // window properties. Returns nullptr if the window has been destroyed. - HWND GetHandle(); - - // If true, closing this window will quit the application. - void SetQuitOnClose(bool quit_on_close); - - // Return a RECT representing the bounds of the current client area. - RECT GetClientArea(); - - protected: - // Processes and route salient window messages for mouse handling, - // size change and DPI. Delegates handling of these to member overloads that - // inheriting classes can handle. - virtual LRESULT MessageHandler(HWND window, - UINT const message, - WPARAM const wparam, - LPARAM const lparam) noexcept; - - // Called when CreateAndShow is called, allowing subclass window-related - // setup. Subclasses should return false if setup fails. - virtual bool OnCreate(); - - // Called when Destroy is called. - virtual void OnDestroy(); - - private: - friend class WindowClassRegistrar; - - // OS callback called by message pump. Handles the WM_NCCREATE message which - // is passed when the non-client area is being created and enables automatic - // non-client DPI scaling so that the non-client area automatically - // responsponds to changes in DPI. All other messages are handled by - // MessageHandler. - static LRESULT CALLBACK WndProc(HWND const window, - UINT const message, - WPARAM const wparam, - LPARAM const lparam) noexcept; - - // Retrieves a class instance pointer for |window| - static Win32Window* GetThisFromHandle(HWND const window) noexcept; - - bool quit_on_close_ = false; - - // window handle for top level window. - HWND window_handle_ = nullptr; - - // window handle for hosted content. - HWND child_content_ = nullptr; -}; - -#endif // RUNNER_WIN32_WINDOW_H_ diff --git a/examples/flutter/quickstart/.gitignore b/examples/flutter/quickstart/.gitignore deleted file mode 100644 index 29a3a501..00000000 --- a/examples/flutter/quickstart/.gitignore +++ /dev/null @@ -1,43 +0,0 @@ -# Miscellaneous -*.class -*.log -*.pyc -*.swp -.DS_Store -.atom/ -.buildlog/ -.history -.svn/ -migrate_working_dir/ - -# IntelliJ related -*.iml -*.ipr -*.iws -.idea/ - -# The .vscode folder contains launch configuration and tasks you configure in -# VS Code which you may wish to be included in version control, so this line -# is commented out by default. -#.vscode/ - -# Flutter/Dart/Pub related -**/doc/api/ -**/ios/Flutter/.last_build_id -.dart_tool/ -.flutter-plugins -.flutter-plugins-dependencies -.pub-cache/ -.pub/ -/build/ - -# Symbolication related -app.*.symbols - -# Obfuscation related -app.*.map.json - -# Android Studio will place build artifacts here -/android/app/debug -/android/app/profile -/android/app/release diff --git a/examples/flutter/quickstart/.metadata b/examples/flutter/quickstart/.metadata deleted file mode 100644 index 62c6c8ef..00000000 --- a/examples/flutter/quickstart/.metadata +++ /dev/null @@ -1,45 +0,0 @@ -# This file tracks properties of this Flutter project. -# Used by Flutter tool to assess capabilities and perform upgrades etc. -# -# This file should be version controlled and should not be manually edited. - -version: - revision: "7b6d667701e38c1d9d700e2bcc29bc7a06598c59" - channel: "master" - -project_type: app - -# Tracks metadata for the flutter migrate command -migration: - platforms: - - platform: root - create_revision: 7b6d667701e38c1d9d700e2bcc29bc7a06598c59 - base_revision: 7b6d667701e38c1d9d700e2bcc29bc7a06598c59 - - platform: android - create_revision: 7b6d667701e38c1d9d700e2bcc29bc7a06598c59 - base_revision: 7b6d667701e38c1d9d700e2bcc29bc7a06598c59 - - platform: ios - create_revision: 7b6d667701e38c1d9d700e2bcc29bc7a06598c59 - base_revision: 7b6d667701e38c1d9d700e2bcc29bc7a06598c59 - - platform: linux - create_revision: 7b6d667701e38c1d9d700e2bcc29bc7a06598c59 - base_revision: 7b6d667701e38c1d9d700e2bcc29bc7a06598c59 - - platform: macos - create_revision: 7b6d667701e38c1d9d700e2bcc29bc7a06598c59 - base_revision: 7b6d667701e38c1d9d700e2bcc29bc7a06598c59 - - platform: web - create_revision: 7b6d667701e38c1d9d700e2bcc29bc7a06598c59 - base_revision: 7b6d667701e38c1d9d700e2bcc29bc7a06598c59 - - platform: windows - create_revision: 7b6d667701e38c1d9d700e2bcc29bc7a06598c59 - base_revision: 7b6d667701e38c1d9d700e2bcc29bc7a06598c59 - - # User provided section - - # List of Local paths (relative to this file) that should be - # ignored by the migrate tool. - # - # Files that are not part of the templates will be ignored by default. - unmanaged_files: - - 'lib/main.dart' - - 'ios/Runner.xcodeproj/project.pbxproj' diff --git a/examples/flutter/quickstart/README.md b/examples/flutter/quickstart/README.md deleted file mode 100644 index 3cc63a86..00000000 --- a/examples/flutter/quickstart/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# quickstart - -A new Flutter project. - -## Getting Started - -This project is a starting point for a Flutter application. - -A few resources to get you started if this is your first Flutter project: - -- [Lab: Write your first Flutter app](https://docs.flutter.dev/get-started/codelab) -- [Cookbook: Useful Flutter samples](https://docs.flutter.dev/cookbook) - -For help getting started with Flutter development, view the -[online documentation](https://docs.flutter.dev/), which offers tutorials, -samples, guidance on mobile development, and a full API reference. diff --git a/examples/flutter/quickstart/analysis_options.yaml b/examples/flutter/quickstart/analysis_options.yaml deleted file mode 100644 index 0d290213..00000000 --- a/examples/flutter/quickstart/analysis_options.yaml +++ /dev/null @@ -1,28 +0,0 @@ -# This file configures the analyzer, which statically analyzes Dart code to -# check for errors, warnings, and lints. -# -# The issues identified by the analyzer are surfaced in the UI of Dart-enabled -# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be -# invoked from the command line by running `flutter analyze`. - -# The following line activates a set of recommended lints for Flutter apps, -# packages, and plugins designed to encourage good coding practices. -include: package:flutter_lints/flutter.yaml - -linter: - # The lint rules applied to this project can be customized in the - # section below to disable rules from the `package:flutter_lints/flutter.yaml` - # included above or to enable additional rules. A list of all available lints - # and their documentation is published at https://dart.dev/lints. - # - # Instead of disabling a lint rule for the entire project in the - # section below, it can also be suppressed for a single line of code - # or a specific dart file by using the `// ignore: name_of_lint` and - # `// ignore_for_file: name_of_lint` syntax on the line or in the file - # producing the lint. - rules: - # avoid_print: false # Uncomment to disable the `avoid_print` rule - # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule - -# Additional information about this file can be found at -# https://dart.dev/guides/language/analysis-options diff --git a/examples/flutter/quickstart/android/.gitignore b/examples/flutter/quickstart/android/.gitignore deleted file mode 100644 index 6f568019..00000000 --- a/examples/flutter/quickstart/android/.gitignore +++ /dev/null @@ -1,13 +0,0 @@ -gradle-wrapper.jar -/.gradle -/captures/ -/gradlew -/gradlew.bat -/local.properties -GeneratedPluginRegistrant.java - -# Remember to never publicly share your keystore. -# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app -key.properties -**/*.keystore -**/*.jks diff --git a/examples/flutter/quickstart/android/app/build.gradle b/examples/flutter/quickstart/android/app/build.gradle deleted file mode 100644 index 6519d2f7..00000000 --- a/examples/flutter/quickstart/android/app/build.gradle +++ /dev/null @@ -1,44 +0,0 @@ -plugins { - id "com.android.application" - id "kotlin-android" - // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. - id "dev.flutter.flutter-gradle-plugin" -} - -android { - namespace = "com.example.quickstart" - compileSdk = flutter.compileSdkVersion - ndkVersion = flutter.ndkVersion - - compileOptions { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 - } - - kotlinOptions { - jvmTarget = JavaVersion.VERSION_1_8 - } - - defaultConfig { - // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). - applicationId = "com.example.quickstart" - // You can update the following values to match your application needs. - // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. - minSdk = flutter.minSdkVersion - targetSdk = flutter.targetSdkVersion - versionCode = flutter.versionCode - versionName = flutter.versionName - } - - buildTypes { - release { - // TODO: Add your own signing config for the release build. - // Signing with the debug keys for now, so `flutter run --release` works. - signingConfig = signingConfigs.debug - } - } -} - -flutter { - source = "../.." -} diff --git a/examples/flutter/quickstart/android/app/src/debug/AndroidManifest.xml b/examples/flutter/quickstart/android/app/src/debug/AndroidManifest.xml deleted file mode 100644 index 399f6981..00000000 --- a/examples/flutter/quickstart/android/app/src/debug/AndroidManifest.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - diff --git a/examples/flutter/quickstart/android/app/src/main/AndroidManifest.xml b/examples/flutter/quickstart/android/app/src/main/AndroidManifest.xml deleted file mode 100644 index d6b5b601..00000000 --- a/examples/flutter/quickstart/android/app/src/main/AndroidManifest.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/flutter/quickstart/android/app/src/main/kotlin/com/example/quickstart/MainActivity.kt b/examples/flutter/quickstart/android/app/src/main/kotlin/com/example/quickstart/MainActivity.kt deleted file mode 100644 index 067e280a..00000000 --- a/examples/flutter/quickstart/android/app/src/main/kotlin/com/example/quickstart/MainActivity.kt +++ /dev/null @@ -1,5 +0,0 @@ -package com.example.quickstart - -import io.flutter.embedding.android.FlutterActivity - -class MainActivity: FlutterActivity() diff --git a/examples/flutter/quickstart/android/app/src/main/res/drawable-v21/launch_background.xml b/examples/flutter/quickstart/android/app/src/main/res/drawable-v21/launch_background.xml deleted file mode 100644 index f74085f3..00000000 --- a/examples/flutter/quickstart/android/app/src/main/res/drawable-v21/launch_background.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - diff --git a/examples/flutter/quickstart/android/app/src/main/res/drawable/launch_background.xml b/examples/flutter/quickstart/android/app/src/main/res/drawable/launch_background.xml deleted file mode 100644 index 304732f8..00000000 --- a/examples/flutter/quickstart/android/app/src/main/res/drawable/launch_background.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - diff --git a/examples/flutter/quickstart/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/examples/flutter/quickstart/android/app/src/main/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index db77bb4b..00000000 Binary files a/examples/flutter/quickstart/android/app/src/main/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/examples/flutter/quickstart/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/examples/flutter/quickstart/android/app/src/main/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 17987b79..00000000 Binary files a/examples/flutter/quickstart/android/app/src/main/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/examples/flutter/quickstart/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/examples/flutter/quickstart/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 09d43914..00000000 Binary files a/examples/flutter/quickstart/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/examples/flutter/quickstart/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/examples/flutter/quickstart/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index d5f1c8d3..00000000 Binary files a/examples/flutter/quickstart/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/examples/flutter/quickstart/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/examples/flutter/quickstart/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 4d6372ee..00000000 Binary files a/examples/flutter/quickstart/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/examples/flutter/quickstart/android/app/src/main/res/values-night/styles.xml b/examples/flutter/quickstart/android/app/src/main/res/values-night/styles.xml deleted file mode 100644 index 06952be7..00000000 --- a/examples/flutter/quickstart/android/app/src/main/res/values-night/styles.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - diff --git a/examples/flutter/quickstart/android/app/src/main/res/values/styles.xml b/examples/flutter/quickstart/android/app/src/main/res/values/styles.xml deleted file mode 100644 index cb1ef880..00000000 --- a/examples/flutter/quickstart/android/app/src/main/res/values/styles.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - diff --git a/examples/flutter/quickstart/android/app/src/profile/AndroidManifest.xml b/examples/flutter/quickstart/android/app/src/profile/AndroidManifest.xml deleted file mode 100644 index 399f6981..00000000 --- a/examples/flutter/quickstart/android/app/src/profile/AndroidManifest.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - diff --git a/examples/flutter/quickstart/android/build.gradle b/examples/flutter/quickstart/android/build.gradle deleted file mode 100644 index d2ffbffa..00000000 --- a/examples/flutter/quickstart/android/build.gradle +++ /dev/null @@ -1,18 +0,0 @@ -allprojects { - repositories { - google() - mavenCentral() - } -} - -rootProject.buildDir = "../build" -subprojects { - project.buildDir = "${rootProject.buildDir}/${project.name}" -} -subprojects { - project.evaluationDependsOn(":app") -} - -tasks.register("clean", Delete) { - delete rootProject.buildDir -} diff --git a/examples/flutter/quickstart/android/gradle.properties b/examples/flutter/quickstart/android/gradle.properties deleted file mode 100644 index 25971708..00000000 --- a/examples/flutter/quickstart/android/gradle.properties +++ /dev/null @@ -1,3 +0,0 @@ -org.gradle.jvmargs=-Xmx4G -XX:MaxMetaspaceSize=2G -XX:+HeapDumpOnOutOfMemoryError -android.useAndroidX=true -android.enableJetifier=true diff --git a/examples/flutter/quickstart/android/gradle/wrapper/gradle-wrapper.properties b/examples/flutter/quickstart/android/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index e1ca574e..00000000 --- a/examples/flutter/quickstart/android/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,5 +0,0 @@ -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.3-all.zip diff --git a/examples/flutter/quickstart/android/settings.gradle b/examples/flutter/quickstart/android/settings.gradle deleted file mode 100644 index 536165d3..00000000 --- a/examples/flutter/quickstart/android/settings.gradle +++ /dev/null @@ -1,25 +0,0 @@ -pluginManagement { - def flutterSdkPath = { - def properties = new Properties() - file("local.properties").withInputStream { properties.load(it) } - def flutterSdkPath = properties.getProperty("flutter.sdk") - assert flutterSdkPath != null, "flutter.sdk not set in local.properties" - return flutterSdkPath - }() - - includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") - - repositories { - google() - mavenCentral() - gradlePluginPortal() - } -} - -plugins { - id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "7.3.0" apply false - id "org.jetbrains.kotlin.android" version "1.7.10" apply false -} - -include ":app" diff --git a/examples/flutter/quickstart/assets/cube.glb b/examples/flutter/quickstart/assets/cube.glb deleted file mode 100644 index c8df3114..00000000 Binary files a/examples/flutter/quickstart/assets/cube.glb and /dev/null differ diff --git a/examples/flutter/quickstart/assets/default_env_ibl.ktx b/examples/flutter/quickstart/assets/default_env_ibl.ktx deleted file mode 100644 index 0765d521..00000000 Binary files a/examples/flutter/quickstart/assets/default_env_ibl.ktx and /dev/null differ diff --git a/examples/flutter/quickstart/assets/default_env_skybox.ktx b/examples/flutter/quickstart/assets/default_env_skybox.ktx deleted file mode 100644 index 9d72e5a0..00000000 Binary files a/examples/flutter/quickstart/assets/default_env_skybox.ktx and /dev/null differ diff --git a/examples/flutter/quickstart/ios/.gitignore b/examples/flutter/quickstart/ios/.gitignore deleted file mode 100644 index 7a7f9873..00000000 --- a/examples/flutter/quickstart/ios/.gitignore +++ /dev/null @@ -1,34 +0,0 @@ -**/dgph -*.mode1v3 -*.mode2v3 -*.moved-aside -*.pbxuser -*.perspectivev3 -**/*sync/ -.sconsign.dblite -.tags* -**/.vagrant/ -**/DerivedData/ -Icon? -**/Pods/ -**/.symlinks/ -profile -xcuserdata -**/.generated/ -Flutter/App.framework -Flutter/Flutter.framework -Flutter/Flutter.podspec -Flutter/Generated.xcconfig -Flutter/ephemeral/ -Flutter/app.flx -Flutter/app.zip -Flutter/flutter_assets/ -Flutter/flutter_export_environment.sh -ServiceDefinitions.json -Runner/GeneratedPluginRegistrant.* - -# Exceptions to above rules. -!default.mode1v3 -!default.mode2v3 -!default.pbxuser -!default.perspectivev3 diff --git a/examples/flutter/quickstart/ios/Flutter/AppFrameworkInfo.plist b/examples/flutter/quickstart/ios/Flutter/AppFrameworkInfo.plist deleted file mode 100644 index 7c569640..00000000 --- a/examples/flutter/quickstart/ios/Flutter/AppFrameworkInfo.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - App - CFBundleIdentifier - io.flutter.flutter.app - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - App - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1.0 - MinimumOSVersion - 12.0 - - diff --git a/examples/flutter/quickstart/ios/Flutter/Debug.xcconfig b/examples/flutter/quickstart/ios/Flutter/Debug.xcconfig deleted file mode 100644 index ec97fc6f..00000000 --- a/examples/flutter/quickstart/ios/Flutter/Debug.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" -#include "Generated.xcconfig" diff --git a/examples/flutter/quickstart/ios/Flutter/Release.xcconfig b/examples/flutter/quickstart/ios/Flutter/Release.xcconfig deleted file mode 100644 index c4855bfe..00000000 --- a/examples/flutter/quickstart/ios/Flutter/Release.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" -#include "Generated.xcconfig" diff --git a/examples/flutter/quickstart/ios/Podfile b/examples/flutter/quickstart/ios/Podfile deleted file mode 100644 index 3e44f9c6..00000000 --- a/examples/flutter/quickstart/ios/Podfile +++ /dev/null @@ -1,44 +0,0 @@ -# Uncomment this line to define a global platform for your project -platform :ios, '13.0' - -# CocoaPods analytics sends network stats synchronously affecting flutter build latency. -ENV['COCOAPODS_DISABLE_STATS'] = 'true' - -project 'Runner', { - 'Debug' => :debug, - 'Profile' => :release, - 'Release' => :release, -} - -def flutter_root - generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__) - unless File.exist?(generated_xcode_build_settings_path) - raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first" - end - - File.foreach(generated_xcode_build_settings_path) do |line| - matches = line.match(/FLUTTER_ROOT\=(.*)/) - return matches[1].strip if matches - end - raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get" -end - -require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) - -flutter_ios_podfile_setup - -target 'Runner' do - use_frameworks! - use_modular_headers! - - flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) - target 'RunnerTests' do - inherit! :search_paths - end -end - -post_install do |installer| - installer.pods_project.targets.each do |target| - flutter_additional_ios_build_settings(target) - end -end diff --git a/examples/flutter/quickstart/ios/Podfile.lock b/examples/flutter/quickstart/ios/Podfile.lock deleted file mode 100644 index 81dd9d63..00000000 --- a/examples/flutter/quickstart/ios/Podfile.lock +++ /dev/null @@ -1,22 +0,0 @@ -PODS: - - Flutter (1.0.0) - - thermion_flutter (0.0.1): - - Flutter - -DEPENDENCIES: - - Flutter (from `Flutter`) - - thermion_flutter (from `.symlinks/plugins/thermion_flutter/ios`) - -EXTERNAL SOURCES: - Flutter: - :path: Flutter - thermion_flutter: - :path: ".symlinks/plugins/thermion_flutter/ios" - -SPEC CHECKSUMS: - Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 - thermion_flutter: c965e09831858465a1a8df59ff97e40a4d002773 - -PODFILE CHECKSUM: a57f30d18f102dd3ce366b1d62a55ecbef2158e5 - -COCOAPODS: 1.15.2 diff --git a/examples/flutter/quickstart/ios/Runner.xcodeproj/project.pbxproj b/examples/flutter/quickstart/ios/Runner.xcodeproj/project.pbxproj deleted file mode 100644 index 313884be..00000000 --- a/examples/flutter/quickstart/ios/Runner.xcodeproj/project.pbxproj +++ /dev/null @@ -1,716 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 54; - objects = { - -/* Begin PBXBuildFile section */ - 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; - 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; - 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; - 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; - 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; - 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; - 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; - F657CCCFB062AF56C7F1E15C /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3D988E66CA93AB1163F3B4F2 /* Pods_RunnerTests.framework */; }; - F8DC37C0013EE3DC8802435E /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B0831D015898C7047513698C /* Pods_Runner.framework */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 331C8085294A63A400263BE5 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 97C146E61CF9000F007C117D /* Project object */; - proxyType = 1; - remoteGlobalIDString = 97C146ED1CF9000F007C117D; - remoteInfo = Runner; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 9705A1C41CF9048500538489 /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; - 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; - 31D54E0731320192F7631461 /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; - 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; - 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 3680A9DFE5EC3E59C051B544 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; - 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; - 3D988E66CA93AB1163F3B4F2 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 704E1C99CAABFB056933D88F /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; - 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; - 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; - 8C0FE5C77038897D844C5D42 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; - 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; - 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; - 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; - 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 9CD72080C199DAE3518D4C3D /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; - B0831D015898C7047513698C /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - BA68F2C1572D8BC92CC4C4FF /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 97C146EB1CF9000F007C117D /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - F8DC37C0013EE3DC8802435E /* Pods_Runner.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - FA72758808529BDB8770545F /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - F657CCCFB062AF56C7F1E15C /* Pods_RunnerTests.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 0DB20859A61D425430A5D097 /* Frameworks */ = { - isa = PBXGroup; - children = ( - B0831D015898C7047513698C /* Pods_Runner.framework */, - 3D988E66CA93AB1163F3B4F2 /* Pods_RunnerTests.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 331C8082294A63A400263BE5 /* RunnerTests */ = { - isa = PBXGroup; - children = ( - 331C807B294A618700263BE5 /* RunnerTests.swift */, - ); - path = RunnerTests; - sourceTree = ""; - }; - 4A129A4D3EB41F9DE0778AAC /* Pods */ = { - isa = PBXGroup; - children = ( - 704E1C99CAABFB056933D88F /* Pods-Runner.debug.xcconfig */, - 3680A9DFE5EC3E59C051B544 /* Pods-Runner.release.xcconfig */, - 8C0FE5C77038897D844C5D42 /* Pods-Runner.profile.xcconfig */, - 31D54E0731320192F7631461 /* Pods-RunnerTests.debug.xcconfig */, - BA68F2C1572D8BC92CC4C4FF /* Pods-RunnerTests.release.xcconfig */, - 9CD72080C199DAE3518D4C3D /* Pods-RunnerTests.profile.xcconfig */, - ); - name = Pods; - path = Pods; - sourceTree = ""; - }; - 9740EEB11CF90186004384FC /* Flutter */ = { - isa = PBXGroup; - children = ( - 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, - 9740EEB21CF90195004384FC /* Debug.xcconfig */, - 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, - 9740EEB31CF90195004384FC /* Generated.xcconfig */, - ); - name = Flutter; - sourceTree = ""; - }; - 97C146E51CF9000F007C117D = { - isa = PBXGroup; - children = ( - 9740EEB11CF90186004384FC /* Flutter */, - 97C146F01CF9000F007C117D /* Runner */, - 97C146EF1CF9000F007C117D /* Products */, - 331C8082294A63A400263BE5 /* RunnerTests */, - 4A129A4D3EB41F9DE0778AAC /* Pods */, - 0DB20859A61D425430A5D097 /* Frameworks */, - ); - sourceTree = ""; - }; - 97C146EF1CF9000F007C117D /* Products */ = { - isa = PBXGroup; - children = ( - 97C146EE1CF9000F007C117D /* Runner.app */, - 331C8081294A63A400263BE5 /* RunnerTests.xctest */, - ); - name = Products; - sourceTree = ""; - }; - 97C146F01CF9000F007C117D /* Runner */ = { - isa = PBXGroup; - children = ( - 97C146FA1CF9000F007C117D /* Main.storyboard */, - 97C146FD1CF9000F007C117D /* Assets.xcassets */, - 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, - 97C147021CF9000F007C117D /* Info.plist */, - 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, - 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, - 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, - 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, - ); - path = Runner; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 331C8080294A63A400263BE5 /* RunnerTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; - buildPhases = ( - 78F05AF37D9E628BE6E89ABD /* [CP] Check Pods Manifest.lock */, - 331C807D294A63A400263BE5 /* Sources */, - 331C807F294A63A400263BE5 /* Resources */, - FA72758808529BDB8770545F /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - 331C8086294A63A400263BE5 /* PBXTargetDependency */, - ); - name = RunnerTests; - productName = RunnerTests; - productReference = 331C8081294A63A400263BE5 /* RunnerTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - 97C146ED1CF9000F007C117D /* Runner */ = { - isa = PBXNativeTarget; - buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; - buildPhases = ( - C7C2718364AC4E2451407065 /* [CP] Check Pods Manifest.lock */, - 9740EEB61CF901F6004384FC /* Run Script */, - 97C146EA1CF9000F007C117D /* Sources */, - 97C146EB1CF9000F007C117D /* Frameworks */, - 97C146EC1CF9000F007C117D /* Resources */, - 9705A1C41CF9048500538489 /* Embed Frameworks */, - 3B06AD1E1E4923F5004D2608 /* Thin Binary */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = Runner; - productName = Runner; - productReference = 97C146EE1CF9000F007C117D /* Runner.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 97C146E61CF9000F007C117D /* Project object */ = { - isa = PBXProject; - attributes = { - BuildIndependentTargetsInParallel = YES; - LastUpgradeCheck = 1510; - ORGANIZATIONNAME = ""; - TargetAttributes = { - 331C8080294A63A400263BE5 = { - CreatedOnToolsVersion = 14.0; - TestTargetID = 97C146ED1CF9000F007C117D; - }; - 97C146ED1CF9000F007C117D = { - CreatedOnToolsVersion = 7.3.1; - LastSwiftMigration = 1100; - }; - }; - }; - buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 97C146E51CF9000F007C117D; - productRefGroup = 97C146EF1CF9000F007C117D /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 97C146ED1CF9000F007C117D /* Runner */, - 331C8080294A63A400263BE5 /* RunnerTests */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 331C807F294A63A400263BE5 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 97C146EC1CF9000F007C117D /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, - 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, - 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, - 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { - isa = PBXShellScriptBuildPhase; - alwaysOutOfDate = 1; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", - ); - name = "Thin Binary"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; - }; - 78F05AF37D9E628BE6E89ABD /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - 9740EEB61CF901F6004384FC /* Run Script */ = { - isa = PBXShellScriptBuildPhase; - alwaysOutOfDate = 1; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Run Script"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; - }; - C7C2718364AC4E2451407065 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 331C807D294A63A400263BE5 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 97C146EA1CF9000F007C117D /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, - 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 331C8086294A63A400263BE5 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 97C146ED1CF9000F007C117D /* Runner */; - targetProxy = 331C8085294A63A400263BE5 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - 97C146FA1CF9000F007C117D /* Main.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 97C146FB1CF9000F007C117D /* Base */, - ); - name = Main.storyboard; - sourceTree = ""; - }; - 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 97C147001CF9000F007C117D /* Base */, - ); - name = LaunchScreen.storyboard; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 249021D3217E4FDB00AE95B9 /* Profile */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - SUPPORTED_PLATFORMS = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Profile; - }; - 249021D4217E4FDB00AE95B9 /* Profile */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; - DEVELOPMENT_TEAM = TM2B4SJXNJ; - ENABLE_BITCODE = NO; - INFOPLIST_FILE = Runner/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.example.quickstart; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; - SWIFT_VERSION = 5.0; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = Profile; - }; - 331C8088294A63A400263BE5 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 31D54E0731320192F7631461 /* Pods-RunnerTests.debug.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - GENERATE_INFOPLIST_FILE = YES; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.example.quickstart.RunnerTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; - }; - name = Debug; - }; - 331C8089294A63A400263BE5 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = BA68F2C1572D8BC92CC4C4FF /* Pods-RunnerTests.release.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - GENERATE_INFOPLIST_FILE = YES; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.example.quickstart.RunnerTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 5.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; - }; - name = Release; - }; - 331C808A294A63A400263BE5 /* Profile */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 9CD72080C199DAE3518D4C3D /* Pods-RunnerTests.profile.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - GENERATE_INFOPLIST_FILE = YES; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.example.quickstart.RunnerTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 5.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; - }; - name = Profile; - }; - 97C147031CF9000F007C117D /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 97C147041CF9000F007C117D /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - SUPPORTED_PLATFORMS = iphoneos; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 97C147061CF9000F007C117D /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; - DEVELOPMENT_TEAM = TM2B4SJXNJ; - ENABLE_BITCODE = NO; - INFOPLIST_FILE = Runner/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.example.quickstart; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = Debug; - }; - 97C147071CF9000F007C117D /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; - DEVELOPMENT_TEAM = TM2B4SJXNJ; - ENABLE_BITCODE = NO; - INFOPLIST_FILE = Runner/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.example.quickstart; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; - SWIFT_VERSION = 5.0; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 331C8088294A63A400263BE5 /* Debug */, - 331C8089294A63A400263BE5 /* Release */, - 331C808A294A63A400263BE5 /* Profile */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 97C147031CF9000F007C117D /* Debug */, - 97C147041CF9000F007C117D /* Release */, - 249021D3217E4FDB00AE95B9 /* Profile */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 97C147061CF9000F007C117D /* Debug */, - 97C147071CF9000F007C117D /* Release */, - 249021D4217E4FDB00AE95B9 /* Profile */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 97C146E61CF9000F007C117D /* Project object */; -} diff --git a/examples/flutter/quickstart/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/examples/flutter/quickstart/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 919434a6..00000000 --- a/examples/flutter/quickstart/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/examples/flutter/quickstart/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/examples/flutter/quickstart/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d98100..00000000 --- a/examples/flutter/quickstart/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/examples/flutter/quickstart/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/examples/flutter/quickstart/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings deleted file mode 100644 index f9b0d7c5..00000000 --- a/examples/flutter/quickstart/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings +++ /dev/null @@ -1,8 +0,0 @@ - - - - - PreviewsEnabled - - - diff --git a/examples/flutter/quickstart/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/examples/flutter/quickstart/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme deleted file mode 100644 index 8e3ca5df..00000000 --- a/examples/flutter/quickstart/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/flutter/quickstart/ios/Runner.xcworkspace/contents.xcworkspacedata b/examples/flutter/quickstart/ios/Runner.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 21a3cc14..00000000 --- a/examples/flutter/quickstart/ios/Runner.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - diff --git a/examples/flutter/quickstart/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/examples/flutter/quickstart/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d98100..00000000 --- a/examples/flutter/quickstart/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/examples/flutter/quickstart/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/examples/flutter/quickstart/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings deleted file mode 100644 index f9b0d7c5..00000000 --- a/examples/flutter/quickstart/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings +++ /dev/null @@ -1,8 +0,0 @@ - - - - - PreviewsEnabled - - - diff --git a/examples/flutter/quickstart/ios/Runner/AppDelegate.swift b/examples/flutter/quickstart/ios/Runner/AppDelegate.swift deleted file mode 100644 index 62666446..00000000 --- a/examples/flutter/quickstart/ios/Runner/AppDelegate.swift +++ /dev/null @@ -1,13 +0,0 @@ -import Flutter -import UIKit - -@main -@objc class AppDelegate: FlutterAppDelegate { - override func application( - _ application: UIApplication, - didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? - ) -> Bool { - GeneratedPluginRegistrant.register(with: self) - return super.application(application, didFinishLaunchingWithOptions: launchOptions) - } -} diff --git a/examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index d36b1fab..00000000 --- a/examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,122 +0,0 @@ -{ - "images" : [ - { - "size" : "20x20", - "idiom" : "iphone", - "filename" : "Icon-App-20x20@2x.png", - "scale" : "2x" - }, - { - "size" : "20x20", - "idiom" : "iphone", - "filename" : "Icon-App-20x20@3x.png", - "scale" : "3x" - }, - { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "Icon-App-29x29@1x.png", - "scale" : "1x" - }, - { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "Icon-App-29x29@2x.png", - "scale" : "2x" - }, - { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "Icon-App-29x29@3x.png", - "scale" : "3x" - }, - { - "size" : "40x40", - "idiom" : "iphone", - "filename" : "Icon-App-40x40@2x.png", - "scale" : "2x" - }, - { - "size" : "40x40", - "idiom" : "iphone", - "filename" : "Icon-App-40x40@3x.png", - "scale" : "3x" - }, - { - "size" : "60x60", - "idiom" : "iphone", - "filename" : "Icon-App-60x60@2x.png", - "scale" : "2x" - }, - { - "size" : "60x60", - "idiom" : "iphone", - "filename" : "Icon-App-60x60@3x.png", - "scale" : "3x" - }, - { - "size" : "20x20", - "idiom" : "ipad", - "filename" : "Icon-App-20x20@1x.png", - "scale" : "1x" - }, - { - "size" : "20x20", - "idiom" : "ipad", - "filename" : "Icon-App-20x20@2x.png", - "scale" : "2x" - }, - { - "size" : "29x29", - "idiom" : "ipad", - "filename" : "Icon-App-29x29@1x.png", - "scale" : "1x" - }, - { - "size" : "29x29", - "idiom" : "ipad", - "filename" : "Icon-App-29x29@2x.png", - "scale" : "2x" - }, - { - "size" : "40x40", - "idiom" : "ipad", - "filename" : "Icon-App-40x40@1x.png", - "scale" : "1x" - }, - { - "size" : "40x40", - "idiom" : "ipad", - "filename" : "Icon-App-40x40@2x.png", - "scale" : "2x" - }, - { - "size" : "76x76", - "idiom" : "ipad", - "filename" : "Icon-App-76x76@1x.png", - "scale" : "1x" - }, - { - "size" : "76x76", - "idiom" : "ipad", - "filename" : "Icon-App-76x76@2x.png", - "scale" : "2x" - }, - { - "size" : "83.5x83.5", - "idiom" : "ipad", - "filename" : "Icon-App-83.5x83.5@2x.png", - "scale" : "2x" - }, - { - "size" : "1024x1024", - "idiom" : "ios-marketing", - "filename" : "Icon-App-1024x1024@1x.png", - "scale" : "1x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} diff --git a/examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png deleted file mode 100644 index dc9ada47..00000000 Binary files a/examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png and /dev/null differ diff --git a/examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png deleted file mode 100644 index 7353c41e..00000000 Binary files a/examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png and /dev/null differ diff --git a/examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png deleted file mode 100644 index 797d452e..00000000 Binary files a/examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png and /dev/null differ diff --git a/examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png deleted file mode 100644 index 6ed2d933..00000000 Binary files a/examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png and /dev/null differ diff --git a/examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png deleted file mode 100644 index 4cd7b009..00000000 Binary files a/examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png and /dev/null differ diff --git a/examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png deleted file mode 100644 index fe730945..00000000 Binary files a/examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png and /dev/null differ diff --git a/examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png deleted file mode 100644 index 321773cd..00000000 Binary files a/examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png and /dev/null differ diff --git a/examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png deleted file mode 100644 index 797d452e..00000000 Binary files a/examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png and /dev/null differ diff --git a/examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png deleted file mode 100644 index 502f463a..00000000 Binary files a/examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png and /dev/null differ diff --git a/examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png deleted file mode 100644 index 0ec30343..00000000 Binary files a/examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png and /dev/null differ diff --git a/examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png deleted file mode 100644 index 0ec30343..00000000 Binary files a/examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png and /dev/null differ diff --git a/examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png deleted file mode 100644 index e9f5fea2..00000000 Binary files a/examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png and /dev/null differ diff --git a/examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png deleted file mode 100644 index 84ac32ae..00000000 Binary files a/examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png and /dev/null differ diff --git a/examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png deleted file mode 100644 index 8953cba0..00000000 Binary files a/examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png and /dev/null differ diff --git a/examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png deleted file mode 100644 index 0467bf12..00000000 Binary files a/examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png and /dev/null differ diff --git a/examples/flutter/quickstart/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/examples/flutter/quickstart/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json deleted file mode 100644 index 0bedcf2f..00000000 --- a/examples/flutter/quickstart/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "LaunchImage.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "LaunchImage@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "LaunchImage@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} diff --git a/examples/flutter/quickstart/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/examples/flutter/quickstart/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png deleted file mode 100644 index 9da19eac..00000000 Binary files a/examples/flutter/quickstart/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png and /dev/null differ diff --git a/examples/flutter/quickstart/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/examples/flutter/quickstart/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png deleted file mode 100644 index 9da19eac..00000000 Binary files a/examples/flutter/quickstart/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png and /dev/null differ diff --git a/examples/flutter/quickstart/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/examples/flutter/quickstart/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png deleted file mode 100644 index 9da19eac..00000000 Binary files a/examples/flutter/quickstart/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png and /dev/null differ diff --git a/examples/flutter/quickstart/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/examples/flutter/quickstart/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md deleted file mode 100644 index 89c2725b..00000000 --- a/examples/flutter/quickstart/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# Launch Screen Assets - -You can customize the launch screen with your own desired assets by replacing the image files in this directory. - -You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. \ No newline at end of file diff --git a/examples/flutter/quickstart/ios/Runner/Base.lproj/LaunchScreen.storyboard b/examples/flutter/quickstart/ios/Runner/Base.lproj/LaunchScreen.storyboard deleted file mode 100644 index f2e259c7..00000000 --- a/examples/flutter/quickstart/ios/Runner/Base.lproj/LaunchScreen.storyboard +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/flutter/quickstart/ios/Runner/Base.lproj/Main.storyboard b/examples/flutter/quickstart/ios/Runner/Base.lproj/Main.storyboard deleted file mode 100644 index f3c28516..00000000 --- a/examples/flutter/quickstart/ios/Runner/Base.lproj/Main.storyboard +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/flutter/quickstart/ios/Runner/Info.plist b/examples/flutter/quickstart/ios/Runner/Info.plist deleted file mode 100644 index 82ca91c3..00000000 --- a/examples/flutter/quickstart/ios/Runner/Info.plist +++ /dev/null @@ -1,49 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleDisplayName - Quickstart - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - quickstart - CFBundlePackageType - APPL - CFBundleShortVersionString - $(FLUTTER_BUILD_NAME) - CFBundleSignature - ???? - CFBundleVersion - $(FLUTTER_BUILD_NUMBER) - LSRequiresIPhoneOS - - UILaunchStoryboardName - LaunchScreen - UIMainStoryboardFile - Main - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - CADisableMinimumFrameDurationOnPhone - - UIApplicationSupportsIndirectInputEvents - - - diff --git a/examples/flutter/quickstart/ios/Runner/Runner-Bridging-Header.h b/examples/flutter/quickstart/ios/Runner/Runner-Bridging-Header.h deleted file mode 100644 index 308a2a56..00000000 --- a/examples/flutter/quickstart/ios/Runner/Runner-Bridging-Header.h +++ /dev/null @@ -1 +0,0 @@ -#import "GeneratedPluginRegistrant.h" diff --git a/examples/flutter/quickstart/ios/RunnerTests/RunnerTests.swift b/examples/flutter/quickstart/ios/RunnerTests/RunnerTests.swift deleted file mode 100644 index 86a7c3b1..00000000 --- a/examples/flutter/quickstart/ios/RunnerTests/RunnerTests.swift +++ /dev/null @@ -1,12 +0,0 @@ -import Flutter -import UIKit -import XCTest - -class RunnerTests: XCTestCase { - - func testExample() { - // If you add code to the Runner application, consider adding tests here. - // See https://developer.apple.com/documentation/xctest for more information about using XCTest. - } - -} diff --git a/examples/flutter/quickstart/lib/main.dart b/examples/flutter/quickstart/lib/main.dart deleted file mode 100644 index 58bb4c45..00000000 --- a/examples/flutter/quickstart/lib/main.dart +++ /dev/null @@ -1,92 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:thermion_flutter/thermion_flutter.dart'; - -import 'package:vector_math/vector_math_64.dart' as v; -import 'dart:math'; - -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 { - bool _loaded = false; - ThermionViewer? _thermionViewer; - - @override - void initState() { - super.initState(); - } - - ThermionFlutterTexture? _texture; - - Future _load() async { - var viewer = await ThermionFlutterPlugin.createViewer(); - _thermionViewer = viewer; - _thermionViewer!.loadSkybox("assets/default_env_skybox.ktx"); - _thermionViewer!.loadGlb("assets/cube.glb"); - - _thermionViewer!.setCameraPosition(0, 1, 10); - _thermionViewer!.setCameraRotation( - v.Quaternion.axisAngle(v.Vector3(1, 0, 0), -30 / 180 * pi) * - v.Quaternion.axisAngle(v.Vector3(0, 1, 0), 15 / 180 * pi)); - _thermionViewer!.addLight(LightType.SUN, 7500, 50000, 0, 0, 0, 1, -1, -1); - _thermionViewer!.setRendering(true); - _loaded = true; - - setState(() {}); - } - - Future _unload() async { - await ThermionFlutterPlugin.destroyTexture(_texture!); - var viewer = _thermionViewer!; - _thermionViewer = null; - setState(() {}); - await viewer.dispose(); - _loaded = false; - setState(() {}); - } - - Widget _loadButton() { - return Center( - child: ElevatedButton(child: const Text("Load"), onPressed: _load)); - } - - Widget _unloadButton() { - return Center( - child: ElevatedButton(child: const Text("Unload"), onPressed: _unload)); - } - - @override - Widget build(BuildContext context) { - return Stack(children: [ - if (_thermionViewer != null) - Positioned.fill(child: ThermionWidget(viewer: _thermionViewer!)), - if (!_loaded) _loadButton(), - if (_loaded) _unloadButton(), - ]); - } -} diff --git a/examples/flutter/quickstart/linux/.gitignore b/examples/flutter/quickstart/linux/.gitignore deleted file mode 100644 index d3896c98..00000000 --- a/examples/flutter/quickstart/linux/.gitignore +++ /dev/null @@ -1 +0,0 @@ -flutter/ephemeral diff --git a/examples/flutter/quickstart/linux/CMakeLists.txt b/examples/flutter/quickstart/linux/CMakeLists.txt deleted file mode 100644 index f4a5227f..00000000 --- a/examples/flutter/quickstart/linux/CMakeLists.txt +++ /dev/null @@ -1,145 +0,0 @@ -# Project-level configuration. -cmake_minimum_required(VERSION 3.10) -project(runner LANGUAGES CXX) - -# The name of the executable created for the application. Change this to change -# the on-disk name of your application. -set(BINARY_NAME "quickstart") -# The unique GTK application identifier for this application. See: -# https://wiki.gnome.org/HowDoI/ChooseApplicationID -set(APPLICATION_ID "com.example.quickstart") - -# Explicitly opt in to modern CMake behaviors to avoid warnings with recent -# versions of CMake. -cmake_policy(SET CMP0063 NEW) - -# Load bundled libraries from the lib/ directory relative to the binary. -set(CMAKE_INSTALL_RPATH "$ORIGIN/lib") - -# Root filesystem for cross-building. -if(FLUTTER_TARGET_PLATFORM_SYSROOT) - set(CMAKE_SYSROOT ${FLUTTER_TARGET_PLATFORM_SYSROOT}) - set(CMAKE_FIND_ROOT_PATH ${CMAKE_SYSROOT}) - set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) - set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) - set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) - set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) -endif() - -# Define build configuration options. -if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) - set(CMAKE_BUILD_TYPE "Debug" CACHE - STRING "Flutter build mode" FORCE) - set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS - "Debug" "Profile" "Release") -endif() - -# Compilation settings that should be applied to most targets. -# -# Be cautious about adding new options here, as plugins use this function by -# default. In most cases, you should add new options to specific targets instead -# of modifying this function. -function(APPLY_STANDARD_SETTINGS TARGET) - target_compile_features(${TARGET} PUBLIC cxx_std_14) - target_compile_options(${TARGET} PRIVATE -Wall -Werror) - target_compile_options(${TARGET} PRIVATE "$<$>:-O3>") - target_compile_definitions(${TARGET} PRIVATE "$<$>:NDEBUG>") -endfunction() - -# Flutter library and tool build rules. -set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter") -add_subdirectory(${FLUTTER_MANAGED_DIR}) - -# System-level dependencies. -find_package(PkgConfig REQUIRED) -pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0) - -add_definitions(-DAPPLICATION_ID="${APPLICATION_ID}") - -# Define the application target. To change its name, change BINARY_NAME above, -# not the value here, or `flutter run` will no longer work. -# -# Any new source files that you add to the application should be added here. -add_executable(${BINARY_NAME} - "main.cc" - "my_application.cc" - "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" -) - -# Apply the standard set of build settings. This can be removed for applications -# that need different build settings. -apply_standard_settings(${BINARY_NAME}) - -# Add dependency libraries. Add any application-specific dependencies here. -target_link_libraries(${BINARY_NAME} PRIVATE flutter) -target_link_libraries(${BINARY_NAME} PRIVATE PkgConfig::GTK) - -# Run the Flutter tool portions of the build. This must not be removed. -add_dependencies(${BINARY_NAME} flutter_assemble) - -# Only the install-generated bundle's copy of the executable will launch -# correctly, since the resources must in the right relative locations. To avoid -# people trying to run the unbundled copy, put it in a subdirectory instead of -# the default top-level location. -set_target_properties(${BINARY_NAME} - PROPERTIES - RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/intermediates_do_not_run" -) - - -# Generated plugin build rules, which manage building the plugins and adding -# them to the application. -include(flutter/generated_plugins.cmake) - - -# === Installation === -# By default, "installing" just makes a relocatable bundle in the build -# directory. -set(BUILD_BUNDLE_DIR "${PROJECT_BINARY_DIR}/bundle") -if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) - set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE) -endif() - -# Start with a clean build bundle directory every time. -install(CODE " - file(REMOVE_RECURSE \"${BUILD_BUNDLE_DIR}/\") - " COMPONENT Runtime) - -set(INSTALL_BUNDLE_DATA_DIR "${CMAKE_INSTALL_PREFIX}/data") -set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib") - -install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}" - COMPONENT Runtime) - -install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" - COMPONENT Runtime) - -install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" - COMPONENT Runtime) - -foreach(bundled_library ${PLUGIN_BUNDLED_LIBRARIES}) - install(FILES "${bundled_library}" - DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" - COMPONENT Runtime) -endforeach(bundled_library) - -# Copy the native assets provided by the build.dart from all packages. -set(NATIVE_ASSETS_DIR "${PROJECT_BUILD_DIR}native_assets/linux/") -install(DIRECTORY "${NATIVE_ASSETS_DIR}" - DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" - COMPONENT Runtime) - -# Fully re-copy the assets directory on each build to avoid having stale files -# from a previous install. -set(FLUTTER_ASSET_DIR_NAME "flutter_assets") -install(CODE " - file(REMOVE_RECURSE \"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\") - " COMPONENT Runtime) -install(DIRECTORY "${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}" - DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" COMPONENT Runtime) - -# Install the AOT library on non-Debug builds only. -if(NOT CMAKE_BUILD_TYPE MATCHES "Debug") - install(FILES "${AOT_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" - COMPONENT Runtime) -endif() diff --git a/examples/flutter/quickstart/linux/flutter/CMakeLists.txt b/examples/flutter/quickstart/linux/flutter/CMakeLists.txt deleted file mode 100644 index d5bd0164..00000000 --- a/examples/flutter/quickstart/linux/flutter/CMakeLists.txt +++ /dev/null @@ -1,88 +0,0 @@ -# This file controls Flutter-level build steps. It should not be edited. -cmake_minimum_required(VERSION 3.10) - -set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral") - -# Configuration provided via flutter tool. -include(${EPHEMERAL_DIR}/generated_config.cmake) - -# TODO: Move the rest of this into files in ephemeral. See -# https://github.com/flutter/flutter/issues/57146. - -# Serves the same purpose as list(TRANSFORM ... PREPEND ...), -# which isn't available in 3.10. -function(list_prepend LIST_NAME PREFIX) - set(NEW_LIST "") - foreach(element ${${LIST_NAME}}) - list(APPEND NEW_LIST "${PREFIX}${element}") - endforeach(element) - set(${LIST_NAME} "${NEW_LIST}" PARENT_SCOPE) -endfunction() - -# === Flutter Library === -# System-level dependencies. -find_package(PkgConfig REQUIRED) -pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0) -pkg_check_modules(GLIB REQUIRED IMPORTED_TARGET glib-2.0) -pkg_check_modules(GIO REQUIRED IMPORTED_TARGET gio-2.0) - -set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/libflutter_linux_gtk.so") - -# Published to parent scope for install step. -set(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE) -set(FLUTTER_ICU_DATA_FILE "${EPHEMERAL_DIR}/icudtl.dat" PARENT_SCOPE) -set(PROJECT_BUILD_DIR "${PROJECT_DIR}/build/" PARENT_SCOPE) -set(AOT_LIBRARY "${PROJECT_DIR}/build/lib/libapp.so" PARENT_SCOPE) - -list(APPEND FLUTTER_LIBRARY_HEADERS - "fl_basic_message_channel.h" - "fl_binary_codec.h" - "fl_binary_messenger.h" - "fl_dart_project.h" - "fl_engine.h" - "fl_json_message_codec.h" - "fl_json_method_codec.h" - "fl_message_codec.h" - "fl_method_call.h" - "fl_method_channel.h" - "fl_method_codec.h" - "fl_method_response.h" - "fl_plugin_registrar.h" - "fl_plugin_registry.h" - "fl_standard_message_codec.h" - "fl_standard_method_codec.h" - "fl_string_codec.h" - "fl_value.h" - "fl_view.h" - "flutter_linux.h" -) -list_prepend(FLUTTER_LIBRARY_HEADERS "${EPHEMERAL_DIR}/flutter_linux/") -add_library(flutter INTERFACE) -target_include_directories(flutter INTERFACE - "${EPHEMERAL_DIR}" -) -target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}") -target_link_libraries(flutter INTERFACE - PkgConfig::GTK - PkgConfig::GLIB - PkgConfig::GIO -) -add_dependencies(flutter flutter_assemble) - -# === Flutter tool backend === -# _phony_ is a non-existent file to force this command to run every time, -# since currently there's no way to get a full input/output list from the -# flutter tool. -add_custom_command( - OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS} - ${CMAKE_CURRENT_BINARY_DIR}/_phony_ - COMMAND ${CMAKE_COMMAND} -E env - ${FLUTTER_TOOL_ENVIRONMENT} - "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.sh" - ${FLUTTER_TARGET_PLATFORM} ${CMAKE_BUILD_TYPE} - VERBATIM -) -add_custom_target(flutter_assemble DEPENDS - "${FLUTTER_LIBRARY}" - ${FLUTTER_LIBRARY_HEADERS} -) diff --git a/examples/flutter/quickstart/linux/flutter/generated_plugin_registrant.cc b/examples/flutter/quickstart/linux/flutter/generated_plugin_registrant.cc deleted file mode 100644 index 01193c10..00000000 --- a/examples/flutter/quickstart/linux/flutter/generated_plugin_registrant.cc +++ /dev/null @@ -1,15 +0,0 @@ -// -// Generated file. Do not edit. -// - -// clang-format off - -#include "generated_plugin_registrant.h" - -#include - -void fl_register_plugins(FlPluginRegistry* registry) { - g_autoptr(FlPluginRegistrar) thermion_flutter_registrar = - fl_plugin_registry_get_registrar_for_plugin(registry, "ThermionFlutterPlugin"); - thermion_flutter_plugin_register_with_registrar(thermion_flutter_registrar); -} diff --git a/examples/flutter/quickstart/linux/flutter/generated_plugin_registrant.h b/examples/flutter/quickstart/linux/flutter/generated_plugin_registrant.h deleted file mode 100644 index e0f0a47b..00000000 --- a/examples/flutter/quickstart/linux/flutter/generated_plugin_registrant.h +++ /dev/null @@ -1,15 +0,0 @@ -// -// Generated file. Do not edit. -// - -// clang-format off - -#ifndef GENERATED_PLUGIN_REGISTRANT_ -#define GENERATED_PLUGIN_REGISTRANT_ - -#include - -// Registers Flutter plugins. -void fl_register_plugins(FlPluginRegistry* registry); - -#endif // GENERATED_PLUGIN_REGISTRANT_ diff --git a/examples/flutter/quickstart/linux/flutter/generated_plugins.cmake b/examples/flutter/quickstart/linux/flutter/generated_plugins.cmake deleted file mode 100644 index 274b5f60..00000000 --- a/examples/flutter/quickstart/linux/flutter/generated_plugins.cmake +++ /dev/null @@ -1,24 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST - thermion_flutter -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/examples/flutter/quickstart/linux/main.cc b/examples/flutter/quickstart/linux/main.cc deleted file mode 100644 index e7c5c543..00000000 --- a/examples/flutter/quickstart/linux/main.cc +++ /dev/null @@ -1,6 +0,0 @@ -#include "my_application.h" - -int main(int argc, char** argv) { - g_autoptr(MyApplication) app = my_application_new(); - return g_application_run(G_APPLICATION(app), argc, argv); -} diff --git a/examples/flutter/quickstart/linux/my_application.cc b/examples/flutter/quickstart/linux/my_application.cc deleted file mode 100644 index 3901953a..00000000 --- a/examples/flutter/quickstart/linux/my_application.cc +++ /dev/null @@ -1,124 +0,0 @@ -#include "my_application.h" - -#include -#ifdef GDK_WINDOWING_X11 -#include -#endif - -#include "flutter/generated_plugin_registrant.h" - -struct _MyApplication { - GtkApplication parent_instance; - char** dart_entrypoint_arguments; -}; - -G_DEFINE_TYPE(MyApplication, my_application, GTK_TYPE_APPLICATION) - -// Implements GApplication::activate. -static void my_application_activate(GApplication* application) { - MyApplication* self = MY_APPLICATION(application); - GtkWindow* window = - GTK_WINDOW(gtk_application_window_new(GTK_APPLICATION(application))); - - // Use a header bar when running in GNOME as this is the common style used - // by applications and is the setup most users will be using (e.g. Ubuntu - // desktop). - // If running on X and not using GNOME then just use a traditional title bar - // in case the window manager does more exotic layout, e.g. tiling. - // If running on Wayland assume the header bar will work (may need changing - // if future cases occur). - gboolean use_header_bar = TRUE; -#ifdef GDK_WINDOWING_X11 - GdkScreen* screen = gtk_window_get_screen(window); - if (GDK_IS_X11_SCREEN(screen)) { - const gchar* wm_name = gdk_x11_screen_get_window_manager_name(screen); - if (g_strcmp0(wm_name, "GNOME Shell") != 0) { - use_header_bar = FALSE; - } - } -#endif - if (use_header_bar) { - GtkHeaderBar* header_bar = GTK_HEADER_BAR(gtk_header_bar_new()); - gtk_widget_show(GTK_WIDGET(header_bar)); - gtk_header_bar_set_title(header_bar, "quickstart"); - gtk_header_bar_set_show_close_button(header_bar, TRUE); - gtk_window_set_titlebar(window, GTK_WIDGET(header_bar)); - } else { - gtk_window_set_title(window, "quickstart"); - } - - gtk_window_set_default_size(window, 1280, 720); - gtk_widget_show(GTK_WIDGET(window)); - - g_autoptr(FlDartProject) project = fl_dart_project_new(); - fl_dart_project_set_dart_entrypoint_arguments(project, self->dart_entrypoint_arguments); - - FlView* view = fl_view_new(project); - gtk_widget_show(GTK_WIDGET(view)); - gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(view)); - - fl_register_plugins(FL_PLUGIN_REGISTRY(view)); - - gtk_widget_grab_focus(GTK_WIDGET(view)); -} - -// Implements GApplication::local_command_line. -static gboolean my_application_local_command_line(GApplication* application, gchar*** arguments, int* exit_status) { - MyApplication* self = MY_APPLICATION(application); - // Strip out the first argument as it is the binary name. - self->dart_entrypoint_arguments = g_strdupv(*arguments + 1); - - g_autoptr(GError) error = nullptr; - if (!g_application_register(application, nullptr, &error)) { - g_warning("Failed to register: %s", error->message); - *exit_status = 1; - return TRUE; - } - - g_application_activate(application); - *exit_status = 0; - - return TRUE; -} - -// Implements GApplication::startup. -static void my_application_startup(GApplication* application) { - //MyApplication* self = MY_APPLICATION(object); - - // Perform any actions required at application startup. - - G_APPLICATION_CLASS(my_application_parent_class)->startup(application); -} - -// Implements GApplication::shutdown. -static void my_application_shutdown(GApplication* application) { - //MyApplication* self = MY_APPLICATION(object); - - // Perform any actions required at application shutdown. - - G_APPLICATION_CLASS(my_application_parent_class)->shutdown(application); -} - -// Implements GObject::dispose. -static void my_application_dispose(GObject* object) { - MyApplication* self = MY_APPLICATION(object); - g_clear_pointer(&self->dart_entrypoint_arguments, g_strfreev); - G_OBJECT_CLASS(my_application_parent_class)->dispose(object); -} - -static void my_application_class_init(MyApplicationClass* klass) { - G_APPLICATION_CLASS(klass)->activate = my_application_activate; - G_APPLICATION_CLASS(klass)->local_command_line = my_application_local_command_line; - G_APPLICATION_CLASS(klass)->startup = my_application_startup; - G_APPLICATION_CLASS(klass)->shutdown = my_application_shutdown; - G_OBJECT_CLASS(klass)->dispose = my_application_dispose; -} - -static void my_application_init(MyApplication* self) {} - -MyApplication* my_application_new() { - return MY_APPLICATION(g_object_new(my_application_get_type(), - "application-id", APPLICATION_ID, - "flags", G_APPLICATION_NON_UNIQUE, - nullptr)); -} diff --git a/examples/flutter/quickstart/linux/my_application.h b/examples/flutter/quickstart/linux/my_application.h deleted file mode 100644 index 72271d5e..00000000 --- a/examples/flutter/quickstart/linux/my_application.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef FLUTTER_MY_APPLICATION_H_ -#define FLUTTER_MY_APPLICATION_H_ - -#include - -G_DECLARE_FINAL_TYPE(MyApplication, my_application, MY, APPLICATION, - GtkApplication) - -/** - * my_application_new: - * - * Creates a new Flutter-based application. - * - * Returns: a new #MyApplication. - */ -MyApplication* my_application_new(); - -#endif // FLUTTER_MY_APPLICATION_H_ diff --git a/examples/flutter/quickstart/macos/.gitignore b/examples/flutter/quickstart/macos/.gitignore deleted file mode 100644 index 746adbb6..00000000 --- a/examples/flutter/quickstart/macos/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -# Flutter-related -**/Flutter/ephemeral/ -**/Pods/ - -# Xcode-related -**/dgph -**/xcuserdata/ diff --git a/examples/flutter/quickstart/macos/Flutter/Flutter-Debug.xcconfig b/examples/flutter/quickstart/macos/Flutter/Flutter-Debug.xcconfig deleted file mode 100644 index 4b81f9b2..00000000 --- a/examples/flutter/quickstart/macos/Flutter/Flutter-Debug.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" -#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/examples/flutter/quickstart/macos/Flutter/Flutter-Release.xcconfig b/examples/flutter/quickstart/macos/Flutter/Flutter-Release.xcconfig deleted file mode 100644 index 5caa9d15..00000000 --- a/examples/flutter/quickstart/macos/Flutter/Flutter-Release.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" -#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/examples/flutter/quickstart/macos/Flutter/GeneratedPluginRegistrant.swift b/examples/flutter/quickstart/macos/Flutter/GeneratedPluginRegistrant.swift deleted file mode 100644 index b6c27f96..00000000 --- a/examples/flutter/quickstart/macos/Flutter/GeneratedPluginRegistrant.swift +++ /dev/null @@ -1,12 +0,0 @@ -// -// Generated file. Do not edit. -// - -import FlutterMacOS -import Foundation - -import thermion_flutter - -func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { - SwiftThermionFlutterPlugin.register(with: registry.registrar(forPlugin: "SwiftThermionFlutterPlugin")) -} diff --git a/examples/flutter/quickstart/macos/Podfile b/examples/flutter/quickstart/macos/Podfile deleted file mode 100644 index 90de47d4..00000000 --- a/examples/flutter/quickstart/macos/Podfile +++ /dev/null @@ -1,43 +0,0 @@ -platform :osx, '13.0' - -# CocoaPods analytics sends network stats synchronously affecting flutter build latency. -ENV['COCOAPODS_DISABLE_STATS'] = 'true' - -project 'Runner', { - 'Debug' => :debug, - 'Profile' => :release, - 'Release' => :release, -} - -def flutter_root - generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'ephemeral', 'Flutter-Generated.xcconfig'), __FILE__) - unless File.exist?(generated_xcode_build_settings_path) - raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure \"flutter pub get\" is executed first" - end - - File.foreach(generated_xcode_build_settings_path) do |line| - matches = line.match(/FLUTTER_ROOT\=(.*)/) - return matches[1].strip if matches - end - raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Flutter-Generated.xcconfig, then run \"flutter pub get\"" -end - -require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) - -flutter_macos_podfile_setup - -target 'Runner' do - use_frameworks! - use_modular_headers! - - flutter_install_all_macos_pods File.dirname(File.realpath(__FILE__)) - target 'RunnerTests' do - inherit! :search_paths - end -end - -post_install do |installer| - installer.pods_project.targets.each do |target| - flutter_additional_macos_build_settings(target) - end -end diff --git a/examples/flutter/quickstart/macos/Podfile.lock b/examples/flutter/quickstart/macos/Podfile.lock deleted file mode 100644 index 7b2ae237..00000000 --- a/examples/flutter/quickstart/macos/Podfile.lock +++ /dev/null @@ -1,22 +0,0 @@ -PODS: - - FlutterMacOS (1.0.0) - - thermion_flutter (0.0.1): - - FlutterMacOS - -DEPENDENCIES: - - FlutterMacOS (from `Flutter/ephemeral`) - - thermion_flutter (from `Flutter/ephemeral/.symlinks/plugins/thermion_flutter/macos`) - -EXTERNAL SOURCES: - FlutterMacOS: - :path: Flutter/ephemeral - thermion_flutter: - :path: Flutter/ephemeral/.symlinks/plugins/thermion_flutter/macos - -SPEC CHECKSUMS: - FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24 - thermion_flutter: e4895ade6b14d9efb6e17ed2436e89dbb87fa998 - -PODFILE CHECKSUM: 1888651be91a8ad58692c1add9ce24279fd4e950 - -COCOAPODS: 1.15.2 diff --git a/examples/flutter/quickstart/macos/Runner.xcodeproj/project.pbxproj b/examples/flutter/quickstart/macos/Runner.xcodeproj/project.pbxproj deleted file mode 100644 index a3932134..00000000 --- a/examples/flutter/quickstart/macos/Runner.xcodeproj/project.pbxproj +++ /dev/null @@ -1,803 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 54; - objects = { - -/* Begin PBXAggregateTarget section */ - 33CC111A2044C6BA0003C045 /* Flutter Assemble */ = { - isa = PBXAggregateTarget; - buildConfigurationList = 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */; - buildPhases = ( - 33CC111E2044C6BF0003C045 /* ShellScript */, - ); - dependencies = ( - ); - name = "Flutter Assemble"; - productName = FLX; - }; -/* End PBXAggregateTarget section */ - -/* Begin PBXBuildFile section */ - 331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C80D7294CF71000263BE5 /* RunnerTests.swift */; }; - 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */; }; - 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC10F02044A3C60003C045 /* AppDelegate.swift */; }; - 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; - 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; - 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; - 56F02897B820ADA2DE043C9B /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 93162ABED09E78126BD3CDE5 /* Pods_Runner.framework */; }; - 62AA8D6F0977DC04C5F3E47D /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9491FF37DFB0425E4EA0B397 /* Pods_RunnerTests.framework */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 331C80D9294CF71000263BE5 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 33CC10E52044A3C60003C045 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 33CC10EC2044A3C60003C045; - remoteInfo = Runner; - }; - 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 33CC10E52044A3C60003C045 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 33CC111A2044C6BA0003C045; - remoteInfo = FLX; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 33CC110E2044A8840003C045 /* Bundle Framework */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - ); - name = "Bundle Framework"; - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 331C80D5294CF71000263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; - 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; - 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = ""; }; - 33CC10ED2044A3C60003C045 /* quickstart.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = quickstart.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = ""; }; - 33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; - 33CC10F72044A3C60003C045 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Runner/Info.plist; sourceTree = ""; }; - 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainFlutterWindow.swift; sourceTree = ""; }; - 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Debug.xcconfig"; sourceTree = ""; }; - 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Release.xcconfig"; sourceTree = ""; }; - 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "Flutter-Generated.xcconfig"; path = "ephemeral/Flutter-Generated.xcconfig"; sourceTree = ""; }; - 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = ""; }; - 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = ""; }; - 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; }; - 4DE9521732D230B91BB45C73 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; - 5C2B9597C21FB64F23F75F32 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; - 61CABADBE923C1C839256779 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; - 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; - 89306E3842C70B544B3CD9C8 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; - 914F20B2B6A55F4538F4FECA /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; - 93162ABED09E78126BD3CDE5 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 9491FF37DFB0425E4EA0B397 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; - E5EDF04F05E94A7EC21CBB16 /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 331C80D2294CF70F00263BE5 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 62AA8D6F0977DC04C5F3E47D /* Pods_RunnerTests.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 33CC10EA2044A3C60003C045 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 56F02897B820ADA2DE043C9B /* Pods_Runner.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 0AD0DB307687B659B7995D8A /* Pods */ = { - isa = PBXGroup; - children = ( - 4DE9521732D230B91BB45C73 /* Pods-Runner.debug.xcconfig */, - 89306E3842C70B544B3CD9C8 /* Pods-Runner.release.xcconfig */, - 61CABADBE923C1C839256779 /* Pods-Runner.profile.xcconfig */, - 914F20B2B6A55F4538F4FECA /* Pods-RunnerTests.debug.xcconfig */, - 5C2B9597C21FB64F23F75F32 /* Pods-RunnerTests.release.xcconfig */, - E5EDF04F05E94A7EC21CBB16 /* Pods-RunnerTests.profile.xcconfig */, - ); - path = Pods; - sourceTree = ""; - }; - 331C80D6294CF71000263BE5 /* RunnerTests */ = { - isa = PBXGroup; - children = ( - 331C80D7294CF71000263BE5 /* RunnerTests.swift */, - ); - path = RunnerTests; - sourceTree = ""; - }; - 33BA886A226E78AF003329D5 /* Configs */ = { - isa = PBXGroup; - children = ( - 33E5194F232828860026EE4D /* AppInfo.xcconfig */, - 9740EEB21CF90195004384FC /* Debug.xcconfig */, - 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, - 333000ED22D3DE5D00554162 /* Warnings.xcconfig */, - ); - path = Configs; - sourceTree = ""; - }; - 33CC10E42044A3C60003C045 = { - isa = PBXGroup; - children = ( - 33FAB671232836740065AC1E /* Runner */, - 33CEB47122A05771004F2AC0 /* Flutter */, - 331C80D6294CF71000263BE5 /* RunnerTests */, - 33CC10EE2044A3C60003C045 /* Products */, - D73912EC22F37F3D000D13A0 /* Frameworks */, - 0AD0DB307687B659B7995D8A /* Pods */, - ); - sourceTree = ""; - }; - 33CC10EE2044A3C60003C045 /* Products */ = { - isa = PBXGroup; - children = ( - 33CC10ED2044A3C60003C045 /* quickstart.app */, - 331C80D5294CF71000263BE5 /* RunnerTests.xctest */, - ); - name = Products; - sourceTree = ""; - }; - 33CC11242044D66E0003C045 /* Resources */ = { - isa = PBXGroup; - children = ( - 33CC10F22044A3C60003C045 /* Assets.xcassets */, - 33CC10F42044A3C60003C045 /* MainMenu.xib */, - 33CC10F72044A3C60003C045 /* Info.plist */, - ); - name = Resources; - path = ..; - sourceTree = ""; - }; - 33CEB47122A05771004F2AC0 /* Flutter */ = { - isa = PBXGroup; - children = ( - 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */, - 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */, - 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */, - 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */, - ); - path = Flutter; - sourceTree = ""; - }; - 33FAB671232836740065AC1E /* Runner */ = { - isa = PBXGroup; - children = ( - 33CC10F02044A3C60003C045 /* AppDelegate.swift */, - 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */, - 33E51913231747F40026EE4D /* DebugProfile.entitlements */, - 33E51914231749380026EE4D /* Release.entitlements */, - 33CC11242044D66E0003C045 /* Resources */, - 33BA886A226E78AF003329D5 /* Configs */, - ); - path = Runner; - sourceTree = ""; - }; - D73912EC22F37F3D000D13A0 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 93162ABED09E78126BD3CDE5 /* Pods_Runner.framework */, - 9491FF37DFB0425E4EA0B397 /* Pods_RunnerTests.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 331C80D4294CF70F00263BE5 /* RunnerTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; - buildPhases = ( - 465FA95FF24452F333D1C1C1 /* [CP] Check Pods Manifest.lock */, - 331C80D1294CF70F00263BE5 /* Sources */, - 331C80D2294CF70F00263BE5 /* Frameworks */, - 331C80D3294CF70F00263BE5 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 331C80DA294CF71000263BE5 /* PBXTargetDependency */, - ); - name = RunnerTests; - productName = RunnerTests; - productReference = 331C80D5294CF71000263BE5 /* RunnerTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - 33CC10EC2044A3C60003C045 /* Runner */ = { - isa = PBXNativeTarget; - buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; - buildPhases = ( - ED773E1A7DA74470DCD044C6 /* [CP] Check Pods Manifest.lock */, - 33CC10E92044A3C60003C045 /* Sources */, - 33CC10EA2044A3C60003C045 /* Frameworks */, - 33CC10EB2044A3C60003C045 /* Resources */, - 33CC110E2044A8840003C045 /* Bundle Framework */, - 3399D490228B24CF009A79C7 /* ShellScript */, - CB1E43C40756BBF229674223 /* [CP] Embed Pods Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - 33CC11202044C79F0003C045 /* PBXTargetDependency */, - ); - name = Runner; - productName = Runner; - productReference = 33CC10ED2044A3C60003C045 /* quickstart.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 33CC10E52044A3C60003C045 /* Project object */ = { - isa = PBXProject; - attributes = { - BuildIndependentTargetsInParallel = YES; - LastSwiftUpdateCheck = 0920; - LastUpgradeCheck = 1510; - ORGANIZATIONNAME = ""; - TargetAttributes = { - 331C80D4294CF70F00263BE5 = { - CreatedOnToolsVersion = 14.0; - TestTargetID = 33CC10EC2044A3C60003C045; - }; - 33CC10EC2044A3C60003C045 = { - CreatedOnToolsVersion = 9.2; - LastSwiftMigration = 1100; - ProvisioningStyle = Automatic; - SystemCapabilities = { - com.apple.Sandbox = { - enabled = 1; - }; - }; - }; - 33CC111A2044C6BA0003C045 = { - CreatedOnToolsVersion = 9.2; - ProvisioningStyle = Manual; - }; - }; - }; - buildConfigurationList = 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 33CC10E42044A3C60003C045; - productRefGroup = 33CC10EE2044A3C60003C045 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 33CC10EC2044A3C60003C045 /* Runner */, - 331C80D4294CF70F00263BE5 /* RunnerTests */, - 33CC111A2044C6BA0003C045 /* Flutter Assemble */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 331C80D3294CF70F00263BE5 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 33CC10EB2044A3C60003C045 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */, - 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 3399D490228B24CF009A79C7 /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - alwaysOutOfDate = 1; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - ); - outputFileListPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "echo \"$PRODUCT_NAME.app\" > \"$PROJECT_DIR\"/Flutter/ephemeral/.app_filename && \"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh embed\n"; - }; - 33CC111E2044C6BF0003C045 /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - Flutter/ephemeral/FlutterInputs.xcfilelist, - ); - inputPaths = ( - Flutter/ephemeral/tripwire, - ); - outputFileListPaths = ( - Flutter/ephemeral/FlutterOutputs.xcfilelist, - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; - }; - 465FA95FF24452F333D1C1C1 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - CB1E43C40756BBF229674223 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Embed Pods Frameworks"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - ED773E1A7DA74470DCD044C6 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 331C80D1294CF70F00263BE5 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 33CC10E92044A3C60003C045 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */, - 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */, - 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 331C80DA294CF71000263BE5 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 33CC10EC2044A3C60003C045 /* Runner */; - targetProxy = 331C80D9294CF71000263BE5 /* PBXContainerItemProxy */; - }; - 33CC11202044C79F0003C045 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 33CC111A2044C6BA0003C045 /* Flutter Assemble */; - targetProxy = 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - 33CC10F42044A3C60003C045 /* MainMenu.xib */ = { - isa = PBXVariantGroup; - children = ( - 33CC10F52044A3C60003C045 /* Base */, - ); - name = MainMenu.xib; - path = Runner; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 331C80DB294CF71000263BE5 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 914F20B2B6A55F4538F4FECA /* Pods-RunnerTests.debug.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CURRENT_PROJECT_VERSION = 1; - GENERATE_INFOPLIST_FILE = YES; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.example.quickstart.RunnerTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 5.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/quickstart.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/quickstart"; - }; - name = Debug; - }; - 331C80DC294CF71000263BE5 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 5C2B9597C21FB64F23F75F32 /* Pods-RunnerTests.release.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CURRENT_PROJECT_VERSION = 1; - GENERATE_INFOPLIST_FILE = YES; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.example.quickstart.RunnerTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 5.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/quickstart.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/quickstart"; - }; - name = Release; - }; - 331C80DD294CF71000263BE5 /* Profile */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = E5EDF04F05E94A7EC21CBB16 /* Pods-RunnerTests.profile.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CURRENT_PROJECT_VERSION = 1; - GENERATE_INFOPLIST_FILE = YES; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.example.quickstart.RunnerTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 5.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/quickstart.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/quickstart"; - }; - name = Profile; - }; - 338D0CE9231458BD00FA5F75 /* Profile */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CODE_SIGN_IDENTITY = "-"; - COPY_PHASE_STRIP = NO; - DEAD_CODE_STRIPPING = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.14; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = macosx; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - }; - name = Profile; - }; - 338D0CEA231458BD00FA5F75 /* Profile */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - ); - MACOSX_DEPLOYMENT_TARGET = 13.0; - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_VERSION = 5.0; - }; - name = Profile; - }; - 338D0CEB231458BD00FA5F75 /* Profile */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Manual; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Profile; - }; - 33CC10F92044A3C60003C045 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CODE_SIGN_IDENTITY = "-"; - COPY_PHASE_STRIP = NO; - DEAD_CODE_STRIPPING = YES; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.14; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = macosx; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - 33CC10FA2044A3C60003C045 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CODE_SIGN_IDENTITY = "-"; - COPY_PHASE_STRIP = NO; - DEAD_CODE_STRIPPING = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.14; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = macosx; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - }; - name = Release; - }; - 33CC10FC2044A3C60003C045 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - ); - MACOSX_DEPLOYMENT_TARGET = 13.0; - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - }; - name = Debug; - }; - 33CC10FD2044A3C60003C045 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - ); - MACOSX_DEPLOYMENT_TARGET = 13.0; - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_VERSION = 5.0; - }; - name = Release; - }; - 33CC111C2044C6BA0003C045 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Manual; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - 33CC111D2044C6BA0003C045 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 331C80DB294CF71000263BE5 /* Debug */, - 331C80DC294CF71000263BE5 /* Release */, - 331C80DD294CF71000263BE5 /* Profile */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 33CC10F92044A3C60003C045 /* Debug */, - 33CC10FA2044A3C60003C045 /* Release */, - 338D0CE9231458BD00FA5F75 /* Profile */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 33CC10FC2044A3C60003C045 /* Debug */, - 33CC10FD2044A3C60003C045 /* Release */, - 338D0CEA231458BD00FA5F75 /* Profile */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 33CC111C2044C6BA0003C045 /* Debug */, - 33CC111D2044C6BA0003C045 /* Release */, - 338D0CEB231458BD00FA5F75 /* Profile */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 33CC10E52044A3C60003C045 /* Project object */; -} diff --git a/examples/flutter/quickstart/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/examples/flutter/quickstart/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d98100..00000000 --- a/examples/flutter/quickstart/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/examples/flutter/quickstart/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/examples/flutter/quickstart/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme deleted file mode 100644 index c9a58906..00000000 --- a/examples/flutter/quickstart/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/flutter/quickstart/macos/Runner.xcworkspace/contents.xcworkspacedata b/examples/flutter/quickstart/macos/Runner.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 21a3cc14..00000000 --- a/examples/flutter/quickstart/macos/Runner.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - diff --git a/examples/flutter/quickstart/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/examples/flutter/quickstart/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d98100..00000000 --- a/examples/flutter/quickstart/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/examples/flutter/quickstart/macos/Runner/AppDelegate.swift b/examples/flutter/quickstart/macos/Runner/AppDelegate.swift deleted file mode 100644 index 8e02df28..00000000 --- a/examples/flutter/quickstart/macos/Runner/AppDelegate.swift +++ /dev/null @@ -1,9 +0,0 @@ -import Cocoa -import FlutterMacOS - -@main -class AppDelegate: FlutterAppDelegate { - override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { - return true - } -} diff --git a/examples/flutter/quickstart/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/examples/flutter/quickstart/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index a2ec33f1..00000000 --- a/examples/flutter/quickstart/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "images" : [ - { - "size" : "16x16", - "idiom" : "mac", - "filename" : "app_icon_16.png", - "scale" : "1x" - }, - { - "size" : "16x16", - "idiom" : "mac", - "filename" : "app_icon_32.png", - "scale" : "2x" - }, - { - "size" : "32x32", - "idiom" : "mac", - "filename" : "app_icon_32.png", - "scale" : "1x" - }, - { - "size" : "32x32", - "idiom" : "mac", - "filename" : "app_icon_64.png", - "scale" : "2x" - }, - { - "size" : "128x128", - "idiom" : "mac", - "filename" : "app_icon_128.png", - "scale" : "1x" - }, - { - "size" : "128x128", - "idiom" : "mac", - "filename" : "app_icon_256.png", - "scale" : "2x" - }, - { - "size" : "256x256", - "idiom" : "mac", - "filename" : "app_icon_256.png", - "scale" : "1x" - }, - { - "size" : "256x256", - "idiom" : "mac", - "filename" : "app_icon_512.png", - "scale" : "2x" - }, - { - "size" : "512x512", - "idiom" : "mac", - "filename" : "app_icon_512.png", - "scale" : "1x" - }, - { - "size" : "512x512", - "idiom" : "mac", - "filename" : "app_icon_1024.png", - "scale" : "2x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} diff --git a/examples/flutter/quickstart/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png b/examples/flutter/quickstart/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png deleted file mode 100644 index 82b6f9d9..00000000 Binary files a/examples/flutter/quickstart/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png and /dev/null differ diff --git a/examples/flutter/quickstart/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png b/examples/flutter/quickstart/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png deleted file mode 100644 index 13b35eba..00000000 Binary files a/examples/flutter/quickstart/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png and /dev/null differ diff --git a/examples/flutter/quickstart/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png b/examples/flutter/quickstart/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png deleted file mode 100644 index 0a3f5fa4..00000000 Binary files a/examples/flutter/quickstart/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png and /dev/null differ diff --git a/examples/flutter/quickstart/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png b/examples/flutter/quickstart/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png deleted file mode 100644 index bdb57226..00000000 Binary files a/examples/flutter/quickstart/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png and /dev/null differ diff --git a/examples/flutter/quickstart/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png b/examples/flutter/quickstart/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png deleted file mode 100644 index f083318e..00000000 Binary files a/examples/flutter/quickstart/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png and /dev/null differ diff --git a/examples/flutter/quickstart/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png b/examples/flutter/quickstart/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png deleted file mode 100644 index 326c0e72..00000000 Binary files a/examples/flutter/quickstart/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png and /dev/null differ diff --git a/examples/flutter/quickstart/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png b/examples/flutter/quickstart/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png deleted file mode 100644 index 2f1632cf..00000000 Binary files a/examples/flutter/quickstart/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png and /dev/null differ diff --git a/examples/flutter/quickstart/macos/Runner/Base.lproj/MainMenu.xib b/examples/flutter/quickstart/macos/Runner/Base.lproj/MainMenu.xib deleted file mode 100644 index 80e867a4..00000000 --- a/examples/flutter/quickstart/macos/Runner/Base.lproj/MainMenu.xib +++ /dev/null @@ -1,343 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/flutter/quickstart/macos/Runner/Configs/AppInfo.xcconfig b/examples/flutter/quickstart/macos/Runner/Configs/AppInfo.xcconfig deleted file mode 100644 index b638164d..00000000 --- a/examples/flutter/quickstart/macos/Runner/Configs/AppInfo.xcconfig +++ /dev/null @@ -1,14 +0,0 @@ -// Application-level settings for the Runner target. -// -// This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the -// future. If not, the values below would default to using the project name when this becomes a -// 'flutter create' template. - -// The application's name. By default this is also the title of the Flutter window. -PRODUCT_NAME = quickstart - -// The application's bundle identifier -PRODUCT_BUNDLE_IDENTIFIER = com.example.quickstart - -// The copyright displayed in application information -PRODUCT_COPYRIGHT = Copyright © 2024 com.example. All rights reserved. diff --git a/examples/flutter/quickstart/macos/Runner/Configs/Debug.xcconfig b/examples/flutter/quickstart/macos/Runner/Configs/Debug.xcconfig deleted file mode 100644 index 36b0fd94..00000000 --- a/examples/flutter/quickstart/macos/Runner/Configs/Debug.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include "../../Flutter/Flutter-Debug.xcconfig" -#include "Warnings.xcconfig" diff --git a/examples/flutter/quickstart/macos/Runner/Configs/Release.xcconfig b/examples/flutter/quickstart/macos/Runner/Configs/Release.xcconfig deleted file mode 100644 index dff4f495..00000000 --- a/examples/flutter/quickstart/macos/Runner/Configs/Release.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include "../../Flutter/Flutter-Release.xcconfig" -#include "Warnings.xcconfig" diff --git a/examples/flutter/quickstart/macos/Runner/Configs/Warnings.xcconfig b/examples/flutter/quickstart/macos/Runner/Configs/Warnings.xcconfig deleted file mode 100644 index 42bcbf47..00000000 --- a/examples/flutter/quickstart/macos/Runner/Configs/Warnings.xcconfig +++ /dev/null @@ -1,13 +0,0 @@ -WARNING_CFLAGS = -Wall -Wconditional-uninitialized -Wnullable-to-nonnull-conversion -Wmissing-method-return-type -Woverlength-strings -GCC_WARN_UNDECLARED_SELECTOR = YES -CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES -CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE -CLANG_WARN__DUPLICATE_METHOD_MATCH = YES -CLANG_WARN_PRAGMA_PACK = YES -CLANG_WARN_STRICT_PROTOTYPES = YES -CLANG_WARN_COMMA = YES -GCC_WARN_STRICT_SELECTOR_MATCH = YES -CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES -CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES -GCC_WARN_SHADOW = YES -CLANG_WARN_UNREACHABLE_CODE = YES diff --git a/examples/flutter/quickstart/macos/Runner/DebugProfile.entitlements b/examples/flutter/quickstart/macos/Runner/DebugProfile.entitlements deleted file mode 100644 index dddb8a30..00000000 --- a/examples/flutter/quickstart/macos/Runner/DebugProfile.entitlements +++ /dev/null @@ -1,12 +0,0 @@ - - - - - com.apple.security.app-sandbox - - com.apple.security.cs.allow-jit - - com.apple.security.network.server - - - diff --git a/examples/flutter/quickstart/macos/Runner/Info.plist b/examples/flutter/quickstart/macos/Runner/Info.plist deleted file mode 100644 index 4789daa6..00000000 --- a/examples/flutter/quickstart/macos/Runner/Info.plist +++ /dev/null @@ -1,32 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIconFile - - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - $(FLUTTER_BUILD_NAME) - CFBundleVersion - $(FLUTTER_BUILD_NUMBER) - LSMinimumSystemVersion - $(MACOSX_DEPLOYMENT_TARGET) - NSHumanReadableCopyright - $(PRODUCT_COPYRIGHT) - NSMainNibFile - MainMenu - NSPrincipalClass - NSApplication - - diff --git a/examples/flutter/quickstart/macos/Runner/MainFlutterWindow.swift b/examples/flutter/quickstart/macos/Runner/MainFlutterWindow.swift deleted file mode 100644 index 3cc05eb2..00000000 --- a/examples/flutter/quickstart/macos/Runner/MainFlutterWindow.swift +++ /dev/null @@ -1,15 +0,0 @@ -import Cocoa -import FlutterMacOS - -class MainFlutterWindow: NSWindow { - override func awakeFromNib() { - let flutterViewController = FlutterViewController() - let windowFrame = self.frame - self.contentViewController = flutterViewController - self.setFrame(windowFrame, display: true) - - RegisterGeneratedPlugins(registry: flutterViewController) - - super.awakeFromNib() - } -} diff --git a/examples/flutter/quickstart/macos/Runner/Release.entitlements b/examples/flutter/quickstart/macos/Runner/Release.entitlements deleted file mode 100644 index 852fa1a4..00000000 --- a/examples/flutter/quickstart/macos/Runner/Release.entitlements +++ /dev/null @@ -1,8 +0,0 @@ - - - - - com.apple.security.app-sandbox - - - diff --git a/examples/flutter/quickstart/macos/RunnerTests/RunnerTests.swift b/examples/flutter/quickstart/macos/RunnerTests/RunnerTests.swift deleted file mode 100644 index 61f3bd1f..00000000 --- a/examples/flutter/quickstart/macos/RunnerTests/RunnerTests.swift +++ /dev/null @@ -1,12 +0,0 @@ -import Cocoa -import FlutterMacOS -import XCTest - -class RunnerTests: XCTestCase { - - func testExample() { - // If you add code to the Runner application, consider adding tests here. - // See https://developer.apple.com/documentation/xctest for more information about using XCTest. - } - -} diff --git a/examples/flutter/quickstart/pubspec.yaml b/examples/flutter/quickstart/pubspec.yaml deleted file mode 100644 index a0db16e2..00000000 --- a/examples/flutter/quickstart/pubspec.yaml +++ /dev/null @@ -1,45 +0,0 @@ -name: quickstart -description: "A new Flutter project." -# The following line prevents the package from being accidentally published to -# pub.dev using `flutter pub publish`. This is preferred for private packages. -publish_to: 'none' # Remove this line if you wish to publish to pub.dev - -# The following defines the version and build number for your application. -# A version number is three numbers separated by dots, like 1.2.43 -# followed by an optional build number separated by a +. -# Both the version and the builder number may be overridden in flutter -# build by specifying --build-name and --build-number, respectively. -# In Android, build-name is used as versionName while build-number used as versionCode. -# Read more about Android versioning at https://developer.android.com/studio/publish/versioning -# In iOS, build-name is used as CFBundleShortVersionString while build-number is used as CFBundleVersion. -# Read more about iOS versioning at -# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html -# In Windows, build-name is used as the major, minor, and patch parts -# of the product and file versions while build-number is used as the build suffix. -version: 1.0.0+1 - -environment: - sdk: '>=3.3.0 <4.0.0' - -# Dependencies specify other packages that your package needs in order to work. -# To automatically upgrade your package dependencies to the latest versions -# consider running `flutter pub upgrade --major-versions`. Alternatively, -# dependencies can be manually updated by changing the version numbers below to -# the latest version available on pub.dev. To see which dependencies have newer -# versions available, run `flutter pub outdated`. -dependencies: - flutter: - sdk: flutter - thermion_flutter: - cupertino_icons: ^1.0.8 - vector_math: ^2.1.4 - -dev_dependencies: - flutter_test: - sdk: flutter - flutter_lints: ^4.0.0 - -flutter: - uses-material-design: true - assets: - - assets/ diff --git a/examples/flutter/quickstart/test/widget_test.dart b/examples/flutter/quickstart/test/widget_test.dart deleted file mode 100644 index fe677c1e..00000000 --- a/examples/flutter/quickstart/test/widget_test.dart +++ /dev/null @@ -1,30 +0,0 @@ -// This is a basic Flutter widget test. -// -// To perform an interaction with a widget in your test, use the WidgetTester -// utility in the flutter_test package. For example, you can send tap and scroll -// gestures. You can also use WidgetTester to find child widgets in the widget -// tree, read text, and verify that the values of widget properties are correct. - -import 'package:flutter/material.dart'; -import 'package:flutter_test/flutter_test.dart'; - -import 'package:quickstart/main.dart'; - -void main() { - testWidgets('Counter increments smoke test', (WidgetTester tester) async { - // Build our app and trigger a frame. - await tester.pumpWidget(const MyApp()); - - // Verify that our counter starts at 0. - expect(find.text('0'), findsOneWidget); - expect(find.text('1'), findsNothing); - - // Tap the '+' icon and trigger a frame. - await tester.tap(find.byIcon(Icons.add)); - await tester.pump(); - - // Verify that our counter has incremented. - expect(find.text('0'), findsNothing); - expect(find.text('1'), findsOneWidget); - }); -} diff --git a/examples/flutter/quickstart/web/favicon.png b/examples/flutter/quickstart/web/favicon.png deleted file mode 100644 index 8aaa46ac..00000000 Binary files a/examples/flutter/quickstart/web/favicon.png and /dev/null differ diff --git a/examples/flutter/quickstart/web/icons/Icon-192.png b/examples/flutter/quickstart/web/icons/Icon-192.png deleted file mode 100644 index b749bfef..00000000 Binary files a/examples/flutter/quickstart/web/icons/Icon-192.png and /dev/null differ diff --git a/examples/flutter/quickstart/web/icons/Icon-512.png b/examples/flutter/quickstart/web/icons/Icon-512.png deleted file mode 100644 index 88cfd48d..00000000 Binary files a/examples/flutter/quickstart/web/icons/Icon-512.png and /dev/null differ diff --git a/examples/flutter/quickstart/web/icons/Icon-maskable-192.png b/examples/flutter/quickstart/web/icons/Icon-maskable-192.png deleted file mode 100644 index eb9b4d76..00000000 Binary files a/examples/flutter/quickstart/web/icons/Icon-maskable-192.png and /dev/null differ diff --git a/examples/flutter/quickstart/web/icons/Icon-maskable-512.png b/examples/flutter/quickstart/web/icons/Icon-maskable-512.png deleted file mode 100644 index d69c5669..00000000 Binary files a/examples/flutter/quickstart/web/icons/Icon-maskable-512.png and /dev/null differ diff --git a/examples/flutter/quickstart/web/index.html b/examples/flutter/quickstart/web/index.html deleted file mode 100644 index 4b963a54..00000000 --- a/examples/flutter/quickstart/web/index.html +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - quickstart - - - - - - diff --git a/examples/flutter/quickstart/web/manifest.json b/examples/flutter/quickstart/web/manifest.json deleted file mode 100644 index 1dd1a2f1..00000000 --- a/examples/flutter/quickstart/web/manifest.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "quickstart", - "short_name": "quickstart", - "start_url": ".", - "display": "standalone", - "background_color": "#0175C2", - "theme_color": "#0175C2", - "description": "A new Flutter project.", - "orientation": "portrait-primary", - "prefer_related_applications": false, - "icons": [ - { - "src": "icons/Icon-192.png", - "sizes": "192x192", - "type": "image/png" - }, - { - "src": "icons/Icon-512.png", - "sizes": "512x512", - "type": "image/png" - }, - { - "src": "icons/Icon-maskable-192.png", - "sizes": "192x192", - "type": "image/png", - "purpose": "maskable" - }, - { - "src": "icons/Icon-maskable-512.png", - "sizes": "512x512", - "type": "image/png", - "purpose": "maskable" - } - ] -} diff --git a/examples/flutter/quickstart/windows/.gitignore b/examples/flutter/quickstart/windows/.gitignore deleted file mode 100644 index d492d0d9..00000000 --- a/examples/flutter/quickstart/windows/.gitignore +++ /dev/null @@ -1,17 +0,0 @@ -flutter/ephemeral/ - -# Visual Studio user-specific files. -*.suo -*.user -*.userosscache -*.sln.docstates - -# Visual Studio build-related files. -x64/ -x86/ - -# Visual Studio cache files -# files ending in .cache can be ignored -*.[Cc]ache -# but keep track of directories ending in .cache -!*.[Cc]ache/ diff --git a/examples/flutter/quickstart/windows/CMakeLists.txt b/examples/flutter/quickstart/windows/CMakeLists.txt deleted file mode 100644 index 21862f80..00000000 --- a/examples/flutter/quickstart/windows/CMakeLists.txt +++ /dev/null @@ -1,108 +0,0 @@ -# Project-level configuration. -cmake_minimum_required(VERSION 3.14) -project(quickstart LANGUAGES CXX) - -# The name of the executable created for the application. Change this to change -# the on-disk name of your application. -set(BINARY_NAME "quickstart") - -# Explicitly opt in to modern CMake behaviors to avoid warnings with recent -# versions of CMake. -cmake_policy(VERSION 3.14...3.25) - -# Define build configuration option. -get_property(IS_MULTICONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) -if(IS_MULTICONFIG) - set(CMAKE_CONFIGURATION_TYPES "Debug;Profile;Release" - CACHE STRING "" FORCE) -else() - if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) - set(CMAKE_BUILD_TYPE "Debug" CACHE - STRING "Flutter build mode" FORCE) - set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS - "Debug" "Profile" "Release") - endif() -endif() -# Define settings for the Profile build mode. -set(CMAKE_EXE_LINKER_FLAGS_PROFILE "${CMAKE_EXE_LINKER_FLAGS_RELEASE}") -set(CMAKE_SHARED_LINKER_FLAGS_PROFILE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE}") -set(CMAKE_C_FLAGS_PROFILE "${CMAKE_C_FLAGS_RELEASE}") -set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_RELEASE}") - -# Use Unicode for all projects. -add_definitions(-DUNICODE -D_UNICODE) - -# Compilation settings that should be applied to most targets. -# -# Be cautious about adding new options here, as plugins use this function by -# default. In most cases, you should add new options to specific targets instead -# of modifying this function. -function(APPLY_STANDARD_SETTINGS TARGET) - target_compile_features(${TARGET} PUBLIC cxx_std_17) - target_compile_options(${TARGET} PRIVATE /W4 /WX /wd"4100") - target_compile_options(${TARGET} PRIVATE /EHsc) - target_compile_definitions(${TARGET} PRIVATE "_HAS_EXCEPTIONS=0") - target_compile_definitions(${TARGET} PRIVATE "$<$:_DEBUG>") -endfunction() - -# Flutter library and tool build rules. -set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter") -add_subdirectory(${FLUTTER_MANAGED_DIR}) - -# Application build; see runner/CMakeLists.txt. -add_subdirectory("runner") - - -# Generated plugin build rules, which manage building the plugins and adding -# them to the application. -include(flutter/generated_plugins.cmake) - - -# === Installation === -# Support files are copied into place next to the executable, so that it can -# run in place. This is done instead of making a separate bundle (as on Linux) -# so that building and running from within Visual Studio will work. -set(BUILD_BUNDLE_DIR "$") -# Make the "install" step default, as it's required to run. -set(CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD 1) -if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) - set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE) -endif() - -set(INSTALL_BUNDLE_DATA_DIR "${CMAKE_INSTALL_PREFIX}/data") -set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}") - -install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}" - COMPONENT Runtime) - -install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" - COMPONENT Runtime) - -install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" - COMPONENT Runtime) - -if(PLUGIN_BUNDLED_LIBRARIES) - install(FILES "${PLUGIN_BUNDLED_LIBRARIES}" - DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" - COMPONENT Runtime) -endif() - -# Copy the native assets provided by the build.dart from all packages. -set(NATIVE_ASSETS_DIR "${PROJECT_BUILD_DIR}native_assets/windows/") -install(DIRECTORY "${NATIVE_ASSETS_DIR}" - DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" - COMPONENT Runtime) - -# Fully re-copy the assets directory on each build to avoid having stale files -# from a previous install. -set(FLUTTER_ASSET_DIR_NAME "flutter_assets") -install(CODE " - file(REMOVE_RECURSE \"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\") - " COMPONENT Runtime) -install(DIRECTORY "${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}" - DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" COMPONENT Runtime) - -# Install the AOT library on non-Debug builds only. -install(FILES "${AOT_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" - CONFIGURATIONS Profile;Release - COMPONENT Runtime) diff --git a/examples/flutter/quickstart/windows/flutter/CMakeLists.txt b/examples/flutter/quickstart/windows/flutter/CMakeLists.txt deleted file mode 100644 index 903f4899..00000000 --- a/examples/flutter/quickstart/windows/flutter/CMakeLists.txt +++ /dev/null @@ -1,109 +0,0 @@ -# This file controls Flutter-level build steps. It should not be edited. -cmake_minimum_required(VERSION 3.14) - -set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral") - -# Configuration provided via flutter tool. -include(${EPHEMERAL_DIR}/generated_config.cmake) - -# TODO: Move the rest of this into files in ephemeral. See -# https://github.com/flutter/flutter/issues/57146. -set(WRAPPER_ROOT "${EPHEMERAL_DIR}/cpp_client_wrapper") - -# Set fallback configurations for older versions of the flutter tool. -if (NOT DEFINED FLUTTER_TARGET_PLATFORM) - set(FLUTTER_TARGET_PLATFORM "windows-x64") -endif() - -# === Flutter Library === -set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/flutter_windows.dll") - -# Published to parent scope for install step. -set(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE) -set(FLUTTER_ICU_DATA_FILE "${EPHEMERAL_DIR}/icudtl.dat" PARENT_SCOPE) -set(PROJECT_BUILD_DIR "${PROJECT_DIR}/build/" PARENT_SCOPE) -set(AOT_LIBRARY "${PROJECT_DIR}/build/windows/app.so" PARENT_SCOPE) - -list(APPEND FLUTTER_LIBRARY_HEADERS - "flutter_export.h" - "flutter_windows.h" - "flutter_messenger.h" - "flutter_plugin_registrar.h" - "flutter_texture_registrar.h" -) -list(TRANSFORM FLUTTER_LIBRARY_HEADERS PREPEND "${EPHEMERAL_DIR}/") -add_library(flutter INTERFACE) -target_include_directories(flutter INTERFACE - "${EPHEMERAL_DIR}" -) -target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}.lib") -add_dependencies(flutter flutter_assemble) - -# === Wrapper === -list(APPEND CPP_WRAPPER_SOURCES_CORE - "core_implementations.cc" - "standard_codec.cc" -) -list(TRANSFORM CPP_WRAPPER_SOURCES_CORE PREPEND "${WRAPPER_ROOT}/") -list(APPEND CPP_WRAPPER_SOURCES_PLUGIN - "plugin_registrar.cc" -) -list(TRANSFORM CPP_WRAPPER_SOURCES_PLUGIN PREPEND "${WRAPPER_ROOT}/") -list(APPEND CPP_WRAPPER_SOURCES_APP - "flutter_engine.cc" - "flutter_view_controller.cc" -) -list(TRANSFORM CPP_WRAPPER_SOURCES_APP PREPEND "${WRAPPER_ROOT}/") - -# Wrapper sources needed for a plugin. -add_library(flutter_wrapper_plugin STATIC - ${CPP_WRAPPER_SOURCES_CORE} - ${CPP_WRAPPER_SOURCES_PLUGIN} -) -apply_standard_settings(flutter_wrapper_plugin) -set_target_properties(flutter_wrapper_plugin PROPERTIES - POSITION_INDEPENDENT_CODE ON) -set_target_properties(flutter_wrapper_plugin PROPERTIES - CXX_VISIBILITY_PRESET hidden) -target_link_libraries(flutter_wrapper_plugin PUBLIC flutter) -target_include_directories(flutter_wrapper_plugin PUBLIC - "${WRAPPER_ROOT}/include" -) -add_dependencies(flutter_wrapper_plugin flutter_assemble) - -# Wrapper sources needed for the runner. -add_library(flutter_wrapper_app STATIC - ${CPP_WRAPPER_SOURCES_CORE} - ${CPP_WRAPPER_SOURCES_APP} -) -apply_standard_settings(flutter_wrapper_app) -target_link_libraries(flutter_wrapper_app PUBLIC flutter) -target_include_directories(flutter_wrapper_app PUBLIC - "${WRAPPER_ROOT}/include" -) -add_dependencies(flutter_wrapper_app flutter_assemble) - -# === Flutter tool backend === -# _phony_ is a non-existent file to force this command to run every time, -# since currently there's no way to get a full input/output list from the -# flutter tool. -set(PHONY_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/_phony_") -set_source_files_properties("${PHONY_OUTPUT}" PROPERTIES SYMBOLIC TRUE) -add_custom_command( - OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS} - ${CPP_WRAPPER_SOURCES_CORE} ${CPP_WRAPPER_SOURCES_PLUGIN} - ${CPP_WRAPPER_SOURCES_APP} - ${PHONY_OUTPUT} - COMMAND ${CMAKE_COMMAND} -E env - ${FLUTTER_TOOL_ENVIRONMENT} - "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.bat" - ${FLUTTER_TARGET_PLATFORM} $ - VERBATIM -) -add_custom_target(flutter_assemble DEPENDS - "${FLUTTER_LIBRARY}" - ${FLUTTER_LIBRARY_HEADERS} - ${CPP_WRAPPER_SOURCES_CORE} - ${CPP_WRAPPER_SOURCES_PLUGIN} - ${CPP_WRAPPER_SOURCES_APP} -) diff --git a/examples/flutter/quickstart/windows/flutter/generated_plugin_registrant.cc b/examples/flutter/quickstart/windows/flutter/generated_plugin_registrant.cc deleted file mode 100644 index 64919ad2..00000000 --- a/examples/flutter/quickstart/windows/flutter/generated_plugin_registrant.cc +++ /dev/null @@ -1,14 +0,0 @@ -// -// Generated file. Do not edit. -// - -// clang-format off - -#include "generated_plugin_registrant.h" - -#include - -void RegisterPlugins(flutter::PluginRegistry* registry) { - ThermionFlutterPluginCApiRegisterWithRegistrar( - registry->GetRegistrarForPlugin("ThermionFlutterPluginCApi")); -} diff --git a/examples/flutter/quickstart/windows/flutter/generated_plugin_registrant.h b/examples/flutter/quickstart/windows/flutter/generated_plugin_registrant.h deleted file mode 100644 index dc139d85..00000000 --- a/examples/flutter/quickstart/windows/flutter/generated_plugin_registrant.h +++ /dev/null @@ -1,15 +0,0 @@ -// -// Generated file. Do not edit. -// - -// clang-format off - -#ifndef GENERATED_PLUGIN_REGISTRANT_ -#define GENERATED_PLUGIN_REGISTRANT_ - -#include - -// Registers Flutter plugins. -void RegisterPlugins(flutter::PluginRegistry* registry); - -#endif // GENERATED_PLUGIN_REGISTRANT_ diff --git a/examples/flutter/quickstart/windows/flutter/generated_plugins.cmake b/examples/flutter/quickstart/windows/flutter/generated_plugins.cmake deleted file mode 100644 index 55f1a93d..00000000 --- a/examples/flutter/quickstart/windows/flutter/generated_plugins.cmake +++ /dev/null @@ -1,24 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST - thermion_flutter -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/examples/flutter/quickstart/windows/runner/CMakeLists.txt b/examples/flutter/quickstart/windows/runner/CMakeLists.txt deleted file mode 100644 index 394917c0..00000000 --- a/examples/flutter/quickstart/windows/runner/CMakeLists.txt +++ /dev/null @@ -1,40 +0,0 @@ -cmake_minimum_required(VERSION 3.14) -project(runner LANGUAGES CXX) - -# Define the application target. To change its name, change BINARY_NAME in the -# top-level CMakeLists.txt, not the value here, or `flutter run` will no longer -# work. -# -# Any new source files that you add to the application should be added here. -add_executable(${BINARY_NAME} WIN32 - "flutter_window.cpp" - "main.cpp" - "utils.cpp" - "win32_window.cpp" - "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" - "Runner.rc" - "runner.exe.manifest" -) - -# Apply the standard set of build settings. This can be removed for applications -# that need different build settings. -apply_standard_settings(${BINARY_NAME}) - -# Add preprocessor definitions for the build version. -target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION=\"${FLUTTER_VERSION}\"") -target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_MAJOR=${FLUTTER_VERSION_MAJOR}") -target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_MINOR=${FLUTTER_VERSION_MINOR}") -target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_PATCH=${FLUTTER_VERSION_PATCH}") -target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_BUILD=${FLUTTER_VERSION_BUILD}") - -# Disable Windows macros that collide with C++ standard library functions. -target_compile_definitions(${BINARY_NAME} PRIVATE "NOMINMAX") - -# Add dependency libraries and include directories. Add any application-specific -# dependencies here. -target_link_libraries(${BINARY_NAME} PRIVATE flutter flutter_wrapper_app) -target_link_libraries(${BINARY_NAME} PRIVATE "dwmapi.lib") -target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}") - -# Run the Flutter tool portions of the build. This must not be removed. -add_dependencies(${BINARY_NAME} flutter_assemble) diff --git a/examples/flutter/quickstart/windows/runner/Runner.rc b/examples/flutter/quickstart/windows/runner/Runner.rc deleted file mode 100644 index fb14283d..00000000 --- a/examples/flutter/quickstart/windows/runner/Runner.rc +++ /dev/null @@ -1,121 +0,0 @@ -// Microsoft Visual C++ generated resource script. -// -#pragma code_page(65001) -#include "resource.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#include "winres.h" - -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// English (United States) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE -BEGIN - "resource.h\0" -END - -2 TEXTINCLUDE -BEGIN - "#include ""winres.h""\r\n" - "\0" -END - -3 TEXTINCLUDE -BEGIN - "\r\n" - "\0" -END - -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// Icon -// - -// Icon with lowest ID value placed first to ensure application icon -// remains consistent on all systems. -IDI_APP_ICON ICON "resources\\app_icon.ico" - - -///////////////////////////////////////////////////////////////////////////// -// -// Version -// - -#if defined(FLUTTER_VERSION_MAJOR) && defined(FLUTTER_VERSION_MINOR) && defined(FLUTTER_VERSION_PATCH) && defined(FLUTTER_VERSION_BUILD) -#define VERSION_AS_NUMBER FLUTTER_VERSION_MAJOR,FLUTTER_VERSION_MINOR,FLUTTER_VERSION_PATCH,FLUTTER_VERSION_BUILD -#else -#define VERSION_AS_NUMBER 1,0,0,0 -#endif - -#if defined(FLUTTER_VERSION) -#define VERSION_AS_STRING FLUTTER_VERSION -#else -#define VERSION_AS_STRING "1.0.0" -#endif - -VS_VERSION_INFO VERSIONINFO - FILEVERSION VERSION_AS_NUMBER - PRODUCTVERSION VERSION_AS_NUMBER - FILEFLAGSMASK VS_FFI_FILEFLAGSMASK -#ifdef _DEBUG - FILEFLAGS VS_FF_DEBUG -#else - FILEFLAGS 0x0L -#endif - FILEOS VOS__WINDOWS32 - FILETYPE VFT_APP - FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904e4" - BEGIN - VALUE "CompanyName", "com.example" "\0" - VALUE "FileDescription", "quickstart" "\0" - VALUE "FileVersion", VERSION_AS_STRING "\0" - VALUE "InternalName", "quickstart" "\0" - VALUE "LegalCopyright", "Copyright (C) 2024 com.example. All rights reserved." "\0" - VALUE "OriginalFilename", "quickstart.exe" "\0" - VALUE "ProductName", "quickstart" "\0" - VALUE "ProductVersion", VERSION_AS_STRING "\0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x409, 1252 - END -END - -#endif // English (United States) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// - - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED diff --git a/examples/flutter/quickstart/windows/runner/flutter_window.cpp b/examples/flutter/quickstart/windows/runner/flutter_window.cpp deleted file mode 100644 index 955ee303..00000000 --- a/examples/flutter/quickstart/windows/runner/flutter_window.cpp +++ /dev/null @@ -1,71 +0,0 @@ -#include "flutter_window.h" - -#include - -#include "flutter/generated_plugin_registrant.h" - -FlutterWindow::FlutterWindow(const flutter::DartProject& project) - : project_(project) {} - -FlutterWindow::~FlutterWindow() {} - -bool FlutterWindow::OnCreate() { - if (!Win32Window::OnCreate()) { - return false; - } - - RECT frame = GetClientArea(); - - // The size here must match the window dimensions to avoid unnecessary surface - // creation / destruction in the startup path. - flutter_controller_ = std::make_unique( - frame.right - frame.left, frame.bottom - frame.top, project_); - // Ensure that basic setup of the controller was successful. - if (!flutter_controller_->engine() || !flutter_controller_->view()) { - return false; - } - RegisterPlugins(flutter_controller_->engine()); - SetChildContent(flutter_controller_->view()->GetNativeWindow()); - - flutter_controller_->engine()->SetNextFrameCallback([&]() { - this->Show(); - }); - - // Flutter can complete the first frame before the "show window" callback is - // registered. The following call ensures a frame is pending to ensure the - // window is shown. It is a no-op if the first frame hasn't completed yet. - flutter_controller_->ForceRedraw(); - - return true; -} - -void FlutterWindow::OnDestroy() { - if (flutter_controller_) { - flutter_controller_ = nullptr; - } - - Win32Window::OnDestroy(); -} - -LRESULT -FlutterWindow::MessageHandler(HWND hwnd, UINT const message, - WPARAM const wparam, - LPARAM const lparam) noexcept { - // Give Flutter, including plugins, an opportunity to handle window messages. - if (flutter_controller_) { - std::optional result = - flutter_controller_->HandleTopLevelWindowProc(hwnd, message, wparam, - lparam); - if (result) { - return *result; - } - } - - switch (message) { - case WM_FONTCHANGE: - flutter_controller_->engine()->ReloadSystemFonts(); - break; - } - - return Win32Window::MessageHandler(hwnd, message, wparam, lparam); -} diff --git a/examples/flutter/quickstart/windows/runner/flutter_window.h b/examples/flutter/quickstart/windows/runner/flutter_window.h deleted file mode 100644 index 6da0652f..00000000 --- a/examples/flutter/quickstart/windows/runner/flutter_window.h +++ /dev/null @@ -1,33 +0,0 @@ -#ifndef RUNNER_FLUTTER_WINDOW_H_ -#define RUNNER_FLUTTER_WINDOW_H_ - -#include -#include - -#include - -#include "win32_window.h" - -// A window that does nothing but host a Flutter view. -class FlutterWindow : public Win32Window { - public: - // Creates a new FlutterWindow hosting a Flutter view running |project|. - explicit FlutterWindow(const flutter::DartProject& project); - virtual ~FlutterWindow(); - - protected: - // Win32Window: - bool OnCreate() override; - void OnDestroy() override; - LRESULT MessageHandler(HWND window, UINT const message, WPARAM const wparam, - LPARAM const lparam) noexcept override; - - private: - // The project to run. - flutter::DartProject project_; - - // The Flutter instance hosted by this window. - std::unique_ptr flutter_controller_; -}; - -#endif // RUNNER_FLUTTER_WINDOW_H_ diff --git a/examples/flutter/quickstart/windows/runner/main.cpp b/examples/flutter/quickstart/windows/runner/main.cpp deleted file mode 100644 index b7fd16b9..00000000 --- a/examples/flutter/quickstart/windows/runner/main.cpp +++ /dev/null @@ -1,43 +0,0 @@ -#include -#include -#include - -#include "flutter_window.h" -#include "utils.h" - -int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev, - _In_ wchar_t *command_line, _In_ int show_command) { - // Attach to console when present (e.g., 'flutter run') or create a - // new console when running with a debugger. - if (!::AttachConsole(ATTACH_PARENT_PROCESS) && ::IsDebuggerPresent()) { - CreateAndAttachConsole(); - } - - // Initialize COM, so that it is available for use in the library and/or - // plugins. - ::CoInitializeEx(nullptr, COINIT_APARTMENTTHREADED); - - flutter::DartProject project(L"data"); - - std::vector command_line_arguments = - GetCommandLineArguments(); - - project.set_dart_entrypoint_arguments(std::move(command_line_arguments)); - - FlutterWindow window(project); - Win32Window::Point origin(10, 10); - Win32Window::Size size(1280, 720); - if (!window.Create(L"quickstart", origin, size)) { - return EXIT_FAILURE; - } - window.SetQuitOnClose(true); - - ::MSG msg; - while (::GetMessage(&msg, nullptr, 0, 0)) { - ::TranslateMessage(&msg); - ::DispatchMessage(&msg); - } - - ::CoUninitialize(); - return EXIT_SUCCESS; -} diff --git a/examples/flutter/quickstart/windows/runner/resource.h b/examples/flutter/quickstart/windows/runner/resource.h deleted file mode 100644 index 66a65d1e..00000000 --- a/examples/flutter/quickstart/windows/runner/resource.h +++ /dev/null @@ -1,16 +0,0 @@ -//{{NO_DEPENDENCIES}} -// Microsoft Visual C++ generated include file. -// Used by Runner.rc -// -#define IDI_APP_ICON 101 - -// Next default values for new objects -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 102 -#define _APS_NEXT_COMMAND_VALUE 40001 -#define _APS_NEXT_CONTROL_VALUE 1001 -#define _APS_NEXT_SYMED_VALUE 101 -#endif -#endif diff --git a/examples/flutter/quickstart/windows/runner/resources/app_icon.ico b/examples/flutter/quickstart/windows/runner/resources/app_icon.ico deleted file mode 100644 index c04e20ca..00000000 Binary files a/examples/flutter/quickstart/windows/runner/resources/app_icon.ico and /dev/null differ diff --git a/examples/flutter/quickstart/windows/runner/runner.exe.manifest b/examples/flutter/quickstart/windows/runner/runner.exe.manifest deleted file mode 100644 index 153653e8..00000000 --- a/examples/flutter/quickstart/windows/runner/runner.exe.manifest +++ /dev/null @@ -1,14 +0,0 @@ - - - - - PerMonitorV2 - - - - - - - - - diff --git a/examples/flutter/quickstart/windows/runner/utils.cpp b/examples/flutter/quickstart/windows/runner/utils.cpp deleted file mode 100644 index 3a0b4651..00000000 --- a/examples/flutter/quickstart/windows/runner/utils.cpp +++ /dev/null @@ -1,65 +0,0 @@ -#include "utils.h" - -#include -#include -#include -#include - -#include - -void CreateAndAttachConsole() { - if (::AllocConsole()) { - FILE *unused; - if (freopen_s(&unused, "CONOUT$", "w", stdout)) { - _dup2(_fileno(stdout), 1); - } - if (freopen_s(&unused, "CONOUT$", "w", stderr)) { - _dup2(_fileno(stdout), 2); - } - std::ios::sync_with_stdio(); - FlutterDesktopResyncOutputStreams(); - } -} - -std::vector GetCommandLineArguments() { - // Convert the UTF-16 command line arguments to UTF-8 for the Engine to use. - int argc; - wchar_t** argv = ::CommandLineToArgvW(::GetCommandLineW(), &argc); - if (argv == nullptr) { - return std::vector(); - } - - std::vector command_line_arguments; - - // Skip the first argument as it's the binary name. - for (int i = 1; i < argc; i++) { - command_line_arguments.push_back(Utf8FromUtf16(argv[i])); - } - - ::LocalFree(argv); - - return command_line_arguments; -} - -std::string Utf8FromUtf16(const wchar_t* utf16_string) { - if (utf16_string == nullptr) { - return std::string(); - } - unsigned int target_length = ::WideCharToMultiByte( - CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string, - -1, nullptr, 0, nullptr, nullptr) - -1; // remove the trailing null character - int input_length = (int)wcslen(utf16_string); - std::string utf8_string; - if (target_length == 0 || target_length > utf8_string.max_size()) { - return utf8_string; - } - utf8_string.resize(target_length); - int converted_length = ::WideCharToMultiByte( - CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string, - input_length, utf8_string.data(), target_length, nullptr, nullptr); - if (converted_length == 0) { - return std::string(); - } - return utf8_string; -} diff --git a/examples/flutter/quickstart/windows/runner/utils.h b/examples/flutter/quickstart/windows/runner/utils.h deleted file mode 100644 index 3879d547..00000000 --- a/examples/flutter/quickstart/windows/runner/utils.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef RUNNER_UTILS_H_ -#define RUNNER_UTILS_H_ - -#include -#include - -// Creates a console for the process, and redirects stdout and stderr to -// it for both the runner and the Flutter library. -void CreateAndAttachConsole(); - -// Takes a null-terminated wchar_t* encoded in UTF-16 and returns a std::string -// encoded in UTF-8. Returns an empty std::string on failure. -std::string Utf8FromUtf16(const wchar_t* utf16_string); - -// Gets the command line arguments passed in as a std::vector, -// encoded in UTF-8. Returns an empty std::vector on failure. -std::vector GetCommandLineArguments(); - -#endif // RUNNER_UTILS_H_ diff --git a/examples/flutter/quickstart/windows/runner/win32_window.cpp b/examples/flutter/quickstart/windows/runner/win32_window.cpp deleted file mode 100644 index 60608d0f..00000000 --- a/examples/flutter/quickstart/windows/runner/win32_window.cpp +++ /dev/null @@ -1,288 +0,0 @@ -#include "win32_window.h" - -#include -#include - -#include "resource.h" - -namespace { - -/// Window attribute that enables dark mode window decorations. -/// -/// Redefined in case the developer's machine has a Windows SDK older than -/// version 10.0.22000.0. -/// See: https://docs.microsoft.com/windows/win32/api/dwmapi/ne-dwmapi-dwmwindowattribute -#ifndef DWMWA_USE_IMMERSIVE_DARK_MODE -#define DWMWA_USE_IMMERSIVE_DARK_MODE 20 -#endif - -constexpr const wchar_t kWindowClassName[] = L"FLUTTER_RUNNER_WIN32_WINDOW"; - -/// Registry key for app theme preference. -/// -/// A value of 0 indicates apps should use dark mode. A non-zero or missing -/// value indicates apps should use light mode. -constexpr const wchar_t kGetPreferredBrightnessRegKey[] = - L"Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize"; -constexpr const wchar_t kGetPreferredBrightnessRegValue[] = L"AppsUseLightTheme"; - -// The number of Win32Window objects that currently exist. -static int g_active_window_count = 0; - -using EnableNonClientDpiScaling = BOOL __stdcall(HWND hwnd); - -// Scale helper to convert logical scaler values to physical using passed in -// scale factor -int Scale(int source, double scale_factor) { - return static_cast(source * scale_factor); -} - -// Dynamically loads the |EnableNonClientDpiScaling| from the User32 module. -// This API is only needed for PerMonitor V1 awareness mode. -void EnableFullDpiSupportIfAvailable(HWND hwnd) { - HMODULE user32_module = LoadLibraryA("User32.dll"); - if (!user32_module) { - return; - } - auto enable_non_client_dpi_scaling = - reinterpret_cast( - GetProcAddress(user32_module, "EnableNonClientDpiScaling")); - if (enable_non_client_dpi_scaling != nullptr) { - enable_non_client_dpi_scaling(hwnd); - } - FreeLibrary(user32_module); -} - -} // namespace - -// Manages the Win32Window's window class registration. -class WindowClassRegistrar { - public: - ~WindowClassRegistrar() = default; - - // Returns the singleton registrar instance. - static WindowClassRegistrar* GetInstance() { - if (!instance_) { - instance_ = new WindowClassRegistrar(); - } - return instance_; - } - - // Returns the name of the window class, registering the class if it hasn't - // previously been registered. - const wchar_t* GetWindowClass(); - - // Unregisters the window class. Should only be called if there are no - // instances of the window. - void UnregisterWindowClass(); - - private: - WindowClassRegistrar() = default; - - static WindowClassRegistrar* instance_; - - bool class_registered_ = false; -}; - -WindowClassRegistrar* WindowClassRegistrar::instance_ = nullptr; - -const wchar_t* WindowClassRegistrar::GetWindowClass() { - if (!class_registered_) { - WNDCLASS window_class{}; - window_class.hCursor = LoadCursor(nullptr, IDC_ARROW); - window_class.lpszClassName = kWindowClassName; - window_class.style = CS_HREDRAW | CS_VREDRAW; - window_class.cbClsExtra = 0; - window_class.cbWndExtra = 0; - window_class.hInstance = GetModuleHandle(nullptr); - window_class.hIcon = - LoadIcon(window_class.hInstance, MAKEINTRESOURCE(IDI_APP_ICON)); - window_class.hbrBackground = 0; - window_class.lpszMenuName = nullptr; - window_class.lpfnWndProc = Win32Window::WndProc; - RegisterClass(&window_class); - class_registered_ = true; - } - return kWindowClassName; -} - -void WindowClassRegistrar::UnregisterWindowClass() { - UnregisterClass(kWindowClassName, nullptr); - class_registered_ = false; -} - -Win32Window::Win32Window() { - ++g_active_window_count; -} - -Win32Window::~Win32Window() { - --g_active_window_count; - Destroy(); -} - -bool Win32Window::Create(const std::wstring& title, - const Point& origin, - const Size& size) { - Destroy(); - - const wchar_t* window_class = - WindowClassRegistrar::GetInstance()->GetWindowClass(); - - const POINT target_point = {static_cast(origin.x), - static_cast(origin.y)}; - HMONITOR monitor = MonitorFromPoint(target_point, MONITOR_DEFAULTTONEAREST); - UINT dpi = FlutterDesktopGetDpiForMonitor(monitor); - double scale_factor = dpi / 96.0; - - HWND window = CreateWindow( - window_class, title.c_str(), WS_OVERLAPPEDWINDOW, - Scale(origin.x, scale_factor), Scale(origin.y, scale_factor), - Scale(size.width, scale_factor), Scale(size.height, scale_factor), - nullptr, nullptr, GetModuleHandle(nullptr), this); - - if (!window) { - return false; - } - - UpdateTheme(window); - - return OnCreate(); -} - -bool Win32Window::Show() { - return ShowWindow(window_handle_, SW_SHOWNORMAL); -} - -// static -LRESULT CALLBACK Win32Window::WndProc(HWND const window, - UINT const message, - WPARAM const wparam, - LPARAM const lparam) noexcept { - if (message == WM_NCCREATE) { - auto window_struct = reinterpret_cast(lparam); - SetWindowLongPtr(window, GWLP_USERDATA, - reinterpret_cast(window_struct->lpCreateParams)); - - auto that = static_cast(window_struct->lpCreateParams); - EnableFullDpiSupportIfAvailable(window); - that->window_handle_ = window; - } else if (Win32Window* that = GetThisFromHandle(window)) { - return that->MessageHandler(window, message, wparam, lparam); - } - - return DefWindowProc(window, message, wparam, lparam); -} - -LRESULT -Win32Window::MessageHandler(HWND hwnd, - UINT const message, - WPARAM const wparam, - LPARAM const lparam) noexcept { - switch (message) { - case WM_DESTROY: - window_handle_ = nullptr; - Destroy(); - if (quit_on_close_) { - PostQuitMessage(0); - } - return 0; - - case WM_DPICHANGED: { - auto newRectSize = reinterpret_cast(lparam); - LONG newWidth = newRectSize->right - newRectSize->left; - LONG newHeight = newRectSize->bottom - newRectSize->top; - - SetWindowPos(hwnd, nullptr, newRectSize->left, newRectSize->top, newWidth, - newHeight, SWP_NOZORDER | SWP_NOACTIVATE); - - return 0; - } - case WM_SIZE: { - RECT rect = GetClientArea(); - if (child_content_ != nullptr) { - // Size and position the child window. - MoveWindow(child_content_, rect.left, rect.top, rect.right - rect.left, - rect.bottom - rect.top, TRUE); - } - return 0; - } - - case WM_ACTIVATE: - if (child_content_ != nullptr) { - SetFocus(child_content_); - } - return 0; - - case WM_DWMCOLORIZATIONCOLORCHANGED: - UpdateTheme(hwnd); - return 0; - } - - return DefWindowProc(window_handle_, message, wparam, lparam); -} - -void Win32Window::Destroy() { - OnDestroy(); - - if (window_handle_) { - DestroyWindow(window_handle_); - window_handle_ = nullptr; - } - if (g_active_window_count == 0) { - WindowClassRegistrar::GetInstance()->UnregisterWindowClass(); - } -} - -Win32Window* Win32Window::GetThisFromHandle(HWND const window) noexcept { - return reinterpret_cast( - GetWindowLongPtr(window, GWLP_USERDATA)); -} - -void Win32Window::SetChildContent(HWND content) { - child_content_ = content; - SetParent(content, window_handle_); - RECT frame = GetClientArea(); - - MoveWindow(content, frame.left, frame.top, frame.right - frame.left, - frame.bottom - frame.top, true); - - SetFocus(child_content_); -} - -RECT Win32Window::GetClientArea() { - RECT frame; - GetClientRect(window_handle_, &frame); - return frame; -} - -HWND Win32Window::GetHandle() { - return window_handle_; -} - -void Win32Window::SetQuitOnClose(bool quit_on_close) { - quit_on_close_ = quit_on_close; -} - -bool Win32Window::OnCreate() { - // No-op; provided for subclasses. - return true; -} - -void Win32Window::OnDestroy() { - // No-op; provided for subclasses. -} - -void Win32Window::UpdateTheme(HWND const window) { - DWORD light_mode; - DWORD light_mode_size = sizeof(light_mode); - LSTATUS result = RegGetValue(HKEY_CURRENT_USER, kGetPreferredBrightnessRegKey, - kGetPreferredBrightnessRegValue, - RRF_RT_REG_DWORD, nullptr, &light_mode, - &light_mode_size); - - if (result == ERROR_SUCCESS) { - BOOL enable_dark_mode = light_mode == 0; - DwmSetWindowAttribute(window, DWMWA_USE_IMMERSIVE_DARK_MODE, - &enable_dark_mode, sizeof(enable_dark_mode)); - } -} diff --git a/examples/flutter/quickstart/windows/runner/win32_window.h b/examples/flutter/quickstart/windows/runner/win32_window.h deleted file mode 100644 index e901dde6..00000000 --- a/examples/flutter/quickstart/windows/runner/win32_window.h +++ /dev/null @@ -1,102 +0,0 @@ -#ifndef RUNNER_WIN32_WINDOW_H_ -#define RUNNER_WIN32_WINDOW_H_ - -#include - -#include -#include -#include - -// A class abstraction for a high DPI-aware Win32 Window. Intended to be -// inherited from by classes that wish to specialize with custom -// rendering and input handling -class Win32Window { - public: - struct Point { - unsigned int x; - unsigned int y; - Point(unsigned int x, unsigned int y) : x(x), y(y) {} - }; - - struct Size { - unsigned int width; - unsigned int height; - Size(unsigned int width, unsigned int height) - : width(width), height(height) {} - }; - - Win32Window(); - virtual ~Win32Window(); - - // Creates a win32 window with |title| that is positioned and sized using - // |origin| and |size|. New windows are created on the default monitor. Window - // sizes are specified to the OS in physical pixels, hence to ensure a - // consistent size this function will scale the inputted width and height as - // as appropriate for the default monitor. The window is invisible until - // |Show| is called. Returns true if the window was created successfully. - bool Create(const std::wstring& title, const Point& origin, const Size& size); - - // Show the current window. Returns true if the window was successfully shown. - bool Show(); - - // Release OS resources associated with window. - void Destroy(); - - // Inserts |content| into the window tree. - void SetChildContent(HWND content); - - // Returns the backing Window handle to enable clients to set icon and other - // window properties. Returns nullptr if the window has been destroyed. - HWND GetHandle(); - - // If true, closing this window will quit the application. - void SetQuitOnClose(bool quit_on_close); - - // Return a RECT representing the bounds of the current client area. - RECT GetClientArea(); - - protected: - // Processes and route salient window messages for mouse handling, - // size change and DPI. Delegates handling of these to member overloads that - // inheriting classes can handle. - virtual LRESULT MessageHandler(HWND window, - UINT const message, - WPARAM const wparam, - LPARAM const lparam) noexcept; - - // Called when CreateAndShow is called, allowing subclass window-related - // setup. Subclasses should return false if setup fails. - virtual bool OnCreate(); - - // Called when Destroy is called. - virtual void OnDestroy(); - - private: - friend class WindowClassRegistrar; - - // OS callback called by message pump. Handles the WM_NCCREATE message which - // is passed when the non-client area is being created and enables automatic - // non-client DPI scaling so that the non-client area automatically - // responds to changes in DPI. All other messages are handled by - // MessageHandler. - static LRESULT CALLBACK WndProc(HWND const window, - UINT const message, - WPARAM const wparam, - LPARAM const lparam) noexcept; - - // Retrieves a class instance pointer for |window| - static Win32Window* GetThisFromHandle(HWND const window) noexcept; - - // Update the window frame's theme to match the system theme. - static void UpdateTheme(HWND const window); - - bool quit_on_close_ = false; - - // window handle for top level window. - HWND window_handle_ = nullptr; - - // window handle for hosted content. - HWND child_content_ = nullptr; -}; - -#endif // RUNNER_WIN32_WINDOW_H_ diff --git a/materials/gizmo.filamat b/materials/gizmo.filamat deleted file mode 100644 index 905361a9..00000000 --- a/materials/gizmo.filamat +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f51fc0e67176e28fdf75f351834fa1d36b0993be066d5685eef10aa30ae68b1b -size 26876 diff --git a/materials/image.filamat b/materials/image.filamat deleted file mode 100644 index afb6454a..00000000 --- a/materials/image.filamat +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e709d2481f88bf81153a316c0e118f03e89dc7fe99272091d6884ceaac4233ff -size 37409 diff --git a/thermion_dart/CHANGELOG.md b/thermion_dart/CHANGELOG.md index 0e468c1b..fe29873b 100644 --- a/thermion_dart/CHANGELOG.md +++ b/thermion_dart/CHANGELOG.md @@ -1,3 +1,12 @@ +## 0.1.1+2 + + - Graduate package to a stable release. See pre-releases prior to this version for changelog entries. + +## 0.1.1-dev.0+2 + + - **FIX**: revert to std::thread (pthreads not easily available on Windows). + - **FIX**: on Windows, pass static libs via -l rather than custom linkWith property so build.dart stays compatible between published & custom versions. + ## 0.1.1+1 - **DOCS**: update with links to playground. diff --git a/thermion_dart/README.md b/thermion_dart/README.md index 0f4dd7ba..ce9d6503 100644 --- a/thermion_dart/README.md +++ b/thermion_dart/README.md @@ -1,9 +1,9 @@ ![Thermion Logo](https://raw.githubusercontent.com/nmfisher/flutter_filament/f19ea9b/docs/logo.png)

- Quickstart (Flutter) • - Documentation • - Showcase • + Quickstart (Flutter) • + Documentation • + ShowcasePlaygroundDiscord

diff --git a/thermion_dart/hook/build.dart b/thermion_dart/hook/build.dart index da71bf8b..25a1bad1 100644 --- a/thermion_dart/hook/build.dart +++ b/thermion_dart/hook/build.dart @@ -62,7 +62,7 @@ void main(List args) async { "${config.packageRoot.toFilePath()}/native/include/material/image.c", ]); - final libs = [ + var libs = [ "filament", "backend", "filameshio", @@ -91,12 +91,12 @@ void main(List args) async { "basis_transcoder" ]; - final linkWith = []; if (platform == "windows") { - linkWith.addAll(libs.map((lib) => "$libDir/$lib.lib")); - linkWith.addAll(["$libDir/bluevk.lib", "$libDir/bluegl.lib"]); - linkWith.addAll([ + libDir = Directory(libDir).uri.toFilePath(); + libs = libs.map((lib) => "${libDir}${lib}.lib").toList(); + libs.addAll(["${libDir}bluevk.lib", "${libDir}bluegl.lib"]); + libs.addAll([ "gdi32.lib", "user32.lib", "shell32.lib", @@ -151,14 +151,12 @@ void main(List args) async { sources: sources, includes: ['native/include', 'native/include/filament'], defines: defines, - // UNCOMMENT THIS IF YOU ARE BUILDING WITH THE CUSTOM native_toolchain_c FORK FOR WINDOWS - // linkWith: linkWith, flags: [ if (platform == "macos") '-mmacosx-version-min=13.0', if (platform == "ios") '-mios-version-min=13.0', ...flags, ...frameworks, - if (platform != "windows") ...libs.map((lib) => "-l$lib"), + ...libs.map((lib) => "-l$lib"), "-L$libDir", ], dartBuildFiles: ['hook/build.dart'], diff --git a/thermion_dart/lib/thermion_dart/compatibility/native/thermion_dart.g.dart b/thermion_dart/lib/thermion_dart/compatibility/native/thermion_dart.g.dart index a3f3746f..d2b40eaf 100644 --- a/thermion_dart/lib/thermion_dart/compatibility/native/thermion_dart.g.dart +++ b/thermion_dart/lib/thermion_dart/compatibility/native/thermion_dart.g.dart @@ -2,13 +2,14 @@ // // Generated by `package:ffigen`. // ignore_for_file: type=lint +@ffi.DefaultAsset('package:thermion_dart/thermion_dart.dart') +library; + import 'dart:ffi' as ffi; @ffi.Native< - ffi.Pointer Function(LoadFilamentResourceFromOwner, - FreeFilamentResourceFromOwner, ffi.Pointer)>( - symbol: 'make_resource_loader', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Pointer Function(LoadFilamentResourceFromOwner, + FreeFilamentResourceFromOwner, ffi.Pointer)>() external ffi.Pointer make_resource_loader( LoadFilamentResourceFromOwner loadFn, FreeFilamentResourceFromOwner freeFn, @@ -16,13 +17,8 @@ external ffi.Pointer make_resource_loader( ); @ffi.Native< - ffi.Pointer Function( - ffi.Pointer, - ffi.Pointer, - ffi.Pointer, - ffi.Pointer)>( - symbol: 'create_filament_viewer', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Pointer Function(ffi.Pointer, ffi.Pointer, + ffi.Pointer, ffi.Pointer)>() external ffi.Pointer create_filament_viewer( ffi.Pointer context, ffi.Pointer loader, @@ -30,25 +26,19 @@ external ffi.Pointer create_filament_viewer( ffi.Pointer uberArchivePath, ); -@ffi.Native)>( - symbol: 'destroy_filament_viewer', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native)>() external void destroy_filament_viewer( ffi.Pointer viewer, ); -@ffi.Native Function(ffi.Pointer)>( - symbol: 'get_scene_manager', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native Function(ffi.Pointer)>() external ffi.Pointer get_scene_manager( ffi.Pointer viewer, ); @ffi.Native< - ffi.Void Function( - ffi.Pointer, ffi.IntPtr, ffi.Uint32, ffi.Uint32)>( - symbol: 'create_render_target', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function( + ffi.Pointer, ffi.IntPtr, ffi.Uint32, ffi.Uint32)>() external void create_render_target( ffi.Pointer viewer, int texture, @@ -56,18 +46,13 @@ external void create_render_target( int height, ); -@ffi.Native)>( - symbol: 'clear_background_image', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native)>() external void clear_background_image( ffi.Pointer viewer, ); @ffi.Native< - ffi.Void Function( - ffi.Pointer, ffi.Pointer, ffi.Bool)>( - symbol: 'set_background_image', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function(ffi.Pointer, ffi.Pointer, ffi.Bool)>() external void set_background_image( ffi.Pointer viewer, ffi.Pointer path, @@ -75,10 +60,7 @@ external void set_background_image( ); @ffi.Native< - ffi.Void Function( - ffi.Pointer, ffi.Float, ffi.Float, ffi.Bool)>( - symbol: 'set_background_image_position', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function(ffi.Pointer, ffi.Float, ffi.Float, ffi.Bool)>() external void set_background_image_position( ffi.Pointer viewer, double x, @@ -87,10 +69,8 @@ external void set_background_image_position( ); @ffi.Native< - ffi.Void Function( - ffi.Pointer, ffi.Float, ffi.Float, ffi.Float, ffi.Float)>( - symbol: 'set_background_color', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function( + ffi.Pointer, ffi.Float, ffi.Float, ffi.Float, ffi.Float)>() external void set_background_color( ffi.Pointer viewer, double r, @@ -99,78 +79,68 @@ external void set_background_color( double a, ); -@ffi.Native, ffi.Int)>( - symbol: 'set_tone_mapping', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native, ffi.Int)>() external void set_tone_mapping( ffi.Pointer viewer, int toneMapping, ); -@ffi.Native, ffi.Float)>( - symbol: 'set_bloom', assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native, ffi.Float)>() external void set_bloom( ffi.Pointer viewer, double strength, ); -@ffi.Native, ffi.Pointer)>( - symbol: 'load_skybox', assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native, ffi.Pointer)>() external void load_skybox( ffi.Pointer viewer, ffi.Pointer skyboxPath, ); @ffi.Native< - ffi.Void Function( - ffi.Pointer, ffi.Pointer, ffi.Float)>( - symbol: 'load_ibl', assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function( + ffi.Pointer, ffi.Pointer, ffi.Float)>() external void load_ibl( ffi.Pointer viewer, ffi.Pointer iblPath, double intensity, ); -@ffi.Native, ffi.Pointer)>( - symbol: 'rotate_ibl', assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native, ffi.Pointer)>() external void rotate_ibl( ffi.Pointer viewer, ffi.Pointer rotationMatrix, ); -@ffi.Native)>( - symbol: 'remove_skybox', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native)>() external void remove_skybox( ffi.Pointer viewer, ); -@ffi.Native)>( - symbol: 'remove_ibl', assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native)>() external void remove_ibl( ffi.Pointer viewer, ); @ffi.Native< - EntityId Function( - ffi.Pointer, - ffi.Uint8, - ffi.Float, - ffi.Float, - ffi.Float, - ffi.Float, - ffi.Float, - ffi.Float, - ffi.Float, - ffi.Float, - ffi.Float, - ffi.Float, - ffi.Float, - ffi.Float, - ffi.Float, - ffi.Float, - ffi.Bool)>( - symbol: 'add_light', assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Int Function( + ffi.Pointer, + ffi.Uint8, + ffi.Float, + ffi.Float, + ffi.Float, + ffi.Float, + ffi.Float, + ffi.Float, + ffi.Float, + ffi.Float, + ffi.Float, + ffi.Float, + ffi.Float, + ffi.Float, + ffi.Float, + ffi.Float, + ffi.Bool)>() external int add_light( ffi.Pointer viewer, int type, @@ -191,23 +161,19 @@ external int add_light( bool shadows, ); -@ffi.Native, EntityId)>( - symbol: 'remove_light', assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native, ffi.Int)>() external void remove_light( ffi.Pointer viewer, int entityId, ); -@ffi.Native)>( - symbol: 'clear_lights', assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native)>() external void clear_lights( ffi.Pointer viewer, ); @ffi.Native< - EntityId Function( - ffi.Pointer, ffi.Pointer, ffi.Int)>( - symbol: 'load_glb', assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Int Function(ffi.Pointer, ffi.Pointer, ffi.Int)>() external int load_glb( ffi.Pointer sceneManager, ffi.Pointer assetPath, @@ -215,10 +181,7 @@ external int load_glb( ); @ffi.Native< - EntityId Function( - ffi.Pointer, ffi.Pointer, ffi.Size)>( - symbol: 'load_glb_from_buffer', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Int Function(ffi.Pointer, ffi.Pointer, ffi.Size)>() external int load_glb_from_buffer( ffi.Pointer sceneManager, ffi.Pointer data, @@ -226,85 +189,68 @@ external int load_glb_from_buffer( ); @ffi.Native< - EntityId Function(ffi.Pointer, ffi.Pointer, - ffi.Pointer)>( - symbol: 'load_gltf', assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Int Function( + ffi.Pointer, ffi.Pointer, ffi.Pointer)>() external int load_gltf( ffi.Pointer sceneManager, ffi.Pointer assetPath, ffi.Pointer relativePath, ); -@ffi.Native, EntityId)>( - symbol: 'create_instance', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native, ffi.Int)>() external int create_instance( ffi.Pointer sceneManager, int id, ); -@ffi.Native, EntityId)>( - symbol: 'get_instance_count', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native, ffi.Int)>() external int get_instance_count( ffi.Pointer sceneManager, int entityId, ); @ffi.Native< - ffi.Void Function( - ffi.Pointer, EntityId, ffi.Pointer)>( - symbol: 'get_instances', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function(ffi.Pointer, ffi.Int, ffi.Pointer)>() external void get_instances( ffi.Pointer sceneManager, int entityId, - ffi.Pointer out, + ffi.Pointer out, ); -@ffi.Native)>( - symbol: 'set_main_camera', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native)>() external void set_main_camera( ffi.Pointer viewer, ); -@ffi.Native)>( - symbol: 'get_main_camera', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native)>() external int get_main_camera( ffi.Pointer viewer, ); @ffi.Native< - ffi.Bool Function( - ffi.Pointer, EntityId, ffi.Pointer)>( - symbol: 'set_camera', assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Bool Function(ffi.Pointer, ffi.Int, ffi.Pointer)>() external bool set_camera( ffi.Pointer viewer, int entity, ffi.Pointer nodeName, ); -@ffi.Native, ffi.Bool)>( - symbol: 'set_view_frustum_culling', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native, ffi.Bool)>() external void set_view_frustum_culling( ffi.Pointer viewer, bool enabled, ); @ffi.Native< - ffi.Void Function( - ffi.Pointer, - ffi.Uint64, - ffi.Pointer, - ffi.Pointer< - ffi.NativeFunction< - ffi.Void Function(ffi.Pointer buf, ffi.Size size, - ffi.Pointer data)>>, - ffi.Pointer)>( - symbol: 'render', assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function( + ffi.Pointer, + ffi.Uint64, + ffi.Pointer, + ffi.Pointer< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer buf, ffi.Size size, + ffi.Pointer data)>>, + ffi.Pointer)>() external void render( ffi.Pointer viewer, int frameTimeInNanos, @@ -318,10 +264,8 @@ external void render( ); @ffi.Native< - ffi.Void Function(ffi.Pointer, ffi.Pointer, - ffi.Uint32, ffi.Uint32)>( - symbol: 'create_swap_chain', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function( + ffi.Pointer, ffi.Pointer, ffi.Uint32, ffi.Uint32)>() external void create_swap_chain( ffi.Pointer viewer, ffi.Pointer window, @@ -329,26 +273,20 @@ external void create_swap_chain( int height, ); -@ffi.Native)>( - symbol: 'destroy_swap_chain', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native)>() external void destroy_swap_chain( ffi.Pointer viewer, ); -@ffi.Native, ffi.Float)>( - symbol: 'set_frame_interval', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native, ffi.Float)>() external void set_frame_interval( ffi.Pointer viewer, double interval, ); @ffi.Native< - ffi.Void Function( - ffi.Pointer, ffi.Uint32, ffi.Uint32, ffi.Float)>( - symbol: 'update_viewport_and_camera_projection', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function( + ffi.Pointer, ffi.Uint32, ffi.Uint32, ffi.Float)>() external void update_viewport_and_camera_projection( ffi.Pointer viewer, int width, @@ -356,17 +294,13 @@ external void update_viewport_and_camera_projection( double scaleFactor, ); -@ffi.Native)>( - symbol: 'scroll_begin', assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native)>() external void scroll_begin( ffi.Pointer viewer, ); @ffi.Native< - ffi.Void Function( - ffi.Pointer, ffi.Float, ffi.Float, ffi.Float)>( - symbol: 'scroll_update', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function(ffi.Pointer, ffi.Float, ffi.Float, ffi.Float)>() external void scroll_update( ffi.Pointer viewer, double x, @@ -374,16 +308,13 @@ external void scroll_update( double z, ); -@ffi.Native)>( - symbol: 'scroll_end', assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native)>() external void scroll_end( ffi.Pointer viewer, ); @ffi.Native< - ffi.Void Function( - ffi.Pointer, ffi.Float, ffi.Float, ffi.Bool)>( - symbol: 'grab_begin', assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function(ffi.Pointer, ffi.Float, ffi.Float, ffi.Bool)>() external void grab_begin( ffi.Pointer viewer, double x, @@ -391,25 +322,21 @@ external void grab_begin( bool pan, ); -@ffi.Native, ffi.Float, ffi.Float)>( - symbol: 'grab_update', assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native, ffi.Float, ffi.Float)>() external void grab_update( ffi.Pointer viewer, double x, double y, ); -@ffi.Native)>( - symbol: 'grab_end', assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native)>() external void grab_end( ffi.Pointer viewer, ); @ffi.Native< - ffi.Void Function(ffi.Pointer, EntityId, - ffi.Pointer, ffi.Pointer, ffi.Int)>( - symbol: 'apply_weights', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function(ffi.Pointer, ffi.Int, ffi.Pointer, + ffi.Pointer, ffi.Int)>() external void apply_weights( ffi.Pointer sceneManager, int entity, @@ -419,10 +346,8 @@ external void apply_weights( ); @ffi.Native< - ffi.Bool Function( - ffi.Pointer, EntityId, ffi.Pointer, ffi.Int)>( - symbol: 'set_morph_target_weights', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Bool Function( + ffi.Pointer, ffi.Int, ffi.Pointer, ffi.Int)>() external bool set_morph_target_weights( ffi.Pointer sceneManager, int entity, @@ -431,16 +356,8 @@ external bool set_morph_target_weights( ); @ffi.Native< - ffi.Bool Function( - ffi.Pointer, - EntityId, - ffi.Pointer, - ffi.Pointer, - ffi.Int, - ffi.Int, - ffi.Float)>( - symbol: 'set_morph_animation', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Bool Function(ffi.Pointer, ffi.Int, ffi.Pointer, + ffi.Pointer, ffi.Int, ffi.Int, ffi.Float)>() external bool set_morph_animation( ffi.Pointer sceneManager, int entity, @@ -451,28 +368,24 @@ external bool set_morph_animation( double frameLengthInMs, ); -@ffi.Native, EntityId)>( - symbol: 'reset_to_rest_pose', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native, ffi.Int)>() external void reset_to_rest_pose( ffi.Pointer sceneManager, int asset, ); @ffi.Native< - ffi.Void Function( - ffi.Pointer, - EntityId, - ffi.Int, - ffi.Int, - ffi.Pointer, - ffi.Int, - ffi.Float, - ffi.Float, - ffi.Float, - ffi.Float)>( - symbol: 'add_bone_animation', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function( + ffi.Pointer, + ffi.Int, + ffi.Int, + ffi.Int, + ffi.Pointer, + ffi.Int, + ffi.Float, + ffi.Float, + ffi.Float, + ffi.Float)>() external void add_bone_animation( ffi.Pointer sceneManager, int entity, @@ -487,10 +400,7 @@ external void add_bone_animation( ); @ffi.Native< - ffi.Void Function( - ffi.Pointer, EntityId, ffi.Pointer)>( - symbol: 'get_local_transform', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function(ffi.Pointer, ffi.Int, ffi.Pointer)>() external void get_local_transform( ffi.Pointer sceneManager, int entityId, @@ -498,10 +408,8 @@ external void get_local_transform( ); @ffi.Native< - ffi.Void Function(ffi.Pointer, EntityId, ffi.Int, - ffi.Pointer, ffi.Int)>( - symbol: 'get_rest_local_transforms', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function(ffi.Pointer, ffi.Int, ffi.Int, + ffi.Pointer, ffi.Int)>() external void get_rest_local_transforms( ffi.Pointer sceneManager, int entityId, @@ -511,10 +419,7 @@ external void get_rest_local_transforms( ); @ffi.Native< - ffi.Void Function( - ffi.Pointer, EntityId, ffi.Pointer)>( - symbol: 'get_world_transform', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function(ffi.Pointer, ffi.Int, ffi.Pointer)>() external void get_world_transform( ffi.Pointer sceneManager, int entityId, @@ -522,10 +427,8 @@ external void get_world_transform( ); @ffi.Native< - ffi.Void Function(ffi.Pointer, EntityId, ffi.Int, ffi.Int, - ffi.Pointer)>( - symbol: 'get_inverse_bind_matrix', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function(ffi.Pointer, ffi.Int, ffi.Int, ffi.Int, + ffi.Pointer)>() external void get_inverse_bind_matrix( ffi.Pointer sceneManager, int entityId, @@ -535,10 +438,8 @@ external void get_inverse_bind_matrix( ); @ffi.Native< - ffi.Bool Function(ffi.Pointer, EntityId, ffi.Int, ffi.Int, - ffi.Pointer)>( - symbol: 'set_bone_transform', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Bool Function(ffi.Pointer, ffi.Int, ffi.Int, ffi.Int, + ffi.Pointer)>() external bool set_bone_transform( ffi.Pointer sceneManager, int entity, @@ -548,10 +449,8 @@ external bool set_bone_transform( ); @ffi.Native< - ffi.Void Function(ffi.Pointer, EntityId, ffi.Int, ffi.Bool, - ffi.Bool, ffi.Bool, ffi.Float)>( - symbol: 'play_animation', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function(ffi.Pointer, ffi.Int, ffi.Int, ffi.Bool, + ffi.Bool, ffi.Bool, ffi.Float)>() external void play_animation( ffi.Pointer sceneManager, int entity, @@ -563,9 +462,7 @@ external void play_animation( ); @ffi.Native< - ffi.Void Function(ffi.Pointer, EntityId, ffi.Int, ffi.Int)>( - symbol: 'set_animation_frame', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function(ffi.Pointer, ffi.Int, ffi.Int, ffi.Int)>() external void set_animation_frame( ffi.Pointer sceneManager, int entity, @@ -573,28 +470,22 @@ external void set_animation_frame( int animationFrame, ); -@ffi.Native, EntityId, ffi.Int)>( - symbol: 'stop_animation', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native, ffi.Int, ffi.Int)>() external void stop_animation( ffi.Pointer sceneManager, int entity, int index, ); -@ffi.Native, EntityId)>( - symbol: 'get_animation_count', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native, ffi.Int)>() external int get_animation_count( ffi.Pointer sceneManager, int asset, ); @ffi.Native< - ffi.Void Function( - ffi.Pointer, EntityId, ffi.Pointer, ffi.Int)>( - symbol: 'get_animation_name', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function( + ffi.Pointer, ffi.Int, ffi.Pointer, ffi.Int)>() external void get_animation_name( ffi.Pointer sceneManager, int entity, @@ -602,18 +493,14 @@ external void get_animation_name( int index, ); -@ffi.Native, EntityId, ffi.Int)>( - symbol: 'get_animation_duration', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native, ffi.Int, ffi.Int)>() external double get_animation_duration( ffi.Pointer sceneManager, int entity, int index, ); -@ffi.Native, EntityId, ffi.Int)>( - symbol: 'get_bone_count', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native, ffi.Int, ffi.Int)>() external int get_bone_count( ffi.Pointer sceneManager, int assetEntity, @@ -621,10 +508,8 @@ external int get_bone_count( ); @ffi.Native< - ffi.Void Function(ffi.Pointer, EntityId, - ffi.Pointer>, ffi.Int)>( - symbol: 'get_bone_names', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function(ffi.Pointer, ffi.Int, + ffi.Pointer>, ffi.Int)>() external void get_bone_names( ffi.Pointer sceneManager, int assetEntity, @@ -633,8 +518,7 @@ external void get_bone_names( ); @ffi.Native< - EntityId Function(ffi.Pointer, EntityId, ffi.Int, ffi.Int)>( - symbol: 'get_bone', assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Int Function(ffi.Pointer, ffi.Int, ffi.Int, ffi.Int)>() external int get_bone( ffi.Pointer sceneManager, int entityId, @@ -643,29 +527,22 @@ external int get_bone( ); @ffi.Native< - ffi.Bool Function( - ffi.Pointer, EntityId, ffi.Pointer)>( - symbol: 'set_transform', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Bool Function(ffi.Pointer, ffi.Int, ffi.Pointer)>() external bool set_transform( ffi.Pointer sceneManager, int entityId, ffi.Pointer transform, ); -@ffi.Native, EntityId)>( - symbol: 'update_bone_matrices', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native, ffi.Int)>() external bool update_bone_matrices( ffi.Pointer sceneManager, int entityId, ); @ffi.Native< - ffi.Void Function(ffi.Pointer, EntityId, EntityId, - ffi.Pointer, ffi.Int)>( - symbol: 'get_morph_target_name', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function(ffi.Pointer, ffi.Int, ffi.Int, + ffi.Pointer, ffi.Int)>() external void get_morph_target_name( ffi.Pointer sceneManager, int assetEntity, @@ -674,42 +551,27 @@ external void get_morph_target_name( int index, ); -@ffi.Native, EntityId, EntityId)>( - symbol: 'get_morph_target_name_count', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native, ffi.Int, ffi.Int)>() external int get_morph_target_name_count( ffi.Pointer sceneManager, int assetEntity, int childEntity, ); -@ffi.Native, EntityId)>( - symbol: 'remove_entity', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native, ffi.Int)>() external void remove_entity( ffi.Pointer viewer, int asset, ); -@ffi.Native)>( - symbol: 'clear_entities', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native)>() external void clear_entities( ffi.Pointer viewer, ); @ffi.Native< - ffi.Bool Function( - ffi.Pointer, - EntityId, - ffi.Pointer, - ffi.Int, - ffi.Float, - ffi.Float, - ffi.Float, - ffi.Float)>( - symbol: 'set_material_color', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Bool Function(ffi.Pointer, ffi.Int, ffi.Pointer, + ffi.Int, ffi.Float, ffi.Float, ffi.Float, ffi.Float)>() external bool set_material_color( ffi.Pointer sceneManager, int entity, @@ -721,19 +583,15 @@ external bool set_material_color( double a, ); -@ffi.Native, EntityId)>( - symbol: 'transform_to_unit_cube', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native, ffi.Int)>() external void transform_to_unit_cube( ffi.Pointer sceneManager, int asset, ); @ffi.Native< - ffi.Void Function(ffi.Pointer, EntityId, ffi.Float, ffi.Float, - ffi.Float, ffi.Bool)>( - symbol: 'queue_position_update', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function(ffi.Pointer, ffi.Int, ffi.Float, ffi.Float, + ffi.Float, ffi.Bool)>() external void queue_position_update( ffi.Pointer sceneManager, int entity, @@ -744,10 +602,8 @@ external void queue_position_update( ); @ffi.Native< - ffi.Void Function(ffi.Pointer, EntityId, ffi.Float, ffi.Float, - ffi.Float, ffi.Float, ffi.Float, ffi.Bool)>( - symbol: 'queue_rotation_update', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function(ffi.Pointer, ffi.Int, ffi.Float, ffi.Float, + ffi.Float, ffi.Float, ffi.Float, ffi.Bool)>() external void queue_rotation_update( ffi.Pointer sceneManager, int entity, @@ -760,9 +616,8 @@ external void queue_rotation_update( ); @ffi.Native< - ffi.Void Function( - ffi.Pointer, EntityId, ffi.Float, ffi.Float, ffi.Float)>( - symbol: 'set_position', assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function( + ffi.Pointer, ffi.Int, ffi.Float, ffi.Float, ffi.Float)>() external void set_position( ffi.Pointer sceneManager, int entity, @@ -772,9 +627,8 @@ external void set_position( ); @ffi.Native< - ffi.Void Function(ffi.Pointer, EntityId, ffi.Float, ffi.Float, - ffi.Float, ffi.Float, ffi.Float)>( - symbol: 'set_rotation', assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function(ffi.Pointer, ffi.Int, ffi.Float, ffi.Float, + ffi.Float, ffi.Float, ffi.Float)>() external void set_rotation( ffi.Pointer sceneManager, int entity, @@ -785,27 +639,21 @@ external void set_rotation( double w, ); -@ffi.Native, EntityId, ffi.Float)>( - symbol: 'set_scale', assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native, ffi.Int, ffi.Float)>() external void set_scale( ffi.Pointer sceneManager, int entity, double scale, ); -@ffi.Native, EntityId)>( - symbol: 'move_camera_to_asset', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native, ffi.Int)>() external void move_camera_to_asset( ffi.Pointer viewer, int asset, ); @ffi.Native< - ffi.Void Function( - ffi.Pointer, ffi.Float, ffi.Float, ffi.Float)>( - symbol: 'set_camera_exposure', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function(ffi.Pointer, ffi.Float, ffi.Float, ffi.Float)>() external void set_camera_exposure( ffi.Pointer viewer, double aperture, @@ -814,10 +662,7 @@ external void set_camera_exposure( ); @ffi.Native< - ffi.Void Function( - ffi.Pointer, ffi.Float, ffi.Float, ffi.Float)>( - symbol: 'set_camera_position', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function(ffi.Pointer, ffi.Float, ffi.Float, ffi.Float)>() external void set_camera_position( ffi.Pointer viewer, double x, @@ -825,18 +670,14 @@ external void set_camera_position( double z, ); -@ffi.Native)>( - symbol: 'get_camera_position', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native)>() external void get_camera_position( ffi.Pointer viewer, ); @ffi.Native< - ffi.Void Function( - ffi.Pointer, ffi.Float, ffi.Float, ffi.Float, ffi.Float)>( - symbol: 'set_camera_rotation', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function( + ffi.Pointer, ffi.Float, ffi.Float, ffi.Float, ffi.Float)>() external void set_camera_rotation( ffi.Pointer viewer, double w, @@ -845,40 +686,30 @@ external void set_camera_rotation( double z, ); -@ffi.Native, ffi.Pointer)>( - symbol: 'set_camera_model_matrix', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native, ffi.Pointer)>() external void set_camera_model_matrix( ffi.Pointer viewer, ffi.Pointer matrix, ); -@ffi.Native Function(ffi.Pointer)>( - symbol: 'get_camera_model_matrix', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native Function(ffi.Pointer)>() external ffi.Pointer get_camera_model_matrix( ffi.Pointer viewer, ); -@ffi.Native Function(ffi.Pointer)>( - symbol: 'get_camera_view_matrix', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native Function(ffi.Pointer)>() external ffi.Pointer get_camera_view_matrix( ffi.Pointer viewer, ); -@ffi.Native Function(ffi.Pointer)>( - symbol: 'get_camera_projection_matrix', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native Function(ffi.Pointer)>() external ffi.Pointer get_camera_projection_matrix( ffi.Pointer viewer, ); @ffi.Native< - ffi.Void Function(ffi.Pointer, ffi.Pointer, - ffi.Double, ffi.Double)>( - symbol: 'set_camera_projection_matrix', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function(ffi.Pointer, ffi.Pointer, + ffi.Double, ffi.Double)>() external void set_camera_projection_matrix( ffi.Pointer viewer, ffi.Pointer matrix, @@ -886,73 +717,55 @@ external void set_camera_projection_matrix( double far, ); -@ffi.Native, ffi.Double, ffi.Double)>( - symbol: 'set_camera_culling', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native, ffi.Double, ffi.Double)>() external void set_camera_culling( ffi.Pointer viewer, double near, double far, ); -@ffi.Native)>( - symbol: 'get_camera_culling_near', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native)>() external double get_camera_culling_near( ffi.Pointer viewer, ); -@ffi.Native)>( - symbol: 'get_camera_culling_far', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native)>() external double get_camera_culling_far( ffi.Pointer viewer, ); -@ffi.Native Function(ffi.Pointer)>( - symbol: 'get_camera_culling_projection_matrix', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native Function(ffi.Pointer)>() external ffi.Pointer get_camera_culling_projection_matrix( ffi.Pointer viewer, ); -@ffi.Native Function(ffi.Pointer)>( - symbol: 'get_camera_frustum', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native Function(ffi.Pointer)>() external ffi.Pointer get_camera_frustum( ffi.Pointer viewer, ); -@ffi.Native, ffi.Float, ffi.Float)>( - symbol: 'set_camera_fov', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native, ffi.Float, ffi.Float)>() external void set_camera_fov( ffi.Pointer viewer, double fovInDegrees, double aspect, ); -@ffi.Native, ffi.Float)>( - symbol: 'set_camera_focal_length', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native, ffi.Float)>() external void set_camera_focal_length( ffi.Pointer viewer, double focalLength, ); -@ffi.Native, ffi.Float)>( - symbol: 'set_camera_focus_distance', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native, ffi.Float)>() external void set_camera_focus_distance( ffi.Pointer viewer, double focusDistance, ); @ffi.Native< - ffi.Void Function(ffi.Pointer, _ManipulatorMode, ffi.Double, - ffi.Double, ffi.Double)>( - symbol: 'set_camera_manipulator_options', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function(ffi.Pointer, _ManipulatorMode, ffi.Double, + ffi.Double, ffi.Double)>() external void set_camera_manipulator_options( ffi.Pointer viewer, int mode, @@ -962,9 +775,7 @@ external void set_camera_manipulator_options( ); @ffi.Native< - ffi.Int Function( - ffi.Pointer, EntityId, ffi.Pointer)>( - symbol: 'hide_mesh', assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Int Function(ffi.Pointer, ffi.Int, ffi.Pointer)>() external int hide_mesh( ffi.Pointer sceneManager, int entity, @@ -972,27 +783,21 @@ external int hide_mesh( ); @ffi.Native< - ffi.Int Function( - ffi.Pointer, EntityId, ffi.Pointer)>( - symbol: 'reveal_mesh', assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Int Function(ffi.Pointer, ffi.Int, ffi.Pointer)>() external int reveal_mesh( ffi.Pointer sceneManager, int entity, ffi.Pointer meshName, ); -@ffi.Native, ffi.Bool)>( - symbol: 'set_post_processing', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native, ffi.Bool)>() external void set_post_processing( ffi.Pointer viewer, bool enabled, ); @ffi.Native< - ffi.Void Function(ffi.Pointer, ffi.Bool, ffi.Bool, ffi.Bool)>( - symbol: 'set_antialiasing', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function(ffi.Pointer, ffi.Bool, ffi.Bool, ffi.Bool)>() external void set_antialiasing( ffi.Pointer viewer, bool msaa, @@ -1001,48 +806,38 @@ external void set_antialiasing( ); @ffi.Native< - ffi.Void Function( - ffi.Pointer, - ffi.Int, - ffi.Int, - ffi.Pointer< - ffi.NativeFunction< - ffi.Void Function( - EntityId entityId, ffi.Int x, ffi.Int y)>>)>( - symbol: 'filament_pick', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function( + ffi.Pointer, + ffi.Int, + ffi.Int, + ffi.Pointer< + ffi.NativeFunction< + ffi.Void Function(ffi.Int entityId, ffi.Int x, ffi.Int y)>>)>() external void filament_pick( ffi.Pointer viewer, int x, int y, ffi.Pointer< ffi.NativeFunction< - ffi.Void Function(EntityId entityId, ffi.Int x, ffi.Int y)>> + ffi.Void Function(ffi.Int entityId, ffi.Int x, ffi.Int y)>> callback, ); -@ffi.Native Function(ffi.Pointer, EntityId)>( - symbol: 'get_name_for_entity', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native Function(ffi.Pointer, ffi.Int)>() external ffi.Pointer get_name_for_entity( ffi.Pointer sceneManager, int entityId, ); @ffi.Native< - EntityId Function( - ffi.Pointer, EntityId, ffi.Pointer)>( - symbol: 'find_child_entity_by_name', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Int Function(ffi.Pointer, ffi.Int, ffi.Pointer)>() external int find_child_entity_by_name( ffi.Pointer sceneManager, int parent, ffi.Pointer name, ); -@ffi.Native, EntityId, ffi.Bool)>( - symbol: 'get_entity_count', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native, ffi.Int, ffi.Bool)>() external int get_entity_count( ffi.Pointer sceneManager, int target, @@ -1050,21 +845,18 @@ external int get_entity_count( ); @ffi.Native< - ffi.Void Function( - ffi.Pointer, EntityId, ffi.Bool, ffi.Pointer)>( - symbol: 'get_entities', assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function( + ffi.Pointer, ffi.Int, ffi.Bool, ffi.Pointer)>() external void get_entities( ffi.Pointer sceneManager, int target, bool renderableOnly, - ffi.Pointer out, + ffi.Pointer out, ); @ffi.Native< - ffi.Pointer Function( - ffi.Pointer, EntityId, ffi.Int, ffi.Bool)>( - symbol: 'get_entity_name_at', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Pointer Function( + ffi.Pointer, ffi.Int, ffi.Int, ffi.Bool)>() external ffi.Pointer get_entity_name_at( ffi.Pointer sceneManager, int target, @@ -1072,88 +864,65 @@ external ffi.Pointer get_entity_name_at( bool renderableOnly, ); -@ffi.Native, ffi.Bool)>( - symbol: 'set_recording', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native, ffi.Bool)>() external void set_recording( ffi.Pointer viewer, bool recording, ); -@ffi.Native, ffi.Pointer)>( - symbol: 'set_recording_output_directory', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native, ffi.Pointer)>() external void set_recording_output_directory( ffi.Pointer viewer, ffi.Pointer outputDirectory, ); -@ffi.Native( - symbol: 'ios_dummy', assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native() external void ios_dummy(); -@ffi.Native)>( - symbol: 'thermion_flutter_free', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native)>() external void thermion_flutter_free( ffi.Pointer ptr, ); @ffi.Native< - ffi.Void Function( - ffi.Pointer, - EntityId, - ffi.Pointer< - ffi.NativeFunction< - ffi.Void Function(EntityId entityId1, EntityId entityId2)>>, - ffi.Bool)>( - symbol: 'add_collision_component', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function( + ffi.Pointer, + ffi.Int, + ffi.Pointer< + ffi.NativeFunction< + ffi.Void Function(ffi.Int entityId1, ffi.Int entityId2)>>, + ffi.Bool)>() external void add_collision_component( ffi.Pointer sceneManager, int entityId, ffi.Pointer< ffi.NativeFunction< - ffi.Void Function(EntityId entityId1, EntityId entityId2)>> + ffi.Void Function(ffi.Int entityId1, ffi.Int entityId2)>> callback, bool affectsCollidingTransform, ); -@ffi.Native, EntityId)>( - symbol: 'remove_collision_component', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native, ffi.Int)>() external void remove_collision_component( ffi.Pointer sceneManager, int entityId, ); -@ffi.Native, EntityId)>( - symbol: 'add_animation_component', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native, ffi.Int)>() external bool add_animation_component( ffi.Pointer sceneManager, int entityId, ); -@ffi.Native, EntityId)>( - symbol: 'remove_animation_component', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native, ffi.Int)>() external void remove_animation_component( ffi.Pointer sceneManager, int entityId, ); @ffi.Native< - EntityId Function( - ffi.Pointer, - ffi.Pointer, - ffi.Int, - ffi.Pointer, - ffi.Int, - ffi.Int, - ffi.Pointer)>( - symbol: 'create_geometry', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Int Function(ffi.Pointer, ffi.Pointer, ffi.Int, + ffi.Pointer, ffi.Int, ffi.Int, ffi.Pointer)>() external int create_geometry( ffi.Pointer viewer, ffi.Pointer vertices, @@ -1164,61 +933,51 @@ external int create_geometry( ffi.Pointer materialPath, ); -@ffi.Native, EntityId)>( - symbol: 'get_parent', assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native, ffi.Int)>() external int get_parent( ffi.Pointer sceneManager, int child, ); -@ffi.Native, EntityId, EntityId)>( - symbol: 'set_parent', assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native, ffi.Int, ffi.Int)>() external void set_parent( ffi.Pointer sceneManager, int child, int parent, ); -@ffi.Native, EntityId)>( - symbol: 'test_collisions', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native, ffi.Int)>() external void test_collisions( ffi.Pointer sceneManager, int entity, ); -@ffi.Native, EntityId, ffi.Int)>( - symbol: 'set_priority', assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native, ffi.Int, ffi.Int)>() external void set_priority( ffi.Pointer sceneManager, int entityId, int priority, ); -@ffi.Native, ffi.Pointer)>( - symbol: 'get_gizmo', assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native, ffi.Pointer)>() external void get_gizmo( ffi.Pointer sceneManager, - ffi.Pointer out, + ffi.Pointer out, ); @ffi.Native< - ffi.Void Function( - ffi.Pointer, - ffi.Pointer, - ffi.Pointer, - ffi.Pointer, - ffi - .Pointer< - ffi.NativeFunction< - ffi.Void Function( - ffi.Pointer renderCallbackOwner)>>, - ffi.Pointer, - ffi.Pointer< - ffi.NativeFunction< - ffi.Void Function(ffi.Pointer viewer)>>)>( - symbol: 'create_filament_viewer_ffi', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer renderCallbackOwner)>>, + ffi.Pointer, + ffi.Pointer< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer viewer)>>)>() external void create_filament_viewer_ffi( ffi.Pointer context, ffi.Pointer platform, @@ -1235,14 +994,8 @@ external void create_filament_viewer_ffi( ); @ffi.Native< - ffi.Void Function( - ffi.Pointer, - ffi.Pointer, - ffi.Uint32, - ffi.Uint32, - ffi.Pointer>)>( - symbol: 'create_swap_chain_ffi', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function(ffi.Pointer, ffi.Pointer, ffi.Uint32, + ffi.Uint32, ffi.Pointer>)>() external void create_swap_chain_ffi( ffi.Pointer viewer, ffi.Pointer surface, @@ -1252,20 +1005,16 @@ external void create_swap_chain_ffi( ); @ffi.Native< - ffi.Void Function(ffi.Pointer, - ffi.Pointer>)>( - symbol: 'destroy_swap_chain_ffi', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function(ffi.Pointer, + ffi.Pointer>)>() external void destroy_swap_chain_ffi( ffi.Pointer viewer, ffi.Pointer> onComplete, ); @ffi.Native< - ffi.Void Function(ffi.Pointer, ffi.IntPtr, ffi.Uint32, - ffi.Uint32, ffi.Pointer>)>( - symbol: 'create_render_target_ffi', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function(ffi.Pointer, ffi.IntPtr, ffi.Uint32, ffi.Uint32, + ffi.Pointer>)>() external void create_render_target_ffi( ffi.Pointer viewer, int nativeTextureId, @@ -1274,50 +1023,39 @@ external void create_render_target_ffi( ffi.Pointer> onComplete, ); -@ffi.Native)>( - symbol: 'destroy_filament_viewer_ffi', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native)>() external void destroy_filament_viewer_ffi( ffi.Pointer viewer, ); -@ffi.Native)>( - symbol: 'render_ffi', assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native)>() external void render_ffi( ffi.Pointer viewer, ); -@ffi.Native( - symbol: 'make_render_callback_fn_pointer', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native() external FilamentRenderCallback make_render_callback_fn_pointer( FilamentRenderCallback arg0, ); @ffi.Native< - ffi.Void Function(ffi.Pointer, ffi.Bool, - ffi.Pointer>)>( - symbol: 'set_rendering_ffi', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function(ffi.Pointer, ffi.Bool, + ffi.Pointer>)>() external void set_rendering_ffi( ffi.Pointer viewer, bool rendering, ffi.Pointer> onComplete, ); -@ffi.Native, ffi.Float)>( - symbol: 'set_frame_interval_ffi', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native, ffi.Float)>() external void set_frame_interval_ffi( ffi.Pointer viewer, double frameInterval, ); @ffi.Native< - ffi.Void Function(ffi.Pointer, ffi.Uint32, ffi.Uint32, - ffi.Float, ffi.Pointer>)>( - symbol: 'update_viewport_and_camera_projection_ffi', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function(ffi.Pointer, ffi.Uint32, ffi.Uint32, ffi.Float, + ffi.Pointer>)>() external void update_viewport_and_camera_projection_ffi( ffi.Pointer viewer, int width, @@ -1327,10 +1065,8 @@ external void update_viewport_and_camera_projection_ffi( ); @ffi.Native< - ffi.Void Function( - ffi.Pointer, ffi.Float, ffi.Float, ffi.Float, ffi.Float)>( - symbol: 'set_background_color_ffi', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function( + ffi.Pointer, ffi.Float, ffi.Float, ffi.Float, ffi.Float)>() external void set_background_color_ffi( ffi.Pointer viewer, double r, @@ -1339,18 +1075,14 @@ external void set_background_color_ffi( double a, ); -@ffi.Native)>( - symbol: 'clear_background_image_ffi', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native)>() external void clear_background_image_ffi( ffi.Pointer viewer, ); @ffi.Native< - ffi.Void Function(ffi.Pointer, ffi.Pointer, - ffi.Bool, ffi.Pointer>)>( - symbol: 'set_background_image_ffi', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function(ffi.Pointer, ffi.Pointer, ffi.Bool, + ffi.Pointer>)>() external void set_background_image_ffi( ffi.Pointer viewer, ffi.Pointer path, @@ -1359,10 +1091,7 @@ external void set_background_image_ffi( ); @ffi.Native< - ffi.Void Function( - ffi.Pointer, ffi.Float, ffi.Float, ffi.Bool)>( - symbol: 'set_background_image_position_ffi', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function(ffi.Pointer, ffi.Float, ffi.Float, ffi.Bool)>() external void set_background_image_position_ffi( ffi.Pointer viewer, double x, @@ -1370,27 +1099,21 @@ external void set_background_image_position_ffi( bool clamp, ); -@ffi.Native, ffi.Int)>( - symbol: 'set_tone_mapping_ffi', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native, ffi.Int)>() external void set_tone_mapping_ffi( ffi.Pointer viewer, int toneMapping, ); -@ffi.Native, ffi.Float)>( - symbol: 'set_bloom_ffi', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native, ffi.Float)>() external void set_bloom_ffi( ffi.Pointer viewer, double strength, ); @ffi.Native< - ffi.Void Function(ffi.Pointer, ffi.Pointer, - ffi.Pointer>)>( - symbol: 'load_skybox_ffi', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function(ffi.Pointer, ffi.Pointer, + ffi.Pointer>)>() external void load_skybox_ffi( ffi.Pointer viewer, ffi.Pointer skyboxPath, @@ -1398,51 +1121,44 @@ external void load_skybox_ffi( ); @ffi.Native< - ffi.Void Function( - ffi.Pointer, ffi.Pointer, ffi.Float)>( - symbol: 'load_ibl_ffi', assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function( + ffi.Pointer, ffi.Pointer, ffi.Float)>() external void load_ibl_ffi( ffi.Pointer viewer, ffi.Pointer iblPath, double intensity, ); -@ffi.Native)>( - symbol: 'remove_skybox_ffi', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native)>() external void remove_skybox_ffi( ffi.Pointer viewer, ); -@ffi.Native)>( - symbol: 'remove_ibl_ffi', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native)>() external void remove_ibl_ffi( ffi.Pointer viewer, ); @ffi.Native< - ffi.Void Function( - ffi.Pointer, - ffi.Uint8, - ffi.Float, - ffi.Float, - ffi.Float, - ffi.Float, - ffi.Float, - ffi.Float, - ffi.Float, - ffi.Float, - ffi.Float, - ffi.Float, - ffi.Float, - ffi.Float, - ffi.Float, - ffi.Float, - ffi.Bool, - ffi.Pointer>)>( - symbol: 'add_light_ffi', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function( + ffi.Pointer, + ffi.Uint8, + ffi.Float, + ffi.Float, + ffi.Float, + ffi.Float, + ffi.Float, + ffi.Float, + ffi.Float, + ffi.Float, + ffi.Float, + ffi.Float, + ffi.Float, + ffi.Float, + ffi.Float, + ffi.Float, + ffi.Bool, + ffi.Pointer>)>() external void add_light_ffi( ffi.Pointer viewer, int type, @@ -1464,25 +1180,20 @@ external void add_light_ffi( ffi.Pointer> callback, ); -@ffi.Native, EntityId)>( - symbol: 'remove_light_ffi', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native, EntityId)>() external void remove_light_ffi( ffi.Pointer viewer, int entityId, ); -@ffi.Native)>( - symbol: 'clear_lights_ffi', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native)>() external void clear_lights_ffi( ffi.Pointer viewer, ); @ffi.Native< - ffi.Void Function(ffi.Pointer, ffi.Pointer, ffi.Int, - ffi.Pointer>)>( - symbol: 'load_glb_ffi', assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function(ffi.Pointer, ffi.Pointer, ffi.Int, + ffi.Pointer>)>() external void load_glb_ffi( ffi.Pointer sceneManager, ffi.Pointer assetPath, @@ -1491,14 +1202,12 @@ external void load_glb_ffi( ); @ffi.Native< - ffi.Void Function( - ffi.Pointer, - ffi.Pointer, - ffi.Size, - ffi.Int, - ffi.Pointer>)>( - symbol: 'load_glb_from_buffer_ffi', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Size, + ffi.Int, + ffi.Pointer>)>() external void load_glb_from_buffer_ffi( ffi.Pointer sceneManager, ffi.Pointer data, @@ -1508,13 +1217,11 @@ external void load_glb_from_buffer_ffi( ); @ffi.Native< - ffi.Void Function( - ffi.Pointer, - ffi.Pointer, - ffi.Pointer, - ffi.Pointer>)>( - symbol: 'load_gltf_ffi', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>() external void load_gltf_ffi( ffi.Pointer sceneManager, ffi.Pointer assetPath, @@ -1523,10 +1230,8 @@ external void load_gltf_ffi( ); @ffi.Native< - ffi.Void Function(ffi.Pointer, EntityId, - ffi.Pointer>)>( - symbol: 'create_instance_ffi', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function(ffi.Pointer, EntityId, + ffi.Pointer>)>() external void create_instance_ffi( ffi.Pointer sceneManager, int entityId, @@ -1534,10 +1239,8 @@ external void create_instance_ffi( ); @ffi.Native< - ffi.Void Function(ffi.Pointer, EntityId, - ffi.Pointer>)>( - symbol: 'remove_entity_ffi', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function(ffi.Pointer, EntityId, + ffi.Pointer>)>() external void remove_entity_ffi( ffi.Pointer viewer, int asset, @@ -1545,23 +1248,16 @@ external void remove_entity_ffi( ); @ffi.Native< - ffi.Void Function(ffi.Pointer, - ffi.Pointer>)>( - symbol: 'clear_entities_ffi', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function(ffi.Pointer, + ffi.Pointer>)>() external void clear_entities_ffi( ffi.Pointer viewer, ffi.Pointer> callback, ); @ffi.Native< - ffi.Void Function( - ffi.Pointer, - EntityId, - ffi.Pointer, - ffi.Pointer>)>( - symbol: 'set_camera_ffi', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function(ffi.Pointer, EntityId, ffi.Pointer, + ffi.Pointer>)>() external void set_camera_ffi( ffi.Pointer viewer, int asset, @@ -1570,10 +1266,8 @@ external void set_camera_ffi( ); @ffi.Native< - ffi.Void Function(ffi.Pointer, EntityId, - ffi.Pointer, ffi.Pointer, ffi.Int)>( - symbol: 'apply_weights_ffi', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function(ffi.Pointer, EntityId, ffi.Pointer, + ffi.Pointer, ffi.Int)>() external void apply_weights_ffi( ffi.Pointer sceneManager, int asset, @@ -1583,10 +1277,8 @@ external void apply_weights_ffi( ); @ffi.Native< - ffi.Void Function(ffi.Pointer, EntityId, ffi.Int, ffi.Bool, - ffi.Bool, ffi.Bool, ffi.Float)>( - symbol: 'play_animation_ffi', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function(ffi.Pointer, EntityId, ffi.Int, ffi.Bool, + ffi.Bool, ffi.Bool, ffi.Float)>() external void play_animation_ffi( ffi.Pointer sceneManager, int asset, @@ -1598,9 +1290,7 @@ external void play_animation_ffi( ); @ffi.Native< - ffi.Void Function(ffi.Pointer, EntityId, ffi.Int, ffi.Int)>( - symbol: 'set_animation_frame_ffi', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function(ffi.Pointer, EntityId, ffi.Int, ffi.Int)>() external void set_animation_frame_ffi( ffi.Pointer sceneManager, int asset, @@ -1608,9 +1298,7 @@ external void set_animation_frame_ffi( int animationFrame, ); -@ffi.Native, EntityId, ffi.Int)>( - symbol: 'stop_animation_ffi', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native, EntityId, ffi.Int)>() external void stop_animation_ffi( ffi.Pointer sceneManager, int asset, @@ -1618,10 +1306,8 @@ external void stop_animation_ffi( ); @ffi.Native< - ffi.Void Function(ffi.Pointer, EntityId, - ffi.Pointer>)>( - symbol: 'get_animation_count_ffi', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function(ffi.Pointer, EntityId, + ffi.Pointer>)>() external void get_animation_count_ffi( ffi.Pointer sceneManager, int asset, @@ -1629,14 +1315,8 @@ external void get_animation_count_ffi( ); @ffi.Native< - ffi.Void Function( - ffi.Pointer, - EntityId, - ffi.Pointer, - ffi.Int, - ffi.Pointer>)>( - symbol: 'get_animation_name_ffi', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function(ffi.Pointer, EntityId, ffi.Pointer, + ffi.Int, ffi.Pointer>)>() external void get_animation_name_ffi( ffi.Pointer sceneManager, int asset, @@ -1646,15 +1326,13 @@ external void get_animation_name_ffi( ); @ffi.Native< - ffi.Void Function( - ffi.Pointer, - EntityId, - EntityId, - ffi.Pointer, - ffi.Int, - ffi.Pointer>)>( - symbol: 'get_morph_target_name_ffi', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function( + ffi.Pointer, + EntityId, + EntityId, + ffi.Pointer, + ffi.Int, + ffi.Pointer>)>() external void get_morph_target_name_ffi( ffi.Pointer sceneManager, int assetEntity, @@ -1665,10 +1343,8 @@ external void get_morph_target_name_ffi( ); @ffi.Native< - ffi.Void Function(ffi.Pointer, EntityId, EntityId, - ffi.Pointer>)>( - symbol: 'get_morph_target_name_count_ffi', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function(ffi.Pointer, EntityId, EntityId, + ffi.Pointer>)>() external void get_morph_target_name_count_ffi( ffi.Pointer sceneManager, int asset, @@ -1677,14 +1353,12 @@ external void get_morph_target_name_count_ffi( ); @ffi.Native< - ffi.Void Function( - ffi.Pointer, - EntityId, - ffi.Pointer, - ffi.Int, - ffi.Pointer>)>( - symbol: 'set_morph_target_weights_ffi', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function( + ffi.Pointer, + EntityId, + ffi.Pointer, + ffi.Int, + ffi.Pointer>)>() external void set_morph_target_weights_ffi( ffi.Pointer sceneManager, int asset, @@ -1694,10 +1368,8 @@ external void set_morph_target_weights_ffi( ); @ffi.Native< - ffi.Void Function(ffi.Pointer, EntityId, - ffi.Pointer>)>( - symbol: 'update_bone_matrices_ffi', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function(ffi.Pointer, EntityId, + ffi.Pointer>)>() external void update_bone_matrices_ffi( ffi.Pointer sceneManager, int asset, @@ -1705,15 +1377,13 @@ external void update_bone_matrices_ffi( ); @ffi.Native< - ffi.Void Function( - ffi.Pointer, - EntityId, - ffi.Int, - ffi.Int, - ffi.Pointer, - ffi.Pointer>)>( - symbol: 'set_bone_transform_ffi', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function( + ffi.Pointer, + EntityId, + ffi.Int, + ffi.Int, + ffi.Pointer, + ffi.Pointer>)>() external void set_bone_transform_ffi( ffi.Pointer sceneManager, int asset, @@ -1723,19 +1393,15 @@ external void set_bone_transform_ffi( ffi.Pointer> callback, ); -@ffi.Native, ffi.Bool)>( - symbol: 'set_post_processing_ffi', - assetId: 'package:thermion_dart/thermion_dart.dart') +@ffi.Native, ffi.Bool)>() external void set_post_processing_ffi( ffi.Pointer viewer, bool enabled, ); @ffi.Native< - ffi.Void Function(ffi.Pointer, EntityId, - ffi.Pointer>)>( - symbol: 'reset_to_rest_pose_ffi', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function(ffi.Pointer, EntityId, + ffi.Pointer>)>() external void reset_to_rest_pose_ffi( ffi.Pointer sceneManager, int entityId, @@ -1743,17 +1409,15 @@ external void reset_to_rest_pose_ffi( ); @ffi.Native< - ffi.Void Function( - ffi.Pointer, - ffi.Pointer, - ffi.Int, - ffi.Pointer, - ffi.Int, - ffi.Int, - ffi.Pointer, - ffi.Pointer>)>( - symbol: 'create_geometry_ffi', - assetId: 'package:thermion_dart/thermion_dart.dart') + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Int, + ffi.Pointer, + ffi.Int, + ffi.Int, + ffi.Pointer, + ffi.Pointer>)>() external void create_geometry_ffi( ffi.Pointer viewer, ffi.Pointer vertices, @@ -1813,6 +1477,14 @@ typedef LoadFilamentResourceIntoOutPointerFunction = ffi.Void Function( ffi.Pointer uri, ffi.Pointer out); typedef DartLoadFilamentResourceIntoOutPointerFunction = void Function( ffi.Pointer uri, ffi.Pointer out); +typedef _ManipulatorMode = ffi.Int32; +typedef Dart_ManipulatorMode = int; +typedef FilamentRenderCallback + = ffi.Pointer>; +typedef FilamentRenderCallbackFunction = ffi.Void Function( + ffi.Pointer owner); +typedef DartFilamentRenderCallbackFunction = void Function( + ffi.Pointer owner); /// This header replicates most of the methods in ThermionDartApi.h. /// It represents the interface for: @@ -1820,14 +1492,6 @@ typedef DartLoadFilamentResourceIntoOutPointerFunction = void Function( /// - setting up a render loop typedef EntityId = ffi.Int32; typedef DartEntityId = int; -typedef _ManipulatorMode = ffi.Int32; -typedef Dart_ManipulatorMode = int; -typedef FilamentRenderCallback - = ffi.Pointer>; -typedef FilamentRenderCallbackFunction = ffi.Void Function( - ffi.Pointer owner); -typedef ThermionDartRenderCallbackFunction = void Function( - ffi.Pointer owner); const int __bool_true_false_are_defined = 1; diff --git a/thermion_dart/lib/thermion_dart/thermion_viewer_ffi.dart b/thermion_dart/lib/thermion_dart/thermion_viewer_ffi.dart index fba9b24c..ff28fe0e 100644 --- a/thermion_dart/lib/thermion_dart/thermion_viewer_ffi.dart +++ b/thermion_dart/lib/thermion_dart/thermion_viewer_ffi.dart @@ -69,7 +69,7 @@ class ThermionViewerFFI extends ThermionViewer { this._sharedContext = sharedContext ?? nullptr; try { _onPickResultCallable = - NativeCallable.listener( + NativeCallable.listener( _onPickResult); } catch (err) { _logger.severe( @@ -128,7 +128,7 @@ class ThermionViewerFFI extends ThermionViewer { await setCameraManipulatorOptions(zoomSpeed: 1.0); - final out = allocator(3); + final out = allocator(3); get_gizmo(_sceneManager!, out); _gizmo = Gizmo(out[0], out[1], out[2], this); allocator.free(out); @@ -392,7 +392,7 @@ class ThermionViewerFFI extends ThermionViewer { @override Future> getInstances(ThermionEntity entity) async { var count = await getInstanceCount(entity); - var out = allocator(count); + var out = allocator(count); get_instances(_sceneManager!, entity, out); var instances = []; for (int i = 0; i < count; i++) { @@ -1316,7 +1316,7 @@ class ThermionViewerFFI extends ThermionViewer { _scene!.registerSelected(entityId); } - late NativeCallable + late NativeCallable _onPickResultCallable; /// @@ -1505,7 +1505,7 @@ class ThermionViewerFFI extends ThermionViewer { Future> getChildEntities( ThermionEntity parent, bool renderableOnly) async { var count = get_entity_count(_sceneManager!, parent, renderableOnly); - var out = allocator(count); + var out = allocator(count); get_entities(_sceneManager!, parent, renderableOnly, out); var outList = List.generate(count, (index) => out[index]).cast(); @@ -1565,7 +1565,7 @@ class ThermionViewerFFI extends ThermionViewer { if (callback != null) { var ptr = NativeCallable< - Void Function(Int32 entityId1, Int32 entityId2)>.listener(callback); + Void Function(Int entityId1, Int entityId2)>.listener(callback); add_collision_component( _sceneManager!, entity, ptr.nativeFunction, affectsTransform); _collisions[entity] = ptr; diff --git a/thermion_dart/native/src/ThermionDartFFIApi.cpp b/thermion_dart/native/src/ThermionDartFFIApi.cpp index f763830d..35d8d2e9 100644 --- a/thermion_dart/native/src/ThermionDartFFIApi.cpp +++ b/thermion_dart/native/src/ThermionDartFFIApi.cpp @@ -13,8 +13,6 @@ extern "C" { extern EMSCRIPTEN_KEEPALIVE EMSCRIPTEN_WEBGL_CONTEXT_HANDLE thermion_dart_web_create_gl_context(); } -#include - #endif #include "ThermionDartFFIApi.h" @@ -38,19 +36,26 @@ public: explicit RenderLoop() { srand(time(NULL)); - + #ifdef __EMSCRIPTEN__ pthread_attr_t attr; pthread_attr_init(&attr); - #ifdef __EMSCRIPTEN__ emscripten_pthread_attr_settransferredcanvases(&attr, "canvas"); - #endif pthread_create(&t, &attr, &RenderLoop::startHelper, this); + #else + t = new std::thread([this]() { + start(); + }); + #endif } ~RenderLoop() { _stop = true; + #ifdef __EMSCRIPTEN__ pthread_join(t, NULL); + #else + t->join(); + #endif Log("Render loop killed"); } @@ -209,13 +214,17 @@ public: std::mutex _access; void (*_renderCallback)(void *const) = nullptr; void *_renderCallbackOwner = nullptr; - pthread_t t; + + std::condition_variable _cond; std::deque> _tasks; FilamentViewer* _viewer = nullptr; #ifdef __EMSCRIPTEN__ + pthread_t t; EMSCRIPTEN_WEBGL_CONTEXT_HANDLE _context; int _frameNum = 0; + #else + std::thread *t = nullptr; #endif }; diff --git a/thermion_dart/pubspec.yaml b/thermion_dart/pubspec.yaml index 1e2a9b72..7223cdf0 100644 --- a/thermion_dart/pubspec.yaml +++ b/thermion_dart/pubspec.yaml @@ -1,7 +1,7 @@ name: thermion_dart description: 3D rendering toolkit for Dart. -version: 0.1.1+1 -homepage: https://docs.page/nmfisher/thermion +version: 0.1.1+2 +homepage: https://thermion.dev repository: https://github.com/nmfisher/thermion environment: @@ -18,5 +18,5 @@ dependencies: logging: ^1.2.0 dev_dependencies: - ffigen: ^11.0.0 + ffigen: ^12.0.0 test: diff --git a/thermion_flutter/thermion_flutter/CHANGELOG.md b/thermion_flutter/thermion_flutter/CHANGELOG.md index 924bceb3..f885f791 100644 --- a/thermion_flutter/thermion_flutter/CHANGELOG.md +++ b/thermion_flutter/thermion_flutter/CHANGELOG.md @@ -1,3 +1,11 @@ +## 0.1.1+7 + + - Graduate package to a stable release. See pre-releases prior to this version for changelog entries. + +## 0.1.1-dev.0+7 + + - **FIX**: add ResourceBuffer header directly to Windows build so I don't have to fiddle around getting the CMake path right. + ## 0.1.1+6 - **DOCS**: update with links to playground. diff --git a/thermion_flutter/thermion_flutter/README.md b/thermion_flutter/thermion_flutter/README.md index af32f1b4..99708fc5 100644 --- a/thermion_flutter/thermion_flutter/README.md +++ b/thermion_flutter/thermion_flutter/README.md @@ -1,9 +1,9 @@ ![Thermion Logo](https://raw.githubusercontent.com/nmfisher/flutter_filament/f19ea9b/docs/logo.png)

- Quickstart (Flutter) • - Documentation • - Showcase • + Quickstart (Flutter) • + Documentation • + ShowcasePlaygroundDiscord

diff --git a/thermion_flutter/thermion_flutter/pubspec.yaml b/thermion_flutter/thermion_flutter/pubspec.yaml index 1145a139..cf7dfb86 100644 --- a/thermion_flutter/thermion_flutter/pubspec.yaml +++ b/thermion_flutter/thermion_flutter/pubspec.yaml @@ -1,7 +1,7 @@ name: thermion_flutter description: Flutter plugin for 3D rendering with the Thermion toolkit. -version: 0.1.1+6 -homepage: https://docs.page/nmfisher/thermion +version: 0.1.1+7 +homepage: https://thermion.dev repository: https://github.com/nmfisher/thermion environment: @@ -17,10 +17,10 @@ dependencies: plugin_platform_interface: ^2.0.0 ffi: ^2.1.2 animation_tools_dart: ^0.0.4 - thermion_dart: ^0.1.1+1 - thermion_flutter_platform_interface: ^0.1.0+5 - thermion_flutter_ffi: ^0.1.0+5 - thermion_flutter_web: ^0.0.1+5 + thermion_dart: ^0.1.1+2 + thermion_flutter_platform_interface: ^0.1.0+6 + thermion_flutter_ffi: ^0.1.0+6 + thermion_flutter_web: ^0.0.1+6 logging: ^1.2.0 dev_dependencies: diff --git a/thermion_flutter/thermion_flutter/windows/backing_window.cpp b/thermion_flutter/thermion_flutter/windows/backing_window.cpp index b7b2f989..b98daed9 100644 --- a/thermion_flutter/thermion_flutter/windows/backing_window.cpp +++ b/thermion_flutter/thermion_flutter/windows/backing_window.cpp @@ -12,7 +12,7 @@ #pragma comment(lib, "dwmapi.lib") #pragma comment(lib, "comctl32.lib") -namespace thermion_filament { +namespace thermion_flutter { static constexpr auto kClassName = L"FLUTTER_FILAMENT_WINDOW"; static constexpr auto kWindowName = L"thermion_flutter_window"; @@ -354,4 +354,4 @@ void BackingWindow::Resize(int width, int height, int left, int top) { } HWND BackingWindow::GetHandle() { return _windowHandle; } -} // namespace thermion_filament +} // namespace thermion_flutter diff --git a/thermion_flutter/thermion_flutter/windows/backing_window.h b/thermion_flutter/thermion_flutter/windows/backing_window.h index e58a9d07..bf2cf0e7 100644 --- a/thermion_flutter/thermion_flutter/windows/backing_window.h +++ b/thermion_flutter/thermion_flutter/windows/backing_window.h @@ -5,7 +5,7 @@ #include #include -namespace thermion_filament { +namespace thermion_flutter { class BackingWindow { public: diff --git a/thermion_flutter/thermion_flutter/windows/egl_context.cpp b/thermion_flutter/thermion_flutter/windows/egl_context.cpp index 3933f543..a766fa36 100644 --- a/thermion_flutter/thermion_flutter/windows/egl_context.cpp +++ b/thermion_flutter/thermion_flutter/windows/egl_context.cpp @@ -7,7 +7,7 @@ #pragma comment(lib, "dwmapi.lib") #pragma comment(lib, "comctl32.lib") -namespace thermion_filament { +namespace thermion_flutter { FlutterEGLContext::FlutterEGLContext( flutter::PluginRegistrarWindows* pluginRegistrar, diff --git a/thermion_flutter/thermion_flutter/windows/egl_context.h b/thermion_flutter/thermion_flutter/windows/egl_context.h index 59cf0a24..b6b056bc 100644 --- a/thermion_flutter/thermion_flutter/windows/egl_context.h +++ b/thermion_flutter/thermion_flutter/windows/egl_context.h @@ -12,7 +12,7 @@ #include "backend/platforms/PlatformEGL.h" #include "flutter_render_context.h" -namespace thermion_filament { +namespace thermion_flutter { class FlutterEGLContext : public FlutterRenderContext { public: diff --git a/thermion_flutter/thermion_flutter/windows/flutter_angle_texture.cpp b/thermion_flutter/thermion_flutter/windows/flutter_angle_texture.cpp index e443c1b2..75465f55 100644 --- a/thermion_flutter/thermion_flutter/windows/flutter_angle_texture.cpp +++ b/thermion_flutter/thermion_flutter/windows/flutter_angle_texture.cpp @@ -7,7 +7,7 @@ #include -namespace thermion_filament { +namespace thermion_flutter { static void logEglError(const char *name) noexcept { const char *err; @@ -240,4 +240,4 @@ FlutterAngleTexture::FlutterAngleTexture( result->Success(resultList); } -} // namespace thermion_filament \ No newline at end of file +} // namespace thermion_flutter \ No newline at end of file diff --git a/thermion_flutter/thermion_flutter/windows/flutter_angle_texture.h b/thermion_flutter/thermion_flutter/windows/flutter_angle_texture.h index ea449f69..0612c516 100644 --- a/thermion_flutter/thermion_flutter/windows/flutter_angle_texture.h +++ b/thermion_flutter/thermion_flutter/windows/flutter_angle_texture.h @@ -26,7 +26,7 @@ typedef uint32_t GLuint; -namespace thermion_filament { +namespace thermion_flutter { class FlutterAngleTexture : public FlutterTextureBuffer { public: diff --git a/thermion_flutter/thermion_flutter/windows/flutter_render_context.h b/thermion_flutter/thermion_flutter/windows/flutter_render_context.h index 88157ae1..c582d349 100644 --- a/thermion_flutter/thermion_flutter/windows/flutter_render_context.h +++ b/thermion_flutter/thermion_flutter/windows/flutter_render_context.h @@ -8,7 +8,7 @@ #include "flutter_texture_buffer.h" -namespace thermion_filament { +namespace thermion_flutter { class FlutterRenderContext { public: diff --git a/thermion_flutter/thermion_flutter/windows/flutter_texture_buffer.h b/thermion_flutter/thermion_flutter/windows/flutter_texture_buffer.h index f12c8541..40ee244f 100644 --- a/thermion_flutter/thermion_flutter/windows/flutter_texture_buffer.h +++ b/thermion_flutter/thermion_flutter/windows/flutter_texture_buffer.h @@ -7,7 +7,7 @@ #include -namespace thermion_filament { +namespace thermion_flutter { class FlutterTextureBuffer { public: diff --git a/thermion_flutter/thermion_flutter/windows/include/ResourceBuffer.h b/thermion_flutter/thermion_flutter/windows/include/ResourceBuffer.h new file mode 100644 index 00000000..eab0ee0d --- /dev/null +++ b/thermion_flutter/thermion_flutter/windows/include/ResourceBuffer.h @@ -0,0 +1,44 @@ +#ifndef RESOURCE_BUFFER_H +#define RESOURCE_BUFFER_H + +#include +#include + +// +// A ResourceBuffer is a unified interface for working with +// binary assets across various platforms. +// This is simply: +// 1) a pointer to some data +// 2) the length of the data +// 3) an ID that can be passed back to the native platform to release the underlying asset when needed. +// +typedef struct ResourceBuffer +{ + const void *const data; + const int32_t size; + const int32_t id; + +#if defined(__cplusplus) + ResourceBuffer(void *const data, int32_t size, int32_t id) : data(data), size(size), id(id) {} +#endif +} ResourceBuffer; + +typedef void (*LoadFilamentResourceIntoOutPointer)(const char *uri, ResourceBuffer *out); +typedef ResourceBuffer (*LoadFilamentResource)(const char *uri); +typedef ResourceBuffer (*LoadFilamentResourceFromOwner)(const char *const, void *const owner); +typedef void (*FreeFilamentResource)(ResourceBuffer); +typedef void (*FreeFilamentResourceFromOwner)(ResourceBuffer, void *const owner); + +typedef struct ResourceLoaderWrapper +{ + LoadFilamentResource loadResource; + FreeFilamentResource freeResource; + LoadFilamentResourceFromOwner loadFromOwner; + FreeFilamentResourceFromOwner freeFromOwner; + void *owner; + LoadFilamentResourceIntoOutPointer loadToOut; +} ResourceLoaderWrapper; + +void *make_resource_loader(LoadFilamentResourceFromOwner loadFn, FreeFilamentResourceFromOwner freeFn, void *const owner); + +#endif diff --git a/thermion_flutter/thermion_flutter/windows/opengl_texture_buffer.cpp b/thermion_flutter/thermion_flutter/windows/opengl_texture_buffer.cpp index dbaca0ab..7142846e 100644 --- a/thermion_flutter/thermion_flutter/windows/opengl_texture_buffer.cpp +++ b/thermion_flutter/thermion_flutter/windows/opengl_texture_buffer.cpp @@ -7,7 +7,7 @@ #include -namespace thermion_filament { +namespace thermion_flutter { void _release_callback(void *releaseContext) { // ((OpenGLTextureBuffer*)releaseContext)->unlock(); @@ -141,4 +141,4 @@ OpenGLTextureBuffer::~OpenGLTextureBuffer() { wglMakeCurrent(NULL, NULL); } -} // namespace thermion_filament \ No newline at end of file +} // namespace thermion_flutter \ No newline at end of file diff --git a/thermion_flutter/thermion_flutter/windows/opengl_texture_buffer.h b/thermion_flutter/thermion_flutter/windows/opengl_texture_buffer.h index df17c02c..16f59e4f 100644 --- a/thermion_flutter/thermion_flutter/windows/opengl_texture_buffer.h +++ b/thermion_flutter/thermion_flutter/windows/opengl_texture_buffer.h @@ -20,7 +20,7 @@ typedef uint32_t GLuint; -namespace thermion_filament { +namespace thermion_flutter { class OpenGLTextureBuffer : public FlutterTextureBuffer { public: diff --git a/thermion_flutter/thermion_flutter/windows/test/thermion_flutter_plugin_test.cpp b/thermion_flutter/thermion_flutter/windows/test/thermion_flutter_plugin_test.cpp index 38f05c58..3ebaf4da 100644 --- a/thermion_flutter/thermion_flutter/windows/test/thermion_flutter_plugin_test.cpp +++ b/thermion_flutter/thermion_flutter/windows/test/thermion_flutter_plugin_test.cpp @@ -10,7 +10,7 @@ #include "thermion_flutter_plugin.h" -namespace thermion_filament { +namespace thermion_flutter { namespace test { namespace { @@ -40,4 +40,4 @@ TEST(ThermionFlutterPlugin, GetPlatformVersion) { } } // namespace test -} // namespace thermion_filament +} // namespace thermion_flutter diff --git a/thermion_flutter/thermion_flutter/windows/thermion_flutter_plugin.cpp b/thermion_flutter/thermion_flutter/windows/thermion_flutter_plugin.cpp index b5c0f261..f02c3e9b 100644 --- a/thermion_flutter/thermion_flutter/windows/thermion_flutter_plugin.cpp +++ b/thermion_flutter/thermion_flutter/windows/thermion_flutter_plugin.cpp @@ -35,7 +35,7 @@ #include "wgl_context.h" #endif -namespace thermion_filament { +namespace thermion_flutter { using namespace std::chrono_literals; @@ -61,7 +61,6 @@ ThermionFlutterPlugin::ThermionFlutterPlugin( // attach the method call handler for incoming messages _channel->SetMethodCallHandler([=](const auto &call, auto result) { - std::cout << call.method_name() << std::endl; this->HandleMethodCall(call, std::move(result)); }); } @@ -275,4 +274,4 @@ void ThermionFlutterPlugin::HandleMethodCall( } } -} // namespace thermion_filament +} // namespace thermion_flutter diff --git a/thermion_flutter/thermion_flutter/windows/thermion_flutter_plugin.h b/thermion_flutter/thermion_flutter/windows/thermion_flutter_plugin.h index 712e2182..74bf9839 100644 --- a/thermion_flutter/thermion_flutter/windows/thermion_flutter_plugin.h +++ b/thermion_flutter/thermion_flutter/windows/thermion_flutter_plugin.h @@ -14,7 +14,7 @@ #include "GL/GL.h" #include "GL/GLu.h" -#include "ResourceBuffer.hpp" +#include "ResourceBuffer.h" #if USE_ANGLE #include "egl_context.h" @@ -22,7 +22,7 @@ #include "wgl_context.h" #endif -namespace thermion_filament { +namespace thermion_flutter { class ThermionFlutterPlugin : public flutter::Plugin { public: @@ -66,6 +66,6 @@ public: #endif }; -} // namespace thermion_filament +} // namespace thermion_flutter #endif // FLUTTER_PLUGIN_FLUTTER_FILAMENT_PLUGIN_H_ diff --git a/thermion_flutter/thermion_flutter/windows/wgl_context.cpp b/thermion_flutter/thermion_flutter/windows/wgl_context.cpp index cb5485a3..68bbaebd 100644 --- a/thermion_flutter/thermion_flutter/windows/wgl_context.cpp +++ b/thermion_flutter/thermion_flutter/windows/wgl_context.cpp @@ -6,7 +6,7 @@ #include "flutter_texture_buffer.h" -namespace thermion_filament { +namespace thermion_flutter { WGLContext::WGLContext(flutter::PluginRegistrarWindows *pluginRegistrar, flutter::TextureRegistrar *textureRegistrar) @@ -143,4 +143,4 @@ void WGLContext::CreateRenderingSurface( void *WGLContext::GetSharedContext() { return (void *)_context; } -} // namespace thermion_filament +} // namespace thermion_flutter diff --git a/thermion_flutter/thermion_flutter/windows/wgl_context.h b/thermion_flutter/thermion_flutter/windows/wgl_context.h index 46b8bc77..0968bf41 100644 --- a/thermion_flutter/thermion_flutter/windows/wgl_context.h +++ b/thermion_flutter/thermion_flutter/windows/wgl_context.h @@ -7,7 +7,7 @@ #if WGL_USE_BACKING_WINDOW #include "backing_window.h" #endif -namespace thermion_filament { +namespace thermion_flutter { class WGLContext : public FlutterRenderContext { public: diff --git a/thermion_flutter/thermion_flutter_ffi/CHANGELOG.md b/thermion_flutter/thermion_flutter_ffi/CHANGELOG.md index 95d3d6e1..c7111897 100644 --- a/thermion_flutter/thermion_flutter_ffi/CHANGELOG.md +++ b/thermion_flutter/thermion_flutter_ffi/CHANGELOG.md @@ -1,3 +1,11 @@ +## 0.1.0+6 + + - Graduate package to a stable release. See pre-releases prior to this version for changelog entries. + +## 0.1.0-dev.0+6 + + - Update a dependency to the latest release. + ## 0.1.0+5 - Update a dependency to the latest release. diff --git a/thermion_flutter/thermion_flutter_ffi/pubspec.yaml b/thermion_flutter/thermion_flutter_ffi/pubspec.yaml index 01b42d78..c5bb04fd 100644 --- a/thermion_flutter/thermion_flutter_ffi/pubspec.yaml +++ b/thermion_flutter/thermion_flutter_ffi/pubspec.yaml @@ -1,7 +1,7 @@ name: thermion_flutter_ffi description: An FFI interface for the thermion_flutter plugin (all platforms except web). repository: https://github.com/nmfisher/thermion_flutter/thermion_flutter -version: 0.1.0+5 +version: 0.1.0+6 environment: sdk: ">=3.3.0 <4.0.0" @@ -22,8 +22,8 @@ dependencies: flutter: sdk: flutter plugin_platform_interface: ^2.1.0 - thermion_flutter_platform_interface: ^0.1.0+5 - thermion_dart: ^0.1.1+1 + thermion_flutter_platform_interface: ^0.1.0+6 + thermion_dart: ^0.1.1+2 dev_dependencies: flutter_test: diff --git a/thermion_flutter/thermion_flutter_platform_interface/CHANGELOG.md b/thermion_flutter/thermion_flutter_platform_interface/CHANGELOG.md index 554835f0..ff0c0965 100644 --- a/thermion_flutter/thermion_flutter_platform_interface/CHANGELOG.md +++ b/thermion_flutter/thermion_flutter_platform_interface/CHANGELOG.md @@ -1,3 +1,11 @@ +## 0.1.0+6 + + - Graduate package to a stable release. See pre-releases prior to this version for changelog entries. + +## 0.1.0-dev.0+6 + + - Update a dependency to the latest release. + ## 0.1.0+5 - Update a dependency to the latest release. diff --git a/thermion_flutter/thermion_flutter_platform_interface/pubspec.yaml b/thermion_flutter/thermion_flutter_platform_interface/pubspec.yaml index c9f48b4b..8dc666e6 100644 --- a/thermion_flutter/thermion_flutter_platform_interface/pubspec.yaml +++ b/thermion_flutter/thermion_flutter_platform_interface/pubspec.yaml @@ -1,7 +1,7 @@ name: thermion_flutter_platform_interface description: A common platform interface for the thermion_flutter plugin. repository: https://github.com/nmfisher/thermion_flutter/thermion_flutter -version: 0.1.0+5 +version: 0.1.0+6 environment: sdk: ">=3.3.0 <4.0.0" @@ -11,7 +11,7 @@ dependencies: flutter: sdk: flutter plugin_platform_interface: ^2.1.0 - thermion_dart: ^0.1.1+1 + thermion_dart: ^0.1.1+2 dev_dependencies: flutter_test: diff --git a/thermion_flutter/thermion_flutter_web/CHANGELOG.md b/thermion_flutter/thermion_flutter_web/CHANGELOG.md index 6d161ca4..79f1dee7 100644 --- a/thermion_flutter/thermion_flutter_web/CHANGELOG.md +++ b/thermion_flutter/thermion_flutter_web/CHANGELOG.md @@ -1,3 +1,11 @@ +## 0.0.1+6 + + - Graduate package to a stable release. See pre-releases prior to this version for changelog entries. + +## 0.0.1-dev.0+6 + + - Update a dependency to the latest release. + ## 0.0.1+5 - Update a dependency to the latest release. diff --git a/thermion_flutter/thermion_flutter_web/pubspec.yaml b/thermion_flutter/thermion_flutter_web/pubspec.yaml index 4e0ea4f1..a0b6ac52 100644 --- a/thermion_flutter/thermion_flutter_web/pubspec.yaml +++ b/thermion_flutter/thermion_flutter_web/pubspec.yaml @@ -1,7 +1,7 @@ name: thermion_flutter_web description: A web platform interface for the thermion_flutter plugin. repository: https://github.com/nmfisher/thermion_flutter/thermion_flutter -version: 0.0.1+5 +version: 0.0.1+6 environment: sdk: ">=3.3.0 <4.0.0" @@ -20,8 +20,8 @@ dependencies: sdk: flutter plugin_platform_interface: ^2.1.0 web: ^0.5.1 - thermion_dart: ^0.1.1+1 - thermion_flutter_platform_interface: ^0.1.0+5 + thermion_dart: ^0.1.1+2 + thermion_flutter_platform_interface: ^0.1.0+6 flutter_web_plugins: sdk: flutter