├── DirectX.natvis ├── Eigen.natvis ├── Geometry.xml ├── MVE.natvis ├── Open3D.natvis ├── OpenCV.natvis ├── README.md ├── SEACAVE.natvis ├── TinyXML2.natvis └── pmp.natvis /DirectX.natvis: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 0x887A0006 6 | The application's device failed due to badly formed commands sent by the application. This is an design-time issue that should be investigated and fixed. 7 | 8 | 9 | 0x887A0005 10 | The video card has been physically removed from the system, or a driver upgrade for the video card has occurred. The application should destroy and recreate the device. For help debugging the problem, call ID3D10Device::GetDeviceRemovedReason. 11 | 12 | 13 | 0x887A0007 14 | The device failed due to a badly formed command. This is a run-time issue; The application should destroy and recreate the device. 15 | 16 | 17 | 0x887A0020 18 | The driver encountered a problem and was put into the device removed state. 19 | 20 | 21 | 0x887A000B 22 | An event (for example, a power cycle) interrupted the gathering of presentation statistics. 23 | 24 | 25 | 0x887A000C 26 | The application attempted to acquire exclusive ownership of an output, but failed because some other application (or device within the application) already acquired ownership. 27 | 28 | 29 | 0x887A0001 30 | The application provided invalid parameter data; this must be debugged and fixed before the application is released. 31 | 32 | 33 | 0x887A0003 34 | The buffer supplied by the application is not big enough to hold the requested data. 35 | 36 | 37 | 0x887A0021 38 | A global counter resource is in use, and the Direct3D device can't currently use the counter resource. 39 | 40 | 41 | 0x887A0022 42 | The resource or request is not currently available, but it might become available later. 43 | 44 | 45 | 0x887A0002 46 | When calling IDXGIObject::GetPrivateData, the GUID passed in is not recognized as one previously passed to IDXGIObject::SetPrivateData or IDXGIObject::SetPrivateDataInterface. When calling IDXGIFactory::EnumAdapters or IDXGIAdapter::EnumOutputs, the enumerated ordinal is out of range. 47 | 48 | 49 | 0x887a0023 50 | Reserved 51 | 52 | 53 | 0x887A0024 54 | Reserved 55 | 56 | 57 | 0x887A000A 58 | The GPU was busy at the moment when a call was made to perform an operation, and did not execute or schedule the operation. 59 | 60 | 61 | 0x887A0004 62 | The requested functionality is not supported by the device or the driver. 63 | 64 | 65 | 0x887A0026 66 | The desktop duplication interface is invalid. The desktop duplication interface typically becomes invalid when a different type of image is displayed on the desktop. 67 | 68 | 69 | 0x887A0027 70 | The time-out interval elapsed before the next desktop frame was available. 71 | 72 | 73 | 0x887A0028 74 | The Remote Desktop Services session is currently disconnected. 75 | 76 | 77 | 0x887A0029 78 | The DXGI outuput (monitor) to which the swap chain content was restricted is now disconnected or changed. 79 | 80 | 81 | 0x887A002A 82 | DXGI can't provide content protection on the swap chain. This error is typically caused by an older driver, or when you use a swap chain that is incompatible with content protection. 83 | 84 | 85 | 0x887A002B 86 | You tried to use a resource to which you did not have the required access privileges. This error is most typically caused when you write to a shared resource with read-only access. 87 | 88 | 89 | 0x887A002C 90 | The supplied name of a resource in a call to IDXGIResource1::CreateSharedHandle is already associated with some other resource. 91 | 92 | 93 | 0x087a0001 94 | The window content is not visible. When receiving this status, an application can stop rendering and use DXGI_PRESENT_TEST to determine when to resume rendering. 95 | 96 | 97 | 0x087a0002 98 | The Present operation was partially invisible to the user. 99 | 100 | 101 | 0x087a0004 102 | The driver is requesting that the DXGI runtime not use shared resources to communicate with the Desktop Window Manager. 103 | 104 | 105 | 0x087a0005 106 | The Present operation was not visible because the Windows session has switched to another desktop (for example, ctrl-alt-del). 107 | 108 | 109 | 0x087a0006 110 | The Present operation was not visible because the target monitor was being used for some other purpose. 111 | 112 | 113 | 0x087a0007 114 | The desktop display mode has been changed, there might be color conversion/stretching. The application should call IDXGISwapChain::ResizeBuffers to match the new display mode. 115 | 116 | 117 | 0x087a0008 118 | IDXGISwapChain::ResizeTarget and IDXGISwapChain::SetFullscreenState will return DXGI_STATUS_MODE_CHANGE_IN_PROGRESS if a fullscreen/windowed mode transition is occurring when either API is called. 119 | 120 | 121 | 122 | 123 | 2289436696 124 | The pixel format of the texture surface is not valid. 125 | 126 | 127 | 2289436697 128 | The device does not support a specified texture-blending operation for color values. 129 | 130 | 131 | 2289436698 132 | The device does not support a specified texture-blending argument for color values. 133 | 134 | 135 | 2289436699 136 | The device does not support a specified texture-blending operation for the alpha channel. 137 | 138 | 139 | 2289436700 140 | The device does not support a specified texture-blending argument for the alpha channel. 141 | 142 | 143 | 2289436701 144 | The application is requesting more texture-filtering operations than the device supports. 145 | 146 | 147 | 2289436702 148 | The current texture filters cannot be used together. 149 | 150 | 151 | 2289436703 152 | The device does not support the specified texture factor value. Not used; provided only to support older drivers. 153 | 154 | 155 | 2289436705 156 | The currently set render states cannot be used together. 157 | 158 | 159 | 2289436706 160 | The device does not support the specified texture filter. 161 | 162 | 163 | 2289436710 164 | The current textures cannot be used simultaneously. 165 | 166 | 167 | 2289436711 168 | Internal driver error. Applications should destroy and recreate the device when receiving this error. 169 | 170 | 171 | 2289436774 172 | The requested item was not found. 173 | 174 | 175 | 2289436775 176 | There is more data available than the specified buffer size can hold. 177 | 178 | 179 | 2289436776 180 | The device has been lost but cannot be reset at this time. Therefore, rendering is not possible.A Direct 3D device object other than the one that returned this code caused the hardware adapter to be reset by the OS. Delete all video memory objects (surfaces, textures, state blocks) and call Reset() to return the device to a default state. If the application continues rendering without a reset, the rendering calls will succeed. 181 | 182 | 183 | 2289436777 184 | The device has been lost but can be reset at this time. 185 | 186 | 187 | 2289436778 188 | This device does not support the queried technique. 189 | 190 | 191 | 2289435004 192 | Direct3D does not have enough display memory to perform the operation. The device is using more resources in a single scene than can fit simultaneously into video memory. Present, PresentEx, or CheckDeviceState can return this error. Recovery is similar to D3DERR_DEVICEHUNG, though the application may want to reduce its per-frame memory usage as well to avoid having the error recur. 193 | 194 | 195 | 2289436779 196 | The requested device type is not valid. 197 | 198 | 199 | 2289436780 200 | The method call is invalid. For example, a method's parameter may not be a valid pointer. 201 | 202 | 203 | 2289436781 204 | Not used. 205 | 206 | 207 | 2289435164 208 | The previous blit operation that is transferring information to or from this surface is incomplete. 209 | 210 | 211 | 141953135 212 | This is a success code. However, the autogeneration of mipmaps is not supported for this format. This means that resource creation will succeed but the mipmap levels will not be automatically generated. 213 | 214 | 215 | 216 | 2289436784 217 | The hardware adapter has been removed. Application must destroy the device, do enumeration of adapters and create another Direct3D device. If application continues rendering without calling Reset, the rendering calls will succeed. Applies to Direct3D 9Ex only. 218 | 219 | 220 | 141953141 221 | At least one allocation that comprises the resources is on disk. Direct3D 9Ex only. 222 | 223 | 224 | 141953142 225 | No allocations that comprise the resources are on disk. However, at least one allocation is not in GPU-accessible memory. Direct3D 9Ex only. 226 | 227 | 228 | 141953143 229 | The desktop display mode has been changed. The application can continue rendering, but there might be color conversion/stretching. Pick a back buffer format similar to the current display mode, and call Reset to recreate the swap chains. The device will leave this state after a Reset is called. Direct3D 9Ex only. 230 | 231 | 232 | 141953144 233 | The presentation area is occluded. Occlusion means that the presentation window is minimized or another device entered the fullscreen mode on the same monitor as the presentation window and the presentation window is completely on that monitor. Occlusion will not occur if the client area is covered by another Window. Occluded applications can continue rendering and all calls will succeed, but the occluded presentation window will not be updated. Preferably the application should stop rendering to the presentation window using the device and keep calling CheckDeviceState until S_OK or S_PRESENT_MODE_CHANGED returns. Direct3D 9Ex only. 234 | 235 | 236 | 2289436788 237 | The device that returned this code caused the hardware adapter to be reset by the OS. Most applications should destroy the device and quit. Applications that must continue should destroy all video memory objects (surfaces, textures, state blocks etc) and call Reset() to put the device in a default state. If the application then continues rendering in the same way, the device will return to this state. Applies to Direct3D 9Ex only. 238 | 239 | 240 | 0x8876087b 241 | The device does not support overlay for the specified size or display mode. Direct3D 9Ex under Windows 7 only. 242 | 243 | 244 | 0x8876087c 245 | The device does not support overlay for the specified surface format. Direct3D 9Ex under Windows 7 only. 246 | 247 | 248 | 0x8876087d 249 | The specified content cannot be protected. Direct3D 9Ex under Windows 7 only. 250 | 251 | 252 | 0x8876087e 253 | The specified cryptographic algorithm is not supported. Direct3D 9Ex under Windows 7 only. 254 | 255 | 256 | 0x88760884 257 | The present statistics have no orderly sequence. Direct3D 9Ex under Windows 7 only. 258 | 259 | 260 | 261 | 262 | 0x88790002 263 | The file was not found. 264 | 265 | 266 | 0x88790001 267 | There are too many unique instances of a particular type of state object. 268 | 269 | 270 | 271 | 272 | 0x887c0002 273 | The file was not found. 274 | 275 | 276 | 0x887c0001 277 | There are too many unique instances of a particular type of state object. 278 | 279 | 280 | 0x887c0003 281 | There are too many unique instances of a particular type of view object. 282 | 283 | 284 | 0x887c0004 285 | The first call to ID3D11DeviceContext::Map after either ID3D11Device::CreateDeferredContext or ID3D11DeviceContext::FinishCommandList per Resource was not D3D11_MAP_WRITE_DISCARD. 286 | 287 | 288 | 289 | 290 | 2289434629 291 | 292 | 293 | 2289434634 294 | 295 | 296 | 2289434644 297 | 298 | 299 | 2289434664 300 | 301 | 302 | 2289434679 303 | 304 | 305 | 2289434714 306 | 307 | 308 | 2289434719 309 | 310 | 311 | 2289434724 312 | 313 | 314 | 2289434734 315 | 316 | 317 | 2289434744 318 | 319 | 320 | 2289434754 321 | 322 | 323 | 2289434769 324 | 325 | 326 | 2289434774 327 | 328 | 329 | 2289434784 330 | 331 | 332 | 2289434794 333 | 334 | 335 | 2289434795 336 | 337 | 338 | 2289434796 339 | 340 | 341 | 2289434829 342 | 343 | 344 | 2289434834 345 | 346 | 347 | 2289434836 348 | 349 | 350 | 2289434839 351 | 352 | 353 | 2289434844 354 | 355 | 356 | 2289434846 357 | 358 | 359 | 2289434849 360 | 361 | 362 | 2289434854 363 | 364 | 365 | 2289434864 366 | 367 | 368 | 2289434874 369 | 370 | 371 | 2289434879 372 | 373 | 374 | 2289434884 375 | 376 | 377 | 2289434894 378 | 379 | 380 | 2289434904 381 | 382 | 383 | 2289434914 384 | 385 | 386 | 2289434934 387 | 388 | 389 | 2289434950 390 | 391 | 392 | 2289434951 393 | 394 | 395 | 2289434954 396 | 397 | 398 | 2289434964 399 | 400 | 401 | 2289434969 402 | 403 | 404 | 2289434974 405 | 406 | 407 | 2289434984 408 | 409 | 410 | 2289434994 411 | 412 | 413 | 2289435006 414 | 415 | 416 | 2289435008 417 | 418 | 419 | 2289435011 420 | 421 | 422 | 2289435024 423 | 424 | 425 | 2289435034 426 | 427 | 428 | 2289435044 429 | 430 | 431 | 2289435054 432 | 433 | 434 | 2289435059 435 | 436 | 437 | 2289435064 438 | 439 | 440 | 2289435074 441 | 442 | 443 | 2289435084 444 | 445 | 446 | 2289435094 447 | 448 | 449 | 2289435104 450 | 451 | 452 | 2289435114 453 | 454 | 455 | 2289435134 456 | 457 | 458 | 2289435144 459 | 460 | 461 | 2289435145 462 | 463 | 464 | 2289435161 465 | 466 | 467 | 2289435166 468 | 469 | 470 | 2289435184 471 | 472 | 473 | 2289435185 474 | 475 | 476 | 2289435186 477 | 478 | 479 | 2289435187 480 | 481 | 482 | 2289435188 483 | 484 | 485 | 2289435189 486 | 487 | 488 | 2289435190 489 | 490 | 491 | 2289435191 492 | 493 | 494 | 2289435192 495 | 496 | 497 | 2289435193 498 | 499 | 500 | 2289435194 501 | 502 | 503 | 2289435195 504 | 505 | 506 | 2289435196 507 | 508 | 509 | 2289435197 510 | 511 | 512 | 2289435198 513 | 514 | 515 | 2289435199 516 | 517 | 518 | 2289435200 519 | 520 | 521 | 2289435201 522 | 523 | 524 | 2289435202 525 | 526 | 527 | 2289435203 528 | 529 | 530 | 2289435204 531 | 532 | 533 | 2289435205 534 | 535 | 536 | 2289435206 537 | 538 | 539 | 2289435207 540 | 541 | 542 | 2289435208 543 | 544 | 545 | 2289435209 546 | 547 | 548 | 2289435210 549 | 550 | 551 | 2289435211 552 | 553 | 554 | 2289435212 555 | 556 | 557 | 2289435213 558 | 559 | 560 | 2289435214 561 | 562 | 563 | 2289435215 564 | 565 | 566 | 2289435216 567 | 568 | 569 | 2289435224 570 | 571 | 572 | 2289435225 573 | 574 | 575 | 2289435226 576 | 577 | 578 | 2289435227 579 | 580 | 581 | 2289435244 582 | 583 | 584 | 2289435254 585 | 586 | 587 | 2289435264 588 | 589 | 590 | 2289435284 591 | 592 | 593 | 2289435304 594 | 595 | 596 | 2289435314 597 | 598 | 599 | 2289435315 600 | 601 | 602 | 2289435316 603 | 604 | 605 | 2289435317 606 | 607 | 608 | 2289435318 609 | 610 | 611 | 2289435319 612 | 613 | 614 | 2289435320 615 | 616 | 617 | 2289435321 618 | 619 | 620 | 2289435323 621 | 622 | 623 | -------------------------------------------------------------------------------- /Eigen.natvis: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | [{$T2}, {$T3}] 9 | 10 | 11 | 2 12 | $i==0 ? $T2 : $T3 13 | m_storage.m_data.array 14 | 15 | 16 | Backward 17 | 2 18 | $i==0 ? $T2 : $T3 19 | m_storage.m_data.array 20 | 21 | 22 | 23 | 24 | 25 | 26 | [2, 2] 27 | 28 | 29 | {m_storage.m_data.array[0]} {m_storage.m_data.array[1]} 30 | 31 | 32 | {m_storage.m_data.array[0]} {m_storage.m_data.array[2]} 33 | 34 | 35 | {m_storage.m_data.array[2]} {m_storage.m_data.array[3]} 36 | 37 | 38 | {m_storage.m_data.array[1]} {m_storage.m_data.array[3]} 39 | 40 | 41 | 42 | 43 | 44 | 45 | [3, 3] 46 | 47 | 48 | {m_storage.m_data.array[0]} {m_storage.m_data.array[1]} {m_storage.m_data.array[2]} 49 | 50 | 51 | {m_storage.m_data.array[0]} {m_storage.m_data.array[3]} {m_storage.m_data.array[6]} 52 | 53 | 54 | {m_storage.m_data.array[3]} {m_storage.m_data.array[4]} {m_storage.m_data.array[5]} 55 | 56 | 57 | {m_storage.m_data.array[1]} {m_storage.m_data.array[4]} {m_storage.m_data.array[7]} 58 | 59 | 60 | {m_storage.m_data.array[6]} {m_storage.m_data.array[7]} {m_storage.m_data.array[8]} 61 | 62 | 63 | {m_storage.m_data.array[2]} {m_storage.m_data.array[5]} {m_storage.m_data.array[8]} 64 | 65 | 66 | 67 | 68 | 69 | 70 | [3, 4] 71 | 72 | 73 | {m_storage.m_data.array[0]} {m_storage.m_data.array[1]} {m_storage.m_data.array[2]} {m_storage.m_data.array[3]} 74 | 75 | 76 | {m_storage.m_data.array[0]} {m_storage.m_data.array[3]} {m_storage.m_data.array[6]} {m_storage.m_data.array[9]} 77 | 78 | 79 | {m_storage.m_data.array[4]} {m_storage.m_data.array[5]} {m_storage.m_data.array[6]} {m_storage.m_data.array[7]} 80 | 81 | 82 | {m_storage.m_data.array[1]} {m_storage.m_data.array[4]} {m_storage.m_data.array[7]} {m_storage.m_data.array[10]} 83 | 84 | 85 | {m_storage.m_data.array[8]} {m_storage.m_data.array[9]} {m_storage.m_data.array[10]} {m_storage.m_data.array[11]} 86 | 87 | 88 | {m_storage.m_data.array[2]} {m_storage.m_data.array[5]} {m_storage.m_data.array[8]} {m_storage.m_data.array[11]} 89 | 90 | 91 | 92 | 93 | 94 | 95 | [4, 4] 96 | 97 | 98 | {m_storage.m_data.array[0]} {m_storage.m_data.array[1]} {m_storage.m_data.array[2]} {m_storage.m_data.array[3]} 99 | 100 | 101 | {m_storage.m_data.array[0]} {m_storage.m_data.array[4]} {m_storage.m_data.array[8]} {m_storage.m_data.array[12]} 102 | 103 | 104 | {m_storage.m_data.array[4]} {m_storage.m_data.array[5]} {m_storage.m_data.array[6]} {m_storage.m_data.array[7]} 105 | 106 | 107 | {m_storage.m_data.array[1]} {m_storage.m_data.array[5]} {m_storage.m_data.array[9]} {m_storage.m_data.array[13]} 108 | 109 | 110 | {m_storage.m_data.array[8]} {m_storage.m_data.array[9]} {m_storage.m_data.array[10]} {m_storage.m_data.array[11]} 111 | 112 | 113 | {m_storage.m_data.array[2]} {m_storage.m_data.array[6]} {m_storage.m_data.array[10]} {m_storage.m_data.array[14]} 114 | 115 | 116 | {m_storage.m_data.array[12]} {m_storage.m_data.array[13]} {m_storage.m_data.array[14]} {m_storage.m_data.array[15]} 117 | 118 | 119 | {m_storage.m_data.array[3]} {m_storage.m_data.array[7]} {m_storage.m_data.array[11]} {m_storage.m_data.array[15]} 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | empty 128 | [{m_storage.m_rows}, {m_storage.m_cols}] (dynamic matrix) 129 | 130 | 131 | 2 132 | $i==0 ? m_storage.m_rows : m_storage.m_cols 133 | m_storage.m_data 134 | 135 | 136 | Backward 137 | 2 138 | $i==0 ? m_storage.m_rows : m_storage.m_cols 139 | m_storage.m_data 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | empty 148 | [{$T2}, {m_storage.m_cols}] (dynamic column matrix) 149 | 150 | 151 | 2 152 | $i==0 ? $T2 : m_storage.m_cols 153 | m_storage.m_data 154 | 155 | 156 | Backward 157 | 2 158 | $i==0 ? $T2 : m_storage.m_cols 159 | m_storage.m_data 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | empty 168 | [{m_storage.m_rows}, {$T2}] (dynamic row matrix) 169 | 170 | 171 | 2 172 | $i==0 ? m_storage.m_rows : $T2 173 | m_storage.m_data 174 | 175 | 176 | Backward 177 | 2 178 | $i==0 ? m_storage.m_rows : $T2 179 | m_storage.m_data 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | empty 188 | [{m_storage.m_cols}] (dynamic column vector) 189 | 190 | m_storage.m_cols 191 | 192 | m_storage.m_cols 193 | m_storage.m_data 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | empty 202 | [{m_storage.m_rows}] (dynamic row vector) 203 | 204 | m_storage.m_rows 205 | 206 | m_storage.m_rows 207 | m_storage.m_data 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | [1] {m_storage.m_data.array[0]} 216 | 217 | m_storage.m_data.array[0] 218 | 219 | 220 | 221 | 222 | 223 | 224 | [2] {m_storage.m_data.array[0]} {m_storage.m_data.array[1]} 225 | 226 | m_storage.m_data.array[0] 227 | m_storage.m_data.array[1] 228 | 229 | 230 | 231 | 232 | 233 | 234 | [3] {m_storage.m_data.array[0]} {m_storage.m_data.array[1]} {m_storage.m_data.array[2]} 235 | 236 | m_storage.m_data.array[0] 237 | m_storage.m_data.array[1] 238 | m_storage.m_data.array[2] 239 | 240 | 241 | 242 | 243 | 244 | 245 | [4] {m_storage.m_data.array[0]} {m_storage.m_data.array[1]} {m_storage.m_data.array[2]} {m_storage.m_data.array[3]} 246 | 247 | m_storage.m_data.array[0] 248 | m_storage.m_data.array[1] 249 | m_storage.m_data.array[2] 250 | m_storage.m_data.array[3] 251 | 252 | 253 | 254 | 255 | -------------------------------------------------------------------------------- /Geometry.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | m_storage.m_data.array[0] 6 | m_storage.m_data.array[1] 7 | 8 | 9 | 10 | 11 | 12 | 13 | points._vector 14 | points._size 15 | 16 | 17 | 18 | 19 | 20 | 21 | _vector 22 | _size 23 | 24 | 25 | 26 | 27 | 28 | 29 | points._Mypair._Myval2._Myfirst 30 | points._Mypair._Myval2._Mylast - points._Mypair._Myval2._Myfirst 31 | 32 | 33 | 34 | 35 | 36 | 37 | _Mypair._Myval2._Myfirst 38 | _Mypair._Myval2._Mylast - _Mypair._Myval2._Myfirst 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /MVE.natvis: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | {{ {c} x {w} x {h} - {"$T1",sb} }} 15 | 16 | 17 | UINT8 18 | 19 | 20 | UINT16 21 | 22 | 23 | FLOAT32 24 | 25 | 26 | FLOAT64 27 | 28 | c 29 | w 30 | h 31 | data._Mypair._Myval2._Myfirst 32 | sizeof($T1)*c*w 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /Open3D.natvis: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | {{ {num_of_channels_} x {width_} x {height_} }} 13 | 14 | 15 | UINT8 16 | 17 | 18 | UINT16 19 | 20 | 21 | FLOAT32 22 | 23 | 24 | FLOAT64 25 | 26 | num_of_channels_ 27 | width_ 28 | height_ 29 | data_._Mypair._Myval2._Myfirst 30 | bytes_per_channel_*num_of_channels_*width_ 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /OpenCV.natvis: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | {{UINT8, {((flags&0xfff)>>3)+1} x {cols} x {rows}}} 15 | {{INT8, {((flags&0xfff)>>3)+1} x {cols} x {rows}}} 16 | {{UINT16, {((flags&0xfff)>>3)+1} x {cols} x {rows}}} 17 | {{INT16, {((flags&0xfff)>>3)+1} x {cols} x {rows}}} 18 | {{INT32, {((flags&0xfff)>>3)+1} x {cols} x {rows}}} 19 | {{FLOAT32, {((flags&0xfff)>>3)+1} x {cols} x {rows}}} 20 | {{FLOAT64, {((flags&0xfff)>>3)+1} x {cols} x {rows}}} 21 | {{USER, {((flags&0xfff)>>3)+1} x {cols} x {rows}}} 22 | 23 | 24 | UINT8 25 | 26 | 27 | INT8 28 | 29 | 30 | UINT16 31 | 32 | 33 | INT16 34 | 35 | 36 | INT32 37 | 38 | 39 | FLOAT32 40 | 41 | 42 | FLOAT64 43 | 44 | ((flags&0xfff)>>3)+1 45 | cols 46 | rows 47 | step.p[0] 48 | true 49 | true 50 | data 51 | 52 | cols*rows*(((flags&0xfff)>>3)+1) 53 | (uint8_t*)data 54 | 55 | 56 | cols*rows*(((flags&0xfff)>>3)+1) 57 | (int8_t*)data 58 | 59 | 60 | cols*rows*(((flags&0xfff)>>3)+1) 61 | (uint16_t*)data 62 | 63 | 64 | cols*rows*(((flags&0xfff)>>3)+1) 65 | (int16_t*)data 66 | 67 | 68 | cols*rows*(((flags&0xfff)>>3)+1) 69 | (int32_t*)data 70 | 71 | 72 | cols*rows*(((flags&0xfff)>>3)+1) 73 | (float*)data 74 | 75 | 76 | cols*rows*(((flags&0xfff)>>3)+1) 77 | (double*)data 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | {{UINT8, {((type&0xfff)>>3)+1} x {cols} x {rows}}} 90 | {{INT8, {((type&0xfff)>>3)+1} x {cols} x {rows}}} 91 | {{UINT16, {((type&0xfff)>>3)+1} x {cols} x {rows}}} 92 | {{INT16, {((type&0xfff)>>3)+1} x {cols} x {rows}}} 93 | {{INT32, {((type&0xfff)>>3)+1} x {cols} x {rows}}} 94 | {{FLOAT32, {((type&0xfff)>>3)+1} x {cols} x {rows}}} 95 | {{FLOAT64, {((type&0xfff)>>3)+1} x {cols} x {rows}}} 96 | {{USER, {((type&0xfff)>>3)+1} x {cols} x {rows}}} 97 | 98 | 99 | UINT8 100 | 101 | 102 | INT8 103 | 104 | 105 | UINT16 106 | 107 | 108 | INT16 109 | 110 | 111 | INT32 112 | 113 | 114 | FLOAT32 115 | 116 | 117 | FLOAT64 118 | 119 | ((type&0xfff)>>3)+1 120 | cols 121 | rows 122 | 123 | step 124 | width*(((type&0xfff)>>3)+1)*(1<<((type&7)>>1)) 125 | data.ptr 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | {{UINT8, {nChannels} x {width} x {height}}} 137 | {{INT8, {nChannels} x {width} x {height}}} 138 | {{UINT16, {nChannels} x {width} x {height}}} 139 | {{INT16, {nChannels} x {width} x {height}}} 140 | {{INT32, {nChannels} x {width} x {height}}} 141 | {{FLOAT32, {nChannels} x {width} x {height}}} 142 | {{FLOAT64, {nChannels} x {width} x {height}}} 143 | 144 | 145 | UINT8 146 | 147 | 148 | INT8 149 | 150 | 151 | UINT16 152 | 153 | 154 | INT16 155 | 156 | 157 | INT32 158 | 159 | 160 | FLOAT32 161 | 162 | 163 | FLOAT64 164 | 165 | nChannels 166 | width 167 | height 168 | widthStep 169 | imageData 170 | 171 | 172 | 173 | 174 | {x} {y} 175 | 176 | 177 | {x} {y} {z} 178 | 179 | 180 | {width}×{height} 181 | 182 | width * height 183 | 184 | 185 | 186 | empty 187 | [start,end) 188 | 189 | end - start 190 | 191 | 192 | 193 | center={center} size={size} angle={angle}° 194 | 195 | 196 | {x} {y} {x + width} {y + height} [{width}×{height}] 197 | 198 | width * height 199 | 200 | 201 | 202 | 203 | 204 | 4 205 | val 206 | 207 | 208 | 209 | 210 | 211 | 212 | $T2 213 | val 214 | 215 | 216 | 217 | 218 | [{$T2}, {$T3}] 219 | 220 | 221 | $T2 * $T3 222 | val 223 | 224 | 225 | 226 | 227 | 228 | [2, 2] 229 | 230 | 231 | {val[0]} {val[1]} 232 | 233 | 234 | {val[2]} {val[3]} 235 | 236 | 237 | 238 | 239 | 240 | [3, 3] 241 | 242 | 243 | {val[0]} {val[1]} {val[2]} 244 | 245 | 246 | {val[3]} {val[4]} {val[5]} 247 | 248 | 249 | {val[6]} {val[7]} {val[8]} 250 | 251 | 252 | 253 | 254 | 255 | [3, 4] 256 | 257 | 258 | {val[0]} {val[1]} {val[2]} {val[3]} 259 | 260 | 261 | {val[4]} {val[5]} {val[6]} {val[7]} 262 | 263 | 264 | {val[8]} {val[9]} {val[10]} {val[11]} 265 | 266 | 267 | 268 | 269 | 270 | [4, 4] 271 | 272 | 273 | {val[0]} {val[1]} {val[2]} {val[3]} 274 | 275 | 276 | {val[4]} {val[5]} {val[6]} {val[7]} 277 | 278 | 279 | {val[8]} {val[9]} {val[10]} {val[11]} 280 | 281 | 282 | {val[12]} {val[13]} {val[14]} {val[15]} 283 | 284 | 285 | 286 | 287 | empty 288 | Ptr {*obj} [{*refcount} ref] 289 | Ptr {*obj} [{*refcount} refs] 290 | 291 | obj 292 | 293 | 294 | 295 | {{size = {size}}} 296 | 297 | 298 | size 299 | ptr 300 | 301 | 302 | 303 | 304 | 305 | {re} 306 | 307 | -i*{-im} 308 | i*{im} 309 | 310 | {re}-i*{-im} 311 | {re}+i*{im} 312 | 313 | re 314 | im 315 | 316 | 317 | 318 | msg 319 | 320 | 321 | 322 | {*(($T1*)ptr)} 323 | end 324 | 325 | ($T1*)ptr 326 | 327 | 328 | 329 | {*ptr} 330 | end 331 | 332 | ptr 333 | 334 | 335 | 336 | 337 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Custom views of various objects for Visual Studio debugger 2 | 3 | The Visual Studio Natvis framework lets you customize the way Visual Studio displays native types in debugger variable windows. This repository contains visualizers for popular libraries, like Eigen and OpenCV. 4 | -------------------------------------------------------------------------------- /SEACAVE.natvis: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | {{NULL}} 9 | {{{*m_pointer}}} 10 | 11 | 12 | *m_pointer 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | {{NULL}} 21 | {{{*m_pointer}}} 22 | 23 | 24 | *m_pointer 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | {{NULL}} 33 | {{refs={m_pNoRef->val} data={*m_pointer}}} 34 | 35 | 36 | *m_pointer 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | {{size={_size} capacity={_vectorSize}}} 45 | 46 | 47 | _size 48 | _vector 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | {{size={_size} capacity={$T2}}} 58 | 59 | 60 | _size 61 | _vector 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | {{UINT8, {((flags&0xfff)>>3)+1} x {cols} x {rows}}} 80 | {{INT8, {((flags&0xfff)>>3)+1} x {cols} x {rows}}} 81 | {{UINT16, {((flags&0xfff)>>3)+1} x {cols} x {rows}}} 82 | {{INT16, {((flags&0xfff)>>3)+1} x {cols} x {rows}}} 83 | {{INT32, {((flags&0xfff)>>3)+1} x {cols} x {rows}}} 84 | {{FLOAT32, {((flags&0xfff)>>3)+1} x {cols} x {rows}}} 85 | {{FLOAT64, {((flags&0xfff)>>3)+1} x {cols} x {rows}}} 86 | {{USER, {((flags&0xfff)>>3)+1} x {cols} x {rows}}} 87 | 88 | 89 | UINT8 90 | 91 | 92 | INT8 93 | 94 | 95 | UINT16 96 | 97 | 98 | INT16 99 | 100 | 101 | INT32 102 | 103 | 104 | FLOAT32 105 | 106 | 107 | FLOAT64 108 | 109 | ((flags&0xfff)>>3)+1 110 | cols 111 | rows 112 | step.p[0] 113 | true 114 | true 115 | data 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | {{UINT8, {((flags&0xfff)>>3)+1} x {cols} x {rows}}} 127 | {{INT8, {((flags&0xfff)>>3)+1} x {cols} x {rows}}} 128 | {{UINT16, {((flags&0xfff)>>3)+1} x {cols} x {rows}}} 129 | {{INT16, {((flags&0xfff)>>3)+1} x {cols} x {rows}}} 130 | {{INT32, {((flags&0xfff)>>3)+1} x {cols} x {rows}}} 131 | {{FLOAT32, {((flags&0xfff)>>3)+1} x {cols} x {rows}}} 132 | {{FLOAT64, {((flags&0xfff)>>3)+1} x {cols} x {rows}}} 133 | {{USER, {((flags&0xfff)>>3)+1} x {cols} x {rows}}} 134 | 135 | 136 | UINT8 137 | 138 | 139 | INT8 140 | 141 | 142 | UINT16 143 | 144 | 145 | INT16 146 | 147 | 148 | INT32 149 | 150 | 151 | FLOAT32 152 | 153 | 154 | FLOAT64 155 | 156 | ((flags&0xfff)>>3)+1 157 | cols 158 | rows 159 | step.p[0] 160 | true 161 | true 162 | data 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | {{min={ptMin} max={ptMax}}} 174 | 175 | ptMin 176 | ptMax 177 | ptMax.m_storage.m_data.array[0]-ptMin.m_storage.m_data.array[0] 178 | ptMax.m_storage.m_data.array[1]-ptMin.m_storage.m_data.array[1] 179 | ptMax.m_storage.m_data.array[2]-ptMin.m_storage.m_data.array[2] 180 | 181 | 182 | 183 | 184 | -------------------------------------------------------------------------------- /TinyXML2.natvis: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {start, [end-start]s} 5 | start, [end-start]s 6 | 7 | 8 | {value} 9 | value 10 | 11 | 12 | firstChild 13 | next 14 | this 15 | 16 | 17 | 18 | 19 | [CLOSED] {value} 20 | [CLOSING] {value} 21 | [OPEN] {value} 22 | value 23 | 24 | rootAttribute 25 | 26 | firstChild 27 | next 28 | this 29 | 30 | 31 | 32 | 33 | {name} = {value} 34 | 35 | 36 | this 37 | next 38 | this 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /pmp.natvis: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | idx_ 22 | 23 | 24 | 25 | --------------------------------------------------------------------------------