From 0fec97163dabbe912b74ba99e70cbde3db7d47e9 Mon Sep 17 00:00:00 2001 From: Hans Kokx Date: Wed, 15 Apr 2026 00:51:17 +0200 Subject: [PATCH] Initial commit --- .github/workflows/ci.yml | 52 ++ .gitignore | 45 ++ .metadata | 30 ++ .vscode/launch.json | 45 ++ CHANGELOG.md | 8 + LICENSE | 21 + README.md | 142 +++++ analysis_options.yaml | 1 + android/.gitignore | 14 + android/app/build.gradle.kts | 44 ++ android/app/src/debug/AndroidManifest.xml | 7 + android/app/src/main/AndroidManifest.xml | 45 ++ .../com/example/holo_shiny/MainActivity.kt | 5 + .../res/drawable-v21/launch_background.xml | 12 + .../main/res/drawable/launch_background.xml | 12 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 544 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 442 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 721 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 1031 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 1443 bytes .../app/src/main/res/values-night/styles.xml | 18 + android/app/src/main/res/values/styles.xml | 18 + android/app/src/profile/AndroidManifest.xml | 7 + android/build.gradle.kts | 24 + android/gradle.properties | 2 + .../gradle/wrapper/gradle-wrapper.properties | 5 + android/settings.gradle.kts | 26 + example/.gitignore | 45 ++ example/.metadata | 30 ++ example/README.md | 3 + example/analysis_options.yaml | 1 + example/android/.gitignore | 14 + example/android/app/build.gradle.kts | 44 ++ .../android/app/src/debug/AndroidManifest.xml | 7 + .../android/app/src/main/AndroidManifest.xml | 45 ++ .../holo_shiny_example/MainActivity.kt | 5 + .../res/drawable-v21/launch_background.xml | 12 + .../main/res/drawable/launch_background.xml | 12 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 544 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 442 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 721 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 1031 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 1443 bytes .../app/src/main/res/values-night/styles.xml | 18 + .../app/src/main/res/values/styles.xml | 18 + .../app/src/profile/AndroidManifest.xml | 7 + example/android/build.gradle.kts | 24 + example/android/gradle.properties | 2 + .../gradle/wrapper/gradle-wrapper.properties | 5 + example/android/settings.gradle.kts | 26 + example/assets/pokemon.png | Bin 0 -> 306881 bytes example/lib/main.dart | 418 +++++++++++++++ example/linux/.gitignore | 1 + example/linux/CMakeLists.txt | 128 +++++ example/linux/flutter/CMakeLists.txt | 88 ++++ .../flutter/generated_plugin_registrant.cc | 11 + .../flutter/generated_plugin_registrant.h | 15 + example/linux/flutter/generated_plugins.cmake | 23 + example/linux/runner/CMakeLists.txt | 26 + example/linux/runner/main.cc | 6 + example/linux/runner/my_application.cc | 148 ++++++ example/linux/runner/my_application.h | 21 + example/pubspec.yaml | 23 + lib/holo_shiny.dart | 3 + lib/main.dart | 20 + lib/src/sensor_tilt_controller.dart | 122 +++++ lib/src/shiny_controller.dart | 47 ++ lib/src/shiny_widget.dart | 490 ++++++++++++++++++ pubspec.yaml | 26 + shaders/shiny_card.frag | 378 ++++++++++++++ test/shiny_controller_test.dart | 28 + test/shiny_widget_test.dart | 153 ++++++ 72 files changed, 3076 insertions(+) create mode 100644 .github/workflows/ci.yml create mode 100644 .gitignore create mode 100644 .metadata create mode 100644 .vscode/launch.json create mode 100644 CHANGELOG.md create mode 100644 LICENSE create mode 100644 README.md create mode 100644 analysis_options.yaml create mode 100644 android/.gitignore create mode 100644 android/app/build.gradle.kts create mode 100644 android/app/src/debug/AndroidManifest.xml create mode 100644 android/app/src/main/AndroidManifest.xml create mode 100644 android/app/src/main/kotlin/com/example/holo_shiny/MainActivity.kt create mode 100644 android/app/src/main/res/drawable-v21/launch_background.xml create mode 100644 android/app/src/main/res/drawable/launch_background.xml create mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/values-night/styles.xml create mode 100644 android/app/src/main/res/values/styles.xml create mode 100644 android/app/src/profile/AndroidManifest.xml create mode 100644 android/build.gradle.kts create mode 100644 android/gradle.properties create mode 100644 android/gradle/wrapper/gradle-wrapper.properties create mode 100644 android/settings.gradle.kts create mode 100644 example/.gitignore create mode 100644 example/.metadata create mode 100644 example/README.md create mode 100644 example/analysis_options.yaml create mode 100644 example/android/.gitignore create mode 100644 example/android/app/build.gradle.kts create mode 100644 example/android/app/src/debug/AndroidManifest.xml create mode 100644 example/android/app/src/main/AndroidManifest.xml create mode 100644 example/android/app/src/main/kotlin/com/example/holo_shiny_example/MainActivity.kt create mode 100644 example/android/app/src/main/res/drawable-v21/launch_background.xml create mode 100644 example/android/app/src/main/res/drawable/launch_background.xml create mode 100644 example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 example/android/app/src/main/res/values-night/styles.xml create mode 100644 example/android/app/src/main/res/values/styles.xml create mode 100644 example/android/app/src/profile/AndroidManifest.xml create mode 100644 example/android/build.gradle.kts create mode 100644 example/android/gradle.properties create mode 100644 example/android/gradle/wrapper/gradle-wrapper.properties create mode 100644 example/android/settings.gradle.kts create mode 100644 example/assets/pokemon.png create mode 100644 example/lib/main.dart create mode 100644 example/linux/.gitignore create mode 100644 example/linux/CMakeLists.txt create mode 100644 example/linux/flutter/CMakeLists.txt create mode 100644 example/linux/flutter/generated_plugin_registrant.cc create mode 100644 example/linux/flutter/generated_plugin_registrant.h create mode 100644 example/linux/flutter/generated_plugins.cmake create mode 100644 example/linux/runner/CMakeLists.txt create mode 100644 example/linux/runner/main.cc create mode 100644 example/linux/runner/my_application.cc create mode 100644 example/linux/runner/my_application.h create mode 100644 example/pubspec.yaml create mode 100644 lib/holo_shiny.dart create mode 100644 lib/main.dart create mode 100644 lib/src/sensor_tilt_controller.dart create mode 100644 lib/src/shiny_controller.dart create mode 100644 lib/src/shiny_widget.dart create mode 100644 pubspec.yaml create mode 100644 shaders/shiny_card.frag create mode 100644 test/shiny_controller_test.dart create mode 100644 test/shiny_widget_test.dart diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..6de6726 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,52 @@ +name: CI + +on: + push: + pull_request: + +jobs: + quality: + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Flutter + uses: subosito/flutter-action@v2 + with: + channel: stable + + - name: Root pub get + run: flutter pub get + + - name: Example pub get + working-directory: example + run: flutter pub get + + - name: Format check + run: dart format --output=none --set-exit-if-changed . + + - name: Analyze root + run: flutter analyze + + - name: Tests + run: flutter test + + - name: Outdated root + run: flutter pub outdated + + - name: Outdated example + working-directory: example + run: flutter pub outdated + + - name: Dartdoc dry-run + run: dart doc --dry-run + + - name: Publish dry-run + run: dart pub publish --dry-run + + - name: Pana + run: | + dart pub global activate pana + pana . diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3820a95 --- /dev/null +++ b/.gitignore @@ -0,0 +1,45 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.build/ +.buildlog/ +.history +.svn/ +.swiftpm/ +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-dependencies +.pub-cache/ +.pub/ +/build/ +/coverage/ + +# 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/.metadata b/.metadata new file mode 100644 index 0000000..a8104ff --- /dev/null +++ b/.metadata @@ -0,0 +1,30 @@ +# 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: "db50e20168db8fee486b9abf32fc912de3bc5b6a" + channel: "stable" + +project_type: app + +# Tracks metadata for the flutter migrate command +migration: + platforms: + - platform: root + create_revision: db50e20168db8fee486b9abf32fc912de3bc5b6a + base_revision: db50e20168db8fee486b9abf32fc912de3bc5b6a + - platform: android + create_revision: db50e20168db8fee486b9abf32fc912de3bc5b6a + base_revision: db50e20168db8fee486b9abf32fc912de3bc5b6a + + # 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/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..2a74c81 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,45 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "shiny", + "request": "launch", + "type": "dart" + }, + { + "name": "shiny (profile mode)", + "request": "launch", + "type": "dart", + "flutterMode": "profile" + }, + { + "name": "shiny (release mode)", + "request": "launch", + "type": "dart", + "flutterMode": "release" + }, + { + "name": "example", + "cwd": "example", + "request": "launch", + "type": "dart" + }, + { + "name": "example (profile mode)", + "cwd": "example", + "request": "launch", + "type": "dart", + "flutterMode": "profile" + }, + { + "name": "example (release mode)", + "cwd": "example", + "request": "launch", + "type": "dart", + "flutterMode": "release" + } + ] +} \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..56e5149 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,8 @@ +# Changelog + +## 0.1.0 + +- Initial release of `holo_shiny`. +- Added `Shiny` widget with shader-driven holographic effects. +- Added optional `ShinyController` and `SensorTiltController` motion APIs. +- Added package example app and baseline tests. diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..14fac91 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..be4cfa7 --- /dev/null +++ b/README.md @@ -0,0 +1,142 @@ +# holo_shiny + +`holo_shiny` is a Flutter package that renders shader-driven holographic shine. + +It exposes two widget layers: + +- `Shiny`: apply shine to any widget (no clipping and no rotation) +- `ShinyCard`: card-oriented convenience widget with shape clipping and tilt rotation + +## Features + +- GLSL shader-driven holographic effects +- Optional motion input via sensors or custom tilt stream +- Generic wrapper API for any widget via `Shiny(child: ...)` +- Card API with `background`, `foreground`, `shape`, and drag tilt via `ShinyCard` +- Built-in sparkle presets including 8-point star, 5-point star, rectangle, diamond, hexagon, random polygon, and confetti +- Custom sparkle shapes via parameterized `SparkleShapeSpec` factories +- Cross-platform Flutter support (mobile, web, desktop) + +## Installation + +Add the package: + +```yaml +dependencies: + holo_shiny: ^0.1.0 +``` + +Then run: + +```bash +flutter pub get +``` + +## Quick Start + +```dart +import 'package:flutter/material.dart'; +import 'package:holo_shiny/holo_shiny.dart'; + +class Demo extends StatelessWidget { + const Demo({super.key}); + + @override + Widget build(BuildContext context) { + return const Shiny( + child: ColoredBox( + color: Color(0xFF202A3A), + child: SizedBox(width: 280, height: 80), + ), + ); + } +} +``` + +## Card Usage + +```dart +ShinyCard( + controller: controller, + background: Container(color: const Color(0xFF1B2D4B)), + foreground: const Center(child: Text('HOLO')), + sparkleShape: SparkleShapeSpec.eightPointStar, +) +``` + +## Motion with Controller + +```dart +final ShinyController controller = ShinyController(useSensor: true); + +Shiny( + controller: controller, + child: Container(color: const Color(0xFF1B2D4B)), +) +``` + +## Sparkle Shapes + +Use built-in sparkle presets: + +```dart +ShinyCard( + sparkleShape: SparkleShapeSpec.hexagon, +) +``` + +Or create your own parameterized shapes: + +```dart +ShinyCard( + sparkleShape: SparkleShapeSpec.customStar( + points: 7, + innerRatio: 0.36, + ), +) + +Shiny( + sparkleShape: SparkleShapeSpec.customPolygon( + sides: 8, + aspectRatio: 1.2, + rotation: 0.2, + ), + child: const SizedBox(width: 240, height: 120), +) +``` + +You can also provide a custom stream: + +```dart +final StreamController input = StreamController.broadcast(); +final ShinyController controller = ShinyController(tiltStream: input.stream); +``` + +## API Summary + +- `Shiny`: generic effect wrapper +- `ShinyCard`: shape + rotation + composition convenience widget +- `SparkleShapeSpec`: built-in and custom sparkle silhouette configuration +- `ShinyController`: optional source selection for tilt +- `SensorTiltController`: low-level sensor fusion stream utility + +## Platform Notes + +- Shader uses Flutter runtime effects and avoids derivative functions (`dFdx`, `dFdy`, `fwidth`) for web compatibility. +- If a sensor is unavailable, motion input simply emits no events. + +## Example + +See the package example app in `example/` for: + +- Basic usage +- Any-widget shiny wrapper usage +- Sensor-driven motion +- External stream override +- Custom card shape/background/foreground composition +- Built-in sparkle shape toggles in the demo UI +- User-defined sparkle shape presets using `SparkleShapeSpec` + +## Publishing Notes + +Replace placeholder package metadata URLs in `pubspec.yaml` before publishing. diff --git a/analysis_options.yaml b/analysis_options.yaml new file mode 100644 index 0000000..f9b3034 --- /dev/null +++ b/analysis_options.yaml @@ -0,0 +1 @@ +include: package:flutter_lints/flutter.yaml diff --git a/android/.gitignore b/android/.gitignore new file mode 100644 index 0000000..be3943c --- /dev/null +++ b/android/.gitignore @@ -0,0 +1,14 @@ +gradle-wrapper.jar +/.gradle +/captures/ +/gradlew +/gradlew.bat +/local.properties +GeneratedPluginRegistrant.java +.cxx/ + +# Remember to never publicly share your keystore. +# See https://flutter.dev/to/reference-keystore +key.properties +**/*.keystore +**/*.jks diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts new file mode 100644 index 0000000..733b056 --- /dev/null +++ b/android/app/build.gradle.kts @@ -0,0 +1,44 @@ +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.holo_shiny" + compileSdk = flutter.compileSdkVersion + ndkVersion = flutter.ndkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_17.toString() + } + + defaultConfig { + // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). + applicationId = "com.example.holo_shiny" + // You can update the following values to match your application needs. + // For more information, see: https://flutter.dev/to/review-gradle-config. + 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.getByName("debug") + } + } +} + +flutter { + source = "../.." +} diff --git a/android/app/src/debug/AndroidManifest.xml b/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 0000000..399f698 --- /dev/null +++ b/android/app/src/debug/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..9b6acd9 --- /dev/null +++ b/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/android/app/src/main/kotlin/com/example/holo_shiny/MainActivity.kt b/android/app/src/main/kotlin/com/example/holo_shiny/MainActivity.kt new file mode 100644 index 0000000..e58140d --- /dev/null +++ b/android/app/src/main/kotlin/com/example/holo_shiny/MainActivity.kt @@ -0,0 +1,5 @@ +package com.example.holo_shiny + +import io.flutter.embedding.android.FlutterActivity + +class MainActivity : FlutterActivity() diff --git a/android/app/src/main/res/drawable-v21/launch_background.xml b/android/app/src/main/res/drawable-v21/launch_background.xml new file mode 100644 index 0000000..f74085f --- /dev/null +++ b/android/app/src/main/res/drawable-v21/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/android/app/src/main/res/drawable/launch_background.xml b/android/app/src/main/res/drawable/launch_background.xml new file mode 100644 index 0000000..304732f --- /dev/null +++ b/android/app/src/main/res/drawable/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..db77bb4b7b0906d62b1847e87f15cdcacf6a4f29 GIT binary patch literal 544 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2!h8bpbvhu0Wd6uZuB!w&u2PAxD2eNXD>P5D~Wn-+_Wa#27Xc zC?Zj|6r#X(-D3u$NCt}(Ms06KgJ4FxJVv{GM)!I~&n8Bnc94O7-Hd)cjDZswgC;Qs zO=b+9!WcT8F?0rF7!Uys2bs@gozCP?z~o%U|N3vA*22NaGQG zlg@K`O_XuxvZ&Ks^m&R!`&1=spLvfx7oGDKDwpwW`#iqdw@AL`7MR}m`rwr|mZgU`8P7SBkL78fFf!WnuYWm$5Z0 zNXhDbCv&49sM544K|?c)WrFfiZvCi9h0O)B3Pgg&ebxsLQ05GG~ AQ2+n{ literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..17987b79bb8a35cc66c3c1fd44f5a5526c1b78be GIT binary patch literal 442 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-sk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5Xx&nMcT!A!W`0S9QKQy;}1Cl^CgaH=;G9cpY;r$Q>i*pfB zP2drbID<_#qf;rPZx^FqH)F_D#*k@@q03KywUtLX8Ua?`H+NMzkczFPK3lFz@i_kW%1NOn0|D2I9n9wzH8m|-tHjsw|9>@K=iMBhxvkv6m8Y-l zytQ?X=U+MF$@3 zt`~i=@j|6y)RWMK--}M|=T`o&^Ni>IoWKHEbBXz7?A@mgWoL>!*SXo`SZH-*HSdS+ yn*9;$7;m`l>wYBC5bq;=U}IMqLzqbYCidGC!)_gkIk_C@Uy!y&wkt5C($~2D>~)O*cj@FGjOCM)M>_ixfudOh)?xMu#Fs z#}Y=@YDTwOM)x{K_j*Q;dPdJ?Mz0n|pLRx{4n|)f>SXlmV)XB04CrSJn#dS5nK2lM zrZ9#~WelCp7&e13Y$jvaEXHskn$2V!!DN-nWS__6T*l;H&Fopn?A6HZ-6WRLFP=R` zqG+CE#d4|IbyAI+rJJ`&x9*T`+a=p|0O(+s{UBcyZdkhj=yS1>AirP+0R;mf2uMgM zC}@~JfByORAh4SyRgi&!(cja>F(l*O+nd+@4m$|6K6KDn_&uvCpV23&>G9HJp{xgg zoq1^2_p9@|WEo z*X_Uko@K)qYYv~>43eQGMdbiGbo>E~Q& zrYBH{QP^@Sti!`2)uG{irBBq@y*$B zi#&(U-*=fp74j)RyIw49+0MRPMRU)+a2r*PJ$L5roHt2$UjExCTZSbq%V!HeS7J$N zdG@vOZB4v_lF7Plrx+hxo7(fCV&}fHq)$ literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..d5f1c8d34e7a88e3f88bea192c3a370d44689c3c GIT binary patch literal 1031 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q8Ax83A=Cw=BuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFa`(sgt!6~Yi|1%a`XoT0ojZ}lNrNjb9xjc(B0U1_% zz5^97Xt*%oq$rQy4?0GKNfJ44uvxI)gC`h-NZ|&0-7(qS@?b!5r36oQ}zyZrNO3 zMO=Or+<~>+A&uN&E!^Sl+>xE!QC-|oJv`ApDhqC^EWD|@=#J`=d#Xzxs4ah}w&Jnc z$|q_opQ^2TrnVZ0o~wh<3t%W&flvYGe#$xqda2bR_R zvPYgMcHgjZ5nSA^lJr%;<&0do;O^tDDh~=pIxA#coaCY>&N%M2^tq^U%3DB@ynvKo}b?yu-bFc-u0JHzced$sg7S3zqI(2 z#Km{dPr7I=pQ5>FuK#)QwK?Y`E`B?nP+}U)I#c1+FM*1kNvWG|a(TpksZQ3B@sD~b zpQ2)*V*TdwjFOtHvV|;OsiDqHi=6%)o4b!)x$)%9pGTsE z-JL={-Ffv+T87W(Xpooq<`r*VzWQcgBN$$`u}f>-ZQI1BB8ykN*=e4rIsJx9>z}*o zo~|9I;xof literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..4d6372eebdb28e45604e46eeda8dd24651419bc0 GIT binary patch literal 1443 zcmb`G{WsKk6vsdJTdFg%tJav9_E4vzrOaqkWF|A724Nly!y+?N9`YV6wZ}5(X(D_N(?!*n3`|_r0Hc?=PQw&*vnU?QTFY zB_MsH|!j$PP;I}?dppoE_gA(4uc!jV&0!l7_;&p2^pxNo>PEcNJv za5_RT$o2Mf!<+r?&EbHH6nMoTsDOa;mN(wv8RNsHpG)`^ymG-S5By8=l9iVXzN_eG%Xg2@Xeq76tTZ*dGh~Lo9vl;Zfs+W#BydUw zCkZ$o1LqWQO$FC9aKlLl*7x9^0q%0}$OMlp@Kk_jHXOjofdePND+j!A{q!8~Jn+s3 z?~~w@4?egS02}8NuulUA=L~QQfm;MzCGd)XhiftT;+zFO&JVyp2mBww?;QByS_1w! zrQlx%{^cMj0|Bo1FjwY@Q8?Hx0cIPF*@-ZRFpPc#bBw{5@tD(5%sClzIfl8WU~V#u zm5Q;_F!wa$BSpqhN>W@2De?TKWR*!ujY;Yylk_X5#~V!L*Gw~;$%4Q8~Mad z@`-kG?yb$a9cHIApZDVZ^U6Xkp<*4rU82O7%}0jjHlK{id@?-wpN*fCHXyXh(bLt* zPc}H-x0e4E&nQ>y%B-(EL=9}RyC%MyX=upHuFhAk&MLbsF0LP-q`XnH78@fT+pKPW zu72MW`|?8ht^tz$iC}ZwLp4tB;Q49K!QCF3@!iB1qOI=?w z7In!}F~ij(18UYUjnbmC!qKhPo%24?8U1x{7o(+?^Zu0Hx81|FuS?bJ0jgBhEMzf< zCgUq7r2OCB(`XkKcN-TL>u5y#dD6D!)5W?`O5)V^>jb)P)GBdy%t$uUMpf$SNV31$ zb||OojAbvMP?T@$h_ZiFLFVHDmbyMhJF|-_)HX3%m=CDI+ID$0^C>kzxprBW)hw(v zr!Gmda);ICoQyhV_oP5+C%?jcG8v+D@9f?Dk*!BxY}dazmrT@64UrP3hlslANK)bq z$67n83eh}OeW&SV@HG95P|bjfqJ7gw$e+`Hxo!4cx`jdK1bJ>YDSpGKLPZ^1cv$ek zIB?0S<#tX?SJCLWdMd{-ME?$hc7A$zBOdIJ)4!KcAwb=VMov)nK;9z>x~rfT1>dS+ zZ6#`2v@`jgbqq)P22H)Tx2CpmM^o1$B+xT6`(v%5xJ(?j#>Q$+rx_R|7TzDZe{J6q zG1*EcU%tE?!kO%^M;3aM6JN*LAKUVb^xz8-Pxo#jR5(-KBeLJvA@-gxNHx0M-ZJLl z;#JwQoh~9V?`UVo#}{6ka@II>++D@%KqGpMdlQ}?9E*wFcf5(#XQnP$Dk5~%iX^>f z%$y;?M0BLp{O3a(-4A?ewryHrrD%cx#Q^%KY1H zNre$ve+vceSLZcNY4U(RBX&)oZn*Py()h)XkE?PL$!bNb{N5FVI2Y%LKEm%yvpyTP z(1P?z~7YxD~Rf<(a@_y` literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/values-night/styles.xml b/android/app/src/main/res/values-night/styles.xml new file mode 100644 index 0000000..06952be --- /dev/null +++ b/android/app/src/main/res/values-night/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..cb1ef88 --- /dev/null +++ b/android/app/src/main/res/values/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/android/app/src/profile/AndroidManifest.xml b/android/app/src/profile/AndroidManifest.xml new file mode 100644 index 0000000..399f698 --- /dev/null +++ b/android/app/src/profile/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/android/build.gradle.kts b/android/build.gradle.kts new file mode 100644 index 0000000..dbee657 --- /dev/null +++ b/android/build.gradle.kts @@ -0,0 +1,24 @@ +allprojects { + repositories { + google() + mavenCentral() + } +} + +val newBuildDir: Directory = + rootProject.layout.buildDirectory + .dir("../../build") + .get() +rootProject.layout.buildDirectory.value(newBuildDir) + +subprojects { + val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) + project.layout.buildDirectory.value(newSubprojectBuildDir) +} +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean") { + delete(rootProject.layout.buildDirectory) +} diff --git a/android/gradle.properties b/android/gradle.properties new file mode 100644 index 0000000..fbee1d8 --- /dev/null +++ b/android/gradle.properties @@ -0,0 +1,2 @@ +org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError +android.useAndroidX=true diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..e4ef43f --- /dev/null +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-all.zip diff --git a/android/settings.gradle.kts b/android/settings.gradle.kts new file mode 100644 index 0000000..ca7fe06 --- /dev/null +++ b/android/settings.gradle.kts @@ -0,0 +1,26 @@ +pluginManagement { + val flutterSdkPath = + run { + val properties = java.util.Properties() + file("local.properties").inputStream().use { properties.load(it) } + val flutterSdkPath = properties.getProperty("flutter.sdk") + require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } + 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 "8.11.1" apply false + id("org.jetbrains.kotlin.android") version "2.2.20" apply false +} + +include(":app") diff --git a/example/.gitignore b/example/.gitignore new file mode 100644 index 0000000..3820a95 --- /dev/null +++ b/example/.gitignore @@ -0,0 +1,45 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.build/ +.buildlog/ +.history +.svn/ +.swiftpm/ +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-dependencies +.pub-cache/ +.pub/ +/build/ +/coverage/ + +# 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/example/.metadata b/example/.metadata new file mode 100644 index 0000000..a8104ff --- /dev/null +++ b/example/.metadata @@ -0,0 +1,30 @@ +# 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: "db50e20168db8fee486b9abf32fc912de3bc5b6a" + channel: "stable" + +project_type: app + +# Tracks metadata for the flutter migrate command +migration: + platforms: + - platform: root + create_revision: db50e20168db8fee486b9abf32fc912de3bc5b6a + base_revision: db50e20168db8fee486b9abf32fc912de3bc5b6a + - platform: android + create_revision: db50e20168db8fee486b9abf32fc912de3bc5b6a + base_revision: db50e20168db8fee486b9abf32fc912de3bc5b6a + + # 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/example/README.md b/example/README.md new file mode 100644 index 0000000..04d83e6 --- /dev/null +++ b/example/README.md @@ -0,0 +1,3 @@ +# holo_shiny_example + +A new Flutter project. diff --git a/example/analysis_options.yaml b/example/analysis_options.yaml new file mode 100644 index 0000000..f9b3034 --- /dev/null +++ b/example/analysis_options.yaml @@ -0,0 +1 @@ +include: package:flutter_lints/flutter.yaml diff --git a/example/android/.gitignore b/example/android/.gitignore new file mode 100644 index 0000000..be3943c --- /dev/null +++ b/example/android/.gitignore @@ -0,0 +1,14 @@ +gradle-wrapper.jar +/.gradle +/captures/ +/gradlew +/gradlew.bat +/local.properties +GeneratedPluginRegistrant.java +.cxx/ + +# Remember to never publicly share your keystore. +# See https://flutter.dev/to/reference-keystore +key.properties +**/*.keystore +**/*.jks diff --git a/example/android/app/build.gradle.kts b/example/android/app/build.gradle.kts new file mode 100644 index 0000000..6ef9ad4 --- /dev/null +++ b/example/android/app/build.gradle.kts @@ -0,0 +1,44 @@ +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.holo_shiny_example" + compileSdk = flutter.compileSdkVersion + ndkVersion = flutter.ndkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_17.toString() + } + + defaultConfig { + // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). + applicationId = "com.example.holo_shiny_example" + // You can update the following values to match your application needs. + // For more information, see: https://flutter.dev/to/review-gradle-config. + 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.getByName("debug") + } + } +} + +flutter { + source = "../.." +} diff --git a/example/android/app/src/debug/AndroidManifest.xml b/example/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 0000000..399f698 --- /dev/null +++ b/example/android/app/src/debug/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/example/android/app/src/main/AndroidManifest.xml b/example/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..4c36770 --- /dev/null +++ b/example/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/example/android/app/src/main/kotlin/com/example/holo_shiny_example/MainActivity.kt b/example/android/app/src/main/kotlin/com/example/holo_shiny_example/MainActivity.kt new file mode 100644 index 0000000..7c65fde --- /dev/null +++ b/example/android/app/src/main/kotlin/com/example/holo_shiny_example/MainActivity.kt @@ -0,0 +1,5 @@ +package com.example.holo_shiny_example + +import io.flutter.embedding.android.FlutterActivity + +class MainActivity : FlutterActivity() diff --git a/example/android/app/src/main/res/drawable-v21/launch_background.xml b/example/android/app/src/main/res/drawable-v21/launch_background.xml new file mode 100644 index 0000000..f74085f --- /dev/null +++ b/example/android/app/src/main/res/drawable-v21/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/example/android/app/src/main/res/drawable/launch_background.xml b/example/android/app/src/main/res/drawable/launch_background.xml new file mode 100644 index 0000000..304732f --- /dev/null +++ b/example/android/app/src/main/res/drawable/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..db77bb4b7b0906d62b1847e87f15cdcacf6a4f29 GIT binary patch literal 544 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2!h8bpbvhu0Wd6uZuB!w&u2PAxD2eNXD>P5D~Wn-+_Wa#27Xc zC?Zj|6r#X(-D3u$NCt}(Ms06KgJ4FxJVv{GM)!I~&n8Bnc94O7-Hd)cjDZswgC;Qs zO=b+9!WcT8F?0rF7!Uys2bs@gozCP?z~o%U|N3vA*22NaGQG zlg@K`O_XuxvZ&Ks^m&R!`&1=spLvfx7oGDKDwpwW`#iqdw@AL`7MR}m`rwr|mZgU`8P7SBkL78fFf!WnuYWm$5Z0 zNXhDbCv&49sM544K|?c)WrFfiZvCi9h0O)B3Pgg&ebxsLQ05GG~ AQ2+n{ literal 0 HcmV?d00001 diff --git a/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..17987b79bb8a35cc66c3c1fd44f5a5526c1b78be GIT binary patch literal 442 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-sk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5Xx&nMcT!A!W`0S9QKQy;}1Cl^CgaH=;G9cpY;r$Q>i*pfB zP2drbID<_#qf;rPZx^FqH)F_D#*k@@q03KywUtLX8Ua?`H+NMzkczFPK3lFz@i_kW%1NOn0|D2I9n9wzH8m|-tHjsw|9>@K=iMBhxvkv6m8Y-l zytQ?X=U+MF$@3 zt`~i=@j|6y)RWMK--}M|=T`o&^Ni>IoWKHEbBXz7?A@mgWoL>!*SXo`SZH-*HSdS+ yn*9;$7;m`l>wYBC5bq;=U}IMqLzqbYCidGC!)_gkIk_C@Uy!y&wkt5C($~2D>~)O*cj@FGjOCM)M>_ixfudOh)?xMu#Fs z#}Y=@YDTwOM)x{K_j*Q;dPdJ?Mz0n|pLRx{4n|)f>SXlmV)XB04CrSJn#dS5nK2lM zrZ9#~WelCp7&e13Y$jvaEXHskn$2V!!DN-nWS__6T*l;H&Fopn?A6HZ-6WRLFP=R` zqG+CE#d4|IbyAI+rJJ`&x9*T`+a=p|0O(+s{UBcyZdkhj=yS1>AirP+0R;mf2uMgM zC}@~JfByORAh4SyRgi&!(cja>F(l*O+nd+@4m$|6K6KDn_&uvCpV23&>G9HJp{xgg zoq1^2_p9@|WEo z*X_Uko@K)qYYv~>43eQGMdbiGbo>E~Q& zrYBH{QP^@Sti!`2)uG{irBBq@y*$B zi#&(U-*=fp74j)RyIw49+0MRPMRU)+a2r*PJ$L5roHt2$UjExCTZSbq%V!HeS7J$N zdG@vOZB4v_lF7Plrx+hxo7(fCV&}fHq)$ literal 0 HcmV?d00001 diff --git a/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..d5f1c8d34e7a88e3f88bea192c3a370d44689c3c GIT binary patch literal 1031 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q8Ax83A=Cw=BuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFa`(sgt!6~Yi|1%a`XoT0ojZ}lNrNjb9xjc(B0U1_% zz5^97Xt*%oq$rQy4?0GKNfJ44uvxI)gC`h-NZ|&0-7(qS@?b!5r36oQ}zyZrNO3 zMO=Or+<~>+A&uN&E!^Sl+>xE!QC-|oJv`ApDhqC^EWD|@=#J`=d#Xzxs4ah}w&Jnc z$|q_opQ^2TrnVZ0o~wh<3t%W&flvYGe#$xqda2bR_R zvPYgMcHgjZ5nSA^lJr%;<&0do;O^tDDh~=pIxA#coaCY>&N%M2^tq^U%3DB@ynvKo}b?yu-bFc-u0JHzced$sg7S3zqI(2 z#Km{dPr7I=pQ5>FuK#)QwK?Y`E`B?nP+}U)I#c1+FM*1kNvWG|a(TpksZQ3B@sD~b zpQ2)*V*TdwjFOtHvV|;OsiDqHi=6%)o4b!)x$)%9pGTsE z-JL={-Ffv+T87W(Xpooq<`r*VzWQcgBN$$`u}f>-ZQI1BB8ykN*=e4rIsJx9>z}*o zo~|9I;xof literal 0 HcmV?d00001 diff --git a/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..4d6372eebdb28e45604e46eeda8dd24651419bc0 GIT binary patch literal 1443 zcmb`G{WsKk6vsdJTdFg%tJav9_E4vzrOaqkWF|A724Nly!y+?N9`YV6wZ}5(X(D_N(?!*n3`|_r0Hc?=PQw&*vnU?QTFY zB_MsH|!j$PP;I}?dppoE_gA(4uc!jV&0!l7_;&p2^pxNo>PEcNJv za5_RT$o2Mf!<+r?&EbHH6nMoTsDOa;mN(wv8RNsHpG)`^ymG-S5By8=l9iVXzN_eG%Xg2@Xeq76tTZ*dGh~Lo9vl;Zfs+W#BydUw zCkZ$o1LqWQO$FC9aKlLl*7x9^0q%0}$OMlp@Kk_jHXOjofdePND+j!A{q!8~Jn+s3 z?~~w@4?egS02}8NuulUA=L~QQfm;MzCGd)XhiftT;+zFO&JVyp2mBww?;QByS_1w! zrQlx%{^cMj0|Bo1FjwY@Q8?Hx0cIPF*@-ZRFpPc#bBw{5@tD(5%sClzIfl8WU~V#u zm5Q;_F!wa$BSpqhN>W@2De?TKWR*!ujY;Yylk_X5#~V!L*Gw~;$%4Q8~Mad z@`-kG?yb$a9cHIApZDVZ^U6Xkp<*4rU82O7%}0jjHlK{id@?-wpN*fCHXyXh(bLt* zPc}H-x0e4E&nQ>y%B-(EL=9}RyC%MyX=upHuFhAk&MLbsF0LP-q`XnH78@fT+pKPW zu72MW`|?8ht^tz$iC}ZwLp4tB;Q49K!QCF3@!iB1qOI=?w z7In!}F~ij(18UYUjnbmC!qKhPo%24?8U1x{7o(+?^Zu0Hx81|FuS?bJ0jgBhEMzf< zCgUq7r2OCB(`XkKcN-TL>u5y#dD6D!)5W?`O5)V^>jb)P)GBdy%t$uUMpf$SNV31$ zb||OojAbvMP?T@$h_ZiFLFVHDmbyMhJF|-_)HX3%m=CDI+ID$0^C>kzxprBW)hw(v zr!Gmda);ICoQyhV_oP5+C%?jcG8v+D@9f?Dk*!BxY}dazmrT@64UrP3hlslANK)bq z$67n83eh}OeW&SV@HG95P|bjfqJ7gw$e+`Hxo!4cx`jdK1bJ>YDSpGKLPZ^1cv$ek zIB?0S<#tX?SJCLWdMd{-ME?$hc7A$zBOdIJ)4!KcAwb=VMov)nK;9z>x~rfT1>dS+ zZ6#`2v@`jgbqq)P22H)Tx2CpmM^o1$B+xT6`(v%5xJ(?j#>Q$+rx_R|7TzDZe{J6q zG1*EcU%tE?!kO%^M;3aM6JN*LAKUVb^xz8-Pxo#jR5(-KBeLJvA@-gxNHx0M-ZJLl z;#JwQoh~9V?`UVo#}{6ka@II>++D@%KqGpMdlQ}?9E*wFcf5(#XQnP$Dk5~%iX^>f z%$y;?M0BLp{O3a(-4A?ewryHrrD%cx#Q^%KY1H zNre$ve+vceSLZcNY4U(RBX&)oZn*Py()h)XkE?PL$!bNb{N5FVI2Y%LKEm%yvpyTP z(1P?z~7YxD~Rf<(a@_y` literal 0 HcmV?d00001 diff --git a/example/android/app/src/main/res/values-night/styles.xml b/example/android/app/src/main/res/values-night/styles.xml new file mode 100644 index 0000000..06952be --- /dev/null +++ b/example/android/app/src/main/res/values-night/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/example/android/app/src/main/res/values/styles.xml b/example/android/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..cb1ef88 --- /dev/null +++ b/example/android/app/src/main/res/values/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/example/android/app/src/profile/AndroidManifest.xml b/example/android/app/src/profile/AndroidManifest.xml new file mode 100644 index 0000000..399f698 --- /dev/null +++ b/example/android/app/src/profile/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/example/android/build.gradle.kts b/example/android/build.gradle.kts new file mode 100644 index 0000000..dbee657 --- /dev/null +++ b/example/android/build.gradle.kts @@ -0,0 +1,24 @@ +allprojects { + repositories { + google() + mavenCentral() + } +} + +val newBuildDir: Directory = + rootProject.layout.buildDirectory + .dir("../../build") + .get() +rootProject.layout.buildDirectory.value(newBuildDir) + +subprojects { + val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) + project.layout.buildDirectory.value(newSubprojectBuildDir) +} +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean") { + delete(rootProject.layout.buildDirectory) +} diff --git a/example/android/gradle.properties b/example/android/gradle.properties new file mode 100644 index 0000000..fbee1d8 --- /dev/null +++ b/example/android/gradle.properties @@ -0,0 +1,2 @@ +org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError +android.useAndroidX=true diff --git a/example/android/gradle/wrapper/gradle-wrapper.properties b/example/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..e4ef43f --- /dev/null +++ b/example/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-all.zip diff --git a/example/android/settings.gradle.kts b/example/android/settings.gradle.kts new file mode 100644 index 0000000..ca7fe06 --- /dev/null +++ b/example/android/settings.gradle.kts @@ -0,0 +1,26 @@ +pluginManagement { + val flutterSdkPath = + run { + val properties = java.util.Properties() + file("local.properties").inputStream().use { properties.load(it) } + val flutterSdkPath = properties.getProperty("flutter.sdk") + require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } + 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 "8.11.1" apply false + id("org.jetbrains.kotlin.android") version "2.2.20" apply false +} + +include(":app") diff --git a/example/assets/pokemon.png b/example/assets/pokemon.png new file mode 100644 index 0000000000000000000000000000000000000000..1307ceca4797df5a5ff06a598e9f584fe4cfa964 GIT binary patch literal 306881 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�Ue+B#PWKbS@kO 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%0A|P0O$*)h7Cheh=P<{4uol0!Ct5s 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≧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%0DJ5IC%#r3PpvW>o7=$+Q!}!!=!+zjTa_Pzy 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 literal 0 HcmV?d00001 diff --git a/example/lib/main.dart b/example/lib/main.dart new file mode 100644 index 0000000..7b3b087 --- /dev/null +++ b/example/lib/main.dart @@ -0,0 +1,418 @@ +import 'dart:async'; + +import 'package:flutter/material.dart'; +import 'package:holo_shiny/holo_shiny.dart'; + +void main() { + runApp(const ExampleApp()); +} + +class ExampleApp extends StatelessWidget { + const ExampleApp({super.key}); + + @override + Widget build(BuildContext context) { + return MaterialApp( + debugShowCheckedModeBanner: false, + theme: ThemeData( + colorScheme: ColorScheme.fromSeed(seedColor: const Color(0xFF24A6A8)), + ), + home: const ExampleHome(), + ); + } +} + +class ExampleHome extends StatefulWidget { + const ExampleHome({super.key}); + + @override + State createState() => _ExampleHomeState(); +} + +class _ExampleHomeState extends State { + late final ShinyController _sensorController; + late final StreamController _externalTiltController; + late final ShinyController _overrideController; + + double _prismatic = 0.8; + double _sparkle = 0.8; + double _specular = 0.8; + double _diffraction = 0.8; + HolographStyle _style = HolographStyle.crackedIce; + SparkleShapeSpec _sparkleShape = SparkleShapeSpec.eightPointStar; + + static const Map _sparkleChoices = + { + '8-Point Star': SparkleShapeSpec.eightPointStar, + '5-Point Star': SparkleShapeSpec.fivePointStar, + 'Rectangle': SparkleShapeSpec.rectangle, + 'Diamond': SparkleShapeSpec.diamond, + 'Hexagon': SparkleShapeSpec.hexagon, + 'Random Polygon': SparkleShapeSpec.randomPolygon, + 'Confetti': SparkleShapeSpec.confetti, + }; + + @override + void initState() { + super.initState(); + _sensorController = ShinyController(useSensor: true); + _externalTiltController = StreamController.broadcast(); + _overrideController = + ShinyController(tiltStream: _externalTiltController.stream); + } + + @override + void dispose() { + _sensorController.dispose(); + _overrideController.dispose(); + _externalTiltController.close(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: const Color(0xFF0D121A), + appBar: AppBar( + title: const Text('holo_shiny example'), + ), + body: SingleChildScrollView( + padding: const EdgeInsets.all(16), + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + const Text('Shiny on Any Widget'), + const SizedBox(height: 8), + Center( + child: SizedBox( + width: 320, + height: 120, + child: Shiny( + controller: _sensorController, + style: _style, + sparkleShape: _sparkleShape, + child: Container( + padding: const EdgeInsets.all(16), + decoration: BoxDecoration( + color: const Color(0xFF18263E), + borderRadius: BorderRadius.circular(14), + ), + child: const Row( + children: [ + Icon(Icons.auto_awesome, color: Colors.white), + SizedBox(width: 12), + Expanded( + child: Text( + 'This can wrap any widget, including app chrome.', + style: TextStyle(color: Colors.white), + ), + ), + ], + ), + ), + ), + ), + ), + const SizedBox(height: 24), + const Text('ShinyCard (shape + rotation + shine)'), + const SizedBox(height: 8), + Center( + child: ShinyCard( + controller: _sensorController, + style: _style, + sparkleShape: _sparkleShape, + background: const _DemoCardBackground(), + foreground: const _RareBadge(), + prismatic: _prismatic, + sparkle: _sparkle, + specular: _specular, + diffraction: _diffraction, + ), + ), + const SizedBox(height: 16), + _StylePicker( + selectedStyle: _style, + onChanged: (HolographStyle style) { + setState(() { + _style = style; + }); + }, + ), + const SizedBox(height: 8), + _SparkleShapePicker( + selectedShape: _sparkleShape, + choices: _sparkleChoices, + onChanged: (SparkleShapeSpec shape) { + setState(() { + _sparkleShape = shape; + }); + }, + ), + const SizedBox(height: 8), + _LabeledSlider('Prismatic', _prismatic, (double value) { + setState(() { + _prismatic = value; + }); + }), + _LabeledSlider('Sparkle', _sparkle, (double value) { + setState(() { + _sparkle = value; + }); + }), + _LabeledSlider('Specular', _specular, (double value) { + setState(() { + _specular = value; + }); + }), + _LabeledSlider('Diffraction', _diffraction, (double value) { + setState(() { + _diffraction = value; + }); + }), + const SizedBox(height: 24), + const Text('External Tilt Stream + Custom Shape (card)'), + const SizedBox(height: 8), + Row( + children: [ + Expanded( + child: ElevatedButton( + onPressed: () => + _externalTiltController.add(const Offset(0.7, 0.0)), + child: const Text('Tilt Right'), + ), + ), + const SizedBox(width: 8), + Expanded( + child: ElevatedButton( + onPressed: () => + _externalTiltController.add(const Offset(-0.7, 0.0)), + child: const Text('Tilt Left'), + ), + ), + ], + ), + const SizedBox(height: 8), + Center( + child: ShinyCard( + controller: _overrideController, + style: _style, + sparkleShape: _sparkleShape, + shape: const StadiumBorder(), + background: Container( + decoration: const BoxDecoration( + gradient: LinearGradient( + colors: [Color(0xFF1A2A44), Color(0xFF15263D)], + ), + ), + ), + foreground: const Center( + child: Text( + 'EXTERNAL STREAM', + style: TextStyle( + color: Colors.white, + fontWeight: FontWeight.w900, + letterSpacing: 1.2, + ), + ), + ), + ), + ), + ], + ), + ), + ); + } +} + +class _LabeledSlider extends StatelessWidget { + const _LabeledSlider(this.label, this.value, this.onChanged); + + final String label; + final double value; + final ValueChanged onChanged; + + @override + Widget build(BuildContext context) { + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text(label), + Slider( + value: value, + onChanged: onChanged, + ), + ], + ); + } +} + +class _StylePicker extends StatelessWidget { + const _StylePicker({ + required this.selectedStyle, + required this.onChanged, + }); + + final HolographStyle selectedStyle; + final ValueChanged onChanged; + + @override + Widget build(BuildContext context) { + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text('Style'), + const SizedBox(height: 6), + Wrap( + spacing: 8, + runSpacing: 8, + children: HolographStyle.values.map((HolographStyle style) { + return ChoiceChip( + label: Text(_styleLabel(style)), + selected: selectedStyle == style, + onSelected: (bool selected) { + if (!selected) { + return; + } + onChanged(style); + }, + ); + }).toList(), + ), + ], + ); + } + + String _styleLabel(HolographStyle style) { + switch (style) { + case HolographStyle.holographicSilver: + return 'Holographic Silver'; + case HolographStyle.crackedIce: + return 'Cracked Ice'; + case HolographStyle.silverMosaic: + return 'Silver Mosaic'; + case HolographStyle.superGoldVinyl: + return 'Super Gold Vinyl'; + } + } +} + +class _SparkleShapePicker extends StatelessWidget { + const _SparkleShapePicker({ + required this.selectedShape, + required this.choices, + required this.onChanged, + }); + + final SparkleShapeSpec selectedShape; + final Map choices; + final ValueChanged onChanged; + + @override + Widget build(BuildContext context) { + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text('Sparkle Shape'), + const SizedBox(height: 6), + Wrap( + spacing: 8, + runSpacing: 8, + children: + choices.entries.map((MapEntry entry) { + return ChoiceChip( + label: Text(entry.key), + selected: selectedShape == entry.value, + onSelected: (bool selected) { + if (!selected) { + return; + } + onChanged(entry.value); + }, + ); + }).toList(), + ), + ], + ); + } +} + +class _DemoCardBackground extends StatelessWidget { + const _DemoCardBackground(); + + @override + Widget build(BuildContext context) { + return Stack( + fit: StackFit.expand, + children: [ + Image.asset( + 'assets/pokemon.png', + fit: BoxFit.cover, + alignment: Alignment.topCenter, + errorBuilder: + (BuildContext context, Object error, StackTrace? stackTrace) { + return Container( + decoration: const BoxDecoration( + gradient: LinearGradient( + begin: Alignment.topLeft, + end: Alignment.bottomRight, + colors: [Color(0xFF2D1B1B), Color(0xFF120D18)], + ), + ), + padding: const EdgeInsets.all(16), + child: const Align( + alignment: Alignment.bottomLeft, + child: Text( + 'Demo Card', + style: TextStyle( + color: Colors.white, + fontSize: 22, + fontWeight: FontWeight.w900, + ), + ), + ), + ); + }, + ), + DecoratedBox( + decoration: BoxDecoration( + gradient: LinearGradient( + begin: Alignment.topCenter, + end: Alignment.bottomCenter, + colors: [ + Colors.black.withValues(alpha: 0.10), + Colors.black.withValues(alpha: 0.22), + ], + ), + ), + ), + ], + ); + } +} + +class _RareBadge extends StatelessWidget { + const _RareBadge(); + + @override + Widget build(BuildContext context) { + return Align( + alignment: Alignment.topRight, + child: Container( + margin: const EdgeInsets.all(12), + padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 4), + decoration: BoxDecoration( + color: Colors.white.withValues(alpha: 0.2), + borderRadius: BorderRadius.circular(99), + ), + child: const Text( + 'RARE', + style: TextStyle( + color: Colors.white, + fontWeight: FontWeight.w800, + letterSpacing: 1, + ), + ), + ), + ); + } +} diff --git a/example/linux/.gitignore b/example/linux/.gitignore new file mode 100644 index 0000000..d3896c9 --- /dev/null +++ b/example/linux/.gitignore @@ -0,0 +1 @@ +flutter/ephemeral diff --git a/example/linux/CMakeLists.txt b/example/linux/CMakeLists.txt new file mode 100644 index 0000000..1761446 --- /dev/null +++ b/example/linux/CMakeLists.txt @@ -0,0 +1,128 @@ +# Project-level configuration. +cmake_minimum_required(VERSION 3.13) +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 "holo_shiny_example") +# The unique GTK application identifier for this application. See: +# https://wiki.gnome.org/HowDoI/ChooseApplicationID +set(APPLICATION_ID "com.example.holo_shiny_example") + +# 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) + +# Application build; see runner/CMakeLists.txt. +add_subdirectory("runner") + +# 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/example/linux/flutter/CMakeLists.txt b/example/linux/flutter/CMakeLists.txt new file mode 100644 index 0000000..d5bd016 --- /dev/null +++ b/example/linux/flutter/CMakeLists.txt @@ -0,0 +1,88 @@ +# 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/example/linux/flutter/generated_plugin_registrant.cc b/example/linux/flutter/generated_plugin_registrant.cc new file mode 100644 index 0000000..e71a16d --- /dev/null +++ b/example/linux/flutter/generated_plugin_registrant.cc @@ -0,0 +1,11 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#include "generated_plugin_registrant.h" + + +void fl_register_plugins(FlPluginRegistry* registry) { +} diff --git a/example/linux/flutter/generated_plugin_registrant.h b/example/linux/flutter/generated_plugin_registrant.h new file mode 100644 index 0000000..e0f0a47 --- /dev/null +++ b/example/linux/flutter/generated_plugin_registrant.h @@ -0,0 +1,15 @@ +// +// 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/example/linux/flutter/generated_plugins.cmake b/example/linux/flutter/generated_plugins.cmake new file mode 100644 index 0000000..2e1de87 --- /dev/null +++ b/example/linux/flutter/generated_plugins.cmake @@ -0,0 +1,23 @@ +# +# Generated file, do not edit. +# + +list(APPEND FLUTTER_PLUGIN_LIST +) + +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/example/linux/runner/CMakeLists.txt b/example/linux/runner/CMakeLists.txt new file mode 100644 index 0000000..e97dabc --- /dev/null +++ b/example/linux/runner/CMakeLists.txt @@ -0,0 +1,26 @@ +cmake_minimum_required(VERSION 3.13) +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} + "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 preprocessor definitions for the application ID. +add_definitions(-DAPPLICATION_ID="${APPLICATION_ID}") + +# Add dependency libraries. Add any application-specific dependencies here. +target_link_libraries(${BINARY_NAME} PRIVATE flutter) +target_link_libraries(${BINARY_NAME} PRIVATE PkgConfig::GTK) + +target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}") diff --git a/example/linux/runner/main.cc b/example/linux/runner/main.cc new file mode 100644 index 0000000..e7c5c54 --- /dev/null +++ b/example/linux/runner/main.cc @@ -0,0 +1,6 @@ +#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/example/linux/runner/my_application.cc b/example/linux/runner/my_application.cc new file mode 100644 index 0000000..448e8c8 --- /dev/null +++ b/example/linux/runner/my_application.cc @@ -0,0 +1,148 @@ +#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) + +// Called when first Flutter frame received. +static void first_frame_cb(MyApplication* self, FlView* view) { + gtk_widget_show(gtk_widget_get_toplevel(GTK_WIDGET(view))); +} + +// 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, "holo_shiny_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, "holo_shiny_example"); + } + + gtk_window_set_default_size(window, 1280, 720); + + 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); + GdkRGBA background_color; + // Background defaults to black, override it here if necessary, e.g. #00000000 + // for transparent. + gdk_rgba_parse(&background_color, "#000000"); + fl_view_set_background_color(view, &background_color); + gtk_widget_show(GTK_WIDGET(view)); + gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(view)); + + // Show the window when Flutter renders. + // Requires the view to be realized so we can start rendering. + g_signal_connect_swapped(view, "first-frame", G_CALLBACK(first_frame_cb), + self); + gtk_widget_realize(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() { + // Set the program name to the application ID, which helps various systems + // like GTK and desktop environments map this running application to its + // corresponding .desktop file. This ensures better integration by allowing + // the application to be recognized beyond its binary name. + g_set_prgname(APPLICATION_ID); + + return MY_APPLICATION(g_object_new(my_application_get_type(), + "application-id", APPLICATION_ID, "flags", + G_APPLICATION_NON_UNIQUE, nullptr)); +} diff --git a/example/linux/runner/my_application.h b/example/linux/runner/my_application.h new file mode 100644 index 0000000..db16367 --- /dev/null +++ b/example/linux/runner/my_application.h @@ -0,0 +1,21 @@ +#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/example/pubspec.yaml b/example/pubspec.yaml new file mode 100644 index 0000000..d5a6bf5 --- /dev/null +++ b/example/pubspec.yaml @@ -0,0 +1,23 @@ +name: holo_shiny_example +description: Example app for holo_shiny. +publish_to: none + +environment: + sdk: ^3.6.0 + flutter: ">=3.22.0" + +dependencies: + flutter: + sdk: flutter + holo_shiny: + path: .. + +dev_dependencies: + flutter_test: + sdk: flutter + flutter_lints: ^6.0.0 + +flutter: + uses-material-design: true + assets: + - assets/ diff --git a/lib/holo_shiny.dart b/lib/holo_shiny.dart new file mode 100644 index 0000000..e1cfbd4 --- /dev/null +++ b/lib/holo_shiny.dart @@ -0,0 +1,3 @@ +export 'src/sensor_tilt_controller.dart'; +export 'src/shiny_controller.dart'; +export 'src/shiny_widget.dart'; diff --git a/lib/main.dart b/lib/main.dart new file mode 100644 index 0000000..a725658 --- /dev/null +++ b/lib/main.dart @@ -0,0 +1,20 @@ +import 'package:flutter/material.dart'; + +void main() { + runApp(const MainApp()); +} + +class MainApp extends StatelessWidget { + const MainApp({super.key}); + + @override + Widget build(BuildContext context) { + return const MaterialApp( + home: Scaffold( + body: Center( + child: Text('Hello World!'), + ), + ), + ); + } +} diff --git a/lib/src/sensor_tilt_controller.dart b/lib/src/sensor_tilt_controller.dart new file mode 100644 index 0000000..305e504 --- /dev/null +++ b/lib/src/sensor_tilt_controller.dart @@ -0,0 +1,122 @@ +import 'dart:async'; + +import 'package:flutter/foundation.dart'; +import 'package:flutter/services.dart'; +import 'package:sensors_plus/sensors_plus.dart'; + +/// Produces a normalized tilt stream from gyroscope and accelerometer data. +class SensorTiltController { + /// Creates and starts the sensor controller. + SensorTiltController({ + this.alpha = 0.98, + this.maxTiltRadians = 0.5, + }) : _invAlpha = 1.0 - alpha { + _start(); + } + + /// Complementary filter blending coefficient. + final double alpha; + + /// Cached inverse alpha to avoid repetitive subtractions. + final double _invAlpha; + + /// Physical angle that maps to normalized magnitude `1.0`. + final double maxTiltRadians; + + final StreamController _controller = + StreamController.broadcast(); + + // High-performance timing for tight physics loops + final Stopwatch _stopwatch = Stopwatch(); + + StreamSubscription? _gyroSub; + StreamSubscription? _accelSub; + + double _roll = 0.0; + double _pitch = 0.0; + double _accelRoll = 0.0; + double _accelPitch = 0.0; + int? _lastMicroseconds; + + /// The normalized tilt stream. + Stream get stream => _controller.stream; + + void _start() { + if (!_supportsSensorStreams) return; + + _stopwatch.start(); + + try { + _gyroSub = gyroscopeEventStream().listen( + _onGyro, + onError: (_) {}, + cancelOnError: false, + ); + } on MissingPluginException { + _gyroSub = null; + } + + try { + _accelSub = accelerometerEventStream().listen( + _onAccel, + onError: (_) {}, + cancelOnError: false, + ); + } on MissingPluginException { + _accelSub = null; + } + } + + bool get _supportsSensorStreams { + if (kIsWeb) return true; + switch (defaultTargetPlatform) { + case TargetPlatform.android: + case TargetPlatform.iOS: + return true; + case TargetPlatform.fuchsia: + case TargetPlatform.linux: + case TargetPlatform.macOS: + case TargetPlatform.windows: + return false; + } + } + + void _onGyro(GyroscopeEvent event) { + final int nowMicros = _stopwatch.elapsedMicroseconds; + final int? last = _lastMicroseconds; + _lastMicroseconds = nowMicros; + + if (last == null) return; + + final double dt = (nowMicros - last) / 1000000.0; + if (dt <= 0.0) return; + + final double gyroRoll = _roll + (event.y * dt); + final double gyroPitch = _pitch + (event.x * dt); + + _roll = (alpha * gyroRoll) + (_invAlpha * _accelRoll); + _pitch = (alpha * gyroPitch) + (_invAlpha * _accelPitch); + + _controller.add(_normalizedOffset()); + } + + void _onAccel(AccelerometerEvent event) { + const double g = 9.81; + _accelRoll = (event.x / g).clamp(-1.0, 1.0); + _accelPitch = (event.y / g).clamp(-1.0, 1.0); + } + + Offset _normalizedOffset() { + final double dx = (_roll / maxTiltRadians).clamp(-1.0, 1.0); + final double dy = (_pitch / maxTiltRadians).clamp(-1.0, 1.0); + return Offset(dx, dy); + } + + /// Stops sensor streams and releases resources. + Future dispose() async { + _stopwatch.stop(); + await _gyroSub?.cancel(); + await _accelSub?.cancel(); + await _controller.close(); + } +} diff --git a/lib/src/shiny_controller.dart b/lib/src/shiny_controller.dart new file mode 100644 index 0000000..8a01542 --- /dev/null +++ b/lib/src/shiny_controller.dart @@ -0,0 +1,47 @@ +import 'dart:async'; + +import 'package:flutter/material.dart'; + +import 'sensor_tilt_controller.dart'; + +/// Optional controller for providing tilt input to [Shiny] widgets. +/// +/// By default, no stream is emitted. Set [useSensor] to true to use built-in +/// motion sensors, or provide [tiltStream] to fully control tilt externally. +class ShinyController { + /// Creates a [ShinyController]. + /// + /// If [tiltStream] is provided, it overrides the built-in sensor stream. + ShinyController({ + this.useSensor = false, + this.tiltStream, + }) { + if (tiltStream == null && useSensor) { + _sensorController = SensorTiltController(); + } + } + + /// Enables internal sensor-based tilt when [tiltStream] is null. + final bool useSensor; + + /// Optional external tilt stream in normalized `[-1.0, 1.0]` space. + final Stream? tiltStream; + + SensorTiltController? _sensorController; + + /// The effective tilt stream consumed by [Shiny]. + Stream get stream { + if (tiltStream != null) { + return tiltStream!; + } + if (_sensorController != null) { + return _sensorController!.stream; + } + return const Stream.empty(); + } + + /// Disposes internally-owned resources. + Future dispose() async { + await _sensorController?.dispose(); + } +} diff --git a/lib/src/shiny_widget.dart b/lib/src/shiny_widget.dart new file mode 100644 index 0000000..615f1cf --- /dev/null +++ b/lib/src/shiny_widget.dart @@ -0,0 +1,490 @@ +import 'dart:async'; +import 'dart:ui' as ui; + +import 'package:flutter/material.dart'; +import 'package:flutter/scheduler.dart'; + +import 'shiny_controller.dart'; + +enum HolographStyle { + holographicSilver, + crackedIce, + silverMosaic, + superGoldVinyl, +} + +enum SparkleShapeKind { + star, + rectangle, + polygon, + randomPolygon, + confetti, +} + +class SparkleShapeSpec { + const SparkleShapeSpec._({ + required this.kind, + required this.primary, + required this.secondary, + required this.tertiary, + }); + + static const SparkleShapeSpec eightPointStar = SparkleShapeSpec._( + kind: SparkleShapeKind.star, + primary: 8.0, + secondary: 0.42, + tertiary: 0.0, + ); + + static const SparkleShapeSpec fivePointStar = SparkleShapeSpec._( + kind: SparkleShapeKind.star, + primary: 5.0, + secondary: 0.42, + tertiary: 0.0, + ); + + static const SparkleShapeSpec rectangle = SparkleShapeSpec._( + kind: SparkleShapeKind.rectangle, + primary: 0.24, + secondary: 0.055, + tertiary: 1.0, + ); + + static const SparkleShapeSpec diamond = SparkleShapeSpec._( + kind: SparkleShapeKind.polygon, + primary: 4.0, + secondary: 1.0, + tertiary: 0.78539816339, + ); + + static const SparkleShapeSpec hexagon = SparkleShapeSpec._( + kind: SparkleShapeKind.polygon, + primary: 6.0, + secondary: 1.0, + tertiary: 0.0, + ); + + static const SparkleShapeSpec randomPolygon = SparkleShapeSpec._( + kind: SparkleShapeKind.randomPolygon, + primary: 0.0, + secondary: 0.0, + tertiary: 0.0, + ); + + static const SparkleShapeSpec confetti = SparkleShapeSpec._( + kind: SparkleShapeKind.confetti, + primary: 0.34, + secondary: 0.045, + tertiary: 1.0, + ); + + factory SparkleShapeSpec.customStar( + {int points = 8, double innerRatio = 0.42}) { + return SparkleShapeSpec._( + kind: SparkleShapeKind.star, + primary: points.toDouble().clamp(4.0, 12.0), + secondary: innerRatio.clamp(0.15, 0.85), + tertiary: 0.0, + ); + } + + factory SparkleShapeSpec.customPolygon( + {int sides = 6, double aspectRatio = 1.0, double rotation = 0.0}) { + return SparkleShapeSpec._( + kind: SparkleShapeKind.polygon, + primary: sides.toDouble().clamp(3.0, 10.0), + secondary: aspectRatio.clamp(0.4, 2.0), + tertiary: rotation, + ); + } + + factory SparkleShapeSpec.customRectangle( + {double halfWidth = 0.24, + double halfHeight = 0.055, + double rotationJitter = 1.0}) { + return SparkleShapeSpec._( + kind: SparkleShapeKind.rectangle, + primary: halfWidth.clamp(0.05, 0.45), + secondary: halfHeight.clamp(0.02, 0.30), + tertiary: rotationJitter.clamp(0.0, 1.0), + ); + } + + factory SparkleShapeSpec.customConfetti( + {double length = 0.34, + double thickness = 0.045, + double rotationJitter = 1.0}) { + return SparkleShapeSpec._( + kind: SparkleShapeKind.confetti, + primary: length.clamp(0.08, 0.48), + secondary: thickness.clamp(0.01, 0.14), + tertiary: rotationJitter.clamp(0.0, 1.0), + ); + } + + final SparkleShapeKind kind; + final double primary; + final double secondary; + final double tertiary; +} + +class Shiny extends StatefulWidget { + const Shiny({ + super.key, + required this.child, + this.controller, + this.tilt, + this.prismatic = 0.8, + this.sparkle = 0.8, + this.specular = 0.8, + this.diffraction = 0.8, + this.sparkleShape = SparkleShapeSpec.eightPointStar, + this.style = HolographStyle.crackedIce, + this.blendMode = BlendMode.screen, + this.enableShader = true, + }); + + final Widget child; + final ShinyController? controller; + final Offset? tilt; + final double prismatic; + final double sparkle; + final double specular; + final double diffraction; + final SparkleShapeSpec sparkleShape; + final HolographStyle style; + final BlendMode blendMode; + final bool enableShader; + + @override + State createState() => _ShinyState(); +} + +class _ShinyState extends State with TickerProviderStateMixin { + static Future? _programFuture; + + ui.FragmentShader? _shader; + StreamSubscription? _tiltSub; + late final Ticker _ticker; + + double _time = 0.0; + Offset _tilt = Offset.zero; + + @override + void initState() { + super.initState(); + _ticker = createTicker((Duration elapsed) { + if (!mounted || _shader == null) return; + setState(() { + _time = elapsed.inMicroseconds / 1000000.0; + }); + }); + + _attachController(); + if (widget.enableShader) { + _loadShader(); + _ticker.start(); + } + } + + @override + void didUpdateWidget(covariant Shiny oldWidget) { + super.didUpdateWidget(oldWidget); + if (oldWidget.controller != widget.controller || + oldWidget.tilt != widget.tilt) { + _tiltSub?.cancel(); + _attachController(); + } + if (oldWidget.enableShader != widget.enableShader) { + if (widget.enableShader) { + if (_shader == null) _loadShader(); + _ticker.start(); + } else { + _ticker.stop(); + } + } + } + + Future _loadShader() async { + try { + _programFuture ??= _loadProgram(); + final ui.FragmentProgram program = await _programFuture!; + if (!mounted) return; + setState(() { + _shader = program.fragmentShader(); + }); + } catch (_) { + // Keep rendering without shader when runtime effects are unavailable. + } + } + + Future _loadProgram() async { + try { + return await ui.FragmentProgram.fromAsset('shaders/shiny_card.frag'); + } catch (_) { + return await ui.FragmentProgram.fromAsset( + 'packages/holo_shiny/shaders/shiny_card.frag'); + } + } + + void _attachController() { + if (widget.tilt != null) return; + final ShinyController? controller = widget.controller; + if (controller == null) return; + + _tiltSub = controller.stream.listen((Offset value) { + if (!mounted || widget.tilt != null) return; + final clamped = _clampOffset(value); + if (_tilt != clamped) { + setState(() { + _tilt = clamped; + }); + } + }); + } + + @override + void dispose() { + _ticker.dispose(); + _tiltSub?.cancel(); + _shader?.dispose(); + super.dispose(); + } + + ui.Shader _configureShader(Rect bounds) { + final Offset effectiveTilt = _clampOffset(widget.tilt ?? _tilt); + final ui.FragmentShader shader = _shader!; + shader + ..setFloat(0, bounds.width) + ..setFloat(1, bounds.height) + ..setFloat(2, effectiveTilt.dx) + ..setFloat(3, effectiveTilt.dy) + ..setFloat(4, _time) + ..setFloat(5, widget.prismatic) + ..setFloat(6, widget.sparkle) + ..setFloat(7, widget.specular) + ..setFloat(8, widget.diffraction) + ..setFloat(9, widget.style.index.toDouble()) + ..setFloat(10, widget.sparkleShape.kind.index.toDouble()) + ..setFloat(11, widget.sparkleShape.primary) + ..setFloat(12, widget.sparkleShape.secondary) + ..setFloat(13, widget.sparkleShape.tertiary); + return shader; + } + + @override + Widget build(BuildContext context) { + if (!widget.enableShader || _shader == null) return widget.child; + + return ShaderMask( + blendMode: widget.blendMode, + shaderCallback: _configureShader, + child: widget.child, + ); + } + + Offset _clampOffset(Offset value) { + return Offset(value.dx.clamp(-1.0, 1.0), value.dy.clamp(-1.0, 1.0)); + } +} + +class ShinyCard extends StatefulWidget { + const ShinyCard({ + super.key, + this.background, + this.foreground, + this.shape = const RoundedRectangleBorder( + borderRadius: BorderRadius.all(Radius.circular(16))), + this.width = 300, + this.height = 420, + this.controller, + this.prismatic = 0.8, + this.sparkle = 0.8, + this.specular = 0.8, + this.diffraction = 0.8, + this.sparkleShape = SparkleShapeSpec.eightPointStar, + this.style = HolographStyle.crackedIce, + this.enableShader = true, + }); + + final Widget? background; + final Widget? foreground; + final ShapeBorder shape; + final double width; + final double height; + final ShinyController? controller; + final double prismatic; + final double sparkle; + final double specular; + final double diffraction; + final SparkleShapeSpec sparkleShape; + final HolographStyle style; + final bool enableShader; + + @override + State createState() => _ShinyCardState(); +} + +class _ShinyCardState extends State + with SingleTickerProviderStateMixin { + static const ValueKey transformKey = + ValueKey('holo_shiny.card.transform'); + + StreamSubscription? _tiltSub; + late final AnimationController _spring; + + // State segregation: prevents total widget rebuilds during drag events + late final ValueNotifier _tiltNotifier = ValueNotifier(Offset.zero); + late final StreamController _internalTiltStream = + StreamController.broadcast(); + late final ShinyController _internalShinyController = + ShinyController(tiltStream: _internalTiltStream.stream); + + Offset _sensorTilt = Offset.zero; + Offset _dragTilt = Offset.zero; + Offset _dragTiltAtRelease = Offset.zero; + bool _isDragging = false; + bool _isReturning = false; + + void _updateTilt() { + final tilt = (_isDragging || _isReturning) ? _dragTilt : _sensorTilt; + if (_tiltNotifier.value != tilt) { + _tiltNotifier.value = tilt; + if (!_internalTiltStream.isClosed) { + _internalTiltStream.add(tilt); + } + } + } + + @override + void initState() { + super.initState(); + _spring = AnimationController( + vsync: this, duration: const Duration(milliseconds: 850)) + ..addListener(() { + if (!mounted || !_isReturning) return; + final double t = Curves.elasticOut.transform(_spring.value); + _dragTilt = + Offset.lerp(_dragTiltAtRelease, Offset.zero, t) ?? Offset.zero; + _updateTilt(); + }) + ..addStatusListener((AnimationStatus status) { + if (status == AnimationStatus.completed) { + _isReturning = false; + _updateTilt(); + } + }); + + _attachController(); + } + + @override + void didUpdateWidget(covariant ShinyCard oldWidget) { + super.didUpdateWidget(oldWidget); + if (oldWidget.controller != widget.controller) { + _tiltSub?.cancel(); + _attachController(); + } + } + + void _attachController() { + final ShinyController? controller = widget.controller; + if (controller == null) return; + + _tiltSub = controller.stream.listen((Offset value) { + if (!mounted || _isDragging || _isReturning) return; + _sensorTilt = _clampOffset(value); + _updateTilt(); + }); + } + + void _onPanUpdate(DragUpdateDetails details) { + _isDragging = true; + _isReturning = false; + _spring.stop(); + + final double dx = (details.delta.dx / widget.width) * 2.0; + final double dy = (details.delta.dy / widget.height) * 2.0; + + _dragTilt = _clampOffset(_dragTilt + Offset(dx, dy)); + _updateTilt(); + } + + void _onPanEnd(DragEndDetails details) { + _isDragging = false; + _isReturning = true; + _dragTiltAtRelease = _dragTilt; + _spring + ..reset() + ..forward(); + } + + @override + void dispose() { + _tiltSub?.cancel(); + _spring.dispose(); + _tiltNotifier.dispose(); + _internalTiltStream.close(); + _internalShinyController.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + final Widget base = widget.background ?? + const ColoredBox(color: Color(0xFF212121), child: SizedBox.expand()); + + // Isolate the static tree structure so it never rebuilds when tilted + final Widget staticChild = ClipPath( + clipper: ShapeBorderClipper(shape: widget.shape), + child: SizedBox( + width: widget.width, + height: widget.height, + child: Stack( + fit: StackFit.expand, + children: [ + Shiny( + enableShader: widget.enableShader, + controller: _internalShinyController, + tilt: null, // Managed natively via the internal stream controller + prismatic: widget.prismatic, + sparkle: widget.sparkle, + specular: widget.specular, + diffraction: widget.diffraction, + sparkleShape: widget.sparkleShape, + style: widget.style, + child: base, + ), + if (widget.foreground != null) widget.foreground!, + ], + ), + ), + ); + + return GestureDetector( + onPanUpdate: _onPanUpdate, + onPanEnd: _onPanEnd, + child: ValueListenableBuilder( + valueListenable: _tiltNotifier, + builder: (context, tilt, child) { + final Matrix4 transform = Matrix4.identity() + ..setEntry(3, 2, 0.001) + ..rotateX(-tilt.dy * 0.3) + ..rotateY(tilt.dx * 0.3); + + return Transform( + key: transformKey, + alignment: Alignment.center, + transform: transform, + child: child, + ); + }, + child: staticChild, + ), + ); + } + + Offset _clampOffset(Offset value) { + return Offset(value.dx.clamp(-1.0, 1.0), value.dy.clamp(-1.0, 1.0)); + } +} diff --git a/pubspec.yaml b/pubspec.yaml new file mode 100644 index 0000000..4457941 --- /dev/null +++ b/pubspec.yaml @@ -0,0 +1,26 @@ +name: holo_shiny +description: Holographic shiny card widget powered by GLSL fragment shaders. +version: 0.1.0 +publish_to: none +repository: https://example.com/your-org/holo_shiny +homepage: https://example.com/your-org/holo_shiny +issue_tracker: https://example.com/your-org/holo_shiny/issues +documentation: https://example.com/your-org/holo_shiny/docs + +environment: + sdk: ^3.6.0 + flutter: ">=3.22.0" + +dependencies: + flutter: + sdk: flutter + sensors_plus: ^7.0.0 + +dev_dependencies: + flutter_test: + sdk: flutter + flutter_lints: ^6.0.0 + +flutter: + shaders: + - shaders/shiny_card.frag diff --git a/shaders/shiny_card.frag b/shaders/shiny_card.frag new file mode 100644 index 0000000..2c63131 --- /dev/null +++ b/shaders/shiny_card.frag @@ -0,0 +1,378 @@ +#version 460 core +#include + +out vec4 fragColor; + +uniform vec2 uSize; +uniform vec2 uTilt; +uniform float uTime; +uniform float uPrismatic; +uniform float uSparkle; +uniform float uSpecular; +uniform float uDiffraction; +uniform float uStyle; +uniform float uSparkleShapeKind; +uniform float uSparklePrimary; +uniform float uSparkleSecondary; +uniform float uSparkleTertiary; + +#define TWO_PI 6.28318530718 + +// Precomputed rotation matrices to avoid expensive runtime sin/cos calculations +#define ROT_0_78 mat2( 0.71091, 0.70328, -0.70328, 0.71091) +#define ROT_M0_5 mat2( 0.87758, -0.47943, 0.47943, 0.87758) +#define ROT_1_2 mat2( 0.36236, 0.93204, -0.93204, 0.36236) + +float hash(vec2 p) { + vec3 p3 = fract(vec3(p.xyx) * 0.1031); + p3 += dot(p3, p3.yzx + 33.33); + return fract((p3.x + p3.y) * p3.z); +} + +float noise(vec2 p) { + vec2 i = floor(p); + vec2 f = fract(p); + vec2 u = f * f * (3.0 - 2.0 * f); + + float a = hash(i); + float b = hash(i + vec2(1.0, 0.0)); + float c = hash(i + vec2(0.0, 1.0)); + float d = hash(i + vec2(1.0, 1.0)); + + return mix(mix(a, b, u.x), mix(c, d, u.x), u.y); +} + +vec3 hsv2rgb(float h, float s, float v) { + vec3 k = vec3(1.0, 2.0 / 3.0, 1.0 / 3.0); + vec3 p = abs(fract(vec3(h) + k) * 6.0 - 3.0); + return v * mix(vec3(1.0), clamp(p - 1.0, 0.0, 1.0), s); +} + +vec3 rainbow(float phase, float saturation, float value) { + return hsv2rgb(fract(phase), saturation, value); +} + +float sdBox(vec2 p, vec2 b) { + vec2 d = abs(p) - b; + return length(max(d, 0.0)) + min(max(d.x, d.y), 0.0); +} + +float sdRegularPolygon(vec2 p, float sides, float radius) { + float angle = atan(p.y, p.x); + float sector = TWO_PI / sides; + return cos(floor(0.5 + angle / sector) * sector - angle) * length(p) - radius; +} + +float sparkleStarMask(vec2 p, float points, float innerRatio) { + float angle = atan(p.y, p.x); + float radius = dot(p, p); // Optimized: Use squared distance to delay sqrt + float spikes = 0.5 + 0.5 * cos(angle * points); + float starRadius = mix(0.34 * innerRatio, 0.34, pow(spikes, 1.4)); + return smoothstep(0.0009, -0.0009, radius - (starRadius * starRadius)); +} + +vec2 rotatePoint(vec2 p, float rotation) { + float c = cos(rotation); + float s = sin(rotation); + return vec2(c * p.x - s * p.y, s * p.x + c * p.y); +} + +float sparkleRectangleMask(vec2 p, float halfWidth, float halfHeight, float rotation) { + vec2 q = rotatePoint(p, rotation); + float body = sdBox(q, vec2(halfWidth, halfHeight)); + float bevel = sdBox(q, vec2(halfWidth * 0.78, halfHeight * 0.78)); + float bodyMask = smoothstep(0.03, -0.03, body); + + float centerLine = 1.0 - smoothstep(0.0, halfHeight * 1.25, abs(q.y)); + float endFade = 1.0 - smoothstep(halfWidth * 0.55, halfWidth * 1.05, abs(q.x)); + float streak = centerLine * endFade; + float bevelRing = smoothstep(0.025, -0.025, body) - smoothstep(0.025, -0.025, bevel); + return clamp(bodyMask * (0.58 + 0.42 * streak) + bevelRing * 0.25, 0.0, 1.0); +} + +float sparklePolygonMask(vec2 p, float sides, float aspectRatio, float rotation) { + vec2 q = rotatePoint(p, rotation); + q.x /= aspectRatio; + float poly = sdRegularPolygon(q, sides, 0.26); + return smoothstep(0.03, -0.03, poly); +} + +float sparkleShapeMask(vec2 p, vec2 id) { + float randomRotation = hash(id + 5.1) * TWO_PI; + if (uSparkleShapeKind < 0.5) { + return sparkleStarMask(p, uSparklePrimary, uSparkleSecondary); + } + if (uSparkleShapeKind < 1.5) { + return sparkleRectangleMask(p, uSparklePrimary, uSparkleSecondary, randomRotation * uSparkleTertiary); + } + if (uSparkleShapeKind < 2.5) { + return sparklePolygonMask(p, uSparklePrimary, uSparkleSecondary, uSparkleTertiary); + } + if (uSparkleShapeKind < 3.5) { + float sides = 5.0 + floor(hash(id + 9.4) * 4.0); + float aspect = 0.7 + hash(id + 13.1) * 0.7; + return sparklePolygonMask(p, sides, aspect, randomRotation); + } + return sparkleRectangleMask(p, uSparklePrimary, uSparkleSecondary, randomRotation * uSparkleTertiary); +} + +vec3 styleHolographicSilver(vec2 uv, vec2 tilt, float time) { + vec2 p = uv * 2.0 - 1.0; + float flowA = noise(uv * 3.5 + vec2(time * 0.03, -time * 0.02)); + float flowB = noise(uv * 7.0 + vec2(-time * 0.02, time * 0.03)); + vec2 warp = p + 0.25 * vec2(flowA - 0.5, flowB - 0.5); + float ribbon = sin(dot(warp, vec2(6.5, 2.8)) + flowA * 5.0 + dot(tilt, vec2(2.2, -1.7))); + float plume = sin(length(warp + vec2(flowB - 0.5, flowA - 0.5)) * 9.0 - tilt.x * 3.0 + time * 0.2); + float phase = flowA * 1.8 + ribbon * 0.28 + plume * 0.22 + time * 0.03; + + vec3 holo = rainbow(phase, 0.72, 1.0); + float blend = smoothstep(-0.65, 0.95, ribbon + plume * 0.55); + vec3 silver = vec3(0.62, 0.65, 0.70) * (0.85 + 0.15 * flowB); + + return mix(silver, holo, 0.65 * blend); +} + +vec3 styleCrackedIce(vec2 uv, vec2 tilt, float time) { + float maxZ = -999.0; + vec2 bestSlope = vec2(0.0); + float bestHash = 0.0; + float bestEdge = 1.0; + + vec2 warp = vec2(sin(uv.y * 10.0), cos(uv.x * 10.0)) * 0.05; + vec2 baseUV = uv + warp; + + // --- LAYER 1 --- + vec2 p1 = baseUV * 12.0; + vec2 id1 = floor(p1); + vec2 f1 = fract(p1) - 0.5; + vec2 slope1 = vec2(hash(id1 + 1.2), hash(id1 + 1.3)) * 2.0 - 1.0; + float z1 = dot(f1, slope1) * 3.5; + if (z1 > maxZ) { + maxZ = z1; bestSlope = slope1; bestHash = hash(id1 + 1.1); bestEdge = min(0.5 - abs(f1.x), 0.5 - abs(f1.y)); + } + + // --- LAYER 2 (Optimized Rotation) --- + vec2 p2 = (ROT_0_78 * baseUV) * 15.0; + vec2 id2 = floor(p2); + vec2 f2 = fract(p2) - 0.5; + vec2 slope2 = vec2(hash(id2 + 2.2), hash(id2 + 2.3)) * 2.0 - 1.0; + float z2 = 0.8 + dot(f2, slope2) * 3.5; + if (z2 > maxZ) { + maxZ = z2; bestSlope = slope2; bestHash = hash(id2 + 2.1); bestEdge = min(0.5 - abs(f2.x), 0.5 - abs(f2.y)); + } + + // --- LAYER 3 (Optimized Rotation) --- + vec2 p3 = (ROT_M0_5 * baseUV) * 18.0; + vec2 id3 = floor(p3); + vec2 f3 = fract(p3) - 0.5; + vec2 slope3 = vec2(hash(id3 + 3.2), hash(id3 + 3.3)) * 2.0 - 1.0; + float z3 = 1.6 + dot(f3, slope3) * 3.5; + if (z3 > maxZ) { + maxZ = z3; bestSlope = slope3; bestHash = hash(id3 + 3.1); bestEdge = min(0.5 - abs(f3.x), 0.5 - abs(f3.y)); + } + + // --- LAYER 4 (Optimized Rotation) --- + vec2 p4 = (ROT_1_2 * baseUV) * 21.0; + vec2 id4 = floor(p4); + vec2 f4 = fract(p4) - 0.5; + vec2 slope4 = vec2(hash(id4 + 4.2), hash(id4 + 4.3)) * 2.0 - 1.0; + float z4 = 2.4 + dot(f4, slope4) * 3.5; + if (z4 > maxZ) { + maxZ = z4; bestSlope = slope4; bestHash = hash(id4 + 4.1); bestEdge = min(0.5 - abs(f4.x), 0.5 - abs(f4.y)); + } + + // --- VIBRANT COLOR OPTICS --- + float alignment = dot(tilt, normalize(bestSlope + vec2(0.001))); + float phase = dot(uv, vec2(0.6, -0.4)) + time * 0.05 + bestHash * 0.6 + alignment * 0.5; + float saturation = 0.7 + 0.3 * hash(vec2(bestHash, 6.1)); + vec3 baseColor = rainbow(phase, saturation, 1.0); + + float lightCycle = sin(alignment * 4.0 + bestHash * TWO_PI + time * 0.15); + float ambient = 0.15 + 0.25 * max(0.0, lightCycle); + vec3 finalColor = baseColor * ambient; + float flash = pow(max(0.0, lightCycle), 5.0); + finalColor += mix(baseColor, vec3(1.0, 0.95, 0.85), 0.6) * flash * 0.55; + finalColor += baseColor * smoothstep(0.05, 0.0, bestEdge) * flash * 0.4; + + return finalColor; +} + +vec3 styleSilverMosaic(vec2 uv, vec2 tilt, float time) { + // Setup grid - Scaled up 300% (18.0 -> 6.0) + vec2 g = uv * 6.0; + vec2 id = floor(g); + + // Center coordinates around 0.0 for the radial math + vec2 f = fract(g) - 0.5; + + // Real foil sheets often alternate the grain of the squares to catch light from all angles. + if (mod(id.x + id.y, 2.0) > 0.5) { + f = vec2(-f.y, f.x); + } + + // Get the radial vector (pointing outward from the center of the square) + vec2 radialDir = normalize(f + vec2(0.0001)); + + // Calculate the simulated light direction based on device tilt. + vec2 lightDir = normalize(tilt + vec2(0.001)); + + // --- THE OPTICS --- + // A radial highlight occurs where the radial vector aligns with the light vector. + float alignment = abs(dot(radialDir, lightDir)); + + // Raise to a high power to narrow the reflection into a sharp, focused beam + float highlight = pow(alignment, 12.0); + + // --- THE DIFFRACTION (Rainbow) --- + float angleDiff = acos(alignment); + + // 2D cross product to find which side of the highlight we are on + float side = sign(radialDir.x * lightDir.y - radialDir.y * lightDir.x); + + // Phase shift based on tilt magnitude and time. + float basePhase = length(tilt) * 2.5 + time * 0.1; + + // Calculate the final color phase. + float phase = basePhase + side * angleDiff * 1.8; + vec3 holoColor = rainbow(phase, 0.85, 1.0); + + // Add a pure white "specular core" where alignment is absolutely perfect + vec3 core = vec3(1.0) * smoothstep(0.98, 1.0, alignment); + + // Base foil material + vec3 foilBase = vec3(0.25, 0.27, 0.30); + + // Combine the light components + vec3 finalColor = foilBase + (holoColor * highlight * 1.5) + (core * 0.8); + + // --- BORDERS AND DEPTH --- + // Crisp borders between the squares + float edgeX = 0.5 - abs(f.x); + float edgeY = 0.5 - abs(f.y); + + // Tightened the border width to compensate for the larger tile size + float border = smoothstep(0.0, 0.015, min(edgeX, edgeY)); + + // Add a subtle darkening toward the edges of the tiles + float dist = length(f); + finalColor *= mix(0.7, 1.0, 1.0 - smoothstep(0.0, 0.5, dist) * 0.3); + + return clamp(finalColor * border, 0.0, 1.0); +} + +vec3 styleSuperGoldVinyl(vec2 uv, vec2 tilt, float time) { + vec2 g = uv * 60.0; + vec2 staggered = vec2(g.x + 0.5 * mod(floor(g.y), 2.0), g.y); + vec2 f = fract(staggered) - 0.5; + + // Optimized: Use dot product for squared distance to avoid expensive sqrt/length. + // Original smoothstep values (0.42, 0.10) squared become (0.1764, 0.0100) + // Original smoothstep values (0.45, 0.18) squared become (0.2025, 0.0324) + float d2 = dot(f, f); + float dotMask = smoothstep(0.1764, 0.01, d2); + float emboss = smoothstep(0.2025, 0.0324, d2); + + float sheen = 0.5 + 0.5 * sin(dot(uv, vec2(18.0, -6.0)) + noise(uv * 6.0) * 2.5 + dot(tilt, vec2(2.4, 1.8)) * 2.0 + time * 0.2); + vec3 gold = vec3(0.84, 0.70, 0.24); + vec3 warm = vec3(1.0, 0.88, 0.42); + vec3 shadow = vec3(0.18, 0.14, 0.05); + + return gold * (0.75 + 0.25 * sheen) + warm * dotMask * 0.28 + shadow * emboss * 0.08; +} + +void main() { + // Standard normalized UVs [0.0 to 1.0] for macro lighting, tilt, and glare + vec2 uv = FlutterFragCoord().xy / uSize; + vec2 center = vec2(0.5, 0.5); + vec2 fromCenter = uv - center; + + // Aspect-corrected UVs for physical patterns (grid, sparkles, mosaics) + // Dividing by the maximum dimension ensures squares remain squares. + float maxDim = max(uSize.x, uSize.y); + vec2 aspectUV = FlutterFragCoord().xy / maxDim; + + float tiltMag = length(uTilt); + float safeTiltMag = max(tiltMag, 0.001); + vec2 tiltDir = uTilt / safeTiltMag; + + // The highlight uses the stretched UV so the glare covers the whole widget nicely + float highlightDistance = length(uv - (center + (uTilt * 0.35))); + float specularMask = pow(max(0.0, 1.0 - highlightDistance * 2.6), 3.2); + vec3 specular = vec3(specularMask) * uSpecular * (0.4 + 0.6 * tiltMag); + + bool isCrackedIce = uStyle >= 0.5 && uStyle < 1.5; + float sparkleGridScale = isCrackedIce ? 7.0 : 18.0; + + // ---> USE aspectUV HERE so sparkles are drawn perfectly proportionally + vec2 sparkleGrid = aspectUV * sparkleGridScale; + vec2 grid = floor(sparkleGrid); + + float rarityThreshold = isCrackedIce ? 0.965 : 0.83; + float rarity = step(rarityThreshold, hash(grid + 0.31)); + + vec3 sparkle = vec3(0.0); + if (rarity > 0.0) { + vec2 cell = fract(sparkleGrid) - 0.5; + float sparkleHash = hash(grid); + vec2 sparkleNormal = normalize(vec2(sparkleHash * 2.0 - 1.0, hash(grid + 19.7) * 2.0 - 1.0)); + float alignment = max(0.0, dot(tiltDir, sparkleNormal)); + + if (alignment > 0.0) { + float twinkle = 0.5 + 0.5 * sin(uTime * 5.5 + sparkleHash * TWO_PI); + float shapeMask = 0.0; + + if (isCrackedIce) { + float sides = 5.0 + floor(hash(grid + 9.4) * 4.0); + float aspect = 0.75 + hash(grid + 13.1) * 0.55; + shapeMask = sparklePolygonMask(cell, sides, aspect, hash(grid + 5.1) * TWO_PI); + } else { + shapeMask = sparkleShapeMask(cell, grid); + } + + float sparklePower = isCrackedIce ? 4.8 : 3.2; + float sparkleIntensity = isCrackedIce ? 0.25 : 1.0; + float sparkleChroma = isCrackedIce ? 0.20 : 0.35; + float sparkleMask = pow(alignment, sparklePower) * twinkle * rarity * shapeMask; + vec3 sparkleColor = mix(vec3(1.0), rainbow(sparkleHash + dot(uTilt, vec2(0.2, -0.15)), 0.55, 1.0), sparkleChroma); + sparkle = sparkleColor * sparkleMask * uSparkle * sparkleIntensity; + } + } + + vec3 styleBase; + // ---> USE aspectUV HERE so the foil patterns tile properly + if (uStyle < 0.5) { + styleBase = styleHolographicSilver(aspectUV, uTilt, uTime); + } else if (uStyle < 1.5) { + styleBase = styleCrackedIce(aspectUV, uTilt, uTime); + } else if (uStyle < 2.5) { + styleBase = styleSilverMosaic(aspectUV, uTilt, uTime); + } else { + styleBase = styleSuperGoldVinyl(aspectUV, uTilt, uTime); + } + + float styleLuma = dot(styleBase, vec3(0.299, 0.587, 0.114)); + vec3 chromaAdjusted = mix(vec3(styleLuma), styleBase, 0.2 + 0.8 * uPrismatic); + + // General 3D lighting normal uses the stretched UV + vec2 normal2d = normalize(fromCenter + vec2(0.001)); + float directional = 0.5 + 0.5 * dot(normal2d, tiltDir); + float tiltLighting = mix(0.86, 1.20, pow(directional, 1.2)); + chromaAdjusted *= tiltLighting; + + float microStrength = isCrackedIce ? 0.08 : 0.18; + + // ---> USE aspectUV HERE so the microscopic diffraction doesn't stretch + float microMask = 0.5 + 0.5 * sin(dot(aspectUV, vec2(137.0, 57.0)) + noise(aspectUV * 14.0) * 4.0 + dot(uTilt, vec2(9.0, 4.0)) * 2.0); + vec3 microShimmer = rainbow(noise(aspectUV * 10.0) + dot(uTilt, vec2(0.4, -0.3)) * 0.3, 0.65, 1.0) * microMask * uDiffraction * microStrength; + + vec3 styleColor = chromaAdjusted + microShimmer + (specular * 0.15) + sparkle; + vec3 mappedColor = styleColor / (1.0 + styleColor * 0.3); + float luma = dot(mappedColor, vec3(0.299, 0.587, 0.114)); + vec3 vibrantColor = mix(vec3(luma), mappedColor, 1.4); + + float foilBrightness = dot(vibrantColor, vec3(0.333)); + float alpha = clamp(foilBrightness * 0.5, 0.0, 0.35); + vec3 finalColor = clamp(vibrantColor, 0.0, 1.0); + + fragColor = vec4(finalColor * alpha, alpha); +} \ No newline at end of file diff --git a/test/shiny_controller_test.dart b/test/shiny_controller_test.dart new file mode 100644 index 0000000..94b97b3 --- /dev/null +++ b/test/shiny_controller_test.dart @@ -0,0 +1,28 @@ +import 'dart:async'; + +import 'package:flutter_test/flutter_test.dart'; +import 'package:holo_shiny/holo_shiny.dart'; + +void main() { + test('ShinyController uses external stream when provided', () async { + final StreamController source = + StreamController.broadcast(); + final ShinyController controller = + ShinyController(useSensor: true, tiltStream: source.stream); + + final Future next = controller.stream.first; + source.add(const Offset(0.5, -0.25)); + + expect(await next, const Offset(0.5, -0.25)); + + await controller.dispose(); + await source.close(); + }); + + test('ShinyController emits nothing by default', () async { + final ShinyController controller = ShinyController(); + final bool hasEvent = await controller.stream.isEmpty; + expect(hasEvent, isTrue); + await controller.dispose(); + }); +} diff --git a/test/shiny_widget_test.dart b/test/shiny_widget_test.dart new file mode 100644 index 0000000..6f394e2 --- /dev/null +++ b/test/shiny_widget_test.dart @@ -0,0 +1,153 @@ +import 'dart:async'; + +import 'package:flutter/material.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:holo_shiny/holo_shiny.dart'; + +const ValueKey _cardTransformKey = + ValueKey('holo_shiny.card.transform'); + +void main() { + test('default holograph style is crackedIce', () { + const Shiny shiny = Shiny(child: SizedBox.shrink()); + const ShinyCard shinyCard = ShinyCard(); + + expect(shiny.style, HolographStyle.crackedIce); + expect(shinyCard.style, HolographStyle.crackedIce); + }); + + test('default sparkle shape is star', () { + const Shiny shiny = Shiny(child: SizedBox.shrink()); + const ShinyCard shinyCard = ShinyCard(); + + expect(shiny.sparkleShape.kind, SparkleShapeKind.star); + expect(shiny.sparkleShape.primary, 8.0); + expect(shinyCard.sparkleShape.kind, SparkleShapeKind.star); + expect(shinyCard.sparkleShape.primary, 8.0); + }); + + test('custom sparkle factories produce expected specs', () { + final SparkleShapeSpec star = + SparkleShapeSpec.customStar(points: 7, innerRatio: 0.33); + final SparkleShapeSpec polygon = SparkleShapeSpec.customPolygon( + sides: 8, aspectRatio: 1.2, rotation: 0.4); + final SparkleShapeSpec rectangle = SparkleShapeSpec.customRectangle( + halfWidth: 0.20, halfHeight: 0.05, rotationJitter: 0.7); + + expect(star.kind, SparkleShapeKind.star); + expect(star.primary, 7.0); + expect(star.secondary, 0.33); + + expect(polygon.kind, SparkleShapeKind.polygon); + expect(polygon.primary, 8.0); + expect(polygon.secondary, 1.2); + expect(polygon.tertiary, 0.4); + + expect(rectangle.kind, SparkleShapeKind.rectangle); + expect(rectangle.primary, 0.20); + expect(rectangle.secondary, 0.05); + expect(rectangle.tertiary, 0.7); + }); + + testWidgets('Shiny wraps any child without card transform', + (WidgetTester tester) async { + await tester.pumpWidget( + const MaterialApp( + home: Scaffold( + body: Shiny( + enableShader: false, + child: ColoredBox( + color: Colors.blue, + child: SizedBox(width: 80, height: 40), + ), + ), + ), + ), + ); + + expect(find.byType(ColoredBox), findsWidgets); + expect(find.byKey(_cardTransformKey), findsNothing); + }); + + testWidgets('ShinyCard renders clipping and foreground', + (WidgetTester tester) async { + await tester.pumpWidget( + const MaterialApp( + home: Scaffold( + body: ShinyCard( + enableShader: false, + background: ColoredBox(color: Colors.black), + foreground: Text('FOREGROUND'), + ), + ), + ), + ); + + expect(find.text('FOREGROUND'), findsOneWidget); + expect(find.byType(ClipPath), findsOneWidget); + expect(find.byKey(_cardTransformKey), findsOneWidget); + }); + + testWidgets('ShinyCard responds to external tilt stream', + (WidgetTester tester) async { + final StreamController stream = + StreamController.broadcast(); + final ShinyController controller = + ShinyController(tiltStream: stream.stream); + + await tester.pumpWidget( + MaterialApp( + home: Scaffold( + body: Center( + child: ShinyCard( + enableShader: false, + controller: controller, + background: const ColoredBox(color: Colors.black), + ), + ), + ), + ), + ); + + final Matrix4 before = + tester.widget(find.byKey(_cardTransformKey)).transform; + + stream.add(const Offset(0.7, 0.2)); + await tester.pump(); + + final Matrix4 after = + tester.widget(find.byKey(_cardTransformKey)).transform; + + expect(after.storage[8], isNot(before.storage[8])); + + await controller.dispose(); + await stream.close(); + }); + + testWidgets('Dragging ShinyCard updates transform', + (WidgetTester tester) async { + await tester.pumpWidget( + const MaterialApp( + home: Scaffold( + body: Center( + child: ShinyCard( + enableShader: false, + background: ColoredBox(color: Colors.black), + ), + ), + ), + ), + ); + + final Finder shinyCard = find.byType(ShinyCard); + final Matrix4 before = + tester.widget(find.byKey(_cardTransformKey)).transform; + + await tester.drag(shinyCard, const Offset(50, 20)); + await tester.pump(); + + final Matrix4 after = + tester.widget(find.byKey(_cardTransformKey)).transform; + expect(after.storage[8], isNot(before.storage[8])); + }); +}