fix language extern

This commit is contained in:
Nick Fisher
2022-12-19 14:40:59 +08:00
parent 48c3dea0b7
commit 5eea5d33a3
2 changed files with 80 additions and 79 deletions

View File

@@ -20,90 +20,88 @@ struct BoneAnimation {
typedef struct BoneAnimation BoneAnimation; typedef struct BoneAnimation BoneAnimation;
extern "C" { void* filament_viewer_new(void* context, ResourceBuffer (*loadResource)(const char*), void (*freeResource)(uint32_t));
void* filament_viewer_new(void* context, ResourceBuffer (*loadResource)(const char*), void (*freeResource)(uint32_t)); void filament_viewer_delete(void* viewer);
void filament_viewer_delete(void* viewer); void create_render_target(void* viewer, uint32_t textureId, uint32_t width, uint32_t height);
void create_render_target(void* viewer, uint32_t textureId, uint32_t width, uint32_t height); void set_background_image(void* viewer, const char* path);
void set_background_image(void* viewer, const char* path); void set_background_image_position(void* viewer, float x, float y, bool clamp);
void set_background_image_position(void* viewer, float x, float y, bool clamp); void load_skybox(void* viewer, const char* skyboxPath);
void load_skybox(void* viewer, const char* skyboxPath); void load_ibl(void* viewer, const char* iblPath);
void load_ibl(void* viewer, const char* iblPath); void remove_skybox(void* viewer);
void remove_skybox(void* viewer); void remove_ibl(void* viewer);
void remove_ibl(void* viewer); int32_t add_light(void* viewer, uint8_t type, float colour, float intensity, float posX, float posY, float posZ, float dirX, float dirY, float dirZ, bool shadows);
int32_t add_light(void* viewer, uint8_t type, float colour, float intensity, float posX, float posY, float posZ, float dirX, float dirY, float dirZ, bool shadows); void remove_light(void* viewer, int32_t entityId);
void remove_light(void* viewer, int32_t entityId); void clear_lights(void* viewer);
void clear_lights(void* viewer); void* load_glb(void* viewer, const char* assetPath);
void* load_glb(void* viewer, const char* assetPath); void* load_gltf(void* viewer, const char* assetPath, const char* relativePath);
void* load_gltf(void* viewer, const char* assetPath, const char* relativePath); bool set_camera(void* viewer, void* asset, const char* nodeName);
bool set_camera(void* viewer, void* asset, const char* nodeName); void render(void* viewer, uint64_t frameTimeInNanos);
void render(void* viewer, uint64_t frameTimeInNanos); void create_swap_chain(void* viewer, void* surface, uint32_t width, uint32_t height);
void create_swap_chain(void* viewer, void* surface, uint32_t width, uint32_t height); void destroy_swap_chain(void* viewer);
void destroy_swap_chain(void* viewer); void set_frame_interval(void* viewer, float interval);
void set_frame_interval(void* viewer, float interval); void* get_renderer(void* viewer);
void* get_renderer(void* viewer); void update_viewport_and_camera_projection(void* viewer, int width, int height, float scaleFactor);
void update_viewport_and_camera_projection(void* viewer, int width, int height, float scaleFactor);
void scroll_begin(void* viewer);
void scroll_update(void* viewer, float x, float y , float z);
void scroll_end(void* viewer);
void scroll_begin(void* viewer); void grab_begin(void* viewer, float x, float y, bool pan);
void scroll_update(void* viewer, float x, float y , float z); void grab_update(void* viewer, float x, float y);
void scroll_end(void* viewer); void grab_end(void* viewer);
void grab_begin(void* viewer, float x, float y, bool pan);
void grab_update(void* viewer, float x, float y);
void grab_end(void* viewer);
void apply_weights(void* asset, float* const weights, int count); void apply_weights(void* asset, float* const weights, int count);
void set_animation( void set_animation(
void* asset, void* asset,
float* morphData, float* morphData,
int numMorphWeights, int numMorphWeights,
BoneAnimation* boneAnimations, BoneAnimation* boneAnimations,
int numBoneAnimations, int numBoneAnimations,
int numFrames, int numFrames,
float frameLengthInMs float frameLengthInMs
); );
// void set_bone_transform( // void set_bone_transform(
// void* asset, // void* asset,
// const char* boneName, // const char* boneName,
// const char* entityName, // const char* entityName,
// float transX, // float transX,
// float transY, // float transY,
// float transZ, // float transZ,
// float quatX, // float quatX,
// float quatY, // float quatY,
// float quatZ, // float quatZ,
// float quatW // float quatW
// ); // );
void play_animation(void* asset, int index, bool loop, bool reverse); void play_animation(void* asset, int index, bool loop, bool reverse);
void stop_animation(void* asset, int index); void stop_animation(void* asset, int index);
int get_animation_count(void* asset); int get_animation_count(void* asset);
void get_animation_name(void* asset, char* const outPtr, int index); void get_animation_name(void* asset, char* const outPtr, int index);
void get_morph_target_name(void* asset, const char* meshName, char* const outPtr, int index ); void get_morph_target_name(void* asset, const char* meshName, char* const outPtr, int index );
int get_morph_target_name_count(void* asset, const char* meshName); int get_morph_target_name_count(void* asset, const char* meshName);
void remove_asset(void* viewer, void* asset); void remove_asset(void* viewer, void* asset);
void clear_assets(void* viewer); void clear_assets(void* viewer);
void load_texture(void* asset, const char* assetPath, int renderableIndex); void load_texture(void* asset, const char* assetPath, int renderableIndex);
void set_texture(void* asset); void set_texture(void* asset);
void transform_to_unit_cube(void* asset); void transform_to_unit_cube(void* asset);
void set_position(void* asset, float x, float y, float z); void set_position(void* asset, float x, float y, float z);
void set_rotation(void* asset, float rads, float x, float y, float z); void set_rotation(void* asset, float rads, float x, float y, float z);
void set_scale(void* asset, float scale); void set_scale(void* asset, float scale);
void set_camera_position(void* viewer, float x, float y, float z); void set_camera_position(void* viewer, float x, float y, float z);
void set_camera_rotation(void* viewer, float rads, float x, float y, float z); void set_camera_rotation(void* viewer, float rads, float x, float y, float z);
void set_camera_focal_length(void* viewer, float focalLength); void set_camera_focal_length(void* viewer, float focalLength);
void set_camera_focus_distance(void* viewer, float focusDistance); void set_camera_focus_distance(void* viewer, float focusDistance);
}
#endif #endif

View File

@@ -19,7 +19,10 @@
#include "ResourceManagement.hpp" #include "ResourceManagement.hpp"
#include "SceneAssetAnimation.hpp" #include "SceneAssetAnimation.hpp"
#include "PolyvoxFilamentApi.h"
extern "C" {
#include "PolyvoxFilamentApi.h"
}
namespace polyvox { namespace polyvox {
using namespace filament; using namespace filament;