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

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

?? new3dsloader.cpp

?? 多個3ds載入例子運行的時候有些慢候有些慢候有些慢
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
// New3DSLoader.cpp : Defines the entry point for the application.
//

#if !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)
#define AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#define WIN32_LEAN_AND_MEAN		// Exclude rarely-used stuff from Windows headers


// Windows Header Files:
#include <windows.h>

// C RunTime Header Files
#include <stdlib.h>
#include <malloc.h>
#include <memory.h>
#include <tchar.h>



#define SCREEN_WIDTH 800								// We want our screen width 800 pixels
#define SCREEN_HEIGHT 600								// We want our screen height 600 pixels
#define SCREEN_DEPTH 16									// We want 16 bits per pixel


// Local Header Files

#include <gl\gl.h>										// Header File For The OpenGL32 Library
#include <gl\glu.h>										// Header File For The GLu32 Library
#include <gl\glaux.h>
#include <mmsystem.h>
//程序路徑
extern char g_sAppPath[512];
//素材路徑
extern char g_sMediaPath[512];
//紋理ID
extern UINT g_Texture[100];

//函數(shù)聲明
void CreateTexture(UINT textureArray[], LPSTR strFileName, int textureID);
void GetFilePath(char * filename);

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)
#include <math.h>
#include "resource.h"

#pragma comment(lib, "opengl32.lib")
#pragma comment(lib, "glu32.lib")
#pragma comment(lib, "glaux.lib")

#include "3dsModel.h"


#define SCREEN_WIDTH 800								// We want our screen width 800 pixels
#define SCREEN_HEIGHT 600								// We want our screen height 600 pixels
#define SCREEN_DEPTH 16									// We want 16 bits per pixel

//程序路徑
char g_sAppPath[512];
//模型路徑
char g_sMediaPath[512];
//紋理號表(100個)
UINT g_Texture[100] = {0};						// This holds the texture info, referenced by an ID

//全局參數(shù)
bool  g_bFullScreen = true;	
UINT g_ViewMode;							// Set full screen as default
BOOL g_bLighting=FALSE;
HWND  g_hWnd;											// This is the handle for the window
RECT  g_rRect;											// This holds the window dimensions
HDC   g_hDC;											// General HDC - (handle to device context)
HGLRC g_hRC;											// General OpenGL_DC - Our Rendering Context for OpenGL
HINSTANCE g_hInstance;									// This holds the global hInstance for UnregisterClass() in DeInit()

float g_fEyeX=0;
float g_fEyeZ=0;
float g_fEyeY=5;
float g_fRotateAngle=3.14f;
//鏟車
float g_fChanCheOffy=0;
//旋轉(zhuǎn)標(biāo)志
BOOL  g_bRotating=TRUE;

//4個模型
C3DSModel g_3dsModel[4];


