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

📄 our_main.c

📁 这是一个简单的3d动画mmi,这是模拟器上的
💻 C
📖 第 1 页 / 共 4 页
字号:

                                BMP_IFO[(0)]);
        }
       // for (i1=0; i1 <2; i1++)
        {
            OUR_Draw_bmp16_SBLT( 0,LCD_H-20,LCD_W,20,
                                1,1,31,15,
                                video_buffer, LCD_W,
                                BMP_IFO[(0)]);
        }
       
        OUR_Draw_falsh_board16(((mmi_state.sub_state_line&1)*120),20+(mmi_state.sub_state_raw*120*LCD_H/400),120,120*LCD_H/400,10,
                                                OUR_RGB32(00,0,50),
                                                OUR_RGB32(050,255,150),
                                                video_buffer, LCD_W
                                                );/**/
        
        
}


void OUR_draw_bmp_OPT( OUR_3D_OBJ_PTR	obj,UCHAR *video_buffer, int lpitch)
{
    UINT i1=0,i2=0,i3=0;
    
    OUR_mmset_box16(0,0,240,320,video_buffer, LCD_W,OPT_BACK_CLR);
    i2=0;
    i3=mmi_state.opt_select;
    //OUR_mmset_box16(10,50+i2*40,220,5,video_buffer, LCD_W,OPT_BACK_CLR);
    while(i3>5)
    {
        i3-=6;
    }
    for (i2=0; i2 <6; i2++) 
    { 
        if (i2==i3)
        {
            OUR_Draw_bmp16_SBLT( 9*LCD_W/240,45+i2*40,221,35,
                                1,1,255,63,
                                video_buffer, LCD_W,
                                obj->bmp_info[0]);
        }
        else
        {
            OUR_Draw_bmp16_SBLT( 9*LCD_W/240,45+i2*40,221,35,
                                1,1,255,63,
                                video_buffer, LCD_W,
                                obj->bmp_info[1]);
        }
        //OUR_mmset_box16(10,96+i2*40,220,9,video_buffer, LCD_W,OPT_BACK_CLR);
    } 
    //OUR_mmset_box16(10,55+i2*40,220,5,video_buffer, LCD_W,OPT_BACK_CLR);

    OUR_Draw_bmp16_SBLT(0,0,LCD_W,40*LCD_W/240,
                        1,1,31,15,
                        video_buffer, LCD_W,

                        BMP_IFO[(0)]);
    OUR_Draw_bmp16_SBLT( 0,360*LCD_H/400+1,LCD_W,40*LCD_H/400-1,
                        1,1,31,15,
                        video_buffer, LCD_W,
                        BMP_IFO[(0)]);
}
      

void OUR_draw_bmp_OPT_MOVE( OUR_3D_OBJ_PTR	obj,int move_x,UCHAR *video_buffer, int lpitch)
{
    UINT i1=0,i2=0,i3=0;
    video_buffer+=(LCD_H)*(LCD_W)/4;
    i2=0;
    i3=mmi_state.opt_select;

    OUR_mmset_box16(move_x+215,5,26,241,video_buffer, LCD_W,OPT_BACK_CLR);
   //OUR_mmset_box16(0,0,240,300,video_buffer, LCD_W,OPT_BACK_CLR);
    for (i2=0; i2 <6; i2++)
    {
        {
            OUR_Draw_bmp16_SBLT( move_x,5+i2*40,221,35,
                                1,1,255,63,
                                video_buffer, LCD_W,
                                obj->bmp_info[1]);
            OUR_Draw_bmp16_SBLT( move_x+240,5+i2*40,221,35,
                                1,1,255,63,
                                video_buffer, LCD_W,
                                obj->bmp_info[1]);
        }
    } 

}


OUR_3D_MMI_STATE* OUR_3D_get_mmi_state(void)
{
    return &mmi_state;
}

