游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2106|回复: 5

请问一个Clipper问题

[复制链接]

11

主题

28

帖子

28

积分

注册会员

Rank: 2

积分
28
发表于 2004-3-26 15:32:00 | 显示全部楼层 |阅读模式
我想在缓冲表面(Back Surface)里面设置Clipper,然后再BltFast或者Flip到主表面,为什么会出现花屏?我是窗口模式下的

11

主题

28

帖子

28

积分

注册会员

Rank: 2

积分
28
 楼主| 发表于 2004-3-26 17:20:00 | 显示全部楼层

Re:请问一个Clipper问题

if( FAILED( hr = m_pDD->CreateClipper( 0, &pcClipper, NULL ) ) )
        return E_FAIL;
       
    if( FAILED( hr = pcClipper->SetHWnd( 0, hWnd ) ) )
    {
        pcClipper->Release();
        return E_FAIL;
    }
       
    if( FAILED( hr = m_pddsFrontBuffer->SetClipper( pcClipper ) ) )
    {
        pcClipper->Release();
        return E_FAIL;
    }

        if( FAILED( hr = m_pddsBackBuffer->SetClipper( pcClipper ) ) )
    {
        pcClipper->Release();
        return E_FAIL;
    }

        // Done with clipper
    pcClipper->Release();

//代码如上
//发现blt老是失败,原因不明

30

主题

298

帖子

299

积分

中级会员

Rank: 3Rank: 3

积分
299
QQ
发表于 2004-3-26 18:33:00 | 显示全部楼层

Re:请问一个Clipper问题

既然知道是BLT失败了,检查一下BLT的参数,裁剪器的使用应该没有问题。

2

主题

29

帖子

35

积分

注册会员

Rank: 2

积分
35
发表于 2004-3-27 14:26:00 | 显示全部楼层

Re:请问一个Clipper问题

pcClipper->Release();是不是应该只用一次

2

主题

29

帖子

35

积分

注册会员

Rank: 2

积分
35
发表于 2004-3-27 14:27:00 | 显示全部楼层

Re:请问一个Clipper问题

最后调用pcClipper->Release();

30

主题

298

帖子

299

积分

中级会员

Rank: 3Rank: 3

积分
299
QQ
发表于 2004-3-27 22:08:00 | 显示全部楼层

Re:请问一个Clipper问题

嘿嘿,平时Release()见太多了,都没有注意到-_-b。
你BLT失败的原因是你提前释放了裁剪器
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-5-16 08:37

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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