游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2382|回复: 9

关于一个D3D应用的问题

[复制链接]

89

主题

822

帖子

847

积分

高级会员

Rank: 4

积分
847
发表于 2004-10-21 12:55:00 | 显示全部楼层 |阅读模式
DX9 SDK中有一个演示的例子 Tutorial 06: Meshes ,读取一个x文件并显示,该例子本身并没有问题,如果我将Render函数改为如下

VOID Render()
{
     g_pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET|D3DCLEAR_ZBUFFER,
                         D3DCOLOR_XRGB(0,0,255), 1.0f, 0 );
    if( SUCCEEDED( g_pd3dDevice->BeginScene() ) )
    {
        g_pd3dDevice->EndScene();
    }
    g_pd3dDevice-&gtresent( NULL, NULL, NULL, NULL );
}

实际上就是一个空渲染的函数,我发现当切换到其他窗体时,该窗体对应的程序CPU占用率就会大幅提高,甚至到100%,如果切换到该例子本身的窗口,CPU占用率并不高,真是很奇怪,每次切换导VC IDE调试时根本动不了,切换到浏览器时,看不到网页。我把这一切归咎于WinMain函数,不知道如何解决?谁有好的建议?

这是该例子的消息循环部分

MSG msg;
ZeroMemory( &msg, sizeof(msg) );
while( msg.message!=WM_QUIT )
{
      if( PeekMessage( &msg, NULL, 0U, 0U, PM_REMOVE ) )
      {
           TranslateMessage( &msg );
            DispatchMessage( &msg );
       }
       else
            Render();
       }
}

60

主题

1319

帖子

1319

积分

金牌会员

Rank: 6Rank: 6

积分
1319
发表于 2004-10-21 12:57:00 | 显示全部楼层

Re:关于一个D3D应用的问题

处理一下WM_ACTIVEAPP消息

89

主题

822

帖子

847

积分

高级会员

Rank: 4

积分
847
 楼主| 发表于 2004-10-21 13:00:00 | 显示全部楼层

Re:关于一个D3D应用的问题

怎么处理?

60

主题

1319

帖子

1319

积分

金牌会员

Rank: 6Rank: 6

积分
1319
发表于 2004-10-21 13:08:00 | 显示全部楼层

Re:关于一个D3D应用的问题

不好意思,记错了,是WM_ACTIVATE

60

主题

1319

帖子

1319

积分

金牌会员

Rank: 6Rank: 6

积分
1319
发表于 2004-10-21 13:09:00 | 显示全部楼层

Re:关于一个D3D应用的问题

        switch (message)
        {       
                  case WM_ACTIVATE:
                if (wParam == WA_ACTIVE || wParam == WA_CLICKACTIVE)
                {
                        bActive = TRUE;
                }
                else
                {
                        bActive =FALSE;
                }

89

主题

822

帖子

847

积分

高级会员

Rank: 4

积分
847
 楼主| 发表于 2004-10-21 14:25:00 | 显示全部楼层

Re:关于一个D3D应用的问题

不会把,微软难道就没考虑过一个三角形也不渲染的情况?

0

主题

237

帖子

237

积分

中级会员

Rank: 3Rank: 3

积分
237
发表于 2004-10-22 02:05:00 | 显示全部楼层

Re:关于一个D3D应用的问题

我在Win2K中亦有同一情?r, 一丁?也不render便??下???系?, 所以我每次?新project, 最小也??ender些字(FPS值), 便??]有???...

奇怪的M$...

60

主题

1319

帖子

1319

积分

金牌会员

Rank: 6Rank: 6

积分
1319
发表于 2004-10-22 08:56:00 | 显示全部楼层

Re:关于一个D3D应用的问题

唉,做多做少都不对

19

主题

202

帖子

214

积分

中级会员

Rank: 3Rank: 3

积分
214
QQ
发表于 2004-10-22 13:44:00 | 显示全部楼层

Re:关于一个D3D应用的问题

理论上说,楼主描述的情况是不会发生的

而且我尝试了一下楼主的做法,没有任何问题

89

主题

822

帖子

847

积分

高级会员

Rank: 4

积分
847
 楼主| 发表于 2004-10-22 15:22:00 | 显示全部楼层

Re:关于一个D3D应用的问题

呵呵,不光是我一个人发现有问题,很多人都发现了

微软所有的例子都可以试一下,方法很简单,只要把Render函数改为我上面的就行,其他的什么不要做,包括计算什么FPS,显示什么Debug信息全部注释

环境是Windows 2K
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-22 22:48

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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