基本图形和图像的绘制
上次,我和大家一起分享了如何为ti的图形驱动库编写底层驱动函数。
现在让我们来看一下如果使用ti提供的库来绘制最基本的字符图形,图形和图像。也就是我说的图形驱动库的第二层:图形基元层。
首先,在mian函数文件中我们要包含grlib.h这个头文件。在这个头文件里定义了一些图形绘制所需要的最基本的一些数据结构和一些宏函数。同时也有对图形绘制函数的声明。同时定义一个全局的结构体:tContext MyContext;
tContext是一个图形绘制的上下文。其定义如下:
typedef struct
{
//
//! The size of this structure.
//
long lSize;
//
//! The screen onto which drawing operations are performed.
//
const tDisplay *pDisplay;
//
//! The clipping region to be used when drawing onto the screen.
//
tRectangle sClipRegion;
//
//! The color used to draw primitives onto the screen.
//
unsigned long ulForeground;
//
//! The background color used to draw primitives onto the screen.
//
unsigned long ulBackground;
//
//! The font used to render text onto the screen.
//
const tFont *pFont;
} 大家可以看出这个结构中就包含了绘制的显示驱动结构,区域,前景,背景,字体。这个结构在函数中我们会对他初始化,并做为绘制的一个依据。
进入主函数我们在完成系统时钟配置之后,我们要做的第一件事情就是初始化LCD,使LCD进入一个合理的工作状态。然后以一种颜色把lcd清屏。并设置好背光。在我的这个硬件条件下。代码如下:
LCD_Init();//初始化LCD
SSD1963_SetBacklight(255);//设置背光
LCDClearScreen(DpyColorTranslate(&MyDisplay, ClrWhite));//清屏
大家注意一点就是,我使用的LCD是RGB666方式,而TI的库则是以RGB888的数据格式提供给我们颜色数据。所以在调用LCDClearScreen这个函数的时候我们传入的颜色参数必须由我们编写的底层驱动函数来转换。否则LCD的颜色显示将会不正常。
上面一系列的初始化我们可以认为是使用TI图形库的一些先决条件。然后我们来初始化TI的库。