Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Macros | Functions
GrD3DUtil.h File Reference
#include "include/core/SkImage.h"
#include "include/gpu/GrTypes.h"
#include "include/gpu/d3d/GrD3DTypes.h"
#include "include/private/gpu/ganesh/GrTypesPriv.h"

Go to the source code of this file.

Macros

#define GR_D3D_CALL_ERRCHECK(X)
 

Functions

static constexpr bool operator== (const D3D12_CPU_DESCRIPTOR_HANDLE &first, const D3D12_CPU_DESCRIPTOR_HANDLE &second)
 
bool GrDxgiFormatIsCompressed (DXGI_FORMAT)
 
static constexpr uint32_t GrDxgiFormatChannels (DXGI_FORMAT format)
 
static constexpr GrColorFormatDesc GrDxgiFormatDesc (DXGI_FORMAT format)
 
static constexpr size_t GrDxgiFormatBytesPerBlock (DXGI_FORMAT format)
 
static constexpr int GrDxgiFormatStencilBits (DXGI_FORMAT format)
 
std::wstring GrD3DMultiByteToWide (const std::string &str)
 

Macro Definition Documentation

◆ GR_D3D_CALL_ERRCHECK

#define GR_D3D_CALL_ERRCHECK (   X)
Value:
do { \
HRESULT result = X; \
SkASSERT(SUCCEEDED(result)); \
if (!SUCCEEDED(result)) { \
SkDebugf("Failed Direct3D call. Error: 0x%08lx\n", result); \
} \
} while (false)
static const SkScalar X
GAsyncResult * result
#define SUCCEEDED(hr)

Definition at line 16 of file GrD3DUtil.h.

17 { \
18 HRESULT result = X; \
19 SkASSERT(SUCCEEDED(result)); \
20 if (!SUCCEEDED(result)) { \
21 SkDebugf("Failed Direct3D call. Error: 0x%08lx\n", result); \
22 } \
23 } while (false)

Function Documentation

◆ GrD3DMultiByteToWide()

std::wstring GrD3DMultiByteToWide ( const std::string &  str)

Definition at line 25 of file GrD3DUtil.cpp.

25 {
26 int size_needed = MultiByteToWideChar(CP_UTF8, 0, &str[0], (int)str.size(), nullptr, 0);
27 std::wstring wstr(size_needed, 0);
28 MultiByteToWideChar(CP_UTF8, 0, &str[0], (int)str.size(), &wstr[0], size_needed);
29 return wstr;
30}

◆ GrDxgiFormatBytesPerBlock()

static constexpr size_t GrDxgiFormatBytesPerBlock ( DXGI_FORMAT  format)
staticconstexpr

Definition at line 101 of file GrD3DUtil.h.

101 {
102 switch (format) {
103 case DXGI_FORMAT_R8G8B8A8_UNORM: return 4;
104 case DXGI_FORMAT_R8_UNORM: return 1;
105 case DXGI_FORMAT_B8G8R8A8_UNORM: return 4;
106 case DXGI_FORMAT_B5G6R5_UNORM: return 2;
107 case DXGI_FORMAT_R16G16B16A16_FLOAT: return 8;
108 case DXGI_FORMAT_R16_FLOAT: return 2;
109 case DXGI_FORMAT_R8G8_UNORM: return 2;
110 case DXGI_FORMAT_R10G10B10A2_UNORM: return 4;
111 case DXGI_FORMAT_B4G4R4A4_UNORM: return 2;
112 case DXGI_FORMAT_R8G8B8A8_UNORM_SRGB: return 4;
113 case DXGI_FORMAT_BC1_UNORM: return 8;
114 case DXGI_FORMAT_R16_UNORM: return 2;
115 case DXGI_FORMAT_R16G16_UNORM: return 4;
116 case DXGI_FORMAT_R16G16B16A16_UNORM: return 8;
117 case DXGI_FORMAT_R16G16_FLOAT: return 4;
118 case DXGI_FORMAT_D24_UNORM_S8_UINT: return 4;
119 case DXGI_FORMAT_D32_FLOAT_S8X24_UINT: return 8;
120
121 default: return 0;
122 }
123}
uint32_t uint32_t * format

◆ GrDxgiFormatChannels()

static constexpr uint32_t GrDxgiFormatChannels ( DXGI_FORMAT  format)
staticconstexpr

Definition at line 35 of file GrD3DUtil.h.

