Blog

C++/Python wxWidgets3/wxPython4 avec CodeBlocks et pybind11

Au travers de l’application wxCppPy je vais vous apprendre à créer une application wxWidgets qui charge des scripts python et qui se laisse modifier et manipuler par wxPython. A savoir que wxPython4, qui porte le nom de version Phoenix, ne possède plus d’exemple pour interfacer wxPython avec wxWidgets. Je vais donc vous expliquer comment y parvenir.

Lire la suite

[Mageia 6]Compiler et installer GCC 6, 7, 8 ou 9

Introduction :

Je suis sur Mageia 6 et suite à une question que j’avais posée sur le forum de Mageia. J’ai décidé de me lancer et de compiler les versions que je souhaite de gcc.
Sur Ubuntu le problème se pose beaucoup moins car les paquets pour installer gcc6, 7 et 8 sont fournis.

Attention si vous êtes sur Mageia 7, qui est encore en bêta au moment où j’écris cet article, gcc 8.2.1 est la nouvelle version par défaut de gcc.

Tout d’abord des liens utiles:

Résumé :

$ su
# urpmi lib64gmp-devel
# urpmi lib64mpfr-devel
# urpmi lib64mpc-devel
# urpmi lib64isl-devel
# exit # pour quitter le mode administrateur

Pour les exemples j’utilise la dernière release de gcc8 : gcc-8.3.0. A vous de remplacer les «8_3_0» et «8.3.0» par votre version de gcc.

$ mkdir gcc8
$ cd gcc8
$ svn checkout svn://gcc.gnu.org/svn/gcc/tags/gcc_8_3_0_release/ source
$ mkdir obj
$ cd obj
$ ../source/configure --with-isl-include=/usr/include/ --with-isl-lib=/usr/lib64/ --program-suffix=-8.3.0 --prefix=/usr --libdir=/usr/lib/gcc/8.3.0/lib --datarootdir=/usr/share/gcc/8.3.0 -bindir=/usr/bin --libexecdir=/usr/libexec --includedir=/usr/include
# 16 étant le nombre de cpu de ma machine à vous de mettre le nombre de thread que vous souhaité.
$ make -j 16

Pour l’installation deux solutions :
Installer gcc dans un répertoire à part.

$ make DESTDIR=/home/suryavarman/working/gcc8/dest install

Installer gcc dans l’arborescence de /usr/

$ su
# make install

Lire la suite

Godot 3.0.6 / 3.1 export HTML5 (GLES 3/GLES 2)

Godot 3.0.6 / 3.1 export HTML5 (GLES 3/GLES 2)

Sonic le saumon:

Lors de la Jam des Volcans notre équipe a décidée de découvrir Godot.

Le thème de la Global Game Jam fut la maison, le chez soit. C’est tout naturellement que nous avons décidé de créer un jeux sur Sonic le saumon.

Sonic le saumon remonte le courant du fleuve qui la vu naître pour frayer et mourir. Mais voilà pour son plus grand malheur nous n’avons eu le temps que de lui donner que deux options. Mourir de faim ou se faire manger par un Ours. Le tout sur une simple ligne droite avec quelques bas fonts et obstacles qui le ralentissent. Seul plaisir qu’il aura c’est de nager et manger quelques autres poissons avec une musique entrainante composée par l’un des membres de l’équipe.

Voici le lien vers l’application WebGL (attention c’est long à charger, la version GLES2 étant la plus rapide à s’initialiser):

[GLES3]Sonic le saumon

[GLES2]Sonic le saumon (réaliser avec Godot 3.1.beta 10)

Cliquer sur «Nager» puis déplacer Sonic le saumon en déplaçant la sourie de gauche à droite.

Attention:

Les prérequis sont d’avoir un navigateur compatible avec WebAssembly et WebGL 2.0.
cf : Godot documentation export html5

Lire la suite

Jam des Volcans 2019

Jam des Volcans 2019

Du vendredi 25 au dimanche 27 janvier il y aura la Jam des Volcans à Clermont-Ferrand. C’est une des antennes de l’évènement mondiale : Global Game Jam (GGJ).

Si vous ne serez pas sur Clermont-Ferrand lors de cet évènement vous trouverez ici la liste des autres lieux de par le monde.

Les participants, seul ou en équipe, auront 48h pour créer un jeu vidéo autour d’un thème. C’est un hackathon. Le thème 2019 restera secret jusqu’au vendredi 25.

Je vous propose de vous rendre sur le site pour vous pré-inscrire et souscrire aux informations.
http://jam-des-volcans.fr/

En 2018 le thème était la transmission.

Cette vidéo est insupportable mais bon c’est comme ça.

Vous trouverez ici la liste des jeux réalisés en 2018:
https://globalgamejam.org/2018/games

Tout le monde peut y participer, professionnel ou pas, seul ou en équipe.

.template

Voici un bout de code décrivant un cas concret où j’ai dû apprendre à utiliser l’instruction.

.template

Avant de lire ce bout de code, je vous conseil de lire la faq de developez qui explique très bien à quoi sert l’instruction .template.

L’objectif du bout de code suivant est de définir un traitement commun pour différent type de fichier 3D. C’est une version simplifier de ce que j’ai eu à faire. Ici il n’y a pas beaucoup de sens à utiliser un template T_Mesh mais le sujet est de montrer un cas d’utilisation de l’instruction .template. A la fin de l’article je vous ai ajouté la version original des classes Mesh et Vertex ceci pour donner un peu plus de sens à l’utilisation de ce bout de code.

Vous pouvez retrouver le code sur CppShell.

Lire la suite

Implémenter Pi avec un template

L’idée est d’utiliser acos(-1) qui donne pour résultat le nombre pi. Pour ce faire -1 sera converti en type T. J’utilise acos de l’en-tête cmath. On remarquera que acos est défini pour les types float, double et long double, en c++11 il peut prendre en entré des types entiers pour retourner des doubles.

template<typename T>
T Pi()
{
    return acos(static_cast<T>(-1.0));
}

Lire la suite

Ouverture de mon blog.

Bonjour à tous,

Voici mon blog, il y sera question de la programmation 3D, de la modélisation 3D et si le cœur y est un peu de réalité virtuelle.

L’objectif de ce blog est de montrer ma manière d’aborder les problématiques de la 3D.

Bonne lecture 🙂