1

orageGL.gif

Voilà,
ça fait quelque temps que je bosse sur ce projet, et voilà une petite bêta (la première). Il est possible que vous trouviez des bugs(mailez moi alors svp smile)... C'est une bibliothèque graphique qui propose quelques fonctions d'affichage de sprites, de trairement des pixels, etc...

J'en profite pour remercier Geogeo qui a eu la patience et la gentillesse de m'expliquer comment modifier le handler de l'écran smile

Voilà smile

Fonctions :

Oppérations Pixels
void PxlOn(int x, int y, void *plan);
void PxlOff(int x, int y, void *plan);
void PxlChange(int x, int y, void *plan);

Oppérations Lignes
void Horizontal(int y, void *plan);
void Vertical(int x, void *plan);

Touches
void GL_INIT_ROWREAD(int par);
Utilisez cette fonction pour pouvoir utiliser les fonctons "_rowread" (quand vous utilisez des niveaux de gris), en la plaçant au début de votre programme (avant GrayOn()) avec pour argument TRUE, et à la fin (avant GrayOff()), avec FALSE comme argument.

int GL_ESCpressed(void);
int GL_LEFTpressed(void);
int GL_RIGHTpressed(void);
int GL_UPpressed(void);
int GL_DOWNpressed(void);

Sprites
8 bits
void GL_Sprite8_XOR(int x, int y, unsigned char sprite[], void *plan);
void GL_Sprite8_OR(int x, int y, unsigned char sprite[], void *plan);
void GL_Sprite8_AND(int x, int y, unsigned char sprite[], void *plan);
void GL_xSprite8_XOR(int x, int y, unsigned char sprite[], int vtaille, void *plan);
void GL_xSprite8_OR(int x, int y, unsigned char sprite[], int vtaille, void *plan);
void GL_xSprite8_AND(int x, int y, unsigned char sprite[], int vtaille, void *plan);
void GL_SpriteH8_XOR(int x, int y, unsigned char sprite[], void *plan);
void GL_SpriteH8_OR(int x, int y, unsigned char sprite[], void *plan);
void GL_SpriteH8_AND(int x, int y, unsigned char sprite[], void *plan);
void GL_xSpriteH8_XOR(int x, int y, unsigned char sprite[], int vtaille, void *plan);
void GL_xSpriteH8_OR(int x, int y, unsigned char sprite[], int vtaille, void *plan);
void GL_xSpriteH8_AND(int x, int y, unsigned char sprite[], int vtaille, void *plan);

16 bits
void GL_Sprite16_XOR(int x, int y, unsigned int sprite[], void *plan);
void GL_Sprite16_OR(int x, int y, unsigned int sprite[], void *plan);
void GL_Sprite16_AND(int x, int y, unsigned int sprite[], void *plan);
void GL_xSprite16_XOR(int x, int y, unsigned int sprite[], int vtaille, void *plan);
void GL_xSprite16_OR(int x, int y, unsigned int sprite[], int vtaille, void *plan);
void GL_xSprite16_AND(int x, int y, unsigned int sprite[], int vtaille, void *plan);
void GL_SpriteH16_XOR(int x, int y, unsigned int sprite[], void *plan);
void GL_SpriteH16_OR(int x, int y, unsigned int sprite[], void *plan);
void GL_SpriteH16_AND(int x, int y, unsigned int sprite[], void *plan);
void GL_xSpriteH16_XOR(int x, int y, unsigned int sprite[], int vtaille, void *plan);
void GL_xSpriteH16_OR(int x, int y, unsigned int sprite[], int vtaille, void *plan);
void GL_xSpriteH16_AND(int x, int y, unsigned int sprite[], int vtaille, void *plan);

32 bits
void GL_Sprite32_XOR(int x, int y, unsigned long sprite[], void *plan);
void GL_Sprite32_OR(int x, int y, unsigned long sprite[], void *plan);
void GL_Sprite32_AND(int x, int y, unsigned long sprite[], void *plan);
void GL_xSprite32_XOR(int x, int y, unsigned long sprite[], int vtaille, void *plan);
void GL_xSprite32_OR(int x, int y, unsigned long sprite[], int vtaille, void *plan);
void GL_xSprite32_AND(int x, int y, unsigned long sprite[], int vtaille, void *plan);
void GL_SpriteH32_XOR(int x, int y, unsigned long sprite[], void *plan);
void GL_SpriteH32_OR(int x, int y, unsigned long sprite[], void *plan);
void GL_SpriteH32_AND(int x, int y, unsigned long sprite[], void *plan);
void GL_xSpriteH32_XOR(int x, int y, unsigned long sprite[], int vtaille, void *plan);
void GL_xSpriteH32_OR(int x, int y, unsigned long sprite[], int vtaille, void *plan);
void GL_xSpriteH32_AND(int x, int y, unsigned long sprite[], int vtaille, void *plan);

