⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 shuttur.c

📁 瑞星微公司RK27XX系列芯片的SDK开发包
💻 C
字号:
/* Copyright (C) 2006 ROCK-CHIPS FUZHOU . All Rights Reserved. */
/*
File  : gui\dispspecial\shuttur.c
Desc     : GUI 特效 之 百叶窗.


Author     : huangsl
Date     :
Notes     :

$Log: shuttur.c,v $
Revision 1.4  2008/06/19 04:43:20  Administrator
代码整理!

Revision 1.3  2008/06/04 06:27:26  HSL
除去编译警告

Revision 1.2  2008/05/26 03:27:10  HSL
重新整理特效模块,已兼容 RGB和MCU屏.

Revision 1.1.1.1  2008/05/07 04:15:08  Administrator
no message

Revision 1.1  2008/03/10 01:57:44  Lingzhaojun
提交特效支持

Revision 1.9  2007/12/06 05:16:17  Huangshilin
增加 视频静态buffer和GUI 复用.修改窗口系统.

*   080125  huangsl     FOR RGB PANEL.
*/

/***************************************************************************/
#ifndef DISP_INCLUDED
#error "CAN NOT COMPILE THIS FILE , USE disptask.c !!"
#endif
/***************************************************************************/
#define SHUTTER_CNT_X                   16    //垂直 百叶窗个数 .
#define SHUTTER_CNT_Y                   12    //水平 百叶窗的 个数.

//如果整除不尽 ,需要 +1 ,否则会出现 刷新不全的现象.
#define SHUTTER_TOTALPIXEL_X            (LCD_W/SHUTTER_CNT_X)    //垂直 百叶窗总的 象素 .
#define SHUTTER_TOTALPIXEL_Y            (LCD_H/SHUTTER_CNT_Y+1)    //垂直 百叶窗 总的 象素 .

/***************************************************************************/
#define SHUTTER_TIMES                   10   // 百叶窗 显示 次数.

//最后 会 有 越界的 可能 .
#define SHUTTER_PIXEL_X                 (SHUTTER_TOTALPIXEL_X/SHUTTER_TIMES)   // 垂直 
#define SHUTTER_PIXEL_Y                 (SHUTTER_TOTALPIXEL_Y/SHUTTER_TIMES+1)   // 水平

/***************************************************************************/

/************************************************************************/
//MOVE WIN
/************************************************************************/
//百叶窗 更新.
/*
    1. TIMER 回调 函数,逐步 刷出效果.

*/
extern void LCD_FLUSH(void);
void IDspTskShutterUpdate(void)
{
    INT32U       i;
    INT16U       startXy = 0;
    switch (gWMMoveStyle)
    {
        case SHUTTER_HORIC: // 水平 百叶窗.
            {
                gWinMoveIdxs += SHUTTER_PIXEL_Y;
                for (i = 0 ; i < SHUTTER_CNT_Y ; i++)
                {
                    if (startXy + gWinMoveIdxs > gLcdH)
                        startXy -= (startXy + gWinMoveIdxs - gLcdH);


                    IDspTskMoveRgbCopy(gpDspTskDestLcdLogic , gpDspTskNewLcdLogic ,
                                       0 , startXy , gLcdW, (INT16U)(startXy + gWinMoveIdxs) ,
                                       0 , startXy);

                    startXy += SHUTTER_TOTALPIXEL_Y;
                }
            }
            break;
        case SHUTTER_VERTC:   // 垂直 百叶窗.
            {
                gWinMoveIdxs += SHUTTER_PIXEL_X;
                for (i = 0 ; i < SHUTTER_CNT_X ; i++)
                {
                    if (startXy + gWinMoveIdxs > gLcdW)
                        startXy -= (startXy + gWinMoveIdxs - gLcdW);

                    IDspTskMoveRgbCopy(gpDspTskDestLcdLogic , gpDspTskNewLcdLogic ,
                                       startXy , 0 , (INT16U)(startXy + gWinMoveIdxs) , gLcdH,
                                       startXy , 0);

                    startXy += SHUTTER_TOTALPIXEL_X;
                }

            }
            break;
        default:
            break;
    }

    LCD_FLUSH();
}

void IDspTskShutterCallBack(void * param)
{
    if ((gWMMoveStyle == SHUTTER_VERTC && gWinMoveIdxs <= SHUTTER_TOTALPIXEL_X)
            || (gWMMoveStyle == SHUTTER_HORIC && gWinMoveIdxs <= SHUTTER_TOTALPIXEL_Y)
       )
    {
        RockOSSendMsg(MBDISP , MS_DIDI_LCDFrameInd , param);
    }
    else
    {
        gDspTskEffectStoped = 1;
    }
}

//把逻辑屏和备份屏的数据组合送 LCD 。

BOOLEAN IDspTskShutterStart(void)
{
    if (gWMMoveStyle == SHUTTER_VERTC || gWMMoveStyle == SHUTTER_HORIC)
    {
        gWinMoveIdxs = 0;
        return TRUE;
    }
    return FALSE;
}


/*******************************************************************/
///////////////////////////////////////////////////////

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -