9prady9 · GitHub

@9prady9

@9prady9

@9prady9 9prady9 changed the title Changes to use glbinding 3.0.2 and Forge 1.0.3 Changes to load graphics libraries at runtime

Dec 6, 2018

@9prady9

@9prady9

@9prady9

@9prady9

@9prady9

@9prady9

umar456

@9prady9

@9prady9

@9prady9

@9prady9

- Forge is no longer a linktime dependency
- glbinding is not a dependency going forward.
- glad GL loader is a compile time dependency, but not required during
link-time or run-time.
If forge and it's dependencies (glfw, fontconfig, freetype) are
available at runtime, graphics functionality will automatically
work as it should, otherwise a runtime exception is thrown.
In order to make this runtime loading of graphics dependencies happen,
all the graphics(forge) C++-API calls have been refactored to use C-API.
An additional, miscallaneous change is that interop manager class and
it's derived classes are cleaned up a bit.
Going forward from commit where graphics dependencies are loaded
at runtime, all builds can be built with graphics code enabled since it is
not a link time dependency.
If graphics library Forge & OpenGL, and their respective dependencies
are loaded successfully at runtime, then the user will be able to use
graphics. Hence, the option to build with or without graphics is not
needed from now on.
However, a new cmake option `AF_BUILD_FORGE`, which is disabled by
default, is provided to enable building forge(submodule) along with
arrayfire code to help in cases where a developer chooses to
use graphics functionality either for testing, debugging or packaging.

@9prady9

umar456

umar456 previously approved these changes Dec 19, 2018

@9prady9

@9prady9

@9prady9

@9prady9

Read the original on github.com ↗