Filamat public headers were including a private header. This PR fixes
this problem. It also forces filamat to always be compiled to avoid
breaking filamat without noticing. The flag `-l` is not available
anymore in build.sh as a result.
Eventually the framefraph will deduce some of these things automatically,
but for now, the texture format must be specified.
Also added a couple error checks in the gl backend.
when blitting from a multisample render target, we must use the
resolved buffer (b/c resolve is always done in endRenderPass), currently
we were basically resolving twice.
Some GPU seem to loose the content of UBOs for draw calls emitted
before a glFlush followed by more draw calls.
On those GPUs, we just never call glFlush, which could result in
reduced parallelism between the cpu and gpu.
The new gltf_viewer app has an optional zero-arguments mode whereby it
loads a resgen-embedded binary model, which is useful for quick
sanity testing. If you don't specify an IBL, it loads a compressed
version of the pillars IBL.
no need to hide the implementation anymore, since the whole thing
is internal and doesn't appear in public headers.
this saves a dynamic allocation when unflattening materials.
We will need 6 pre-compiled materials (lit vs nonlit and the 3 blend
modes). This uses CMake's "configure_file" functionality to generate 6
mat files, then invokes matc on each one. They are then combined using
resgen.
- getCameraComponent(Entity) retrieves a Camera component from an entity
- destroyCameraComponent(Entity) destroys just the camera component
attached to an entity.
destroyCamera() are now deprecated because the API is confusing, it's
not immediately clear that it's destroying all component + the entity
itself.
Node: We don't add the corresponding Java APIs yet because there is no
easy way to guarantee they're safe without making sure that
getCameraComponent() will always return the same instance (which it
wouldn't currently).