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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? litpyramid.cpp

?? Introduction to directx9 3d game programming 一書的源代碼
?? CPP
字號:
//////////////////////////////////////////////////////////////////////////////////////////////////
// 
// File: litPyramid.cpp
// 
// Author: Frank Luna (C) All Rights Reserved
//
// System: AMD Athlon 1800+ XP, 512 DDR, Geforce 3, Windows XP, MSVC++ 7.0 
//
// Desc: Renders a lit pyramid.  Demonstrates how to specify the vertex 
//       normals, how to create and set a material, and how to create
//       and set a directional light.
//          
//////////////////////////////////////////////////////////////////////////////////////////////////

#include "d3dUtility.h"

//
// Globals
//

IDirect3DDevice9* Device = 0; 

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

IDirect3DVertexBuffer9* Pyramid = 0;

//
// Classes and Structures
//
struct Vertex
{
	Vertex(){}

	Vertex(float x, float y, float z, float nx, float ny, float nz)
	{
		_x  = x;  _y  = y;	_z  = z;
		_nx = nx; _ny = ny; _nz = nz;
	}
	float  _x,  _y,  _z;
	float _nx, _ny, _nz;

	static const DWORD FVF;
};
const DWORD Vertex::FVF = D3DFVF_XYZ | D3DFVF_NORMAL;

