亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? spotlight.cpp

?? Introduction to directx9 3d game programming 一書的源代碼
?? CPP
字號:
//////////////////////////////////////////////////////////////////////////////////////////////////
// 
// File: spotLight.cpp
// 
// Author: Frank Luna (C) All Rights Reserved
//
// System: AMD Athlon 1800+ XP, 512 DDR, Geforce 3, Windows XP, MSVC++ 7.0 
//
// Desc: Demonstrates using a spotlight with D3DX objects.  You can move
//       the spotlight around the scene with the arrow keys.
//          
//////////////////////////////////////////////////////////////////////////////////////////////////

#include "d3dUtility.h"

//
// Globals
//

IDirect3DDevice9*     Device = 0; 

const int Width  = 640;
const int Height = 480;

ID3DXMesh* Objects[4] = {0, 0, 0, 0};
D3DXMATRIX  Worlds[4];
D3DMATERIAL9 Mtrls[4];

D3DLIGHT9 Spot;

//
// Framework Functions
//
bool Setup()
{
	//
	// Create objects.
	//

	D3DXCreateTeapot(Device, &Objects[0], 0);
	D3DXCreateSphere(Device, 1.0f, 20, 20, &Objects[1], 0);
	D3DXCreateTorus(Device, 0.5f, 1.0f, 20, 20, &Objects[2], 0);
	D3DXCreateCylinder(Device, 0.5f, 0.5f, 2.0f, 20, 20, &Objects[3], 0);

	//
	// Build world matrices - position the objects in world space.
	//

	D3DXMatrixTranslation(&Worlds[0],  0.0f,  2.0f, 0.0f);
	D3DXMatrixTranslation(&Worlds[1],  0.0f, -2.0f, 0.0f);
	D3DXMatrixTranslation(&Worlds[2], -3.0f,  0.0f, 0.0f);
	D3DXMatrixTranslation(&Worlds[3],  3.0f,  0.0f, 0.0f);
	D3DXMATRIX Rx;
	D3DXMatrixRotationX(&Rx, D3DX_PI * 0.5f);
	Worlds[3] = Rx * Worlds[3];

	//
	// Setup the object's materials.
	//

	Mtrls[0] = d3d::RED_MTRL;
	Mtrls[1] = d3d::BLUE_MTRL;
	Mtrls[2] = d3d::GREEN_MTRL;
	Mtrls[3] = d3d::YELLOW_MTRL;

	for(int i = 0; i < 4; i++)
		Mtrls[i].Power = 20.0f;

	//
	// Setup a spot light
	//

	D3DXVECTOR3 pos(0.0f, 0.0f, -5.0f);
	D3DXVECTOR3 dir(0.0f, 0.0f,  1.0f);
	D3DXCOLOR   c = d3d::WHITE;
	Spot = d3d::InitSpotLight(&pos, &dir, &c);

	//
	// Set and Enable spotlight.
	//

	Device->SetLight(0, &Spot);
	Device->LightEnable(0, true);

	//
	// Set light related render states.
	//

	Device->SetRenderState(D3DRS_NORMALIZENORMALS, true);
	Device->SetRenderState(D3DRS_SPECULARENABLE, true);

	//
	// Position and aim the camera.
	//
	D3DXVECTOR3 position( 0.0f, 0.0f, -5.0f );
	D3DXVECTOR3 target(0.0f, 0.0f, 0.0f);
	D3DXVECTOR3 up(0.0f, 1.0f, 0.0f);
	D3DXMATRIX V;
	D3DXMatrixLookAtLH(&V, &position, &target, &up);
	Device->SetTransform(D3DTS_VIEW, &V);

	//
	// Set the projection matrix.
	//

	D3DXMATRIX proj;
	D3DXMatrixPerspectiveFovLH(
			&proj,
			D3DX_PI * 0.5f, // 90 - degree
			(float)Width / (float)Height,
			1.0f,
			1000.0f);
	Device->SetTransform(D3DTS_PROJECTION, &proj);

	return true;
}

void Cleanup()
{
	for(int i = 0; i < 4; i++)
		d3d::Release<ID3DXMesh*>(Objects[i]);
}

