add Dart/headless example
This commit is contained in:
32
examples/dart/cli_headless/bin/example.dart
Normal file
32
examples/dart/cli_headless/bin/example.dart
Normal file
@@ -0,0 +1,32 @@
|
||||
import 'dart:io';
|
||||
import 'dart:isolate';
|
||||
|
||||
import 'package:thermion_dart/thermion_dart.dart';
|
||||
import 'package:thermion_dart/src/filament/src/implementation/ffi_filament_app.dart';
|
||||
|
||||
void main() async {
|
||||
await FFIFilamentApp.create();
|
||||
final (width, height) = (500, 500);
|
||||
final sc = await FilamentApp.instance!.createHeadlessSwapChain(width, height);
|
||||
var viewer = ThermionViewerFFI();
|
||||
await viewer.initialized;
|
||||
|
||||
await FilamentApp.instance!.register(sc, viewer.view);
|
||||
|
||||
await viewer.view.setFrustumCullingEnabled(false);
|
||||
await viewer.setBackgroundColor(1, 0, 1, 1);
|
||||
await viewer.setViewport(width, height);
|
||||
final result = await FilamentApp.instance!.capture(
|
||||
sc,
|
||||
view: viewer.view,
|
||||
);
|
||||
|
||||
final bitmap = await pixelBufferToBmp(result.first.$2, width, height,
|
||||
hasAlpha: true, isFloat: true);
|
||||
|
||||
var outfile = File("output/render.bmp");
|
||||
outfile.parent.create();
|
||||
outfile.writeAsBytesSync(bitmap);
|
||||
await FilamentApp.instance!.destroy();
|
||||
Isolate.current.kill();
|
||||
}
|
||||
Reference in New Issue
Block a user