News

Castor3D: Castor3D en version 0.7.0

Added by dragonjoker59 18 days ago

Version 0.7.0

Modifications

CMake

  • Ajout de la possibilité de changer le dossier des binaires, au travers des variables PROJECTS_BINARIES_OUTPUT_PATH et PROJECTS_BINTEMP_OUTPUT_PATH.
  • Ajout du support d'AStyle, activé via l'option PROJECTS_USE_PRETTY_PRINTING.
  • Utilisation de CPack pour générer le setup WiX (ou DEB), activé via l'option PROJECTS_PACKAGE_WIX (respectivement PROJECTS_PACKAGE_DEB).
  • Ajout de la possibilité d'activer le profileur de code de Visual Studio, avec l'option PROJECTS_PROFILING.
  • Ajout de la possibilité de choisir quels projets du Castor sont à générer (dans le groupe CASTOR).
  • Réorganisation globale de l'arborescence des fichiers

Général

  • Découpe des fichiers afin de n'avoir plus qu'une classe par fichier.
  • Support de la compilation x64.
  • Compabilité avec wxWidgets 2.8 et Linux améliorée.
  • Ajout de fonctions Destroy pour chaque fonction Create dans les plugins, afin que la création et la destruction de ceux-ci se fasse dans l'espace mémoire des DLL (pour Windows).
  • Ajout du plugin d'import ASSIMP, permettant d'élargir le nombre de formats supportés. La fonction ImporterPlugin::GetExtensions permet maintenant de récupérer un tableau de paires <extension, file type>.

CastorUtils

  • Toutes les variables statiques et globales ont été enlevées.
  • Remplacement de la classe String par une classe str_utils.
  • Suppression des dépendances à boost, à part pour thread, et uniquement pour les compilateurs ne supportant pas std::thread.
  • Les macros cstrnlen, cstrftime, cstrncpy, cfopen, cfopen64, cfseek et cftell ont été remplacées par des fonction dans Castor.
  • Suppression de la macro DECLARE_SHARED_PTR, remplacée par DECLARE_SMART_PTR, et les typedefs XxxPtr ont été remplacés par leurs équivalents XxxSPtr.
  • Suppression de l'encodage Unicode pour les fichiers.
  • Ajout du support de l'indentation de flux.
  • Améliorations de Castor::FileParser :
    • Il peut ignorer des sections de code sans avoir à les commenter (tels que les blocs de shader HLSL alors que le RenderSystem chargé est GlRenderSystem, etc.).
    • Il prend en compte les paramètres des fonctions d'analyse.
    • Les fonctions peuvent maintenant avoir des paramètres, pas uniquement des types de paramètres, et ces paramètres s'analysent eux-mêmes.
  • Réduction de l'occupation mémoire des images.
  • Modification de Point :
    • les fonctions non dépendantes ont été déplacées dans une classe d'aide : Castor::point. Cette classe contient donc les fonctions normalise, get_normalised, dot, cos_theta, negate et toutes les fonctions de calcul de distance.
    • Suppression des méthodes link, copy/clopy/clone.
    • Il contient maintenant un tableau statique au lieu d'un tableau dynamique.
  • La classe Castor::Colour ne dérive plus de Point4f.
  • La fonction DynamicLibrary::GetFunction a été modifiée, ajout d'un paramètre template, le type de fonction, afin de ne plus avoir de conversions lors de l'utilisation de DynamicLibrary::GetFunction.
  • Ajout du support des niveaux de log pour Castor::Logger.
  • Modifications de Castor::Line3D :
    • Implémentation de la méthode de calcul d'intersection
    • Cette classe a maintenant deux constructeurs nommés : FromPointAndSlope et FromPoints, pour éviter les confusions.
  • Création de deux nouvelles classes : Size et Positionau lieu d'un typedef pour chacune.
  • Création de la classe Castor::Coord pour récupérer les fonctionnalités dynamique de l'ancien Point.

