No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
 
 
 
 
 
 

431 líneas
18 KiB

/*******************************************************************************
 * Copyright(c) 2023 Levetop Semiconductor Co.,Led. All rights reserved.
 * @file     LT768_Lib.h
 * @author   UartTFT Application Team
 * @version  V1.0.0
 * @date     2023-02-24
 * @brief    LT768x All Function Functions
 ********************************************************************************/
#ifndef _LT768_Lib_H
#define _LT768_Lib_H
#include "LT768.h"
#include "if_port.h"
#include "sincostable.h"
#include "bsp.h"
#include "module_select.h"
// External crystal oscillator
#define XI_4M 0
#define XI_5M 1
#define XI_6M 0
#define XI_8M 0
#define XI_10M 0
#define XI_12M 0
extern uint8_t TFT_color;
extern uint16_t LCD_XSIZE_TFT;
extern uint16_t LCD_YSIZE_TFT;
extern uint16_t LCD_VBPD;
extern uint16_t LCD_VFPD;
extern uint16_t LCD_VSPW;
extern uint16_t LCD_HBPD;
extern uint16_t LCD_HFPD;
extern uint16_t LCD_HSPW;
extern uint8_t gPCLKRISING;
extern uint8_t gHSYNCPolarity;
extern uint8_t gVSYNCPolarity;
extern uint8_t gDEPolarity;
extern uint8_t CCLK; // Core clock frequency of LT768
extern uint8_t MCLK; // Clock frequency of SDRAM
extern uint8_t SCLK; // Scan clock frequency of LCD
#define color256_black 0x00
#define color256_white 0xff
#define color256_red 0xe0
#define color256_green 0x1c
#define color256_blue 0x03
#define color256_yellow color256_red | color256_green
#define color256_cyan color256_green | color256_blue
#define color256_purple color256_red | color256_blue
#define color65k_black 0x0000
#define color65k_white 0xffff
#define color65k_red 0xf800
#define color65k_green 0x07e0
#define color65k_blue 0x001f
#define color65k_yellow color65k_red | color65k_green
#define color65k_cyan color65k_green | color65k_blue
#define color65k_purple color65k_red | color65k_blue
#define color65k_grayscale1 2113
#define color65k_grayscale2 2113 * 2
#define color65k_grayscale3 2113 * 3
#define color65k_grayscale4 2113 * 4
#define color65k_grayscale5 2113 * 5
#define color65k_grayscale6 2113 * 6
#define color65k_grayscale7 2113 * 7
#define color65k_grayscale8 2113 * 8
#define color65k_grayscale9 2113 * 9
#define color65k_grayscale10 2113 * 10
#define color65k_grayscale11 2113 * 11
#define color65k_grayscale12 2113 * 12
#define color65k_grayscale13 2113 * 13
#define color65k_grayscale14 2113 * 14
#define color65k_grayscale15 2113 * 15
#define color65k_grayscale16 2113 * 16
#define color65k_grayscale17 2113 * 17
#define color65k_grayscale18 2113 * 18
#define color65k_grayscale19 2113 * 19
#define color65k_grayscale20 2113 * 20
#define color65k_grayscale21 2113 * 21
#define color65k_grayscale22 2113 * 22
#define color65k_grayscale23 2113 * 23
#define color65k_grayscale24 2113 * 24
#define color65k_grayscale25 2113 * 25
#define color65k_grayscale26 2113 * 26
#define color65k_grayscale27 2113 * 27
#define color65k_grayscale28 2113 * 28
#define color65k_grayscale29 2113 * 29
#define color65k_grayscale30 2113 * 30
#define color16M_Gray 0x00c0c0c0
#define color16M_black 0x00000000
#define color16M_white 0x00ffffff
#define color16M_red 0x00ff0000
#define color16M_green 0x0000ff00
#define color16M_blue 0x000000ff
#define color16M_yellow color16M_red | color16M_green
#define color16M_cyan color16M_green | color16M_blue
#define color16M_purple color16M_red | color16M_blue
/* LCD color */
#define White TFT_bitcolor == 0 ? 0xFFFF : 0x00FFFFFF
#define Black TFT_bitcolor == 0 ? 0x0000 : 0x00000000
#define Grey TFT_bitcolor == 0 ? 0xF7DE : 0x00c0c0c0
#define Blue TFT_bitcolor == 0 ? 0x001F : 0x000000ff
#define Blue2 TFT_bitcolor == 0 ? 0x051F : 0x000000ff
#define Red TFT_bitcolor == 0 ? 0xF800 : 0x00ff0000
#define Green TFT_bitcolor == 0 ? 0x07E0 : 0x0000ff00
#define Cyan TFT_bitcolor == 0 ? 0x7FFF : (color16M_green | color16M_blue)
#define Yellow TFT_bitcolor == 0 ? 0xFFE0 : (color16M_red | color16M_green)
#define Line0 0
#define Line1 24
#define Line2 48
#define Line3 72
#define Line4 96
#define Line5 120
#define Line6 144
#define Line7 168
#define Line8 192
#define Line9 216
#define Line10 240
#define Line11 264
#define Line12 288
#define Line13 312
#define Line14 336
#define Line15 360
#define Line16 384
#define Line17 408
#define Line18 432
#define Line19 456
#define Line20 480
#define Line21 504
#define Line22 528
#define Line23 552
#define Line24 576
#define Line25 600
typedef struct
{
	int X;
	int Y;
} CPoint;
void LT768_PLL_Initial(void);
void LT768_SDRAM_initail(uint8_t mclk);
void Set_LCD_Panel(void);
void LT768_Init(void);
void LT_ReadParam(void);
/* Write data to memory */
void MPU8_8bpp_Memory_Write(uint16_t x, uint16_t y, uint16_t w, uint16_t h, const uint8_t *data);
void MPU8_16bpp_Memory_Write(uint16_t x, uint16_t y, uint16_t w, uint16_t h, const uint8_t *data);
void MPU8_24bpp_Memory_Write(uint16_t x, uint16_t y, uint16_t w, uint16_t h, const uint8_t *data);
void MPU16_16bpp_Memory_Write(uint16_t x, uint16_t y, uint16_t w, uint16_t h, const uint16_t *data);
void MPU16_24bpp_Mode1_Memory_Write(uint16_t x, uint16_t y, uint16_t w, uint16_t h, const uint16_t *data);
void MPU16_24bpp_Mode2_Memory_Write(uint16_t x, uint16_t y, uint16_t w, uint16_t h, const uint16_t *data);
/* Hardware drawing line segment */
void LT768_DrawLine(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2, uint32_t LineColor);
void LT768_DrawLine_Width(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2, uint32_t LineColor, uint16_t Width);
/* Hardware circle */
void LT768_DrawCircle(uint16_t XCenter, uint16_t YCenter, uint16_t R, uint32_t CircleColor);
void LT768_DrawCircle_Fill(uint16_t XCenter, uint16_t YCenter, uint16_t R, uint32_t ForegroundColor);
void LT768_DrawCircle_Width(uint16_t XCenter, uint16_t YCenter, uint16_t R, uint32_t CircleColor, uint32_t ForegroundColor, uint16_t Width);
/* Hardware drawing ellipse */
void LT768_DrawEllipse(uint16_t XCenter, uint16_t YCenter, uint16_t X_R, uint16_t Y_R, uint32_t EllipseColor);
void LT768_DrawEllipse_Fill(uint16_t XCenter, uint16_t YCenter, uint16_t X_R, uint16_t Y_R, uint32_t ForegroundColor);
void LT768_DrawEllipse_Width(uint16_t XCenter, uint16_t YCenter, uint16_t X_R, uint16_t Y_R, uint32_t EllipseColor, uint32_t ForegroundColor, uint16_t Width);
/* Hardware drawing rectangle */
void LT768_DrawSquare(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2, uint32_t SquareColor);
void LT768_DrawSquare_Fill(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2, uint32_t ForegroundColor);
void LT768_DrawSquare_Width(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2, uint32_t SquareColor, uint32_t ForegroundColor, uint16_t Width);
/* Hardware drawing rounded rectangle */
void LT768_DrawCircleSquare(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2, uint16_t X_R, uint16_t Y_R, uint32_t CircleSquareColor);
void LT768_DrawCircleSquare_Fill(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2, uint16_t X_R, uint16_t Y_R, uint32_t ForegroundColor);
void LT768_DrawCircleSquare_Width(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2, uint16_t X_R, uint16_t Y_R, uint32_t CircleSquareColor, uint32_t ForegroundColor, uint16_t Width);
/* Hardware drawing triangle */
void LT768_DrawTriangle(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2, uint16_t X3, uint16_t Y3, uint32_t TriangleColor);
void LT768_DrawTriangle_Fill(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2, uint16_t X3, uint16_t Y3, uint32_t ForegroundColor);
void LT768_DrawTriangle_Frame(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2, uint16_t X3, uint16_t Y3, uint32_t TriangleColor, uint32_t ForegroundColor);
/* Hardware drawing quadrilateral */
void LT768_DrawQuadrilateral(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2, uint16_t X3, uint16_t Y3, uint16_t X4, uint16_t Y4, uint32_t ForegroundColor);
void LT768_DrawQuadrilateral_Fill(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2, uint16_t X3, uint16_t Y3, uint16_t X4, uint16_t Y4, uint32_t ForegroundColor);
void LT768_DrawTriangle_Frame(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2, uint16_t X3, uint16_t Y3, uint32_t TriangleColor, uint32_t ForegroundColor);
/* Hardware drawing pentagon */
void LT768_DrawPentagon(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2, uint16_t X3, uint16_t Y3, uint16_t X4, uint16_t Y4, uint16_t X5, uint16_t Y5, uint32_t ForegroundColor);
void LT768_DrawPentagon_Fill(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2, uint16_t X3, uint16_t Y3, uint16_t X4, uint16_t Y4, uint16_t X5, uint16_t Y5, uint32_t ForegroundColor);
/* Hardware drawing curve */
void LT768_DrawLeftUpCurve(uint16_t XCenter, uint16_t YCenter, uint16_t X_R, uint16_t Y_R, uint32_t CurveColor);
void LT768_DrawLeftDownCurve(uint16_t XCenter, uint16_t YCenter, uint16_t X_R, uint16_t Y_R, uint32_t CurveColor);
void LT768_DrawRightUpCurve(uint16_t XCenter, uint16_t YCenter, uint16_t X_R, uint16_t Y_R, uint32_t CurveColor);
void LT768_DrawRightDownCurve(uint16_t XCenter, uint16_t YCenter, uint16_t X_R, uint16_t Y_R, uint32_t CurveColor);
void LT768_SelectDrawCurve(uint16_t XCenter, uint16_t YCenter, uint16_t X_R, uint16_t Y_R, uint32_t CurveColor, uint16_t Dir);
/* Hardware drawing 1/4 ellipse */
void LT768_DrawLeftUpCurve_Fill(uint16_t XCenter, uint16_t YCenter, uint16_t X_R, uint16_t Y_R, uint32_t ForegroundColor);
void LT768_DrawLeftDownCurve_Fill(uint16_t XCenter, uint16_t YCenter, uint16_t X_R, uint16_t Y_R, uint32_t ForegroundColor);
void LT768_DrawRightUpCurve_Fill(uint16_t XCenter, uint16_t YCenter, uint16_t X_R, uint16_t Y_R, uint32_t ForegroundColor);
void LT768_DrawRightDownCurve_Fill(uint16_t XCenter, uint16_t YCenter, uint16_t X_R, uint16_t Y_R, uint32_t ForegroundColor);
void LT768_SelectDrawCurve_Fill(uint16_t XCenter, uint16_t YCenter, uint16_t X_R, uint16_t Y_R, uint32_t CurveColor, uint16_t Dir);
/* Hardware drawing cylinder */
uint8_t LT768_DrawCylinder(uint16_t XCenter, uint16_t YCenter, uint16_t X_R, uint16_t Y_R, uint16_t H, uint32_t CylinderColor, uint32_t ForegroundColor, uint8_t Width);
/* Hardware drawing quadrangle */
void LT768_DrawQuadrangular(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2, uint16_t X3, uint16_t Y3, uint16_t X4, uint16_t Y4, uint16_t X5, uint16_t Y5, uint16_t X6, uint16_t Y6, uint32_t QuadrangularColor, uint32_t ForegroundColor);
void LT768_DrawQuadrangular1(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2, uint16_t W, uint16_t H, uint32_t QuadrangularColor, uint32_t ForegroundColor, uint8_t Width);
/* table */
void LT768_MakeTable(uint16_t X1, uint16_t Y1, uint16_t W, uint16_t H, uint16_t Line, uint16_t Row, uint32_t TableColor, uint32_t ItemColor, uint32_t ForegroundColor, uint16_t width1, uint16_t width2, uint8_t mode);
/* DMA transfers data to SDRAM in linear mode */
void LT768_DMA_24bit_Linear(uint8_t SCS, uint8_t Clk, uint32_t flash_addr, uint32_t memory_ad, uint32_t data_num);
void LT768_DMA_32bit_Linear(uint8_t SCS, uint8_t Clk, uint32_t flash_addr, uint32_t memory_ad, uint32_t data_num);
/* DMA transfers data to SDRAM in block mode */
// void LT768_DMA_24bit_Block(uint8_t SCS,uint8_t Clk,uint16_t X1,uint16_t Y1 ,uint16_t X_W,uint16_t Y_H,uint16_t P_W,uint32_t Addr);
void LT768_DMA_32bit_Block(uint8_t SCS, uint8_t Clk, uint16_t X1, uint16_t Y1, uint16_t X_W, uint16_t Y_H, uint16_t P_W, uint32_t Addr);
/* Use built-in font */
void LT768_Select_Internal_Font_Init(uint8_t Size, uint8_t XxN, uint8_t YxN, uint8_t ChromaKey, uint8_t Alignment);
void LT768_Print_Internal_Font_String(uint16_t x, uint16_t y, uint32_t FontColor, uint32_t BackGroundColor, char *c);
/* Block transfer engine (BitBLT) */
void BTE_Solid_Fill(uint32_t Des_Addr, uint16_t Des_W, uint16_t XDes, uint16_t YDes, uint16_t color, uint16_t X_W, uint16_t Y_H);
void LT768_BTE_Memory_Copy(uint32_t S0_Addr, uint16_t S0_W, uint16_t XS0, uint16_t YS0, uint32_t S1_Addr, uint16_t S1_W, uint16_t XS1, uint16_t YS1, uint32_t Des_Addr, uint16_t Des_W, uint16_t XDes, uint16_t YDes, unsigned int ROP_Code, uint16_t X_W, uint16_t Y_H);
void LT768_BTE_Memory_Copy_Chroma_key(uint32_t S0_Addr, uint16_t S0_W, uint16_t XS0, uint16_t YS0, uint32_t Des_Addr, uint16_t Des_W, uint16_t XDes, uint16_t YDes, uint32_t Background_color, uint16_t X_W, uint16_t Y_H);
void LT768_BTE_Pattern_Fill(uint8_t P_8x8_or_16x16, uint32_t S0_Addr, uint16_t S0_W, uint16_t XS0, uint16_t YS0, uint32_t Des_Addr, uint16_t Des_W, uint16_t XDes, uint16_t YDes, unsigned int ROP_Code, uint16_t X_W, uint16_t Y_H);
void LT768_BTE_Pattern_Fill_With_Chroma_key(uint8_t P_8x8_or_16x16, uint32_t S0_Addr, uint16_t S0_W, uint16_t XS0, uint16_t YS0, uint32_t Des_Addr, uint16_t Des_W, uint16_t XDes, uint16_t YDes, unsigned int ROP_Code, uint32_t Background_color, uint16_t X_W, uint16_t Y_H);
void LT768_BTE_MCU_Write_MCU_16bit(uint32_t S1_Addr, uint16_t S1_W, uint16_t XS, uint16_t YS1, uint32_t Des_Addr, uint16_t Des_W, uint16_t XDes, uint16_t YDes, unsigned int ROP_Code, uint16_t X_W, uint16_t Y_H, const uint16_t *data);
void LT768_BTE_MCU_Write_Chroma_key_MCU_16bit(uint32_t Des_Addr, uint16_t Des_W, uint16_t XDes, uint16_t YDes, uint32_t Background_color, uint16_t X_W, uint16_t Y_H, const uint16_t *data);
void LT768_BTE_MCU_Write_ColorExpansion_MCU_16bit(uint32_t Des_Addr, uint16_t Des_W, uint16_t XDes, uint16_t YDes, uint16_t X_W, uint16_t Y_H, uint32_t Foreground_color, uint32_t Background_color, const uint16_t *data);
void LT768_BTE_MCU_Write_ColorExpansion_Chroma_key_MCU_16bit(uint32_t Des_Addr, uint16_t Des_W, uint16_t XDes, uint16_t YDes, uint16_t X_W, uint16_t Y_H, uint32_t Foreground_color, const uint16_t *data);
void BTE_Alpha_Blending(uint32_t S0_Addr, uint16_t S0_W, uint16_t XS0, uint16_t YS0, uint32_t S1_Addr, uint16_t S1_W, uint16_t XS1, uint16_t YS1, uint32_t Des_Addr, uint16_t Des_W, uint16_t XDes, uint16_t YDes, uint16_t X_W, uint16_t Y_H, uint8_t alpha);
void LT768_BTE_Memory_Copy_1(uint32_t S0_Addr, uint16_t S0_W, uint16_t XS0, uint16_t YS0, uint32_t S1_Addr, uint16_t S1_W, uint16_t XS1, uint16_t YS1, uint32_t Des_Addr, uint16_t Des_W, uint16_t XDes, uint16_t YDes, unsigned int ROP_Code, uint16_t X_W, uint16_t Y_H, uint8_t Pic_flag);
/*  PIP */
void LT768_PIP_Init(uint8_t On_Off, uint8_t Select_PIP, uint32_t PAddr, uint16_t XP, uint16_t YP, uint32_t ImageWidth, uint16_t X_Dis, uint16_t Y_Dis, uint16_t X_W, uint16_t Y_H);
void LT768_Set_DisWindowPos(uint8_t On_Off, uint8_t Select_PIP, uint16_t X_Dis, uint16_t Y_Dis);
/*  PWM */
void LT768_PWM0_Init(uint8_t on_off, uint8_t Clock_Divided, uint8_t Prescalar, uint16_t Count_Buffer, uint16_t Compare_Buffer);
void LT768_PWM1_Init(uint8_t on_off, uint8_t Clock_Divided, uint8_t Prescalar, uint16_t Count_Buffer, uint16_t Compare_Buffer);
void LT768_PWM0_Duty(uint16_t Compare_Buffer);
void LT768_PWM1_Duty(uint16_t Compare_Buffer);
/*  Standby Mode */
void LT768_Standby(void);
void LT768_Wkup_Standby(void);
/* Suspend Mode */
void LT768_Suspend(void);
void LT768_Wkup_Suspend(void);
/* Sleep Mode */
void LT768_SleepMode(void);
void LT768_Wkup_Sleep(void);
void LT768_SPI_Init(uint8_t div, uint8_t cs);
void LT768_BTE_Memory_Copy_ColorExpansion_8
(
	uint32_t S0_Addr 	// Memory start address of SO image
	,
	uint16_t YS0 		// S0 Upper left Y coordinate of image
	,
	uint32_t Des_Addr 	// Memory start address of destination image
	,
	uint16_t Des_W 		// Width of destination image
	,
	uint16_t XDes 		// Top left X coordinate of destination image
	,
	uint16_t YDes 		// Top left Y coordinate of destination image
	,
	uint16_t X_W 		// The width of the active window
	,
	uint16_t Y_H 		// The length of the active window
	,
	uint32_t Foreground_color // Foreground color
	,
	uint32_t Background_color // Background color
);
void LT768_BTE_Memory_Copy_ColorExpansion_Chroma_key_8
(
	uint32_t S0_Addr 	// Memory start address of SO image
	,
	uint16_t YS0 		// S0 Upper left Y coordinate of image
	,
	uint32_t Des_Addr 	// Memory start address of destination image
	,
	uint16_t Des_W 		// Width of destination image
	,
	uint16_t XDes 		// Top left X coordinate of destination image
	,
	uint16_t YDes 		// Top left Y coordinate of destination image
	,
	uint16_t X_W 		// The width of the active window
	,
	uint16_t Y_H 		// The length of the active window
	,
	uint32_t Foreground_color // Foreground color
);
void LT768_DMA_24bit_Block_Or_Line_16bpp
(
	uint8_t SCS // SPI   : SCS£º0       SCS£º1
	,
	uint8_t Clk // SPI clock division parameter : SPI Clock = System Clock /{(Clk+1)*2}
	,
	uint16_t X1 // Location transferred to memory X1
	,
	uint16_t Y1 // Location transferred to memory Y1
	,
	uint16_t X_W // Width of DMA transmission data
	,
	uint16_t Y_H // Height of DMA transmission data
	,
	uint16_t P_W // Width of picture
	,
	uint32_t Addr // Flash address
	,
	uint32_t lay0 // Address of layer
	,
	uint16_t canvas_w // Layer width
);
void BTE_Pixel_16bpp_Alpha_Blending // 16-bit png image display function
(
	uint32_t S0_Addr 	// Memory start address of SO image
	,
	uint16_t S0_W 		// S0 Width of image
	,
	uint16_t XS0 		// S0 Top left X coordinate of image
	,
	uint16_t YS0 		// S0 Upper left Y coordinate of image
	,
	uint32_t S1_Addr 	// Memory start address of S1 image
	,
	uint16_t S1_W 		// S1 Width of image
	,
	uint16_t XS1 		// Top left X coordinate of S1 image
	,
	uint16_t YS1 		// The upper left Y coordinate of S1 image
	,
	uint32_t Des_Addr 	// Memory start address of destination image
	,
	uint16_t Des_W 		// Width of destination image
	,
	uint16_t XDes 		// Top left X coordinate of destination image
	,
	uint16_t YDes 		// Top left Y coordinate of destination image
	,
	uint16_t X_W 		// The width of the active window
	,
	uint16_t Y_H 		// The length of the active window
);
void LT768_Draw_16bit
(
	uint8_t SCS 		// SPI   : SCS£º0       SCS£º1
	,
	uint8_t Clk 		// SPI clock division parameter : SPI Clock = System Clock /{(Clk+1)*2}
	,
	uint16_t X1 		// Location transferred to memory X1
	,
	uint16_t Y1 		// Location transferred to memory Y1
	,
	uint16_t X_W	 	// Width of DMA transmission data
	,
	uint16_t Y_H 		// Height of DMA transmission data
	,
	uint16_t P_W 		// Width of picture
	,
	uint16_t pixel_format // Gray scale
	,
	uint32_t F_Color 	// Font color
	,
	uint32_t Addr 		// Flash address
	,
	uint32_t lay0 		// Address of layer
	,
	uint16_t canvas_w 	// Layer width
);
void LT768_Draw_16bit_2
(
	uint8_t SCS 		// SPI   : SCS£º0       SCS£º1
	,
	uint8_t Clk 		// SPI clock division parameter : SPI Clock = System Clock /{(Clk+1)*2}
	,
	uint16_t X1 		// Location transferred to memory X1
	,
	uint16_t Y1 		// Location transferred to memory Y1
	,
	uint16_t X_W	 	// Width of DMA transmission data
	,
	uint16_t Y_H 		// Height of DMA transmission data
	,
	uint16_t P_W 		// Width of picture
	,
	uint16_t pixel_format // Gray scale
	,
	uint32_t F_Color 	// Font color
	,
	uint32_t B_Color 	// Background color
	,
	uint8_t transparent // Show background se
	,
	uint32_t Addr 		// Flash address
	,
	uint32_t lay0 		// Address of layer
	,
	uint16_t canvas_w 	// Layer width
);
#endif