游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1561|回复: 2

我看看这个D3D源码有没有错误

[复制链接]

12

主题

29

帖子

29

积分

注册会员

Rank: 2

积分
29
发表于 2006-1-27 16:19:00 | 显示全部楼层 |阅读模式
#include <d3d8.h>

#pragma comment(lib,"d3d8.lib")

LPDIRECT3D8 pD3D = NULL;
LPDIRECT3DDEVICE8 pD3DDevice = NULL;

HRESULT Init3D(HWND hWnd)
{
    pD3D = Direct3DCreate8(D3D_SDK_VERSION);
    if(pD3D == NULL)
    {
        return E_FAIL;
    }
    D3DDISPLAYMODE d3ddm;
    if(FAILED(pD3D->GetAdapterDisplayMode(D3DADAPTER_DEFAULT,&d3ddm)
    {
        return E_FAIL;
    }
    D3DPRESENT_PARAMETERS d3dpp;
    ZeroMemory(&d3dpp,sizeof(d3dpp));
    d3dpp.Windowed = TRUE;
    d3dpp.SwapEffect = D3DSWAPEFFECT_COPY_VSYNC;
    d3dpp.BackBufferFormat = d3ddm.Format;
    if(FAILED(pD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,
       D3DCREATE_SOFTWARE_VERTEXPROCESSING, &d3dpp, &g_pD3DDevice)))
    {
        return E_FAIL;
    }

    return S_OK;
}

void Render()
{
    if(pD3DDevice == NULL)
    {
        return;
    }
    pD3DDevice->Clear(0,NULL,D3DCLEAR_TARGET,D3DCOLOR_XRGB(60,60,60),1.0f,0);
    pD3DDevice->BeginScene();
    pD3DDevice->EndScene();
    pD3DDevice-&gtresent(NULL,NULL,NUL,NULL);
}
void CleanUp()
{
    if(pD3DDevice !=NULL)
    {
        pD3DDevice->Release();
        pD3DDevice = NULL;
    }
}


void GameLoop()
{
        //Enter the game loop
    MSG msg;
    BOOL fMessage;

        PeekMessage(&msg, NULL, 0U, 0U, PM_NOREMOVE);
       
        while(msg.message != WM_QUIT)
        {
                fMessage = PeekMessage(&msg, NULL, 0U, 0U, PM_REMOVE);

                if(fMessage)
                {
                        //Process message
                        TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
                else
                {
                        //No message to process, so render the current scene
                        Render();
                }

        }
}

//The windows message handler
LRESULT WINAPI WinProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
    switch(msg)
    {
        case WM_DESTROY:
            PostQuitMessage(0);
            return 0;
                break;
                case WM_KEYUP:
            switch (wParam)
                        {
                case VK_ESCAPE:
                                        //User has pressed the escape key, so quit
                        DestroyWindow(hWnd);
                                        return 0;
                        break;
            }
        break;

    }

    return DefWindowProc(hWnd, msg, wParam, lParam);
}

1

主题

7

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2006-1-28 17:09:00 | 显示全部楼层

Re:我看看这个D3D源码有没有错误

没有啊~

22

主题

191

帖子

217

积分

中级会员

Rank: 3Rank: 3

积分
217
QQ
发表于 2006-1-30 16:33:00 | 显示全部楼层

Re:我看看这个D3D源码有没有错误

有什么问题,说清楚点
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-23 09:19

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表