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

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

?? new3dsloader.cpp

?? 多個(gè)3ds載入例子運(yùn)行的時(shí)候有些慢候有些慢候有些慢
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
				break;
		}
		break;

    case WM_CLOSE:										// If the window is being closed
        PostQuitMessage(0);								// Send a QUIT Message to the window
        break; 
   
    default:											// Return by default
        lRet = DefWindowProc (hWnd, uMsg, wParam, lParam); 
        break; 
    } 
 
    return lRet;										// Return by default
}
// 關(guān)于對話框消息處理函數(shù)
LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
	switch (message)
	{
		case WM_INITDIALOG:
				return TRUE;

		case WM_COMMAND:
			if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) 
			{
				EndDialog(hDlg, LOWORD(wParam));
				return TRUE;
			}
			break;
	}
    return FALSE;
}
//主循環(huán)
WPARAM MainLoop()
{
	MSG msg;

	while(1)											// Do our infinate loop
	{													// Check if there was a message
		if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) 
        { 
			if(msg.message == WM_QUIT)					// If the message wasnt to quit
				break;
            TranslateMessage(&msg);						// Find out what the message does
            DispatchMessage(&msg);						// Execute the message
        }
		else											// if there wasn't a message
		{ 
			UpdateScene();
			RenderScene();								// Update the screen	
        } 
	}

	DeInit();											// Clean up and free all allocated memory
	return(msg.wParam);									// Return from the program
}
///////////////////////////////// INIT GAME WINDOW \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*
/////
/////	初始化函數(shù)
/////
///////////////////////////////// INIT GAME WINDOW \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*
void Init(HWND hWnd)
{
	GLfloat glDarkColor[] = { 0.1f, 0.1f, 0.1f, 1.0f };

	GLfloat glfLightAmbient[] = { 0.2f, 0.2f, 0.2f, 1.0f };
    GLfloat glfLightDiffuse[] = { 0.7f, 0.7f, 0.7f, 1.0f };
    GLfloat glfLightSpecular[] = { 0.5f, 0.5f, 0.5f, 1.0f };

	GLfloat glfLingtPosition1[] = { -200.0f, 200.0f, 100.0f, 1.0f };
	GLfloat glfLingtPosition2[] = { 100.0f, 200.0f, 100.0f, 1.0f };
	GLfloat glfLingtPosition3[] = { 10.0f, -100.0f, -100.0f, 1.0f };

    
	g_hWnd = hWnd;										// Assign the window handle to a global window handle
	GetClientRect(g_hWnd, &g_rRect);					// Assign the windows rectangle to a global RECT
	InitializeOpenGL(g_rRect.right, g_rRect.bottom);	// Init OpenGL with the global rect

	//讀取3個(gè)模型
	g_3dsModel[0].LoadModelFromFile("ground.3ds");
	g_3dsModel[1].LoadModelFromFile("cheku.3ds");
	g_3dsModel[2].LoadModelFromFile("chanche.3ds");

	g_3dsModel[3].LoadModelFromFile("tpole.3ds");
	g_3dsModel[3].AlignBottom();

	PlayTheSound();

	glLightfv (GL_LIGHT0, GL_AMBIENT, glfLightAmbient);
    glLightfv (GL_LIGHT0, GL_DIFFUSE, glfLightSpecular);
    glLightfv (GL_LIGHT0, GL_SPECULAR, glDarkColor);
	glLightfv (GL_LIGHT0, GL_POSITION, glfLingtPosition1);

	glLightfv (GL_LIGHT1, GL_AMBIENT, glDarkColor);
    glLightfv (GL_LIGHT1, GL_DIFFUSE, glfLightSpecular);
    glLightfv (GL_LIGHT1, GL_SPECULAR, glfLightAmbient);
	glLightfv (GL_LIGHT1, GL_POSITION, glfLingtPosition2);

	glLightfv (GL_LIGHT2, GL_AMBIENT, glDarkColor);
    glLightfv (GL_LIGHT2, GL_DIFFUSE, glfLightAmbient);
    glLightfv (GL_LIGHT2, GL_SPECULAR, glfLightAmbient);
	glLightfv (GL_LIGHT2, GL_POSITION, glfLingtPosition3);

	glEnable(GL_LIGHT0);								// Turn on a light with defaults set
	glEnable(GL_LIGHT1);
	glEnable(GL_LIGHT2);
	glEnable(GL_LIGHTING);	
}

