Skip to content

Commit

Permalink
implemented renderer methods
Browse files Browse the repository at this point in the history
  • Loading branch information
hannojg committed Feb 23, 2024
1 parent 88b8a4c commit 7b0ca1a
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 1 deletion.
16 changes: 15 additions & 1 deletion package/cpp/core/RendererWrapper.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,19 @@ RendererWrapper::RendererWrapper(const std::shared_ptr<Renderer>& renderer) : _r
_renderer->setClearOptions({.clear = true});
}

void RendererWrapper::loadHybridMethods() {}
void RendererWrapper::loadHybridMethods() {
registerHybridMethod("beginFrame", &RendererWrapper::beginFrame, this);
registerHybridMethod("render", &RendererWrapper::render, this);
registerHybridMethod("endFrame", &RendererWrapper::endFrame, this);
}

bool RendererWrapper::beginFrame(std::shared_ptr<SwapChainWrapper> swapChain, double frameTimeNanos) {
return _renderer->beginFrame(swapChain->getSwapChain().get(), frameTimeNanos);
}
void RendererWrapper::render(std::shared_ptr<ViewWrapper> view) {
_renderer->render(view->getView().get());
}
void RendererWrapper::endFrame() {
_renderer->endFrame();
}
} // namespace margelo
7 changes: 7 additions & 0 deletions package/cpp/core/RendererWrapper.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
#pragma once

#include "SwapChainWrapper.h"
#include "ViewWrapper.h"
#include "jsi/HybridObject.h"
#include <filament/Renderer.h>

Expand All @@ -15,6 +17,11 @@ class RendererWrapper : public HybridObject {

private:
std::shared_ptr<Renderer> _renderer;

private:
bool beginFrame(std::shared_ptr<SwapChainWrapper> swapChain, double frameTimeNanos);
void render(std::shared_ptr<ViewWrapper> view);
void endFrame();
};

} // namespace margelo
4 changes: 4 additions & 0 deletions package/cpp/core/ViewWrapper.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@ class ViewWrapper : public HybridObject {

void loadHybridMethods() override;

std::shared_ptr<View> getView() {
return _view;
}

private:
void setScene(std::shared_ptr<SceneWrapper> scene);
std::shared_ptr<SceneWrapper> getScene();
Expand Down

0 comments on commit 7b0ca1a

Please sign in to comment.