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

View File

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