bool Display(float timeDelta)
{
	if( Device )
	{
		//
		// Move spot light around based on keyboard input
		//

		static float angle = (3.0f * D3DX_PI) / 2.0f;
		
		if( ::GetAsyncKeyState(VK_LEFT) & 0x8000f )
			Spot.Direction.x -= 0.5f * timeDelta;

		if( ::GetAsyncKeyState(VK_RIGHT) & 0x8000f )
			Spot.Direction.x += 0.5f * timeDelta;

		if( ::GetAsyncKeyState(VK_DOWN) & 0x8000f )
			Spot.Direction.y -= 0.5f * timeDelta;

		if( ::GetAsyncKeyState(VK_UP) & 0x8000f )
			Spot.Direction.y += 0.5f * timeDelta;

		// update the light 
		Device->SetLight(0, &Spot);
		Device->LightEnable(0, true);

		//
		// Draw the scene:
		//
		Device->Clear(0, 0, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, 0x00000000, 1.0f, 0);
		Device->BeginScene();

		for(int i = 0; i < 4; i++)
		{
			// set material and world matrix for ith object, then render
			// the ith object.
			Device->SetMaterial(&Mtrls[i]);
			Device->SetTransform(D3DTS_WORLD, &Worlds[i]);
			Objects[i]->DrawSubset(0);
		}

		Device->EndScene();
		Device->Present(0, 0, 0, 0);
	}
	return true;
}


//
// WndProc
//
LRESULT CALLBACK d3d::WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
	switch( msg )
	{
	case WM_DESTROY:
		::PostQuitMessage(0);
		break;
		
	case WM_KEYDOWN:
		if( wParam == VK_ESCAPE )
			::DestroyWindow(hwnd);
		break;
	}
	return ::DefWindowProc(hwnd, msg, wParam, lParam);
}

