Example #1
0
bool XFileUtils::LoadFrame(
	ID3DXFileData* pFileData, 
	IDirect3DDevice9* pDevice, 
	GFrame** pNewFrame)
{

	GFrame* pFrame = new GFrame();
	char name[128] = { 0 };
	SIZE_T nameSize = 128;
	pFileData->GetName(name, &nameSize);
	pFrame->Name = name;

	ID3DXFileData* transFileData = SearchChild(_XTemplate("FrameTransformMatrix"), pFileData);
	if (transFileData)
	{
		_XFileDataLock(transFileData, transSize, transData);
		D3DXMATRIX* pInMatrix = _XToValue(D3DXMATRIX*, 0, transData);
// 		memcpy_s(&pFrame->TransformationMatrix, sizeof(D3DXMATRIX),
// 			transData, sizeof(D3DXMATRIX));
		D3DXMatrixTranspose(&pFrame->TransformationMatrix, pInMatrix);
		_XFileDataUnlock(transFileData);
	}

	ID3DXFileData* pMeshFileData = SearchChild(_XTemplate("Mesh"), pFileData);
	if (pMeshFileData)
	{
		if (!LoadMeshContainer(pMeshFileData, pDevice, &pFrame->pMeshContainer))
			return false;
	}

	*pNewFrame = pFrame;
	return true;
}
Example #2
0
BOOLEAN CPage::PerformMessage(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
	switch (uMsg)
	{
	case WM_SIZE:
		{
			RECT r;
			GetClientRect(hWnd,&r);
			sx=r.right;
			sy=r.bottom;
		}
		break;
	}

	if (childwindow)
	{
		if (childwindow->PerformMessage(hWnd,uMsg,wParam,lParam))return TRUE;
		return FALSE;
	}

	if (CWnd::PerformMessage(hWnd,uMsg,wParam,lParam))return TRUE;

	int i;

	switch (uMsg)
	{
	case WM_KEYDOWN:
		switch(wParam)
		{
		case VK_ESCAPE:
			Close(0);
			closed=TRUE;
			break;
		case VK_LEFT:SearchChild(-1,0);
			break;
		case VK_RIGHT:SearchChild(1,0);
			break;
		case VK_UP:SearchChild(0,-1);
			break;
		case VK_DOWN:SearchChild(0,1);
			break;
		case VK_TAB:
			{
				i=GetFocusedChild();
				if (i!=-1)
				{
					int j=i;
					do
					{
						j=GetNextChild(j);
					}while ((j!=-1)&&(!child[j]->canfocus));
					if (j!=-1)
					{
						child[j]->focused=TRUE;
						child[i]->focused=FALSE;
						child[i]->Invalidate();
						child[j]->Invalidate();
					}else{
						j=0;
						while ((j!=-1)&&(!child[j]->canfocus))
						{
							j=GetNextChild(j);
						}
						if (j!=-1)
						{
							child[i]->focused=FALSE;
							child[j]->focused=TRUE;
							child[i]->Invalidate();
							child[j]->Invalidate();
						}
					}
				}
			}
			break;
		default: return TRUE;
		}
		break;
	default:return FALSE;
	}
	return TRUE;
}