diff options
| author | Levent Kaya <leventkayadev@gmail.com> | 2026-03-24 09:36:36 +0300 |
|---|---|---|
| committer | Levent Kaya <leventkayadev@gmail.com> | 2026-03-24 09:36:36 +0300 |
| commit | 15760d2b9faa8fa5f358292fdc2cd1a231a98bdc (patch) | |
| tree | a369a82e74dda65ca997249249bf05af9f2e1889 | |
| parent | e2c823153f767ce5a23c25e3826bf80cb4ee105a (diff) | |
[docs] BACKLOG added
| -rw-r--r-- | TODO.md | 74 | ||||
| -rw-r--r-- | docs/BACKLOG_2026.md | 49 |
2 files changed, 49 insertions, 74 deletions
diff --git a/TODO.md b/TODO.md deleted file mode 100644 index 5d4b331..0000000 --- a/TODO.md +++ /dev/null @@ -1,74 +0,0 @@ -# TODO List for 2D Framebuffer Graphics Library (`fbgl`) - -## Core Rendering -- [x] Implement pixel manipulation: set, get, and clear individual pixels with color data. -- [ ] Implement basic shapes: - - [x] Draw lines. - - [x] Draw rectangles. - - [x] Draw circles. - - [ ] Draw ellipses. - - [ ] Draw polygons. - - [x] Support filled versions of shapes. - - [x] Support outlined versions of shapes. -- [ ] Implement bitmap rendering: - - [x] Render 2D images (tga) to the framebuffer. - - [x] Support transparency via alpha channels. - - [ ] Support transparency via a key color. -- [x] Implement text rendering using psf fonts. - ---- - -## Color Handling -- [ ] Support RGB color format. -- [ ] Support grayscale color format. -- [ ] Support indexed color format. -- [ ] Add utility to convert between color formats. -- [ ] Support alpha blending for semi-transparent rendering. - ---- - -## Window and Viewport -- [ ] Add windowing support: - - [ ] Define sub-framebuffers (windows) within the main framebuffer. - - [ ] Maintain independent clipping for each window. -- [ ] Implement clipping to respect rendering boundaries. - ---- - -## Utilities and Effects -- [ ] Implement 2D transformations: - - [ ] Scaling. - - [ ] Rotation. - - [ ] Translation. - - [ ] Transform relative to origin or center. -- [ ] Add optional anti-aliasing for smoother shapes and lines. -- [ ] Implement image manipulation: - - [ ] Scale tga. - - [ ] Crop tga. - - [ ] Rotate tga. -- [ ] Implement gradients and patterns: - - [ ] Fill shapes with gradients. - - [ ] Fill shapes with pattern-based textures. - ---- - -## Performance and Optimization -- [ ] Optimize batch rendering to minimize CPU cycles. -- [ ] Add hooks for hardware acceleration (optional). - ---- - -## Integration -- [ ] Provide initialization routines for creating and managing a framebuffer. -- [ ] Ensure platform independence: - - [ ] Abstract hardware details for Linux framebuffer. - - [ ] Abstract hardware details for SDL2. -- [ ] Add support for reading framebuffer content to standard image formats (e.g., BMP, PNG). -- [ ] Add support for writing framebuffer content to standard image formats (e.g., BMP, PNG). - ---- - -## Debugging and Diagnostics -- [ ] Develop diagnostics tools to inspect pixel data. -- [ ] Add debugging overlays (e.g., FPS, gridlines). -- [ ] Implement graceful error handling for out-of-bounds operations with informative messages. diff --git a/docs/BACKLOG_2026.md b/docs/BACKLOG_2026.md new file mode 100644 index 0000000..1322c38 --- /dev/null +++ b/docs/BACKLOG_2026.md @@ -0,0 +1,49 @@ +# Backlog + +## Patch +> v1.1.2 - critical bug fixes + +-[ ] Fix missing closing parenthesis in FBGL_F32RGBA_TO_U32 macro — currently fails to compile _bug_ +-[ ] Fix fbgl_draw_line termination condition — breaks for lines with negative direction (right-to-left or bottom-to-top) _bug_ +-[ ] Fix i_fbgl_sqrt_int — currently computes x*x (square) not sqrt, corrupting filled circle rendering _bug_ +-[ ] Implement missing fbgl_clear — declared in header but has no definition; rename or alias from fbgl_set_bg _bug_ + +## Minor +> v1.2.0 - input and window system + +-[ ] Fix fbgl_is_key_pressed consuming the keypress via fbgl_get_key — peek without consuming _bug_ +-[ ] Add mouse input support — position, left/right/middle button state _feat_ +-[ ] Implement fbgl_window_t API — fbgl_window_create, fbgl_window_destroy, clipped drawing within window bounds _feat_ +-[ ] Add line thickness parameter to fbgl_draw_line _feat_ +-[ ] Add fbgl_draw_triangle_outline and fbgl_draw_triangle_filled _feat_ +-[ ] Add fbgl_draw_ellipse_outline and fbgl_draw_ellipse_filled _feat_ +-[ ] Add fbgl_draw_arc primitive _feat_ + +## Minor +> v1.3.0 - rendering quality + +-[ ] Add double buffering — off-screen back buffer with explicit fbgl_swap_buffers to eliminate tearing _feat_ +-[ ] Add alpha blending / compositing — partial transparency instead of binary draw-or-skip _feat_ +-[ ] Add clipping region / scissor rect support _feat_ +-[ ] Add scaled texture rendering — fbgl_draw_texture_scaled(fb, tex, x, y, w, h) _feat_ +-[ ] Add PSF2 font support alongside existing PSF1feat +-[ ] Add polygon drawing — fbgl_draw_polygon_outline and fbgl_draw_polygon_filled with vertex array _feat_ + +## Minor +> v1.4.0 - performance & dx + +-[ ] Add thread safety — mutex guards on g_keyboard_state and previous_frame_time globals _dx_ +-[ ] Batch pixel writes with memset / SIMD where applicable for fbgl_set_bg and filled shapes _perf_ +-[ ] Add dirty-rect tracking — only flush changed regions to framebuffer _perf_ +-[ ] Add FBGL_NO_MATH compile flag to explicitly opt out of math.h dependency _dx_ +-[ ] Add comprehensive error code enum — replace magic -1 returns with named codes _dx_ +-[ ] Add debug logging mode with FBGL_DEBUG flag covering all drawing functions, not just fbgl_set_bg _dx_ + +## Major +> v2.0.0 - multi-display & extended formats + +-[ ] Multi-display support — manage multiple /dev/fbN devices simultaneously _feat_ +-[ ] PNG texture loader alongside existing TGA — reduces external tooling dependency _feat_ +-[ ] Sprite sheet / atlas support with UV rect selection _feat_ +-[ ] TTF/BDF font rasterizer — remove hard dependency on PSF bitmap fonts _feat_ +-[ ] Break fbgl_window_t into full sub-surface compositor with z-ordering _feat_ |
