NeHe 课程笔记01

声明:
    这里只是对NeHe教程阅读的一点笔记,如果你还没看过NeHe的课程。那么我建议你还是先上GameDev去看看,我在这里并不打算过多的引用其中内容,但是偶尔会有些交合。只是为了给自己一个更清晰的思路。


1. 按键数组
bool    keys[256];

2. 消息处理:
LRESULT CALLBACK      WndProc(HWND,UNIT,WPARAM,LPARAM);

WM_ACTIVATE:         HIWORD(wParam)=0,程序最小化
WM_SYSCOMMAND:       wParam=SC_SCREENSAVE(屏保),SC_MONITORPOWER(节电)
WM_CLOSE:            PostQuitMessage();
WM_KEYDOWN:          keys[wParam] = true;
WM_KEYUP:            keys[wParam] = false;
WM_SIZE:             ReSizeGLScene(LOWORD(lParam),HIWORD(lParam));

DefWindowProc();        // 系统默认的消息处理方式

3. 改变窗口大小:
void    ReSizeGLScene(GLsizei, GLsizei);

4. 初始化OGL:
int     InitGL();

阴影平滑、颜色、深度、透视修正等其他

5. 绘制场景:
int     DrawGLScene();

6. 销毁窗口:

退出全屏、删除RC、释放DC、销毁窗口、注销窗口类

7. 创建窗口:

注册窗口类:     RegisterClass();
全屏设置:       ChangeDisplaySettings();
窗口风格:
WS_EX_APPWINDOW    WS_POPUP;
WS_EXAPPWINDOW|WS_EX_WINDOWEDGE    WS_OVERLAPPEDWINDOW;
调整窗口大小:  AdjustWindowRectEx();
创建窗口: CreateWindowEx();

获取DC、设置像素格式、创建RC、激活RC

显示窗口、提高窗口优先级、获取焦点、重置GL场景

初始化OGL

8. int WINAPI WinMain():

创建窗口

主循环

    检查存在消息PeekMessage(&msg,NULL,0,0,PM_REMOVE)

        WM_QUIT: done = true;

        TranslateMessage();
        DispatchMessage();

    没有消息
        
        程序激活
            
            keys[VK_ESCAPE]: done = true;

            DrawGLScene();
            SwapBuffers();

        keys[VK_F1]

            keys[VK_F1] = false;
            KillGLWindow();
            fullscreen != fullscreen;
            CreateGLWindow();

KillGLWindow();
return(msg.wParam);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值