35 {
36 switch (format) {
37 case DXGI_FORMAT_R8G8B8A8_UNORM: return kRGBA_SkColorChannelFlags;
38 case DXGI_FORMAT_R8_UNORM: return kRed_SkColorChannelFlag;
39 case DXGI_FORMAT_B8G8R8A8_UNORM: return kRGBA_SkColorChannelFlags;
40 case DXGI_FORMAT_B5G6R5_UNORM: return kRGB_SkColorChannelFlags;
41 case DXGI_FORMAT_R16G16B16A16_FLOAT: return kRGBA_SkColorChannelFlags;
42 case DXGI_FORMAT_R16_FLOAT: return kRed_SkColorChannelFlag;
43 case DXGI_FORMAT_R8G8_UNORM: return kRG_SkColorChannelFlags;
44 case DXGI_FORMAT_R10G10B10A2_UNORM: return kRGBA_SkColorChannelFlags;
45 case DXGI_FORMAT_B4G4R4A4_UNORM: return kRGBA_SkColorChannelFlags;
46 case DXGI_FORMAT_R8G8B8A8_UNORM_SRGB: return kRGBA_SkColorChannelFlags;
47 case DXGI_FORMAT_BC1_UNORM: return kRGBA_SkColorChannelFlags;
48 case DXGI_FORMAT_R16_UNORM: return kRed_SkColorChannelFlag;
49 case DXGI_FORMAT_R16G16_UNORM: return kRG_SkColorChannelFlags;
50 case DXGI_FORMAT_R16G16B16A16_UNORM: return kRGBA_SkColorChannelFlags;
51 case DXGI_FORMAT_R16G16_FLOAT: return kRG_SkColorChannelFlags;
52 case DXGI_FORMAT_D24_UNORM_S8_UINT: return 0;
53 case DXGI_FORMAT_D32_FLOAT_S8X24_UINT: return 0;
54
55 default: return 0;
56 }
57}
@ kRGB_SkColorChannelFlags
Definition SkColor.h:247
@ kRGBA_SkColorChannelFlags
Definition SkColor.h:248
@ kRed_SkColorChannelFlag
Definition SkColor.h:239
@ kRG_SkColorChannelFlags
Definition SkColor.h:246

◆ GrDxgiFormatDesc()

static constexpr GrColorFormatDesc GrDxgiFormatDesc ( DXGI_FORMAT  format)
staticconstexpr

Definition at line 59 of file GrD3DUtil.h.

59 {
60 switch (format) {
61 case DXGI_FORMAT_R8G8B8A8_UNORM:
63 case DXGI_FORMAT_R8_UNORM:
65 case DXGI_FORMAT_B8G8R8A8_UNORM:
67 case DXGI_FORMAT_B5G6R5_UNORM:
69 case DXGI_FORMAT_R16G16B16A16_FLOAT:
71 case DXGI_FORMAT_R16_FLOAT:
73 case DXGI_FORMAT_R8G8_UNORM:
75 case DXGI_FORMAT_R10G10B10A2_UNORM:
77 case DXGI_FORMAT_B4G4R4A4_UNORM:
79 case DXGI_FORMAT_R8G8B8A8_UNORM_SRGB:
81 case DXGI_FORMAT_R16_UNORM:
83 case DXGI_FORMAT_R16G16_UNORM:
85 case DXGI_FORMAT_R16G16B16A16_UNORM:
87 case DXGI_FORMAT_R16G16_FLOAT:
89
90 // Compressed texture formats are not expected to have a description.
91 case DXGI_FORMAT_BC1_UNORM: return GrColorFormatDesc::MakeInvalid();
92
93 // This type only describes color channels.
94 case DXGI_FORMAT_D24_UNORM_S8_UINT: return GrColorFormatDesc::MakeInvalid();
95 case DXGI_FORMAT_D32_FLOAT_S8X24_UINT: return GrColorFormatDesc::MakeInvalid();
96
97 default: return GrColorFormatDesc::MakeInvalid();
98 }
99}
static constexpr GrColorFormatDesc MakeInvalid()
static constexpr GrColorFormatDesc MakeRGBA(int rgba, GrColorTypeEncoding e)
static constexpr GrColorFormatDesc MakeRG(int rg, GrColorTypeEncoding e)
static constexpr GrColorFormatDesc MakeRGB(int rgb, GrColorTypeEncoding e)
static constexpr GrColorFormatDesc MakeR(int r, GrColorTypeEncoding e)

◆ GrDxgiFormatIsCompressed()

bool GrDxgiFormatIsCompressed ( DXGI_FORMAT  format)

Returns true if the format is compressed.

Definition at line 15 of file GrD3DUtil.cpp.

15 {
16 switch (format) {
17 case DXGI_FORMAT_BC1_UNORM:
18 return true;
19 default:
20 return false;
21 }
23}
#define SkUNREACHABLE
Definition SkAssert.h:135

◆ GrDxgiFormatStencilBits()

static constexpr int GrDxgiFormatStencilBits ( DXGI_FORMAT  format)
staticconstexpr

Definition at line 125 of file GrD3DUtil.h.

125 {
126 switch (format) {
127 case DXGI_FORMAT_D24_UNORM_S8_UINT:
128 return 8;
129 case DXGI_FORMAT_D32_FLOAT_S8X24_UINT:
130 return 8;
131 default:
132 return 0;
133 }
134}

◆ operator==()

static constexpr bool operator== ( const D3D12_CPU_DESCRIPTOR_HANDLE &  first,
const D3D12_CPU_DESCRIPTOR_HANDLE &  second 
)
staticconstexpr

Definition at line 25 of file GrD3DUtil.h.

26 {
27 return first.ptr == second.ptr;
28}