Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.
Menu
Calculatrices
Graph 35 à 100
Graph 25+Pro/25+E/25+E II
Graph 35+USB/75(+E)/85/95 SD
Graph 100(+)
Classpad 300/330(+)
fx-CG 10/20 (Prizm)
Classpad 400(+E)
Graph 90+E
fx-92+ SC
Liens
¤ Transférer un programme sur
sa calculatrice

¤ Vous cherchez une fonction ?
Utilitaires >> fx-CG 10/20 (Prizm) >> Add-ins >> Colorlib
Colorlib
Version : 1.0 Taille : 25100 octets Ajouté le : 2013-10-26 18:09 Modifié le : 2013-11-04 19:41
Auteur et posteur :
LancelotHors ligneMembrePoints: 1274 Défis: 160 Message
Planète Casio - Add-in Casio - Colorlib - lancelot - Calculatrices
Nombre de visites sur cette page : 9241
Score au progrank : 36
Pas encore de note !
Vous devez être connecté(e) pour noter (inscription).
1308 téléchargements | Soumettre un test

Ce programme est sous licence Creative Commons 2.0 BY-ND


Description :

Colorlib v 1.0 by Lancelot


Salut à tous

Voici une version un plus propre de la ColorLib pour programmer en C C++ sur la PRIZM. Cette librairie contient toutes les fonctions graphiques utiles et importantes pour faire un add-in sur la calculatrice CASIO fx-CG20.

Fonctions incluses:
-pixel
-pixel alpha
-état d'un pixel
-ligne
-ligne verticale ou horizontale
-fond d'écran de couleur
-cercle
-rectangle remplit
-polygone vide ou plein
-image transparence ou normale + choix du nombre de bits
-affichage de texte

Installation:
-glissez les fichiers colorlib.c et colorlib.h dans votre dossier projet et voilà c'est fait

Utilisation:
-Placer #include "ColorLib.h" au début de votre code.
-Dé-commenter les #define dans colorlib.h pour utiliser les fonctions qui vous intéressent.

Futur mises à jour:
-Création de documentation sur l'utilisation de la lib.
-Réécriture de cette page pour quelque chose de plus propre
-Mettre une image de fonctionnement de cette librairie.

Fichier 2: add in de test

N'hésiter pas à me faire part de vos remarques sur le code afin de l'améliorer et à me proposer des fonctions à ajouter



Commentaires :

Pages: 1, 2, 3 | Suivante

LancelotHors ligneMembrePoints: 1274 Défis: 160 Message
Posté le 26-10-2013 à 18:19 | #
je recherche un petit code pour pouvoir tester mes fonctions qui utilise la vram. Je pensait faire quelque chose comme cela.


[brown]#include [gray]"ColorLib.h"[/gray][/brown]


void main(void) {
    
    pixel(12, [maroon]12[/maroon], quel est le nombre a mettre?)
    comment rachraichir la vram ou l'afficher ?
    [b][blue]while[/blue][/b] (1)
    {
        [purple]int[/purple] key = [maroon]0[/maroon];
        GetKey(&key);
        
    }
    [b][blue]return[/blue][/b];
}
NemhardyHors ligneGrand maître des Traits d'EspritPoints: 1243 Défis: 54 Message
Posté le 26-10-2013 à 23:44 | #
Pour la couleur, tu trouvera ton bonheur dans color.h !
Et pour la vram :
Bdisp_PutDisp_DD();
pour l'afficher et
Bdisp_AllClr_VRAM();
pour la "vider" .

Ah oui et aussi, je sais pourquoi la fonction getVramAdress ne marchait plus : toux les
\\n
en fin de ligne ont sautés... Il vaudrait mieux la remettre je pense ...

Ps : pourquoi as tu enlevé certaines fonctions, comme les polygones, les fonctions en alpha et autres...?
LancelotHors ligneMembrePoints: 1274 Défis: 160 Message
Posté le 27-10-2013 à 11:08 | #
pour les fonctions de vram je pensait trouver quelque chose de plus personnel que ceci.

ok je teste avec \n pour getVramAdress

