feat: move createGeometry to SceneManager, add queueRelativePositionUpdateFromViewportVector and removeStencilHighlight
This commit is contained in:
@@ -745,6 +745,10 @@ extern "C"
|
||||
((SceneManager *)sceneManager)->queueRotationUpdate(asset, rads, x, y, z, w, relative);
|
||||
}
|
||||
|
||||
EMSCRIPTEN_KEEPALIVE void queue_position_update_from_viewport_coords(void *sceneManager, EntityId entity, float viewportX, float viewportY) {
|
||||
((SceneManager *)sceneManager)->queueRelativePositionUpdateFromViewportVector(entity, viewportX, viewportY);
|
||||
}
|
||||
|
||||
EMSCRIPTEN_KEEPALIVE void stop_animation(void *sceneManager, EntityId asset, int index)
|
||||
{
|
||||
((SceneManager *)sceneManager)->stopAnimation(asset, index);
|
||||
@@ -825,9 +829,15 @@ extern "C"
|
||||
((SceneManager *)sceneManager)->removeAnimationComponent(entityId);
|
||||
}
|
||||
|
||||
EMSCRIPTEN_KEEPALIVE EntityId create_geometry(void *const viewer, float *vertices, int numVertices, uint16_t *indices, int numIndices, int primitiveType, const char *materialPath)
|
||||
EMSCRIPTEN_KEEPALIVE EntityId create_geometry(void *const sceneManager, float *vertices, int numVertices, uint16_t *indices, int numIndices, int primitiveType, const char *materialPath)
|
||||
{
|
||||
return ((FilamentViewer *)viewer)->createGeometry(vertices, (uint32_t)numVertices, indices, numIndices, (filament::RenderableManager::PrimitiveType)primitiveType, materialPath);
|
||||
return ((SceneManager *)sceneManager)->createGeometry(
|
||||
vertices,
|
||||
(uint32_t)numVertices,
|
||||
indices,
|
||||
numIndices,
|
||||
(filament::RenderableManager::PrimitiveType)primitiveType,
|
||||
materialPath);
|
||||
}
|
||||
|
||||
EMSCRIPTEN_KEEPALIVE EntityId find_child_entity_by_name(void *const sceneManager, const EntityId parent, const char *name)
|
||||
@@ -893,10 +903,12 @@ extern "C"
|
||||
((SceneManager*)sceneManager)->gizmo->setVisibility(visible);
|
||||
}
|
||||
|
||||
EMSCRIPTEN_KEEPALIVE void set_stencil_highlight(void *const sceneManager, EntityId entityId) {
|
||||
((SceneManager*)sceneManager)->setStencilHighlight(entityId);
|
||||
EMSCRIPTEN_KEEPALIVE void set_stencil_highlight(void *const sceneManager, EntityId entityId, float r, float g, float b) {
|
||||
((SceneManager*)sceneManager)->setStencilHighlight(entityId, r, g, b);
|
||||
}
|
||||
|
||||
|
||||
EMSCRIPTEN_KEEPALIVE void remove_stencil_highlight(void *const sceneManager, EntityId entityId) {
|
||||
((SceneManager*)sceneManager)->removeStencilHighlight(entityId);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -859,7 +859,7 @@ extern "C"
|
||||
}
|
||||
|
||||
EMSCRIPTEN_KEEPALIVE void create_geometry_ffi(
|
||||
void *const viewer,
|
||||
void *const sceneManager,
|
||||
float *vertices,
|
||||
int numVertices,
|
||||
uint16_t *indices,
|
||||
@@ -871,7 +871,7 @@ extern "C"
|
||||
std::packaged_task<EntityId()> lambda(
|
||||
[=]
|
||||
{
|
||||
auto entity = create_geometry(viewer, vertices, numVertices, indices, numIndices, primitiveType, materialPath);
|
||||
auto entity = create_geometry(sceneManager, vertices, numVertices, indices, numIndices, primitiveType, materialPath);
|
||||
#ifdef __EMSCRIPTEN__
|
||||
MAIN_THREAD_EM_ASM({
|
||||
moduleArg.dartFilamentResolveCallback($0,$1);
|
||||
|
||||
Reference in New Issue
Block a user