internal: expose View_getRenderTarget and set (Dart) FFIView.renderTarget property on construction
This commit is contained in:
@@ -8,18 +8,29 @@ import 'thermion_viewer_ffi.dart';
|
|||||||
class FFIView extends View {
|
class FFIView extends View {
|
||||||
final Pointer<TView> view;
|
final Pointer<TView> view;
|
||||||
final Pointer<TViewer> viewer;
|
final Pointer<TViewer> viewer;
|
||||||
|
FFIRenderTarget? renderTarget;
|
||||||
|
|
||||||
FFIView(this.view, this.viewer);
|
FFIView(this.view, this.viewer) {
|
||||||
|
final renderTargetPtr = View_getRenderTarget(view);
|
||||||
|
if (renderTargetPtr != nullptr) {
|
||||||
|
renderTarget = FFIRenderTarget(renderTargetPtr, viewer);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future updateViewport(int width, int height) async {
|
Future updateViewport(int width, int height) async {
|
||||||
View_updateViewport(view, width, height);
|
View_updateViewport(view, width, height);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Future<RenderTarget?> getRenderTarget() async {
|
||||||
|
return renderTarget;
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future setRenderTarget(covariant FFIRenderTarget? renderTarget) async {
|
Future setRenderTarget(covariant FFIRenderTarget? renderTarget) async {
|
||||||
if (renderTarget != null) {
|
if (renderTarget != null) {
|
||||||
View_setRenderTarget(view, renderTarget.renderTarget);
|
View_setRenderTarget(view, renderTarget.renderTarget);
|
||||||
|
this.renderTarget = renderTarget;
|
||||||
} else {
|
} else {
|
||||||
View_setRenderTarget(view, nullptr);
|
View_setRenderTarget(view, nullptr);
|
||||||
}
|
}
|
||||||
@@ -85,7 +96,7 @@ class FFIView extends View {
|
|||||||
Future setDithering(bool enabled) async {
|
Future setDithering(bool enabled) async {
|
||||||
View_setDitheringEnabled(view, enabled);
|
View_setDitheringEnabled(view, enabled);
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<bool> isDitheringEnabled() async {
|
Future<bool> isDitheringEnabled() async {
|
||||||
return View_isDitheringEnabled(view);
|
return View_isDitheringEnabled(view);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ EMSCRIPTEN_KEEPALIVE void View_setRenderTarget(TView *view, TRenderTarget *rende
|
|||||||
EMSCRIPTEN_KEEPALIVE void View_setFrustumCullingEnabled(TView *view, bool enabled);
|
EMSCRIPTEN_KEEPALIVE void View_setFrustumCullingEnabled(TView *view, bool enabled);
|
||||||
EMSCRIPTEN_KEEPALIVE void View_updateViewport(TView* tView, uint32_t width, uint32_t height);
|
EMSCRIPTEN_KEEPALIVE void View_updateViewport(TView* tView, uint32_t width, uint32_t height);
|
||||||
EMSCRIPTEN_KEEPALIVE void View_setRenderTarget(TView* tView, TRenderTarget* tRenderTarget);
|
EMSCRIPTEN_KEEPALIVE void View_setRenderTarget(TView* tView, TRenderTarget* tRenderTarget);
|
||||||
|
EMSCRIPTEN_KEEPALIVE TRenderTarget *View_getRenderTarget(TView* tView);
|
||||||
EMSCRIPTEN_KEEPALIVE void View_setFrustumCullingEnabled(TView* tView, bool enabled);
|
EMSCRIPTEN_KEEPALIVE void View_setFrustumCullingEnabled(TView* tView, bool enabled);
|
||||||
EMSCRIPTEN_KEEPALIVE void View_setPostProcessing(TView* tView, bool enabled);
|
EMSCRIPTEN_KEEPALIVE void View_setPostProcessing(TView* tView, bool enabled);
|
||||||
EMSCRIPTEN_KEEPALIVE void View_setShadowsEnabled(TView* tView, bool enabled);
|
EMSCRIPTEN_KEEPALIVE void View_setShadowsEnabled(TView* tView, bool enabled);
|
||||||
|
|||||||
@@ -35,6 +35,12 @@ using namespace filament;
|
|||||||
view->setViewport({0, 0, width, height});
|
view->setViewport({0, 0, width, height});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EMSCRIPTEN_KEEPALIVE TRenderTarget *View_getRenderTarget(TView *tView) {
|
||||||
|
auto view = reinterpret_cast<View *>(tView);
|
||||||
|
auto tRenderTarget = reinterpret_cast<TRenderTarget *>(view->getRenderTarget());
|
||||||
|
return tRenderTarget;
|
||||||
|
}
|
||||||
|
|
||||||
EMSCRIPTEN_KEEPALIVE void View_setRenderTarget(TView *tView, TRenderTarget *tRenderTarget)
|
EMSCRIPTEN_KEEPALIVE void View_setRenderTarget(TView *tView, TRenderTarget *tRenderTarget)
|
||||||
{
|
{
|
||||||
auto view = reinterpret_cast<View *>(tView);
|
auto view = reinterpret_cast<View *>(tView);
|
||||||
|
|||||||
Reference in New Issue
Block a user