有人知道ucgui透明窗口与不透明窗口处理的区别吗,在我我认为没有什么区别啊,不就是底层函数决定可以绘制透明就可以了吗,为什么在无效化窗口函数里面透明窗口与不透明窗口裁剪方式不一样,这个有没有有什么资料什么的参考一下
离线
二者在绘制时有本质区别。透明窗口绘制时,需要取出屏幕背景颜色,经过和屏幕背景颜色混合运算后,得到新颜色,将新颜色输出到相同坐标的屏幕上。而非透明窗口则不需要取出屏幕背景颜色,也不需要运算,直接将前景色或者背景色直接输出到屏幕中。二者无效窗口裁剪算法也不同。非透明窗口裁剪时只关注其上面窗口(Z坐标)的覆盖裁剪,而透明窗口裁剪时,其Z坐标的上,下窗口都要进行裁剪运算,Z坐标下的窗口要进行无效化处理。
离线