expose setParameterInt/setParameterFloat4, rename to getScreenSpaceBoundingBox, and expose method for getting renderable bounding box
This commit is contained in:
@@ -1052,6 +1052,12 @@ external void set_priority(
|
|||||||
int priority,
|
int priority,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ffi.Native<Aabb3 Function(ffi.Pointer<TSceneManager>, EntityId)>(isLeaf: true)
|
||||||
|
external Aabb3 SceneManager_getRenderableBoundingBox(
|
||||||
|
ffi.Pointer<TSceneManager> sceneManager,
|
||||||
|
int entity,
|
||||||
|
);
|
||||||
|
|
||||||
@ffi.Native<
|
@ffi.Native<
|
||||||
Aabb2 Function(
|
Aabb2 Function(
|
||||||
ffi.Pointer<TSceneManager>, ffi.Pointer<TView>, EntityId)>(isLeaf: true)
|
ffi.Pointer<TSceneManager>, ffi.Pointer<TView>, EntityId)>(isLeaf: true)
|
||||||
@@ -1213,6 +1219,18 @@ external void MaterialInstance_setDepthCulling(
|
|||||||
bool enabled,
|
bool enabled,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ffi.Native<
|
||||||
|
ffi.Void Function(ffi.Pointer<TMaterialInstance>, ffi.Pointer<ffi.Char>,
|
||||||
|
ffi.Double, ffi.Double, ffi.Double, ffi.Double)>(isLeaf: true)
|
||||||
|
external void MaterialInstance_setParameterFloat4(
|
||||||
|
ffi.Pointer<TMaterialInstance> materialInstance,
|
||||||
|
ffi.Pointer<ffi.Char> name,
|
||||||
|
double x,
|
||||||
|
double y,
|
||||||
|
double w,
|
||||||
|
double z,
|
||||||
|
);
|
||||||
|
|
||||||
@ffi.Native<
|
@ffi.Native<
|
||||||
ffi.Void Function(ffi.Pointer<TMaterialInstance>, ffi.Pointer<ffi.Char>,
|
ffi.Void Function(ffi.Pointer<TMaterialInstance>, ffi.Pointer<ffi.Char>,
|
||||||
ffi.Double, ffi.Double)>(isLeaf: true)
|
ffi.Double, ffi.Double)>(isLeaf: true)
|
||||||
@@ -1232,6 +1250,15 @@ external void MaterialInstance_setParameterFloat(
|
|||||||
double value,
|
double value,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ffi.Native<
|
||||||
|
ffi.Void Function(ffi.Pointer<TMaterialInstance>, ffi.Pointer<ffi.Char>,
|
||||||
|
ffi.Int)>(isLeaf: true)
|
||||||
|
external void MaterialInstance_setParameterInt(
|
||||||
|
ffi.Pointer<TMaterialInstance> materialInstance,
|
||||||
|
ffi.Pointer<ffi.Char> name,
|
||||||
|
int value,
|
||||||
|
);
|
||||||
|
|
||||||
@ffi.Native<TViewport Function(ffi.Pointer<TView>)>(isLeaf: true)
|
@ffi.Native<TViewport Function(ffi.Pointer<TView>)>(isLeaf: true)
|
||||||
external TViewport View_getViewport(
|
external TViewport View_getViewport(
|
||||||
ffi.Pointer<TView> view,
|
ffi.Pointer<TView> view,
|
||||||
@@ -2276,6 +2303,26 @@ final class Aabb2 extends ffi.Struct {
|
|||||||
external double maxY;
|
external double maxY;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final class Aabb3 extends ffi.Struct {
|
||||||
|
@ffi.Float()
|
||||||
|
external double centerX;
|
||||||
|
|
||||||
|
@ffi.Float()
|
||||||
|
external double centerY;
|
||||||
|
|
||||||
|
@ffi.Float()
|
||||||
|
external double centerZ;
|
||||||
|
|
||||||
|
@ffi.Float()
|
||||||
|
external double halfExtentX;
|
||||||
|
|
||||||
|
@ffi.Float()
|
||||||
|
external double halfExtentY;
|
||||||
|
|
||||||
|
@ffi.Float()
|
||||||
|
external double halfExtentZ;
|
||||||
|
}
|
||||||
|
|
||||||
final class ResourceBuffer extends ffi.Struct {
|
final class ResourceBuffer extends ffi.Struct {
|
||||||
external ffi.Pointer<ffi.Void> data;
|
external ffi.Pointer<ffi.Void> data;
|
||||||
|
|
||||||
|
|||||||
@@ -105,6 +105,17 @@ extern "C"
|
|||||||
|
|
||||||
typedef struct Aabb2 Aabb2;
|
typedef struct Aabb2 Aabb2;
|
||||||
|
|
||||||
|
struct Aabb3 {
|
||||||
|
float centerX;
|
||||||
|
float centerY;
|
||||||
|
float centerZ;
|
||||||
|
float halfExtentX;
|
||||||
|
float halfExtentY;
|
||||||
|
float halfExtentZ;
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef struct Aabb3 Aabb3;
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -277,6 +277,7 @@ extern "C"
|
|||||||
EMSCRIPTEN_KEEPALIVE void test_collisions(TSceneManager *sceneManager, EntityId entity);
|
EMSCRIPTEN_KEEPALIVE void test_collisions(TSceneManager *sceneManager, EntityId entity);
|
||||||
EMSCRIPTEN_KEEPALIVE void set_priority(TSceneManager *sceneManager, EntityId entityId, int priority);
|
EMSCRIPTEN_KEEPALIVE void set_priority(TSceneManager *sceneManager, EntityId entityId, int priority);
|
||||||
|
|
||||||
|
EMSCRIPTEN_KEEPALIVE Aabb3 SceneManager_getRenderableBoundingBox(TSceneManager *sceneManager, EntityId entity);
|
||||||
EMSCRIPTEN_KEEPALIVE Aabb2 get_bounding_box(TSceneManager *sceneManager, TView *view, EntityId entity);
|
EMSCRIPTEN_KEEPALIVE Aabb2 get_bounding_box(TSceneManager *sceneManager, TView *view, EntityId entity);
|
||||||
EMSCRIPTEN_KEEPALIVE void get_bounding_box_to_out(TSceneManager *sceneManager, TView *view, EntityId entity, float *minX, float *minY, float *maxX, float *maxY);
|
EMSCRIPTEN_KEEPALIVE void get_bounding_box_to_out(TSceneManager *sceneManager, TView *view, EntityId entity, float *minX, float *minY, float *maxX, float *maxY);
|
||||||
|
|
||||||
@@ -296,8 +297,10 @@ extern "C"
|
|||||||
|
|
||||||
EMSCRIPTEN_KEEPALIVE void MaterialInstance_setDepthWrite(TMaterialInstance* materialInstance, bool enabled);
|
EMSCRIPTEN_KEEPALIVE void MaterialInstance_setDepthWrite(TMaterialInstance* materialInstance, bool enabled);
|
||||||
EMSCRIPTEN_KEEPALIVE void MaterialInstance_setDepthCulling(TMaterialInstance* materialInstance, bool enabled);
|
EMSCRIPTEN_KEEPALIVE void MaterialInstance_setDepthCulling(TMaterialInstance* materialInstance, bool enabled);
|
||||||
|
EMSCRIPTEN_KEEPALIVE void MaterialInstance_setParameterFloat4(TMaterialInstance* materialInstance, const char* name, double x, double y, double w, double z);
|
||||||
EMSCRIPTEN_KEEPALIVE void MaterialInstance_setParameterFloat2(TMaterialInstance* materialInstance, const char* name, double x, double y);
|
EMSCRIPTEN_KEEPALIVE void MaterialInstance_setParameterFloat2(TMaterialInstance* materialInstance, const char* name, double x, double y);
|
||||||
EMSCRIPTEN_KEEPALIVE void MaterialInstance_setParameterFloat(TMaterialInstance* materialInstance, const char* name, double value);
|
EMSCRIPTEN_KEEPALIVE void MaterialInstance_setParameterFloat(TMaterialInstance* materialInstance, const char* name, double value);
|
||||||
|
EMSCRIPTEN_KEEPALIVE void MaterialInstance_setParameterInt(TMaterialInstance* materialInstance, const char* name, int value);
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|||||||
@@ -876,7 +876,7 @@ extern "C"
|
|||||||
TMaterialInstance *materialInstance,
|
TMaterialInstance *materialInstance,
|
||||||
bool keepData)
|
bool keepData)
|
||||||
{
|
{
|
||||||
return ((SceneManager *)sceneManager)->createGeometry(vertices, (uint32_t)numVertices, normals, (uint32_t)numNormals, uvs, numUvs, indices, numIndices, (filament::RenderableManager::PrimitiveType)primitiveType, reinterpret_cast<MaterialInstance *>(materialInstance), keepData);
|
return ((SceneManager *)sceneManager)->createGeometry(vertices, static_cast<uint32_t>(numVertices), normals, static_cast<uint32_t>(numNormals), uvs, static_cast<uint32_t>(numUvs), indices, static_cast<uint32_t>(numIndices), (filament::RenderableManager::PrimitiveType)primitiveType, reinterpret_cast<MaterialInstance *>(materialInstance), keepData);
|
||||||
}
|
}
|
||||||
|
|
||||||
EMSCRIPTEN_KEEPALIVE EntityId find_child_entity_by_name(TSceneManager *sceneManager, const EntityId parent, const char *name)
|
EMSCRIPTEN_KEEPALIVE EntityId find_child_entity_by_name(TSceneManager *sceneManager, const EntityId parent, const char *name)
|
||||||
@@ -910,17 +910,22 @@ extern "C"
|
|||||||
((SceneManager *)sceneManager)->setPriority(entity, priority);
|
((SceneManager *)sceneManager)->setPriority(entity, priority);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EMSCRIPTEN_KEEPALIVE Aabb3 SceneManager_getRenderableBoundingBox(TSceneManager *tSceneManager, EntityId entity) {
|
||||||
|
auto sceneManager = reinterpret_cast<SceneManager*>(tSceneManager);
|
||||||
|
return sceneManager->getRenderableBoundingBox(entity);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
EMSCRIPTEN_KEEPALIVE Aabb2 get_bounding_box(TSceneManager *sceneManager, TView *tView, EntityId entity)
|
EMSCRIPTEN_KEEPALIVE Aabb2 get_bounding_box(TSceneManager *sceneManager, TView *tView, EntityId entity)
|
||||||
{
|
{
|
||||||
auto view = reinterpret_cast<View*>(tView);
|
auto view = reinterpret_cast<View*>(tView);
|
||||||
return ((SceneManager *)sceneManager)->getBoundingBox(view, entity);
|
return ((SceneManager *)sceneManager)->getScreenSpaceBoundingBox(view, entity);
|
||||||
}
|
}
|
||||||
|
|
||||||
EMSCRIPTEN_KEEPALIVE void get_bounding_box_to_out(TSceneManager *sceneManager, TView *tView, EntityId entity, float *minX, float *minY, float *maxX, float *maxY)
|
EMSCRIPTEN_KEEPALIVE void get_bounding_box_to_out(TSceneManager *sceneManager, TView *tView, EntityId entity, float *minX, float *minY, float *maxX, float *maxY)
|
||||||
{
|
{
|
||||||
auto view = reinterpret_cast<View*>(tView);
|
auto view = reinterpret_cast<View*>(tView);
|
||||||
auto box = ((SceneManager *)sceneManager)->getBoundingBox(view, entity);
|
auto box = ((SceneManager *)sceneManager)->getScreenSpaceBoundingBox(view, entity);
|
||||||
*minX = box.minX;
|
*minX = box.minX;
|
||||||
*minY = box.minY;
|
*minY = box.minY;
|
||||||
*maxX = box.maxX;
|
*maxX = box.maxX;
|
||||||
@@ -1055,6 +1060,12 @@ extern "C"
|
|||||||
reinterpret_cast<MaterialInstance *>(materialInstance)->setDepthCulling(enabled);
|
reinterpret_cast<MaterialInstance *>(materialInstance)->setDepthCulling(enabled);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EMSCRIPTEN_KEEPALIVE void MaterialInstance_setParameterFloat4(TMaterialInstance *materialInstance, const char *propertyName, double x, double y, double w, double z)
|
||||||
|
{
|
||||||
|
filament::math::float4 data{static_cast<float>(x), static_cast<float>(y), static_cast<float>(z), static_cast<float>(w)};
|
||||||
|
reinterpret_cast<MaterialInstance *>(materialInstance)->setParameter(propertyName, data);
|
||||||
|
}
|
||||||
|
|
||||||
EMSCRIPTEN_KEEPALIVE void MaterialInstance_setParameterFloat2(TMaterialInstance *materialInstance, const char *propertyName, double x, double y)
|
EMSCRIPTEN_KEEPALIVE void MaterialInstance_setParameterFloat2(TMaterialInstance *materialInstance, const char *propertyName, double x, double y)
|
||||||
{
|
{
|
||||||
filament::math::float2 data{static_cast<float>(x), static_cast<float>(y)};
|
filament::math::float2 data{static_cast<float>(x), static_cast<float>(y)};
|
||||||
@@ -1066,6 +1077,11 @@ extern "C"
|
|||||||
reinterpret_cast<MaterialInstance *>(materialInstance)->setParameter(propertyName, static_cast<float>(value));
|
reinterpret_cast<MaterialInstance *>(materialInstance)->setParameter(propertyName, static_cast<float>(value));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EMSCRIPTEN_KEEPALIVE void MaterialInstance_setParameterInt(TMaterialInstance *materialInstance, const char *propertyName, int value)
|
||||||
|
{
|
||||||
|
reinterpret_cast<MaterialInstance *>(materialInstance)->setParameter(propertyName, value);
|
||||||
|
}
|
||||||
|
|
||||||
EMSCRIPTEN_KEEPALIVE TCamera *Engine_getCameraComponent(TEngine *tEngine, EntityId entityId)
|
EMSCRIPTEN_KEEPALIVE TCamera *Engine_getCameraComponent(TEngine *tEngine, EntityId entityId)
|
||||||
{
|
{
|
||||||
auto *engine = reinterpret_cast<Engine *>(tEngine);
|
auto *engine = reinterpret_cast<Engine *>(tEngine);
|
||||||
|
|||||||
Reference in New Issue
Block a user