Ralentissement
void sleep(unsigned int i);

PS : Si quelqu'un est intéressé pour tester la lib et me faire connaitre des bugs ou des idées d'amélioration, ou qui est intéressé pour s'occuper de la documentation... oragesoft@hotmail.com Merci smile
avatar
Orage Studio - http://oragestudio.free.fr -
Kya disponible dés le 28 novembre sur PS2 - http://www.eden-studios.com -
Star Wars sur ti 89/92+/v200 téléchargeable dés le 1er janvier 2004...
Orage Demo - Le site 100% paramétrable en cours de développement - http://oragedemo.free.fr

2

On peut la télécharger où, cette lib ?
Il y a une doc ?
Elle est codée en C ou en ASM ?
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

3

Je suis allé sur ton site, et j'ai dl le ZIP.
Il faudrait peut-être mettre le code de la lib (compilé ou non) quelquepart si tu veux qu'on puisse l'utiliser.. smile
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

4

Arf, je n'ai rien dit, le code est dans le header ! eek
Je te conseille de changer ça rapidement si tu ne veux pas que les programmes utilisant ta lib grossissent de plusieurs ko alors qu'ils n'utilisent qu'une seule fonction.
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

5

Ok merci beaucoup pour ton aide, mais comment faire autrement ?


Le lien : http://oragestudio.free.fr/sources/OrageGL.zip
avatar
Orage Studio - http://oragestudio.free.fr -
Kya disponible dés le 28 novembre sur PS2 - http://www.eden-studios.com -
Star Wars sur ti 89/92+/v200 téléchargeable dés le 1er janvier 2004...
Orage Demo - Le site 100% paramétrable en cours de développement - http://oragedemo.free.fr

6

Tu dois utiliser un fichier .c pour chaque fonction de ta lib, et compiler le tout avec l'option Function Archive (*.a) (Projet->Options...)
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

7

Sinon, juste un détail au niveau des performances, les fonctions de sprites de TIGCCLIB permettent de dessiner dans différents modes avec la même fonction. Si tes fonctions sont aussi rapides qu les leurs alors qu'elles sont spécialisées dans un mode c'est qu'il y a peut-être des trucs à changer...
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

8

J'ai vu tes sources, et j'ai quelques remarques :

1.Ta fonction de ralentissement est inutile : je pense qu'une boucle, tout programmeur est capable de le faire, et en plus y'a d'autres solutions bien plus économique en énergie.
2. Dans ton GL_INIT_ROWREAD tu oublié de rediriger AUTO_INT_5
3. Tes fonctions de détection de touches ne sont adaptés qu'a un type de calculatrice. De plus, ces fonctions existent déjà dans tigcclib : cf key_test avec RR_ESC, etc... qui sont en plus elles adaptées aux différentes calculatrices

[EDIT] j'ai un train de retard

9

Ouep, mêmes remarques que Sasume :

- La lib dans le header, c'est bof
- Les fonctions de sprites sont TRES lentes (j'ai pas testé, mais visiblement ça va être pire qu'Extgraph 1). Pourquoi refaire des fonctions de sprites non-clippées alors qu'il existe Extgraph 2 qui elle est clippée et qui est bien plus rapide ?
- Ta fonction PxlOff est buggée j'ai l'impression, tu as simplement recopié le code de PxlOn avec un &=.

[edit] PxlOff pas PxlChange...
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

10

PxlOff, tu veux dire ?
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

11

Heu oui pardon, PxlOff.

[edit] Au passage :
OrageGL peut se vanter d'atteindre la même puissance que la librairie standard de TIGCC... (à titre comparatif, sachez que extgraph a 2x la puissance de cette dernière...)

Je ne crois pas qu'on puisse vraiment s'en "vanter", TIGCClib est surement la lib la plus lente en ce qui conserne le graphisme (et pas que ça, d'ailleurs, mais ça en fait partie).
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

12

<SARCASM>Oui, c'est exactement ce dont on a besoin, un clône mal fait de ExtGraph 0.20.</SARCASM> roll
--> poubelle direct
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

13

Erf il a quand meme le droit de faire sa propre lib!
et puis Extgraphlib2 poubelle directe alors vu que ya gen et X! faut pas deconner quand meme!

14

Heu... C'était le cas avec Extgraph 1 (même si Kevin n'a jamais voulu le reconnaitre), mais Extgraph 2 est quand même bien plus interessante. Et puis X a été abandonnée avant d'avoir été terminée :/
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