//初始化OpenGL
void InitializeOpenGL(int width, int height) 
{  
    g_hDC = GetDC(g_hWnd);								// This sets our global HDC
														// We don't free this hdc until the end of our program
    if (!bSetupPixelFormat(g_hDC))						// This sets our pixel format/information
        PostQuitMessage (0);							// If there's an error, quit

    g_hRC = wglCreateContext(g_hDC);					// This creates a rendering context from our hdc
    wglMakeCurrent(g_hDC, g_hRC);						// This makes the rendering context we just created the one we want to use

	glEnable(GL_TEXTURE_2D);							// Enables Texture Mapping
	glEnable(GL_DEPTH_TEST);							// Enables Depth Testing

	SizeOpenGLScreen(width, height);					// Setup the screen translations and viewport
}

//改變窗口大小
void SizeOpenGLScreen(int width, int height)			// Initialize The GL Window
{
	if (height==0)										// Prevent A Divide By Zero error
	{
		height=1;										// Make the Height Equal One
	}

	glViewport(0,0,width,height);						// Make our viewport the whole window
														// We could make the view smaller inside
														// Our window if we wanted too.
														// The glViewport takes (x, y, width, height)
														// This basically means, what our our drawing boundries

	glMatrixMode(GL_PROJECTION);						// Select The Projection Matrix
	glLoadIdentity();									// Reset The Projection Matrix

														// Calculate The Aspect Ratio Of The Window
														// The parameters are:
														// (view angle, aspect ration of the width to the height, 
														//  The closest distance to the camera before it clips, 
				  // FOV		// Ratio				//  The farthest distance before it stops drawing)
	gluPerspective(45.0f,(GLfloat)width/(GLfloat)height, 1.0f ,800.0f);

	glMatrixMode(GL_MODELVIEW);							// Select The Modelview Matrix
	glLoadIdentity();									// Reset The Modelview Matrix
}
//結(jié)束處理
void DeInit()
{

	sndPlaySound(NULL,SND_MEMORY|SND_ASYNC|SND_NODEFAULT|SND_LOOP);

	if (g_hRC)											
	{
		wglMakeCurrent(NULL, NULL);						// This frees our rendering memory and sets everything back to normal
		wglDeleteContext(g_hRC);						// Delete our OpenGL Rendering Context	
	}
	
	if (g_hDC) 
		ReleaseDC(g_hWnd, g_hDC);						// Release our HDC from memory
		
	if(g_bFullScreen)									// If we were in full screen
	{
		ChangeDisplaySettings(NULL,0);					// If So Switch Back To The Desktop
		ShowCursor(TRUE);								// Show Mouse Pointer
	}
	UnregisterClass("bvrain", g_hInstance);		// Free the window class
	PostQuitMessage (0);								// Post a QUIT message to the window
}
//設(shè)置燈光(位置)
void SetLight()
{
	static GLfloat glfLingtPosition1[] = { -200.0f, 200.0f, 100.0f, 1.0f };
	static GLfloat glfLingtPosition2[] = { 100.0f, 200.0f, 100.0f, 1.0f };
	static GLfloat glfLingtPosition3[] = { 10.0f, -100.0f, -100.0f, 1.0f };

	glLightfv (GL_LIGHT0, GL_POSITION, glfLingtPosition1);
	glLightfv (GL_LIGHT1, GL_POSITION, glfLingtPosition2);
	glLightfv (GL_LIGHT2, GL_POSITION, glfLingtPosition3);
}
//更新場景
void UpdateScene()
{
	static DWORD elapsedTime   = 0;
	static DWORD lastTime	  = 0;
	static float froyang      =0;

	DWORD time = GetTickCount();

	elapsedTime = time - lastTime;

	if (elapsedTime >=40) //40 毫秒
	{
		if(g_bRotating)	
		{
			g_fRotateAngle+=float(PI/360);
			if(g_fRotateAngle>=2*PI)g_fRotateAngle=0.0f;
			g_fEyeX=30*sinf(g_fRotateAngle);
			g_fEyeZ=30*cosf(g_fRotateAngle);			
		}

		//鏟車顫動
		froyang+=float(PI/2);
		if(froyang>=2*PI)froyang=0.0f;
		g_fChanCheOffy=0.01f*sinf(froyang);

		lastTime = time;
	}
}

