make Android use new API, add delete_viewer method

This commit is contained in:
Nick Fisher
2022-08-20 22:19:14 +10:00
parent 21c749181c
commit a938a6656b
9 changed files with 104 additions and 259 deletions

View File

@@ -334,7 +334,26 @@ void FilamentViewer::setBackgroundImage(const char *resourcePath) {
float3(1.0f));
}
FilamentViewer::~FilamentViewer() { cleanup(); }
FilamentViewer::~FilamentViewer() {
clearAssets();
_resourceLoader->asyncCancelLoad();
Log("c1");
_materialProvider->destroyMaterials();
Log("c2");
AssetLoader::destroy(&_assetLoader);
Log("c3");
delete _sceneAssetLoader;
_engine->destroy(_view);
Log("c4");
_engine->destroy(_scene);
Log("c5");
_engine->destroy(_renderer);
Log("c6");
_engine->destroy(_swapChain);
Log("c7");
Engine::destroy(&_engine); // clears engine*
Log("c8");
}
Renderer *FilamentViewer::getRenderer() { return _renderer; }
@@ -529,12 +548,6 @@ void FilamentViewer::loadIbl(const char *const iblPath) {
}
}
void FilamentViewer::cleanup() {
_resourceLoader->asyncCancelLoad();
_materialProvider->destroyMaterials();
AssetLoader::destroy(&_assetLoader);
};
void FilamentViewer::render() {
if (!_view || !_mainCamera || !_swapChain) {

View File

@@ -3,6 +3,7 @@
#include "ResourceBuffer.hpp"
#include "FilamentViewer.hpp"
#include "Log.hpp"
using namespace polyvox;
@@ -15,6 +16,14 @@ extern "C" {
return nullptr;
}
void filament_viewer_delete(void* viewer) {
delete((FilamentViewer*)viewer);
Log(
"deleted"
);
}
void set_background_image(void* viewer, const char* path) {
((FilamentViewer*)viewer)->setBackgroundImage(path);
}

View File

@@ -7,6 +7,7 @@ typedef struct ResourceBuffer ResourceBuffer;
//ResourceBuffer create_resource_buffer(const void* data, const uint32_t size, const uint32_t id);
void* filament_viewer_new(void* texture, void* loadResource, void* freeResource);
void* filament_viewer_delete(void* viewer);
void set_background_image(void* viewer, const char* path);
void load_skybox(void* viewer, const char* skyboxPath);
void load_ibl(void* viewer, const char* iblPath);