//
ATOM				MyRegisterClass(HINSTANCE hInstance);
LRESULT CALLBACK	WndProc(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK	About(HWND, UINT, WPARAM, LPARAM);
HWND CreateMyWindow(LPSTR strWindowName, int width, int height, DWORD dwStyle, bool bFullScreen, HINSTANCE hInstance);
void ChangeToFullScreen();
WPARAM MainLoop();

void InitializeOpenGL(int width, int height);
void SizeOpenGLScreen(int width, int height);
bool bSetupPixelFormat(HDC hdc);

void Init(HWND hWnd);
void DeInit();

void RenderScene();
void UpdateScene();
void PlayTheSound();

//設(shè)置燈光(位置)
void SetLight();

int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
	HWND hWnd;
	//應(yīng)用程序路徑
	GetModuleFileName(hInstance,g_sAppPath,512);
	GetFilePath (g_sAppPath);
	//素材路徑
	strcpy(g_sMediaPath,g_sAppPath);
	strcat(g_sMediaPath,"models\\");
	//是否使用全屏幕模式
	if(MessageBox(NULL, "是否使用全屏幕模式?", "窗口選擇", MB_YESNO | MB_ICONQUESTION) == IDNO)
		g_bFullScreen = false;
	//生成窗口
	hWnd = CreateMyWindow("www.bvrain.com", SCREEN_WIDTH, SCREEN_HEIGHT, 0, g_bFullScreen, hInstance);
	// 如果沒有成功,退出
	if(hWnd == NULL) return true;
	// 初始化OPENGL
	Init(hWnd);													
	// 主循環(huán)
	return MainLoop();
}
//生成窗口
HWND CreateMyWindow(LPSTR strWindowName, int width, int height, DWORD dwStyle, bool bFullScreen, HINSTANCE hInstance)
{
	HWND hWnd;
	// 注冊窗口類
	MyRegisterClass(hInstance);
	//全屏幕判斷
	if(bFullScreen && !dwStyle) 						// Check if we wanted full screen mode
	{													// Set the window properties for full screen mode
		dwStyle = WS_POPUP | WS_CLIPSIBLINGS | WS_CLIPCHILDREN;
		ChangeToFullScreen();							// Go to full screen
		//ShowCursor(FALSE);								// Hide the cursor
	}
	else if(!dwStyle)									// Assign styles to the window depending on the choice
		dwStyle = WS_OVERLAPPEDWINDOW | WS_CLIPSIBLINGS | WS_CLIPCHILDREN;
	
	g_hInstance = hInstance;							// Assign our global hInstance to the window's hInstance

	RECT rWindow;
	if(bFullScreen)
	{
		rWindow.left	= 0;
		rWindow.right	= width;						// Set Right Value To Requested Width
		rWindow.top	    = 0;
		rWindow.bottom	= height;
	}
	else
	{
		rWindow.left	= (GetSystemMetrics(SM_CXSCREEN)-width)/2;	// Set Left Value To 0
		rWindow.right	= rWindow.left+width;						// Set Right Value To Requested Width
		rWindow.top	    = (GetSystemMetrics(SM_CYSCREEN)-height)/2;	// Set Top Value To 0
		rWindow.bottom	= rWindow.top+height;						// Set Bottom Value To Requested Height
	}
	AdjustWindowRect( &rWindow, dwStyle, false);		// Adjust Window To True Requested Size

														// Create the window
	hWnd = CreateWindow("bvrain", strWindowName, dwStyle, rWindow.left, rWindow.top,
						width, height, 
						NULL, NULL, hInstance, NULL);

	if(!hWnd) return NULL;								// If we could get a handle, return NULL

	ShowWindow(hWnd, SW_SHOWNORMAL);					// Show the window
	UpdateWindow(hWnd);									// Draw the window

	SetFocus(hWnd);										// Sets Keyboard Focus To The Window	

	return hWnd;
}

