You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm just trying to think of as how a novice would see GFX. I mean the first though is, why use this over bare opengl or HGL? Might be a marketing question more then a technical question. - @csherratt
I'm very positive about the low-level interface that gfx-rs provides at the moment. We have a narrow but pretty definite scope, which gives a chance to produce a high quality library for that domain. A small piece to do its thing right - abstract the device, put it into its own thread, provide safe interface for drawing stuff. - @kvark
It's safe, it's bindless, it supports multiple backends to help support older architectures. It gives the user a mult-threaded render. - @csherratt
The text was updated successfully, but these errors were encountered:
It's not difficult to hack a simple graphics app on a bare API like OpenGL. It is difficult to scale it both in size and onto other APIs. Typical issues:
C API unsafety leading to undefined behavior or crashes. gfx-rs wraps it safely.
API's are ... different. gfx-rs architecture is made for compatibility with modern graphics APIs, like Mantle, Metal, DX12, and GLNG.
Leaking states due to either programmer errors or state caching bugs. gfx-rs is a bind-less API (!), where we can join forces to make sure the state caching under the hood is perfect.
Illegal function calls and/or parameters. I.e. invalid buffer strides, element offsets, wrong glVertex_PointerCall function, wrong glUniform_ call, etc. For the hand-written vertices and programs, gfx-rs has #[vertex_format] and #[shader_param] macros that do wonders. For the loaded stuff, we can at least ensure proper function calls based on the data types.
Mismatched states between different graphics systems. I.e. shader attribute locations/semantics versus actual data. gfx-rs enforces that to match.
All in all, gfx-rs tries to do all the dirty caching/matching/abstracting/safety wrapping work, while (ideally) not imposing any restrictions on what you want to do.
The text was updated successfully, but these errors were encountered: