Commit Graph

116 Commits

Author SHA1 Message Date
Nick Fisher 47807d560f separate native methods for creating IBL from irradiance texture and harmonics 2025-06-12 11:33:38 +08:00
Nick Fisher ad26fc4563 add Dart IndirectLight and Ktx1Bundle classes, and separate KTX decoding from skybox/IBL creation 2025-06-12 11:31:44 +08:00
Nick Fisher 32fe54ac09 (web) on Emscripten builds, use static global wrapper function for texture upload complete callbacks (this is needed because all callbacks need to be proxied to the main thread 2025-06-11 11:08:13 +08:00
Nick Fisher 8998f1f740 add RenderableManager_getBoundingBox 2025-06-11 09:50:48 +08:00
Nick Fisher 8f1da5e7bd separate skybox/ibl creation from KTX decoding 2025-06-11 09:48:17 +08:00
Nick Fisher 073976b40e logging 2025-06-09 18:13:54 +08:00
Nick Fisher 6d0844f873 logging 2025-06-09 18:13:44 +08:00
Nick Fisher 983d1373ba logging 2025-06-09 18:13:35 +08:00
Nick Fisher 0dd64a07bb add helper method to convert between TStencilFace and MaterialInstance::StencilFace (not strictly necessary, but will help if something upstream changes in future 2025-06-09 18:12:17 +08:00
Nick Fisher acf03ea0c7 pass TFogOptions by value, not pointer, and rearrange struct fields to minimize alignment issues 2025-06-05 16:40:53 +08:00
Nick Fisher 840f3599e7 logging 2025-06-04 11:04:52 +08:00
Nick Fisher d0da7f49f3 when destroying a SceneAsset, if the object is an instance, call destroyInstance on the owner of instance rather than deleting the object directly 2025-06-04 10:48:07 +08:00
Nick Fisher b1617004d7 add missing EMSCRIPTEN_KEEPALIVE from Texture_generateMipMapsRenderThread 2025-06-02 14:58:11 +08:00
Nick Fisher 7b80723560 add Texture_generateMipMapsRenderThread, AnimationManager_resetToRestPoseRenderThread 2025-06-02 11:51:19 +08:00
Nick Fisher 2f7f363db9 pass shared NameComponentManager to gltfio AssetLoader 2025-05-31 11:21:57 +08:00
Nick Fisher 86894cf583 add alpha/requireAlpha argument when decoding images
remove size checks from setImage (we are assuming the caller knows the correct size)
This also adds some monkey-patch methods to js_interop to convert Float32List to a UInt8List (but use this with care, because it will only work for emscripten-allocated objects)
2025-05-29 22:26:42 +08:00
Nick Fisher beeb45609c don't take reference to Builder 2025-05-29 18:57:01 +08:00
Nick Fisher 94eacec27e Texture improvements: generateMipmaps(), add levels to createTexture, tests to check auto mip level selection 2025-05-29 18:38:57 +08:00
Nick Fisher 45c7831a17 replace libpng with stb_image for Image_decode 2025-05-28 21:51:56 +08:00
Nick Fisher fcf57e8850 fix missing return value in EntityManager_createEntity 2025-05-28 21:48:24 +08:00
Nick Fisher a875f370e5 remove logging 2025-05-28 18:41:02 +08:00
Nick Fisher 1e812ebe93 allow directly creating an entity and setting transform 2025-05-24 16:33:58 +08:00
Nick Fisher 81fb0fb583 add setFogOptions 2025-05-24 15:05:03 +08:00
Nick Fisher 4505cbe325 add missing setExposure methods + reinstate camera tests 2025-05-24 10:51:56 +08:00
Nick Fisher 195a625738 when getMaterialInstance/setMaterialInstance are called, if entity is not renderable, return false
if no entity is passed, iterate through all entities and use the first renderable entity
2025-05-23 16:27:38 +08:00
Nick Fisher 1fb68b20e9 separate Gltf/Morph/BoneAnimationComponentManager definitions
move gltf animation instantiation to GltfAnimationComponentManager (this helps ensure we are creating the component on the correct entity)
2025-05-20 14:57:26 +08:00
Nick Fisher 11ff6c9053 remove TMaterialKey struct and pass directly as function params 2025-05-18 15:11:50 +08:00
Nick Fisher 25ada92574 add View_pickRenderThread method (only used in WASM builds so we can proxy the callback to the main thread 2025-05-18 15:09:05 +08:00
Nick Fisher 826a22f348 wip 2025-05-18 15:08:45 +08:00
Nick Fisher fe11479b08 remove relativeResourcePath from gltf resource loading;
all external resources should be added on the Dart side, Filament should never attempt to load these directly from the filesystem.
relativeResourcePath (called gltfPath on the Filament side) is only used for desktop loading, so this is now irrelevant.
Note that Filament must be compiled with GLTFIO_USE_FILESYSTEM=0
2025-05-17 21:48:18 +08:00
Nick Fisher c98e604e76 split animation components into GltfAnimation/MorphAnimation/BoneAnimation 2025-05-17 10:11:55 +08:00
Nick Fisher c47cfe9b57 transformToUnitCube returns bool (false when transform instance can't be found) 2025-05-10 09:04:06 +08:00
Nick Fisher 4a5a1d0157 remove debug printing 2025-05-09 11:22:25 +08:00
Nick Fisher 2f16908992 feat! js_interop improvements 2025-05-07 17:06:38 +08:00
Nick Fisher e9628511fc remove C++ includes from C headers 2025-05-07 16:53:15 +08:00
Nick Fisher 4cb725d47e add Engine_destroyCamera 2025-04-19 09:49:19 +08:00
Nick Fisher e1d5d14ff7 add RenderTarget_destroyRenderThread 2025-04-17 13:35:07 +08:00
Nick Fisher 1be1979c05 rename requestAnimationFrame to requestFrame 2025-04-17 13:34:18 +08:00
Nick Fisher 426d6c4ed6 use render thread methods for all async gltf loading 2025-04-16 19:07:55 +08:00
Nick Fisher ef775b2e2c add GltfResourceLoader_asyncBeginLoadRenderThread 2025-04-16 18:00:31 +08:00
Nick Fisher 2d4342607d add async gltf resource loading 2025-04-16 17:06:51 +08:00
Nick Fisher aaa74f0267 add missing Camera_getFov method 2025-04-16 13:28:02 +08:00
Nick Fisher ddba3c35ab logging 2025-04-02 23:00:44 +08:00
Nick Fisher e407e75389 add EMSCRIPTEN_KEEPALIVE to swap chain flags 2025-04-02 22:23:47 +08:00
Nick Fisher 99217499f9 remove old SceneManager references 2025-03-28 15:55:35 +08:00
Nick Fisher ecb8d8672a fix instancing so that gltf assets always fill the first instance slot 2025-03-28 13:06:36 +08:00
Nick Fisher 999b1e613f refactoring + texture projection 2025-03-25 09:39:02 +08:00
Nick Fisher 0cbbc058e0 refactoring 2025-03-22 10:49:24 +08:00
Nick Fisher a67f42f0de refactoring 2025-03-21 17:18:16 +08:00
Nick Fisher 255c0edd49 refactoring 2025-03-21 14:56:20 +08:00