//
// WinMain
//
int WINAPI WinMain(HINSTANCE hinstance,
				   HINSTANCE prevInstance, 
				   PSTR cmdLine,
				   int showCmd)
{
	if(!d3d::InitD3D(hinstance,
		Width, Height, true, D3DDEVTYPE_HAL, &Device))
	{
		::MessageBox(0, "InitD3D() - FAILED", 0, 0);
		return 0;
	}
		
	if(!Setup())
	{
		::MessageBox(0, "Setup() - FAILED", 0, 0);
		return 0;
	}

	d3d::EnterMsgLoop( Display );

	Cleanup();

	Device->Release();

	return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩国产在线观看一区| 国产中文一区二区三区| 国内一区二区在线| 在线中文字幕不卡| 久久精品一二三| 午夜精品视频在线观看| 99久久伊人久久99| 26uuu另类欧美| 久久99精品久久久久久动态图| 色婷婷激情综合| 中文字幕人成不卡一区| 国产精品18久久久久久久久| 777亚洲妇女| 婷婷开心久久网| 色欧美乱欧美15图片| 国产精品美女久久福利网站| 国精产品一区一区三区mba视频| 91精品国产色综合久久ai换脸 | 国产一区二区三区久久久| 69av一区二区三区| 午夜亚洲国产au精品一区二区| 97久久精品人人爽人人爽蜜臀| 国产欧美精品国产国产专区| 国产在线视频一区二区| 欧美成人欧美edvon| 免费观看成人av| 欧美成人女星排名| 免费观看一级特黄欧美大片| 91精品国产综合久久福利软件| 亚洲444eee在线观看| 欧美日免费三级在线| 一区二区三区在线视频播放| 91丨九色丨蝌蚪富婆spa| 久久久九九九九| 国产乱一区二区| 日本一区二区高清| av在线不卡电影| 亚洲免费av在线| 91福利国产成人精品照片| 亚洲综合免费观看高清完整版在线| 91在线视频在线| 亚洲一区av在线| 欧美高清视频不卡网| 免费日本视频一区| 久久精品免费在线观看| av福利精品导航| 亚洲图片一区二区| 精品免费国产一区二区三区四区| 麻豆精品久久久| 2020国产精品| 91视频com| 五月综合激情婷婷六月色窝| 精品精品国产高清a毛片牛牛| 国产中文一区二区三区| 亚洲天堂久久久久久久| 欧美三片在线视频观看| 国产一区二区三区最好精华液| 国产欧美精品国产国产专区 | 午夜精品久久久久| 日韩精品一区二区三区swag | 亚洲色欲色欲www| 欧美在线free| 久久er精品视频| 亚洲人精品午夜| 欧美一级电影网站| 99国产精品久久久久久久久久| 亚洲一区二区三区爽爽爽爽爽 | 亚洲视频1区2区| 日韩精品一区二区三区视频播放| 不卡的电视剧免费网站有什么| 亚洲精选一二三| 日韩欧美国产小视频| 成人av影院在线| 国产原创一区二区三区| 亚洲一区中文在线| 国产三级欧美三级日产三级99 | 奇米精品一区二区三区四区| 国产精品色哟哟| 日韩一级片网址| 色就色 综合激情| 国产精品91一区二区| 亚洲第一综合色| 国产精品久久久久久久久免费相片 | 亚洲一区二区av电影| 久久精品亚洲精品国产欧美 | 欧美午夜精品久久久| 国产高清不卡一区| 肉肉av福利一精品导航| 亚洲男人的天堂一区二区| 欧美精品一区二区不卡| 777奇米成人网| 色狠狠综合天天综合综合| 成人三级伦理片| 国产一区二区91| 蜜桃精品视频在线| 日韩有码一区二区三区| 亚洲午夜在线电影| 亚洲欧美国产三级| 中文字幕日韩一区| 国产精品毛片大码女人| 久久久久久久久久美女| 日韩精品一区二区三区蜜臀| 91.com视频| 在线成人免费观看| 欧美久久高跟鞋激| 欧美精品在线视频| 欧美日韩国产一级片| 欧美色倩网站大全免费| 欧美日韩国产小视频在线观看| 在线一区二区三区做爰视频网站| a亚洲天堂av| 色先锋资源久久综合| 色视频一区二区| 欧洲精品一区二区| 欧美性videosxxxxx| 欧美性色黄大片| 欧美剧在线免费观看网站| 欧美精品高清视频| 日韩三级高清在线| 久久久99精品免费观看| 欧美激情一区二区三区| 国产精品不卡在线| 亚洲美腿欧美偷拍| 午夜欧美一区二区三区在线播放| 亚洲主播在线观看| 日韩精品乱码免费| 久久99在线观看| 成人免费黄色在线| 9久草视频在线视频精品| 日本高清不卡aⅴ免费网站| 欧美天天综合网| 制服丝袜亚洲网站| 26uuu色噜噜精品一区二区| 国产精品乱码久久久久久| 亚洲精品乱码久久久久| 午夜在线成人av| 国产一区免费电影| 一本大道av伊人久久综合| 欧美精品日韩一区| 久久久美女毛片| 成人欧美一区二区三区视频网页| 亚洲综合在线视频| 久久国产尿小便嘘嘘尿| 成人自拍视频在线观看| 欧美日韩综合在线免费观看| 精品国精品国产| 亚洲在线视频网站| 狠狠色综合色综合网络| 91国产丝袜在线播放| 日韩精品专区在线| 亚洲精品成人a在线观看| 久久99久久99| 欧美在线影院一区二区| 精品国产乱码久久久久久1区2区 | 欧美日韩综合不卡| 国产日韩欧美精品综合| 亚洲一卡二卡三卡四卡无卡久久| 久久99精品久久久久婷婷| 91免费看`日韩一区二区| 欧美一级午夜免费电影| 亚洲视频网在线直播| 国产一区999| 欧美肥妇bbw| 亚洲免费观看高清| 国产精品自在欧美一区| 欧美性受xxxx黑人xyx| 国产精品情趣视频| 久久99久久99小草精品免视看| 精品视频在线免费观看| 国产精品夫妻自拍| 国产在线播放一区| 欧美一级夜夜爽| 午夜欧美视频在线观看| 色婷婷香蕉在线一区二区| 国产精品无码永久免费888| 精品在线一区二区三区| 欧美日韩国产小视频| 亚洲一区二区在线视频| av综合在线播放| 亚洲国产电影在线观看| 国产一区不卡视频| 精品少妇一区二区三区日产乱码 | 在线看日韩精品电影| 国产精品久久久久天堂| 国产很黄免费观看久久| 精品国产一区二区国模嫣然| 日本女人一区二区三区| 欧美日韩国产成人在线免费| 亚洲精品午夜久久久| 91香蕉视频mp4| 亚洲日本护士毛茸茸| 91色在线porny| 最新国产精品久久精品| 不卡av在线网| 亚洲欧洲日韩在线| 99re亚洲国产精品| 国产精品成人网| av电影在线观看一区| 日韩理论电影院| 欧美日韩中文字幕一区二区|