Change print to log to follow bp

This commit is contained in:
LukasPoque
2023-11-06 16:55:52 +01:00
parent 94680c6db7
commit 229357d8b9
3 changed files with 24 additions and 20 deletions

View File

@@ -2,6 +2,7 @@ import 'dart:async';
import 'dart:ffi'; import 'dart:ffi';
import 'dart:io'; import 'dart:io';
import 'dart:ui' as ui; import 'dart:ui' as ui;
import 'dart:developer' as dev;
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:ffi/ffi.dart'; import 'package:ffi/ffi.dart';
import 'package:flutter/widgets.dart'; import 'package:flutter/widgets.dart';
@@ -146,7 +147,7 @@ class FilamentControllerFFI extends FilamentController {
await _channel.invokeMethod( await _channel.invokeMethod(
"destroyTexture", textureDetails.value!.textureId); "destroyTexture", textureDetails.value!.textureId);
} }
print("Texture destroyed"); dev.log("Texture destroyed");
} }
/// ///
@@ -187,7 +188,7 @@ class FilamentControllerFFI extends FilamentController {
var renderingSurface = await _createRenderingSurface(); var renderingSurface = await _createRenderingSurface();
print("Got rendering surface"); dev.log("Got rendering surface");
_viewer = _lib.create_filament_viewer_ffi( _viewer = _lib.create_filament_viewer_ffi(
Pointer<Void>.fromAddress(renderingSurface.sharedContext), Pointer<Void>.fromAddress(renderingSurface.sharedContext),
@@ -196,7 +197,7 @@ class FilamentControllerFFI extends FilamentController {
loader, loader,
renderCallback, renderCallback,
renderCallbackOwner); renderCallbackOwner);
print("Created viewer"); dev.log("Created viewer");
if (_viewer!.address == 0) { if (_viewer!.address == 0) {
throw Exception("Failed to create viewer. Check logs for details"); throw Exception("Failed to create viewer. Check logs for details");
} }
@@ -205,9 +206,9 @@ class FilamentControllerFFI extends FilamentController {
_lib.create_swap_chain_ffi(_viewer!, renderingSurface.surface, _lib.create_swap_chain_ffi(_viewer!, renderingSurface.surface,
rect.value!.width.toInt(), rect.value!.height.toInt()); rect.value!.width.toInt(), rect.value!.height.toInt());
print("Created swap chain"); dev.log("Created swap chain");
if (renderingSurface.textureHandle != 0) { if (renderingSurface.textureHandle != 0) {
print( dev.log(
"Creating render target from native texture ${renderingSurface.textureHandle}"); "Creating render target from native texture ${renderingSurface.textureHandle}");
_lib.create_render_target_ffi(_viewer!, renderingSurface.textureHandle, _lib.create_render_target_ffi(_viewer!, renderingSurface.textureHandle,
rect.value!.width.toInt(), rect.value!.height.toInt()); rect.value!.width.toInt(), rect.value!.height.toInt());
@@ -217,7 +218,7 @@ class FilamentControllerFFI extends FilamentController {
textureId: renderingSurface.flutterTextureId, textureId: renderingSurface.flutterTextureId,
width: rect.value!.width.toInt(), width: rect.value!.width.toInt(),
height: rect.value!.height.toInt()); height: rect.value!.height.toInt());
print("texture details ${textureDetails.value}"); dev.log("texture details ${textureDetails.value}");
_lib.update_viewport_and_camera_projection_ffi( _lib.update_viewport_and_camera_projection_ffi(
_viewer!, rect.value!.width.toInt(), rect.value!.height.toInt(), 1.0); _viewer!, rect.value!.width.toInt(), rect.value!.height.toInt(), 1.0);
hasViewer.value = true; hasViewer.value = true;
@@ -321,7 +322,7 @@ class FilamentControllerFFI extends FilamentController {
"destroyTexture", textureDetails.value!.textureId); "destroyTexture", textureDetails.value!.textureId);
} }
} else if (Platform.isWindows) { } else if (Platform.isWindows) {
print("Resizing window with rect $rect"); dev.log("Resizing window with rect $rect");
await _channel.invokeMethod("resizeWindow", [ await _channel.invokeMethod("resizeWindow", [
rect.value!.width, rect.value!.width,
rect.value!.height, rect.value!.height,
@@ -344,7 +345,7 @@ class FilamentControllerFFI extends FilamentController {
} }
if (renderingSurface.textureHandle != 0) { if (renderingSurface.textureHandle != 0) {
print( dev.log(
"Creating render target from native texture ${renderingSurface.textureHandle}"); "Creating render target from native texture ${renderingSurface.textureHandle}");
_lib.create_render_target_ffi(_viewer!, renderingSurface.textureHandle, _lib.create_render_target_ffi(_viewer!, renderingSurface.textureHandle,
rect.value!.width.toInt(), rect.value!.height.toInt()); rect.value!.width.toInt(), rect.value!.height.toInt());

View File

@@ -1,4 +1,5 @@
import 'dart:ffi'; import 'dart:ffi';
import 'dart:developer' as dev;
class RenderingSurface { class RenderingSurface {
final int flutterTextureId; final int flutterTextureId;
@@ -15,22 +16,23 @@ class RenderingSurface {
// null on iOS/Android, void* on MacOS (pointer to metal texture), GLuid on Windows/Linux // null on iOS/Android, void* on MacOS (pointer to metal texture), GLuid on Windows/Linux
var nativeTexture = platformMessage[2] as int? ?? 0; var nativeTexture = platformMessage[2] as int? ?? 0;
if(nativeTexture != 0) { if (nativeTexture != 0) {
assert(surfaceAddress == 0); assert(surfaceAddress == 0);
} }
var sharedContext = platformMessage[3] as int? ?? 0; var sharedContext = platformMessage[3] as int? ?? 0;
print( dev.log(
"Using flutterTextureId $flutterTextureId, surface $surfaceAddress nativeTexture $nativeTexture and sharedContext $sharedContext"); "Using flutterTextureId $flutterTextureId, surface $surfaceAddress nativeTexture $nativeTexture and sharedContext $sharedContext");
return RenderingSurface( return RenderingSurface(
sharedContext: sharedContext, sharedContext: sharedContext,
flutterTextureId: flutterTextureId, flutterTextureId: flutterTextureId,
surface: Pointer<Void>.fromAddress(surfaceAddress), surface: Pointer<Void>.fromAddress(surfaceAddress),
textureHandle: nativeTexture); textureHandle: nativeTexture);
} }
RenderingSurface({required this.sharedContext, RenderingSurface(
{required this.sharedContext,
required this.flutterTextureId, required this.flutterTextureId,
required this.surface, required this.surface,
required this.textureHandle}); required this.textureHandle});

View File

@@ -1,5 +1,6 @@
import 'dart:io'; import 'dart:io';
import 'dart:math'; import 'dart:math';
import 'dart:developer' as dev;
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@@ -144,7 +145,7 @@ class _SizedFilamentWidgetState extends State<_SizedFilamentWidget> {
_pixelRatio = MediaQuery.of(context).devicePixelRatio; _pixelRatio = MediaQuery.of(context).devicePixelRatio;
widget.controller.setDimensions(_rect, _pixelRatio); widget.controller.setDimensions(_rect, _pixelRatio);
} catch (err) { } catch (err) {
print("Fatal error : $err"); dev.log("Fatal error : $err");
_error = err.toString(); _error = err.toString();
} }
setState(() {}); setState(() {});
@@ -157,7 +158,7 @@ class _SizedFilamentWidgetState extends State<_SizedFilamentWidget> {
bool _resizing = false; bool _resizing = false;
Future _resize() { Future _resize() {
print("Resizing widget"); dev.log("Resizing widget");
final completer = Completer(); final completer = Completer();
// resizing the window can be sluggish (particular in debug mode), exacerbated when simultaneously recreating the swapchain and resize the window. // resizing the window can be sluggish (particular in debug mode), exacerbated when simultaneously recreating the swapchain and resize the window.
// to address this, whenever the widget is resized, we set a timer for Xms in the future. // to address this, whenever the widget is resized, we set a timer for Xms in the future.
@@ -185,7 +186,7 @@ class _SizedFilamentWidgetState extends State<_SizedFilamentWidget> {
setState(() {}); setState(() {});
_resizing = false; _resizing = false;
} catch (err) { } catch (err) {
print("Error resizing FilamentWidget: $err"); dev.log("Error resizing FilamentWidget: $err");
} finally { } finally {
completer.complete(); completer.complete();
} }
@@ -214,21 +215,21 @@ class _SizedFilamentWidgetState extends State<_SizedFilamentWidget> {
void _handleStateChange(AppLifecycleState state) async { void _handleStateChange(AppLifecycleState state) async {
switch (state) { switch (state) {
case AppLifecycleState.detached: case AppLifecycleState.detached:
print("Detached"); dev.log("Detached");
if (!_wasRenderingOnInactive) { if (!_wasRenderingOnInactive) {
_wasRenderingOnInactive = widget.controller.rendering; _wasRenderingOnInactive = widget.controller.rendering;
} }
await widget.controller.setRendering(false); await widget.controller.setRendering(false);
break; break;
case AppLifecycleState.hidden: case AppLifecycleState.hidden:
print("Hidden"); dev.log("Hidden");
if (!_wasRenderingOnInactive) { if (!_wasRenderingOnInactive) {
_wasRenderingOnInactive = widget.controller.rendering; _wasRenderingOnInactive = widget.controller.rendering;
} }
await widget.controller.setRendering(false); await widget.controller.setRendering(false);
break; break;
case AppLifecycleState.inactive: case AppLifecycleState.inactive:
print("Inactive"); dev.log("Inactive");
if (!_wasRenderingOnInactive) { if (!_wasRenderingOnInactive) {
_wasRenderingOnInactive = widget.controller.rendering; _wasRenderingOnInactive = widget.controller.rendering;
} }
@@ -237,14 +238,14 @@ class _SizedFilamentWidgetState extends State<_SizedFilamentWidget> {
await widget.controller.setRendering(false); await widget.controller.setRendering(false);
break; break;
case AppLifecycleState.paused: case AppLifecycleState.paused:
print("Paused"); dev.log("Paused");
if (!_wasRenderingOnInactive) { if (!_wasRenderingOnInactive) {
_wasRenderingOnInactive = widget.controller.rendering; _wasRenderingOnInactive = widget.controller.rendering;
} }
await widget.controller.setRendering(false); await widget.controller.setRendering(false);
break; break;
case AppLifecycleState.resumed: case AppLifecycleState.resumed:
print("Resumed"); dev.log("Resumed");
await widget.controller.setRendering(_wasRenderingOnInactive); await widget.controller.setRendering(_wasRenderingOnInactive);
break; break;
} }