Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: SimpleBuffer et GetPoint  (Lu 1929 fois)

0 Membres et 1 Invité sur ce sujet

retro-bruno

  • Newbie
  • *
  • Messages: 20
    • Voir le profil
    • Mes freewares
SimpleBuffer et GetPoint
« le: Novembre 04, 2014, 10:45:49 am »
Bonjour,

Je travaille actuellement sur un projet d'interpréteur BASIC ressemblant au BASIC LOCOMOTIVE de l'Amstrad CPC, mais avec des commandes nouvelles qui, à terme, permettront, si Dieu le veut, d'utiliser un moteur physique 2D rudimentaire.

Je rencontre deux problèmes majeurs graphiques, et un musical mineur.

En premier, j'aurais besoin de pouvoir switcher du mode double-buffering au monde simple buffuring quand je reviens à l'interpréteur de texte.
Voici donc comment je vois la chose, mais cela fait planter l'application :

void flip() {
    sfVector2f pos;
    pos.x = 0;
    pos.y = 0;
    sfTexture * ecran = sfTexture_create(640,480);
    sfTexture_updateFromRenderWindow(ecran,win,0,0);
    sfRenderWindow_display(win);
    sfRenderWindow_clear(win,sfColor_fromRGB(0,0,0));
    sfSprite * spr = sfSprite_create();
    sfSprite_setTexture(spr,ecran,sfTrue);
    sfSprite_setPosition(spr,pos);
    sfSprite_setOrigin(spr,pos);
    sfRenderWindow_drawSprite(win,spr,sfBlendNone);
    sfSprite_destroy(spr);
    sfTexture_destroy(ecran);
}

Ensuite, en mode simple ou double-buffering, il faut que je sois capable de tester la couleur RGB d'un pixel sur la surface de l'écran vidéo (le backbuffer), même si c'est lent. Je ne sais pas comment m'y prendre.

Enfin, mon problème musical, c'est que je n'arrive pas à charger un module XM. Est ce possible ou faut-t-il passer par une librairie tierce ?
« Modifié: Novembre 04, 2014, 02:47:06 pm par DjPoke »
Fraternité - Equité - Liberté

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Besoin d'aide
« Réponse #1 le: Novembre 04, 2014, 12:54:00 pm »
Le format XM n'est pas supporté.

En ce qui concerne tes problèmes de buffering, je ne comprends pas trop ce que tu fais.

Et merci d'éditer le titre de ton post pour le rendre plus explicite (imagine la tronche du forum si tout le monde mettais "Besoin d'aide" ;)). Et à l'avenir, ce serait mieux de créer plusieurs posts si tu as plusieurs problèmes distincts -- surtout si ça concerne des modules différents.
Laurent Gomila - SFML developer

retro-bruno

  • Newbie
  • *
  • Messages: 20
    • Voir le profil
    • Mes freewares
Re : SimpleBuffer et GetPoint
« Réponse #2 le: Novembre 04, 2014, 02:49:31 pm »
En fait, j'ai presque réussi à régler partiellement le premier problème en regardant un exemple d'usage de sfRenderTexture.
Maintenant, je ne sais toujours pas comment faire un getpoint comme la SDL le permet.
C'est très important pour mon projet.

EDIT :Je précise qu'il s'agit d'un getpoint sur une SfRenderTexture maintenant.

EDIT2 : J'ai trouvé un truc qui semble fonctionner mais c'est lent, car je prend tout le RenderWindow pour un seul point :
    sfImage * tempimg = sfRenderWindow_capture(win);
    sfColor pixel = sfImage_getPixel(tempimg,(unsigned int)x,(unsigned int)y);
    testR = (char)pixel.r;
    testG = (char)pixel.g;
    testB = (char)pixel.b;
    sfImage_destroy(tempimg);
« Modifié: Novembre 04, 2014, 03:16:39 pm par DjPoke »
Fraternité - Equité - Liberté

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : SimpleBuffer et GetPoint
« Réponse #3 le: Novembre 04, 2014, 04:41:04 pm »
Et pourquoi dois-tu récupérer des pixels de l'écran ?
Laurent Gomila - SFML developer

retro-bruno

  • Newbie
  • *
  • Messages: 20
    • Voir le profil
    • Mes freewares
Re : SimpleBuffer et GetPoint
« Réponse #4 le: Novembre 04, 2014, 05:00:48 pm »
Je dois émuler les commandes BASIC "Test" et "Testr", qui correspodent à un getpoint à des coordonnées absolues et relatives.  :P
Fraternité - Equité - Liberté

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : SimpleBuffer et GetPoint
« Réponse #5 le: Novembre 04, 2014, 06:28:14 pm »
SFML n'est pas vraiment faite pour ça, de même que tout système graphique ayant moins de 30 ans...

Tu dois supporter quels types de commandes graphiques ? Des points ? Des lignes ? Des sprites ? Du texte ?
Laurent Gomila - SFML developer

retro-bruno

  • Newbie
  • *
  • Messages: 20
    • Voir le profil
    • Mes freewares
Re : SimpleBuffer et GetPoint
« Réponse #6 le: Novembre 04, 2014, 06:56:54 pm »
Oui. D'ailleurs l'essentiel est fait, malgré des bugs au niveau événementiels qui me font planter parfois aléatoirement le programme.
Mais bon, je peux me contenter d'une commande "Test" qui va à cette vitesse.  :)
Fraternité - Equité - Liberté