blend2d.natvis (36181B)
1 <?xml version="1.0" encoding="utf-8"?> 2 <!-- Blend2D natvis support for Visual Studio --> 3 4 <AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010"> 5 <!-- 6 ImageWatch extensions allows to show the content of BLImage in Visual Studio. 7 ImageWatch specific fields: [width], [height], [data], [stride], [type], [channels] 8 --> 9 <UIVisualizer ServiceId="{A452AFEA-3DF6-46BB-9177-C0B08F318025}" Id="1" MenuName="Add to Image Watch"/> 10 11 <Intrinsic Name="__BL_OBJECT_TYPE_RGBA" Expression="0" /> 12 13 <Type Name="BLRgba32"> 14 <DisplayString>BLRgba32 #{value, xb}</DisplayString> 15 <Expand HideRawView="true"> 16 <Item Name="[value]" ExcludeView="simple">value, x</Item> 17 <Synthetic Name="[r]"> 18 <DisplayString>{(value >> 16) & 0xFF, d}</DisplayString> 19 </Synthetic> 20 <Synthetic Name="[g]"> 21 <DisplayString>{(value >> 8) & 0xFF, d}</DisplayString> 22 </Synthetic> 23 <Synthetic Name="[b]"> 24 <DisplayString>{(value >> 0) & 0xFF, d}</DisplayString> 25 </Synthetic> 26 <Synthetic Name="[a]"> 27 <DisplayString>{(value >> 24) & 0xFF, d}</DisplayString> 28 </Synthetic> 29 </Expand> 30 </Type> 31 32 <Type Name="BLRgba64"> 33 <DisplayString>BLRgba64 #{value, xb}</DisplayString> 34 <Expand HideRawView="true"> 35 <Item Name="[value]" ExcludeView="simple">value, x</Item> 36 <Synthetic Name="[r]"> 37 <DisplayString>{(value >> 32) & 0xFFFF, d}</DisplayString> 38 </Synthetic> 39 <Synthetic Name="[g]"> 40 <DisplayString>{(value >> 16) & 0xFFFF, d}</DisplayString> 41 </Synthetic> 42 <Synthetic Name="[b]"> 43 <DisplayString>{(value >> 0) & 0xFFFF, d}</DisplayString> 44 </Synthetic> 45 <Synthetic Name="[a]"> 46 <DisplayString>{(value >> 48) & 0xFFFF, d}</DisplayString> 47 </Synthetic> 48 </Expand> 49 </Type> 50 51 <Type Name="BLRgba"> 52 <DisplayString>BLRgba [{r}, {g}, {b}, {a}]</DisplayString> 53 <Expand HideRawView="true"> 54 <Item Name="[r]" ExcludeView="simple">r</Item> 55 <Item Name="[g]" ExcludeView="simple">g</Item> 56 <Item Name="[b]" ExcludeView="simple">b</Item> 57 <Item Name="[a]" ExcludeView="simple">a</Item> 58 </Expand> 59 </Type> 60 61 <Type Name="BLArrayImpl"> 62 <DisplayString>BLArrayImpl</DisplayString> 63 <Expand HideRawView="true"> 64 <Item Name="[data]" ExcludeView="simple">data</Item> 65 <Item Name="[size]" ExcludeView="simple">size, d</Item> 66 <Item Name="[capacity]" ExcludeView="simple">capacity, d</Item> 67 </Expand> 68 </Type> 69 70 <Type Name="BLArrayCore"> 71 <Intrinsic Name="get_raw_type" Expression="((_d.info.bits & BL_OBJECT_INFO_TYPE_MASK) >> BL_OBJECT_INFO_TYPE_SHIFT)"/> 72 <Intrinsic Name="sso" Expression="(_d.info.bits & BL_OBJECT_INFO_D_FLAG) == 0"/> 73 <Intrinsic Name="sso_a_field" Expression="((_d.info.bits & BL_OBJECT_INFO_A_MASK) >> BL_OBJECT_INFO_A_SHIFT)"/> 74 <Intrinsic Name="sso_b_field" Expression="((_d.info.bits & BL_OBJECT_INFO_B_MASK) >> BL_OBJECT_INFO_B_SHIFT)"/> 75 <Intrinsic Name="sso_size" Expression="size_t(sso_a_field())"/> 76 <Intrinsic Name="sso_capacity" Expression="size_t(sso_b_field())"/> 77 78 <Intrinsic Name="get_impl" Expression="((BLArrayImpl*)(_d.impl))"/> 79 <Intrinsic Name="get_data" Expression="(sso() ? (void*)_d.u8_data : get_impl()->data)"/> 80 <Intrinsic Name="get_size" Expression="(sso() ? sso_size() : get_impl()->size)"/> 81 <Intrinsic Name="get_capacity" Expression="(sso() ? sso_size() : get_impl()->capacity)"/> 82 83 <DisplayString Condition="get_raw_type() == BL_OBJECT_TYPE_ARRAY_OBJECT">BLArray<BLObject> {{ size={get_size(), d} capacity={get_capacity(), d} }}</DisplayString> 84 <DisplayString Condition="get_raw_type() == BL_OBJECT_TYPE_ARRAY_INT8">BLArray<int8_t> {{ size={get_size(), d} capacity={get_capacity(), d} }}</DisplayString> 85 <DisplayString Condition="get_raw_type() == BL_OBJECT_TYPE_ARRAY_UINT8">BLArray<uint8_t> {{ size={get_size(), d} capacity={get_capacity(), d} }}</DisplayString> 86 <DisplayString Condition="get_raw_type() == BL_OBJECT_TYPE_ARRAY_INT16">BLArray<int16_t> {{ size={get_size(), d} capacity={get_capacity(), d} }}</DisplayString> 87 <DisplayString Condition="get_raw_type() == BL_OBJECT_TYPE_ARRAY_UINT16">BLArray<uint16_t> {{ size={get_size(), d} capacity={get_capacity(), d} }}</DisplayString> 88 <DisplayString Condition="get_raw_type() == BL_OBJECT_TYPE_ARRAY_INT32">BLArray<int32_t> {{ size={get_size(), d} capacity={get_capacity(), d} }}</DisplayString> 89 <DisplayString Condition="get_raw_type() == BL_OBJECT_TYPE_ARRAY_UINT32">BLArray<uint32_t> {{ size={get_size(), d} capacity={get_capacity(), d} }}</DisplayString> 90 <DisplayString Condition="get_raw_type() == BL_OBJECT_TYPE_ARRAY_INT64">BLArray<int64_t> {{ size={get_size(), d} capacity={get_capacity(), d} }}</DisplayString> 91 <DisplayString Condition="get_raw_type() == BL_OBJECT_TYPE_ARRAY_UINT64">BLArray<uint64_t> {{ size={get_size(), d} capacity={get_capacity(), d} }}</DisplayString> 92 <DisplayString Condition="get_raw_type() == BL_OBJECT_TYPE_ARRAY_FLOAT32">BLArray<float> {{ size={get_size(), d} capacity={get_capacity(), d} }}</DisplayString> 93 <DisplayString Condition="get_raw_type() == BL_OBJECT_TYPE_ARRAY_FLOAT64">BLArray<double> {{ size={get_size(), d} capacity={get_capacity(), d} }}</DisplayString> 94 <DisplayString Condition="get_raw_type() > BL_OBJECT_TYPE_ARRAY_FLOAT64">BLArray<struct> {{ size={get_size(), d} capacity={get_capacity(), d} }}</DisplayString> 95 96 <Expand HideRawView="true"> 97 <Item Name="[detail]" ExcludeView="simple">_d</Item> 98 <Item Name="[size]" ExcludeView="simple">get_size(), d</Item> 99 <Item Name="[capacity]" ExcludeView="simple">get_capacity(), d</Item> 100 <ArrayItems> 101 <Size>get_size()</Size> 102 <ValuePointer Condition="get_raw_type() == BL_OBJECT_TYPE_ARRAY_OBJECT">(BLObjectCore*)get_data()</ValuePointer> 103 <ValuePointer Condition="get_raw_type() == BL_OBJECT_TYPE_ARRAY_INT8">(int8_t*)get_data()</ValuePointer> 104 <ValuePointer Condition="get_raw_type() == BL_OBJECT_TYPE_ARRAY_UINT8">(uint8_t*)get_data()</ValuePointer> 105 <ValuePointer Condition="get_raw_type() == BL_OBJECT_TYPE_ARRAY_INT16">(int16_t*)get_data()</ValuePointer> 106 <ValuePointer Condition="get_raw_type() == BL_OBJECT_TYPE_ARRAY_UINT16">(uint16_t*)get_data()</ValuePointer> 107 <ValuePointer Condition="get_raw_type() == BL_OBJECT_TYPE_ARRAY_INT32">(int32_t*)get_data()</ValuePointer> 108 <ValuePointer Condition="get_raw_type() == BL_OBJECT_TYPE_ARRAY_UINT32">(uint32_t*)get_data()</ValuePointer> 109 <ValuePointer Condition="get_raw_type() == BL_OBJECT_TYPE_ARRAY_INT64">(int64_t*)get_data()</ValuePointer> 110 <ValuePointer Condition="get_raw_type() == BL_OBJECT_TYPE_ARRAY_UINT64">(uint64_t*)get_data()</ValuePointer> 111 <ValuePointer Condition="get_raw_type() == BL_OBJECT_TYPE_ARRAY_FLOAT32">(float*)get_data()</ValuePointer> 112 <ValuePointer Condition="get_raw_type() == BL_OBJECT_TYPE_ARRAY_FLOAT64">(double*)get_data()</ValuePointer> 113 </ArrayItems> 114 </Expand> 115 </Type> 116 117 <Type Name="BLArray<*>"> 118 <Intrinsic Name="get_raw_type" Expression="((_d.info.bits & BL_OBJECT_INFO_TYPE_MASK) >> BL_OBJECT_INFO_TYPE_SHIFT)"/> 119 <Intrinsic Name="sso" Expression="(_d.info.bits & BL_OBJECT_INFO_D_FLAG) == 0"/> 120 <Intrinsic Name="sso_a_field" Expression="((_d.info.bits & BL_OBJECT_INFO_A_MASK) >> BL_OBJECT_INFO_A_SHIFT)"/> 121 <Intrinsic Name="sso_b_field" Expression="((_d.info.bits & BL_OBJECT_INFO_B_MASK) >> BL_OBJECT_INFO_B_SHIFT)"/> 122 <Intrinsic Name="sso_size" Expression="size_t(sso_a_field())"/> 123 <Intrinsic Name="sso_capacity" Expression="size_t(sso_b_field())"/> 124 125 <Intrinsic Name="get_impl" Expression="((BLArrayImpl*)(_d.impl))"/> 126 <Intrinsic Name="get_data" Expression="(sso() ? (void*)_d.u8_data : get_impl()->data)"/> 127 <Intrinsic Name="get_size" Expression="(sso() ? sso_size() : get_impl()->size)"/> 128 <Intrinsic Name="get_capacity" Expression="(sso() ? sso_size() : get_impl()->capacity)"/> 129 130 <DisplayString>BLArray<> {{ size={get_size(), d} capacity={get_capacity(), d} }}</DisplayString> 131 132 <Expand HideRawView="true"> 133 <Item Name="[detail]" ExcludeView="simple">_d</Item> 134 <Item Name="[size]" ExcludeView="simple">get_size(), d</Item> 135 <Item Name="[capacity]" ExcludeView="simple">get_capacity(), d</Item> 136 <ArrayItems> 137 <Size>get_size()</Size> 138 <ValuePointer>($T1 *)get_data()</ValuePointer> 139 </ArrayItems> 140 </Expand> 141 </Type> 142 143 <Type Name="BLStringImpl"> 144 <DisplayString>BLStringImpl</DisplayString> 145 <Expand HideRawView="true"> 146 <Item Name="[size]" ExcludeView="simple">size, d</Item> 147 <Item Name="[capacity]" ExcludeView="simple">capacity, d</Item> 148 <ArrayItems> 149 <Size>size + 1</Size> 150 <ValuePointer>(char*)(this + 1)</ValuePointer> 151 </ArrayItems> 152 </Expand> 153 </Type> 154 155 <Type Name="BLStringCore"> 156 <AlternativeType Name="BLString" /> 157 158 <Intrinsic Name="sso" Expression="(_d.info.bits & BL_OBJECT_INFO_D_FLAG) == 0"/> 159 <Intrinsic Name="sso_a_field" Expression="((_d.info.bits & BL_OBJECT_INFO_A_MASK) >> BL_OBJECT_INFO_A_SHIFT)"/> 160 <Intrinsic Name="sso_size" Expression="size_t(BLString::kSSOCapacity) ^ sso_a_field()"/> 161 <Intrinsic Name="sso_capacity" Expression="size_t(BLString::kSSOCapacity)"/> 162 163 <Intrinsic Name="get_impl" Expression="((BLStringImpl*)(_d.impl))"/> 164 <Intrinsic Name="get_data" Expression="(sso() ? _d.char_data : ((char*)(get_impl() + 1)))"/> 165 <Intrinsic Name="get_size" Expression="(sso() ? sso_size() : get_impl()->size)"/> 166 <Intrinsic Name="get_capacity" Expression="(sso() ? sso_size() : get_impl()->capacity)"/> 167 168 <DisplayString>{get_data(), s8}</DisplayString> 169 170 <Expand HideRawView="true"> 171 <Item Name="[detail]" ExcludeView="simple">_d</Item> 172 <Item Name="[size]" ExcludeView="simple">get_size(), d</Item> 173 <Item Name="[capacity]" ExcludeView="simple">get_capacity(), d</Item> 174 <ArrayItems> 175 <Size>get_size() + 1</Size> 176 <ValuePointer>get_data()</ValuePointer> 177 </ArrayItems> 178 </Expand> 179 </Type> 180 181 <Type Name="BLImageImpl"> 182 <DisplayString>BLImageImpl {{ size={size.w}x{size.h} format={(BLFormat)format} }}</DisplayString> 183 </Type> 184 185 <Type Name="BLImage"> 186 <UIVisualizer ServiceId="{A452AFEA-3DF6-46BB-9177-C0B08F318025}" Id="1" /> 187 </Type> 188 189 <Type Name="BLImageCore"> 190 <UIVisualizer ServiceId="{A452AFEA-3DF6-46BB-9177-C0B08F318025}" Id="1" /> 191 </Type> 192 193 <Type Name="BLImageCore"> 194 <AlternativeType Name="BLImage" /> 195 196 <Intrinsic Name="get_impl" Expression="((BLImageImpl*)(_d.impl))"/> 197 198 <DisplayString>BLImage {{ size={get_impl()->size.w}x{get_impl()->size.h} format={(BLFormat)get_impl()->format} }}</DisplayString> 199 200 <Expand HideRawView="true"> 201 <Item Name="[detail]" ExcludeView="simple">_d</Item> 202 <Item Name="[impl]" ExcludeView="simple">get_impl()</Item> 203 <Item Name="[width]" ExcludeView="simple">get_impl()->size.w, d</Item> 204 <Item Name="[height]" ExcludeView="simple">get_impl()->size.h, d</Item> 205 <Item Name="[data]" ExcludeView="simple">(unsigned char*)(get_impl()->pixel_data)</Item> 206 <Item Name="[stride]" ExcludeView="simple">get_impl()->stride, d</Item> 207 <Item Name="[format]" ExcludeView="simple">(BLFormat)get_impl()->format, d</Item> 208 <Item Name="[flags]" ExcludeView="simple">get_impl()->flags, x</Item> 209 <Item Name="[reserved]" ExcludeView="simple">get_impl()->reserved</Item> 210 <Synthetic Name="[type]"> 211 <DisplayString>UINT8</DisplayString> 212 </Synthetic> 213 <Synthetic Name="[channels]"> 214 <DisplayString Condition="get_impl()->format == 1">BGRA</DisplayString> 215 <DisplayString Condition="get_impl()->format == 2">BGRA</DisplayString> 216 <DisplayString Condition="get_impl()->format == 3">1</DisplayString> 217 <DisplayString Condition="get_impl()->format >= 4 || get_impl()->format == 0">0</DisplayString> 218 </Synthetic> 219 </Expand> 220 </Type> 221 222 <Type Name="BLImageData"> 223 <UIVisualizer ServiceId="{A452AFEA-3DF6-46BB-9177-C0B08F318025}" Id="1" /> 224 </Type> 225 226 <Type Name="BLImageData"> 227 <DisplayString>ImageData {{ size={size.w}x{size.h} format={(BLFormat)format} }}</DisplayString> 228 <Expand HideRawView="true"> 229 <Item Name="[width]">size.w</Item> 230 <Item Name="[height]">size.h</Item> 231 <Item Name="[data]">(unsigned char*)(pixel_data)</Item> 232 <Item Name="[stride]">stride</Item> 233 <Item Name="[format]">(BLFormat)format</Item> 234 <Item Name="[flags]">flags, x</Item> 235 <Synthetic Name="[type]"> 236 <DisplayString>UINT8</DisplayString> 237 </Synthetic> 238 <Synthetic Name="[channels]"> 239 <DisplayString Condition="format == 1">BGRA</DisplayString> 240 <DisplayString Condition="format == 2">BGRA</DisplayString> 241 <DisplayString Condition="format == 3">1</DisplayString> 242 <DisplayString Condition="format >= 4 || format == 0">0</DisplayString> 243 </Synthetic> 244 </Expand> 245 </Type> 246 247 <Type Name="BLImageCodecImpl"> 248 <DisplayString>BLImageCodecImpl</DisplayString> 249 </Type> 250 251 <Type Name="BLImageCodecCore"> 252 <AlternativeType Name="BLImageCodec" /> 253 254 <Intrinsic Name="get_impl" Expression="((BLImageCodecImpl*)(_d.impl))"/> 255 256 <DisplayString>BLImageCodec {{ name={get_impl()->name, s8} }}</DisplayString> 257 258 <Expand HideRawView="true"> 259 <Item Name="[detail]" ExcludeView="simple">_d</Item> 260 <Item Name="[impl]" ExcludeView="simple">get_impl()</Item> 261 <Item Name="[name]" ExcludeView="simple">get_impl()->name</Item> 262 <Item Name="[venor]" ExcludeView="simple">get_impl()->vendor</Item> 263 <Item Name="[mime_type]" ExcludeView="simple">get_impl()->mime_type</Item> 264 <Item Name="[extensions]" ExcludeView="simple">get_impl()->extensions</Item> 265 <Item Name="[features]" ExcludeView="simple">get_impl()->features, x</Item> 266 </Expand> 267 </Type> 268 269 <Type Name="BLImageDecoderImpl"> 270 <DisplayString>BLImageDecoderImpl</DisplayString> 271 </Type> 272 273 <Type Name="BLImageDecoderCore"> 274 <AlternativeType Name="BLImageDecoder" /> 275 276 <Intrinsic Name="get_impl" Expression="((BLImageDecoderImpl*)(_d.impl))"/> 277 278 <DisplayString>ImageDecoder {{ name={impl->name, s8} }}</DisplayString> 279 280 <Expand HideRawView="true"> 281 <Item Name="[detail]" ExcludeView="simple">_d</Item> 282 <Item Name="[impl]" ExcludeView="simple">get_impl()</Item> 283 <Item Name="[codec]" ExcludeView="simple">get_impl()->codec</Item> 284 <Item Name="[last_result]" ExcludeView="simple">get_impl()->last_result, x</Item> 285 <Item Name="[handle]" ExcludeView="simple">get_impl()->handle</Item> 286 <Item Name="[frame_index]" ExcludeView="simple">get_impl()->frame_index, d</Item> 287 <Item Name="[buffer_index]" ExcludeView="simple">get_impl()->buffer_index, d</Item> 288 </Expand> 289 </Type> 290 291 <Type Name="BLImageEncoderImpl"> 292 <DisplayString>BLImageEncoderImpl</DisplayString> 293 </Type> 294 295 <Type Name="BLImageEncoderCore"> 296 <AlternativeType Name="BLImageEncoder" /> 297 298 <Intrinsic Name="get_impl" Expression="((BLImageEncoderImpl*)(_d.impl))"/> 299 300 <DisplayString>ImageEncoder {{ name={impl->name, s8} }}</DisplayString> 301 302 <Expand HideRawView="true"> 303 <Item Name="[detail]" ExcludeView="simple">_d</Item> 304 <Item Name="[impl]" ExcludeView="simple">get_impl()</Item> 305 <Item Name="[codec]" ExcludeView="simple">get_impl()->codec</Item> 306 <Item Name="[last_result]" ExcludeView="simple">get_impl()->last_result, x</Item> 307 <Item Name="[handle]" ExcludeView="simple">get_impl()->handle</Item> 308 <Item Name="[frame_index]" ExcludeView="simple">get_impl()->frame_index, d</Item> 309 <Item Name="[buffer_index]" ExcludeView="simple">get_impl()->buffer_index, d</Item> 310 </Expand> 311 </Type> 312 313 <Type Name="BLPathImpl"> 314 <DisplayString>BLPathImpl</DisplayString> 315 <Expand HideRawView="true"> 316 <Item Name="[size]" ExcludeView="simple">size, d</Item> 317 <Item Name="[capacity]" ExcludeView="simple">capacity, d</Item> 318 <Item Name="[flags]" ExcludeView="simple">flags, x</Item> 319 <Synthetic Name="[command_data]"> 320 <Expand> 321 <IndexListItems> 322 <Size>size</Size> 323 <ValueNode>command_data[$i]</ValueNode> 324 </IndexListItems> 325 </Expand> 326 </Synthetic> 327 <Synthetic Name="[vertex_data]"> 328 <Expand> 329 <ArrayItems> 330 <Size>size</Size> 331 <ValuePointer>vertex_data</ValuePointer> 332 </ArrayItems> 333 </Expand> 334 </Synthetic> 335 </Expand> 336 </Type> 337 338 <Type Name="BLPathCore"> 339 <AlternativeType Name="BLPath" /> 340 341 <Intrinsic Name="get_impl" Expression="((BLPathImpl*)(_d.impl))"/> 342 <Intrinsic Name="get_command_data" Expression="get_impl()->command_data"/> 343 <Intrinsic Name="get_vertex_data" Expression="get_impl()->vertex_data"/> 344 <Intrinsic Name="get_size" Expression="get_impl()->size"/> 345 <Intrinsic Name="get_capacity" Expression="get_impl()->capacity"/> 346 347 <DisplayString>BLPath {{ size={get_size(), d} capacity={get_capacity(), d} }}</DisplayString> 348 <Expand HideRawView="true"> 349 <Item Name="[detail]" ExcludeView="simple">_d</Item> 350 <Item Name="[impl]" ExcludeView="simple">get_impl()</Item> 351 <Item Name="[size]" ExcludeView="simple">get_size(), d</Item> 352 <Item Name="[capacity]" ExcludeView="simple">get_capacity(), d</Item> 353 <Synthetic Name="command_data"> 354 <Expand> 355 <IndexListItems> 356 <Size>get_size()</Size> 357 <ValueNode>((get_command_data())[$i])</ValueNode> 358 </IndexListItems> 359 </Expand> 360 </Synthetic> 361 <Synthetic Name="vertex_data"> 362 <Expand> 363 <ArrayItems> 364 <Size>get_size()</Size> 365 <ValuePointer>get_vertex_data()</ValuePointer> 366 </ArrayItems> 367 </Expand> 368 </Synthetic> 369 </Expand> 370 </Type> 371 372 <Type Name="BLStrokeOptionsCore"> 373 <AlternativeType Name="BLStrokeOptions" /> 374 375 <Expand HideRawView="true"> 376 <Item Name="[start_cap]">(BLStrokeCap)start_cap</Item> 377 <Item Name="[end_cap]">(BLStrokeCap)end_cap</Item> 378 <Item Name="[join]">(BLStrokeJoin)join</Item> 379 <Item Name="[transform_order]">(BLStrokeTransformOrder)transform_order</Item> 380 <Item Name="[reserved]">reserved</Item> 381 <Item Name="[width]">width</Item> 382 <Item Name="[miter_limit]">miter_limit</Item> 383 <Item Name="[dash_offset]">dash_offset</Item> 384 <Item Name="[dash_array]">dash_array</Item> 385 </Expand> 386 </Type> 387 388 <Type Name="BLGradientImpl"> 389 <DisplayString>BLGradientImpl</DisplayString> 390 </Type> 391 392 <Type Name="BLGradientCore"> 393 <AlternativeType Name="BLGradient" /> 394 395 <Intrinsic Name="sso_a_field" Expression="((_d.info.bits & BL_OBJECT_INFO_A_MASK) >> BL_OBJECT_INFO_A_SHIFT)"/> 396 <Intrinsic Name="sso_b_field" Expression="((_d.info.bits & BL_OBJECT_INFO_B_MASK) >> BL_OBJECT_INFO_B_SHIFT)"/> 397 <Intrinsic Name="sso_c_field" Expression="((_d.info.bits & BL_OBJECT_INFO_C_MASK) >> BL_OBJECT_INFO_C_SHIFT)"/> 398 399 <Intrinsic Name="get_impl" Expression="((BLGradientImpl*)(_d.impl))"/> 400 401 <DisplayString>BLGradient {{ size={get_impl()->size, d} capacity={get_impl()->capacity, d} }}</DisplayString> 402 403 <Expand HideRawView="true"> 404 <Item Name="[detail]" ExcludeView="simple">_d</Item> 405 <Item Name="[impl]" ExcludeView="simple">get_impl()</Item> 406 <Item Name="[gradient_type]" ExcludeView="simple">(BLGradientType)sso_a_field()</Item> 407 <Item Name="[extend_mode]" ExcludeView="simple">(BLExtendMode)sso_b_field()</Item> 408 <Item Name="[transform_type]" ExcludeView="simple">(BLTransformType)sso_c_field()</Item> 409 <Item Name="[transform]" ExcludeView="simple">get_impl()->transform</Item> 410 <Item Name="[values]" ExcludeView="simple">get_impl()->values</Item> 411 <Item Name="[linear]" ExcludeView="simple" Condition="get_impl()->gradient_type == BL_GRADIENT_TYPE_LINEAR">get_impl()->linear</Item> 412 <Item Name="[radial]" ExcludeView="simple" Condition="get_impl()->gradient_type == BL_GRADIENT_TYPE_RADIAL">get_impl()->radial</Item> 413 <Item Name="[conic]" ExcludeView="simple" Condition="get_impl()->gradient_type == BL_GRADIENT_TYPE_CONIC">get_impl()->conic</Item> 414 <Item Name="[size]" ExcludeView="simple">get_impl()->size, d</Item> 415 <Item Name="[capacity]" ExcludeView="simple">get_impl()->capacity, d</Item> 416 <Synthetic Name="[stops]"> 417 <Expand> 418 <IndexListItems> 419 <Size>get_impl()->size</Size> 420 <ValueNode>get_impl()->stops</ValueNode> 421 </IndexListItems> 422 </Expand> 423 </Synthetic> 424 </Expand> 425 </Type> 426 427 <Type Name="BLPatternImpl"> 428 <DisplayString>BLPatternImpl</DisplayString> 429 </Type> 430 431 <Type Name="BLPatternCore"> 432 <AlternativeType Name="BLPattern" /> 433 434 <Intrinsic Name="sso_a_field" Expression="((_d.info.bits & BL_OBJECT_INFO_A_MASK) >> BL_OBJECT_INFO_A_SHIFT)"/> 435 <Intrinsic Name="sso_b_field" Expression="((_d.info.bits & BL_OBJECT_INFO_B_MASK) >> BL_OBJECT_INFO_B_SHIFT)"/> 436 <Intrinsic Name="sso_c_field" Expression="((_d.info.bits & BL_OBJECT_INFO_C_MASK) >> BL_OBJECT_INFO_C_SHIFT)"/> 437 438 <Intrinsic Name="get_impl" Expression="((BLPatternImpl*)(_d.impl))"/> 439 440 <DisplayString>BLPattern {{ area=[{get_impl()->area.x, d}, {get_impl()->area.y, d}, {get_impl()->area.w, d}, {get_impl()->area.h, d}] }}</DisplayString> 441 <Expand HideRawView="true"> 442 <Item Name="[detail]" ExcludeView="simple">_d</Item> 443 <Item Name="[impl]" ExcludeView="simple">get_impl()</Item> 444 <Item Name="[extend_mode]" ExcludeView="simple">(BLExtendMode)sso_b_field()</Item> 445 <Item Name="[transform_type]" ExcludeView="simple">(BLTransformType)sso_c_field()</Item> 446 <Item Name="[image]" ExcludeView="simple">get_impl()->image</Item> 447 <Item Name="[area]" ExcludeView="simple">get_impl()->area</Item> 448 <Item Name="[transform]" ExcludeView="simple">get_impl()->transform</Item> 449 </Expand> 450 </Type> 451 452 <Type Name="BLFontFaceImpl"> 453 <DisplayString>BLFontFaceImpl</DisplayString> 454 </Type> 455 456 <Type Name="BLFontFaceCore"> 457 <AlternativeType Name="BLFontFace" /> 458 459 <Intrinsic Name="get_impl" Expression="((BLFontFaceImpl*)(_d.impl))"/> 460 461 <DisplayString>BLFontFace {{ full_name={get_impl()->full_name} }}</DisplayString> 462 463 <Expand HideRawView="true"> 464 <Item Name="[detail]" ExcludeView="simple">_d</Item> 465 <Item Name="[impl]" ExcludeView="simple">get_impl()</Item> 466 </Expand> 467 </Type> 468 469 <Type Name="BLFontDataImpl"> 470 <DisplayString>BLFontDataImpl</DisplayString> 471 </Type> 472 473 <Type Name="BLFontDataCore"> 474 <AlternativeType Name="BLFontData" /> 475 476 <Intrinsic Name="get_impl" Expression="((BLFontDataImpl*)(_d.impl))"/> 477 478 <DisplayString>BLFontData</DisplayString> 479 480 <Expand HideRawView="true"> 481 <Item Name="[detail]" ExcludeView="simple">_d</Item> 482 <Item Name="[impl]" ExcludeView="simple">get_impl()</Item> 483 </Expand> 484 </Type> 485 486 <Type Name="BLFontImpl"> 487 <DisplayString>BLFontImpl</DisplayString> 488 </Type> 489 490 <Type Name="BLFontCore"> 491 <AlternativeType Name="BLFont" /> 492 493 <Intrinsic Name="get_impl" Expression="((BLFontImpl*)(_d.impl))"/> 494 495 <DisplayString>BLFont {{ face={((BLFontFaceImpl*)(get_impl()->face._d.impl))->full_name} size={get_impl()->metrics.size} }}</DisplayString> 496 <Expand HideRawView="true"> 497 <Item Name="[detail]" ExcludeView="simple">_d</Item> 498 <Item Name="[impl]" ExcludeView="simple">get_impl()</Item> 499 </Expand> 500 </Type> 501 502 <!-- 503 <Type Name="BLFontManagerImpl"> 504 <DisplayString>BLFontManagerImpl</DisplayString> 505 </Type> 506 507 <Type Name="BLFontManagerCore"> 508 <AlternativeType Name="BLFontManager" /> 509 510 <Intrinsic Name="get_impl" Expression="((BLFontManagerImpl*)(_d.impl))"/> 511 512 <DisplayString>BLFontManager</DisplayString> 513 514 <Expand HideRawView="true"> 515 <Item Name="[detail]" ExcludeView="simple">_d</Item> 516 <Item Name="[impl]" ExcludeView="simple">get_impl()</Item> 517 </Expand> 518 </Type> 519 --> 520 521 <Type Name="BLGlyphBufferImpl"> 522 <DisplayString>BLGlyphBufferImpl</DisplayString> 523 </Type> 524 525 <Type Name="BLGlyphBufferCore"> 526 <AlternativeType Name="BLGlyphBuffer" /> 527 528 <Intrinsic Name="get_impl" Expression="(impl)"/> 529 <Intrinsic Name="has_text" Expression="(get_impl()->flags & 0x10000000) != 0 && get_impl()->size != 0" /> 530 <Intrinsic Name="has_glyphs" Expression="(get_impl()->flags & 0x10000000) == 0 && get_impl()->size != 0" /> 531 532 <DisplayString>BLGlyphBuffer {{ size={get_impl()->size, d} }}</DisplayString> 533 534 <Expand HideRawView="true"> 535 <Item Name="[impl]" ExcludeView="simple">get_impl()</Item> 536 <Item Name="[size]" ExcludeView="simple">get_impl()->size, d</Item> 537 <Item Name="[flags]" ExcludeView="simple">get_impl()->flags, x</Item> 538 539 <Synthetic Name="[text]" Condition="has_text()"> 540 <DisplayString>{get_impl()->content, [get_impl()->size]s32}</DisplayString> 541 <Expand> 542 <IndexListItems> 543 <Size>get_impl()->size</Size> 544 <ValueNode>get_impl()->content[$i]</ValueNode> 545 </IndexListItems> 546 </Expand> 547 </Synthetic> 548 549 <Synthetic Name="[glyphs]" Condition="has_glyphs()"> 550 <Expand> 551 <IndexListItems> 552 <Size>get_impl()->size</Size> 553 <ValueNode>get_impl()->content</ValueNode> 554 </IndexListItems> 555 </Expand> 556 </Synthetic> 557 558 <Synthetic Name="[info_data]" Condition="get_impl()->info_data != 0"> 559 <DisplayString>{get_impl()->info_data}</DisplayString> 560 <Expand> 561 <ArrayItems> 562 <Size>get_impl()->size</Size> 563 <ValuePointer>get_impl()->placement_data</ValuePointer> 564 </ArrayItems> 565 </Expand> 566 </Synthetic> 567 568 <Synthetic Name="[placement_data]" Condition="get_impl()->placement_data != 0"> 569 <DisplayString>{get_impl()->placement_data}</DisplayString> 570 <Expand> 571 <ArrayItems> 572 <Size>get_impl()->size</Size> 573 <ValuePointer>get_impl()->placement_data</ValuePointer> 574 </ArrayItems> 575 </Expand> 576 </Synthetic> 577 578 <Item Name="[glyph_run]" ExcludeView="simple">get_impl()->glyph_run</Item> 579 580 </Expand> 581 </Type> 582 583 <Type Name="BLGlyphRun"> 584 <DisplayString>BLGlyphRun {{ size={size, d} }}</DisplayString> 585 <Expand HideRawView="true"> 586 <!-- glyph_data is either uint16_t or uint32_t - show just void* when not initialized --> 587 <Synthetic Name="[glyph_data]"> 588 <DisplayString>{glyph_data}</DisplayString> 589 <Expand> 590 <IndexListItems> 591 <Size>size</Size> 592 <ValueNode>*((uint32_t*)( (char*)glyph_data + ($i * glyph_advance) ))</ValueNode> 593 </IndexListItems> 594 </Expand> 595 </Synthetic> 596 <Item Name="[placement_data]" Condition="placement_type == 0">placement_data</Item> 597 <Synthetic Name="[placement_data]" Condition="placement_type != 0"> 598 <DisplayString>{placement_data}</DisplayString> 599 <Expand> 600 <IndexListItems Condition="placement_type == 1"> 601 <Size>size</Size> 602 <ValueNode>*((BLGlyphPlacement*)( (char*)placement_data + ($i * placement_advance) ))</ValueNode> 603 </IndexListItems> 604 <IndexListItems Condition="placement_type != 1"> 605 <Size>size</Size> 606 <ValueNode>*((BLPoint*)( (char*)placement_data + ($i * placement_advance) ))</ValueNode> 607 </IndexListItems> 608 </Expand> 609 </Synthetic> 610 <Item Name="[size]" ExcludeView="simple">size, d</Item> 611 <Item Name="[glyph_advance]" ExcludeView="simple">glyph_advance, d</Item> 612 <Item Name="[placement_type]" ExcludeView="simple">placement_type, d</Item> 613 <Item Name="[placement_advance]" ExcludeView="simple">placement_advance, d</Item> 614 <Item Name="[flags]" ExcludeView="simple">flags, x</Item> 615 </Expand> 616 </Type> 617 618 <Type Name="BLContextHints"> 619 <Expand HideRawView="true"> 620 <Item Name="[rendering_quality]" ExcludeView="simple">(BLRenderingQuality)rendering_quality</Item> 621 <Item Name="[gradient_quality]" ExcludeView="simple">(BLGradientQuality)gradient_quality</Item> 622 <Item Name="[pattern_quality]" ExcludeView="simple">(BLPatternQuality)pattern_quality</Item> 623 <Item Name="[hints]" ExcludeView="simple">hints</Item> 624 </Expand> 625 </Type> 626 627 <Type Name="BLContextState"> 628 <Expand HideRawView="true"> 629 <Item Name="[hints]">hints</Item> 630 <Item Name="[comp_op]">(BLCompOp)comp_op</Item> 631 <Item Name="[global_alpha]">global_alpha</Item> 632 633 <Item Name="[style_type]">style_type</Item> 634 <Item Name="[style_alpha]">style_alpha</Item> 635 636 <Item Name="[fill_rule]">(BLFillRule)fill_rule</Item> 637 <Item Name="[fill_type]">(BLObjectType)style_type[0]</Item> 638 <Item Name="[fill_alpha]">style_alpha[0]</Item> 639 640 <Item Name="[stroke_type]">(BLObjectType)style_type[1]</Item> 641 <Item Name="[stroke_alpha]">style_alpha[1]</Item> 642 <Item Name="[stroke_options]">stroke_options</Item> 643 <Item Name="[approximation_options]">approximation_options</Item> 644 645 <Item Name="[meta_transform]">meta_transform</Item> 646 <Item Name="[user_transform]">user_transform</Item> 647 648 <Item Name="[saved_state_count]">saved_state_count, d</Item> 649 </Expand> 650 </Type> 651 652 <Type Name="BLContextImpl"> 653 <DisplayString>BLContextImpl</DisplayString> 654 </Type> 655 656 <Type Name="BLContextCore"> 657 <AlternativeType Name="BLContext" /> 658 659 <Intrinsic Name="get_impl" Expression="((BLContextImpl*)(_d.impl))"/> 660 661 <DisplayString>BLContext {{ context_type={(BLContextType)get_impl()->context_type} }} </DisplayString> 662 663 <Expand HideRawView="true"> 664 <Item Name="[detail]" ExcludeView="simple">_d</Item> 665 <Item Name="[impl]" ExcludeView="simple">get_impl()</Item> 666 <Item Name="[state]" ExcludeView="simple">get_impl()->state</Item> 667 <Item Name="[context_type]" ExcludeView="simple">(BLContextType)get_impl()->context_type</Item> 668 </Expand> 669 </Type> 670 671 <Type Name="BLObjectCore"> 672 <AlternativeType Name="BLVar" /> 673 <AlternativeType Name="BLVarCore" /> 674 675 <Intrinsic Name="get_type" Expression="(_d.info.bits & 0x80000000) != 0 ? (((_d.info.bits & BL_OBJECT_INFO_TYPE_MASK) >> BL_OBJECT_INFO_TYPE_SHIFT) <= 128 ? ((_d.info.bits & BL_OBJECT_INFO_TYPE_MASK) >> BL_OBJECT_INFO_TYPE_SHIFT) : 128) : 0"/> 676 677 <DisplayString Condition="get_type() == __BL_OBJECT_TYPE_RGBA()">{(BLRgba*)this}</DisplayString> 678 <DisplayString Condition="get_type() == BL_OBJECT_TYPE_RGBA32">{_d.u32_data[0]}</DisplayString> 679 <DisplayString Condition="get_type() == BL_OBJECT_TYPE_RGBA64">{_d.u64_data[1]}</DisplayString> 680 <DisplayString Condition="get_type() == BL_OBJECT_TYPE_NULL">Null</DisplayString> 681 <DisplayString Condition="get_type() == BL_OBJECT_TYPE_PATTERN">{(BLPatternCore*)this}</DisplayString> 682 <DisplayString Condition="get_type() == BL_OBJECT_TYPE_GRADIENT">{(BLGradientCore*)this}</DisplayString> 683 <DisplayString Condition="get_type() == BL_OBJECT_TYPE_IMAGE">{(BLImageCore*)this}</DisplayString> 684 <DisplayString Condition="get_type() == BL_OBJECT_TYPE_PATH">{(BLPathCore*)this}</DisplayString> 685 <DisplayString Condition="get_type() == BL_OBJECT_TYPE_FONT">{(BLFontCore*)this}</DisplayString> 686 <DisplayString Condition="get_type() == BL_OBJECT_TYPE_BOOL">{(bool)_d.u64_data[0]}</DisplayString> 687 <DisplayString Condition="get_type() == BL_OBJECT_TYPE_INT64">{_d.i64_data[0]}</DisplayString> 688 <DisplayString Condition="get_type() == BL_OBJECT_TYPE_UINT64">{_d.u64_data[0]}</DisplayString> 689 <DisplayString Condition="get_type() == BL_OBJECT_TYPE_DOUBLE">{_d.f64_data[0]}</DisplayString> 690 <DisplayString Condition="get_type() == BL_OBJECT_TYPE_STRING">{(BLStringCore*)this}</DisplayString> 691 <DisplayString Condition="get_type() >= BL_OBJECT_TYPE_ARRAY_OBJECT && get_type() <= BL_OBJECT_TYPE_ARRAY_STRUCT_32">{(BLArrayCore*)this}</DisplayString> 692 <DisplayString Condition="get_type() == BL_OBJECT_TYPE_CONTEXT">{(BLContextCore*)this}</DisplayString> 693 <DisplayString Condition="get_type() == BL_OBJECT_TYPE_IMAGE_CODEC">{(BLImageCodecCore*)this}</DisplayString> 694 <DisplayString Condition="get_type() == BL_OBJECT_TYPE_IMAGE_DECODER">{(BLImageDecoderCore*)this}</DisplayString> 695 <DisplayString Condition="get_type() == BL_OBJECT_TYPE_IMAGE_ENCODER">{(BLImageEncoderCore*)this}</DisplayString> 696 <DisplayString Condition="get_type() == BL_OBJECT_TYPE_FONT_FACE">{(BLFontFaceCore*)this}</DisplayString> 697 <DisplayString Condition="get_type() == BL_OBJECT_TYPE_FONT_DATA">{(BLFontDataCore*)this}</DisplayString> 698 <!-- <DisplayString Condition="get_type() == BL_OBJECT_TYPE_FONT_MANAGER">{(BLFontManagerCore*)this}</DisplayString> --> 699 <!-- <DisplayString Condition="get_type() == BL_OBJECT_TYPE_BIT_SET">{(BLBitSetCore*)this}</DisplayString> --> 700 701 <Expand HideRawView="true"> 702 <ExpandedItem Condition="get_type() == __BL_OBJECT_TYPE_RGBA()">(BLRgba*)this</ExpandedItem> 703 <ExpandedItem Condition="get_type() == BL_OBJECT_TYPE_RGBA32">{_d.u32_data[0]}</DisplayString> 704 <ExpandedItem Condition="get_type() == BL_OBJECT_TYPE_RGBA64">{_d.u64_data[1]}</DisplayString> 705 <ExpandedItem Condition="get_type() == BL_OBJECT_TYPE_PATTERN">(BLPatternCore*)this</ExpandedItem> 706 <ExpandedItem Condition="get_type() == BL_OBJECT_TYPE_GRADIENT">(BLGradientCore*)this</ExpandedItem> 707 <ExpandedItem Condition="get_type() == BL_OBJECT_TYPE_IMAGE">(BLImageCore*)this</ExpandedItem> 708 <ExpandedItem Condition="get_type() == BL_OBJECT_TYPE_PATH">(BLPathCore*)this</ExpandedItem> 709 <ExpandedItem Condition="get_type() == BL_OBJECT_TYPE_FONT">(BLFontCore*)this</ExpandedItem> 710 <ExpandedItem Condition="get_type() == BL_OBJECT_TYPE_BOOL">(bool)_d.u64_data[0]</ExpandedItem> 711 <ExpandedItem Condition="get_type() == BL_OBJECT_TYPE_INT64">_d.i64_data[0]</ExpandedItem> 712 <ExpandedItem Condition="get_type() == BL_OBJECT_TYPE_UINT64">_d.u64_data[0]</ExpandedItem> 713 <ExpandedItem Condition="get_type() == BL_OBJECT_TYPE_DOUBLE">_d.f64_data[0]</ExpandedItem> 714 <ExpandedItem Condition="get_type() == BL_OBJECT_TYPE_STRING">(BLStringCore*)this</ExpandedItem> 715 <ExpandedItem Condition="get_type() >= BL_OBJECT_TYPE_ARRAY_OBJECT && get_type() <= BL_OBJECT_TYPE_ARRAY_STRUCT_32">(BLArrayCore*)this</ExpandedItem> 716 <ExpandedItem Condition="get_type() == BL_OBJECT_TYPE_CONTEXT">(BLContextCore*)this</ExpandedItem> 717 <ExpandedItem Condition="get_type() == BL_OBJECT_TYPE_IMAGE_CODEC">(BLImageCodecCore*)this</ExpandedItem> 718 <ExpandedItem Condition="get_type() == BL_OBJECT_TYPE_IMAGE_DECODER">(BLImageDecoderCore*)this</ExpandedItem> 719 <ExpandedItem Condition="get_type() == BL_OBJECT_TYPE_IMAGE_ENCODER">(BLImageEncoderCore*)this</ExpandedItem> 720 <ExpandedItem Condition="get_type() == BL_OBJECT_TYPE_FONT_FACE">(BLFontFaceCore*)this</ExpandedItem> 721 <ExpandedItem Condition="get_type() == BL_OBJECT_TYPE_FONT_DATA">(BLFontDataCore*)this</ExpandedItem> 722 <!-- <ExpandedItem Condition="get_type() == BL_OBJECT_TYPE_FONT_MANAGER">(BLFontManagerCore*)this</ExpandedItem> --> 723 <!-- <ExpandedItem Condition="get_type() == BL_OBJECT_TYPE_BIT_SET">(BLBitSetCore*)this</ExpandedItem> --> 724 </Expand> 725 </Type> 726 727 <!-- Internals --> 728 729 <Type Name="bl::Wrap<*>"> 730 <Expand HideRawView="true"> 731 <ExpandedItem>*(($T1*)_data)</ExpandedItem> 732 </Expand> 733 </Type> 734 </AutoVisualizer>