easyx图形库-----贴图技巧之双缓冲消除闪屏(BeginBatchDraw 与 EndBatchDraw)
#include <graphics.h> // 引入easyx图形库头文件
#include <conio.h> // 用于getch函数
// 初始化图形模式
IMAGE img;
void init_graph(int width, int height, int color) {
initgraph(width, height); // 初始化图形窗口
loadimage(&img, L"example.bmp", L"example.bmp"); // 加载图片
setbkcolor(color); // 设置背景颜色
}
// 主要的绘图函数
void draw() {
putimage(0, 0, &img); // 绘制图片
}
// 主函数
int main() {
init_graph(640, 480, BLACK); // 初始化图形模式
// 使用双缓冲消除闪屏
BeginBatchDraw(); // 开始批量绘制
cleardevice(); // 清除当前屏幕
draw(); // 调用绘图函数
FlushBatchDraw(); // 刷新缓冲区内的所有图像到屏幕上
// 等待任意键按下
_getch();
EndBatchDraw(); // 结束批量绘制
// 关闭图形模式
closegraph(); // 关闭图形窗口
return 0;
}
这段代码展示了如何在使用easyx图形库时,通过BeginBatchDraw和EndBatchDraw来消除图形的闪烁(即消除屏幕刷新所导致的视觉不连贯问题)。通过将绘图操作集中在一起,并在所有绘图完成后一次性刷新到屏幕上,可以有效减少闪屏现象。
评论已关闭