It does seem to offer a higher level interface, including spatial audio.
However this proof of concept only uses the low level interface, which
is pretty similar to port audio so far, also performance-wise.
Only technical difference so far seems to be that we can actually deinit
it without crashing.
@ikabod-kee since you got better ears for this, could you check if you
notice anything that got better or worse with this transition?
Particularly, I'd like to know if you notice any improvements with
respect to #571.
Remaining work if accepted:
- [x] Include this in the libs and precompile it instead of adding it
here
- [x] remove portaudio from the libs
- [x] make a new libs release and use it here
- [x] Remove remaining references of portaudio from the source
fixes#415fixes#571
* Add the vulkan headers from the new Cubyz-libs version
* Add a GraphicsPipeline abstraction that's based on Vulkan's pipeline parameters.
This will help get rid of all the glEnable implicit state, and it will make #102 easier.
* I'm leaving out the viewport for now, it seems that it would make migration difficult
* Small fixes and rename graphics.GraphicsPipeline to just graphics.Pipeline
* Pipelinify the UI shaders
* Fix formatting
* Pipelines everywhere
* Fix the crosshair and remove remaining glEnable and related calls
* fix format
* How many more things does it need to clear the thing correctly?
* Fix selection
* Fix bloom
* Remove unused `directionalLight` uniform
* Add glslang libraries
* Update to the new Cubyz-libs version
* Dehardcode OS-dependent library file name stuff
* Audio somehow crashes on close, not sure why but I assume it's probably because of the library being compiled with a new zig version.
* Remove irrelevant uniforms from Window uniform list
* Remove unused itemdrop uniform
* Implement SPIR-V compilation code, the actual output is discarded
* Improve linking shader errors by passing a file path
* Fix formatting
* build.zig: add ../Library RPath to Mac
* build.zig: pull from specific package by system
* build.zig: MacOS: Don't link GL, redundant
* Add extra dependency for headers
* Fill the missing hashes and work around problems for linux-gnu targets.
* Update macos libraries using the glfw fork.
---------
Co-authored-by: IntegratedQuantum <jahe788@gmail.com>
Resolves#110Resolves#117 (I did however decide to use static linking, I had some issues with dynamic linking)
Also getting closer to #118
Additionally this avoids the problem caused by https://github.com/ziglang/zig/issues/17652 since harfbuzz is precompiled.
Having zig bindings was certainly nice to have, but overall the code isn't too different really.
One nice advantage of building freetype and harfbuzz directly is that we can get rid of some unnecessary dependencies, like brotli.
Also, since that was the only zig dependency outside the standard library, this finally gives me the freedom to update zig whenever I want.
This is a necessary step for #117.
Resolves#139