Castor3D

  • Ajout des méthodes HasParameter et SetParameter dans la classe ShaderObject, pour appliquer les matrices de la classe Pipeline.
  • Ajout de fonctions Begin et End dans la classe Mesh afin de pouvoir itérer sur les submeshes sans passer par les fonctions GetSubmesh et GetSubmeshCount.
  • Ajout de fonctions Begin et End dans la classe Material functions Begin and End.
  • Ajout de la classe FrameVariableBuffer pour gérer les variables uniformes avec les UBO OpenGL ou les Constant buffer de Direct3D 11.
  • Ajout de la classe DepthStencilState pour gérer ces états à la mode Direct3D 11 (qui fait ça bien).
  • De même, ajout des classes BlendState et RasteriserState.
  • Création des classes TextureBase, StaticTexture et DynamicTexture pour faciliter l'implémentation des cibles de rendu.
  • Ajout de canaux pour les textures (couleur, ambiante, diffusion, speculaire, normale, hauteur, brillance).
  • Création de la classe TechniqueParameters pour passer des paramètres spécifiques aux techniques comme, par exemple, le nombre d'échantillons (pour le MSAA).
  • Introduction de la classe SamplerState pour grouper les appels à SetSamplerState et autres.
  • Implémentation des Frame Buffers.
  • Réduction de l'occupation mémoire des tampons de sommets.
  • Modification de BufferElementGroup afin qu'il ne puisse plus contenir son tampon.
  • La classe Overlay n'étend plus Renderable, il n'y a plus qu'une instance de OverlayRenderer, gérée par la classe OverlayManager. Toutes les incrustations sont maintenant rendues via cette instance.
  • Amélioration de l'occupation mémoire : diminution drastique de la taille d'un Vertex (de 152 à 24 octets) et d'une Face (de 140 à 16 octets).
  • Modification de Subdivision, elle se trouve maintenant uniquement dans Subdivider et plus dans Geometry, Mesh ou Submesh.
  • Les lumières sont maintenant implémentées dans une texture, passant la limite de 8 à 100 sources.
  • Suppression des méthodes ApplyXXXMatrix de la classe IPipelineImpl, maintenant la classe Pipeline applique les matrices elle-même.
  • Implémentation du MSAA.
  • Implémentation de l'Alpha to Coverage lorsque le MSAA est activé.
  • Revue des tailles : Viewport contient la taille interne, RenderTarget et RenderWindow contiennent la taille externe.
  • Découpe de eBUFFER_MODE en eBUFFER_ACCESS_TYPE et eBUFFER_ACCESS_NATURE.
  • L'initialisation des objets GPU se passe maintenant avec l'utilisation de deux évènements : InitialiseEvent et CleanupEvent.
  • Fusion de GpuBuffer::Initialise et GpuBuffer::SetShaderProgram afin d'en simplifier l'utilisation.
  • Suppression de la génération automatique des mipmaps. Maintenant, si l'utilisateur vuet les générer, il utilise la fonction DynamicTexture::GenerateMipmaps.
  • Implémentation de l'instanciation hardware des maillages.
  • Modifications de Castor3D::Submesh :
    • Les classes Submesh et SmoothingGroup ont été fusionnées.
    • Modification de la méthode ComputeTangents pour prendre en compte les normales des sommets.
    • Ajout d'un overload pour la méthode AddPoints afin de pouvoir lui donner un stVERTEX_GROUP en paramètre.
    • Modification de la génération des normales.
    • Déplacement des matériaux, de Submesh à Geometry.
    • Modification du compte des instances, pour le rendre spécifique aux matériaux utilisés par les instances du Submesh.
  • Modifications de Pass :
    • Création d'une fonction Pass::Initialise afin que les shaders ne soient initialisés qu'une fois, et pas à chaque frame.
    • Réorganisation des unités de texture des passes, afin que celles associées à un canal arrivent premières.
  • Ajout d'une instance de BlendState dans la classe Pass et suppression de la gestion du mélange RGB/Alpha de la classe Pass.
  • Modifications de Castor3D::Scene :
    • Ajout de la possibilité d'activer ou désactiver le deferred rendering, option disponible dans les fichier cscn.
    • Ajout de fonctions templates pour ajouter, supprimer ou récupérer un objet quel que soit son type (Light, Geometry, Camera, SceneNode).
    • Les Submesh sont maintenant triés en fonction du matériau appliqué afin de pouvoir, entre autres, rendre les sous-maillages avec transparence après les autres.
  • Modifications de Castor3D::RenderTarget :
    • Modifié RenderTarget : elle contient maintenant son frame buffer et ce qui s'y rattache. C'est maintenant un Renderable et un TargetRenderer a donc été créé.
    • RenderTarget utilise maintenant RenderTechnique pour effectuer son rendu.
  • Modifications de Castor3D::RenderWindow :
    • RenderWindow n'étend plus RenderTarget, mais en a un en membre privé.
    • Création d'une méthode WindowRenderer::EndScene pour préparer le rendu du frame buffer de la RenderTarget dans la fenêtre.
  • Modifications des shaders :
    • Suppression des appels à ShaderObject afin d'en faire une classe interne à Castor3D.
    • Modification des shaders, ils prennent maintenant en compte le modèle de shader, contiennent tous les fichiers et sources définis par modèle. Le choix du modèle est fait à la compilation, en choisissant le modèle le plus haut supporté.
    • Modification des sources par défaut pour les shaders. Elles sont maitenant générées automatiquement et plus aucun fichier externe n'est nécessaire.
    • Modification de FrameVariable afin de prendre en compte eFRAME_VARIABLE_TYPE.
  • Modifications de Castor3D::Context
    • Suppression des méthodes Enable et Disable, suppression de la classe RenderState.
    • Suppression de la méthode SetPolygonMode.