int OUR_THIRD_mmi(UCHAR *video_buffer1, int key, int FPS)
{
    char work_string[50]; // temp string
    int a[5];
    int video_step;
   // UINT clr; 
    int i;
    static int start,end;
    int ret=0;
    static int key_old;


    UCHAR *video_buffer=video_buffer1;
    //==========================================================
    if(OUR_MMI_OPT==mmi_state.top_state)
    {
        if(key==38)//up
        {
            key_old=key;
            mmi_state.opt_select--;
            if(mmi_state.opt_select<0)
            {
                mmi_state.opt_select=mmi_state.opt_select_max-1;
                if(!((mmi_state.opt_select)%6))//turn to the last pag
                {
                    x2[0]=0;
                }
            }
        }    
        else if(key==40)//down
        {
            key_old=key;
            mmi_state.opt_select++;
            if(mmi_state.opt_select>mmi_state.opt_select_max-1)
            {
                mmi_state.opt_select=0;
                x2[0]=0;
            }        
        }   
        else if(key==37)//left
        {
            key_old=key;
            if(mmi_state.opt_select<6)
            {
                mmi_state.opt_select=mmi_state.opt_select_max/6*6+mmi_state.opt_select;
                if(mmi_state.opt_select>mmi_state.opt_select_max-1)
                {
                    mmi_state.opt_select=mmi_state.opt_select_max-1;
                }
            } 
            else
            {
                mmi_state.opt_select-=6;
            }
            for(i=0;i<6;i++)
            {
                x2[i]=0;
            }
            x2[mmi_state.opt_select%6]=170;
            end=0;
        }   
        else if(key==39)//right
        {
            key_old=key;
            if(mmi_state.opt_select>mmi_state.opt_select_max-7)
            {
                if((mmi_state.opt_select/6)==(mmi_state.opt_select_max/6))
                {
                    mmi_state.opt_select=mmi_state.opt_select%6;
                }
                else
                {
                    mmi_state.opt_select=mmi_state.opt_select_max-1;
                }
            } 
            else
            {
                mmi_state.opt_select+=6;
            }
            for(i=0;i<6;i++)
            {
                x2[i]=0;
            }
            x2[mmi_state.opt_select%6]=170;
            end=170+34;
        }
        else if(key==97)//in
        {
            key_old=key;
            //if((mmi_state.opt_select==0)&&(x2[0]==170))
            {
                OUR_draw_bmp_OPT(&global.obj2, video_buffer, LCD_W);
                /*
                a[0]=mmi_state.opt_select;a[1]=start;a[2]=end;
                OUR_sprintf(work_string,"sel=%x s=%x e=%x", a);	   
                OUR_Draw_Text16(0,15,OUR_RGB16(255,255,255),work_string,video_buffer1, LCD_W*2);*/    
                return 0;
            }
        }
    }
    else
    {
        return 0;
    }
    //========================================
    if(key_old==39)//the right key is pressed but the amo is not end
    {
        if(end>0)
        {
            end-=34;
            OUR_draw_bmp_OPT_MOVE(&global.obj2,-end, video_buffer1, LCD_W);
            /*
            a[0]=mmi_state.opt_select;a[1]=start;a[2]=end;
            OUR_sprintf(work_string,"sel=%x s=%x e=%x", a);	   
            OUR_Draw_Text16(0,15,OUR_RGB16(255,255,255),work_string,video_buffer1, LCD_W*2);*/    
            return 1;
        }
        else
        {
            key_old==0;
        }
    }

    if(key_old==37)
    {
        if(end<170+34)
        {
            end+=34;
            OUR_draw_bmp_OPT_MOVE(&global.obj2,-end, video_buffer1, LCD_W);
            /*
            a[0]=mmi_state.opt_select;a[1]=start;a[2]=end;
            OUR_sprintf(work_string,"sel=%x s=%x e=%x", a);	   
            OUR_Draw_Text16(0,15,OUR_RGB16(255,255,255),work_string,video_buffer1, LCD_W*2);  */  
            return 1;
        }
        else
        {
            key_old==0;
        }
    }
    //==========================================================
    //clr=OUR_RGB16BIT565(20, 20, 100);
    //clr=(clr<<16)+clr;
    video_step=global.cam_work2.hight*4*LCD_W;
    
    start=(mmi_state.opt_select/6)*6;
    end=mmi_state.opt_select_max-start;
    if(end>6)
    {
        end=6;
    }
    for(i=0;i<end;i++)
    {
        if((mmi_state.opt_select==start+i) )
        {
            if(x2[i]<170)
            {
                x2[i]+=34;
            }
        }
        else if(x2[i]>0)
        {  
            x2[i]-=34;  
        }
    }
    
    if(x2[0]>0&&x2[0]<170)
    {
        if(((key_old==40) &&( mmi_state.opt_select==start))//down
        ||((key_old==38) &&(( mmi_state.opt_select!=start)//up
           ||(mmi_state.opt_select==(mmi_state.opt_select_max-1)))))
        {
            OUR_draw_bmp_OPT_MOVE(&global.obj2,-x2[0], video_buffer1, LCD_W);
            /*
            a[0]=mmi_state.opt_select;a[1]=start;a[2]=end;
            OUR_sprintf(work_string,"sel=%x s=%x e=%x", a);	   
            OUR_Draw_Text16(0,15,OUR_RGB16(0,255,255,255),work_string,video_buffer1, LCD_W*2);*/    
            return 1;
        }
    }
    

    for(i=0;i<end;i++)
    {
        video_buffer+=video_step;
        if(x2[i]<=0 ||x2[i]>=170  )
        {
            continue;
        }                    
        ret++;
       // // OUR_mmset_box16(10,55+i2*50,220,5,video_buffer, LCD_W,clr);
       OUR_mmset((UINT*)(video_buffer),OPT_BACK_CLR+(OPT_BACK_CLR<<16),video_step/4);
        OUR_XYZ_Rotation_OBJ( x2[i],0, 0,&global.obj2,OBJ_R_XYZ); 	
        
        OUR_BACHFACE_OBJ_LIT32(&global.obj2,&global.cam_work2,lit_list);
        
        OUR_POINT_CHANGE_OBJ(&global.obj2,&global.cam_work2);
        /*OUR_BOX_OUT_clear16(18,20,
                        OPT_BACK_CLR,
                        video_buffer, LCD_W
                        );  */
        OUR_Draw_OBJ( &global.obj2, video_buffer, LCD_W,CLOR_MOD); 
    } 
    if(ret==0)
    {
        OUR_draw_bmp_OPT(&global.obj2, video_buffer1, LCD_W);
    } 
    /*
        a[0]=mmi_state.opt_select;a[1]=start;a[2]=end;
        OUR_sprintf(work_string,"sel=%x s=%x e=%x", a);	   
        OUR_Draw_Text16(0,15,OUR_RGB16(0,255,255,255),work_string,video_buffer1, LCD_W*2);*/    
    return ret;
}