//繪制場景
void RenderScene() 
{
	

	glClearColor(0.8f,0.8f,1.0f,1);
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);	// Clear The Screen And The Depth Buffer
	glLoadIdentity();									// Reset The matrix
	gluLookAt(g_fEyeX,g_fEyeY,g_fEyeZ,0,0,0,0,1,0);
	
	SetLight();	

	//地面
	g_3dsModel[0].Draw();
	//車庫
	g_3dsModel[1].Draw();
	//鏟車
	glPushMatrix();
	glTranslatef(-10,1.3f+g_fChanCheOffy,0);
	glScalef(0.025f,0.025f,0.025f);
	g_3dsModel[2].Draw();
	glPopMatrix();
	//電線桿
	glTranslatef(-10,0,18);
	g_3dsModel[3].Draw();
	glTranslatef(20,0,0);
	g_3dsModel[3].Draw();
	
	SwapBuffers(g_hDC);									// Swap the backbuffers to the foreground
}
//播放引擎聲(沒有用DirectSound)
void PlayTheSound()
{
	HRSRC hRes; // resource handle to wave file
	HGLOBAL hData;
	BOOL bOk = FALSE;
	HMODULE hModule=NULL;
	
	hRes = ::FindResource(g_hInstance,_T("MOTOR"),_T("WAVE"));
	if (hRes != NULL &&	(hData = ::LoadResource(g_hInstance, hRes)) != NULL)
	{
		// found the resource, play it
		bOk = sndPlaySound((LPCTSTR)::LockResource(hData),
			SND_MEMORY|SND_ASYNC|SND_NODEFAULT|SND_LOOP);
		FreeResource(hData);
	}
	if (!bOk)
	{
		//_T("Unable to play sound!");
	}
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一二在线观看| 亚洲欧美在线视频| 天天综合日日夜夜精品| 欧美日韩国产一二三| 亚洲超丰满肉感bbw| 欧美日韩精品一区二区三区四区| 亚洲欧美成人一区二区三区| 日本韩国欧美国产| 婷婷久久综合九色国产成人| 欧美一区二区福利在线| 久久成人av少妇免费| 欧美xxxxx牲另类人与| 成人国产亚洲欧美成人综合网| 国产精品丝袜91| 色欧美乱欧美15图片| 视频一区欧美日韩| 久久精品欧美一区二区三区麻豆 | 国产精品美女久久久久久久久 | 亚洲1区2区3区视频| 欧美成人三级电影在线| 97精品国产97久久久久久久久久久久| 亚洲男人都懂的| 久久亚洲一级片| 91精彩视频在线| 成人h动漫精品一区二区| 午夜精品久久久久久久99水蜜桃| 久久久久久一级片| 欧美精品第1页| 欧美影片第一页| 人人狠狠综合久久亚洲| 国产精品不卡在线观看| 精品福利av导航| 正在播放一区二区| 欧美视频一区二| 99久久久无码国产精品| 国产精品18久久久久| 五月天亚洲精品| 亚洲午夜视频在线| 亚洲色图另类专区| 最新不卡av在线| 国产精品久久久久永久免费观看| 精品国产凹凸成av人导航| 在线精品视频免费观看| 91小视频在线| 色综合久久综合网欧美综合网| 成人午夜激情在线| 国产一区二区中文字幕| 国内欧美视频一区二区| 久久99久久99小草精品免视看| 日韩福利视频网| 看片的网站亚洲| 国产精品一线二线三线精华| 国产一区不卡视频| 北条麻妃国产九九精品视频| 91在线视频网址| 99精品热视频| 欧美日韩一二三| 久久综合av免费| 中文字幕亚洲视频| 偷拍一区二区三区| 国产精品 日产精品 欧美精品| 成人av电影在线网| 欧美日韩一区成人| 久久久电影一区二区三区| 中文字幕免费不卡在线| 亚洲福利一区二区| 高清国产一区二区| 欧美精品色一区二区三区| 欧美一级片免费看| 日韩一区有码在线| 青青草97国产精品免费观看无弹窗版 | 99精品热视频| 日韩精品影音先锋| 亚洲欧美日韩精品久久久久| 国内久久精品视频| 91精品免费在线| 亚洲一区二区三区小说| 99国产精品99久久久久久| 久久久噜噜噜久久人人看 | caoporm超碰国产精品| 精品成a人在线观看| 久草热8精品视频在线观看| 在线播放亚洲一区| 久久精工是国产品牌吗| 欧美日本在线播放| 久久精品国产99国产精品| 日韩精品一区二区三区蜜臀| 另类欧美日韩国产在线| 欧美成人精品3d动漫h| 久久激情综合网| 国产精品免费视频一区| www.66久久| 日韩成人一级大片| 99re视频精品| 在线播放中文字幕一区| 亚洲免费观看高清完整| 本田岬高潮一区二区三区| 国产精品免费丝袜| 一本久道久久综合中文字幕| 国产精品久久三区| 欧美无人高清视频在线观看| 亚洲精品成人天堂一二三| 欧美午夜精品免费| 日韩在线一区二区| 欧美精品一区二区高清在线观看| 激情深爱一区二区| 国产日韩欧美电影| 在线亚洲人成电影网站色www| 亚洲精品中文在线观看| 国产精品三级av| 欧美日韩在线免费视频| 久久91精品久久久久久秒播| 欧美国产禁国产网站cc| 欧美日韩三级视频| 欧美日韩精品欧美日韩精品| 久久精品免费观看| 一区二区三区精品在线观看| 日韩免费观看高清完整版 | 蜜臂av日日欢夜夜爽一区| 国产亚洲欧洲997久久综合| 欧美日韩国产精品成人| 国产成人免费高清| 日本不卡免费在线视频| 国产精品国产精品国产专区不片| 欧美日本一道本| 99re热视频这里只精品| 日产欧产美韩系列久久99| 一区二区三区国产精华| 久久免费视频色| 精品日韩欧美在线| 欧美一区二区三区的| 色8久久精品久久久久久蜜| 丁香六月久久综合狠狠色| 麻豆传媒一区二区三区| 亚洲精品日日夜夜| 国产精品国产自产拍高清av| 26uuu精品一区二区在线观看| 7777精品伊人久久久大香线蕉最新版| av欧美精品.com| 国产suv精品一区二区883| 国产综合色在线| 久久国产日韩欧美精品| 日韩成人一级大片| 免费高清视频精品| 国产福利视频一区二区三区| 国产一区二区三区久久久| 国模冰冰炮一区二区| 国产成人啪午夜精品网站男同| 国内精品免费在线观看| 国产麻豆精品一区二区| 国产精品中文字幕日韩精品| 国产精品香蕉一区二区三区| 成人免费av网站| 91蜜桃婷婷狠狠久久综合9色| 91电影在线观看| 欧美精品久久99久久在免费线| 欧美一区二区三区在线| 日韩一区二区三区av| 精品久久久久av影院| 国产欧美精品区一区二区三区 | 午夜视频在线观看一区| 国内精品国产成人国产三级粉色| 日韩国产欧美在线观看| 激情综合五月天| 色欧美片视频在线观看在线视频| 欧美三级日本三级少妇99| 久久麻豆一区二区| 亚洲一级不卡视频| 丰满放荡岳乱妇91ww| 在线观看视频欧美| 国产日韩亚洲欧美综合| 日韩va亚洲va欧美va久久| 成人伦理片在线| 精品少妇一区二区三区免费观看 | 国产一区二三区| 欧美日韩大陆一区二区| 国产精品久久久久影院老司| 日本亚洲电影天堂| 欧美日韩在线三级| 亚洲男人的天堂在线观看| 成人午夜激情在线| 久久综合av免费| 久久99久久久久久久久久久| 欧美日韩日日摸| 亚洲国产综合91精品麻豆| av不卡在线播放| 国产精品美女一区二区三区| 不卡一二三区首页| 久久精品人人做人人综合| 狠狠色狠狠色综合系列| 精品乱人伦小说| 狠狠色丁香九九婷婷综合五月| 日韩女优制服丝袜电影| 精品制服美女丁香| 久久久久国产精品人| 国产69精品久久久久毛片| 国产精品久久久久影院色老大 | 欧美三级欧美一级| 天天综合日日夜夜精品| 精品国产免费久久|