DirectX 开发,显示文字,画面闪烁问题

qq_38322732 2017-07-13 11:20:27
我是VC新手,最近在用VC做DX9的开发,现在问题是这样的,采用sdk中DXUT框架,在 OnFrameRender中绘图,绘图显示的是一个string类型的全局结构变量(通过函数转换为LPCWSTR后用DrawText绘制),该变量由winsock处理并接收,大约每秒60次刷新。
现在的问题是,屏幕显示内容是正确的,但是文字有闪烁,该如何处理?
部分代码如下:
void CALLBACK OnFrameRender( IDirect3DDevice9* pd3dDevice, double fTime, float fElapsedTime, void* pUserContext )
{
if( g_SettingsDlg.IsActive() )
{
g_SettingsDlg.OnRender( fElapsedTime );
return;
}

HRESULT hr;
RECT rc;
D3DMATERIAL9 mtrl;
D3DXMATRIXA16 matWorld;
D3DXMATRIXA16 matView = *g_Camera.GetViewMatrix();
D3DXMATRIXA16 matProj = *g_Camera.GetProjMatrix();
D3DXMATRIXA16 matViewProj = matView * matProj;

pd3dDevice->SetTransform( D3DTS_VIEW, &matView );
pd3dDevice->SetTransform( D3DTS_PROJECTION, &matProj );

// Clear the viewport
pd3dDevice->Clear( 0L, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, 0x00000000, 1.0f, 0L );

// Begin the scene

if( SUCCEEDED( pd3dDevice->BeginScene() ) )
{

//主绘制程序
SetRect(&rc, 5, 5, 0, 0);
g_pFont->DrawText(NULL, ConvertCharToLPWSTR(FD.title.c_str()), -1, &rc, DT_NOCLIP,
D3DCOLOR_XRGB(255,255,255));
SetRect(&rc, 5, 25, 0, 0);
g_pFont->DrawText(NULL, ConvertCharToLPWSTR(FD.kohlsmann.c_str()), -1, &rc, DT_NOCLIP,
D3DCOLOR_XRGB(255, 255, 255));


pd3dDevice->EndScene();

}

}
...全文
361 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_38322732 2017-07-14
  • 打赏
  • 举报
回复
我查看资料说D3D9自带了双缓冲,开启后还是闪烁
brk1985 2017-07-14
  • 打赏
  • 举报
回复
是画在视频上吗?画在视频上、视频更新肯定会带来闪烁的。
zgl7903 2017-07-13
  • 打赏
  • 举报
回复
qq_38322732 2017-07-13
  • 打赏
  • 举报
回复
能告诉我在哪个阶段实现以及例程吗?

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