π
<-
Chat plein-écran
[^]

GraphX - Dessiner un sprite avec une échelle < 100%

Assembleur, Axe, C/C++, ICE...

GraphX - Dessiner un sprite avec une échelle < 100%

Message non lude Yobio » 15 Oct 2022, 12:05

Bonjour, je développe actuellement un jeu en c pour :32ti83pce: mais j'ai besoin de pouvoir dessiner un sprite transparent avec une mise à l'échelle inférieure à 100% (plus petit que sa taille originale).

La fonction gfx_RotatedScaledTransparentSprite_NoClip de la lib graphx permet de dessiner un sprite transparent dont l'échelle peut être inférieure à 64 (64 correspond ici à 100%). Cependant mon sprite est rectangulaire et la fonction n'accepte que des sprites dont les dimensions sont un carré (sprite->width=sprite->height).
Il y a aussi la fonction gfx_ScaledTransparentSprite_NoClip, mais celle-ci prend une échelle entière qui ne peut qu'être agrandie (1 correspond à 100%, 2 à 200%, etc. mais 0.5 ne fonctionne pas car ça doit être un int).

Je pourrais redessiner mon sprite avec une marge pour faire un carré mais j'aimerais optimiser le stockage dans la rom.
Faut-il que j'ajoute cette marge au début du programme et ainsi stocker le sprite redimensionné seulement lors de l'exécution ? (le problème c'est que je ne sais pas comment agrandir les dimensions du sprite sans agrandir son image)
Sinon y a-t-il une autre fonction permettant cela ou un autre moyen ?

Merci pour votre aide !
Avatar de l’utilisateur
Yobio
Niveau 5: MO (Membre Overclocké)
Niveau 5: MO (Membre Overclocké)
Prochain niv.: 56%
 
Messages: 13
Inscription: 20 Nov 2021, 13:26
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: 2nde

Re: GraphX - Dessiner un sprite avec une échelle < 100%

Message non lude Adriweb » 15 Oct 2022, 14:20

Salut,

J'ai forwardé ta question sur le canal "officiel" de de la toolchain CE, #ez80-dev (sur IRC EFNet, ou sur Discord), et Runer112 a répondu:

14:32:42 <@Runer112> if they want to repeatedly draw the sprite at this size, they should use gfx_ScaleSprite to scale the sprite data once and then just draw it using unscaled sprite functions
15:05:08 <@Runer112> unfortunately it doesn't look like there's any way to directly draw a non-integer scaled non-square sprite, as they discovered

Si tu parles anglais, n'hésite pas à rejoindre le canal, d'ailleurs :)

Si non... une traduction rapide de ses messages, c'est que si tu veux dessiner à plusieurs reprises le sprite à cette taille, tu dois utiliser gfx_ScaleSprite pour scale les données du sprite une fois, puis juste les dessiner à l'aide de fonctions de sprite non-scaled. Malheureusement, il ne semble pas y avoir de moyen de dessiner directement un sprite non carré à l'échelle non entière, comme tu as pu le voir.
Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.3%
 
Messages: 14617
Images: 1218
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: GraphX - Dessiner un sprite avec une échelle < 100%

Message non lude Yobio » 15 Oct 2022, 15:33

Merci beaucoup ! Je pense que je vais faire gfx_ScaleSprite à chaque frame (peut-être pas une bonne idée :mmm: ). Sinon j'essaierai de modifier directement la matrice de l'image.
J'irai voir le canal irc, merci pour le conseil :)
Avatar de l’utilisateur
Yobio
Niveau 5: MO (Membre Overclocké)
Niveau 5: MO (Membre Overclocké)
Prochain niv.: 56%
 
Messages: 13
Inscription: 20 Nov 2021, 13:26
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: 2nde

Re: GraphX - Dessiner un sprite avec une échelle < 100%

Message non lude Adriweb » 15 Oct 2022, 15:52

Non, il vaut mieux le faire qu'une seule fois, pourquoi voudrais-tu le faire a chaque frame? :P
Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.3%
 
Messages: 14617
Images: 1218
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: GraphX - Dessiner un sprite avec une échelle < 100%

Message non lude Yobio » 15 Oct 2022, 16:09

C'est pour faire un objet qui se rapproche, donc avec la perspective il faut recalculer l'image à chaque frame non ? Je ne peux pas créer 64 buffers pour stocker chaque sprite pour chaque échelle entre 1 et 64 car ce serait probablement trop lourd.
Avatar de l’utilisateur
Yobio
Niveau 5: MO (Membre Overclocké)
Niveau 5: MO (Membre Overclocké)
Prochain niv.: 56%
 
Messages: 13
Inscription: 20 Nov 2021, 13:26
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: 2nde

Re: GraphX - Dessiner un sprite avec une échelle < 100%

Message non lude Adriweb » 15 Oct 2022, 16:14

Ah, je n'avais pas cette information là.
Ca serait quand même dommage de devoir faire autant de calcul lors du dessin... A mon avis il vaut mieux moins optimiser la place (on en a assez sur CE...) et faire des sprites carrés pour ensuite pouvoir utiliser gfx_RotatedScaledTransparentSprite_NoClip. Mais bon, à toi de tester plusieurs solution selon l'impact sur la taille et la performance, pour voir ce qui est acceptable en fin de compte.
Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.3%
 
Messages: 14617
Images: 1218
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: GraphX - Dessiner un sprite avec une échelle < 100%

Message non lude Yobio » 15 Oct 2022, 16:27

Oui je pense aussi que ça réduirait beaucoup la performance donc en attendant je vais faire des sprites carrés et je verrais plus tard si ça peut s'optimiser.
Avatar de l’utilisateur
Yobio
Niveau 5: MO (Membre Overclocké)
Niveau 5: MO (Membre Overclocké)
Prochain niv.: 56%
 
Messages: 13
Inscription: 20 Nov 2021, 13:26
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: 2nde


Retourner vers Langages alternatifs

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 34 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1641 utilisateurs:
>1631 invités
>6 membres
>4 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)