Giter Site home page Giter Site logo

Optional Dependencies about liblava HOT 2 CLOSED

liblava avatar liblava commented on May 22, 2024
Optional Dependencies

from liblava.

Comments (2)

Cons-Cat avatar Cons-Cat commented on May 22, 2024 1

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.

TheLavaBlock avatar TheLavaBlock commented on May 22, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.