GlRenderSystem

  • Création de la classe GeometryBuffers pour gérer les Vertex Array Objects. Ils contiennent maintenant leur tampons, permettant d'intégrer le choix d'utiliser les VAO ou non.
  • Les Geometry shader fonctionnent dans GlRenderSystem.
  • Suppression de la dépendance à GLEW.
  • Support des extensions de debug d'OpenGL.
  • Ajout du support de GL_MIRRORED_REPEAT.
  • Ajout du support de GL_TEXTURE_MAX_ANISOTROPY.

GuiCommon

  • Maintenant ShaderDialog utilise wxSizers.
  • Utilisation de wxStcEditor pour l'édition de shaders.
  • La fenêtre de matériaux utilis les wxSizers pour placer et redimensionner les éléments.
  • Ajout de la possibilité de changer le matériau utilisé par un sous-maillage, avec la fenêtre wxGeometriesListFrame.
  • Correction de bugs dans le chargement des images.
  • Amélioration de StcTextEditor afin d'avoir une meilleure coloration syntaxique.

CastorViewer

  • Maintenant, MainFrame utilise wxSizers.
  • Ajout d'options de ligne de commande :
    • -f/--file pour charger un fichier de scène au chargement
    • -h/--help pour afficher une aide
    • -l/--level pour définir le niveau de log :
      • 0 pour logger debug, infos, warnings et erreurs
      • 1 pour logger infos, warnings et erreurs
      • 2 pour logger warnings et erreurs
      • 3 pour logger les erreurs uniquement.
  • Maintenant les plugins sont chargés dans un thread
  • Ajout d'un bouton "Export".

Corrections

Général

  • Modification des importeurs afin de ne plus avoir de fuites de mémoires détectées par Visual Studio.

CastorUtils

  • Castor::Image a été modifiée, j'ai retiré la possibilité de charger les images par handle, car cela provoquait des problèmes avec FreeImage sur certains formats.
  • Réparation d'un problème de matrices lors du rendu des incrustations.
  • Correction des transformations récursives.

Castor3D

  • Corrections des sous-maillages ayant un matériau transparent, car ils n'étaient pas affichés.
  • Corrigé la génération de mipmaps.

CastorViewer

  • Déplacement de la destruction de m_pCastor3D dans la méthode OnDestroy.

GlRenderSystem

  • Correction d'un bug dans DoGetDeferredShaderSource.
  • Correction de la génération des mipmaps dans les classes GlStaticTexture et GlDynamicTexture.
  • Correction du traitement des textures de brillance dans les programmes GLSL auto générés.

ObjImporter

  • L'import des matériaux et textures a été corrigé.

