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

📄 rotate.cpp

📁 VoyagerGX display driver for Windows CE .NET 5.XX Silicon Motion, Inc. VoyagerGX Driver is architec
💻 CPP
字号:
#include "precomp.h"

int SMI::GetRotateModeFromReg()
{
	
#ifdef ROTATION_ENABLE
	switch (m_SMISettings.m_nRotateAngle)
	{
	case 90: 
		return DMDO_90;
	case 180:
		return DMDO_180;
	case 270:
		return DMDO_270;
	case 0:
	default:
		return DMDO_0;
	}
#endif // ROTATION_ENABLE

    return 0;
}

void SMI::SetRotateParams()
{

#ifdef ROTATION_ENABLE
    switch(m_iRotate)
    {
	case DMDO_90:
	case DMDO_270:
		m_pMode->height = m_nScreenWidthSave;
		m_pMode->width = m_nScreenHeightSave;
		break;

    case DMDO_0:
    case DMDO_180:
	default:
		m_pMode->width = m_nScreenWidthSave;
		m_pMode->height = m_nScreenHeightSave;
		break;
    }
#endif // ROTATION_ENABLE

}


LONG SMI::DynRotate(int angle)
{

#ifdef ROTATION_ENABLE
	int curRot, oldAngle;
	int ang2idxArr[5]={0,1,2,2,3};
	int angArr[4]={0,1,2,4};

	//if (angle == m_iRotate)
	//	return DISP_CHANGE_SUCCESSFUL;

	oldAngle = m_iRotate;
	m_iRotate = angle;

	curRot = ang2idxArr[angle] - ang2idxArr[oldAngle];
	if(curRot < 0)
		curRot += 4;

	RotateCursorShape(angArr[curRot]);

	SetRotateParams();

	m_nScreenWidth = m_pMode->width;
	m_nScreenHeight = m_pMode->height;
	((GPESurfRotate *)m_pPrimarySurface)->SetRotation(m_nScreenWidth, m_nScreenHeight, angle);

	return DISP_CHANGE_SUCCESSFUL;
#else // ! ROTATION_ENABLE
	return FALSE;
#endif // ROTATION_ENABLE

}

⌨️ 快捷键说明

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