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<*>"> 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<*>"> 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<*>"> 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>{&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<*>"> 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<*>"> 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<*,*,*>::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<*,*,*>"> 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