游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1313|回复: 1

问个后台缓冲到前台的问题

[复制链接]

7

主题

12

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2007-11-23 10:35:00 | 显示全部楼层 |阅读模式
我读一段代码:
        if( g_bFullScreen )
                hr = g_pddsFrontBuffer->Flip( NULL, DDFLIP_WAIT );
        else
        {
                hr = g_pddsFrontBuffer->Blt( &g_rcWindow, g_pddsBackBuffer,
                                NULL, DDBLT_WAIT, NULL );
        }
我想问的是为什么全屏模式用Flip,而窗口模式用Blt呢?
这个问题太低级,不过我没买到DirectX入门的书,因为大部分入门的书不怎样,希望高手指点一二
还想问的是帖子怎么结呢?我发了几个帖子,得到热心人的帮助,想给他们分,结果找半天不知道在哪里结贴

86

主题

2251

帖子

2384

积分

金牌会员

Rank: 6Rank: 6

积分
2384
QQ
发表于 2007-11-23 10:46:00 | 显示全部楼层

Re:问个后台缓冲到前台的问题

屏幕的内容其实就是一大块内存数据,改动了这些数据,屏幕立刻有变化。用filp时,就是内存中有两套屏幕数据,告诉系统显示其中之一的数据,filp实际上是把数据的指针轮流交付给系统的过程。
但是窗口模式下,需要更新的只是一小块矩形,这一小块的数据和整个屏幕的数据是一体的,所以就不能用filp了,只能用blit更改屏幕数据
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-17 22:59

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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