DXUT 添加对话框背景

DXUT 添加对话框背景

 

第一步

 

在DXUTgui.cpp中添加

 

struct DXUT_SCREEN_VERTEX_TEXTURE

{

   float x, y, z, r;

   unsigned long color;

   float tu, tv;

 

   static DWORD FVF;

};

DWORD                  DXUT_SCREEN_VERTEX_TEXTURE::FVF = D3DFVF_XYZRHW  | D3DFVF_DIFFUSE | D3DFVF_TEX1;

 

第二步

 

在DXUTgui.cpp中修改CDXUTDialog::OnRender9( floatfElapsedTime )函数

 

找到pd3dDevice->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_SELECTARG2 );把它注释掉或删掉

 

将 if(!m_bMinimized && bBackgroundIsVisible )

 

    {

 

        内容替换为

 

         DXUT_SCREEN_VERTEX_TEXTURE vertices[] =

           {

                { ( float )m_x,  ( float )m_y, 0,1, m_colorTopLeft, 0, 0},

                { ( float )m_x+m_width,  ( float )m_y, 0,1, m_colorTopRight, 1, 0},

                { ( float )m_x+m_width,  ( float )m_y+m_height, 0,1,m_colorBottomRight, 1, 1},

 

                { ( float )m_x,  ( float )m_y, 0, 1,m_colorTopLeft, 0, 0},

                { ( float )m_x+ ( float)m_width, ( float )m_y+ ( float )m_height, 0,1, m_colorBottomRight, 1, 1},

                { ( float )m_x,  ( float )m_y+ ( float )m_height, 0,1,m_colorBottomLeft, 0, 1}

           };

 

       pd3dDevice->SetVertexShader( NULL );

       pd3dDevice->SetPixelShader( NULL );

 

       pd3dDevice->SetRenderState( D3DRS_ZENABLE, FALSE );

 

       if(m_iTexture !=-1)

           pd3dDevice->SetTexture( 0,m_pManager->GetTextureNode(m_iTexture)->pTexture9 );

       pd3dDevice->SetFVF( DXUT_SCREEN_VERTEX_TEXTURE::FVF );

       pd3dDevice->DrawPrimitiveUP( D3DPT_TRIANGLEFAN, 4, vertices, sizeof(DXUT_SCREEN_VERTEX_TEXTURE ) );

 

    }

 

第三步

 

在DXUTgui.h中找到CDXUTDialog类的声明

 

添加成员变量

 

int m_iTexture; 并在构造函数中初始化为-1

 

添加成员函数声明

 

void SetBackgroundTextures(const wchar_t*wch);

 

在DXUTgui.cpp中添加函数实现

 

voidCDXUTDialog::SetBackgroundTextures(const wchar_t* wch)

{

   m_iTexture = m_pManager-> AddTexture(wch);

}

 

第四步

 

在SimpleSample.cpp的OnD3D9ResetDevice()中添加

 

g_HUD.SetBackgroundColors( D3DCOLOR_ARGB(255, 98, 138, 206 ),

       D3DCOLOR_ARGB( 255, 255, 255, 255 ),

       D3DCOLOR_ARGB( 255, 255, 255, 255 ),

       D3DCOLOR_ARGB( 255, 255, 255, 255 ) );//材质背景颜色

   g_HUD.SetSize( 170, 170 );

g_HUD.SetBackgroundTextures(L"bcgr1.jpg");添加对话框背景图片

当对话框填充窗口时, 就是为窗口背景


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值