on macOS, always create stencil buffer by default
This commit is contained in:
@@ -51,6 +51,12 @@ namespace thermion
|
|||||||
/// @param numViews
|
/// @param numViews
|
||||||
void setRenderable(filament::SwapChain *swapChain, filament::View **view, uint8_t numViews);
|
void setRenderable(filament::SwapChain *swapChain, filament::View **view, uint8_t numViews);
|
||||||
|
|
||||||
|
/// @brief
|
||||||
|
/// @param swapChain
|
||||||
|
/// @param view
|
||||||
|
/// @param numViews
|
||||||
|
void removeSwapChain(filament::SwapChain *swapChain);
|
||||||
|
|
||||||
/// @brief
|
/// @brief
|
||||||
/// @param animationManager
|
/// @param animationManager
|
||||||
void addAnimationManager(AnimationManager* animationManager);
|
void addAnimationManager(AnimationManager* animationManager);
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ extern "C"
|
|||||||
|
|
||||||
EMSCRIPTEN_KEEPALIVE void RenderTicker_render(TRenderTicker *tRenderTicker, uint64_t frameTimeInNanos);
|
EMSCRIPTEN_KEEPALIVE void RenderTicker_render(TRenderTicker *tRenderTicker, uint64_t frameTimeInNanos);
|
||||||
EMSCRIPTEN_KEEPALIVE void RenderTicker_setRenderable(TRenderTicker *tRenderTicker, TSwapChain *swapChain, TView **views, uint8_t numViews);
|
EMSCRIPTEN_KEEPALIVE void RenderTicker_setRenderable(TRenderTicker *tRenderTicker, TSwapChain *swapChain, TView **views, uint8_t numViews);
|
||||||
|
EMSCRIPTEN_KEEPALIVE void RenderTicker_removeSwapChain(TRenderTicker *tRenderTicker, TSwapChain *swapChain);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,5 +61,10 @@ EMSCRIPTEN_KEEPALIVE void RenderTicker_setOverlayManager(TRenderTicker *tRenderT
|
|||||||
renderTicker->addOverlayManager(overlayManager);
|
renderTicker->addOverlayManager(overlayManager);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EMSCRIPTEN_KEEPALIVE void RenderTicker_removeSwapChain(TRenderTicker *tRenderTicker, TSwapChain *tSwapChain) {
|
||||||
|
auto *renderTicker = reinterpret_cast<RenderTicker *>(tRenderTicker);
|
||||||
|
auto *swapChain = reinterpret_cast<filament::SwapChain *>(tSwapChain);
|
||||||
|
renderTicker->removeSwapChain(swapChain);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,6 +22,10 @@ class ThermionFlutterMethodChannelPlatform extends ThermionFlutterPlatform {
|
|||||||
|
|
||||||
static SwapChain? _swapChain;
|
static SwapChain? _swapChain;
|
||||||
|
|
||||||
|
SwapChain? getActiveSwapchain() {
|
||||||
|
return _swapChain;
|
||||||
|
}
|
||||||
|
|
||||||
ThermionFlutterMethodChannelPlatform._();
|
ThermionFlutterMethodChannelPlatform._();
|
||||||
|
|
||||||
static ThermionFlutterMethodChannelPlatform? instance;
|
static ThermionFlutterMethodChannelPlatform? instance;
|
||||||
@@ -114,7 +118,7 @@ class ThermionFlutterMethodChannelPlatform extends ThermionFlutterPlatform {
|
|||||||
// TODO - see if we can use `renderStandaloneView` in FilamentViewer to
|
// TODO - see if we can use `renderStandaloneView` in FilamentViewer to
|
||||||
// avoid this
|
// avoid this
|
||||||
if (Platform.isMacOS || Platform.isIOS) {
|
if (Platform.isMacOS || Platform.isIOS) {
|
||||||
_swapChain = await FilamentApp.instance!.createHeadlessSwapChain(1, 1);
|
_swapChain = await FilamentApp.instance!.createHeadlessSwapChain(1, 1, hasStencilBuffer: true);
|
||||||
await FilamentApp.instance!.register(_swapChain!, viewer.view);
|
await FilamentApp.instance!.register(_swapChain!, viewer.view);
|
||||||
await viewer.view.setRenderable(true);
|
await viewer.view.setRenderable(true);
|
||||||
}
|
}
|
||||||
@@ -215,7 +219,8 @@ class ThermionFlutterMethodChannelPlatform extends ThermionFlutterPlatform {
|
|||||||
TextureUsage.TEXTURE_USAGE_SAMPLEABLE,
|
TextureUsage.TEXTURE_USAGE_SAMPLEABLE,
|
||||||
TextureUsage.TEXTURE_USAGE_STENCIL_ATTACHMENT
|
TextureUsage.TEXTURE_USAGE_STENCIL_ATTACHMENT
|
||||||
},
|
},
|
||||||
textureFormat: TextureFormat.DEPTH24_STENCIL8, // TextureFormat.DEPTH32F,
|
textureFormat:
|
||||||
|
TextureFormat.DEPTH24_STENCIL8, // TextureFormat.DEPTH32F,
|
||||||
textureSamplerType: TextureSamplerType.SAMPLER_2D,
|
textureSamplerType: TextureSamplerType.SAMPLER_2D,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user