15

Ptite question: ça améliore vraiment les perf d'enlever l'auto int 5 ?
Ben voilà. Ben ouais quoi.

16

Non, pas d'une manière significative.
Mais si tu veux utiliser la lecture de touches bas-niveau (_rowread ou _keytest), tu es de toute façon obligé de le faire.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

17

Ah...
Je programme avec _rowread depuis un an et j'ai jamais enlevé l'auto int 5....merde...
Ben voilà. Ben ouais quoi.

18

Ça boguera. Il faut rediriger les auto-interruptions 1 et 5. C'est écrit dans la doc! (D'ailleurs, la suggestion d'utiliser OSSetSR est mauvaise parce que ça désactive aussi l'AI3 qui gère l'horloge sous AMS 2.07 et supérieures. Il vaut mieux rediriger juste les auto-ints 1 et 5. Nous allons corriger ça.)
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

19

Quand tu dis "boguera" ça pourrait être par exemple quand t'appuie longtemps sur une touche ça active une autre touche ??

Parce que là ouais c'est possible que j'ai déjà remarqué ça....

Mais alors comment t'utilises le UserTimer ?
Ben voilà. Ben ouais quoi.

20

Rising Sun
: Quand tu dis "boguera" ça pourrait être par exemple quand t'appuie longtemps sur une touche ça active une autre touche ??

Oui, c'est exactement le genre de trucs qui peuvent arriver.
Mais alors comment t'utilises le UserTimer ?

Tu ne l'utilises pas. grin
Tu peux mettre ton propre timer dans ton handler de l'AI5.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

21

Okai smile

Bon ben très bien merci gni
Ben voilà. Ben ouais quoi.

22

J'ai recompilé la lib en ".a" : http://oragestudio.free.fr/sources/OrageGL.zip

Pour la lib c clair qu'elle n'est pas surrapide et que moi aussi je préfère utiliser extgraph2, mais je fais ça pour apprendre...
avatar
Orage Studio - http://oragestudio.free.fr -
Kya disponible dés le 28 novembre sur PS2 - http://www.eden-studios.com -
Star Wars sur ti 89/92+/v200 téléchargeable dés le 1er janvier 2004...
Orage Demo - Le site 100% paramétrable en cours de développement - http://oragedemo.free.fr

23

Bah si c'est pour apprendre c'est très bien, mais c'est pê pas la peine de releaser du coup ? Parceque des débutants risquent de la prendre alors qu'ils feraient mieux de prendre Extgraph 2, franchement neutral
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

24

Parceque des débutants risquent de la prendre alors qu'ils feraient mieux de prendre Extgraph 2, franchement

J'ai écrit dans le lisez-moi que extgraph était 2x plus rapide.^^
avatar
Orage Studio - http://oragestudio.free.fr -
Kya disponible dés le 28 novembre sur PS2 - http://www.eden-studios.com -
Star Wars sur ti 89/92+/v200 téléchargeable dés le 1er janvier 2004...
Orage Demo - Le site 100% paramétrable en cours de développement - http://oragedemo.free.fr

25

Il faut que tu enlèves le code du header !
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

26

Oui, dans la version finale... Pour le moment, il faut juste joindre au projet "OrageGL.a"
avatar
Orage Studio - http://oragestudio.free.fr -
Kya disponible dés le 28 novembre sur PS2 - http://www.eden-studios.com -
Star Wars sur ti 89/92+/v200 téléchargeable dés le 1er janvier 2004...
Orage Demo - Le site 100% paramétrable en cours de développement - http://oragedemo.free.fr

27

Le .a ne sert à rien si le code est dans le header! Vire le code du header immédiatement!
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

28

sinon fessesfouet par kevin ! grin

29

Kevin Kofler :
Vire le code du header immédiatement!

Wow. Heureusement - pour Kevin - que je ne suis pas l'auteur du topic grin
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

30

Vire le code du header immédiatement!


Mais il ne faut pas inclure la header, le ".a" suffit.
avatar
Orage Studio - http://oragestudio.free.fr -
Kya disponible dés le 28 novembre sur PS2 - http://www.eden-studios.com -
Star Wars sur ti 89/92+/v200 téléchargeable dés le 1er janvier 2004...
Orage Demo - Le site 100% paramétrable en cours de développement - http://oragedemo.free.fr