当前位置: 首页 > wzjs >正文

中国的搜索引擎有哪些江门seo排名优化

中国的搜索引擎有哪些,江门seo排名优化,建网站的公司大全,全网最低价业务网站ShaderClipBlendMaskBlitter 结构体实现了 Blitter trait,用于支持 带裁剪遮罩(Clip Mask)和自定义混合函数(Blend Function)的着色器渲染。它比之前的 ShaderClipMaskBlitter 更灵活,因为它允许外部传入一…

ShaderClipBlendMaskBlitter 结构体实现了 Blitter trait,用于支持 带裁剪遮罩(Clip Mask)和自定义混合函数(Blend Function)的着色器渲染。它比之前的 ShaderClipMaskBlitter 更灵活,因为它允许外部传入一个 自定义混合函数(blend_fn),而不是硬编码混合逻辑。

结构体定义

pub struct ShaderClipBlendMaskBlitter<'a> {pub x: i32,                     // 目标区域的起始 x 坐标pub y: i32,                     // 目标区域的起始 y 坐标pub shader: &'a dyn Shader,      // 着色器,用于生成像素颜色pub tmp: Vec<u32>,               // 临时缓冲区,存储着色器生成的像素pub dest: &'a mut [u32],         // 目标像素缓冲区(帧缓冲区)pub dest_stride: i32,            // 目标缓冲区的行跨度(每行的像素数)pub clip: &'a [u8],             // 裁剪遮罩(决定哪些像素允许绘制)pub clip_stride: i32,            // 裁剪遮罩的行跨度pub blend_fn: fn(&[u32], &[u8], &[u8], &mut [u32]), // 自定义混合函数
}

关键字段

字段用途
x, y目标绘制区域的起始坐标
shader生成像素颜色的着色器
tmp存储着色器生成的临时像素数据
dest目标帧缓冲区(最终绘制的位置)
dest_stride目标缓冲区的行跨度(用于非连续内存布局)
clip裁剪遮罩(决定哪些像素允许绘制)
clip_stride裁剪遮罩的行跨度
blend_fn自定义混合函数(核心改进点)

Blitter Trait 实现

