Bienvenue, Invité. Merci de vous connecter ou de vous inscrire. Avez-vous oublié d'activer ?

Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Messages - retro-bruno

Pages: « Précédente 1 [2]
16
Graphique / Problème de tearing avec sfRenderTexture_getTexture [Résolu]
« le: Novembre 04, 2014, 08:21:08 pm »
Bonsoir à tous,

Je rencontre un problème de tearing avec sfRenderTexture_getTexture. Existe t'il un moyen de contourner ce bug ?

Voici mon code :

void scrolldown() {
    sfVector2f pos;
    pos.x = 0;
    pos.y = 16;
    scrolltex = sfRenderTexture_getTexture(ecran);
    sfSprite * tempspr = sfSprite_create();
    sfSprite_setTexture(tempspr,scrolltex,sfTrue);
    sfSprite_setPosition(tempspr,pos);
    sfRenderTexture_drawSprite(ecran,tempspr,NULL);
    sfSprite_destroy(tempspr);
    sfVector2f vect1;
    sfVector2f vect2;
    vect1.x = 0;
    vect1.y = 0;
    vect2.x = 639;
    vect2.y = 15;
    sfRectangleShape * rectangle = sfRectangleShape_create();
    sfRectangleShape_setPosition(rectangle,vect1);
    sfRectangleShape_setSize(rectangle,vect2);
    sfRectangleShape_setFillColor(rectangle,PAPER);
    sfRenderTexture_drawRectangleShape(ecran,rectangle,NULL);
}
 

Et voici deux screenshots, un avant application de mon scrolling et un après :





Ps : Je ne crois pas pouvoir faire un usage des views pour faire mon scrolling, à moins que quelqu'un ait une idée ? Mon programme est un intepréteur BASIC qui fonctionne un peu comme l'Amstrad CPC pour les scrolling avec les flêches du clavier.
S'il existe la possibilité de copier une view dans une rendertexture, texture, un sprite, une image, je suis preneur...

17
Graphique / Re : SimpleBuffer et GetPoint
« 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.  :)

18
Graphique / Re : SimpleBuffer et GetPoint
« 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

19
Graphique / Re : SimpleBuffer et GetPoint
« 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);

20
Graphique / 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 ?

Pages: « Précédente 1 [2]