TiPaintPlus 2.0

Documentation 1.0

Ecrit par : MARTIN Olivier

 

 

 

Introduction

Eléments requis

Installation

Guide des Outils

Guide de Programmation

Programmation de Plug-in

Dans les Prochaines versions ...

Je recherche ...

Auteur

Remerciement

 

 

 

 

Introduction

 

TiPaintPlus est un logiciel de création de dessin comme Paint, et un convertisseur d'image BMP en sprite, en Bitmap, en Code Source C (pas pour les images converties).

 

 

Eléments requis

 

- Une TI 89 ou 92

- Un compilateur C (TI-GCC)

 

 

Installation

 

Dézipper le fichier téléchargé dans le dossier choisi.

 

 

Guide des Outils

 

 

Outils pour la programmation en Code Source C

 

*  Pinceau :void DrawPix (int x, int y, int Attr);

  Ligne :void DrawLine (int x0, int y0, int x1, int y1, int Attr);

  Ellipse:void DrawClipEllipse (int x, int y, int a, int b, const SCR_RECT *clip, int Attr);

 Multilignes    :void DrawMultiLines (int x, int y, const void *multi_lines);

 Triangle (Rempli):void FillTriangle (int x0, int y0, int x1, int y1, int x2, int y2, const SCR_RECT *clip, int Attr);

 Rectangle (Rempli) :void ScrRectFill (const SCR_RECT *rect, const SCR_RECT *clip, int Attr);

 Texte           :void DrawStr (int x, int y, const char *str, int Attr);

 Caractère     :void DrawChar (int x, int y, char c, int Attr);

 

 

Outils de transformation

 

* Translation Verticale (sens Bas->Haut)

 Translation Verticale (sens Haut->Bas)

 Translation Horizontale (sens Droite->Gauche)

 Translation Horizontale (sens Gauche->Droite)

   Rotation (non disponible)

   Symétrie d’axe verticale

   Symétrie d’axe horizontale

 

 

Outils évolués

 

*     Polygone

     Remplissage

     Texte évolué

 

 

Autres

 

     Zoom moins

     Zoom Plus

 

 

Guide de Programmation

 

 

Bitmap

 

#define SAVE_SCREEN

#define USE_GRAY_PATCH

 

#include <nostub.h>

#include <gray.h>

#include <graph.h>

#include <kbd.h>

 

int _ti89;

 

// Votre Image crée à l'aide de TiPaintPlus pour le premier plan (0)

