tick at lower framerate if specified
This commit is contained in:
@@ -77,7 +77,10 @@ class FilamentController {
|
||||
_nativeLibrary.render(_viewer, 0);
|
||||
}
|
||||
|
||||
int _frameLengthInMicroseconds = 1000000 ~/ 60;
|
||||
|
||||
Future setFrameRate(int framerate) async {
|
||||
_frameLengthInMicroseconds = 1000000 ~/ framerate;
|
||||
_nativeLibrary.set_frame_interval(_viewer, 1 / framerate);
|
||||
}
|
||||
|
||||
@@ -85,6 +88,8 @@ class FilamentController {
|
||||
_pixelRatio = ratio;
|
||||
}
|
||||
|
||||
int _last = 0;
|
||||
|
||||
Future createViewer(int width, int height) async {
|
||||
size = ui.Size(width * _pixelRatio, height * _pixelRatio);
|
||||
_textureId =
|
||||
@@ -125,8 +130,11 @@ class FilamentController {
|
||||
_initialized.complete(true);
|
||||
_assetManager = _nativeLibrary.get_asset_manager(_viewer);
|
||||
|
||||
_ticker = _tickerProvider.createTicker((elapsed) async {
|
||||
_nativeLibrary.render(_viewer, 0);
|
||||
_ticker = _tickerProvider.createTicker((Duration elapsed) async {
|
||||
if (elapsed.inMicroseconds - _last > _frameLengthInMicroseconds) {
|
||||
render();
|
||||
_last = elapsed.inMicroseconds;
|
||||
}
|
||||
});
|
||||
_ticker!.start();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user