À propos du projet
cute_headers est une collection de bibliothèques C/C++ multiplateformes, à fichier unique, destinées à être intégrées directement dans un projet. Chaque en-tête est autonome et ne possède aucune dépendance externe, et l'objectif affiché est principalement le développement de jeux.
Le dépôt documente les en-têtes suivants :
- cute_c2 (1.10) : détection de collision 2D sur des primitives, résultats booléens et/ou génération de variétés, tests de balayage de formes, et raycasts.
- cute_net (1.03) : bibliothèque réseau pour les jeux, offrant une couche de fiabilité optionnelle sur UDP avec un schéma de sécurité intégré.
- cute_tiled (1.07) : chargeur pour les cartes Tiled exportées au format JSON.
- cute_aseprite (1.04) : analyse les fichiers .ase/.aseprite en une collection compacte de structures.
- cute_sound (3.0) : charge, joue et boucle (avec plugin) et effectue un panoramique sur l'audio WAV et OGG (OGG via un wrapper stb_vorbis) en mono ou stéréo, avec un mélangeur personnalisé, la musique et la prise en charge du fondu enchaîné.
- cute_png (1.06) : charge et enregistre des PNG, compile des atlas de textures, un décompresseur conforme DEFLATE et un compresseur LZ77.
- cute_spritebatch (1.08) : regroupeur de sprites 2D en temps réel qui construit des atlas en mémoire à la volée, pour un rendu haute performance sans atlas précompilés sur disque.
- cute_sync (1.02) : primitives de synchronisation incluant un verrou lecture/écriture et un système de pool de threads/tâches.
- cute_tls (1.02) : crée une connexion TLS vers un site web via TCP, utile pour les requêtes HTTPS (C/C++/Obj-C).
Modèle d'utilisation : les en-têtes sont inclus directement dans le code source. Chaque en-tête définit un symbole LIBNAME_IMPLEMENTATION ; le définir dans exactement une unité de traduction et y inclure l'en-tête émet l'implémentation, tandis que les autres fichiers incluent l'en-tête normalement. Le README soutient que cette approche simplifie la distribution (un seul fichier à copier) et évite les modifications de scripts de compilation, et que des en-têtes à fichier unique bien construits utilisent les modèles avec parcimonie et placent l'implémentation dans une seule unité de traduction pour limiter le coût de compilation.
Certains en-têtes sont livrés avec du code d'exemple et des démos dans des dossiers examples ou tests correspondants, que le README recommande pour apprendre l'utilisation. La licence est indiquée par fichier, avec un choix entre le domaine public et zlib. Les en-têtes obsolètes ont été déplacés vers un dépôt séparé cute_headers_deprecated. L'auteur renvoie également vers Cute Framework, un framework de création de jeux 2D de plus haut niveau construit en grande partie sur ces en-têtes de bas niveau, et vers STB, RJM et les bibliothèques de Mattias Gustavsson comme exemples de référence de bibliothèques d'en-têtes. Le contact communautaire est proposé via un serveur Discord et Twitter (@randypgaul).
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.