//
// Framework Functions
//
bool Setup()
{
	//
	// Turn on lighting.
	//
	Device->SetRenderState(D3DRS_LIGHTING, true);

	//
	// Create the vertex buffer for the pyramid.
	//

	Device->CreateVertexBuffer(
		12 * sizeof(Vertex), 
		D3DUSAGE_WRITEONLY,
		Vertex::FVF,
		D3DPOOL_MANAGED,
		&Pyramid,
		0);

	//
	// Fill the vertex buffer with pyramid data.
	//

	Vertex* v;
	Pyramid->Lock(0, 0, (void**)&v, 0);

	// front face
	v[0] = Vertex(-1.0f, 0.0f, -1.0f, 0.0f, 0.707f, -0.707f);
	v[1] = Vertex( 0.0f, 1.0f,  0.0f, 0.0f, 0.707f, -0.707f);
	v[2] = Vertex( 1.0f, 0.0f, -1.0f, 0.0f, 0.707f, -0.707f);

	// left face
	v[3] = Vertex(-1.0f, 0.0f,  1.0f, -0.707f, 0.707f, 0.0f);
	v[4] = Vertex( 0.0f, 1.0f,  0.0f, -0.707f, 0.707f, 0.0f);
	v[5] = Vertex(-1.0f, 0.0f, -1.0f, -0.707f, 0.707f, 0.0f);

	// right face
	v[6] = Vertex( 1.0f, 0.0f, -1.0f, 0.707f, 0.707f, 0.0f);
	v[7] = Vertex( 0.0f, 1.0f,  0.0f, 0.707f, 0.707f, 0.0f);
	v[8] = Vertex( 1.0f, 0.0f,  1.0f, 0.707f, 0.707f, 0.0f);

	// back face
	v[9]  = Vertex( 1.0f, 0.0f,  1.0f, 0.0f, 0.707f, 0.707f);
	v[10] = Vertex( 0.0f, 1.0f,  0.0f, 0.0f, 0.707f, 0.707f);
	v[11] = Vertex(-1.0f, 0.0f,  1.0f, 0.0f, 0.707f, 0.707f);

	Pyramid->Unlock();

	//
	// Create and set the material.
	//

	D3DMATERIAL9 mtrl;
	mtrl.Ambient  = d3d::WHITE;
	mtrl.Diffuse  = d3d::WHITE;
	mtrl.Specular = d3d::WHITE;
	mtrl.Emissive = d3d::BLACK;
	mtrl.Power    = 5.0f;

	Device->SetMaterial(&mtrl);

	//
	// Setup a directional light.
	//

	D3DLIGHT9 dir;
	::ZeroMemory(&dir, sizeof(dir));
	dir.Type      = D3DLIGHT_DIRECTIONAL;
	dir.Diffuse   = d3d::WHITE;
	dir.Specular  = d3d::WHITE * 0.3f;
	dir.Ambient   = d3d::WHITE * 0.6f;
	dir.Direction = D3DXVECTOR3(1.0f, 0.0f, 0.0f);

	//
	// Set and Enable the light.
	//

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

	//
	// Turn on specular lighting and instruct Direct3D
	// to renormalize normals.
	//

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

	//
	// Position and aim the camera.
	//

	D3DXVECTOR3 pos(0.0f, 1.0f, -3.0f);
	D3DXVECTOR3 target(0.0f, 0.0f, 0.0f);
	D3DXVECTOR3 up(0.0f, 1.0f, 0.0f);
	D3DXMATRIX V;
	D3DXMatrixLookAtLH(&V, &pos, &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()
{
	d3d::Release<IDirect3DVertexBuffer9*>(Pyramid);
}

bool Display(float timeDelta)
{
	if( Device )
	{
		// 
		// Update the scene: Rotate the pyramid.
		//

		D3DXMATRIX yRot;

		static float y = 0.0f;

		D3DXMatrixRotationY(&yRot, y);
		y += timeDelta;

		if( y >= 6.28f )
			y = 0.0f;

		Device->SetTransform(D3DTS_WORLD, &yRot);

		//
		// Draw the scene:
		//

		Device->Clear(0, 0, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, 0x00000000, 1.0f, 0);
		Device->BeginScene();

		Device->SetStreamSource(0, Pyramid, 0, sizeof(Vertex));
		Device->SetFVF(Vertex::FVF);
		Device->DrawPrimitive(D3DPT_TRIANGLELIST, 0, 4);

		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;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲大型综合色站| 国产精品成人午夜| 亚洲激情校园春色| www.亚洲国产| 久久精品人人爽人人爽| 精品无码三级在线观看视频| 成人av影视在线观看| 精品国偷自产国产一区| 麻豆91小视频| 日韩视频永久免费| 午夜视频一区在线观看| 欧美日韩国产综合一区二区 | 风间由美一区二区av101| 欧美va亚洲va在线观看蝴蝶网| 日韩av电影免费观看高清完整版| 欧美高清视频一二三区| 日韩精品视频网站| 欧美一激情一区二区三区| 日韩福利电影在线| 精品福利一区二区三区| 久久99久久久欧美国产| 精品久久久久久久久久久久久久久| 另类小说一区二区三区| 久久综合网色—综合色88| 国产成人精品免费在线| 自拍偷拍国产亚洲| 色偷偷久久一区二区三区| 亚洲一区二区美女| 欧美一区二区视频在线观看2022 | 91视频观看视频| 一区二区三区鲁丝不卡| 日韩午夜在线影院| 成人国产精品免费观看动漫| 亚洲精品成人少妇| 欧美一卡在线观看| 国产99精品在线观看| 亚洲精品视频在线看| 欧美一区二区三区精品| 国产精品99久久久久久久女警 | 日韩三级精品电影久久久 | 亚洲高清免费视频| 精品国产sm最大网站免费看| 成人黄色777网| 午夜精品成人在线| 国产丝袜欧美中文另类| 欧美专区在线观看一区| 国产一本一道久久香蕉| 一区二区三区在线观看国产| 26uuu色噜噜精品一区二区| 一本到不卡免费一区二区| 久久66热re国产| 亚洲乱码精品一二三四区日韩在线 | 欧美精彩视频一区二区三区| 在线影院国内精品| 国产精品一二三在| 亚洲国产美女搞黄色| 欧美一区二区三区色| 99免费精品在线观看| 九九国产精品视频| 亚洲一卡二卡三卡四卡无卡久久| 欧美精品一区二区在线观看| 91高清视频在线| 狠狠色狠狠色综合| 亚洲一级在线观看| 国产精品蜜臀av| 日韩你懂的电影在线观看| 色94色欧美sute亚洲13| 国产成人免费视| 免费视频最近日韩| 亚洲一区二区三区四区在线观看 | 日韩综合小视频| 亚洲女性喷水在线观看一区| 精品福利在线导航| 欧美精品久久久久久久多人混战| 99久久婷婷国产综合精品电影| 国产一区在线看| 日韩黄色免费电影| 亚洲线精品一区二区三区| 国产精品初高中害羞小美女文| 26uuu国产电影一区二区| 6080日韩午夜伦伦午夜伦| 欧美三日本三级三级在线播放| 99re热这里只有精品视频| 成人激情电影免费在线观看| 国产成人免费高清| 欧美tickle裸体挠脚心vk| 欧美精品免费视频| 欧美日韩亚洲综合| 在线观看区一区二| 国产一区激情在线| 亚洲一区二区3| 亚洲综合成人在线视频| 亚洲免费视频成人| 一区二区三区自拍| 亚洲成人精品一区| 亚洲国产你懂的| 亚洲私人黄色宅男| 亚洲女同ⅹxx女同tv| 一区二区三区中文在线| 亚洲中国最大av网站| 亚洲另类春色校园小说| 亚洲精品成人a在线观看| 一区二区三区免费看视频| 一区二区三区四区在线| 亚洲五码中文字幕| 日韩精品电影在线| 精品在线观看免费| 国产精品一区二区在线观看不卡 | 亚洲激情第一区| 亚洲综合网站在线观看| 亚洲国产精品自拍| 免费美女久久99| 精品一区二区三区蜜桃| 国产jizzjizz一区二区| 99热精品一区二区| 欧美日韩国产免费一区二区| 在线观看亚洲一区| 91久久线看在观草草青青| 精品视频在线看| 日韩免费看的电影| 国产欧美精品一区| 中文字幕欧美三区| 亚洲成av人在线观看| 精品一区二区三区免费视频| 成人精品一区二区三区四区| 色综合久久久久久久久久久| 欧美日韩电影在线播放| 久久午夜国产精品| 一区二区三区四区高清精品免费观看 | 97精品国产露脸对白| 欧美日韩国产123区| 精品剧情在线观看| 中文一区一区三区高中清不卡| 亚洲欧美一区二区三区极速播放 | 五月激情六月综合| 国产麻豆日韩欧美久久| 91麻豆精品在线观看| 欧美一级国产精品| 中文字幕日韩av资源站| 日韩福利电影在线观看| av激情亚洲男人天堂| 7777精品久久久大香线蕉| 国产精品久久久久久久浪潮网站 | 免费看精品久久片| 99久久综合色| 精品粉嫩aⅴ一区二区三区四区| 亚洲男人的天堂在线aⅴ视频 | 国产一区91精品张津瑜| 欧美天堂亚洲电影院在线播放| 久久久久久亚洲综合| 亚洲成人黄色影院| 成人毛片在线观看| 精品国产一区二区在线观看| 一区二区三区在线免费观看| 国内精品国产成人国产三级粉色| 91一区在线观看| 欧美电影免费观看高清完整版在线观看 | 亚洲免费观看在线视频| 国产高清久久久久| 日韩女优av电影| 午夜激情综合网| 色悠久久久久综合欧美99| 精品裸体舞一区二区三区| 天天综合网 天天综合色| 99久久综合色| 国产精品久久久久久久久免费丝袜| 久久国产视频网| 欧美一级搡bbbb搡bbbb| 美女视频一区二区| 日韩欧美在线不卡| 激情五月播播久久久精品| 精品久久久久久无| 国产在线播放一区二区三区| 久久久蜜桃精品| 成人三级伦理片| 亚洲欧美日韩国产一区二区三区| 在线日韩av片| 日韩成人伦理电影在线观看| 日韩欧美一区在线观看| 极品少妇xxxx偷拍精品少妇| 久久综合国产精品| 高清不卡一区二区| 自拍偷在线精品自拍偷无码专区| 在线观看网站黄不卡| 天天综合日日夜夜精品| 精品久久久影院| 成人性视频网站| 亚洲激情av在线| 欧美一级黄色录像| 国产成人免费9x9x人网站视频| 中文字幕日韩av资源站| 欧美日韩国产首页在线观看| 免费日本视频一区| 国产精品视频看| 欧美四级电影网| 国产主播一区二区| 一区二区免费视频| 精品国产一区二区三区忘忧草 | 亚洲欧美日韩在线不卡| 制服丝袜av成人在线看|