* When using the Metal rendering backend and updating the window handle
via setPlatformData(), the passed in Metal layer was not stored.
* Instead, the old window handle was still used.
* The fix addresses a scenario where two BGFX-backed Metal views on iOS
are created and rendering needs to happen either on one view or the other.
Found via `codespell -q 3 -S "./3rdparty,*.ttf,*.bin,./examples/common/imgui,./examples/common/font" -L attribut,ba,clude,conly,constan,espace,hashin,indext,inout,lod,nclude,retur,ser,sroll,struc,te,truct,unknwn,usin,utput,varyin`
* Support both X11 and Wayland in the same build.
- Works for both Vulkan and OpenGL.
- Remove --with-wayland from genie options.
- Vulkan loads all three extensions for surface creation instead of only one.
- Add width and height parameter to GlContext::createSwapChain(), which is needed for EGL to create
a SwapChain with the given window size.
- Dirty-fix the example-22-windows to recreate the FrameBuffer by first destroying and then
recreating to make sure the window is released of its swapchain.
- Fix dbgText glitch in example-22-windows.
- Remove old X11-related dependencies for GLFW3.
* Formatting.
VisionOS SDK was introduced in xcode 15.2.
xcode 15.0, 15.1 do not have the visionOS platform defined.
Additionally, if you use a different llvm such as llvm 17 or 18 from
homebrew, the platform might not be defined even when using xocde 15.2 or
newer.
* Restore support for older macOS/iOS version. Determine features at init, and use at runtime.
* Fix typo for visionOS macro expansion.
* Silence warnings with pragmas and pointer casts where possible.
* Pragma macros.
* Fix toggling MSAA on Metal.
m_backBufferColorMsaa was set when sampleCount > 1, but was never reset when
sampleCount became 1 again.
Many other bits of code in the Metal renderer decide what to do by checking
m_backBufferColorMsaa, so these would all do the wrong thing if you toggled
MSAA on and them back off.
* Cleanup
* Add support for remaining unsupported ASTC formats
Add new ASTC formats into pixelformats example and ninja scripts
Rebuild ASTC textures
* Update idl and generate
Move comma in pixelformats
Co-authored-by: Raziel Alphadios <raziely@gmail.com>
* Add 'frameNumber' to Frame struct
Previously, the frame number returned from bgfx::frame() was tracked separately in the Context. Now,
we store that information in the Frame. This will allow us to attach the frame number to ViewStats.
* Add frame number to ViewStats
When ViewStats are enabled, we tag each timer query with the current frame number, then include
that information in the final results. In this way, clients can correlate specific work that they
submitted to specific GPU timing information.
NOTE: Some backends not implemented, yet. They will always have 0 for frame number.
The ones which are implemented are:
* OpenGL
* Vulkan
* D3D 9,11,12
* Noop
d3d9: Do software conversion to take advantage of B5G6R5.
d3d11: Do software conversion to take advantage of B5G6R5.
gl: Set internal representation to swap R and B.
metal: Swizzle R and B and remove software conversion.
* texture format info: Invert R and B in RGBA4
d3d9: Revert 06c08adc9e to force software
conversion because the format doesn't exist
d3d11: Force software conversion because the format doesn't exist
gl: Revert 3e3e655262 to swizzle R and B
mtl: Swizzle channels
* metal: Remove explicit conversion of RGBA4 and RGB5A1 in osx
* metal: Set alpha bit to correct end of short
d3d9: Revert 76db2ed38d to force software
conversion and use the format that does exist
d3d11: Force software conversion because the format doesn't exist
gl: Revert b36aa71403 to swizzle R and B
mtl: Swizzle R and B