32位/64兼容 VC inline 汇编极限优化范例之颜色混合: AlphaBlendPixel
来源:互联网 发布:帝国cms整合ck 编辑:程序博客网 时间:2024/04/27 18:54
写给底层搬运工看的 : )
__forceinline void AlphaBlendPixel( ULONG& dst_bgra,ULONG src_bgra ){register ULONG src_Alpha = ULongToBGRA(src_bgra)->Alpha;if( src_Alpha <= 1 )return; // 完全透明的点就不需要处理了if( src_Alpha >= 254 ){ dst_bgra = src_bgra; return; }__m128i src_alpha, dst_alpha, _mZero = _mm_setzero_si128();src_alpha.m128i_u16[0] = src_alpha.m128i_u16[1] = src_alpha.m128i_u16[2] = src_alpha.m128i_u16[3] = (USHORT)src_Alpha;dst_alpha.m128i_u64[0] = 0xFF00FF00FF00FF;dst_bgra = _mm_packus_epi16(_mm_srl_epi16(_mm_add_epi16(_mm_mullo_epi16( _mm_unpacklo_epi8( _mm_cvtsi32_si128( dst_bgra ), _mZero), _mm_sub_epi16( dst_alpha, src_alpha ) ), _mm_mullo_epi16( _mm_unpacklo_epi8( _mm_cvtsi32_si128( src_bgra ), _mZero), src_alpha )),_mm_cvtsi32_si128( 8 )),_mZero).m128i_u32[0];}
转载请注明出处。多谢.
0 0
- 32位/64兼容 VC inline 汇编极限优化范例之颜色混合: AlphaBlendPixel
- linux系统调用64位汇编与32位汇编不同及兼容
- VC++ inline 优化的试验
- .so兼容32位和64位
- android 64位兼容32位
- 64位系统兼容32位工具
- 64位ubuntu 兼容32位
- windows 32位以及64位的inline hook
- 64位汇编之linux系统调用
- 64位系统 inline api hook之我见
- 关于AT&T 汇编:64 位之于32 位的变化
- 汇编范例
- 64位inline api hook
- ubuntu64位兼容32位
- css学习之路(5)--display:inline、block、inline-block的区别及inline-block兼容
- centos 64安装32位兼容包
- VC 判断计算机 32位 64 位
- ubuntu 12.04 64位设置兼容32位的实现
- ASP显示对话框后页面跳转
- 第九周项目二对称矩阵的压缩存储及基本运算
- Uicc之ICCFileHandler(转)
- Activity启动模式(lauchMode)
- 2015南阳理工CCPC Sudoku
- 32位/64兼容 VC inline 汇编极限优化范例之颜色混合: AlphaBlendPixel
- 奇妙的NullPointerException
- Spring/Hibernate 应用性能优化的7种方法
- 斯坦福大学公开课 iOS应用开发教程学习笔记(第七课)UIToolbar、iPad 和iPhone的通用程序
- localtime 和 localtime_r
- 流程
- DataGrid使用
- 通过javacv对视频每隔1秒钟截取1张图片
- jQuery1.9新版变化之:toggle()方法