add bool render argument to capture()

This commit is contained in:
Nick Fisher
2025-07-01 13:09:42 +08:00
parent c467e3ca69
commit a5eab305da
2 changed files with 19 additions and 11 deletions

View File

@@ -737,7 +737,8 @@ class FFIFilamentApp extends FilamentApp<Pointer> {
bool captureRenderTarget = false, bool captureRenderTarget = false,
PixelDataFormat pixelDataFormat = PixelDataFormat.RGBA, PixelDataFormat pixelDataFormat = PixelDataFormat.RGBA,
PixelDataType pixelDataType = PixelDataType.FLOAT, PixelDataType pixelDataType = PixelDataType.FLOAT,
Future Function(View)? beforeRender}) async { Future Function(View)? beforeRender,
bool render = true}) async {
if (swapChain == null) { if (swapChain == null) {
if (_swapChains.isEmpty) { if (_swapChains.isEmpty) {
throw Exception("No swapchains registered"); throw Exception("No swapchains registered");
@@ -788,14 +789,17 @@ class FFIFilamentApp extends FilamentApp<Pointer> {
viewport.height * viewport.height *
numChannels * numChannels *
channelSizeInBytes); channelSizeInBytes);
await withVoidCallback((requestId, cb) {
Renderer_renderRenderThread( if (render) {
renderer, await withVoidCallback((requestId, cb) {
view.view, Renderer_renderRenderThread(
requestId, renderer,
cb, view.view,
); requestId,
}); cb,
);
});
}
if (captureRenderTarget && view.renderTarget == null) { if (captureRenderTarget && view.renderTarget == null) {
throw Exception(); throw Exception();
@@ -804,7 +808,10 @@ class FFIFilamentApp extends FilamentApp<Pointer> {
await withVoidCallback((requestId, cb) { await withVoidCallback((requestId, cb) {
Renderer_readPixelsRenderThread( Renderer_readPixelsRenderThread(
renderer, renderer,
viewport.width, viewport.height, 0, 0, viewport.width,
viewport.height,
0,
0,
view.renderTarget == null view.renderTarget == null
? nullptr ? nullptr
: view.renderTarget!.getNativeHandle(), : view.renderTarget!.getNativeHandle(),

View File

@@ -274,7 +274,8 @@ abstract class FilamentApp<T> {
bool captureRenderTarget = false, bool captureRenderTarget = false,
PixelDataFormat pixelDataFormat = PixelDataFormat.RGBA, PixelDataFormat pixelDataFormat = PixelDataFormat.RGBA,
PixelDataType pixelDataType = PixelDataType.FLOAT, PixelDataType pixelDataType = PixelDataType.FLOAT,
Future Function(View)? beforeRender}); Future Function(View)? beforeRender,
bool render = true});
/// ///
/// ///