summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLevent Kaya <leventkayadev@gmail.com>2026-03-24 09:36:36 +0300
committerLevent Kaya <leventkayadev@gmail.com>2026-03-24 09:36:36 +0300
commit15760d2b9faa8fa5f358292fdc2cd1a231a98bdc (patch)
treea369a82e74dda65ca997249249bf05af9f2e1889
parente2c823153f767ce5a23c25e3826bf80cb4ee105a (diff)
[docs] BACKLOG added
-rw-r--r--TODO.md74
-rw-r--r--docs/BACKLOG_2026.md49
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_