Metadata-Version: 2.4
Name: PyBitEngine
Version: 0.1.0a0
Summary: Motore grafico 2D GPU-accelerato per Python con rendering instanced, texture atlas e camera 2D.
Author-email: BitufStudio <bitufmusic@gmail.com>
License: MPL-2.0
Project-URL: Homepage, https://github.com/HakerBituf/PyBitEngine
Project-URL: Documentation, https://hakerbituf.github.io/PyBitEngine/
Project-URL: Repository, https://github.com/HakerBituf/PyBitEngine.git
Project-URL: Issues, https://github.com/HakerBituf/PyBitEngine/issues
Keywords: pybitengine,game-engine,2d-graphics,gpu-rendering,modern-gl,sdl2,numpy,numba,texture-atlas,batch-rendering
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Classifier: Topic :: Multimedia :: Graphics
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: PySDL2>=0.9.7
Requires-Dist: moderngl>=5.7.0
Requires-Dist: numpy>=1.21.0
Requires-Dist: numba>=0.56.0
Requires-Dist: Pillow>=9.0.0
Dynamic: license-file

# PyBitEngine ⚡

[![Documentation](https://img.shields.io/badge/docs-online-brightgreen)](https://hakerbituf.github.io/PyBitEngine/)
[![License](https://img.shields.io/badge/license-MPL--2.0-green)](https://github.com/HakerBituf/PyBitEngine/blob/main/LICENSE)
[![Python](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)

**Motore grafico 2D GPU-accelerato per Python — basato su SDL2, ModernGL, NumPy e Numba.**

PyBitEngine è una libreria per sviluppatori che vogliono disegnare **migliaia di oggetti 2D** a 60 FPS, senza impazzire con OpenGL. 
Usa rendering instanced sulla GPU, texture atlas, e kernel Numba per zero overhead a runtime.

---

## 📦 Versione: **0.1.0-alpha**

API in evoluzione. Feedback e contributi sono benvenuti!

---

## ✨ Cosa fa davvero (dal codice)

- **Rendering GPU instanced** — una draw call per migliaia di rettangoli, linee, triangoli, ellissi o sprite
- **Texture Atlas** — carica le immagini in un unico grande texture, con allocatore MaxRects
- **Camera 2D** — due versioni: 
  - `CameraGPU`: FBO offscreen + blit shader (zero overhead CPU, 1 draw call extra)
  - `CameraCPU`: trasformazioni esplicite (controllo totale, debug)
- **Font rendering** — TTF/OTF su texture atlas (Pillow + caching)
- **Eventi SDL2** — tastiera, mouse, drag, scroll (tutti i tasti `PE_K_*`)
- **Collisioni geometriche** — punto, rettangolo, triangolo, ellisse, cerchio, OBB (con SAT)
- **Zero allocazioni a runtime** — buffer preallocati, Numba per il packing

---

## 🚀 Installazione

```bash
pip install PyBitEngine
