Esempio n. 1
0
    public static unsafe Result D3D11On12CreateDevice(
        IUnknown d3d12Device,
        DeviceCreationFlags flags,
        FeatureLevel[] featureLevels,
        IUnknown[] commandQueues,
        int nodeMask,
        out ID3D11Device device,
        out ID3D11DeviceContext immediateContext,
        out FeatureLevel chosenFeatureLevel)
    {
        Result result = D3D11On12CreateDevice(d3d12Device,
                                              flags,
                                              featureLevels, featureLevels.Length,
                                              commandQueues, commandQueues.Length,
                                              nodeMask,
                                              out device, out immediateContext, out chosenFeatureLevel);

        if (result.Failure)
        {
            return(result);
        }

        if (immediateContext != null)
        {
            device.AddRef();
            device.ImmediateContext__ = immediateContext;
            immediateContext.Device__ = device;
        }

        return(result);
    }
Esempio n. 2
0
        public ImGuiRenderer(ID3D11Device device, ID3D11DeviceContext deviceContext)
        {
            this.device        = device;
            this.deviceContext = deviceContext;

            device.AddRef();
            deviceContext.AddRef();

            var io = ImGui.GetIO();

            io.BackendFlags |= ImGuiBackendFlags.RendererHasVtxOffset;  // We can honor the ImDrawCmd::VtxOffset field, allowing for large meshes.

            CreateDeviceObjects();
        }