Inkycal/inkycal/display/drivers/9_in_7_drivers/IT8951/miniGUI.h

74 lines
2.4 KiB
C
Raw Normal View History

2020-06-18 16:21:26 +02:00
#ifndef _miniGUI_H_
#define _miniGUI_H_
#include <fcntl.h>
#include <stdio.h>
#include <stdint.h>
#include <stdlib.h>
#include <unistd.h>
#include <linux/fb.h>
#include <sys/mman.h>
#include <sys/ioctl.h>
#include "IT8951.h"
typedef struct
{
uint16_t X;
uint16_t Y;
}Point, *pPoint;
//14byte<74>ļ<EFBFBD>ͷ
typedef struct
{
uint16_t cfType;//<2F>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ͣ<EFBFBD>"BM"(0x4D42)
uint32_t cfSize;//<2F>ļ<EFBFBD><C4BC><EFBFBD>С<EFBFBD><D0A1><EFBFBD>ֽڣ<D6BD>
uint32_t cfReserved;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵΪ0
uint32_t cfoffBits;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ͷ<EFBFBD><CDB7>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽڣ<D6BD>
}__attribute__((packed)) BITMAPFILEHEADER;
//__attribute__((packed))<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǹ<EFBFBD><C7B8>߱<EFBFBD><DFB1><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5>Ż<EFBFBD><C5BB><EFBFBD><EFBFBD><EFBFBD>
//40byte<74><65>Ϣͷ
typedef struct
{
uint32_t ciSize;//40
uint32_t ciWidth;//<2F><><EFBFBD><EFBFBD>
uint32_t ciHeight;//<2F>߶<EFBFBD>
uint16_t ciPlanes;//Ŀ<><C4BF><EFBFBD><EFBFBD><E8B1B8>λƽ<CEBB><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵΪ1
uint16_t ciBitCount;//ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>λ<EFBFBD><CEBB>
uint32_t ciCompress;//ѹ<><D1B9>˵<EFBFBD><CBB5>
uint32_t ciSizeImage;//<2F><><EFBFBD>ֽڱ<D6BD>ʾ<EFBFBD><CABE>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD><EFBFBD><EFBFBD>4<EFBFBD>ı<EFBFBD><C4B1><EFBFBD>
uint32_t ciXPelsPerMeter;//Ŀ<><C4BF><EFBFBD><EFBFBD><E8B1B8>ˮƽ<CBAE><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><>
uint32_t ciYPelsPerMeter;//Ŀ<><C4BF><EFBFBD><EFBFBD>Ĵ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><>
uint32_t ciClrUsed;//λͼʹ<CDBC>õ<EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB>
uint32_t ciClrImportant;//ָ<><D6B8><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD><30><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>Ҫ
}__attribute__((packed)) BITMAPINFOHEADER;
typedef struct
{
uint8_t blue;
uint8_t green;
uint8_t red;
uint8_t reserved;
}__attribute__((packed)) PIXEL;//<2F><>ɫģʽRGB
#define ABS(X) ((X) > 0 ? (X) : -(X))
void EPD_Clear(uint8_t Color);
void EPD_DrawPixel(uint16_t x0,uint16_t y0,uint8_t color);
void EPD_DrawLine(uint16_t x1,uint16_t y1,uint16_t x2,uint16_t y2,uint8_t color);
void EPD_DrawRect(uint16_t Xpos,uint16_t Ypos,uint16_t Width,uint16_t Height,uint8_t color);
void EPD_DrawCircle(uint16_t Xpos,uint16_t Ypos,uint16_t Radius,uint8_t color);
void EPD_DrawPolygon(pPoint Points,uint16_t PointCount,uint8_t color);
void EPD_DrawEllipse(uint16_t Xpos,uint16_t Ypos,uint16_t XRadius,uint16_t YRadius,uint8_t color);
void EPD_FillRect(uint16_t Xpos,uint16_t Ypos,uint16_t Width,uint16_t Height,uint8_t color);
void EPD_FillCircle(uint16_t Xpos,uint16_t Ypos,uint16_t Radius,uint8_t color);
void EPD_PutChar(uint16_t Xpos,uint16_t Ypos,uint8_t ASCI,uint8_t charColor,uint8_t bkColor);
void EPD_Text(uint16_t Xpos,uint16_t Ypos,uint8_t *str,uint8_t Color,uint8_t bkColor);
void EPD_DrawBitmap(uint16_t Xpos, uint16_t Ypos,uint16_t *bmp);
void EPD_DrawMatrix(uint16_t Xpos, uint16_t Ypos,uint16_t Width, uint16_t High,const uint16_t* Matrix);
uint8_t Show_bmp(uint32_t x, uint32_t y,char *path);
#endif