如何:创建引用设备(五)

本文详细介绍了如何在Direct3D11中创建一个引用设备,并配置交换链参数,包括设置宽度、高度、刷新率等。通过D3D11CreateDeviceAndSwapChain函数,演示了创建设备、获取特性级别及实时设备上下文的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

引用设备实现运行时的高度精确的软件实现。要创建引用设备,只需指定正在创建的设备将使用引用驱动程序。这个例子同时创建了一个设备和一个交换链。

创建引用设备

  1. 定义并初始化交换链变量
    DXGI_SWAP_CHAIN_DESC sd;
        ZeroMemory( &sd, sizeof( sd ) );
        sd.BufferCount = 1;
        sd.BufferDesc.Width = 640;
        sd.BufferDesc.Height = 480;
        sd.BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
        sd.BufferDesc.RefreshRate.Numerator = 60;
        sd.BufferDesc.RefreshRate.Denominator = 1;
        sd.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT;
        sd.OutputWindow = g_hWnd;
        sd.SampleDesc.Count = 1;
        sd.SampleDesc.Quality = 0;
        sd.Windowed = TRUE;
    
  2. 请求实现应用程序所需功能的功能级别。可以为Direct3D 11运行时成功创建一个引用设备。
    D3D_FEATURE_LEVEL FeatureLevels = D3D_FEATURE_LEVEL_11_0;

     

  3. 通过调用D3D11CreateDeviceAndSwapChain创建设备。

     HRESULT hr = S_OK;
        D3D_FEATURE_LEVEL FeatureLevel;
    
        if( FAILED (hr = D3D11CreateDeviceAndSwapChain( NULL, 
                        D3D_DRIVER_TYPE_REFERENCE,
                        NULL, 
                        0,
                        &FeatureLevels, 
                        1, 
                        D3D11_SDK_VERSION, 
                        &sd, 
                        &g_pSwapChain, 
                        &g_pd3dDevice, 
                        &FeatureLevel,
                        &g_pImmediateContext )))
        {
            return hr;
        }
    

    你将需要提供D3D_DRIVER_TYPE枚举类型的引用驱动类型给API调用,方法调用成功以后,它将返回一个交换链接口,设备接口,一个指向驱动程序授予的特性级别的指针,一个实时设备上下文。

  4.  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值