BITMAP Bmp0_C0 = {49,110,{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xFF,0xFF,0xFF,0xFF,0xE0,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xFF,0xFF,0xFF,0xFC,0x7F,0xFF,0xFF,0x8F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xFF,0xFF,0xFF,0xC7,0xFF,0xFF,0xFF,0xF8,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFF,0xFF,0xBF,0xFF,0xFF,0xFF,0xFF,0xFC,0xFF,0xFF,0xF9,0xFF,0xFF,0xFF,0xFF,0xFF,0xE7,0xFF,0xFF,0xFF,0xFF,0xFC,0xFF,0xFF,0xE7,0xFF,0xFF,0xBF,0xFF,0xE6,0xF1,0xFF,0xFF,0xFF,0xFF,0xFC,0xFF,0xFF,0x9F,0xFF,0xA7,0xFF,0xFF,0xFF,0xBF,0x7F,0xFF,0xFF,0xFF,0xFC,0xFF,0xFF,0x7F,0xFF,0x7F,0xFF,0xFF,0xFF,0xF7,0xBF,0xFF,0xFF,0xFF,0xFC,0xFF,0xFD,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xEF,0xFF,0xFF,0xFF,0xFC,0xFF,0xFB,0xFF,0xEF,0xFF,0xFF,0xFF,0xFF,0xFF,0xB7,0xFF,0xFF,0xFF,0xFC,0xFF,0xF7,0xFF,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEB,0xFF,0xFF,0xFF,0xFC,0xFF,0xEF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xFF,0xDF,0xFE,0xE7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0x0F,0xFE,0xFF,0xFC,0xFF,0xBF,0xFF,0xFD,0xFF,0xFF,0xFF,0xFF,0xFF,0xFB,0xFB,0xF0,0xFF,0xFC,0xFF,0x7F,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEF,0xFF,0xF6,0xFF,0xFC,0xFE,0xFF,0xFB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xDD,0xFF,0xF6,0xFF,0xFC,0xFE,0xFF,0xFF,0xFD,0xFF,0xFF,0xFF,0xFF,0xFF,0xF9,0xEF,0xF6,0xFF,0xFC,0xFD,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xB3,0xF7,0x76,0xFF,0xFC,0xFD,0xFF,0xF7,0xFE,0xDF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x76,0xFF,0xFC,0xFF,0xFF,0xEF,0xFF,0x79,0x07,0xF0,0x7D,0xB7,0x6F,0xFF,0xF6,0xFF,0xFC,0xFB,0xFF,0xEF,0xFF,0x7C,0xFB,0xDB,0xBA,0xFF,0x6F,0xFF,0xF6,0xFF,0xFC,0xFB,0xFF,0xEF,0xFF,0xF6,0x1D,0xCD,0xDE,0x9B,0x6F,0xC0,0xF6,0xFF,0xFC,0xFB,0xFF,0xEF,0xFF,0xF7,0xFF,0xBF,0xFF,0xEF,0x6F,0xDC,0xF6,0xFF,0xFC,0xFB,0xFF,0xEF,0xFF,0x55,0xF5,0x9F,0x5D,0xF5,0x6F,0xFF,0xF7,0xFF,0xFC,0xFF,0xFF,0xEF,0xFF,0x77,0xFF,0xE0,0xFD,0xF5,0x7F,0x8B,0x76,0xFF,0xFC,0xFF,0xFF,0xF7,0xFF,0x75,0xFA,0x7F,0xCD,0xF5,0x7F,0xFF,0xF6,0xFF,0xFC,0xFF,0xFF,0xFF,0xFF,0xB7,0xFA,0x5F,0xF5,0xF5,0xFB,0xFB,0xF6,0xFF,0xFC,0xFD,0xFF,0xFB,0xFE,0xF7,0xFF,0x5F,0x95,0xF5,0xBF,0xFB,0xF6,0xFF,0xFC,0xFF,0xFF,0xFD,0xFD,0x74,0xF5,0xAF,0x95,0xF5,0xFE,0x77,0xF7,0x00,0xE4,0xFE,0xFF,0xFE,0x7A,0x77,0x69,0xB7,0xB5,0xF5,0xDF,0xFB,0xF7,0xFF,0x7C,0xFF,0xFF,0xFF,0xCC,0xF5,0xF7,0xFF,0xF5,0xF5,0xFF,0xFD,0x77,0xFF,0x70,0xFF,0xFF,0xFF,0xFB,0xF4,0x97,0xE8,0x77,0xFF,0xFD,0xAE,0x70,0x00,0x6C,0xFF,0x9F,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xFF,0xDF,0xFF,0x3F,0xF1,0xFF,0xFF,0xFF,0xFF,0xF3,0xFF,0xFF,0xFF,0xFC,0xFF,0xFF,0xFF,0xCF,0xF5,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xFF,0xFF,0xFF,0xF3,0xF9,0xFF,0xFF,0xFF,0xFF,0x1F,0xFF,0xFF,0xFF,0xFC,0xFF,0xFC,0xFF,0xFE,0x7F,0xFF,0xFF,0xFF,0xFC,0xBF,0xFF,0xFF,0xFF,0xFC,0xFF,0xFF,0xFF,0xFF,0xCF,0xFF,0xFF,0xFF,0xE6,0xFF,0xFF,0xFF,0xFF,0xFC,0xFF,0xFF,0xBF,0xFF,0xF8,0xFF,0xFF,0xF8,0x7F,0xFF,0xFF,0xFF,0xFF,0xFC,0xFF,0xFF,0xEF,0xFF,0xFF,0x83,0xF0,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xFF,0xFF,0xFE,0x7F,0xFF,0xFD,0xFF,0xFF,0xBF,0xFF,0xFF,0xFF,0xFF,0xFC,0xFF,0xFF,0xFF,0x5F,0xFF,0xFF,0xFF,0xFF,0x7F,0xFF,0xFF,0xFF,0xFF,0xFC,0xFF,0xFF,0xFF,0xF9,0xFF,0xFF,0xFF,0xD7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xFF,0xFF,0xFF,0xFF,0x53,0xFF,0xF3,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC}};

 

// Votre Image crée à l'aide de TiPaintPlus pour le deuxième plan (1)