Dépendances

  • Pour compiler CastorUtils, vous aurez besoin de FreeImage et freetype2.
  • Pour compiler Castor3D, vous aurez besoin de FreeImage, freetype2.
  • Pour compiler GlRenderSystem vous aurez besoin de OpenGL.
  • Pour compiler GuiCommon, CastorShape et CastorViewer, vous aurez besoin de wxWidgets, version 2.8.12 au minimum (testé avec les versions 2.8.12, 2.9.x et 3.0).
  • Pour compiler ASSIMPImporter, vous aurez besoin de ASSIMP.

NGM: Reprise du projet

Added by BigJambo about 1 month ago

Bonjour à tous,

J'ai été beaucoup occupé ces derniers temps. J'ai donc laissé le projet de côté mais je vais bientôt avoir de nouveau du temps pour le reprendre là où je l'avais laissé.

Si cela intéresse quelqu'un, il est le bienvenu sinon je repars seul à l'aventure...

Cordialement,

MkFramework: Dernières news

Added by imikado 3 months ago

Petite news pour résumer ces 4 derniers mois

Coté builder:
- pour mysql, on peut générer des classes modèl gérant "ON DUPLICATE KEY"
- allegement des modules CRUDs générés
- amélioration du générateur de module d'authentification
- ajout d'un générateur de gestion de droits

