2440/2410 LCD 屏幕旋转的问题

winCE 4.2以上

一.修改

SMDK2440\DRIVERS\DISPLAY\S3C2440LCD 目录下的sources文件合适位置增加:


CLEARTYPE=0
ROTATE=1   //这句是我加的


三.s3c2440disp.h文件头上加一句


#define ROTATE

四.s3c2440disp.cpp中
S3C2440DISP::S3C2440DISP (void)
{

#ifdef ROTATE
m_iRotate = DMDO_90; // 90不对是DMDO_90=1!!!!;   //0->90 我修改0-》90
SetRotateParms();
#endif //ROTATE  

五。检查platform.reg中,

[HKEY_LOCAL_MACHINE\System\GDI\Drivers]
"Display"="s3c2440disp.dll"

以下注册表可以有可以没有。
[HKEY_LOCAL_MACHINE\System\GDI\Rotation]  
"ANGLE"=dword:5A   ;0x5A for 90,这是我加的   ,加在gdi\drivers这项后面

六,要在S3C2440DISP::S3C2440DISP (void) 最后加一句
((GPESurfRotate *)m_pPrimarySurface)->SetRotation(m_nScreenWidth, m_nScreenHeight, m_iRotate);

而s2440.h、2410中关于屏幕的东西不要去改,那是初试化lcd控制器的,与这里没有关系。

修改LCD控制器是另外一个方式实现LCD旋转的。

2440/2410 LCD 屏幕旋转的问题

winCE 4.2以上

一.修改

SMDK2440\DRIVERS\DISPLAY\S3C2440LCD 目录下的sources文件合适位置增加:


CLEARTYPE=0
ROTATE=1   //这句是我加的


三.s3c2440disp.h文件头上加一句


#define ROTATE

四.s3c2440disp.cpp中
S3C2440DISP::S3C2440DISP (void)
{

#ifdef ROTATE
m_iRotate = DMDO_90; // 90不对是DMDO_90=1!!!!;   //0->90 我修改0-》90
SetRotateParms();
#endif //ROTATE  

五。检查platform.reg中,

[HKEY_LOCAL_MACHINE\System\GDI\Drivers]
"Display"="s3c2440disp.dll"

以下注册表可以有可以没有。
[HKEY_LOCAL_MACHINE\System\GDI\Rotation]  
"ANGLE"=dword:5A   ;0x5A for 90,这是我加的   ,加在gdi\drivers这项后面

六,要在S3C2440DISP::S3C2440DISP (void) 最后加一句
((GPESurfRotate *)m_pPrimarySurface)->SetRotation(m_nScreenWidth, m_nScreenHeight, m_iRotate);

而s2440.h、2410中关于屏幕的东西不要去改,那是初试化lcd控制器的,与这里没有关系。

修改LCD控制器是另外一个方式实现LCD旋转的。