2011-07-29 68 views
0

我正在DX11游戏中绘制纹理。奇怪的是纹理从不出现在全屏模式下。为什么我的纹理无法在全屏模式下显示DX11游戏

我列出了我的状态设置以供参考。

BOOL BlendEnable[] = {TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE}; 
UINT8 RenderTargetWriteMask[] = {0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF}; 

D3D11_BLEND_DESC bs11 = {0}; 
bs11.AlphaToCoverageEnable = 0; 
bs11.IndependentBlendEnable = false; 

for(size_t i = sizeof(BlendEnable)/sizeof(BlendEnable[0]); i--;) 
{ 
    bs11.RenderTarget[i].BlendEnable = BlendEnable[i]; 
    bs11.RenderTarget[i].RenderTargetWriteMask = RenderTargetWriteMask[i]; 
} 

bs11.RenderTarget[0].BlendOp = D3D10_DDI_BLEND_OP_ADD; 
bs11.RenderTarget[0].BlendOpAlpha = D3D10_DDI_BLEND_OP_ADD; 
bs11.RenderTarget[0].DestBlend = D3D10_DDI_BLEND_INV_SRC_ALPHA; 
bs11.RenderTarget[0].DestBlendAlpha = D3D10_DDI_BLEND_ZERO; 
bs11.RenderTarget[0].SrcBlend = D3D10_DDI_BLEND_SRC_ALPHA; 
bs11.RenderTarget[0].SrcBlendAlpha = D3D10_DDI_BLEND_ONE;  
bs11.RenderTarget[0].RenderTargetWriteMask = D3D10_DDI_COLOR_WRITE_ENABLE_ALL; 

D3D11_DEPTH_STENCIL_DESC depthDesc; 
depthDesc.DepthEnable = 0; 
depthDesc.DepthWriteMask = D3D10_DEPTH_WRITE_MASK_ZERO; 
depthDesc.DepthFunc = D3D10_COMPARISON_NEVER; 
depthDesc.BackEnable = 0; 
depthDesc.FrontEnable = 0; 
depthDesc.StencilEnable = 0; 
depthDesc.StencilReadMask = 0; 
depthDesc.StencilWriteMask = 0; 
depthDesc.FrontFace.StencilDepthFailOp = D3D10_DDI_STENCIL_OP_KEEP; 
depthDesc.FrontFace.StencilFailOp = D3D10_DDI_STENCIL_OP_KEEP; 
depthDesc.FrontFace.StencilFunc = D3D10_DDI_COMPARISON_ALWAYS; 
depthDesc.FrontFace.StencilPassOp = D3D10_DDI_STENCIL_OP_KEEP; 
depthDesc.BackFace.StencilDepthFailOp = D3D10_DDI_STENCIL_OP_KEEP; 
depthDesc.BackFace.StencilFailOp = D3D10_DDI_STENCIL_OP_KEEP; 
depthDesc.BackFace.StencilFunc = D3D10_DDI_COMPARISON_ALWAYS; 
depthDesc.BackFace.StencilPassOp = D3D10_DDI_STENCIL_OP_KEEP; 

最可能发生的问题是什么?

感谢, 马歇尔

回答

0

不知道这是否会解决你的问题,但D3D11_BLEND_DESC/D3D11_DEPTH_STENCIL_DESC变量正在就设定为D3D10_标志,因为我知道这通常编译,但应该是D3D11_等同。

所以纹理显示窗口模式下?

+0

http://stackoverflow.com/suggested-edits/87294 – thirtydot

+0

嗯,我问过窗口模式,因为如果它没有显示在窗口或全屏中,那么需要更多关于顶点缓冲区/绘图信息的信息。 您是否从调试设备收到任何警告? 最后,你是否想要编辑我的帖子,我想你的意思是添加评论,你可以因为你的问题。 – wookey

+0

如果您有nvidia卡,我也可能会建议使用nvidia parallel nsight,因为它允许您逐步查看绘制调用。在视觉上我更喜欢PIX,因为如果它们在视野中,它将勾勒三角形。 (Pix是在directx SDK中提供的调试器,你也可以用它来查看着色器/ DirectX API中发生了什么) 另外arrrgh注释删除行距,对此感到遗憾。 – wookey

相关问题