(难)如何在DirectX画面中显示文字,并且不闪烁 ( 积分: 200 )

  • 主题发起人 主题发起人 crwbak
  • 开始时间 开始时间
C

crwbak

Unregistered / Unconfirmed
GUEST, unregistred user!
如题,我寻找了很多方法来实现,可惜效果都不理想。理想效果可以参照ATI Tray TOOLS 和 Fraps,它们都可以在DirectX全屏独占模式下实时显示帧数,而且不闪烁[:(]
我想可能是Hook DirectX里的Flip函数,但我只会Hook普通的API函数,而DirectX是基于Com接口的,期待高手解答……
 
看看 dspack中的几个DEMO
 
to porsche,
很高兴您的建议,dspack的几个DEMO我看过了,但都是在自己建立DirectX程序的基础上。
也可能我没发现,可以指明哪个DEMO吗?
 
只能Hook Direct3D得到表面来实现.
 
to 白河愁,
关键是如何得到表面呢?我正在试着Hook DirectX的函数,还没成功
 
那就是关乎你的反汇编和coding能力了。
 
[:D]我是新手,虽然正在努力,但新手必竟是新手,白大哥可否提供现成代码[8D]
偶再加送100分
 
用DelphiX,里面有几个例程,都支持双缓冲,不闪烁的,我用过很多了.不过遗憾的是DelphiX很久未更新了
 
首先要确定你是在自己建的DirectX上画文字,还是在现有游戏上.
如果是现有游戏上,那估计是要d3d hook
如果是自己上,用CreateFont创建字体,然后用绘制就可以了,不过效率的确不是太高,但不至于会闪烁.如果字不是太灵活,太多.建议做成图片.
 
至于有人说的DSPACK,那东西感觉BUG有点多,不敢用还是自己用COM也不是太难,封装个Filter然后在Filter里面用D3D也不是不可以.
 
to billwillman,
我是要在现有的DirectX程序上画文字[:(]
 
不好意思,说错了,应该是
Directx8/All_DirectDraw/DirectDraw/WindowedMode/*.*
 
后退
顶部