replace view with texture, move plugin to Swift implementation

This commit is contained in:
Nick Fisher
2022-08-19 12:39:55 +08:00
parent d23fe45d08
commit c016b071e4
20 changed files with 658 additions and 491 deletions

View File

@@ -0,0 +1,32 @@
#include "PolyvoxFilamentApi.h"
#include "FilamentViewer.hpp"
#include "ResourceBuffer.hpp"
#include "SceneResources.hpp"
#include <functional>
using namespace polyvox;
using namespace std;
extern "C" {
using RawLoadType = ResourceBuffer(const char*, void* resource);
using RawFreeType = void(uint32_t, void*);
void* filament_viewer_new_ios(void* pb, void* loadResource, void* freeResource, void* resources) {
FreeResource _freeResource = [=](uint32_t rid) {
reinterpret_cast<RawFreeType*>(freeResource)(rid, resources);
};
function<ResourceBuffer(const char*)> _loadResource = [=](const char* uri){
auto cast = reinterpret_cast<RawLoadType*>(loadResource);
return cast(uri, resources);
};
auto viewer = new FilamentViewer(pb,_loadResource, _freeResource);
return (void*)viewer;
}
void create_swap_chain(void* viewer, void* texture) {
((FilamentViewer*)viewer)->createSwapChain(texture);
}
}