2010-02-25 119 views
1

我想設置我的交換鏈,緩衝區,但我得到以下錯誤錯誤C2228:左「.DXGI_MODE」必須有類/結構/聯合直接X

error C2228: left of '.DXGI_MODE' must have class/struct/union 
1>  type is 'DXGI_MODE_SCANLINE_ORDER' 

注知道我做錯了。這裏是代碼

DXGI_SWAP_CHAIN_DESC swapChainDesc; 

    // Set the width and height of the buffers in the swap chain 
    swapChainDesc.BufferDesc.Width = 640; 
    swapChainDesc.BufferDesc.Height = 480; 

    // Set the refresh rate. This is how often the buffers get swapped out 
    swapChainDesc.BufferDesc.RefreshRate.Numerator = 60; 
    swapChainDesc.BufferDesc.RefreshRate.Denominator = 1; 

    // Set the surface format of the buffers 
    swapChainDesc.BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM; 
    swapChainDesc.BufferDesc.ScanlineOrdering.DXGI_MODE; 
    //_SCANLINE_ORDER_UNSPECIFIED; 
    swapChainDesc.BufferDesc.Scaling = DXGI_MODE_SCALING_UNSPECIFIED; 
    swapChainDesc.SampleDesc.Count = 1; 
    swapChainDesc.SampleDesc.Quality = 0; 

    // Set how the buffers are used. Since you are drawing to the buffers, they are 
    //considered a render target 
    swapChainDesc.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT; 

    // Set the number of back buffers, 1 is the minimum and normally sufficient 
    swapChainDesc.BufferCount = 1; 

    // A handle to the main application window 
    swapChainDesc.OutputWindow = hWnd; 

    // Set whether you are running in a window or fullscreen mode 
    swapChainDesc.Windowed = TRUE; 

    // How the buffers are swapped. Discard allows the buffers to be overwritten 
    //completely when swapped. 
    swapChainDesc.SwapEffect = DXGI_SWAP_EFFECT_DISCARD; 
    swapChainDesc.Flags = DXGI_SWAP_CHAIN_FLAG_NONPREROTATED; 

回答

2

不應該在該位

swapChainDesc.BufferDesc.ScanlineOrdering.DXGI_MODE; 
//_SCANLINE_ORDER_UNSPECIFIED; 

其實是

swapChainDesc.BufferDesc.ScanlineOrdering = DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED; 

1

Did'n你的意思

swapChainDesc.BufferDesc.ScanlineOrdering = DXGI_MODE;

,而不是

swapChainDesc.BufferDesc.ScanlineOrdering.DXGI_MODE;
1

swapChainDesc.BufferDesc.ScanlineOrdering是枚舉DXGI_MODE_SCANLINE_ORDER,而不是類類型。

使用類似替代以下幾點:

swapChainDesc.BufferDesc.ScanlineOrdering = DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED; 
相關問題