impl<'a> Blitter for ShaderClipBlendMaskBlitter<'a> {fn blit_span(&mut self, y: i32, x1: i32, x2: i32, mask: &[u8]) {// 计算目标缓冲区的当前行偏移let dest_row = (y - self.y) * self.dest_stride;// 计算裁剪遮罩的当前行偏移let clip_row = y * self.clip_stride;// 计算要处理的像素数量let count = (x2 - x1) as usize;// 使用着色器生成像素颜色,存储到 tmp 缓冲区self.shader.shade_span(x1, y, &mut self.tmp[..], count);// 调用自定义混合函数进行像素混合(self.blend_fn)(&self.tmp[..],                          // 着色器生成的像素mask,                                   // 遮罩(控制透明度)&self.clip[(clip_row + x1) as usize..], // 裁剪遮罩(控制是否允许绘制)&mut self.dest[(dest_row + x1 - self.x) as usize..], // 目标像素缓冲区);}
}

关键改进:自定义混合函数

之前的 ShaderClipMaskBlitter 使用硬编码的 over_in_in 混合逻辑,而 ShaderClipBlendMaskBlitter 允许动态传入混合函数:

rust
复制
pub blend_fn: fn(&[u32], &[u8], &[u8], &mut [u32]),
混合函数的参数
参数 用途
&[u32] 着色器生成的像素(tmp 缓冲区)
&[u8] 遮罩(mask,控制透明度)
&[u8] 裁剪遮罩(clip,控制是否允许绘制)
&mut [u32] 目标像素缓冲区(最终写入位置)
示例混合函数
假设我们要实现一个 乘法混合(Multiply Blend),可以这样定义:

rust
复制
fn multiply_blend(
src: &[u32], // 着色器生成的像素
mask: &[u8], // 透明度遮罩
clip: &[u8], // 裁剪遮罩
dest: &mut [u32], // 目标像素
) {
for i in 0…src.len() {
if clip[i] != 0 { // 只有 clip 不为 0 时才绘制
let mask_val = mask[i] as f32 / 255.0;
let src_pixel = src[i];
let dest_pixel = dest[i];

        // 乘法混合公式: result = src * dest * masklet r = ((src_pixel >> 16) & 0xFF) as f32 * ((dest_pixel >> 16) & 0xFF) as f32 * mask_val;let g = ((src_pixel >> 8) & 0xFF) as f32 * ((dest_pixel >> 8) & 0xFF) as f32 * mask_val;let b = (src_pixel & 0xFF) as f32 * (dest_pixel & 0xFF) as f32 * mask_val;dest[i] = ((r as u32) << 16) | ((g as u32) << 8) | (b as u32);}
}

}
使用时:

rust
复制
let blitter = ShaderClipBlendMaskBlitter {
blend_fn: multiply_blend,
// 其他字段…
};
与 ShaderClipMaskBlitter 的对比
特性 ShaderClipMaskBlitter ShaderClipBlendMaskBlitter
混合方式 硬编码 over_in_in 自定义 blend_fn
灵活性 固定混合逻辑 支持任意混合模式(乘法、叠加、屏幕等)
适用场景 单一混合需求 需要动态切换混合模式的场景
适用场景
图形渲染引擎

支持不同的混合模式(如 Multiply、Screen、Overlay)。

UI 框架

不同控件可以使用不同的混合方式(如半透明窗口、叠加特效)。

游戏开发

动态光照(Additive 混合)、粒子效果(Alpha Blend)。

总结
ShaderClipBlendMaskBlitter 是一个高度可定制的像素混合渲染器,支持:

着色器生成像素

遮罩控制透明度

裁剪遮罩控制绘制区域

自定义混合函数

适用于需要 动态切换混合模式 的高级图形渲染场景。


文章转载自:

http://lnbRp2QI.ctqLq.cn
http://odE81jLR.ctqLq.cn
http://dnm9BzMh.ctqLq.cn
http://5CMXHZpC.ctqLq.cn
http://0qOLfh7z.ctqLq.cn
http://bSaWnCeD.ctqLq.cn
http://xroq5skY.ctqLq.cn
http://Qh1MeXMy.ctqLq.cn
http://d4gUCN0s.ctqLq.cn
http://kvl8C0Fa.ctqLq.cn
http://EuHByptC.ctqLq.cn
http://CkUOdUUm.ctqLq.cn
http://nRLLwGx4.ctqLq.cn
http://6Ls4VJfu.ctqLq.cn
http://5cyxusg6.ctqLq.cn
http://vQPhXTqe.ctqLq.cn
http://Pr73zhyO.ctqLq.cn
http://OC7jQwNm.ctqLq.cn
http://UrpUdXVO.ctqLq.cn
http://sxC0IgOc.ctqLq.cn
http://sZlP4Ye1.ctqLq.cn
http://v1mJMMjy.ctqLq.cn
http://tc2wJSPT.ctqLq.cn
http://5Hun1IMg.ctqLq.cn
http://9Hfbtn0c.ctqLq.cn
http://o8NHEFGl.ctqLq.cn
http://iQaRdGJR.ctqLq.cn
http://YSCjJex3.ctqLq.cn
http://g4dwuGAh.ctqLq.cn
http://2S8NfMxD.ctqLq.cn
http://www.dtcms.com/wzjs/740062.html

相关文章:

  • 网站开发有前景吗网站建设方案书备案
  • 万网上买了域名怎么建设网站wordpress标题超链接
  • 购物类网站都有哪些模块网站全是乱码
  • 书本翻页 网站模板合肥网站推广外包公司
  • 网站建设价格对比分析贵阳网站建设方案书
  • 淘宝联盟怎么建网站快速建网站模板
  • 网站有域名没备案书店网站建设需求分析调研表
  • 上杭网站设计公司7个湖北seo网站推广策略
  • 企业网站托管代运营网站不同颜色
  • 沧州市有建网站的吗营销型网站分类
  • 马鞍山做网站公司排名浙江省住房与和城乡建设厅网站
  • 网站注册系统用什么做网上怎么注册公司免费的
  • 宁波模板开发建站搜狗网站排名怎么做
  • 网络架构师论文南宁做网站seo
  • 自助外贸网站建设商城网站建设包括哪些
  • 做网站买计划书企业服务平台介绍
  • 如何做淘宝商城网站设计广州建机场最新消息
  • 深圳专业网站微信上打开连接的网站怎么做
  • 有哪些网站做的比较好看的pc端百度
  • 网站服务器如何管理创意广告图片及文字解析
  • 网站如何301江苏网站建设哪家有
  • wordpress多站点demo网站扩展性
  • 计算机网站建设 是什么企业宣传ppt案例欣赏
  • 网站建设 外包是什么意思手机网站缩放
  • 宿州高端网站建设公司哪家好wordpress商城开发费用
  • 企业网站推广论述网站建设到上线的步骤过程
  • 荣成城乡建设局网站长春建站公司模板
  • 常用网站域名常德网站设计字答科技
  • 普集网站开发网站后台上传不了图片
  • 外贸网站下载橘子seo查询