xref: /aosp_15_r20/external/skia/include/gpu/ganesh/d3d/GrD3DBackendContext.h (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1*c8dee2aaSAndroid Build Coastguard Worker /*
2*c8dee2aaSAndroid Build Coastguard Worker  * Copyright 2020 Google LLC
3*c8dee2aaSAndroid Build Coastguard Worker  *
4*c8dee2aaSAndroid Build Coastguard Worker  * Use of this source code is governed by a BSD-style license that can be
5*c8dee2aaSAndroid Build Coastguard Worker  * found in the LICENSE file.
6*c8dee2aaSAndroid Build Coastguard Worker  */
7*c8dee2aaSAndroid Build Coastguard Worker 
8*c8dee2aaSAndroid Build Coastguard Worker #ifndef GrD3DBackendContext_DEFINED
9*c8dee2aaSAndroid Build Coastguard Worker #define GrD3DBackendContext_DEFINED
10*c8dee2aaSAndroid Build Coastguard Worker 
11*c8dee2aaSAndroid Build Coastguard Worker // GrD3DTypes.h includes d3d12.h, which in turn includes windows.h, which redefines many
12*c8dee2aaSAndroid Build Coastguard Worker // common identifiers such as:
13*c8dee2aaSAndroid Build Coastguard Worker // * interface
14*c8dee2aaSAndroid Build Coastguard Worker // * small
15*c8dee2aaSAndroid Build Coastguard Worker // * near
16*c8dee2aaSAndroid Build Coastguard Worker // * far
17*c8dee2aaSAndroid Build Coastguard Worker // * CreateSemaphore
18*c8dee2aaSAndroid Build Coastguard Worker // * MemoryBarrier
19*c8dee2aaSAndroid Build Coastguard Worker //
20*c8dee2aaSAndroid Build Coastguard Worker // You should only include GrD3DBackendContext.h if you are prepared to rename those identifiers.
21*c8dee2aaSAndroid Build Coastguard Worker #include "include/gpu/ganesh/d3d/GrD3DTypes.h"
22*c8dee2aaSAndroid Build Coastguard Worker 
23*c8dee2aaSAndroid Build Coastguard Worker #include "include/gpu/ganesh/GrTypes.h"
24*c8dee2aaSAndroid Build Coastguard Worker 
25*c8dee2aaSAndroid Build Coastguard Worker // The BackendContext contains all of the base D3D objects needed by the GrD3DGpu. The assumption
26*c8dee2aaSAndroid Build Coastguard Worker // is that the client will set these up and pass them to the GrD3DGpu constructor.
27*c8dee2aaSAndroid Build Coastguard Worker struct SK_API GrD3DBackendContext {
28*c8dee2aaSAndroid Build Coastguard Worker     gr_cp<IDXGIAdapter1> fAdapter;
29*c8dee2aaSAndroid Build Coastguard Worker     gr_cp<ID3D12Device> fDevice;
30*c8dee2aaSAndroid Build Coastguard Worker     gr_cp<ID3D12CommandQueue> fQueue;
31*c8dee2aaSAndroid Build Coastguard Worker     sk_sp<GrD3DMemoryAllocator> fMemoryAllocator;
32*c8dee2aaSAndroid Build Coastguard Worker     GrProtected fProtectedContext = GrProtected::kNo;
33*c8dee2aaSAndroid Build Coastguard Worker };
34*c8dee2aaSAndroid Build Coastguard Worker 
35*c8dee2aaSAndroid Build Coastguard Worker #endif
36