intel/fastuidraw

Some questions...

Closed this issue · 2 comments

While searching for graphics libraries and lightweight GUIS for C++ I found your library and I wonder if you could give me some information :

  • Do you know if there is any open source project using fastuidraw for rendering a GUI ?
  • Are there plans to support other backends such as DirectX , Vulkan or Metal ?
  • Will the 1.0 release have support for CMake ?
  • The demos use SDL, but I think it will work with GLFW, right ?

Answers

  • I am not aware of any open source project using FastUIDraw at this time. However, this makes perfect sense since FastUIDraw just had its 1.0 release last week and up until that release its API had changed frequently.
  • At one point I had plans to make a Metal backend. Platforms that support OpenGL have zero use/reason to have a Vulkan backend unless the drivers are REALLY bad. A Vulkan backend would essentially use the current GLSL module to build shaders at runtime along with an open source library that creates SPIR-V from such shaders to feed the Vulkan implementation. A Metal backend would require that all the shaders are ported to Metal which is quite a bit of work. However, I am happy to accept pull requests that implement backends (Vulkan, Metal or Direct3D for example).
  • I have no plans to support cmake at this point. However, the build system just uses GNU make (and NOT auto-tools) and has bits in it to make building easier (just type make to see how to build it really and ideally read the documentation). I am happy to accept pull requests that provide cmake support that is easily maintained and supports all the features in the current GNU-make build system (specifically ability to build both debug and release along with both the GL and GLES backends). In addition, I would love to accept a pull request that implements meson support.
  • FastUIDraw is completely agnostic about how an application creates a window and GL/GLES context. Indeed, the project https://github.com/krogueintel/qtwebkit.fastuidraw/tree/5.212.fastuidraw-QOpenGLWidget has Qt create the window and GL context. However, an application must provide to FastUIDraw a function with which to fetch GL (or GLES) function pointers. See https://intel.github.io/fastuidraw/docs/html/d8/d4c/namespacefastuidraw_1_1gl__binding.html and the example in the documentation, https://intel.github.io/fastuidraw/docs/html/de/d50/ex_initialization.html. For GLFW, just wrap the function glfwGetProcAddress() appropriately, again see the example.

Thanks for the info !
I would suggest to register your project with C++ Awesome. It would be easier for people to find it.
Best regards.