1cb93a386Sopenharmony_ci<?xml version="1.0" encoding="utf-8"?>
2cb93a386Sopenharmony_ci<!--
3cb93a386Sopenharmony_ci    This .natvis file allows natively viewing Skia types in any debugger that supports NatVis,
4cb93a386Sopenharmony_ci    although the installation or usage instructions vary:
5cb93a386Sopenharmony_ci
6cb93a386Sopenharmony_ci    <<< Visual Studio >>>
7cb93a386Sopenharmony_ci        https://docs.microsoft.com/en-us/visualstudio/debugger/create-custom-views-of-native-objects?view=vs-2019
8cb93a386Sopenharmony_ci
9cb93a386Sopenharmony_ci        Visualizer files can be placed in the project, but your best bet is to copy this file to
10cb93a386Sopenharmony_ci        your 'Documents\Visual Studio YYYY\Visualizers' folder (where YYYY is 2017 or 2019).
11cb93a386Sopenharmony_ci
12cb93a386Sopenharmony_ci        If you use Visual Studio, there are graphical visualizers for SkBitmap and SkPixmap:
13cb93a386Sopenharmony_ci        - Install the "Image Watch" extension to Visual Studio (created by Microsoft).
14cb93a386Sopenharmony_ci        - Copy this file to the directory indicated above. (Visualizers can normally be placed in
15cb93a386Sopenharmony_ci          the project, but the Image Watch extension requires them to be global.)
16cb93a386Sopenharmony_ci        - While debugging, go to View -> Other Windows -> Image Watch
17cb93a386Sopenharmony_ci          - SkBitmap and SkPixmap objects will be visible directly in the debugger.
18cb93a386Sopenharmony_ci            Note that due to limitations, it does not visualize some more exotic color types
19cb93a386Sopenharmony_ci            (565, 4444, 1010102, 888x).
20cb93a386Sopenharmony_ci        - Documentation for the extension is available:
21cb93a386Sopenharmony_ci          https://imagewatch.azurewebsites.net/ImageWatchHelp/ImageWatchHelp.htm
22cb93a386Sopenharmony_ci
23cb93a386Sopenharmony_ci    <<< Visual Studio Code >>>
24cb93a386Sopenharmony_ci        https://code.visualstudio.com/docs/cpp/natvis
25cb93a386Sopenharmony_ci
26cb93a386Sopenharmony_ci        Visualizer files can be placed in a global directory, but the exact directory name depends
27cb93a386Sopenharmony_ci        on the version of VS Code you're running, and the version of the CPP tools:
28cb93a386Sopenharmony_ci        ~/.vscode(-insiders)/extensions/ms-vscode.cpptools-x.y.z/debugAdapters/vsdbg/bin/Visualizers
29cb93a386Sopenharmony_ci
30cb93a386Sopenharmony_ci        Instead, you can simply edit your launch.json debugger configuration file, and set the
31cb93a386Sopenharmony_ci        "visualizerFile" property of any Skia launch targets to point at this file. For example:
32cb93a386Sopenharmony_ci
33cb93a386Sopenharmony_ci        {
34cb93a386Sopenharmony_ci            "name": "DM",
35cb93a386Sopenharmony_ci            "type": "cppvsdbg",
36cb93a386Sopenharmony_ci            "request": "launch",
37cb93a386Sopenharmony_ci            "program": "${workspaceFolder}/out/Debug/dm.exe",
38cb93a386Sopenharmony_ci            "args": [],
39cb93a386Sopenharmony_ci            "cwd": "${workspaceFolder}",
40cb93a386Sopenharmony_ci            "environment": [],
41cb93a386Sopenharmony_ci            "externalConsole": true,
42cb93a386Sopenharmony_ci            "visualizerFile": "${workspaceFolder}/platform_tools/debugging/vs/Skia.natvis"
43cb93a386Sopenharmony_ci        },
44cb93a386Sopenharmony_ci
45cb93a386Sopenharmony_ci-->
46cb93a386Sopenharmony_ci<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
47cb93a386Sopenharmony_ci  <UIVisualizer ServiceId="{A452AFEA-3DF6-46BB-9177-C0B08F318025}" Id="1"
48cb93a386Sopenharmony_ci                MenuName="Add to Image Watch"/>
49cb93a386Sopenharmony_ci
50cb93a386Sopenharmony_ci  <!-- sk_sp -->
51cb93a386Sopenharmony_ci  <Type Name="sk_sp&lt;*&gt;">
52cb93a386Sopenharmony_ci    <DisplayString>{fPtr}</DisplayString>
53cb93a386Sopenharmony_ci    <Expand>
54cb93a386Sopenharmony_ci      <ExpandedItem>fPtr</ExpandedItem>
55cb93a386Sopenharmony_ci    </Expand>
56cb93a386Sopenharmony_ci  </Type>
57cb93a386Sopenharmony_ci
58cb93a386Sopenharmony_ci  <!-- unique_ptr -->
59cb93a386Sopenharmony_ci  <Type Name="std::unique_ptr&lt;*&gt;">
60cb93a386Sopenharmony_ci    <DisplayString>{_Mypair._Myval2}</DisplayString>
61cb93a386Sopenharmony_ci    <Expand>
62cb93a386Sopenharmony_ci      <ExpandedItem>_Mypair._Myval2</ExpandedItem>
63cb93a386Sopenharmony_ci    </Expand>
64cb93a386Sopenharmony_ci  </Type>
65cb93a386Sopenharmony_ci
66cb93a386Sopenharmony_ci  <!-- shared_ptr -->
67cb93a386Sopenharmony_ci  <Type Name="std::shared_ptr&lt;*&gt;">
68cb93a386Sopenharmony_ci    <DisplayString>{_Ptr}</DisplayString>
69cb93a386Sopenharmony_ci    <Expand>
70cb93a386Sopenharmony_ci      <ExpandedItem>_Ptr</ExpandedItem>
71cb93a386Sopenharmony_ci    </Expand>
72cb93a386Sopenharmony_ci  </Type>
73cb93a386Sopenharmony_ci
74cb93a386Sopenharmony_ci  <!-- SkString -->
75cb93a386Sopenharmony_ci  <Type Name="SkString">
76cb93a386Sopenharmony_ci    <DisplayString>{&amp;fRec.fPtr->fBeginningOfData}</DisplayString>
77cb93a386Sopenharmony_ci  </Type>
78cb93a386Sopenharmony_ci
79cb93a386Sopenharmony_ci  <!-- SkSL::StringFragment -->
80cb93a386Sopenharmony_ci  <Type Name="SkSL::StringFragment">
81cb93a386Sopenharmony_ci    <DisplayString>{fChars,[fLength]}</DisplayString>
82cb93a386Sopenharmony_ci  </Type>
83cb93a386Sopenharmony_ci
84cb93a386Sopenharmony_ci  <!-- SkSL::SymbolTable::SymbolKey -->
85cb93a386Sopenharmony_ci  <Type Name="SkSL::SymbolTable::SymbolKey">
86cb93a386Sopenharmony_ci    <DisplayString>{fName}</DisplayString>
87cb93a386Sopenharmony_ci  </Type>
88cb93a386Sopenharmony_ci
89cb93a386Sopenharmony_ci  <!-- SkAutoTArray -->
90cb93a386Sopenharmony_ci  <Type Name="SkAutoTArray&lt;*&gt;">
91cb93a386Sopenharmony_ci    <DisplayString>{{size = {fCount}}}</DisplayString>
92cb93a386Sopenharmony_ci    <Expand>
93cb93a386Sopenharmony_ci      <Item Name="[size]">fCount</Item>
94cb93a386Sopenharmony_ci      <ArrayItems>
95cb93a386Sopenharmony_ci        <Size>fCount</Size>
96cb93a386Sopenharmony_ci        <ValuePointer>fArray._Mypair._Myval2</ValuePointer>
97cb93a386Sopenharmony_ci      </ArrayItems>
98cb93a386Sopenharmony_ci    </Expand>
99cb93a386Sopenharmony_ci  </Type>
100cb93a386Sopenharmony_ci
101cb93a386Sopenharmony_ci  <!-- SkTArray -->
102cb93a386Sopenharmony_ci  <Type Name="SkTArray&lt;*&gt;">
103cb93a386Sopenharmony_ci    <DisplayString>{{size = {fCount}}}</DisplayString>
104cb93a386Sopenharmony_ci    <Expand>
105cb93a386Sopenharmony_ci      <Item Name="[size]">fCount</Item>
106cb93a386Sopenharmony_ci      <ArrayItems>
107cb93a386Sopenharmony_ci        <Size>fCount</Size>
108cb93a386Sopenharmony_ci        <ValuePointer>fItemArray</ValuePointer>
109cb93a386Sopenharmony_ci      </ArrayItems>
110cb93a386Sopenharmony_ci    </Expand>
111cb93a386Sopenharmony_ci  </Type>
112cb93a386Sopenharmony_ci
113cb93a386Sopenharmony_ci  <!-- SkTHashTable::Slot -->
114cb93a386Sopenharmony_ci  <Type Name="SkTHashTable&lt;*,*,*&gt;::Slot">
115cb93a386Sopenharmony_ci    <DisplayString Condition="hash">{val}</DisplayString>
116cb93a386Sopenharmony_ci    <DisplayString Condition="!hash">Empty</DisplayString>
117cb93a386Sopenharmony_ci    <Expand>
118cb93a386Sopenharmony_ci      <ExpandedItem>val</ExpandedItem>
119cb93a386Sopenharmony_ci    </Expand>
120cb93a386Sopenharmony_ci  </Type>
121cb93a386Sopenharmony_ci
122cb93a386Sopenharmony_ci  <!-- SkTHashMap -->
123cb93a386Sopenharmony_ci  <Type Name="SkTHashMap&lt;*,*,*&gt;">
124cb93a386Sopenharmony_ci    <DisplayString>{{size = {fTable.fCount}}}</DisplayString>
125cb93a386Sopenharmony_ci    <Expand>
126cb93a386Sopenharmony_ci      <CustomListItems>
127cb93a386Sopenharmony_ci        <Variable Name="iSlot" InitialValue="0"/>
128cb93a386Sopenharmony_ci        <Size>fTable.fCount</Size>
129cb93a386Sopenharmony_ci        <Loop>
130cb93a386Sopenharmony_ci          <If Condition="fTable.fSlots.fArray._Mypair._Myval2[iSlot].hash != 0">
131cb93a386Sopenharmony_ci            <Item Name="{fTable.fSlots.fArray._Mypair._Myval2[iSlot].val.key}">
132cb93a386Sopenharmony_ci              fTable.fSlots.fArray._Mypair._Myval2[iSlot].val
133cb93a386Sopenharmony_ci            </Item>
134cb93a386Sopenharmony_ci          </If>
135cb93a386Sopenharmony_ci          <Exec>iSlot++</Exec>
136cb93a386Sopenharmony_ci        </Loop>
137cb93a386Sopenharmony_ci      </CustomListItems>
138cb93a386Sopenharmony_ci    </Expand>
139cb93a386Sopenharmony_ci  </Type>
140cb93a386Sopenharmony_ci
141cb93a386Sopenharmony_ci  <!-- SkImageInfo -->
142cb93a386Sopenharmony_ci  <Type Name="SkImageInfo">
143cb93a386Sopenharmony_ci    <DisplayString>[{fDimensions.fWidth} x {fDimensions.fHeight}] {fColorInfo.fColorType,en} {fColorInfo.fAlphaType,en} {fColorInfo.fColorSpace,na}</DisplayString>
144cb93a386Sopenharmony_ci  </Type>
145cb93a386Sopenharmony_ci
146cb93a386Sopenharmony_ci  <!-- SkBitmap -->
147cb93a386Sopenharmony_ci  <Type Name="SkBitmap">
148cb93a386Sopenharmony_ci    <UIVisualizer ServiceId="{A452AFEA-3DF6-46BB-9177-C0B08F318025}" Id="1" />
149cb93a386Sopenharmony_ci  </Type>
150cb93a386Sopenharmony_ci
151cb93a386Sopenharmony_ci  <Type Name="SkBitmap">
152cb93a386Sopenharmony_ci    <DisplayString>{fPixmap.fInfo}</DisplayString>
153cb93a386Sopenharmony_ci    <Expand>
154cb93a386Sopenharmony_ci      <Synthetic Name="[type]" Condition="fPixmap.fInfo.fColorInfo.fColorType == kAlpha_8_SkColorType">
155cb93a386Sopenharmony_ci        <DisplayString>UINT8</DisplayString>
156cb93a386Sopenharmony_ci      </Synthetic>
157cb93a386Sopenharmony_ci      <Synthetic Name="[type]" Condition="fPixmap.fInfo.fColorInfo.fColorType == kRGBA_8888_SkColorType">
158cb93a386Sopenharmony_ci        <DisplayString>UINT8</DisplayString>
159cb93a386Sopenharmony_ci      </Synthetic>
160cb93a386Sopenharmony_ci      <Synthetic Name="[type]" Condition="fPixmap.fInfo.fColorInfo.fColorType == kBGRA_8888_SkColorType">
161cb93a386Sopenharmony_ci        <DisplayString>UINT8</DisplayString>
162cb93a386Sopenharmony_ci      </Synthetic>
163cb93a386Sopenharmony_ci      <Synthetic Name="[type]" Condition="fPixmap.fInfo.fColorInfo.fColorType == kGray_8_SkColorType">
164cb93a386Sopenharmony_ci        <DisplayString>UINT8</DisplayString>
165cb93a386Sopenharmony_ci      </Synthetic>
166cb93a386Sopenharmony_ci      <Synthetic Name="[type]" Condition="fPixmap.fInfo.fColorInfo.fColorType == kRGBA_F16_SkColorType">
167cb93a386Sopenharmony_ci        <DisplayString>FLOAT16</DisplayString>
168cb93a386Sopenharmony_ci      </Synthetic>
169cb93a386Sopenharmony_ci      <Synthetic Name="[type]" Condition="fPixmap.fInfo.fColorInfo.fColorType == kRGBA_F16Norm_SkColorType">
170cb93a386Sopenharmony_ci        <DisplayString>FLOAT16</DisplayString>
171cb93a386Sopenharmony_ci      </Synthetic>
172cb93a386Sopenharmony_ci      <Synthetic Name="[type]" Condition="fPixmap.fInfo.fColorInfo.fColorType == kRGBA_F32_SkColorType">
173cb93a386Sopenharmony_ci        <DisplayString>FLOAT32</DisplayString>
174cb93a386Sopenharmony_ci      </Synthetic>
175cb93a386Sopenharmony_ci      <Synthetic Name="[type]" Condition="fPixmap.fInfo.fColorInfo.fColorType == kR8G8_unorm_SkColorType">
176cb93a386Sopenharmony_ci        <DisplayString>UINT8</DisplayString>
177cb93a386Sopenharmony_ci      </Synthetic>
178cb93a386Sopenharmony_ci      <Synthetic Name="[type]" Condition="fPixmap.fInfo.fColorInfo.fColorType == kA16_float_SkColorType">
179cb93a386Sopenharmony_ci        <DisplayString>FLOAT16</DisplayString>
180cb93a386Sopenharmony_ci      </Synthetic>
181cb93a386Sopenharmony_ci      <Synthetic Name="[type]" Condition="fPixmap.fInfo.fColorInfo.fColorType == kR16G16_float_SkColorType">
182cb93a386Sopenharmony_ci        <DisplayString>FLOAT16</DisplayString>
183cb93a386Sopenharmony_ci      </Synthetic>
184cb93a386Sopenharmony_ci      <Synthetic Name="[type]" Condition="fPixmap.fInfo.fColorInfo.fColorType == kA16_unorm_SkColorType">
185cb93a386Sopenharmony_ci        <DisplayString>UINT16</DisplayString>
186cb93a386Sopenharmony_ci      </Synthetic>
187cb93a386Sopenharmony_ci      <Synthetic Name="[type]" Condition="fPixmap.fInfo.fColorInfo.fColorType == kR16G16_unorm_SkColorType">
188cb93a386Sopenharmony_ci        <DisplayString>UINT16</DisplayString>
189cb93a386Sopenharmony_ci      </Synthetic>
190cb93a386Sopenharmony_ci      <Synthetic Name="[type]" Condition="fPixmap.fInfo.fColorInfo.fColorType == kR16G16B16A16_unorm_SkColorType">
191cb93a386Sopenharmony_ci        <DisplayString>UINT16</DisplayString>
192cb93a386Sopenharmony_ci      </Synthetic>
193cb93a386Sopenharmony_ci
194cb93a386Sopenharmony_ci      <Item Name="[channels]" Condition="fPixmap.fInfo.fColorInfo.fColorType == kAlpha_8_SkColorType">1</Item>
195cb93a386Sopenharmony_ci      <Synthetic Name="[channels]" Condition="fPixmap.fInfo.fColorInfo.fColorType == kRGBA_8888_SkColorType">
196cb93a386Sopenharmony_ci        <DisplayString>RGBA</DisplayString>
197cb93a386Sopenharmony_ci      </Synthetic>
198cb93a386Sopenharmony_ci      <Synthetic Name="[channels]" Condition="fPixmap.fInfo.fColorInfo.fColorType == kBGRA_8888_SkColorType">
199cb93a386Sopenharmony_ci        <DisplayString>BGRA</DisplayString>
200cb93a386Sopenharmony_ci      </Synthetic>
201cb93a386Sopenharmony_ci      <Item Name="[channels]" Condition="fPixmap.fInfo.fColorInfo.fColorType == kGray_8_SkColorType">1</Item>
202cb93a386Sopenharmony_ci      <Synthetic Name="[channels]" Condition="fPixmap.fInfo.fColorInfo.fColorType == kRGBA_F16_SkColorType">
203cb93a386Sopenharmony_ci        <DisplayString>RGBA</DisplayString>
204cb93a386Sopenharmony_ci      </Synthetic>
205cb93a386Sopenharmony_ci      <Synthetic Name="[channels]" Condition="fPixmap.fInfo.fColorInfo.fColorType == kRGBA_F16Norm_SkColorType">
206cb93a386Sopenharmony_ci        <DisplayString>RGBA</DisplayString>
207cb93a386Sopenharmony_ci      </Synthetic>
208cb93a386Sopenharmony_ci      <Synthetic Name="[channels]" Condition="fPixmap.fInfo.fColorInfo.fColorType == kRGBA_F32_SkColorType">
209cb93a386Sopenharmony_ci        <DisplayString>RGBA</DisplayString>
210cb93a386Sopenharmony_ci      </Synthetic>
211cb93a386Sopenharmony_ci      <Synthetic Name="[channels]" Condition="fPixmap.fInfo.fColorInfo.fColorType == kR8G8_unorm_SkColorType">
212cb93a386Sopenharmony_ci        <DisplayString>RG</DisplayString>
213cb93a386Sopenharmony_ci      </Synthetic>
214cb93a386Sopenharmony_ci      <Item Name="[channels]" Condition="fPixmap.fInfo.fColorInfo.fColorType == kA16_float_SkColorType">1</Item>
215cb93a386Sopenharmony_ci      <Synthetic Name="[channels]" Condition="fPixmap.fInfo.fColorInfo.fColorType == kR16G16_float_SkColorType">
216cb93a386Sopenharmony_ci        <DisplayString>RG</DisplayString>
217cb93a386Sopenharmony_ci      </Synthetic>
218cb93a386Sopenharmony_ci      <Item Name="[channels]" Condition="fPixmap.fInfo.fColorInfo.fColorType == kA16_unorm_SkColorType">1</Item>
219cb93a386Sopenharmony_ci      <Synthetic Name="[channels]" Condition="fPixmap.fInfo.fColorInfo.fColorType == kR16G16_unorm_SkColorType">
220cb93a386Sopenharmony_ci        <DisplayString>RG</DisplayString>
221cb93a386Sopenharmony_ci      </Synthetic>
222cb93a386Sopenharmony_ci      <Synthetic Name="[channels]" Condition="fPixmap.fInfo.fColorInfo.fColorType == kR16G16B16A16_unorm_SkColorType">
223cb93a386Sopenharmony_ci        <DisplayString>BGRA</DisplayString>
224cb93a386Sopenharmony_ci      </Synthetic>
225cb93a386Sopenharmony_ci
226cb93a386Sopenharmony_ci      <Item Name="[width]">fPixmap.fInfo.fDimensions.fWidth</Item>
227cb93a386Sopenharmony_ci      <Item Name="[height]">fPixmap.fInfo.fDimensions.fHeight</Item>
228cb93a386Sopenharmony_ci      <Item Name="[data]">fPixmap.fPixels</Item>
229cb93a386Sopenharmony_ci      <Item Name="[stride]">fPixmap.fRowBytes</Item>
230cb93a386Sopenharmony_ci    </Expand>
231cb93a386Sopenharmony_ci  </Type>
232cb93a386Sopenharmony_ci
233cb93a386Sopenharmony_ci  <!-- SkPixmap -->
234cb93a386Sopenharmony_ci  <Type Name="SkPixmap">
235cb93a386Sopenharmony_ci    <UIVisualizer ServiceId="{A452AFEA-3DF6-46BB-9177-C0B08F318025}" Id="1" />
236cb93a386Sopenharmony_ci  </Type>
237cb93a386Sopenharmony_ci
238cb93a386Sopenharmony_ci  <Type Name="SkPixmap">
239cb93a386Sopenharmony_ci    <DisplayString>{fInfo}</DisplayString>
240cb93a386Sopenharmony_ci    <Expand>
241cb93a386Sopenharmony_ci      <Synthetic Name="[type]" Condition="fInfo.fColorInfo.fColorType == kAlpha_8_SkColorType">
242cb93a386Sopenharmony_ci        <DisplayString>UINT8</DisplayString>
243cb93a386Sopenharmony_ci      </Synthetic>
244cb93a386Sopenharmony_ci      <Synthetic Name="[type]" Condition="fInfo.fColorInfo.fColorType == kRGBA_8888_SkColorType">
245cb93a386Sopenharmony_ci        <DisplayString>UINT8</DisplayString>
246cb93a386Sopenharmony_ci      </Synthetic>
247cb93a386Sopenharmony_ci      <Synthetic Name="[type]" Condition="fInfo.fColorInfo.fColorType == kBGRA_8888_SkColorType">
248cb93a386Sopenharmony_ci        <DisplayString>UINT8</DisplayString>
249cb93a386Sopenharmony_ci      </Synthetic>
250cb93a386Sopenharmony_ci      <Synthetic Name="[type]" Condition="fInfo.fColorInfo.fColorType == kGray_8_SkColorType">
251cb93a386Sopenharmony_ci        <DisplayString>UINT8</DisplayString>
252cb93a386Sopenharmony_ci      </Synthetic>
253cb93a386Sopenharmony_ci      <Synthetic Name="[type]" Condition="fInfo.fColorInfo.fColorType == kRGBA_F16_SkColorType">
254cb93a386Sopenharmony_ci        <DisplayString>FLOAT16</DisplayString>
255cb93a386Sopenharmony_ci      </Synthetic>
256cb93a386Sopenharmony_ci      <Synthetic Name="[type]" Condition="fInfo.fColorInfo.fColorType == kRGBA_F16Norm_SkColorType">
257cb93a386Sopenharmony_ci        <DisplayString>FLOAT16</DisplayString>
258cb93a386Sopenharmony_ci      </Synthetic>
259cb93a386Sopenharmony_ci      <Synthetic Name="[type]" Condition="fInfo.fColorInfo.fColorType == kRGBA_F32_SkColorType">
260cb93a386Sopenharmony_ci        <DisplayString>FLOAT32</DisplayString>
261cb93a386Sopenharmony_ci      </Synthetic>
262cb93a386Sopenharmony_ci      <Synthetic Name="[type]" Condition="fInfo.fColorInfo.fColorType == kR8G8_unorm_SkColorType">
263cb93a386Sopenharmony_ci        <DisplayString>UINT8</DisplayString>
264cb93a386Sopenharmony_ci      </Synthetic>
265cb93a386Sopenharmony_ci      <Synthetic Name="[type]" Condition="fInfo.fColorInfo.fColorType == kA16_float_SkColorType">
266cb93a386Sopenharmony_ci        <DisplayString>FLOAT16</DisplayString>
267cb93a386Sopenharmony_ci      </Synthetic>
268cb93a386Sopenharmony_ci      <Synthetic Name="[type]" Condition="fInfo.fColorInfo.fColorType == kR16G16_float_SkColorType">
269cb93a386Sopenharmony_ci        <DisplayString>FLOAT16</DisplayString>
270cb93a386Sopenharmony_ci      </Synthetic>
271cb93a386Sopenharmony_ci      <Synthetic Name="[type]" Condition="fInfo.fColorInfo.fColorType == kA16_unorm_SkColorType">
272cb93a386Sopenharmony_ci        <DisplayString>UINT16</DisplayString>
273cb93a386Sopenharmony_ci      </Synthetic>
274cb93a386Sopenharmony_ci      <Synthetic Name="[type]" Condition="fInfo.fColorInfo.fColorType == kR16G16_unorm_SkColorType">
275cb93a386Sopenharmony_ci        <DisplayString>UINT16</DisplayString>
276cb93a386Sopenharmony_ci      </Synthetic>
277cb93a386Sopenharmony_ci      <Synthetic Name="[type]" Condition="fInfo.fColorInfo.fColorType == kR16G16B16A16_unorm_SkColorType">
278cb93a386Sopenharmony_ci        <DisplayString>UINT16</DisplayString>
279cb93a386Sopenharmony_ci      </Synthetic>
280cb93a386Sopenharmony_ci
281cb93a386Sopenharmony_ci      <Item Name="[channels]" Condition="fInfo.fColorInfo.fColorType == kAlpha_8_SkColorType">1</Item>
282cb93a386Sopenharmony_ci      <Synthetic Name="[channels]" Condition="fInfo.fColorInfo.fColorType == kRGBA_8888_SkColorType">
283cb93a386Sopenharmony_ci        <DisplayString>RGBA</DisplayString>
284cb93a386Sopenharmony_ci      </Synthetic>
285cb93a386Sopenharmony_ci      <Synthetic Name="[channels]" Condition="fInfo.fColorInfo.fColorType == kBGRA_8888_SkColorType">
286cb93a386Sopenharmony_ci        <DisplayString>BGRA</DisplayString>
287cb93a386Sopenharmony_ci      </Synthetic>
288cb93a386Sopenharmony_ci      <Item Name="[channels]" Condition="fInfo.fColorInfo.fColorType == kGray_8_SkColorType">1</Item>
289cb93a386Sopenharmony_ci      <Synthetic Name="[channels]" Condition="fInfo.fColorInfo.fColorType == kRGBA_F16_SkColorType">
290cb93a386Sopenharmony_ci        <DisplayString>RGBA</DisplayString>
291cb93a386Sopenharmony_ci      </Synthetic>
292cb93a386Sopenharmony_ci      <Synthetic Name="[channels]" Condition="fInfo.fColorInfo.fColorType == kRGBA_F16Norm_SkColorType">
293cb93a386Sopenharmony_ci        <DisplayString>RGBA</DisplayString>
294cb93a386Sopenharmony_ci      </Synthetic>
295cb93a386Sopenharmony_ci      <Synthetic Name="[channels]" Condition="fInfo.fColorInfo.fColorType == kRGBA_F32_SkColorType">
296cb93a386Sopenharmony_ci        <DisplayString>RGBA</DisplayString>
297cb93a386Sopenharmony_ci      </Synthetic>
298cb93a386Sopenharmony_ci      <Synthetic Name="[channels]" Condition="fInfo.fColorInfo.fColorType == kR8G8_unorm_SkColorType">
299cb93a386Sopenharmony_ci        <DisplayString>RG</DisplayString>
300cb93a386Sopenharmony_ci      </Synthetic>
301cb93a386Sopenharmony_ci      <Item Name="[channels]" Condition="fInfo.fColorInfo.fColorType == kA16_float_SkColorType">1</Item>
302cb93a386Sopenharmony_ci      <Synthetic Name="[channels]" Condition="fInfo.fColorInfo.fColorType == kR16G16_float_SkColorType">
303cb93a386Sopenharmony_ci        <DisplayString>RG</DisplayString>
304cb93a386Sopenharmony_ci      </Synthetic>
305cb93a386Sopenharmony_ci      <Item Name="[channels]" Condition="fInfo.fColorInfo.fColorType == kA16_unorm_SkColorType">1</Item>
306cb93a386Sopenharmony_ci      <Synthetic Name="[channels]" Condition="fInfo.fColorInfo.fColorType == kR16G16_unorm_SkColorType">
307cb93a386Sopenharmony_ci        <DisplayString>RG</DisplayString>
308cb93a386Sopenharmony_ci      </Synthetic>
309cb93a386Sopenharmony_ci      <Synthetic Name="[channels]" Condition="fInfo.fColorInfo.fColorType == kR16G16B16A16_unorm_SkColorType">
310cb93a386Sopenharmony_ci        <DisplayString>BGRA</DisplayString>
311cb93a386Sopenharmony_ci      </Synthetic>
312cb93a386Sopenharmony_ci
313cb93a386Sopenharmony_ci      <Item Name="[width]">fInfo.fDimensions.fWidth</Item>
314cb93a386Sopenharmony_ci      <Item Name="[height]">fInfo.fDimensions.fHeight</Item>
315cb93a386Sopenharmony_ci      <Item Name="[data]">fPixels</Item>
316cb93a386Sopenharmony_ci      <Item Name="[stride]">fRowBytes</Item>
317cb93a386Sopenharmony_ci    </Expand>
318cb93a386Sopenharmony_ci  </Type>
319cb93a386Sopenharmony_ci</AutoVisualizer>
320