//注冊窗口類
ATOM MyRegisterClass(HINSTANCE hInstance)
{
	WNDCLASSEX wcex;

	wcex.cbSize = sizeof(WNDCLASSEX); 

	wcex.style			= CS_HREDRAW | CS_VREDRAW;
	wcex.lpfnWndProc	= (WNDPROC)WndProc;
	wcex.cbClsExtra		= 0;
	wcex.cbWndExtra		= 0;
	wcex.hInstance		= hInstance;
	wcex.hIcon			= LoadIcon(hInstance, (LPCTSTR)IDI_NEW3DSLOADER);
	wcex.hCursor		= LoadCursor(NULL, IDC_ARROW);
	wcex.hbrBackground	= (HBRUSH)(COLOR_WINDOW+1);
	wcex.lpszMenuName	= (LPCSTR)IDC_NEW3DSLOADER;
	wcex.lpszClassName	= "bvrain";
	wcex.hIconSm		= LoadIcon(wcex.hInstance, (LPCTSTR)IDI_SMALL);

	return RegisterClassEx(&wcex);
}
//窗口消息處理函數(shù)
LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	int wmId, wmEvent;
    LONG    lRet = 0; 
    PAINTSTRUCT    ps;

	switch (uMsg) 
	{
		case WM_COMMAND:
			wmId    = LOWORD(wParam); 
			wmEvent = HIWORD(wParam); 
			// Parse the menu selections:
			switch (wmId)
			{
				case IDM_ABOUT:
				   DialogBox(g_hInstance, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About);
				   break;
				case IDM_EXIT:
				    PostQuitMessage(0);	
				   break;
				default:
				   return DefWindowProc(hWnd, uMsg, wParam, lParam);
			}
			break;
    case WM_SIZE:										// If the window is resized
		if(!g_bFullScreen)								// Do this only if we are NOT in full screen
		{
			SizeOpenGLScreen(LOWORD(lParam),HIWORD(lParam));// LoWord=Width, HiWord=Height
			GetClientRect(hWnd, &g_rRect);				// Get the window rectangle
		}
        break; 
 
	case WM_PAINT:										// If we need to repaint the scene
		BeginPaint(hWnd, &ps);							// Init the paint struct		
		EndPaint(hWnd, &ps);							// EndPaint, Clean up
		break;

	case WM_LBUTTONDOWN:								// If the left mouse button was clicked
		g_bRotating=!g_bRotating;		
		break;

	case WM_RBUTTONDOWN:								// If the right mouse button was clicked.
		
		g_bLighting = !g_bLighting;						// Turn lighting ON/OFF

		if(g_bLighting) {								// If lighting is ON
			glEnable(GL_LIGHTING);						// Enable OpenGL lighting
		} else {
			glDisable(GL_LIGHTING);						// Disable OpenGL lighting
		}
		break;

	case WM_KEYDOWN:									// If we pressed a key

		switch(wParam) {								// Check if we hit a key
			case VK_ESCAPE:								// If we hit the escape key
				PostQuitMessage(0);						// Send a QUIT message to the window

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91一区一区三区| 亚洲蜜臀av乱码久久精品蜜桃| 午夜欧美大尺度福利影院在线看| 成人午夜电影小说| 欧美激情一区二区三区不卡 | 在线不卡中文字幕播放| 亚洲日本一区二区| 91玉足脚交白嫩脚丫在线播放| 欧美日韩日日骚| 亚洲伊人色欲综合网| jlzzjlzz亚洲日本少妇| 亚洲精品中文在线观看| 欧美在线制服丝袜| 亚瑟在线精品视频| 欧美va亚洲va国产综合| 美女在线观看视频一区二区| 欧美一区二区三区在线观看视频| 亚洲午夜激情av| 日韩一区二区三区高清免费看看| 免费在线观看精品| 日韩欧美精品在线| 免费欧美在线视频| 日韩精品一区二区三区中文不卡 | 51精品视频一区二区三区| 欧美aaaaaa午夜精品| 中文字幕第一页久久| 99久久婷婷国产综合精品| 亚洲综合视频网| 欧美一区二区三区在线看| 成人性生交大片免费看视频在线 | 亚洲色图清纯唯美| 日韩精品一区二区三区视频| 成人激情视频网站| 精品一区二区三区视频在线观看 | 国产91丝袜在线18| 天使萌一区二区三区免费观看| 欧美日韩国产综合久久| 一本大道av伊人久久综合| 麻豆免费精品视频| 亚洲 欧美综合在线网络| 亚洲视频 欧洲视频| 久久久高清一区二区三区| 欧美日韩国产a| 日本乱人伦一区| av综合在线播放| 成人丝袜高跟foot| 国产亚洲女人久久久久毛片| 欧美顶级少妇做爰| 欧美日韩国产欧美日美国产精品| 成人午夜av在线| 成人福利在线看| 成人精品一区二区三区四区| 国产在线精品视频| 国产夫妻精品视频| 97精品久久久午夜一区二区三区 | 欧美天堂一区二区三区| 欧美午夜在线观看| 欧美午夜精品理论片a级按摩| 色哟哟一区二区三区| 91麻豆免费观看| 在线观看国产一区二区| 欧美三级乱人伦电影| 欧美图区在线视频| 欧美亚洲国产一区二区三区va| 色噜噜狠狠色综合欧洲selulu| 91在线观看美女| 555夜色666亚洲国产免| 精品国产精品网麻豆系列| 久久五月婷婷丁香社区| 亚洲另类中文字| 秋霞电影一区二区| 成人福利视频网站| 91麻豆精品国产91久久久久久久久| 日韩欧美在线网站| 亚洲黄色av一区| 极品尤物av久久免费看| 91麻豆swag| 久久久久久9999| 一个色综合av| 国产精品亚洲人在线观看| 丁香婷婷综合激情五月色| av一区二区久久| 日韩理论片在线| 91福利精品第一导航| 亚洲第一狼人社区| 国产日韩欧美精品电影三级在线| 天堂在线亚洲视频| 精品国产一区二区三区不卡| 精品亚洲国内自在自线福利| 久久久www免费人成精品| 成人黄动漫网站免费app| 亚洲女人小视频在线观看| 在线观看一区二区视频| 久久综合综合久久综合| 精品国产91乱码一区二区三区 | 蓝色福利精品导航| 欧美一区二区三区视频免费播放| 久久久三级国产网站| 狠狠久久亚洲欧美| 亚洲精品一区二区在线观看| 蜜桃视频免费观看一区| 日韩一区二区在线看| 奇米色777欧美一区二区| 欧美一二三区在线观看| 日本不卡免费在线视频| 精品久久国产97色综合| 粉嫩13p一区二区三区| 亚洲天堂福利av| 欧美精品在线一区二区三区| 日本不卡1234视频| 中文字幕精品三区| 91福利社在线观看| 国内精品不卡在线| 亚洲另类中文字| 欧美一级黄色大片| 91亚洲男人天堂| 美洲天堂一区二卡三卡四卡视频| 日本一区二区在线不卡| 欧美中文字幕一二三区视频| 久久精品国产99国产| 亚洲三级免费电影| 欧美电影免费观看高清完整版| 成人看片黄a免费看在线| 一区二区三区欧美亚洲| 精品久久人人做人人爱| 色婷婷久久99综合精品jk白丝| 视频精品一区二区| 自拍偷在线精品自拍偷无码专区| 日韩欧美在线网站| 欧美人妇做爰xxxⅹ性高电影| 精品一区二区三区影院在线午夜| 亚洲综合免费观看高清完整版| 欧美成人欧美edvon| 欧美精品一二三区| 成人激情图片网| 国产精品正在播放| 国产综合色在线| 久久精品国产亚洲高清剧情介绍| 亚洲国产精品尤物yw在线观看| 中文字幕一区在线观看| 国产精品人人做人人爽人人添| 日韩三级在线观看| 日韩亚洲国产中文字幕欧美| 色8久久精品久久久久久蜜| 色呦呦日韩精品| 在线观看不卡一区| 欧美精品精品一区| 91麻豆精品国产自产在线| 777xxx欧美| 欧美sm美女调教| 国产精品色一区二区三区| 国产偷v国产偷v亚洲高清| 国产精品久久久久一区| 欧美国产日韩在线观看| 1024成人网色www| 一区二区三区中文字幕精品精品| 一区二区成人在线视频 | 欧美成人三级在线| 欧美国产一区二区在线观看| 亚洲人成影院在线观看| 亚洲成人你懂的| 韩国欧美国产一区| 99国内精品久久| 欧美在线观看一区| 精品三级av在线| 中文字幕在线免费不卡| 日本少妇一区二区| 国产91清纯白嫩初高中在线观看| 色天天综合久久久久综合片| 宅男在线国产精品| 亚洲日本丝袜连裤袜办公室| 麻豆精品国产91久久久久久| 成人免费高清视频| 欧美一区二区三区成人| 国产精品视频在线看| 日韩福利电影在线| 91小视频在线免费看| 精品国产污污免费网站入口 | 国内精品国产成人| 欧美精品精品一区| 亚洲综合丁香婷婷六月香| 久久99精品国产麻豆不卡| 成人动漫一区二区在线| 欧美一区二区福利在线| 亚洲午夜久久久久久久久电影网| 丰满亚洲少妇av| 日韩精品中午字幕| 免费成人在线网站| 欧美日韩视频第一区| 亚洲综合激情网| 一本久道中文字幕精品亚洲嫩| 中文字幕乱码久久午夜不卡| 国产在线日韩欧美| 日韩美女主播在线视频一区二区三区| 亚洲宅男天堂在线观看无病毒 | 国产一区福利在线| 精品99999| 成人精品视频.| 成人欧美一区二区三区在线播放| 99久久99久久精品免费观看|