[N-Gage] Set proper brush style to draw filled rects properly.
[N-Gage] Add persistent buffers to avoid per-frame memory allocations (which are expensive)
[N-Gage] Add support for SDL_TEXTURE_ACCESS_TARGET, fixes#13165
[N-Gage] Update README, add hint that the compiler does not support aggregate initializations for structs (knowing this, avoids a lot of headache during debugging)
[N-Gage] Add basic fast-path optimisations for render operations.
[N-Gage] Fix line drawing.
- Skip SDL_GetRenderScale call in Copy() fast path
- Cache last clear color to avoid redundant SetBrushColor calls
- Add whole-image bounds pre-check to skip per-pixel checks in rotation
- Simplify color packing in DrawPoints/FillRects to reduce overhead
- Add reusable line points buffer to eliminate per-call heap allocations in DrawLines.
- Cache last draw color to skip redundant SetPenColor/SetBrushColor calls.
- Pre-compute cardinal angle constants (0°, 90°, 180°, 270°) for CopyEx fast-path.
- Cache color modulation state to avoid redundant LUT rebuilds.
- Add missing break statement in HandleEvent.
- Initialize previously uninitialized lastTime variable in UpdateFPS.
- Replace FixDiv with inverse scale factors in ApplyScale
- Improve incremental DDA in ApplyRotation
- Optimize ApplyColorMod bit manipulation and LUT addressing
- Batch color changes in DrawPoints and FillRects to reduce API overhead
- Add early-exit optimizations to Copy/CopyEx for common cases
- Streamline Flip function by removing unnecessary API calls
- Fix vertex indexing bug in FillRects
- Implement lookup tables for faster color modulation
- Cache 0°/90°/180°/270° rotations for speedup on common angles
- Add dirty rectangle tracking infrastructure
- Process 4 pixels at a time in all transform operations
- Remove SDL_Surface member from NGAGE_TextureData structure and update all functions that currently use
surface->pixels to instead access bitmap->DataAddress() directly. This eliminates the intermediate copy
step (Mem::Copy from surface to bitmap) in rendering operations.
- Eliminate per-frame allocations in Copy/CopyEx methods. These buffers are now allocated once and resized
only when needed.