找到s3c6410_display_com.c文件中找到下面这个函数
DISP_ERROR Disp_set_alpha_blending(DISP_WINDOW Win, DISP_ALPHA_BLEND_METHOD Method, unsigned int uiAlphaSet0, unsigned int uiAlphaSet1);
这个函数是设置透明的程度,6410只支持0到F,F是完全透明。
对这个函数修改以下代码
switch(Win)
{
case DISP_WIN1:
//设置colorkey,设置屏蔽的颜色(寄存器的具体意义查看6410数据手册)
g_pDispConReg->W1KEYCON0 = KEYBLEN_ENABLE | KEYEN_F_ENABLE | DIRCON_BG_MATCH_FG_DISPLAY | 0x70307;
g_pDispConReg->W1KEYCON1 = COLVAL(0xf8fcf8); g_pDispConReg->WINCON1 = (g_pDispConReg->WINCON1 & ~(BLEND_PER_PIXEL|ALPHASEL_ALPHA1)) | uiMethod;
//修改实现overlay背景完全透明
g_pDispConReg->VIDOSD1C = ALPHA0_R(uiAlphaSet0) | ALPHA0_G(uiAlphaSet0) | ALPHA0_B(uiAlphaSet0)
| ALPHA1_R(0xf) | ALPHA1_G(0xf) | ALPHA1_B(0xf);//设置成0xf是让背景完全透明
}
可以不在这个函数中修改。可以修改colorkey的相关函数。