74 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			74 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| 
								 | 
							
								#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>0ʱ<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
							 |