Seuls les membres ayant 30 points peuvent parler sur le chat.
Menu
Calculatrices
Graph 35 à 100 (CFX)
Graph 25/25+ (Pro) (fx-7400)
Graph 35+USB/75/85/95 (SD)
Graph 100/100+ (AFX)
ClassPad 300/330
Fx-CG 10/20
Fx-CP 400
Graph 90+E
Liens
¤ Transférer un programme sur
sa calculatrice

¤ Vous cherchez une fonction ?
Utilitaires >> Fx-CG 10/20 >> 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 : 6851
Score au progrank : 33
Pas encore de note !

Vous devez être inscrit(e) et avoir 20 points ou plus pour noter.
855 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: 1235 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: 1235 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 stormEn ligneMembre d'honneurPoints: 11297 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 stormEn ligneMembre d'honneurPoints: 11297 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 v42 © créé par Neuronix et Muelsaco 2004 - 2021 | Il y a 50 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