Comments (2)
Fair enough! This would be complicated to do and have a high maintenance cost. I think one day in the future it might want to be reconsidered, though.
if other developers want to use another library (like DirectXMath or SIMDJSON), they can do that without any problems and don't have to work with the one that is used.
That's not entirely without problems imo. For one, having redundant dependancies like GLM + DXMath or GLFW + SDL2 would significantly increase the binary size and compile times, which could be hard on game development.
There's also the possibility that somebody might have an existing DirectX11 project, and decide that the best way to support Vulkan would be Liblava rather than WineAPI. WineAPI is harder to debug than a thinner Vulkan abstraction, it's theoretically less portable, Idk. But then they might have issues casting between GLM and DXMath data, and the codebase becomes generally more complicated.
And GLFW vs SDL2 is a very fundamental decision that could be non-starter for some users. I think this would be the most important thing to consider supporting.
At least having an option for not compiling ImGui, for instance in a release build, could also help a lot with the binary size and compile times in cases where it's only being used for debugging menus that can be excluded from release.
from liblava.
Well, liblava comes with these dependencies. There used to be even a few more, but they were removed 😉
I would not like to introduce #defines and change that in CMake. If other developers want to use another library (like DirectXMath or SIMDJSON), they can do that without any problems and don't have to work with the one that is used. Also, this library is very modular, so you can leave some things out if you want.
And if the cloning, which fortunately only has to be done once, takes a little longer, then I find that quite acceptable.
We'll see how it behaves in the future. I'm still looking forward to C++ modules support in CMake, which I really hope would be a nice christmas present this year 🎁
from liblava.
Related Issues (20)
- Please support MSYS2 MINGW64 HOT 10
- Queue creation improvements HOT 7
- Independent Project Build Fails - freetype not found HOT 2
- Install Instructions are Incorrect HOT 1
- FBX Loading HOT 4
- HLSL Examples HOT 1
- RAII Abstractions HOT 1
- Latest release can not be built from Release downloads HOT 1
- Single validation error, not critical Linux Nvidia HOT 1
- Outputting fps to a text file? HOT 10
- PresentMon-like frametime logging HOT 2
- Request for compute example HOT 1
- Request for imgui docking HOT 2
- Does cmake ver need to be that high? Raspberry OS on 3.18 HOT 5
- How do I set up a cmake project? HOT 3
- Why can't I see Shader edits reflected in the program? HOT 2
- Add support to supply semaphores to renderer HOT 1
- Unable to take screenshots (how to best extend create methods) HOT 2
- Resize causes crash on Linux (tested with AMD gpu)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from liblava.