Open danilw opened 1 year ago
is adding support for macos something you would consider? I may contribute an initial thing that works, can't promise that I'd be able to maintain it though
is adding support for macos something you would consider? I may contribute an initial thing that works, can't promise that I'd be able to maintain it though
I do not see reason to do it, because Vulkan is not "native API" for MacOS
Main point of this tool vulkan-shadertoy-launcher - minimal Vulkan application to create "demo-like" offline applications with minimal size, this compiled launcher about 30Kb size - it is minimal what you can do with Vulkan.
But on Mac to make Vulkan work there - you need to include entire size of MoltenVK that many megabytes...
At this point - just use webbrowser, or Electron-application to make offline Shadertoy app for MacOS. Making minimal non-native app for MacOS that require large many megabytes library to work - is same as creating minimal webpage and use webbrowser/electron to launch/render it.
My TODO for vulkan-shadertoy-launcher:
Small fixes:
Implementing missing features:
Mipmaps for buffers support - I have no idea how to do proper/correct mipmaps using Vulkan 1.0 without extensions.\ As I know fastest way to do mipmaps in Vulkan is - using compute shader https://github.com/nvpro-samples/vk_compute_mipmaps it requires extension. (so I mean il implement it as option, to keep Vulkan 1.0 minimal rendering)
Video-texture support and cubemaps, and maybe 3d texture support. (video encoding? I dont want include 50Mb ffmpeg libraries)
Audio - its simple to generate audio texture Some details on Shadertoy FFT my Godot implementation\ But playing audio - for Windows can be used mmsystem, example implementation of mmsystem\ But for Linux OS - no idea how to make it simple and small without dependencies, including fmod explode bin-build by 500Kb when original size 50Kb... need look into finding solution for it
Fix discard in Image shader - maybe... required moving rendering of Image shader to its own framebuffer... I do not like creating not needed overhead, so maybe will be optional.
Additional features: