如何提高绘图效率(GDI,GDI++,Directx)? (转自桌游程序员幸运星空间)
来源:互联网 发布:李卫当官 知乎 编辑:程序博客网 时间:2024/05/03 00:54
在GDI中利用双缓冲技术我们通过在内存中操作的速度远远大于在屏幕上画图的速度的特点解决了刷新屏幕的时候屏幕闪烁的现象。的确如此,在下面的代码我们可以看到:
LRESULT CVeiwManage::ReDraw(HDC hdc,int x,int y)
{
HBITMAP m_backbitmap=NULL;
Create(m_backbitmap,hdc,m_myRect.right-m_myRect.left,m_myRect.bottom-m_myRect.top,m_bkColor);
HDC mdc=CreateCompatibleDC(hdc);
SelectObject(mdc,m_backbitmap);
OnPreDraw(mdc);
OnDraw(mdc);
OnDrawEnd(mdc);
if (bTrans)
{
TransparentBlt(hdc,m_myRect.left,m_myRect.top,m_myRect.right-m_myRect.left, m_myRect.bottom-m_myRect.top,mdc,0,0,m_myRect.right-m_myRect.left,m_myRect.bottom-m_myRect.top,crTransColor);
}
else
{
BitBlt(hdc,m_myRect.left,m_myRect.top,m_myRect.right-m_myRect.left,
m_myRect.bottom-m_myRect.top,mdc,0,0,SRCCOPY);
}
DeleteObject(m_backbitmap);
DeleteDC(mdc);
return 0;
}
我们利用了双缓冲技术在一个内存DC上绘制图片,然后在将内存DC拷贝到屏幕DC上。在主窗口中,我们采用帧频为25HZ的速度刷新屏幕,但是一个新的问题出现了,如果存在很多的GDI对象,在绘制的过程中CPU占用达到了30%以上。如何才能在优化界面的基础上减少CPU的占用率?我觉得速度瓶颈不在于GDI输出而在于逻辑和绘图的方法。
- 如何提高绘图效率(GDI,GDI++,Directx)? (转自桌游程序员幸运星空间)
- 如何提高c#的GDI+绘图效率
- 怎样提高GDI+的绘图效率(补充讨论)
- 怎样提高GDI+的绘图效率
- 使用bitblt提高GDI+绘图的效率
- GDI DX绘图效率
- 绘图效率完整解决方案——三种手段提高GDI/GDI+绘图效率
- 绘图效率完整解决方案——三种手段提高GDI/GDI+绘图效率
- 利用GDI+的双缓冲技术来提高绘图效率
- 利用GDI+的双缓冲技术来提高绘图效率
- 利用GDI+的双缓冲技术来提高绘图效率
- 利用GDI+的双缓冲技术来提高绘图效率
- 利用GDI+的双缓冲技术来提高绘图效率(转)
- 利用GDI+的双缓冲技术来提高绘图效率(转)
- GDI绘图(一)
- GDI绘图
- gdi 绘图
- GDI绘图
- 产品经理和项目经理的区别
- J2ME如何获取手机型号
- 我的acm
- 数组是否越界的一个类
- MP3文件格式解析
- 如何提高绘图效率(GDI,GDI++,Directx)? (转自桌游程序员幸运星空间)
- zoj 1858
- 上传封面
- 如何修改win7的启动文件
- Android List
- ArcGIS几种数据格式
- Linux下syslog日志函数使用
- kohana 浅析3
- 关于Quartz 2D绘图