j'ai enlever les fonctions polygones, alpha et tout cela car elle ne fonctionnant pas, je les rajoutent dès qu'elles sont réparées. (toujour ce stupide problème de fichier temporaire )
LancelotHors ligneMembrePoints: 1274 Défis: 160 Message
Posté le 27-10-2013 à 12:35 | # | Fichier joint
Je viens de faire des testes de rapidité entre les fonctions get_pixel et pixel_asm
Cliquez pour découvrir
Cliquez pour recouvrir
void CL_Pixel(int x, [purple]int[/purple] y, unsigned short color)
{
   char* VRAM = (char*)0xA8000000;  
   VRAM += [maroon]2[/maroon]*(y*LCD_WIDTH_PX + x);
   *(VRAM++) = (color&0x0000FF00)>>8;
   *(VRAM++) = (color&0x000000FF);
   [b][blue]return[/blue][/b];
}

et
void pixel_asm(unsigned short x, unsigned short y, unsigned short color)
{
    __asm__([gray]"mov.w    .width,r1\n"[/gray]    [green]// width [b]->[/b] r1[/green]
            [gray]"mulu.w    r1,r5\n"[/gray]        [green]// width * y [b]->[/b] macl    : Get the y pixel offset[/green]
            [gray]"mov.l    .vram,r1\n"[/gray]     [green]// vram [b]->[/b] r1           : Sets the VRAM adres in r1[/green]
            [gray]"sts    macl,r0\n"[/gray]      [green]// macl [b]->[/b] r0           : Gets macl in r0[/green]
            [gray]"add    r4,r0\n"[/gray]        [green]// r0 + x [b]->[/b] r0         : Get the pixel offset in the VRAM[/green]
            [gray]"shll    r0\n"[/gray]           [green]// r0 = r0 <<1          : Multiplies by two to get the short offset[/green]
            [gray]"mov.w    r6,@(r0,r1)\n"[/gray]  [green]// *r0 = color          : Sets the pixel to the deisred color[/green]
            [gray]"rts\n"[/gray]    
            [gray]"clrmac\n"[/gray]
            [gray]".align 1\n"[/gray]
            [gray]".width:\n"[/gray]
            [gray]"    .short 384\n"[/gray]
            [gray]"      .align 2\n"[/gray]
            [gray]".vram:\n"[/gray]
            [gray]"    .long -1476395008\n"[/gray]
            [gray]"     .align 1\n"[/gray]);
}


Je leur ai demander de replire l'écran 500 fois de couleur (marron pour le getpixel et vert pour asm)

les résultats
les résultats

Fait sur des moyennes:
-sur émulateur: 16 secondes pour asm et 22s pour getpixel :aaah:
-sur prizm:38 secondes pour asm et 58 s pour getpixel :aaah: :aaah:


vous pouvez essayer chez vous si vous voulez fichier joint
NemhardyHors ligneGrand maître des Traits d'EspritPoints: 1243 Défis: 54 Message
Posté le 27-10-2013 à 14:10 | #
Fais gaffe lorsque tu mets des codes avec des \\n , il faut rajouter un deuxième \\ pour qu'il ne disparaisse pas .
Sinon content d'apprendre que l'on constate des différences relativement importantes !
LancelotHors ligneMembrePoints: 1274 Défis: 160 Message
Posté le 27-10-2013 à 21:48 | # | Fichier joint
enfin la version 1.00, elle est testé et fonctionnel. Elle comprend aussi les fonctions demander par Nemhardy

Il ne me faut plus qu'écrire la doc
Dark stormHors ligneLabélisateurPoints: 11641 Défis: 176 Message
Posté le 28-10-2013 à 11:23 | #
ce qui est bien, c'est de mettre à jour le programme, et non de poster la lib dans un commentaire
LancelotHors ligneMembrePoints: 1274 Défis: 160 Message
Posté le 02-11-2013 à 16:54 | #
Je l'ai postée aussi sur le programme. Jai fait les deux
Dark stormHors ligneLabélisateurPoints: 11641 Défis: 176 Message
Posté le 04-11-2013 à 18:04 | #
Au passage, le coup du "__asm__("code ASM")", ça marche aussi sur le SdK G85 ?
LancelotHors ligneMembrePoints: 1274 Défis: 160 Message
Posté le 04-11-2013 à 19:35 | #
A voir :huh:

Pages: 1, 2, 3 | Suivante

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 90 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd