SFGraphics
SFGraphics copied to clipboard
Object oriented OpenGL wrapper and rendering library using OpenTK
- [ ] The sample count should be editable for GLViewport - [ ] DepthTexture should support multisampling
The bitmap flip is quite slow. The framebuffer reading methods should perform the flip manually or not flip and have the caller choose to flip or not. https://github.com/ScanMountGoat/SFGraphics/blob/309be02e80246028e6969648b1a51482d04c692e/Projects/SFGraphics/GLObjects/Framebuffers/FramebufferReading.cs#L14-L49
Buffers will most likely be initialized once and then bound to shaders many times, so there is little performance impact for doing these checks. Writes should only be checked to...
Shader setters, for example, can return false for -1 indices. This is simpler to debug than events or logs. For major errors, a more meaningful exception should be thrown.
This will probably need to be a separate class due to the differences in how attributes are handled. A separate buffer should be stored for each attribute to avoid the...
Vector math is several times faster in Rust with Glam. This may require the use of Vector4 arrays for all inputs due to SIMD types being 16 byte aligned. This...
Exceptions are used throughout the libraries for coding errors rather than runtime errors. Setting invalid attributes, for example, is almost certainly a typo that needs to be fixed rather than...
Many shader programs share shaders. Frag shaders, for example, can be quite large and take a long time to compile.
This is only useful for debugging and should be labeled as such. - [ ] float/float[] - [ ] int/int[] - [ ] uint/uint[] - [ ] vec2/vec2[] - [...