另一种MTK特效制作的方法,层复制
来源:互联网 发布:java实现aes256加解密 编辑:程序博客网 时间:2024/06/06 08:36
对于MTK平台来说,菜单和屏幕特效曾经在很长的一段时间里,影响甚远。
但对于其设计过程和方法,由于各种各样的原因,很少有人提及。
这里介绍一种不同于前几天日志所载之方法的另一种方法,就是合并图层,其核心实现函数如下。
void my_gdi_layer_copy(gdi_layer_struct* dst_layer, int dst_x, int dst_y, int width, int height,
gdi_layer_struct* src_layer, int src_x, int src_y)
{
U16 *dst_buf, *src_buf;
int i;
if (dst_x < 0 || dst_y < 0 || dst_x + width > dst_layer->width || dst_y + height > dst_layer->height)
{
if (dst_x < 0)
{
width -= -dst_x;
src_x += -dst_x;
dst_x = 0;
}
if (dst_y < 0)
{
height -= -dst_y;
src_y += -dst_y;
dst_y = 0;
}
if (dst_x + width > dst_layer->width)
{
width = dst_layer->width - dst_x;
}
if (dst_y + height > dst_layer->height)
{
height = dst_layer->height - dst_y;
}
}
if (src_x < 0 || src_y < 0 || src_x + width > src_layer->width || src_y + height > src_layer->height)
{
if (src_x < 0)
{
width -= -src_x;
dst_x += -src_x;
src_x = 0;
}
if (src_y < 0)
{
height -= -src_y;
dst_y += -src_y;
src_y = 0;
}
if (src_x + width > src_layer->width)
{
width = src_layer->width - src_x;
}
if (src_y + height > src_layer->height)
{
height = src_layer->height - src_y;
}
}
if (width <= 0 || height <= 0)
return;
dst_buf = (U16 *)dst_layer->buf_ptr + dst_y * dst_layer->width + dst_x;
src_buf = (U16 *)src_layer->buf_ptr + src_y * src_layer->width + src_x;
for (i = 0; i < height; i ++)
{
memcpy(dst_buf, src_buf, width * 2);
dst_buf += dst_layer->width;
src_buf += src_layer->width;
}
}
有兴趣的朋友可以自己利用该函数研发各种各样的变化效果。
这个函数,加上我前一段时间提供的另一种方法,大致可以制作二十种左右的效果。
本文来自CSDN博客,
- 另一种MTK特效制作的方法,层复制
- 另一种MTK特效制作的方法,层复制
- 另一种MTK特效制作的方法,层复制
- MTK特效制作的方法,层复制
- MTK特效制作的方法
- MTK一些特殊特效的制作
- java集合复制的另一种方法
- HBase跨集群复制数据的另一种方法
- HBase跨集群复制数据的另一种方法
- HBase跨集群复制数据的另一种方法
- 一个MTK的百叶窗特效
- MTK层的运用
- MTK层的运用
- MTK 层的基础知识
- 网页制作中弹出层的方法
- MTK图层的介绍
- MTK 层的基础知识笔记
- MTK 层的基础知识笔记
- 常用数据库 JDBC URL 格式
- 中文转换为Unicode编码-Unicode编码转换为中文
- SQL_SERVER2005镜像服务配置
- 在web.xml中扑捉异常
- pyhon使用http代理服务器和POP3、SMTP邮件服务器
- 另一种MTK特效制作的方法,层复制
- 设计模式介绍 高内聚,低耦合
- 《华清远见学习手记》 之3G智能机器人——移植RT2571(73)WIFI无线网卡驱动到FS2410
- Asp.NET 中两个listbox实现值相互传递
- tomcat域名配置
- C++ Primer学习笔记——$5 数组
- CEGUI:layout
- 对比敏捷开发和IPD的核心思想
- C++ Primer学习笔记——$6 表达式