-
大小: 2.69MB文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2023-09-20
- 語言: C/C++
- 標(biāo)簽:
資源簡介
一個(gè)詳細(xì)的利用VC++和OpenGL開發(fā)的讀取3DS文件并顯示的完整源碼開發(fā)平臺(tái)。且有詳細(xì)的注釋說明。

代碼片段和文件信息
#include?“main.h“
//??從文件中創(chuàng)建紋理
void?CreateTexture(UINT?textureArray[]?LPSTR?strFileName?int?textureID)
{
AUX_RGBImageRec?*pBitmap?=?NULL;
if(!strFileName) //?如果無此文件,則直接返回
return;
pBitmap?=?auxDIBImageLoad(strFileName); //?裝入位圖,并保存數(shù)據(jù)
if(pBitmap?==?NULL) //?如果裝入位圖失敗,則退出
exit(0);
//?生成紋理
glGenTextures(1?&textureArray[textureID]);
//?設(shè)置像素對齊格式
glPixelStorei?(GL_UNPACK_ALIGNMENT?1);
glBindTexture(GL_TEXTURE_2D?textureArray[textureID]);
gluBuild2DMipmaps(GL_TEXTURE_2D?3?pBitmap->sizeX?pBitmap->sizeY?GL_RGB?GL_UNSIGNED_BYTE?pBitmap->data);
glTexParameteri(GL_TEXTURE_2DGL_TEXTURE_MIN_FILTERGL_LINEAR_MIPMAP_NEAREST);
glTexParameteri(GL_TEXTURE_2DGL_TEXTURE_MAG_FILTERGL_LINEAR_MIPMAP_LINEAR);
if?(pBitmap) //?釋放位圖占用的資源
{
if?(pBitmap->data)
{
free(pBitmap->data);
}
free(pBitmap);
}
}
void?ChangeToFullScreen()
{
DEVMODE?dmSettings;
memset(&dmSettings0sizeof(dmSettings));
if(!EnumDisplaySettings(NULLENUM_CURRENT_SETTINGS&dmSettings))
{
MessageBox(NULL?“Could?Not?Enum?Display?Settings“?“Error“?MB_OK);
return;
}
dmSettings.dmPelsWidth =?SCREEN_WIDTH;
dmSettings.dmPelsHeight =?SCREEN_HEIGHT;
int?result?=?ChangeDisplaySettings(&dmSettingsCDS_FULLSCREEN);
if(result?!=?DISP_CHANGE_SUCCESSFUL)
{
MessageBox(NULL?“Display?Mode?Not?Compatible“?“Error“?MB_OK);
PostQuitMessage(0);
}
}
HWND?CreateMyWindow(LPSTR?strWindowName?int?width?int?height?DWORD?dwstyle?bool?bFullScreen?HINSTANCE?hInstance)
{
HWND?hWnd;
WNDCLASS?wndclass;
memset(&wndclass?0?sizeof(WNDCLASS));
wndclass.style?=?CS_HREDRAW?|?CS_VREDRAW;
wndclass.lpfnWndProc?=?WinProc;
wndclass.hInstance?=?hInstance;
wndclass.hIcon?=?LoadIcon(NULL?IDI_APPLICATION);
wndclass.hCursor?=?LoadCursor(NULL?IDC_ARROW);
wndclass.hbrBackground?=?(HBRUSH)?(COLOR_WINDOW+1);
wndclass.lpszClassName?=?“GameTutorials“;
RegisterClass(&wndclass);
if(bFullScreen?&&?!dwstyle)?
{
dwstyle?=?WS_POPUP?|?WS_CLIPSIBLINGS?|?WS_CLIPCHILDREN;
ChangeToFullScreen();
ShowCursor(FALSE);
}
else?if(!dwstyle)
dwstyle?=?WS_OVERLAPPEDWINDOW?|?WS_CLIPSIBLINGS?|?WS_CLIPCHILDREN;
g_hInstance?=?hInstance;
RECT?rWindow;
rWindow.left =?0;
rWindow.right =?width;
rWindow.top ????=?0;
rWindow.bottom =?height;
AdjustWindowRect(?&rWindow?dwstyle?false);
hWnd?=?CreateWindow(“GameTutorials“?strWindowName?dwstyle?0?0
rWindow.right??-?rWindow.left?rWindow.bottom?-?rWindow.top?
NULL?NULL?hInstance?NULL);
if(!hWnd)?return?NULL;
ShowWindow(hWnd?SW_SHOWNORMAL);
UpdateWindow(hWnd);
SetFocus(hWnd);
return?hWnd;
}
bool?bSetupPixelFormat(HDC?hdc)?
{?
????PIXELFORMATDEscriptOR?pfd;?
????int?pixelformat;?
?
????pfd.nSize?=?
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件??????79176??2001-09-10?09:43??3DS?File?Loader\3ds?Format.rtf
?????文件???????4260??2002-11-27?21:33??3DS?File?Loader\3DS?Loader.dsp
?????文件????????545??2001-09-09?02:16??3DS?File?Loader\3DS?Loader.dsw
?????文件??????74752??2011-03-14?15:01??3DS?File?Loader\3DS?Loader.ncb
?????文件??????49664??2011-03-14?15:01??3DS?File?Loader\3DS?Loader.opt
?????文件????????254??2011-03-14?14:56??3DS?File?Loader\3DS?Loader.plg
?????文件??????16628??2002-11-27?20:18??3DS?File?Loader\3DS.CPP
?????文件???????2372??2002-11-27?22:42??3DS?File?Loader\3DS.H
?????文件?????270430??2011-03-11?10:14??3DS?File?Loader\Debug\3DS?Loader.exe
?????文件?????401740??2011-03-11?10:14??3DS?File?Loader\Debug\3DS?Loader.ilk
?????文件????5942408??2011-03-11?10:14??3DS?File?Loader\Debug\3DS?Loader.pch
?????文件?????590848??2011-03-11?10:14??3DS?File?Loader\Debug\3DS?Loader.pdb
?????文件??????67103??2011-03-11?10:14??3DS?File?Loader\Debug\3ds.obj
?????文件??????78873??2001-09-24?21:38??3DS?File?Loader\Debug\FACE.3DS
?????文件?????921656??2001-09-10?08:59??3DS?File?Loader\Debug\FACE.BMP
?????文件??????29460??2011-03-11?10:14??3DS?File?Loader\Debug\Init.obj
?????文件??????44162??2011-03-11?10:14??3DS?File?Loader\Debug\Main.obj
?????文件?????189440??2011-03-14?14:56??3DS?File?Loader\Debug\vc60.idb
?????文件?????159744??2011-03-11?10:14??3DS?File?Loader\Debug\vc60.pdb
?????文件??????78873??2001-09-24?21:38??3DS?File?Loader\FACE.3DS
?????文件?????921656??2001-09-10?08:59??3DS?File?Loader\FACE.BMP
?????文件???????5414??2002-11-27?21:33??3DS?File?Loader\Init.cpp
?????文件???????5173??2002-11-27?21:16??3DS?File?Loader\Main.cpp
?????文件???????2798??2002-11-27?22:43??3DS?File?Loader\MAIN.H
?????目錄??????????0??2011-03-12?19:08??3DS?File?Loader\Debug
?????目錄??????????0??2011-03-14?15:01??3DS?File?Loader
-----------?---------??----------?-----??----
??????????????9937429????????????????????26
評論
共有 條評論