vulkan-go / vulkan

Vulkan API bindings for Go programming language
MIT License
744 stars 56 forks source link

remove glfw dependency #4

Closed CreatureDev closed 7 years ago

xlab commented 7 years ago

@CreatureDev Hi! Is this a suggestion or a question?

In order to remove support of GLFW, one should implement all 5 backends (i.e. loaders & surface managers) that GLFW covers for now: OS X, windows, linux-xcb, linux-wayland and linux-mir.

And instead of 1 very popular, very lightweight dependency that is kept up-to-date, we will have 5 more dependencies with almost no guarantees nor support.

With GLFW3.3 release, we would be able to use the Go package from gl-go team.

CreatureDev commented 7 years ago

It was a suggestion as vulkan programs do not need a window to function. People could choose to create a program that simply does compute or off-screen rendering, and the GLFW dependency does nothing but inflate their program.

xlab commented 7 years ago

@CreatureDev I understand your concern, note that for systems that really don't need a window, like Android, iOS and compute, there is no GLFW dependency.

The target is called "compute" and can be activated using building tag: -tags compute or -tags headless https://github.com/vulkan-go/vulkan/blob/master/vulkan_compute.go

GLFW comes into the play only if you really need a window.

CreatureDev commented 7 years ago

Ah I didn't realize that was an option Thanks

jclc commented 6 years ago

What if you use another library like SDL2 or SFML?