繁体   English   中英

错误C2228:'.DXGI_MODE'的左边必须有class / struct / union Direct X.

[英]error C2228: left of '.DXGI_MODE' must have class/struct/union Direct 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;

不应该这一点

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

实际上是

swapChainDesc.BufferDesc.ScanlineOrdering = DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED;

你不是吗?

swapChainDesc.BufferDesc.ScanlineOrdering = DXGI_MODE;

代替

swapChainDesc.BufferDesc.ScanlineOrdering.DXGI_MODE;

swapChainDesc.BufferDesc.ScanlineOrdering是一个枚举DXGI_MODE_SCANLINE_ORDER ,而不是类类型。

请改用以下内容:

swapChainDesc.BufferDesc.ScanlineOrdering = DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM