OpenGL三维图形系统开发与实用技术.实用技术篇(源码)


OpenGL三维图形系统开发与实用技术.实用技术篇(源码)
资源截图
代码片段和文件信息

#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 = 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2012-09-17 15:09  OpenGL三维图形系统开发与实用技术.实用技术篇全
     文件          28  2012-09-17 15:09  OpenGL三维图形系统开发与实用技术.实用技术篇全AUTORUN.INF
     目录           0  2012-09-17 15:09  OpenGL三维图形系统开发与实用技术.实用技术篇全Chapter01
     目录           0  2012-09-17 15:09  OpenGL三维图形系统开发与实用技术.实用技术篇全Chapter013DS File Loader
     文件        4260  2012-09-17 15:09  OpenGL三维图形系统开发与实用技术.实用技术篇全Chapter013DS File Loader3DS Loader.dsp
     文件         545  2012-09-17 15:09  OpenGL三维图形系统开发与实用技术.实用技术篇全Chapter013DS File Loader3DS Loader.dsw
     文件       74752  2012-09-17 15:09  OpenGL三维图形系统开发与实用技术.实用技术篇全Chapter013DS File Loader3DS Loader.ncb
     文件       49664  2012-09-17 15:09  OpenGL三维图形系统开发与实用技术.实用技术篇全Chapter013DS File Loader3DS Loader.opt
     文件        1482  2012-09-17 15:09  OpenGL三维图形系统开发与实用技术.实用技术篇全Chapter013DS File Loader3DS Loader.plg
     文件       16628  2012-09-17 15:09  OpenGL三维图形系统开发与实用技术.实用技术篇全Chapter013DS File Loader3DS.CPP
     文件        2372  2012-09-17 15:09  OpenGL三维图形系统开发与实用技术.实用技术篇全Chapter013DS File Loader3DS.H
     文件       79176  2012-09-17 15:09  OpenGL三维图形系统开发与实用技术.实用技术篇全Chapter013DS File Loader3ds Format.rtf
     目录           0  2012-09-17 15:09  OpenGL三维图形系统开发与实用技术.实用技术篇全Chapter013DS File LoaderDebug
     文件      254073  2012-09-17 15:09  OpenGL三维图形系统开发与实用技术.实用技术篇全Chapter013DS File LoaderDebug3DS Loader.exe
     文件     5922284  2012-09-17 15:09  OpenGL三维图形系统开发与实用技术.实用技术篇全Chapter013DS File LoaderDebug3DS Loader.pch
     文件       66935  2012-09-17 15:09  OpenGL三维图形系统开发与实用技术.实用技术篇全Chapter013DS File LoaderDebug3ds.obj
     文件       78873  2012-09-17 15:09  OpenGL三维图形系统开发与实用技术.实用技术篇全Chapter013DS File LoaderDebugFACE.3DS
     文件      921656  2012-09-17 15:09  OpenGL三维图形系统开发与实用技术.实用技术篇全Chapter013DS File LoaderDebugFACE.BMP
     文件       29418  2012-09-17 15:09  OpenGL三维图形系统开发与实用技术.实用技术篇全Chapter013DS File LoaderDebugInit.obj
     文件       44120  2012-09-17 15:09  OpenGL三维图形系统开发与实用技术.实用技术篇全Chapter013DS File LoaderDebugMain.obj
     文件      197632  2012-09-17 15:09  OpenGL三维图形系统开发与实用技术.实用技术篇全Chapter013DS File LoaderDebugvc60.idb
     文件      159744  2012-09-17 15:09  OpenGL三维图形系统开发与实用技术.实用技术篇全Chapter013DS File LoaderDebugvc60.pdb
     文件       78873  2012-09-17 15:09  OpenGL三维图形系统开发与实用技术.实用技术篇全Chapter013DS File LoaderFACE.3DS
     文件      921656  2012-09-17 15:09  OpenGL三维图形系统开发与实用技术.实用技术篇全Chapter013DS File LoaderFACE.BMP
     文件        5414  2012-09-17 15:09  OpenGL三维图形系统开发与实用技术.实用技术篇全Chapter013DS File LoaderInit.cpp
     文件        2798  2012-09-17 15:09  OpenGL三维图形系统开发与实用技术.实用技术篇全Chapter013DS File LoaderMAIN.H
     文件        5173  2012-09-17 15:09  OpenGL三维图形系统开发与实用技术.实用技术篇全Chapter013DS File LoaderMain.cpp
     目录           0  2012-09-17 15:09  OpenGL三维图形系统开发与实用技术.实用技术篇全Chapter013DSglLoader
     文件        2375  2012-09-17 15:09  OpenGL三维图形系统开发与实用技术.实用技术篇全Chapter013DSglLoader3DSglLoader.clw
     文件        4327  2012-09-17 15:09  OpenGL三维图形系统开发与实用技术.实用技术篇全Chapter013DSglLoader3DSglLoader.cpp
     文件        4660  2012-09-17 15:09  OpenGL三维图形系统开发与实用技术.实用技术篇全Chapter013DSglLoader3DSglLoader.dsp
............此处省略744个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)