Coté framework:
- on peut désormais télécharger le framework via composer
- nouveaux plugin de génération xml (facilitant l'export de données en base)
- ORM: ajout de l'implémentation d'isset et unset pour les propriétés
- ORM/PDO: possibilité de parametrer les attributs ATTR_ERRMODE et ATTR_CASE
- optimisation du code de chargement des modules
- amélioration des logs en production avec deux nouveaux paramètres: file.enabled et apache.enable
- nouveau SGBD géré: firebird
- amélioration de la gestion d'erreurs

Coté Site:
- Nouvelle page Slides (pour comprendre via des diaporamas)

Coté publication:
- Sur developpez.com : http://imikado.developpez.com/tutoriels/php/creer-gestionnaire-contact-googleMaps/
- Sur openclassrooms.com : http://fr.openclassrooms.com/informatique/cours/creer-une-application-bootstrap-avec-le-mkframework

Coté communication:
- Le framework a désormais son podcast sur iTunes: https://itunes.apple.com/fr/podcast/podcast-mkframework/id924443483?l=en

CStr: Sortie de la version 3.1.0

Added by Franck.H 6 months ago

Après pas mal de travail en profondeur, une longue pause puis une bonne reprise, j'ai le plaisir de vous annoncer la sortie de la version 3.1.0 de la bibliothèque C_Str. Cette version est pourvue d'un nouvel objet, le C_Str_buffer ! Ce nouvel objet se comporte comme une liste chaînée dans lequel seront stockés des objets C_Str.

Cet objet a été créé pour obtenir une plus grande flexibilité quant à la modification de texte, surtout lorsqu'il s'agit d'un texte scindé en lignes grâce à la nouvelle fonction C_Str_split_lines. Cette fonction éclate un texte en lignes, chaque ligne est alors représentée par un C_Str qui lui est stocké dans un C_Str_buffer.

Voici les fonctions ajoutées pour cette nouvelle version:
  • C_Str_buffer_new
  • C_Str_buffer_get_first
  • C_Str_buffer_get_last
  • C_Str_buffer_get_prev
  • C_Str_buffer_get_next
  • C_Str_buffer_get_index
  • C_Str_buffer_len
  • C_Str_buffer_prepend
  • C_Str_buffer_append
  • C_Str_buffer_remove_index
  • C_Str_buffer_destroy
  • C_Str_buffer_foreach
  • C_Str_buffer_write_to_file
  • C_Str_buffer_get_error
  • C_Str_split_lines
La liste des fonctions et macros supprimées:
  • C_Str_free_tab: macro supprimée
  • C_Str_free_split: macro supprimée
  • C_Str_free_split_tab: fonction supprimée
La liste des fonctions modifiées:
  • C_Str_split: elle retourne désormais un C_Str_buffer à la place d'un char**

La documentation: http://franckh.developpez.com/cstr/doc/3.1/libcstr-310-doc-fr.html
Les téléchargements (binaires et sources linux et win32): http://projets.developpez.com/projects/cstr/files
Le forum: http://www.developpez.net/forums/f1906/applications/projets/projets-heberges/c_str/

MkFramework: Dernières news

Added by imikado 7 months ago

Builder:
mise à jour graphique des générations des CRUD, CRUD embedded et CRUD bootstrap.
Ajout de la possibilité d'exporter un projet (pour le livrer en test/production par exemple)
Ajout de la possibilité de créer des applications bootstrap

Publication de tutoriels:
http://nettuto.com/tuts/frameworks/decouvrez-un-framework-different-le-mkframework/
http://nettuto.com/tuts/premiere-application-bootstrap-mkframework/
http://imikado.developpez.com/tutoriels/php//creer-site-fullcache/
http://fr.openclassrooms.com/informatique/cours/initiation-au-mkframework

Framework:
Ajout de la possibilité d'utiliser des classes métiers en plus

Gestion vol à voile: Quatriéme utilisateur pour GVV

Added by flub78 11 months ago

Le club de Troyes (CPTA) a décidé d'employer GVV. Il est maintenant en ligne, hébergé chez one and one. Nous sommes maintenant quatre clubs à l'utiliser.

En 2013, le programme a continué son amélioration continue.

  • Utilisation systématique de JQuery pour les interfaces graphiques
  • Migration automatique de la base de données lors des mises à jour
  • Suppression d'affichage de fonctions non stables
  • Graphiques sur le viellissement du parc et la trésorerie

Les grands projets, mais ils prendront du temps:

  • Couplage avec un système de reception des Flarms afin d'avoir une saisie des planches automatique
  • Application Android

MkFramework: Amélioration de la génération de CRUD

Added by imikado about 1 year ago

Désormais, si vous avez une erreur à la validation d'un formulaire, vous retrouvez vos données saisies.

MkFramework: Dernières news

Added by imikado about 1 year ago

Au menu:
- on peut désormais dans le builder choisir de générer un module CRUD avec/sans pagination.
- une nouvelle partie dans la page de téléchargement (sur le site) permet désormais de télécharger des modules.
- Deux nouveaux projets sont disponibles dans la rubrique "Projets & Applications" (sur le site): un projet de reseau social, et un projet de microblogging
Pour information, vous pourrez retrouver dès demain ici-même un tutoriel pour faire ce site de microblogging en moins d'une heure.

MkFramework: Amélioration du log SQL

Added by imikado about 1 year ago

Vous avez désormais dans vos logs d'information les requetes SQL éxécutées.
Pour rappel, pour activer ce log, il vous suffit de passer la variable information à 1 dans la section [log]

[log]
class=plugin_log
error=0
warning=0
application=0
information=1

note: avec la barre de debug, visualisez facilement votre fichier de log avec le bouton "File log"

MkFramework: Nouveau plugin + bugfix mineur

Added by imikado about 1 year ago

Ajout d'un nouveau plugin: le plugin_debug

Celui-ci vous fournit en bas de l'écran (en mode dev) une barre de debug, celle ci
affiche les variables d'environnements $_GET,$_POST,$_SERVER,$_SESSION
- affiche les variables de connexion
- affiche les variables de configuration
- permet de debuguer une variable en utilisant un espion
- permet d'afficher le fichier de log, si l'option est activée

Utiliser un espion dans votre code avec

plugin_debug::addSpy('mon commentaire', $oMaVariable);

note: si vous avez une application existante et que vous souhaitez utiliser ce plugin,
1. ajoutez dans votre fichier public/index.php
En début de script:

$iMicrotime=microtime(); 

et en fin de script

if(_root::getConfigVar('site.mode')=='dev'){
   $oDebug=new plugin_debug($iMicrotime);
   echo $oDebug->display();
}

2. téléchargez le plugin plugin_debug dans le répertoire plugin/ de votre application (page de téléchargement
note: la documentation suivra très vite

Ajout du log sql dans les drivers xml et csv

Ajout du log sql sur les drivers CSV et XML

1 2 3 ... 22 Next »

Also available in: Atom

 
 
 
 
Partenaires

PlanetHoster
Ikoula