Introduction
NEOGFX est une plate-forme C ++ App / Game Engine and Development ciblée sur les développeurs d'applications et de jeux qui souhaitent tirer parti des GPU modernes pour les interfaces utilisateur d'applications performantes et les graphiques de jeu. Neogfx est toujours un travail en cours (incomplet), il n'est donc pas encore adapté à la création d'applications ou de jeux. Actuellement, Neogfx n'a été conçu et testé que sur Windows.
Fonctionnalités (lorsque la version 1.0 est sortie)
- Nettoyer la conception C ++ moderne Tirageant le C ++ 20 et y compris la sécurité complète des exceptions prenant en charge divers modèles d'allocation de widgets (pile, variable membre ou magasin gratuit);
- Utilisation de types de données C ++ standard non propriétaires, y compris à l'aide de classes de chaîne standard (codage UTF-8) et de conteneurs de la bibliothèque standard C ++;
- Système d'événements multiplié simple et facile à utiliser (une amélioration par rapport aux signaux et emplacements traditionnels);
- Pas de bagages: Neogfx ne contient principalement que l'interface graphique et les fonctionnalités liées aux graphiques nécessaires à la création d'applications et de jeux;
- Bibliothèque complète de widgets et gestionnaires de mise en page spécifiables dans un RJSON (JSON détendu) dérivé de l'interface utilisateur dérivé la langue glisser / drop modifiable à l'aide de l'outil de conception inclus, Neogfx Design Studio;
- Prise en charge de la feuille de style CSS3 avec prise en charge des skins personnalisés;
- Scripting Engine, NEOS, qui pourra prendre en charge une large gamme de langages de script (à la version: Neoscript, JavaScript et Lua);
- Rendu de texte sous-pixel;
- style de fenêtre simple pour spécifier qu'une fenêtre est "imbriquée" plutôt que d'être une fenêtre de bureau native distincte;
- Le widget "text_edit" prend en charge plusieurs polices, couleurs de texte (avec des effets de gradient facultatif), des emojis de couleur et du texte de rendu dans des colonnes;
- Modes "Green" et "Arcade" pour optimiser la consommation d'énergie du processeur, combattez #ClimateChange!
- GPU Shader a rendu les gradients conformes CSS3 avec lissage gaussien en option;
- Classes connexes MVC (Model-View-Controller) prenant en charge la conception robuste et rapide des applications;
- Prise en charge MDI en option en utilisant des fenêtres "imbriquées";
- Support de jeu 2D, 2.5D et 3D: sprites, objets et physique;
- Pure ECS (entité-composant-système) utilisable par les jeux et les applications;
- Gestion des actifs flexibles: les images de texture (par exemple PNG) peuvent être stockées dans des archives .zip qui peuvent être éventuellement intégrées à l'intérieur du programme binaire accessible à l'aide d'URL simples;
- Prise en charge d'OpenGL, DirectX et Vulkan.
Feuille de route
| Version | ETA | Caractéristiques |
|---|
| V0.99 | Wid * | Windows OpenGL; fonctionnalité de bibliothèque de widget complète; Outil de conception de l'interface utilisateur |
| v1.00 | Wid + 12 mois | Linux OpenGL; script |
| v1.10 | Wid + 24 mois | Vulkan; Support Android; moteur de physique |
| v1.20 | Wid + 36 mois | Support macOS |
* Quand c'est fait
Progrès de la mise en œuvre
| Fonctionnalité | % fait | FAIRE |
|---|
| Fenêtre | 95 | Ombre |
| Dialogue | 90 | Bouton par défaut |
| Boîte de message | 100 | |
| Menu | 100 | |
| Fenêtres imbriquées | 90 | |
| MDI | 0 | |
| Onglets | 95 | Tabs verticaux |
| Barres d'outils | 90 | Prise en charge du bouton déroulant |
| Gestionnaires de disposition | 95 | Besoin de soutenir pleinement les politiques de taille |
| Étiquette | 100 | |
| Bouton | 100 | |
| Vue de la table | 95 | Sélection; widget cellulaire |
| Vue de l'arbre | 95 | |
| Affichage de la liste | 95 | |
| Modifier le texte | 90 | Colonnes; Texte riche (HTML); défaire / refaire |
| Édition de ligne | 100 | |
| Rotation | 100 | |
| Curseur | 90 | Clavier |
| Cocher | 100 | |
| Bouton radio | 100 | |
| Boîte combo | 95 | Filtres glob et regex; Revoir UX. |
| Boîte de groupe | 100 | |
| Conseils d'outils | 0 | |
| Barre de statut | 100 | |
| Barre de progression | 95 | |
| Quais | 75 | |
| Cueilleur de police | 99 | Filtre monospace |
| Sélecteur de gradient de couleur | 95 | Bibliothèque d'échantillons |
| Cueilleur de couleurs | 100 | |
| Date / heure | 0 | |
| Navigateurs de fichiers (natif) | 99 | |
| Faire glisser et laisser tomber | 75 | |
| Description de l'interface utilisateur / des ressources (RJSON) | 40 | |
| Outil: Neogfx Design Studio | 10 | |
| i18n | 70 | |
| L10N | 0 | Anglais britannique, anglais américain, français, allemand, chinois |
| HID: Contrôleurs de jeu | 80 | Étalonnage / paramètres UI; Mappage de bouton DirectInput |
| Multi-moniteur | 50 | DPI change lorsque vous changez ou traînant entre les moniteurs |
| Graphique de scène | 0 | |
| Peaux | 40 | |