游戏开发论坛

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

DX8丢失页面怎么恢复???

[复制链接]

25

主题

179

帖子

179

积分

注册会员

Rank: 2

积分
179
发表于 2004-8-19 11:42:00 | 显示全部楼层 |阅读模式
DX8丢失页面怎么恢复???
各位大侠出手吧 [em20] [em21] [em19] [em20] [em21]

140

主题

1228

帖子

1233

积分

金牌会员

Rank: 6Rank: 6

积分
1233
QQ
发表于 2004-8-19 15:04:00 | 显示全部楼层

Re:DX8丢失页面怎么恢复???

lights 14:40:30
这样啊!那是啊!!因为你基础不扎实哦!你大概就没阅读ddraw的sdk文档吧!
天魂 14:40:42
DirectX8的!
lights 14:40:58
是协作级别 和 内存占用冲突的关系!
天魂 14:41:13
DX7的我会!
lights 14:41:47
一样的原理,一样的解决办法!
天魂 14:41:57
具体写写,行吗?
lights 14:43:39
就是当windowstate属性变化的时候进行处理!最小化的时候停止一切作图操作!而且要容错!恢复的时候,重新初始化!
天魂 14:44:50
    If D3DDevice.TestCooperativeLevel <> 0 Then
        D3DDevice.Reset D3DPP
    End If
天魂 14:45:14
是这个语句吗?
lights 14:45:53
这仅仅是在初始化时检测能否正常设置协作级
天魂 14:46:55
DDraw.RestoreAllSurfaces
lights 14:47:14
form1.windowstate属性可以返回窗口状态!
form1.windowchange之类吧!我忘了,是事件!在那个属性变化时产生
天魂 14:47:09
这是DX7的恢复方法
天魂 14:47:43
'==================回恢丢失页面========================
'用于全屏模式,必须写在循环中
Sub RestoreDraw()
    If DDraw.TestCooperativeLevel <> 0 Then
        Do
            If DDraw.TestCooperativeLevel = 0 Then
                DDraw.RestoreAllSurfaces
                Exit Do
            End If
            DoEvents
        Loop
    End If
End Sub
lights 14:48:09
i 服了 you ,你说的那个只能重建surface,就是内存!不能恢复丢失的设备id
天魂 14:47:57
我在DX7下这样写的
天魂 14:48:26
怎么做?
lights 14:49:43
在form1.windowchange事件里加入判断,如果最小化就停止作图!且 on error resume next
天魂 14:50:11
最大化后图像还在吗?
我试试这个方法
lights 14:51:18
恐怕不在!所以在恢复后要重新初始化!
lights 14:52:11
init的简化版
你会写个init的部分吧!现在写个简化的部分,重新初始化就用它!
天魂 14:51:56

DX7中用“DDraw.RestoreAllSurfaces”就搞定了,DX8中没有这样的方法吗?

lights 14:52:47
似乎有的!可我直接跳过dx8在搞dx9了,帮不上你!呵呵!

25

主题

179

帖子

179

积分

注册会员

Rank: 2

积分
179
 楼主| 发表于 2004-8-29 10:51:00 | 显示全部楼层

Re:DX8丢失页面怎么恢复???

这个问题,有人知道吗?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-8-17 17:07

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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