Ah bah mon 3em fichier est passé en “pending” depuis 5min…
Le
21/01/2013 à
09h
12
J’arrive a uploader mon premier fichier ce matin :)
(impossible de toute le weekend)
Le
20/01/2013 à
17h
42
ra-mon a écrit :
Le message publicitaire pour Google Chrome ne cause ni de FAQ, ni de gestion mémoire, ni de gros fichiers, juste de HTML5 domaine pour lequel aucun navigateur n’est concrètement dépassé. Si je ne veux pas envoyer de gros fichier sur Méga ou n’ai pas de problème de mémoire avec Opera ou Firefox, pourquoi m’inciter à migrer vers un produit Google ? C’est vraiment le boulot d’un site web de vendre du navigateur ?
Tu as essayé ? Quand je télécharge, en http ou ftp (pas sur Mega), un fichier de 700Mo, Opera m’a jamais pris 700Mo de mémoire supplémentaire pour ça " />
Après, si l’appli de Mega impose ça aux autres navigateurs que Chrome, elle sera effectivement inadéquate, voire dépassée et donc bien au chaud dans mon urlfilter.ini " />
Quel interet tu aurais à rajouter mega dans ton urlfilter.ini ? Si tu veux charger un fichier qui ne se trouve que via un lien mega t’es baisé du coup non ? Et pour uploader un fichier, si tu veux absolument eviter mega il suffit de ne pas aller sur mega ?
En ce qui concerne l’avertissement sur le support HTML5, si la fonction de chargement de fichier auquel fait appel mega fait partie de HTML5 et qu’elle est mieux codé dans Chrome que dans FF/IE/Opera, alors il s’agit bien d’un problème de support de l’html5 chez ces 3 navigateurs.
Le
19/01/2013 à
20h
36
C’est bizarre qu’il n’y ai pas de limite de bande passante précisé pour l’offre free… J’espère que ca sera plus proche de 20Go que de 2go :/
En attendant Mega est down une fois sur deux, et impossible d’uploader le moindre fichier… Chez vous aussi ?
Le cloud pour generer et suivre 100k habitants ? Elle se fout de qui, genre un GPU ne serait pas suffisant avec son milliard d’operation par seconde et ses simulations de fluide/radiosity temps reel, mais une connection ADSL 512k oui ?
Cloud sous entend qu’un fichier/processus n’existe pas sur un seul serveur/localisé, mais sur plusieurs machines a la fois a différents endroit. Chez OVH, c’est la différence entre un serveur FTP et Hubic par exemple. Donc un “cloud” sur un serveur en local est un contresens.
Le
26/12/2012 à
15h
19
Cloud sous entend qu’un fichier/processus n’existe pas sur un seul serveur/localisé, mais sur plusieurs machines a la fois a différents endroit. Chez OVH, c’est la différence entre un serveur FTP et Hubic par exemple. Donc un “cloud” sur un serveur en local est un contresens.
Le
26/12/2012 à
10h
45
yvan a écrit :
du cloud à domicile
Si c’est à domicile, c’est pas du cloud !
Le
26/12/2012 à
10h
06
Ah ben finalement non, il est toujours impossible de publier le moindre fichier en publique… -_-
Démonstration, ceci est censé être un lien vers un fichier publié sur mon compte:http://ovh.to/thdJ
Le
26/12/2012 à
10h
05
Ah, ca explique certainement la stabilité/fiabilité desastreuse de ces derniers jours, impossible de faire quoi que ce soit sur mon compte hubic sans une erreur web…
Nokia n’a plus aucun rapport avec Qt (cf mon commentaire #43), et il est depuis 2 ans co-géré en open-governance. Ceci dit le passage par Nokia a eu beaucoup d’avantage, c’est grace a eux que Qt est maintenant en LGPL et qu’il y a Qt Creator avec un SDK complet.
Je ne comprend vraiment pas ton problème avec C++, ca ressemble plus a une question religieuse qu’à un problème technique franchement vu comme tu le présente….
Perso mon projet C++ est assez conséquent, il utilise tres largement Qt, et il compile sans problème sous Clang, GCC, MSVC et autre, sous Windows, Mac (et probablement Linux, pas testé). C’est vraiment un faux problème ton histoire d’interopérabilité, tu te met des barrières tout seul… Je n’ai rencontré que très peu de difficultés liés au compilateur sur toute la durée de developpement de mon projet (3 ans) et je n’ai trouvé que des avantages a l’approche objet. Tu dois d’ailleurs certainement complexifier inutilement la lecture de ton code à vouloir émuler un comportement objet en C sans l’avoir en natif.
Le
22/12/2012 à
19h
53
Sans parler de la valeur ajoutée, avec une documentation super complète et l’IDE multiplateforme de Qt, Qt Creator…
Le
22/12/2012 à
19h
43
sylware a écrit :
Perso, je ne parlais que de la partie toolkit gfx. Pour le reste, il y a certainement d’autres bibliothèques. Et puis, c’est une erreur de vouloir tout faire. Mais surtout, qt souffre du syndrôme mysql: une usine à gaz, certes open source, mais dont tous les droits pertinents sont détenues par une et une seule entreprise (et puis y a du nokia=crosoft derrière…) C’est du vendor-lock-in open source par la complexité. Donc, dans le choix d’un toolkit graphique, plutôt GTK+ ou les EFL (y en a d’autres plus spécialisés comme clutter avec un coût technique nettement plus faible), ensuite y a des finesses, mais je suis plus GNU GPL, donc j’aurais tendance à préférer le GTK+ (modulo les clutter and co),
Surtout le grand défaut de qt, c’est d’être écrit en c++, donc avec tous ses défauts et ses peu d’avantages. Pour ma part, cela l’élimine par défaut à cause de ça.
Un des défauts majeurs est l’intéropérabilité qui est un cauchemard à cause de l’ABI du c++… en gros il faut utiliser le même runtime c++ pour tout le monde. Car intéropérer avec d’autres framework/langages est déraisonnable, cf le JNI de java qui a le même pb…
Et quand Linus dit qu’il veut garder les codeurs c++ loin de linux, il a très peur des “délires objets” que se permettent pas mal de développeurs (j’ai le même avis). On me souffle à l’oreille qu’il suffit d’avoir une bonne hygiène de code, donc de ne surtout pas utiliser l’ensemble de l’orienté objet de la syntaxe, mais la réponse classique et que si on doit avoir une bonne hygiène de code autant l’avoir dans des langages comme le C, qui sont infiniment moins cher techniquement.
Au contraire, le fait d’avoir toutes les taches usuelles d’un programme regroupés sous une seule et même librairie avec la même logique/organisation, c’est un gain de temps précieux et autant de clarté dans un programme.
D’autant que chaque module de Qt est bien rodé, que ce soit pour gérer l’interface, le son, le reseau, opengl, le multithreading, les fichiers, etc etc.
Les librairies externes ont leur place pour des taches specifiques qui ne se retrouvent pas dans tous les programmes (par exemple des transformées mathématiques particulieres, la gestion de peripheriques pro, décodage de formats de fichiers exotiques, etc..) mais pour des taches courantes (tel qu’énoncé ci-dessus) c’est tout bénéfice d’avoir une librairie qui a fait ses preuves comme Qt pour prendre ça en charge.
Tes infos datent un peu, ce n’est plus Nokia mais Digia qui gère Qt, et le projet est depuis presque 2 ans co-géré via l’open governance (licence LGPL controlé par les contributeurs), en parallèle de la licence commerciale de Digia. Les deux proposent exactement les mêmes features.
Quand au fait qu’il soit écrit en C++… Quand tu fais un soft qui commence à être un minimum complexe ce serait ballot de se passer des classes. C’est d’ailleurs une des grandes forces du framework Qt, pouvoir dériver tous les éléments de base qu’il propose. En ce qui concerne l’interopérabilité entre compilateurs en pratique c’est gérable, Qt est proposé avec des binaires pour la plupart des compilateurs et si besoin tu peux recompiler l’intégralité de la bibliothèque pour le compilateur de ton choix.
Le
22/12/2012 à
18h
57
C’est vrai que c’est un peu ballot qu’il n’y ai pas de classe QJoystick…
Le
22/12/2012 à
11h
06
for(;;) c’etait juste une manière schematique d’écrire (j’avais plein de variables dans ce for justement, ce qui causait les ralentissements avec MSVC).
Par contre je ne connaissais pas la macro forever, tu m’as appris un truc la !
Le
22/12/2012 à
08h
27
Pour compléter ce que je disais un peu plus tot, je me permet de recopier ici mon retour d’experience:
Je viens de porter un gros projet (SpectraLayers) de Qt 4.8/MinGW/OpenGL à Qt 5.0/MSVC/OpenGL ES. Le tout sous Qt Creator.
Le passage de Qt 4.8 à Qt 5.0 n’a pas été une grosse difficulté: quelques fonctions ont été déplacés de classe, et certaines classes ont été renommés, mais grosso modo c’est allé assez vite (98% du code est resté tel quel).
Il faut juste piger que le partitionnement des modules n’est plus le même, par exemple les widgets ne font plus partie du module Gui mais du nouveau module Widget, et donc changer quelques headers globeaux/librairie Qt necessaire au projet.
Pour ceux qui créent des plugins, la déclaration des plugins a aussi légèrement changé, on passe de Q_EXPORT_PLUGIN2 à Q_PLUGIN_METADATA (qui n’ont pas exactement les mêmes paramètres).
A noter aussi la disparition de setAlphaChannel, il faut recréer son propre équivalent.
Le passage de MinGW à MSVC a été un peu plus compliqué, par exemple j’avais quelques sous-projets dans mon code principal qui n’étaient pas compris par MSVC, j’ai du simplifier la structure du projet en transformant mes sous projets du code principal en projets de librairies statique de meme niveau que le projet principal, et lier ces librairies statique à mon code principal.
Il a fallut d’autre part convertir certaines directives de compilation et de déclaration de fonctions propres à gcc, mais j’en avais peu dans mon code. Pour faire la distinction, dans le code c++ j’ai des:
#ifdef __GNUC__
Et dans mon projet .pro:
win32-g*|mac:QMAKE_CXXFLAGS += …
win32-msvc*:QMAKE_CXXFLAGS += …
Il y avait aussi quelques warnings qui sont apparus, mais juste des problèmes mineurs.
Au niveau des perfs c’est à peu près équivalent, voire même un peu gagnant par endroit, par contre j’ai remarqué que MSVC gérait mal l’optimisation de boucles for(;;) compliqués, j’ai du remplacer certaines boucles critiques par un déroulement while(count–) { } simplifié pour retrouver de bonnes perfs (ceci dit j’aurai certainement gagné aussi un peu en perf avec MinGW je suppose).
Enfin, le passage de OpenGL à OpenGL ES a été vraiment galère. Mais quelque part c’est un mal pour un bien, dans la mesure ou OpenGL ES est une version simplifié d’OpenGL ça oblige à repenser de manière un peu plus simple sont code OpenGL (je faisais jusque là allègrement usages de tricks OpenGL en tout genre, y compris de fonctions obsolètes). Heureusement le framework Qt est la pour nous accompagner dans le développement OpenGL ES en fournissant quelques fonctions qui font gagner du temps.
Je dois souligner d’ailleurs que j’ai fait en sorte que mon nouveau code soit compatible à la fois avec OpenGL ES et OpenGL, dans la mesure ou Qt 5 sur mac (mon logiciel est compilé sur mac aussi) utilise toujours OpenGL.
Pour cela, dans mes shaders j’ai rajouté l’entête suivante:
#ifdef GL_ES
precision highp float;
#endif
Et j’ai créé le header suivant pour avoir certaines fontions/variables compatibles GL/GL ES:
#ifndef GLESCOMP_H
#define GLESCOMP_H
//OpenGL/ES2 Compatibility
#include
#ifdef QT_OPENGL_ES_2
#define GLENABLETEX2D
#define GLRGBA32F GL_RGBA
#define GLALPHA32F GL_ALPHA
#define GLLUMINANCE32F GL_LUMINANCE
#else
#define GLENABLETEX2D glEnable(GL_TEXTURE_2D);
#define GLRGBA32F GL_RGBA32F_ARB
#define GLALPHA32F GL_ALPHA32F_ARB
#define GLLUMINANCE32F GL_LUMINANCE32F_ARB
#endif
#endif // GLESCOMP_H
A noter que la signification des paramètres de textures en OpenGL ES n’est pas la même qu’en OpenGL ! Pour envoyer des textures float en OpenGL le code est le suivant:
Ceci dit en utilisant les defines du header de compatibilité que j’ai créé ci-dessus, il y a moyen d’avoir strictement la même écriture dans les 2 cas.
Mon seul regret est la disparition des Pixel Buffer Object (qui ne sont réintroduits que dans OpenGL ES 3), bien pratiques pour faire des transferts rapide de textures, j’ai du compenser en renvoyant mon architecture globale.
Je n’ai pas encore tout à fait finit le portage OpenGL mais le code minimal fonctionnel est en place, il ne faut pas hésiter à s’inspirer des exemples opengl fournis dans le SDK (qui sont pour la plupart compatibles OpenGL/OpenGL ES).
Au final j’ai du passer 10% du temps sur le passage Qt 4.8->Qt 5, 20% sur MinGW->MSVC, et 70% sur OpenGL->OpenGL ES (restructuration complète oblige).
En espérant que ce retour puisse vous éclairer !
Le
21/12/2012 à
17h
20
brazomyna a écrit :
" />
Et dans la même lignée de comparaisons merdiques, on a: le cafard est plus fort que la drosophile quelles que soient les circonstances
Un contre exemple: prends un matos embarqué avec du MIPS à 200MHz, 32Mo de RAM qui tourne sur un linux, Qt ne daignera même pas s’initialiser. Une alternative comme EFL, si. Et tournera plutôt bien aussi. Donc EFL >>>>> Qt ?
Qt tourne aussi très bien sur des systèmes embarqué avec très peu de ressource:
Quand j’ai fait mon choix de toolkit graphique (en 2006-2007), j’avais été séduit par Qt qui offrait un très grand choix de composants mais rebuté par sa licence qui - à l’époque - était assez restrictive, et j’avais choisi WxWidgets au final.
Qt est en LGPL depuis 2008.
Sinon le portage de mon appli de Qt 4.8 at Qt 5 a nécessité quelques adaptations (quelques classes ont disparus et des fonctions ont été déplacés) mais rien de bien méchant. Par contre il faut souligner que sur Windows, OpenGL a été abandonné au profit de OpenGL ES, en ce qui me concerne j’ai du réécrire intégralement la partie OpenGL de mon code du coup (d’autant que certaines features d’OpenGL n’ont pas d’equivalent en GL ES).
Sinon sous Windows il n’y a plus de version MinGW, et toujours pas de version 64bit, mais ca devrait théoriquement venir avec Qt 5.0.1.
Sérieusement, moi si ej vais au ciné c’est aussi pour l’ambiance, pour le son, pour la bouffe, pour les potes, pour la taille de l’écran…
La news parle de films d’art et d’essais. Pas de blockbusters.
Et l’ambiance ciné, je l’ai à la maison (grand écran, popcorn et amis) sans raquer 10€ la place de ciné…
Le
24/10/2012 à
10h
35
Une diffusion TV en meme temps que la diffusion Ciné ? Ca me semble un peu casse gueule, je vois pas pourquoi les gens payeraient pour voir le film au cinéma alors qu’ils l’ont “gratuit” sur la chaine TV.
Le
24/10/2012 à
10h
35
Une diffusion TV en meme temps que la diffusion Ciné ? Ca me semble un peu casse gueule, je vois pas pourquoi les gens payeraient pour voir le film au cinéma alors qu’ils l’ont “gratuit” sur la chaine TV.
Nil, tu as oublié pour Chrome “et son installation forcée avec moultes logiciels”. Le nombre de gens chez qui je le vois alors qu’ils ne l’ont soit-disant jamais installé et ne savent d’ailleurs pas ce que c’est !
Ce qui l’ont installé mais qui ne l’utilisent pas ne sont pas comptabilisés dans les statistiques.
Les GoPro sont dotés d’un grand angle fisheye, ce qui réduit déjà naturellement les soubresauts (un legere rotation en grand angle a bien moins d’impact qu’avec un angle moyen).
Quelqu’un sait comment activer la rotation du homescreen sur le Galaxy Nexus apres passage en 4.1.2 ? Apparement ce n’est actif que sur le Nexus 7….
Le
16/10/2012 à
11h
37
MARCOX92 a écrit :
Reinitialisez les paramatres du programme de mise à jour
C’est à dire ? J’ai fait le nettoyage du Framework, tu parle d’autre chose ?
Le
16/10/2012 à
11h
36
AxelDG a écrit :
Quelqu’un a reçu la MàJ sur le Galaxy Nexus ici ?
J’ai pas fait toutes les manips qu’on peut voir sur le net, juste un nettoyage de l’application Framework Google et ré lancement de la détection (ce qui avait suffit la dernière fois).
Mais pour l’instant c’est zobi la mouche… " />
J’ai fait les manip de nettoyage/request/redemarrage mais pareil, rien recu sur mon GN pour l’instant.
Le Galaxy Nexus bénéficie aussi du mode paysage ? Je pouvais le forcer en connectant mon smartphone en HDMI, mais ca serait pas mal de l’avoir automatiquement de base aussi…
Les petites boites qui ferment n’ont qu’à s’en prendre à elle même, en effet.
De manière générale, rejeter la faute de ses échecs sur la situation économique et sur tous les pourris de la planète ne résout en rien quoi que ce soit.
De la même manière que le dirigeant de Surcouf n’a pas réussi à faire rebondir l’entreprise, pour revenir au titre de la news. Qu’internet prenne le pas sur les boutiques c’est un état de fait, mais à quoi ça sert de blamer internet ?
Je ne dis pas que les pourris n’existent pas, je ne dis pas que la crise n’existe pas, je dis juste que ça ne sert à rien de passer son temps à rejeter ses propres responsabilités sur ça.
Personnellement je crois au karma et trace ma petite route selon ce principe… Les pourris auront ce qu’ils méritent tot ou tard.
Sinon divide est en rapport avec Divide Frame. Je ne te demande pas pour Gavroche… Mais je comprend mieux l’attitude (c’est la faute à Voltaire, c’est la faute à Rousseau).
Le
14/10/2012 à
07h
32
Je rajouterai que tout le monde peut créer une entreprise en France (grace à des dispositifs comme l’auto-entreprise par exemple), meme sans argent et sans diplome, mais avec de la volonté et une idée directrice (qu’elle soit modeste ou géniale).
Le
14/10/2012 à
07h
13
Désolé mais moi je suis bien content qu’il y ai des financiers qui fassent travailler mon livret A… Et je suis d’accord avec Sepas, c’est pas parce que les francais ne savent pas/ne veulent pas savoir ce qu’on fait de leur argent que ca les déresponsabilise, c’est trop facile de se laver les mains comme ca et de trouver un bouc emissaire unique.
De la même manière, ça m’énerve ce discours cherchant à tout prix à trouver des circonstances facilitantes aux jeunes entrepreneurs comme Gates etc qui ont réussis par la suite, afin de diminuer leur mérite. Comme si l’argent seul suffisait à trouver et faire fructifier les bonnes idées.
Personnellement j’ai commencé mon entreprise avec zero fonds/zero aide/zero diplome, et je mettrais certainement beaucoup plus de temps à capitaliser qu’eux, mais ma philosophie de vie trouve juste contre-productif de passer mon temps à raler sur la reussite des autres quelle que soient les aides dont ils aient pu bénéficier. En choisissant cette voie on accumule de la rancoeur, on se fait un carnet de boucs emissaires (grand patrons, finance, etc), .. et .. on oublie de prendre sa propre vie en main.
Quelle différence entre la release du 27 septembre et la release du 29 septembre ?
Le
28/09/2012 à
11h
58
VilraleuR a écrit :
Comment tu fais moi ça marche po " />
Je vais dans ES Explorateur (un browser Android tres complet), section LAN, je me connecte au disque dur de la Freebox par Wifi, je click sur un fichier video et je demande à l’ouvrir avec VLC.
Le
28/09/2012 à
11h
09
A noter, l’acceleration hardware marche maintenant ! (Galaxy Nexus).
Du coup je peux virer les autres lecteurs vidéos (j’utilisais MoboPlayer jusque la), il les remplace tous à ce stade de la beta… Ca marche meme avec des flux HD streamé depuis ma Freebox.
Un smartphone de luxe, je veux dire que ce soit un S3 ou un iPhone… Tu le laisses tomber, il s’éclate en mille morceau non?
Un iPhone oui, un Galaxy non. (il y a plusieurs videos comparatives de chutes sur youtube, les Galaxy s’en sortent toujours mieux que les iPhone).
Ceux qui critiquent l’aspect plastique ont pas l’air de piger qu’il existe differents types de plastique et que ceux utilisés sur les Galaxy absorbent bien mieux les chocs qu’un iPhone…
Je vais argumenter sur Android: Quand on n’arrive pas à éteindre le réveil sur un device Android et qu’on est obligé d’éteindre le téléphone pour y arriver, je peux m’avancer en disant que l’OS a un gros problème….
Pour ff9098, c’est sûr que ce n’est pas bien grave que le réveil continue de sonner dans l’espace, le son ne s’entend pas dans le vide.
Donc je vais dire que je suis surpris de la popularité d’Android.
Donc tu base tout ton jugement d’Android sur un seul bug qui n’a touché que toi ?
446 commentaires
D’après Kim Dotcom, MEGA a attiré 1 million de visiteurs en 14 heures
21/01/2013
Le 21/01/2013 à 11h 41
Le 21/01/2013 à 11h 35
[MàJ] [Dossier PCi] MEGA, le nouveau service de stockage de Kim Dotcom
19/01/2013
Le 21/01/2013 à 09h 20
Ah bah mon 3em fichier est passé en “pending” depuis 5min…
Le 21/01/2013 à 09h 12
J’arrive a uploader mon premier fichier ce matin :)
(impossible de toute le weekend)
Le 20/01/2013 à 17h 42
Le 19/01/2013 à 20h 36
C’est bizarre qu’il n’y ai pas de limite de bande passante précisé pour l’offre free… J’espère que ca sera plus proche de 20Go que de 2go :/
En attendant Mega est down une fois sur deux, et impossible d’uploader le moindre fichier… Chez vous aussi ?
Téléphones subventionnés : Free Mobile perd son procès face à SFR
15/01/2013
Le 15/01/2013 à 16h 10
Free peut/va faire appel j’imagine ?
SimCity : la connexion obligatoire à cause du cloud computing
27/12/2012
Le 27/12/2012 à 09h 19
Le cloud pour generer et suivre 100k habitants ? Elle se fout de qui, genre un GPU ne serait pas suffisant avec son milliard d’operation par seconde et ses simulations de fluide/radiosity temps reel, mais une connection ADSL 512k oui ?
HubiC utilise OpenStack et adapte ses clients, l’upload automatique arrive
26/12/2012
Le 26/12/2012 à 15h 19
Cloud sous entend qu’un fichier/processus n’existe pas sur un seul serveur/localisé, mais sur plusieurs machines a la fois a différents endroit. Chez OVH, c’est la différence entre un serveur FTP et Hubic par exemple. Donc un “cloud” sur un serveur en local est un contresens.
Le 26/12/2012 à 15h 19
Cloud sous entend qu’un fichier/processus n’existe pas sur un seul serveur/localisé, mais sur plusieurs machines a la fois a différents endroit. Chez OVH, c’est la différence entre un serveur FTP et Hubic par exemple. Donc un “cloud” sur un serveur en local est un contresens.
Le 26/12/2012 à 10h 45
Le 26/12/2012 à 10h 06
Ah ben finalement non, il est toujours impossible de publier le moindre fichier en publique… -_-
Démonstration, ceci est censé être un lien vers un fichier publié sur mon compte:http://ovh.to/thdJ
Le 26/12/2012 à 10h 05
Ah, ca explique certainement la stabilité/fiabilité desastreuse de ces derniers jours, impossible de faire quoi que ce soit sur mon compte hubic sans une erreur web…
Qt 5 disponible en version finale : le plein de nouveautés
21/12/2012
Le 23/12/2012 à 21h 18
Le 22/12/2012 à 19h 53
Sans parler de la valeur ajoutée, avec une documentation super complète et l’IDE multiplateforme de Qt, Qt Creator…
Le 22/12/2012 à 19h 43
Le 22/12/2012 à 18h 57
C’est vrai que c’est un peu ballot qu’il n’y ai pas de classe QJoystick…
Le 22/12/2012 à 11h 06
for(;;) c’etait juste une manière schematique d’écrire (j’avais plein de variables dans ce for justement, ce qui causait les ralentissements avec MSVC).
Par contre je ne connaissais pas la macro forever, tu m’as appris un truc la !
Le 22/12/2012 à 08h 27
Pour compléter ce que je disais un peu plus tot, je me permet de recopier ici mon retour d’experience:
Je viens de porter un gros projet (SpectraLayers) de Qt 4.8/MinGW/OpenGL à Qt 5.0/MSVC/OpenGL ES. Le tout sous Qt Creator.
Le passage de Qt 4.8 à Qt 5.0 n’a pas été une grosse difficulté: quelques fonctions ont été déplacés de classe, et certaines classes ont été renommés, mais grosso modo c’est allé assez vite (98% du code est resté tel quel).
Il faut juste piger que le partitionnement des modules n’est plus le même, par exemple les widgets ne font plus partie du module Gui mais du nouveau module Widget, et donc changer quelques headers globeaux/librairie Qt necessaire au projet.
Pour ceux qui créent des plugins, la déclaration des plugins a aussi légèrement changé, on passe de Q_EXPORT_PLUGIN2 à Q_PLUGIN_METADATA (qui n’ont pas exactement les mêmes paramètres).
A noter aussi la disparition de setAlphaChannel, il faut recréer son propre équivalent.
Le passage de MinGW à MSVC a été un peu plus compliqué, par exemple j’avais quelques sous-projets dans mon code principal qui n’étaient pas compris par MSVC, j’ai du simplifier la structure du projet en transformant mes sous projets du code principal en projets de librairies statique de meme niveau que le projet principal, et lier ces librairies statique à mon code principal.
Il a fallut d’autre part convertir certaines directives de compilation et de déclaration de fonctions propres à gcc, mais j’en avais peu dans mon code. Pour faire la distinction, dans le code c++ j’ai des:
#ifdef __GNUC__
Et dans mon projet .pro:
win32-g*|mac:QMAKE_CXXFLAGS += …
win32-msvc*:QMAKE_CXXFLAGS += …
Il y avait aussi quelques warnings qui sont apparus, mais juste des problèmes mineurs.
Au niveau des perfs c’est à peu près équivalent, voire même un peu gagnant par endroit, par contre j’ai remarqué que MSVC gérait mal l’optimisation de boucles for(;;) compliqués, j’ai du remplacer certaines boucles critiques par un déroulement while(count–) { } simplifié pour retrouver de bonnes perfs (ceci dit j’aurai certainement gagné aussi un peu en perf avec MinGW je suppose).
Enfin, le passage de OpenGL à OpenGL ES a été vraiment galère. Mais quelque part c’est un mal pour un bien, dans la mesure ou OpenGL ES est une version simplifié d’OpenGL ça oblige à repenser de manière un peu plus simple sont code OpenGL (je faisais jusque là allègrement usages de tricks OpenGL en tout genre, y compris de fonctions obsolètes). Heureusement le framework Qt est la pour nous accompagner dans le développement OpenGL ES en fournissant quelques fonctions qui font gagner du temps.
Je dois souligner d’ailleurs que j’ai fait en sorte que mon nouveau code soit compatible à la fois avec OpenGL ES et OpenGL, dans la mesure ou Qt 5 sur mac (mon logiciel est compilé sur mac aussi) utilise toujours OpenGL.
Pour cela, dans mes shaders j’ai rajouté l’entête suivante:
#ifdef GL_ES
precision highp float;
#endif
Et j’ai créé le header suivant pour avoir certaines fontions/variables compatibles GL/GL ES:
#ifndef GLESCOMP_H
#define GLESCOMP_H
//OpenGL/ES2 Compatibility
#include
#ifdef QT_OPENGL_ES_2
#define GLENABLETEX2D
#define GLRGBA32F GL_RGBA
#define GLALPHA32F GL_ALPHA
#define GLLUMINANCE32F GL_LUMINANCE
#else
#define GLENABLETEX2D glEnable(GL_TEXTURE_2D);
#define GLRGBA32F GL_RGBA32F_ARB
#define GLALPHA32F GL_ALPHA32F_ARB
#define GLLUMINANCE32F GL_LUMINANCE32F_ARB
#endif
#endif // GLESCOMP_H
A noter que la signification des paramètres de textures en OpenGL ES n’est pas la même qu’en OpenGL ! Pour envoyer des textures float en OpenGL le code est le suivant:
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA32F, width, height, 0, GL_RGBA, GL_FLOAT, data);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA16F_ARB, width, height, 0, GL_RGBA, GL_FLOAT, data);
glTexImage2D(GL_TEXTURE_2D, 0, GL_ALPHA32F_ARB, width, height, 0, GL_ALPHA, GL_FLOAT, data);
glTexImage2D(GL_TEXTURE_2D, 0, GL_ALPHA16F_ARB, width, height, 0, GL_ALPHA, GL_FLOAT, data);
Alors qu’en OpenGL ES il faudra écrire:
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_FLOAT, data);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_HALF_FLOAT_OES, data);
glTexImage2D(GL_TEXTURE_2D, 0, GL_ALPHA, width, height, 0, GL_ALPHA, GL_FLOAT, data);
glTexImage2D(GL_TEXTURE_2D, 0, GL_ALPHA, width, height, 0, GL_ALPHA, GL_HALF_FLOAT_OES, data);
Ceci dit en utilisant les defines du header de compatibilité que j’ai créé ci-dessus, il y a moyen d’avoir strictement la même écriture dans les 2 cas.
Mon seul regret est la disparition des Pixel Buffer Object (qui ne sont réintroduits que dans OpenGL ES 3), bien pratiques pour faire des transferts rapide de textures, j’ai du compenser en renvoyant mon architecture globale.
Je n’ai pas encore tout à fait finit le portage OpenGL mais le code minimal fonctionnel est en place, il ne faut pas hésiter à s’inspirer des exemples opengl fournis dans le SDK (qui sont pour la plupart compatibles OpenGL/OpenGL ES).
Au final j’ai du passer 10% du temps sur le passage Qt 4.8->Qt 5, 20% sur MinGW->MSVC, et 70% sur OpenGL->OpenGL ES (restructuration complète oblige).
En espérant que ce retour puisse vous éclairer !
Le 21/12/2012 à 17h 20
Le 21/12/2012 à 16h 24
Les modules de lecteur VLC abandonnent la GPL pour la LGPL
14/11/2012
Le 14/11/2012 à 18h 30
Taxe Google : Éric Schmidt reçu aujourd’hui par François Hollande
29/10/2012
Le 29/10/2012 à 10h 33
J’ai hate de connaitre le compte rendu… On marche sur la tete avec cette taxe !
Bruxelles va expérimenter une sortie simultanée de films (TV, cinéma, VoD)
24/10/2012
Le 25/10/2012 à 08h 09
Le 24/10/2012 à 10h 35
Une diffusion TV en meme temps que la diffusion Ciné ? Ca me semble un peu casse gueule, je vois pas pourquoi les gens payeraient pour voir le film au cinéma alors qu’ils l’ont “gratuit” sur la chaine TV.
Le 24/10/2012 à 10h 35
Une diffusion TV en meme temps que la diffusion Ciné ? Ca me semble un peu casse gueule, je vois pas pourquoi les gens payeraient pour voir le film au cinéma alors qu’ils l’ont “gratuit” sur la chaine TV.
Navigateurs : Internet Explorer s’écroule en Europe, Chrome rattrape Firefox
24/10/2012
Le 24/10/2012 à 13h 05
Yahoo! annonce des bénéfices trois fois supérieurs à son chiffre d’affaires
23/10/2012
Le 23/10/2012 à 07h 08
Dans ce cas la question c’est pourquoi la vente de ces parts n’est pas compté dans le CA.
Le CA inclue toute vente de bien et de service. Ces parts étaient un bien non ?
VLC 2.0.4 corrige ses problèmes, la version Android gagne en performances
18/10/2012
Le 18/10/2012 à 15h 33
GoPro dévoile la HD Hero 3 : Wi-Fi intégré, 4K et jusqu’à 120 ips en 720p
17/10/2012
Le 17/10/2012 à 13h 24
Les GoPro sont dotés d’un grand angle fisheye, ce qui réduit déjà naturellement les soubresauts (un legere rotation en grand angle a bien moins d’impact qu’avec un angle moyen).
Sinon le 720p@120fps fait très envie…
[MàJ] Android 4.1.2 arrive sur les Galaxy Nexus, Nexus S et Nexus 7 en France
15/10/2012
Le 17/10/2012 à 07h 23
Quelqu’un sait comment activer la rotation du homescreen sur le Galaxy Nexus apres passage en 4.1.2 ? Apparement ce n’est actif que sur le Nexus 7….
Le 16/10/2012 à 11h 37
Le 16/10/2012 à 11h 36
Le 10/10/2012 à 09h 28
A noter, 4.1.2 apporte aussi l’agrandissement/réduction des notifications à un seul doigt:http://www.androidpolice.com/2012/10/09/new-in-android-4-1-2-expandingcollapsing…
Le 10/10/2012 à 09h 18
Le Galaxy Nexus bénéficie aussi du mode paysage ? Je pouvais le forcer en connectant mon smartphone en HDMI, mais ca serait pas mal de l’avoir automatiquement de base aussi…
Liquidation de Surcouf : la lettre assassine de la CGT contre Hugues Mulliez
11/10/2012
Le 14/10/2012 à 10h 42
Les petites boites qui ferment n’ont qu’à s’en prendre à elle même, en effet.
De manière générale, rejeter la faute de ses échecs sur la situation économique et sur tous les pourris de la planète ne résout en rien quoi que ce soit.
De la même manière que le dirigeant de Surcouf n’a pas réussi à faire rebondir l’entreprise, pour revenir au titre de la news. Qu’internet prenne le pas sur les boutiques c’est un état de fait, mais à quoi ça sert de blamer internet ?
Je ne dis pas que les pourris n’existent pas, je ne dis pas que la crise n’existe pas, je dis juste que ça ne sert à rien de passer son temps à rejeter ses propres responsabilités sur ça.
Personnellement je crois au karma et trace ma petite route selon ce principe… Les pourris auront ce qu’ils méritent tot ou tard.
Sinon divide est en rapport avec Divide Frame. Je ne te demande pas pour Gavroche… Mais je comprend mieux l’attitude (c’est la faute à Voltaire, c’est la faute à Rousseau).
Le 14/10/2012 à 07h 32
Je rajouterai que tout le monde peut créer une entreprise en France (grace à des dispositifs comme l’auto-entreprise par exemple), meme sans argent et sans diplome, mais avec de la volonté et une idée directrice (qu’elle soit modeste ou géniale).
Le 14/10/2012 à 07h 13
Désolé mais moi je suis bien content qu’il y ai des financiers qui fassent travailler mon livret A… Et je suis d’accord avec Sepas, c’est pas parce que les francais ne savent pas/ne veulent pas savoir ce qu’on fait de leur argent que ca les déresponsabilise, c’est trop facile de se laver les mains comme ca et de trouver un bouc emissaire unique.
De la même manière, ça m’énerve ce discours cherchant à tout prix à trouver des circonstances facilitantes aux jeunes entrepreneurs comme Gates etc qui ont réussis par la suite, afin de diminuer leur mérite. Comme si l’argent seul suffisait à trouver et faire fructifier les bonnes idées.
Personnellement j’ai commencé mon entreprise avec zero fonds/zero aide/zero diplome, et je mettrais certainement beaucoup plus de temps à capitaliser qu’eux, mais ma philosophie de vie trouve juste contre-productif de passer mon temps à raler sur la reussite des autres quelle que soient les aides dont ils aient pu bénéficier. En choisissant cette voie on accumule de la rancoeur, on se fait un carnet de boucs emissaires (grand patrons, finance, etc), .. et .. on oublie de prendre sa propre vie en main.
VLC pour Android : support du X86 et nouvelle interface, toujours en bêta
28/09/2012
Le 29/09/2012 à 16h 18
Quelle différence entre la release du 27 septembre et la release du 29 septembre ?
Le 28/09/2012 à 11h 58
Le 28/09/2012 à 11h 09
A noter, l’acceleration hardware marche maintenant ! (Galaxy Nexus).
Du coup je peux virer les autres lecteurs vidéos (j’utilisais MoboPlayer jusque la), il les remplace tous à ce stade de la beta… Ca marche meme avec des flux HD streamé depuis ma Freebox.
[MàJ] Le site Internet de Charlie Hebdo victime d’attaques informatiques
19/09/2012
Le 19/09/2012 à 08h 29
Free annonce vouloir dégrouper 1500 nouveaux NRA et se prépare au VDSL
18/09/2012
Le 18/09/2012 à 12h 59
Pourquoi pas le VDSL2 directement ?
[MàJ] L’iPhone 5 chez les opérateurs : on fait le point
13/09/2012
Le 13/09/2012 à 15h 26
iPhone 5 : le nouvel adaptateur et son câble, une chasse gardée d’Apple
10/09/2012
Le 10/09/2012 à 08h 01
OS Mobiles : Android cartonne, iOS souffre, Symbian et RIM s’écroulent
04/09/2012
Le 04/09/2012 à 16h 38