BITMAP Bmp0_C1 = {49,110,{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xFF,0xFF,0xFF,0xFF,0x80,0x00,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xFF,0xFF,0xFF,0x80,0x00,0x00,0x00,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xFC,0xFF,0xFF,0xFE,0x00,0x00,0x00,0x00,0x00,0x1F,0xFF,0xFF,0xFF,0xFF,0xFC,0xFF,0xFF,0xF8,0x00,0x00,0x7F,0xFF,0xF8,0x0F,0xFF,0xFF,0xFF,0xFF,0xFC,0xFF,0xFF,0xE0,0x00,0x1F,0xFF,0xFF,0xFF,0xC0,0xFF,0xFF,0xFF,0xFF,0xFC,0xFF,0xFF,0x80,0x00,0xFF,0xFF,0xFF,0xFF,0xF8,0x7F,0xFF,0xFF,0xFF,0xFC,0xFF,0xFE,0x00,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0x1F,0xFF,0xFF,0xFF,0xFC,0xFF,0xFC,0x00,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xCF,0xFF,0xFF,0xFF,0xFC,0xFF,0xF8,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0xFF,0xFF,0xFF,0xFC,0xFF,0xF0,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xFF,0xE0,0x01,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xFF,0xC0,0x00,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0x07,0xFE,0xFF,0xFC,0xFF,0x80,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0x01,0xF8,0xFF,0xFC,0xFF,0x00,0x01,0xF8,0x7F,0xFF,0xFF,0xFF,0xFF,0xE0,0x00,0xF8,0xFF,0xFC,0xFF,0x00,0x03,0xFE,0x3F,0xFF,0xFF,0xFF,0xFF,0xC3,0xF0,0xF8,0xFF,0xFC,0xFE,0x00,0x07,0xFF,0x3F,0xFF,0xFF,0xFF,0xFF,0xC7,0xF8,0xF8,0xFF,0xFC,0xFE,0x00,0x0F,0xFF,0x3F,0xFF,0xFF,0xFF,0xFF,0x87,0xF8,0xF8,0xFF,0xFC,0xFC,0x00,0x0F,0xFF,0x9F,0xFF,0xFF,0xFF,0xCF,0x8F,0xFF,0xF8,0xFF,0xFC,0xFC,0x00,0x0F,0xFF,0x9B,0x07,0xE0,0x7D,0x03,0x8F,0xFF,0xF8,0xFF,0xFC,0xFC,0x00,0x0F,0xFF,0x98,0xE3,0xE6,0x38,0x63,0x8F,0xFF,0x78,0xFF,0xFC,0xFC,0x00,0x0F,0xFF,0x98,0xF1,0xCF,0x18,0xF3,0x8F,0xE3,0x78,0xFF,0xFC,0xFC,0x00,0x0F,0xFF,0x99,0xF9,0xDF,0x99,0xFB,0x8F,0xC0,0x78,0xFF,0xFC,0xFC,0x00,0x0F,0xFF,0x99,0xF9,0x9F,0x99,0xFB,0x8F,0xF4,0x78,0xFF,0xFC,0xFC,0x00,0x0F,0xFF,0x9B,0xFD,0x80,0x19,0xFB,0x87,0xFC,0x78,0xFF,0xFC,0xFC,0x00,0x07,0xFF,0x39,0xFD,0x80,0x19,0xFB,0x87,0xFC,0x78,0xFF,0xFC,0xFE,0x00,0x07,0xFF,0x39,0xF9,0x9F,0xF9,0xFB,0xC3,0xFC,0x78,0xFF,0xFC,0xFE,0x00,0x03,0xFE,0x79,0xF9,0xDF,0xD9,0xFB,0xC1,0xF8,0x78,0xFF,0x5C,0xFF,0x00,0x01,0xFC,0xF8,0xF3,0xCF,0x99,0xFB,0xE0,0x00,0x78,0x00,0x60,0xFF,0x00,0x00,0x31,0xF8,0x03,0xC0,0x39,0xFB,0xF0,0x06,0x78,0x00,0x5C,0xFF,0x80,0x00,0x07,0xFB,0x0F,0xF0,0xF9,0xF3,0xFE,0x1F,0xFF,0xFF,0xFC,0xFF,0xC0,0x01,0xFF,0xF1,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xFF,0xE0,0x00,0xFF,0xFB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xFF,0xF0,0x00,0x3F,0xFB,0xFF,0xFF,0xFF,0xFF,0xE7,0xFF,0xFF,0xFF,0xFC,0xFF,0xF8,0x00,0x0F,0xF3,0xFF,0xFF,0xFF,0xFF,0xCF,0xFF,0xFF,0xFF,0xFC,0xFF,0xFE,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0x3F,0xFF,0xFF,0xFF,0xFC,0xFF,0xFF,0x00,0x00,0x3F,0xFF,0xFF,0xFF,0xF8,0x7F,0xFF,0xFF,0xFF,0xFC,0xFF,0xFF,0xC0,0x00,0x07,0xFF,0xFF,0xFF,0x81,0xFF,0xFF,0xFF,0xFF,0xFC,0xFF,0xFF,0xF0,0x00,0x00,0x7F,0xFF,0xF0,0x07,0xFF,0xFF,0xFF,0xFF,0xFC,0xFF,0xFF,0xFC,0x00,0x00,0x02,0x00,0x00,0x1F,0xFF,0xFF,0xFF,0xFF,0xFC,0xFF,0xFF,0xFF,0x80,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xFF,0xFF,0xFF,0xF0,0x00,0x00,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xFF,0xFF,0xFF,0xFF,0x80,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC}};

 

