/******************************************************************************
* LCD 驱动
******************************************************************************/
#include "virtlcd.h"
#pragma comment(lib, "virtlcd.lib")
#define LCD_FILENAME "virtlcd.exe"
#define LCD_WIDTH 640
#define LCD_HEIGHT 480
#define LCD_BPP 32
//定义像素类型
typedef unsigned long PIXEL;
//帧缓存指针
static PIXEL *m_pFrameBuffer;
//计算在X,Y坐标的帧缓存指针
#define GET_OFFSET(x, y) ( LCD_WIDTH * ( LCD_HEIGHT - (y) - 1) ) + (x) )
#define GET_FRAMEBUFFER(x, y) ( m_pFrameBuffer + GET_OFFSET(x, y) )
//响应鼠标事件
static void on_mouse_input(int event, int x, int y)
{
}
//响应键盘事件
static void on_keybd_input(int event, int key)
{
}
//初始化LCD
int LCD_Init(void)
{
int ret;
ret = VirtLCD_Init(LCD_FILENAME, LCD_WIDTH, LCD_HEIGHT, LCD_BPP);
if(!ret)
{
return 0;
}
m_pFrameBuffer = VirtLCD_GetFrameBuffer();
VirtLCD_SetMouseProc(on_mouse_input);
VirtLCD_SetKeybdProc(on_keybd_input);
return 1;
}
//画点
void LCD_DrawPoint(int x, int y, PIXEL color)
{
PIXEL *mem;
mem = GET_FRAMEBUFFER(x, y);
*mem = color;
}
//画水平直线
void LCD_DrawHLine(int x1, int y1, int x2, PIXEL color)
{
PIXEL *mem;
mem = GET_FRAMEBUFFER(x1, y1);
for(; x1 < x2; x1++)
{
*mem++ = color;
}
}
//画垂直直线
void LCD_DrawVLine(int x1, int y1, int y2, PIXEL color)
{
PIXEL *mem;
mem = GET_FRAMEBUFFER(x1, y1);
for(; y1 < y2; y1++)
{
*mem = color;
mem -= LCD_WIDTH;
}
}
VirtLCD:在Windows上调试各种嵌入式GUI的工具SDK
需积分: 31 67 浏览量
2018-03-21
12:51:59
上传
评论
收藏 23KB ZIP 举报
星沉地动
- 粉丝: 437
- 资源: 31
最新资源
- Screenshot_20240427_031602.jpg
- 网页PDF_2024年04月26日 23-46-14_QQ浏览器网页保存_QQ浏览器转格式(6).docx
- 直接插入排序,冒泡排序,直接选择排序.zip
- 在排序2的基础上,再次对快排进行优化,其次增加快排非递归,归并排序,归并排序非递归版.zip
- 实现了7种排序算法.三种复杂度排序.三种nlogn复杂度排序(堆排序,归并排序,快速排序)一种线性复杂度的排序.zip
- 冒泡排序 直接选择排序 直接插入排序 随机快速排序 归并排序 堆排序.zip
- 课设-内部排序算法比较 包括冒泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、归并排序和堆排序.zip
- Python排序算法.zip
- C语言实现直接插入排序、希尔排序、选择排序、冒泡排序、堆排序、快速排序、归并排序、计数排序,并带图详解.zip
- 常用工具集参考用于图像等数据处理
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