Skip to content
Snippets Groups Projects
Select Git revision
  • 71be1ddeb128e6068d2f1df605ec9c8c10f67091
  • master default protected
  • schneider/ir
  • rahix/user-space-ctx
  • schneider/iaq-python
  • schneider/ble-mini-demo
  • schneider/ble-ecg-stream-visu
  • schneider/mp-exception-print
  • schneider/sleep-display
  • schneider/deepsleep4
  • schneider/deepsleep2
  • schneider/deepsleep
  • schneider/ble-central
  • rahix/bluetooth-app-favorite
  • schneider/v1.17-changelog
  • schneider/ancs
  • schneider/png
  • schneider/freertos-list-debug
  • schneider/212-reset-hardware-when-entering-repl
  • schneider/bonding-fail-if-full
  • schneider/ble-fixes-2020-3
  • v1.18
  • v1.17
  • v1.16
  • v1.15
  • v1.14
  • v1.13
  • v1.12
  • v1.11
  • v1.10
  • v1.9
  • v1.8
  • v1.7
  • v1.6
  • v1.5
  • v1.4
  • v1.3
  • v1.2
  • v1.1
  • v1.0
  • release-1
41 results

group__SDHC__PRESET__7.html

Blame
  • GUI_Paint.h 6.52 KiB
    /*****************************************************************************
    * | File      	:   GUI_Paint.h
    * | Author      :   Waveshare team
    * | Function    :	Achieve drawing: draw points, lines, boxes, circles and
    *                   their size, solid dotted line, solid rectangle hollow
    *                   rectangle, solid circle hollow circle.
    * | Info        :
    *   Achieve display characters: Display a single character, string, number
    *   Achieve time display: adaptive size display time minutes and seconds
    *----------------
    * |	This version:   V2.0
    * | Date        :   2018-11-15
    * | Info        :
    * 1.add: Paint_NewImage()
    *    Create an image's properties
    * 2.add: Paint_SelectImage()
    *    Select the picture to be drawn
    * 3.add: Paint_SetRotate()
    *    Set the direction of the cache    
    * 4.add: Paint_RotateImage() 
    *    Can flip the picture, Support 0-360 degrees, 
    *    but only 90.180.270 rotation is better
    * 4.add: Paint_SetMirroring() 
    *    Can Mirroring the picture, horizontal, vertical, origin
    * 5.add: Paint_DrawString_CN() 
    *    Can display Chinese(GB1312)    
    *
    * Permission is hereby granted, free of charge, to any person obtaining a copy
    * of this software and associated documnetation files (the "Software"), to deal
    * in the Software without restriction, including without limitation the rights
    * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    * copies of the Software, and to permit persons to  whom the Software is
    * furished to do so, subject to the following conditions:
    *
    * The above copyright notice and this permission notice shall be included in
    * all copies or substantial portions of the Software.
    *
    * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    * FITNESS OR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    * LIABILITY WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
    * THE SOFTWARE.
    *
    ******************************************************************************/
    #ifndef __GUI_PAINT_H
    #define __GUI_PAINT_H
    
    #include "DEV_Config.h"
    #include "LCD_Driver.h"
    #include "fonts.h"
    #include "Debug.h"
    
    /**
     * Image attributes
    **/
    typedef struct {
        UBYTE *Image;
        UWORD Width;
        UWORD Height;
        UWORD WidthMemory;
        UWORD HeightMemory;
        UWORD Color;
        UWORD Rotate;
        UWORD Mirror;
        UWORD WidthByte;
        UWORD HeightByte;
    } PAINT;
    extern volatile PAINT Paint;
    
    /**
     * Display rotate
    **/
    #define ROTATE_0            0
    #define ROTATE_90           90
    #define ROTATE_180          180
    #define ROTATE_270          270
    
    /**
     * Display Flip
    **/
    typedef enum {
        MIRROR_NONE  = 0x00,
        MIRROR_HORIZONTAL = 0x01,
        MIRROR_VERTICAL = 0x02,
        MIRROR_ORIGIN = 0x03,
    } MIRROR_IMAGE;
    #define MIRROR_IMAGE_DFT MIRROR_NONE
    
    /**
     * image color
    **/
    
    #define WHITE					0xFFFF
    #define BLACK					0x0000	  
    #define BLUE 					0x001F  
    #define BRED 					0XF81F
    #define GRED 					0XFFE0
    #define GBLUE					0X07FF
    #define RED  					0xF800
    #define MAGENTA				0xF81F
    #define GREEN					0x07E0
    #define CYAN 					0x7FFF
    #define YELLOW				0xFFE0
    #define BROWN					0XBC40 
    #define BRRED					0XFC07 
    #define GRAY 					0X8430 
    #define DARKBLUE			0X01CF	
    #define LIGHTBLUE			0X7D7C	 
    #define GRAYBLUE      0X5458 
    #define LIGHTGREEN    0X841F 
    #define LGRAY 			  0XC618 
    #define LGRAYBLUE     0XA651
    #define LBBLUE        0X2B12 
    
    
    #define IMAGE_BACKGROUND    WHITE
    #define FONT_FOREGROUND     BLACK
    #define FONT_BACKGROUND     WHITE
    
    /**
     * The size of the point
    **/
    typedef enum {
        DOT_PIXEL_1X1  = 1,		// 1 x 1
        DOT_PIXEL_2X2  , 		// 2 X 2
        DOT_PIXEL_3X3  ,		// 3 X 3
        DOT_PIXEL_4X4  ,		// 4 X 4
        DOT_PIXEL_5X5  , 		// 5 X 5
        DOT_PIXEL_6X6  , 		// 6 X 6
        DOT_PIXEL_7X7  , 		// 7 X 7
        DOT_PIXEL_8X8  , 		// 8 X 8
    } DOT_PIXEL;
    #define DOT_PIXEL_DFT  DOT_PIXEL_1X1  //Default dot pilex
    
    /**
     * Point size fill style
    **/
    typedef enum {
        DOT_FILL_AROUND  = 1,		// dot pixel 1 x 1
        DOT_FILL_RIGHTUP  , 		// dot pixel 2 X 2
    } DOT_STYLE;
    #define DOT_STYLE_DFT  DOT_FILL_AROUND  //Default dot pilex
    
    /**
     * Line style, solid or dashed
    **/
    typedef enum {
        LINE_STYLE_SOLID = 0,
        LINE_STYLE_DOTTED,
    } LINE_STYLE;
    
    /**
     * Whether the graphic is filled
    **/
    typedef enum {
        DRAW_FILL_EMPTY = 0,
        DRAW_FILL_FULL,
    } DRAW_FILL;
    
    /**
     * Custom structure of a time attribute
    **/
    typedef struct {
        UWORD Year;  //0000
        UBYTE  Month; //1 - 12
        UBYTE  Day;   //1 - 30
        UBYTE  Hour;  //0 - 23
        UBYTE  Min;   //0 - 59
        UBYTE  Sec;   //0 - 59
    } PAINT_TIME;
    extern PAINT_TIME sPaint_time;
    
    //init and Clear
    void Paint_NewImage(UWORD Width, UWORD Height, UWORD Rotate, UWORD Color);
    void Paint_SelectImage(UBYTE *image);
    void Paint_SetRotate(UWORD Rotate);
    void Paint_SetMirroring(UBYTE mirror);
    void Paint_SetPixel(UWORD Xpoint, UWORD Ypoint, UWORD Color);
    
    void Paint_Clear(UWORD Color);
    void Paint_ClearWindows(UWORD Xstart, UWORD Ystart, UWORD Xend, UWORD Yend, UWORD Color);
    
    //Drawing
    void Paint_DrawPoint(UWORD Xpoint, UWORD Ypoint, UWORD Color, DOT_PIXEL Dot_Pixel, DOT_STYLE Dot_FillWay);
    void Paint_DrawLine(UWORD Xstart, UWORD Ystart, UWORD Xend, UWORD Yend, UWORD Color, LINE_STYLE Line_Style, DOT_PIXEL Dot_Pixel);
    void Paint_DrawRectangle(UWORD Xstart, UWORD Ystart, UWORD Xend, UWORD Yend, UWORD Color, DRAW_FILL Filled , DOT_PIXEL Dot_Pixel);
    void Paint_DrawCircle(UWORD X_Center, UWORD Y_Center, UWORD Radius, UWORD Color, DRAW_FILL Draw_Fill , DOT_PIXEL Dot_Pixel);
    
    //Display string
    void Paint_DrawChar(UWORD Xstart, UWORD Ystart, const char Acsii_Char, sFONT* Font, UWORD Color_Background, UWORD Color_Foreground);
    void Paint_DrawString_EN(UWORD Xstart, UWORD Ystart, const char * pString, sFONT* Font, UWORD Color_Background, UWORD Color_Foreground);
    void Paint_DrawString_CN(UWORD Xstart, UWORD Ystart, const char * pString, cFONT* font, UWORD Color_Background, UWORD Color_Foreground);
    void Paint_DrawNum(UWORD Xpoint, UWORD Ypoint, int32_t Nummber, sFONT* Font, UWORD Color_Background, UWORD Color_Foreground);
    void Paint_DrawTime(UWORD Xstart, UWORD Ystart, PAINT_TIME *pTime, sFONT* Font, UWORD Color_Background, UWORD Color_Foreground);
    
    //pic
    void Paint_DrawImage(const unsigned char *image,UWORD Startx, UWORD Starty,UWORD Endx, UWORD Endy); 
    
    
    #endif