void *Image_C0 = &Bmp0_C0;

void *Image_C1 = &Bmp0_C1;

 

int _main(void)

{

      if (!GrayMode (GRAY_ON)) return 0;

 

      SetPlane (0);    

      ClrScr ( );

      BitmapPut (10, 10, Image_C0, ScrRect, A_NORMAL);

     

      SetPlane (1);    

      ClrScr ( );

      BitmapPut (10, 10, Image_C1, ScrRect, A_NORMAL);

 

      ngetchx ( );     

      GrayMode (GRAY_OFF);

 

      return 1;

}

 

 

Sprite

 

#define SAVE_SCREEN

#define USE_GRAY_PATCH

 

#include <nostub.h>

#include <gray.h>

#include <sprites.h>

#include <graph.h>

#include <kbd.h>

 

int _ti89;

 

// Votre Sprite crée à l'aide de TiPaintPlus pour le premier plan (0)

unsigned int sprit0_C0[] = {0x0000,0x0080,0x0000,0x0080,0x0000,0x0080,0x0000,0x0080,0x0000,0x1E00,0x0000,0x3F80,0x0001,0xFF00,0x0003,0xFF40,0x001F,0xFF60,0x0039,0xFF70,0x0142,0xFFF8,0x0340,0xBFFC,0x1D01,0x5FFE,0x3800,0x9FF2,0x4000,0x2FEA,0x4000,0x5FDE,0x4000,0x1FFE,0x4700,0x1FFC,0x4C00,0xFFFC,0x2D03,0xFF5C,0x1D07,0xFF48,0x0D1F,0xFD40,0x033F,0xFC00,0x013F,0xDC00,0x013F,0xC800,0x003D,0xC000,0x007C,0x8000,0x001C,0x0000,0x0008,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000};

 

// Votre Sprite crée à l'aide de TiPaintPlus pour le deuxième plan (1)

unsigned int sprit0_C1[] = {0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x1200,0x0000,0x0100,0x0001,0x0000,0x0000,0x0040,0x0010,0x0020,0x0000,0x0010,0x0100,0x0008,0x0000,0x0004,0x1000,0x0082,0x0000,0x000E,0x0000,0x001E,0x0000,0x0036,0x0000,0x0016,0x0000,0x0154,0x0000,0x09F4,0x2000,0x1554,0x1000,0x9748,0x0C01,0x5540,0x0209,0x7400,0x0015,0x5400,0x0117,0x4800,0x0015,0x4000,0x0074,0x8000,0x0014,0x0000,0x0008,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000};

 

int _main(void)

{

      if (!GrayMode (GRAY_ON)) return 0;

 

      SetPlane (0);    

      ClrScr ( );

      Sprite32 (10, 10, 32, &sprit0_C0, GetPlane(0), SPRT_OR);

     

      SetPlane (1);    

      ClrScr ( );

      Sprite32 (10, 10, 32, &sprit0_C1, GetPlane(1), SPRT_OR);

     

      ngetchx ( );     

      GrayMode (GRAY_OFF);

 

      return 1;

}

 

 

Programmation Plug-in

 

Bientôt disponible, la liste de toutes les fonctions exportables des DLL et du programme avec leurs explications pour que vous puissiez programmer des plug-in comme des filtres, des formats de fichiers, des nouvelles fonctions pour TiPaintPlus, …

 

 

Dans les Prochaines versions ...

 

- Possibilité d'enregistrer en assembleur en plus du C.

- Documentation pour l'écriture de plug-in en DLL

- Possibilité de travailler en 8 Niveaux de Gris.

- Nouveaux Outils Evolués (taille du pinceau, copier/coller, Importation d’image, …)

- Création d'Animation

- Corrections des Bugs

- Plus de messages d’avertissements

- Rotations

- Et aussi tout ce que vous voudrez que j'améliore ...

 

 

Je recherche ...

 

- Une personne pour me faire une icône pour TiPaintPlus

- Une personne pour m'indiquer comment ouvrir une Image *.JPG et/ou *.GIF

 

 

Auteur

 

- Moi-Même :

Olivier MARTIN

olivier.martin.marne@wanadoo.fr

 

Remerciement

 

- Rusty Wagner pour VTI.

- Xavier Vassor, Niklas Brunlid, Jean Canazzi, Zeliko Juric, Sebastian Reichelt, Philipp Winkler pour TI-GCC IDE.

- A l'Equipe de TI-FR (http://www.ti-fr.org/) pour leur excellent site.

 

- A tous ceux qui m’ont envoyé des mails.