• 大小: 2.69MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-09-20
  • 语言: C/C++
  • 标签:

资源简介

一个详细的利用VC++和OpenGL开发的读取3DS文件并显示的完整源码开发平台。且有详细的注释说明。

资源截图

代码片段和文件信息


#include “main.h“

//  从文件中创建纹理
void CreateTexture(UINT textureArray[] LPSTR strFileName int textureID)
{
AUX_RGBImageRec *pBitmap = NULL;

if(!strFileName) // 如果无此文件,则直接返回
return;

pBitmap = auxDIBImageLoad(strFileName); // 装入位图,并保存数据

if(pBitmap == NULL) // 如果装入位图失败,则退出
exit(0);

// 生成纹理
glGenTextures(1 &textureArray[textureID]);

// 设置像素对齐格式
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 = 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      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


评论

共有 条评论

相关资源