游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2406|回复: 7

请教:我设计的全屏程序为什么运行时那么卡?

[复制链接]

3

主题

5

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2008-9-20 16:32:00 | 显示全部楼层 |阅读模式
我是一个新手,大家帮帮忙,谢谢!这个全屏程序为什么运行时那么卡?下面是程序全屏的主要部分:

WNDCLASSEX wcex;
...
CreateWindow(..., WS_EX_TOPMOST | WS_POPUP | WS_VISIBLE, ...);
...

LPDIRECT3D9 pD3D = NULL;
LPDIRECT3DDEVICE9 pd3dDevice = NULL;

if(NULL==(pD3D = Direct3DCreate9(D3D_SDK_VERSION) ) )
                return false;

         D3DPRESENT_PARAMETERS d3dpp;
         ZeroMemory(&d3dpp, sizeof(d3dpp));                       
         d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
         d3dpp.BackBufferWidth = GetSystemMetrics(SM_CXSCREEN);
         d3dpp.BackBufferHeight = GetSystemMetrics(SM_CYSCREEN);
         d3dpp.BackBufferCount = 1;
         d3dpp.hDeviceWindow = hwnd;         
        d3dpp.Windowed = false;
        d3dpp.BackBufferFormat = D3DFMT_X8R8G8B8;



         if(FAILED(pD3D -> CreateDevice(D3DADAPTER_DEFAULT,
                                D3DDEVTYPE_HAL,
                                hwnd,
                                D3DCREATE_HARDWARE_VERTEXPROCESSING,
                                &d3dpp,
                                &pd3dDevice)))
             pd3dDevice -> Clear(0,
                        NULL,
                        D3DCLEAR_TARGET,
                        D3DCOLOR_XRGB(0,255,0),
                        1.0f,
                        0);
        pd3dDevice -> Present(NULL, NULL, NULL, NULL);
               

201

主题

1437

帖子

1963

积分

金牌会员

Rank: 6Rank: 6

积分
1963
QQ
发表于 2008-9-20 20:42:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

3

主题

5

帖子

5

积分

新手上路

Rank: 1

积分
5
 楼主| 发表于 2008-9-20 21:05:00 | 显示全部楼层

Re:请教:我设计的全屏程序为什么运行时那么卡?

主循环在这,谢谢
MSG msg;
        ZeroMemory(&msg, sizeof(msg));

        while(msg.message!=WM_QUIT)
        {
                if( PeekMessage(&msg, NULL, 0, 0, PM_REMOVE) )
                {
                        TranslateMessage(&msg);
                        DispatchMessage(&msg);
                }
                else render();
        }

18

主题

971

帖子

982

积分

高级会员

Rank: 4

积分
982
发表于 2008-9-22 18:54:00 | 显示全部楼层

Re:请教:我设计的全屏程序为什么运行时那么卡?

楼主新手?创建设备和慢有什么关系?
那几句循环和慢有关系?

17

主题

282

帖子

436

积分

中级会员

Rank: 3Rank: 3

积分
436
发表于 2008-9-23 13:44:00 | 显示全部楼层

Re:请教:我设计的全屏程序为什么运行时那么卡?

render()的内容在哪里?

12

主题

128

帖子

128

积分

注册会员

Rank: 2

积分
128
发表于 2008-9-23 14:57:00 | 显示全部楼层

Re:请教:我设计的全屏程序为什么运行时那么卡?

这代码是你写的么......
你的主要部分在哪里?

1

主题

15

帖子

15

积分

新手上路

Rank: 1

积分
15
发表于 2008-9-24 07:40:00 | 显示全部楼层

Re:请教:我设计的全屏程序为什么运行时那么卡?

填写D3DPRESENT_PARAMETERS结构时,提交方式要显式填写立即提交.D3DPRESENT_INTERVAL_IMMEDIATE

3

主题

5

帖子

5

积分

新手上路

Rank: 1

积分
5
 楼主| 发表于 2008-9-26 15:20:00 | 显示全部楼层

Re:请教:我设计的全屏程序为什么运行时那么卡?

谢谢7楼的朋友。确实快了很多。
其实render()是把Clear()和Present()放在一起的一个函数,当时发上去为了把主要部分贴上去,所以就合并起来。呵呵,不好意思啊!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-21 05:59

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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