//==================================================================================
//==============================================
///====by mjb =====================================================
//#define OUR_3D_ 1
#define OUR_3D_mmi_struct 0
#if OUR_3D_

//#include "GlobalMenuHandlers.h"

//#include "our_main.c"
/*


*/




#if OUR_3D_mmi_struct
typedef void (*OUR_3D_mmi_funptr)(void); 

typedef struct 
{
    U16 str_id;
    OUR_3D_mmi_funptr third_highlight_fun;
}THIRD_STRUCT;


typedef struct 
{
    U16 str_id;
    THIRD_STRUCT* third_menu;
}SECOND_STRUCT;


extern void highlight_mainmenu_profiles(void);
extern void HighlightLcddisplaySet(void);
extern void HighlightPhnsetTimeAndDate(void);
extern void HighlightPhnsetScr(void);
extern void HighlightManageCalls(void);

THIRD_STRUCT setting_child_3[]={
                                            {MAIN_MENU_PROFILES_TEXT,    HighlightManageCalls},//highlight_mainmenu_profiles
                                            {STR_DISPLAY_SETTING,           HighlightLcddisplaySet},
                                            {STR_MENU9141_TIME_AND_DATE, HighlightPhnsetTimeAndDate},
                                            {STR_MENU9141_TIME_AND_DATE,           HighlightPhnsetScr},//STRING_MTPNP_PHONE_SETTING
                                            {STR_MENU9100_CALL_SETTING,           HighlightManageCalls},
                                            {STR_MENU9166_AUTO_KEYPAD_LOCK,           HighlightLcddisplaySet},
                                            };


SECOND_STRUCT our_3d_mmi_2[]={
                                            {MAIN_MENU_BBK_SPACE_TEXT,              setting_child_3},//STR_SCR_CALL_HISTORY_MAIN_MENU_CAPTION
                                            {MAIN_MENU_BBK_SPACE_TEXT,                 setting_child_3},
                                            {MAIN_MENU_BBK_SPACE_TEXT,                 setting_child_3},
                                            {MAIN_MENU_WORK_STUDY_TEXT,                 setting_child_3},

⌨️ 快捷键说明

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