图形加速软件实现(bitblt软实现)
来源:互联网 发布:淘宝商家赚钱的比例 编辑:程序博客网 时间:2024/05/22 10:31
一、概念及本质
嵌入式下图形加速的概念,详见http://blog.csdn.net/jianchenglee/article/details/12621347
1)其中重要的一步操作就是bitblit:拷贝源图形中的某一块图形区域到目标图形的某一块图形区域(其中可能涉及到拉伸、混合等操作)。
其执行的操作如图所示:
2)本质就是内存的二维操作,由于普通内存都是一维,进行二维操作(涉及到宽度的概念)操作稍显复杂,且效率不高。大部分嵌入式
都提供图形加速引擎(用硬件来加速此块操作)。
二、bitblt的软件实现源码(不支持混合,拉伸等操作)
由于部分嵌入式环境的特殊性可能需要bitblt的软件实现,不支持混合、拉伸等就是通过循环计算偏移进行的内存拷贝
源码:
typedef struct rect_bitblt{ //ljc for bitblt_soft
INT32 nX; //矩形框的X坐标
INT32 nY; //矩形框的Y坐标
INT32 nWidth; //矩形框的宽
INT32 nHeight; //矩形框的高
}rect_bitblt_t;
参数说明:
rect_src_mother:源图形
rect_dst_mother:目标图形
rect_src_son:源图形中待拷贝的图形区域
rect_dst_son:目标图形中待写入的图形区域
pMemory_src_mother:源图形对应的内存
pMemory_dst_mother:目标图形对应的内存
nbpp:单个像素占用的内存字节数
BOOL bitblt_soft(rect_bitblt_t rect_src_mother,rect_bitblt_t rect_dst_mother,rect_bitblt_t rect_src_son,rect_bitblt_t rect_dst_son,
void * pMemory_src_mother,void * pMemory_dst_mother,INT32 nbpp) //ljc bitblt(soft version),2d space memcpy,tmp no strech
{
int i;
char *pMemory_dst_mother_tmp=(char *)pMemory_dst_mother;
char *pMemory_src_mother_tmp=(char *)pMemory_src_mother;
if(rect_src_son.nWidth!=rect_dst_son.nWidth || rect_src_son.nHeight!=rect_dst_son.nHeight)//ljc temp no strech
return FALSE;
for(i=0;i<rect_src_son.nHeight;i++)
{
memcpy(pMemory_dst_mother_tmp+(rect_dst_son.nY+i)*rect_dst_mother.nWidth*nbpp+rect_dst_son.nX*nbpp,
pMemory_src_mother_tmp+(rect_src_son.nY+i)*rect_src_mother.nWidth*nbpp+rect_src_son.nX*nbpp,
rect_src_son.nWidth*nbpp);
}
return TRUE;
}
1 0
- 图形加速软件实现(bitblt软实现)
- 用BitBlt实现透明贴图
- VB用Bitblt实现透明位图显示
- c# 通过CreateDC,BitBlt实现截图
- VB用Bitblt实现透明位图显示
- 使用BitBlt实现位图背景透明
- BitBlt举例和图形旋转
- Flash加速功能实现
- MFC 实现CUDA加速
- MFC 实现CUDA加速
- TensorFlow计算加速实现
- 嵌入式linux软件平台--QtLib、QwtLib实现图形显示(一)
- 嵌入式linux软件平台--QtLib、QwtLib实现图形显示(二)
- Delphi中BitBlt函数实现屏幕对象抓图
- C#调用非托管DLL函数bitblt实现截屏
- 创建WINCE下16位格式位图实现快速BitBlt
- 创建WINCE下16位格式位图实现快速BitBlt
- 2D图形加速引擎(GE2D)
- $smarty获取变量get,post等用法
- 对话框界面圆角处理
- [Linux] Ubuntu 重装系统步骤 --1
- 在布署Tomcat时,出现The scratchDir you specified is unusable
- 绘图matlab
- 图形加速软件实现(bitblt软实现)
- 服务器至强5160处理器,华硕p5g41安装黑苹果10.8.2成功,显卡GT210
- activity 完美退出
- exp/imp导入导出版本问题和ORA-6550报错
- NIO-Selector
- Xml WebService完全实例解析
- 字节码
- Highlight Current Line in Visual Studio 2010
- 开发者需要了解的WebKit