├── QCamera.natvis
├── QArrayData.natvis
├── Tesseract.natvis
├── LICENSE
├── QRegular.natvis
├── README.md
├── QUrl.natvis
├── std mutex.natvis
├── Endian.natvis
├── QImage.natvis
├── QMutex.natvis
├── QDir.natvis
├── JsonCpp.natvis
├── Leptonica.natvis
├── QMatrix.natvis
├── std containers.natvis
├── CppRest.natvis
├── OpenCV.natvis
├── PopplerCpp.natvis
├── QJson.natvis
├── PSD.natvis
└── qt5.natvis
/QCamera.natvis:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {*(Qt5Multimediad.dll!QCameraInfoPrivate*)(d.value)}
6 |
7 | *(Qt5Multimediad.dll!QCameraInfoPrivate*)(d.value)
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/QArrayData.natvis:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | ref {ref.atomic._q_value}, size {size}
6 |
7 |
8 | - reinterpret_cast<char *>(this) + offset, [size]
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Tesseract.natvis:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | null
7 | {{{((const char *)data_) + sizeof(STRING_HEADER),[((STRING_HEADER*)data_)->used_]s}}}
8 |
9 | - ((STRING_HEADER*)data_)->capacity_
10 | - ((STRING_HEADER*)data_)->used_
11 | - ((const char *)data_) + sizeof(STRING_HEADER),[((STRING_HEADER*)data_)->used_]s
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2018 Alexey Nikolaev
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/QRegular.natvis:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {*(Qt5Cored.dll!QRegularExpressionPrivate*)(d.d)}
6 |
7 | *(Qt5Cored.dll!QRegularExpressionPrivate*)(d.d)
8 |
9 |
10 |
11 |
12 | {pattern}
13 |
14 |
15 |
16 | {*(Qt5Cored.dll!QRegularExpressionMatchPrivate*)(d.d)}
17 |
18 | *(Qt5Cored.dll!QRegularExpressionMatchPrivate*)(d.d)
19 |
20 |
21 |
22 |
23 | {matchType}
24 |
25 |
26 | capturedCount
27 | &subject[capturedOffsets[$i*2]],[capturedOffsets[$i*2+1]-capturedOffsets[$i*2]]sub
28 |
29 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # natvis-collection
2 | MSVS debug visualization
3 | Put all `*.natvis` files to the `%USERPROFILE%\My Documents\Visual Studio 2017\Visualizers\`
4 |
5 | _Note._ After I install MSVS 2019, there is no `Visual Studio 2019\Visualizers\` - I found `Visual Studio 2019` folder in my documents with only one subfolder `Code Snippets` in there. So, I created `Visualizers` subfolder manually and it works.
6 |
7 | _Note._ Due to [visual studio bug](https://developercommunity.visualstudio.com/idea/373046/using-natvis-files-from-subfolder-of-documentsvisu.html) you can't combine different git repositories in the `%USERPROFILE%\My Documents\Visual Studio 2017\Visualizers\`. Please vote for this [bug/feature](https://developercommunity.visualstudio.com/idea/373046/using-natvis-files-from-subfolder-of-documentsvisu.html) if you want to help.
8 |
9 | ### QImage
10 | I tried to extract image information for the "Image Watch" directly from QImage, but "Image Watch" ignores it.
11 |
12 | So, for now, I've found only one way to show an image of type QImage: show QImageData. In the Autos/Locals/Watch window, select the `image` item of the QImage object to display it with "Image Watch"
13 |
14 | ### STL containers
15 |
16 | I added an alternate view of some STL containers. To see the original representation without deleting the `stl containers.natvis`, place `,view(stl)` after your container name in the debug view window, for example `this->curves,view(stl)`
--------------------------------------------------------------------------------
/QUrl.natvis:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {*(Qt5Cored.dll!QUrlPrivate*)(d)}
6 | null
7 |
8 | (Qt5Cored.dll!QUrlPrivate*)(d)
9 |
10 |
11 |
12 |
13 |
15 | empty
16 |
17 |
18 | {scheme}://{host}{path}?{query}
19 |
20 |
21 | {scheme}://{host}{path}
22 |
23 |
24 | {scheme}://{host}:{port}{path}?{query}
25 |
26 |
27 | {scheme}://{host}:{port}{path}
28 |
29 | {scheme}://{host}{path}
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/std mutex.natvis:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | - *((int*)&_Mtx_storage)
8 | - threadId()
9 | - lockedCount()
10 |
11 |
12 |
13 |
14 |
15 | mutex unlocked
16 | mutex locked({lockedCount()}) by thread (id={threadId()})
17 |
18 | (_Mutex_base*)this
19 |
20 |
21 |
22 |
23 |
24 | timed mutex unlocked
25 | recursive timed mutex locked({_My_locked}) by thread (id={_My_owner._Id})
26 | timed mutex locked({-_My_locked})
27 |
28 | _My_mutex
29 | - (int)_My_locked
30 | - _My_owner
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/Endian.natvis:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 | {arrayView(),[sizeof($T1)]na}
19 |
20 |
21 | {native()}
22 |
23 |
24 |
25 | {value} {{{(utils::endian)$T2,en} {value,h} {*this,view(str)}}}
26 |
27 |
28 |
29 | {{{(utils::endian)$T2,en} {value,h} {*this,view(str)}}}
30 |
31 |
32 | {*this,view(native)} {{{(utils::endian)$T2,en} {value,h}}}
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/QImage.natvis:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
19 |
20 |
21 | UINT8
22 |
23 |
24 | BGRA
25 | RGB
26 | RGBA
27 | 1
28 |
29 | - _this()->width
30 | - _this()->height
31 | - _this()->data
32 | - _this()->bytes_per_line
33 |
34 |
35 |
36 |
37 | {d, view(recursive)}
38 | empty
39 |
40 | - (QImageData*)d
41 | (Qt5Guid.dll!QImageData*)d, view(recursive)
42 |
43 |
44 |
45 |
--------------------------------------------------------------------------------
/QMutex.natvis:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | unlocked
7 | locked {{{d_ptr._q_value._My_val}}}
8 |
9 | - d_ptr._q_value._My_val
10 |
11 |
12 |
13 |
21 |
22 |
23 |
24 |
25 |
26 |
27 | {(Qt5Cored.dll!QRecursiveMutexPrivate*)atomicValue(),na}
28 | unlocked
29 | locked
30 |
31 | - ((Qt5Cored.dll!QRecursiveMutexPrivate*)atomicValue())->count
32 |
33 |
34 |
35 | {mutex} {count}
36 |
37 |
38 |
39 | locked
40 | unlocked
41 |
42 | *(QMutex *)(val & ~quintptr(1u))
43 |
44 |
45 |
46 |
47 | WriteLock
48 | ReadLock
49 | ReadWriteLock
50 | unlocked
51 |
52 |
53 |
54 |
--------------------------------------------------------------------------------
/QDir.natvis:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {*(Qt5Cored.dll!QDirPrivate*)(d_ptr.d)}
6 |
7 | (Qt5Cored.dll!QDirPrivate*)(d_ptr.d)
8 |
9 |
10 |
11 |
12 | {absoluteDirEntry.m_filePath}
13 | {dirEntry.m_filePath}
14 |
15 |
16 |
17 | {m_filePath}
18 |
19 |
20 |
21 | {*(Qt5Cored.dll!QFileInfoPrivate*)(d_ptr.d)}
22 |
23 | (Qt5Cored.dll!QFileInfoPrivate*)(d_ptr.d)
24 |
25 |
26 |
27 |
28 | {fileEntry.m_filePath}
29 |
30 |
31 |
32 | {*(Qt5Cored.dll!QFilePrivate*)(d_ptr.d)}
33 |
34 | (Qt5Cored.dll!QFilePrivate*)(d_ptr.d)
35 |
36 |
37 |
38 |
39 | {fileName}
40 |
41 |
42 |
43 |
44 | {(char*)(&m_string[m_offset]),[m_length]sub}
45 |
46 |
47 |
48 |
49 |
50 |
51 | {_buffer()->buffers[0].chunk,[_buffer()->bufferSize]}{xmlFile.d_ptr.d->writeBuffer}
52 |
53 | xmlFile
54 |
55 |
56 |
57 |
58 |
59 | {_buffer()->buffers[0].chunk,[_buffer()->bufferSize]}{d_ptr.d->writeBuffer}
60 |
61 | - _buffer()->buffers[0].chunk,[_buffer()->bufferSize]
62 | - d_ptr.d->writeBuffer
63 |
64 |
65 |
66 |
67 |
--------------------------------------------------------------------------------
/JsonCpp.natvis:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | _Mypair._Myval2._Myval2._Mysize
8 | _Mypair._Myval2._Myval2._Myhead->_Parent
9 | _Left
10 | _Right
11 | _Myval,view(jsoncpp)
12 |
13 |
14 |
15 |
16 |
17 | {first.cstr_,s8}: {second}
18 | {second}
19 |
20 | - first.cstr_,s8
21 | - second
22 | *(second.value_.map_),view(jsoncpp)
23 |
24 |
25 |
26 |
27 | {cstr_,s8}
28 |
29 |
30 |
31 | null
32 | {value_.int_}
33 | {value_.uint_}
34 | {value_.real_}
35 |
36 | {value_.string_ + sizeof(unsigned),s8}
37 | {value_.string_,s8}
38 |
39 | {value_.bool_}
40 | array ({value_.map_->_Mypair._Myval2._Myval2._Mysize})
41 | object ({value_.map_->_Mypair._Myval2._Myval2._Mysize})
42 | Unknown Value type!
43 |
44 | value_.string_ + sizeof(unsigned),s8
45 | value_.string_,s8
46 |
47 |
48 | *(value_.map_),view(jsoncpp)
49 |
50 |
51 |
--------------------------------------------------------------------------------
/Leptonica.natvis:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 | {{{spp}({(d+7)/8}) x {w} x {h}}}
14 |
15 |
33 |
34 |
35 | UINT8
36 |
37 |
38 | 1
39 | RGB
40 | {d/8}
41 |
42 |
43 | {(w * d + 7) / 8}
44 | {w}
45 |
46 | - h
47 | - wpl * 4
48 | - data
49 |
50 |
51 |
52 |
53 | {{{n} blocks}}
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 | - pix[i]
62 | - boxa[i]
63 | i++
64 |
65 |
66 |
67 |
68 |
69 |
--------------------------------------------------------------------------------
/QMatrix.natvis:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
19 |
26 | {ss()} {{ {&m[0][0],[4] nag}, {&m[1][0],[4] nag}, {&m[2][0],[4] nag}, {&m[3][0],[4] nag} }}
27 | Scale | Translation {{ {&m[0][0],[4] nag}, {&m[1][0],[4] nag}, {&m[2][0],[4] nag}, {&m[3][0],[4] nag} }}
28 | {{ ({flagBits}) }} {{ {&m[0][0],[4] nag}, {&m[1][0],[4] nag}, {&m[2][0],[4] nag}, {&m[3][0],[4] nag} }}
29 |
30 |
31 | FLOAT32
32 | FLOAT64
33 |
34 | - 1
35 | - 4
36 | - 4
37 | - sizeof(m[0])
38 | - (void*)m
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 | {{{{{_m11,g}, {_m12,g}, {_dx,g}}}, {{{_m21,g}, {_m22,g}, {_dy,g}}}}}
50 |
51 |
52 |
53 | FLOAT32
54 | FLOAT64
55 |
56 | - 1
57 | - 2
58 | - 3
59 | - sizeof(_m11)*2
60 | - (void*)this
61 |
62 |
63 |
64 |
65 |
66 | QOpenGLTexture (textureId = {the()->textureId}, format = {the()->format})
67 |
68 | the()
69 |
70 |
71 |
72 |
73 |
--------------------------------------------------------------------------------
/std containers.natvis:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {{empty}}
5 | {_Elems[0],g}
6 | ({_Elems[0],g}, {_Elems[1],g})
7 | ({_Elems[0],g}, {_Elems[1],g}, {_Elems[2],g})
8 | ({_Elems[0],g}) .. {{size={$T2-2}}} .. ({_Elems[$T2-1],g})
9 |
10 |
11 | $T2
12 | _Elems
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 | {{empty}}
23 | {pointer()[0],g}
24 | ({pointer()[0],g}), ({pointerLast()[-1],g})
25 | ({pointer()[0],g}) .. {{size={size()-2}}} .. ({pointerLast()[-1],g})
26 |
27 |
28 | size()
29 | pointer()
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 | {{empty}}
39 | {head()->_Left->_Myval}
40 | ({head()->_Left->_Myval}), ({head()->_Right->_Myval})
41 | ({head()->_Left->_Myval}) .. {{size={size()-2}}} .. ({head()->_Right->_Myval})
42 |
43 |
44 | _Mypair._Myval2._Myval2._Mysize
45 | _Mypair._Myval2._Myval2._Myhead->_Parent
46 | _Left
47 | _Right
48 | _Myval
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 | {{empty}}
58 | {head()->_Left->_Myval}
59 | ({head()->_Left->_Myval}), ({head()->_Right->_Myval})
60 | ({head()->_Left->_Myval}) .. {{size={size()-2}}} .. ({head()->_Right->_Myval})
61 |
62 |
63 | _Mypair._Myval2._Myval2._Mysize
64 | _Mypair._Myval2._Myval2._Myhead->_Parent
65 | _Left
66 | _Right
67 | _Myval,view(MapHelper)
68 |
69 |
70 |
71 |
72 |
73 |
--------------------------------------------------------------------------------
/CppRest.natvis:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | ({m_uri})
7 |
8 |
9 |
10 | {"default"}
11 | {"disabled"}
12 | {m_address}
13 |
14 |
15 |
16 | [{_m_impl._Ptr->m_method}]
17 |
18 | - ((*((web::http::details::http_msg_base*)(&(*((web::http::details::_http_request*)((_m_impl)._Ptr)))))).m_headers).m_headers
19 |
20 |
21 |
22 |
23 | [{_m_impl._Ptr->m_status_code}, {_m_impl._Ptr->m_reason_phrase}]
24 |
25 | - _m_impl._Ptr->m_status_code
26 | - _m_impl._Ptr->m_reason_phrase
27 | - ((*((web::http::details::http_msg_base*)(&(*((web::http::details::_http_request*)((_m_impl)._Ptr)))))).m_headers).m_headers
28 |
29 |
30 |
31 |
32 |
33 | Number {(*((web::json::details::_Number*)((m_value)._Myptr))).m_intval}
34 |
35 |
36 | Number {(*((web::json::details::_Number*)((m_value)._Myptr))).m_value}
37 |
38 |
39 | Boolean {(*((web::json::details::_Boolean*)(m_value._Myptr))).m_value}
40 |
41 |
42 | String {((((&((*((web::json::details::_String*)(m_value._Myptr))).m_wstring)))))->_Myptr}
43 |
44 |
45 | String {((((&((*((web::json::details::_String*)(m_value._Myptr))).m_string)))))->_Myptr}
46 |
47 |
48 | Object {(*((web::json::details::_Value*)(m_value._Myptr))).m_elements}
49 |
50 |
51 | Array {(*((web::json::details::_Value*)(m_value._Myptr))).m_elements}
52 |
53 | Null
54 | not initialized
55 |
56 |
57 |
58 | (*((web::json::details::_Value*)((m_value)._Myptr))).m_elements._Mylast - (*((web::json::details::_Value*)((m_value)._Myptr))).m_elements._Myfirst
59 | (*((web::json::details::_Value*)((m_value)._Myptr))).m_elements._Myfirst
60 |
61 |
62 |
63 | (*((web::json::details::_Value*)((m_value)._Myptr))).m_elements._Mylast - (*((web::json::details::_Value*)((m_value)._Myptr))).m_elements._Myfirst
64 | (*((web::json::details::_Value*)((m_value)._Myptr))).m_elements._Myfirst
65 |
66 |
67 |
68 |
69 |
70 |
--------------------------------------------------------------------------------
/OpenCV.natvis:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | {($T1*)val,[$T2*$T3]nag}
11 |
12 | - ($T1*)val,[$T2*$T3]nag
13 |
14 | FLOAT64
15 | FLOAT32
16 | INT32
17 | INT16
18 | UINT16
19 | INT8
20 | UINT8
21 | UINT8
22 |
23 | - 1
24 | - $T3
25 | - $T2
26 | - $T3 * sizeof($T1)
27 | - (void*)val
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 | null
43 | Mat {(cv::Mat*)obj}
44 | UMat {(cv::UMat*)obj}
45 | MatExpr {(cv::MatExpr*)obj}
46 | MATX { (cv::Scalar*)obj,na }
47 | vector {obj}
48 | array {obj}
49 | vector {obj}
50 | None
51 |
52 |
53 | - obj
54 | - (cv::Mat*)obj
55 | - (cv::UMat*)obj
56 | - (cv::MatExpr*)obj
57 | - (cv::Scalar*)obj,na
58 |
59 | (cv::Mat*)((void**)obj)[2] - (cv::Mat*)((void**)obj)[1]
60 | (cv::Mat*)((void**)obj)[1]
61 |
62 |
63 | sz.height
64 | (cv::Mat*)obj
65 |
66 |
67 | (cv::UMat*)((void**)obj)[2] - (cv::UMat*)((void**)obj)[1]
68 | (cv::UMat*)((void**)obj)[1]
69 |
70 |
71 |
72 |
73 |
74 | {{{($T1*)val,[$T2]nag}}}
75 |
76 |
77 |
78 | {{{val,[4]g}}}
79 |
80 |
81 |
82 | {{x={x,g}, y={y,g}, width={width,g}, height={height,g}}}
83 |
84 |
85 |
--------------------------------------------------------------------------------
/PopplerCpp.natvis:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 | none
10 | null
11 | dead
12 | objError
13 | objEOF
14 | {booln}
15 | {intg}
16 | {real}
17 | {int64g}
18 | {cString}
19 |
20 | booln
21 | intg
22 | real
23 | string
24 | int64g
25 | array
26 | dict
27 | stream
28 | ref
29 | cString
30 | type
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 | {{{bitsPerChannel} x {width} x {height}}}
40 |
41 |
42 | UINT8
43 |
44 |
45 | RGB
46 | {channels}
47 |
48 | - width
49 | - (width * bitsPerChannel + 7) / 8
50 | - height
51 | - &data[0]
52 | - rowSize
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 | {{{mode} x {width} x {height}}}
62 |
63 |
64 | UINT8
65 |
66 |
67 | 1
68 | RGB
69 | BGR
70 | BGRA
71 | BGRA
72 | 8
73 | 1
74 |
75 | - width
76 | - height
77 | - data
78 | - rowSize
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 | {{({x}, {y}) {w} x {h}}}
88 |
89 |
90 | UINT8
91 |
92 | - 1
93 | - (w+7)/8
94 | - h
95 | - data
96 | - (w+7)/8
97 |
98 |
99 |
100 |
101 | {{{length,d} points, no Current Point}}
102 | {{{length,d} points, start at {curSubpath}}}
103 |
104 | - pts, [length]
105 | - flags, [length] b
106 |
107 |
108 |
109 |
110 |
115 | {{{n} subpath, new subpath was just started ({firstX,g}, {firstY,g})}}
116 | {{{n} subpath, first point in new subpath ({firstX,g}, {firstY,g})}}
117 |
118 |
119 | n
120 | (GfxSubpath **)subpaths,g
121 |
122 |
123 |
124 |
125 |
126 | {{{flags,d} [({x0,g}, {y0,g}) ({x1,g}, {y1,g})] [{dxdy,g},{dydx,g}]}}
127 |
128 |
129 |
130 | {{{length,d} segments}}
131 |
132 |
133 | length
134 | segs
135 |
136 |
137 |
138 |
139 |
140 |
145 | {{{n} points, path is closed}}
146 | {{{n} points}}
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 | - curve[i]
155 | - x[i]
156 | - y[i]
157 | i++
158 |
159 |
160 |
161 |
162 |
163 |
164 | StateSave
165 |
166 |
167 | StateRestore
168 |
169 |
170 | TextStart
171 |
172 |
173 | TextStop
174 |
175 |
176 | GlyphDraw clip "{&unicode,sub}"
177 | GlyphDraw "{&unicode,sub}"
178 |
179 |
180 | ({x,g}, {y,g}) first point
181 | ({x,g}, {y,g}) last point
182 | ({x,g}, {y,g}) Bezier control point
183 | ({x,g}, {y,g}) {firstPoint?1:0} {lastPoint?1:0} {pathClosed?1:0} {pathCurve?1:0}
184 |
185 |
186 | ContourDraw [{contourData->points}]
187 |
188 |
189 | ImageDraw
190 |
191 |
192 | SplashBitmapResult
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 | {{{format} x {width} x {height}}}
203 |
204 |
205 | UINT8
206 |
207 |
208 | 1
209 | RGB
210 | RGBA
211 | RGBA
212 | {channels}
213 |
214 | - rowSize/channels
215 | - height
216 | - &data[0]
217 | - rowSize
218 |
219 |
220 |
221 |
222 |
--------------------------------------------------------------------------------
/QJson.natvis:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | empty
6 |
7 | ((Qt5Cored.dll!QJsonDocumentPrivate*)(d._Mypair._Myval2))->value
8 |
9 |
10 |
11 |
12 |
13 | nullptr
14 | false
15 | true
16 | {n}
17 | {*(double*)&n}
18 | {cbor()->byteDataAt(n)->str(),[cbor()->byteDataAt(n)->len]na}
19 |
20 | - cbor()
21 | - cbor(),view(map)
22 |
23 |
24 |
25 |
26 |
27 |
28 | cbor()
29 |
30 |
31 |
32 |
33 |
34 | empty
35 |
36 | cbor(),view(map)
37 |
38 |
39 |
40 |
41 | nullptr
42 | false
43 | true
44 | {n}
45 | {*(double*)&n}
46 | {container->byteDataAt(n)->str(),[container->byteDataAt(n)->len]na}
47 |
48 | - container,na
49 | - container,view(map)na
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 | - byteDataAt(i)->str(),[byteDataAt(i)->len]na
66 |
67 |
68 | - tt()->elements.at(i)
69 |
70 |
71 |
72 |
73 | - tt()->elements.at(i).container,na
74 |
75 |
76 | - tt()->elements.at(i).container,view(map)na
77 |
78 |
79 |
80 | - tt()->elements.at(i)
81 |
82 | ++i
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 | key = byteDataAt(i)->str()
94 | len = byteDataAt(i)->len
95 |
96 |
97 |
98 |
99 | - byteDataAt(i)->str(),[byteDataAt(i)->len]na
100 |
101 |
102 | - tt()->elements.at(i)
103 |
104 |
105 |
106 |
107 | - tt()->elements.at(i).container,na
108 |
109 |
110 | - tt()->elements.at(i).container,view(map)na
111 |
112 |
113 |
114 | - tt()->elements.at(i)
115 |
116 |
117 | ++i
118 |
119 |
120 |
121 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 | nullptr
133 | false
134 | true
135 | {value}
136 | {*(double*)&value}
137 |
138 |
139 |
140 |
141 | - nullptr
142 |
143 |
144 | - (Qt5Cored.dll!QJsonPrivate::Object*)(this->o)
145 | - (void*)this->o
146 |
147 |
148 |
149 |
150 |
151 |
152 | - nullptr
153 |
154 |
155 |
156 | - (Qt5Cored.dll!QJsonPrivate::Array*)this->a
157 | - (void*)this->a
158 |
159 |
160 |
161 |
162 |
163 | array
164 | object [{index,d}]
165 |
166 |
167 | - a->a
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 | pk = reinterpret_cast<void*>(base + tabl[index])
178 | - ((Qt5Cored.dll!QJsonPrivate::Entry *)pk)->value
179 |
180 |
181 | - 0
182 |
183 |
184 |
185 |
186 |
187 |
188 | nullptr
189 |
190 | - b
191 | - dbl
192 | - stringData
193 | - (Qt5Cored.dll!QJsonPrivate::Array *)(base)
194 | - (Qt5Cored.dll!QJsonPrivate::Object *)(base)
195 |
196 |
197 |
198 |
199 |
200 | {(val >> $T1) & ((1 << $T2) - 1)}
201 |
202 | - (val >> $T1) & ((1 << $T2) - 1)
203 |
204 |
205 |
206 |
207 | {val}
208 |
209 |
210 |
211 |
212 |
213 |
214 |
215 |
216 |
217 |
218 |
219 |
220 |
221 |
222 |
223 |
224 |
225 | entry=((char *)this + of[i])
226 | stringdata=(entry + sizeof(Qt5Cored.dll!QJsonPrivate::Entry))
227 |
228 | key=((Qt5Cored.dll!Latin1String::Data*)stringdata)->latin1
229 | - ((Qt5Cored.dll!QJsonPrivate::Entry*)entry)->value
230 |
231 |
232 | key=(char*)((Qt5Cored.dll!String::Data*)stringdata)->utf16
233 | - ((Qt5Cored.dll!QJsonPrivate::Entry*)entry)->value
234 |
235 | i++
236 |
237 |
238 |
239 |
240 |
241 |
242 |
243 |
244 |
245 |
246 |
247 |
248 |
249 |
250 |
251 |
252 |
253 |
254 |
255 |
256 |
257 |
258 |
259 | jval = reinterpret_cast<void*>(of + i)
260 | typ = ((Qt5Cored.dll!QJsonPrivate::Value *)jval)->type.val & 7
261 | lat = !!((((Qt5Cored.dll!QJsonPrivate::Value *)jval)->latinOrIntValue.val >> 3) & 1)
262 | val = ((Qt5Cored.dll!QJsonPrivate::Value *)jval)->value.val >> 5
263 | pk = base + val
264 |
265 | - nullptr
266 | - val != 0
267 | - (double)(val)
268 | - *(double*)(pk)
269 | - *(Qt5Cored.dll!QJsonPrivate::Latin1String::Data*)(pk)
270 | - *(Qt5Cored.dll!QJsonPrivate::String::Data*)(pk)
271 | - *(Qt5Cored.dll!QJsonPrivate::Array*)(pk)
272 | - *(Qt5Cored.dll!QJsonPrivate::Object*)(pk)
273 |
274 | i++
275 |
276 |
277 |
278 |
279 |
280 |
281 | {latin1, [length.val] s8}
282 |
283 |
284 |
285 | {utf16, [length.val] su}
286 |
287 |
288 |
289 |
290 | - value
291 |
292 |
293 |
294 |
295 |
296 |
297 |
298 |
299 |
300 |
301 |
302 |
303 |
304 |
305 | pk += (sizeof(ushort) + i + 3) & ~3
306 |
307 | - nullptr
308 | - int_value.val != 0
309 | - (double)(int_value.val >> 5)
310 | - *(double*)(pk)
311 | - *(QJsonPrivate::Latin1String::Data*)(pk)
312 | - *(QJsonPrivate::String::Data*)(pk)
313 | - (Qt5Cored.dll!QJsonPrivate::Array*)(pk)
314 | - (Qt5Cored.dll!QJsonPrivate::Object*)(pk)
315 |
316 |
317 |
318 |
319 |
320 |
321 |
322 |
--------------------------------------------------------------------------------
/PSD.natvis:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 | {{{width}, {height}, {depth}}}
12 |
13 |
14 |
15 | UINT8
16 | UINT8
17 | INT16
18 | FLOAT32
19 | UINT8
20 |
21 | - 1
22 |
23 | {width>2000?2000:((width+7)/8)}
24 | {width>2000?2000:width}
25 |
26 | - height>2000?2000:height
27 | - &data[0]
28 | - (width * depth + 7) / 8
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 | {{ pos = ({rect.x}, {rect.y}), size = ({rect.width}, {rect.height}), {depth}, {channels.size()} }}
38 |
39 |
40 |
41 | UINT8
42 | UINT8
43 | UINT16
44 | FLOAT32
45 | UINT8
46 |
47 | - (channels.size()<3?3:channels.size()) + (transparency.size()?1:0)
48 |
49 | {rect.width>2000?2000:((rect.width+7)/8)}
50 | {rect.width>2000?2000:rect.width}
51 |
52 | - rect.height>2000?2000:rect.height
53 | - (rect.width * depth + 7) / 8
54 | - (channels.size()<3?3:channels.size()) + (transparency.size()?1:0)
55 |
56 | {(void*)&channels[0][0]}; {(void*)&channels[0][0]}; {(void*)&channels[0][0]}; {(void*)&transparency[0]}
57 | {(void*)&channels[1][0]}; {(void*)&channels[0][0]}; {(void*)&channels[0][0]}; {(void*)&transparency[0]}
58 | {(void*)&channels[2][0]}; {(void*)&channels[1][0]}; {(void*)&channels[0][0]}; {(void*)&transparency[0]}
59 | {(void*)&channels[3][0]}; {(void*)&channels[2][0]}; {(void*)&channels[1][0]}; {(void*)&channels[0][0]}
60 | {(void*)&channels[0][0]}
61 |
62 |
63 | {(void*)&channels[0][0]}; {(void*)&channels[0][0]}; {(void*)&channels[0][0]}
64 | {(void*)&channels[1][0]}; {(void*)&channels[0][0]}; {(void*)&channels[0][0]}
65 | {(void*)&channels[2][0]}; {(void*)&channels[1][0]}; {(void*)&channels[0][0]}
66 | {(void*)&channels[3][0]}; {(void*)&channels[2][0]}; {(void*)&channels[1][0]}; {(void*)&channels[0][0]}
67 | {(void*)&channels[0][0]}
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 | {{{width}, {height}, {depth}}}
78 |
79 |
80 |
81 | UINT8
82 | UINT8
83 | UINT16
84 | FLOAT32
85 | UINT8
86 |
87 | - channels
88 |
89 | {width>2000?2000:((width+7)/8)}
90 | {width>2000?2000:width}
91 |
92 | - height>2000?2000:height
93 | - (width * depth + 7) / 8
94 | - channels
95 |
96 | {(void*)&image[0][0]}
97 | {(void*)&image[0][0]}; {(void*)&image[1][0]}
98 | {(void*)&image[2][0]}; {(void*)&image[1][0]}; {(void*)&image[0][0]}
99 | {(void*)&image[3][0]}; {(void*)&image[2][0]}; {(void*)&image[1][0]}; {(void*)&image[0][0]}
100 | {(void*)&image[0][0]}
101 |
102 |
103 |
104 |
105 |
106 |
107 | {name} {{blend: {blend->key,view(str)}, opacity: {(int)blend->opacity}}} {rectangle}
108 |
109 |
110 |
111 |
112 |
113 | {{top: {top,view(native)}, left: {left,view(native)}, bottom: {bottom,view(native)}, right: {right,view(native)}}}
114 |
115 |
116 |
117 |
118 | (Obsolete--Photoshop 2.0 only ) Contains five 2-byte values: number of channels, rows, columns, depth, and mode
119 | Macintosh print manager print info record
120 | Macintosh page format information. No longer read by Photoshop. (Obsolete)
121 | (Obsolete--Photoshop 2.0 only ) Indexed color table
122 | ResolutionInfo structure. See Appendix A in Photoshop API Guide.pdf.
123 | Names of the alpha channels as a series of Pascal strings.
124 | (Obsolete) See ID 1077DisplayInfo structure. See Appendix A in Photoshop API Guide.pdf.
125 | The caption as a Pascal string.
126 | Border information. Contains a fixed number (2 bytes real, 2 bytes fraction) for the border width, and 2 bytes for border units (1 = inches, 2 = cm, 3 = points, 4 = picas, 5 = columns).
127 | Background color. See See Color structure.
128 | Print flags. A series of one-byte boolean values (see Page Setup dialog): labels, crop marks, color bars, registration marks, negative, flip, interpolate, caption, print flags.
129 | Grayscale and multichannel halftoning information
130 | Color halftoning information
131 | Duotone halftoning information
132 | Grayscale and multichannel transfer function
133 | Color transfer functions
134 | Duotone transfer functions
135 | Duotone image information
136 | Two bytes for the effective black and white values for the dot range
137 | (Obsolete)
138 | EPS options
139 | Quick Mask information. 2 bytes containing Quick Mask channel ID; 1- byte boolean indicating whether the mask was initially empty.
140 | (Obsolete)
141 | Layer state information. 2 bytes containing the index of target layer (0 = bottom layer).
142 | Working path (not saved). See See Path resource format.
143 | Layers group information. 2 bytes per layer containing a group ID for the dragging groups. Layers in a group have the same group ID.
144 | (Obsolete)
145 | IPTC-NAA record. Contains the File Info... information. See the documentation in the IPTC folder of the Documentation folder.
146 | Image mode for raw format files
147 | JPEG quality. Private.
148 | (Photoshop 4.0) Grid and guides information. See See Grid and guides resource format.
149 | (Photoshop 4.0) Thumbnail resource for Photoshop 4.0 only. See See Thumbnail resource format.
150 | (Photoshop 4.0) Copyright flag. Boolean indicating whether image is copyrighted. Can be set via Property suite or by user in File Info...
151 | (Photoshop 4.0) URL. Handle of a text string with uniform resource locator. Can be set via Property suite or by user in File Info...
152 | (Photoshop 5.0) Thumbnail resource (supersedes resource 1033). See See Thumbnail resource format.
153 | (Photoshop 5.0) Global Angle. 4 bytes that contain an integer between 0 and 359, which is the global lighting angle for effects layer. If not present, assumed to be 30.
154 | (Obsolete) See ID 1073 below. (Photoshop 5.0) Color samplers resource. See See Color samplers resource format.
155 | (Photoshop 5.0) ICC Profile. The raw bytes of an ICC (International Color Consortium) format profile. See ICC1v42_2006-05.pdf in the Documentation folder and icProfileHeader.h in Sample Code\Common\Includes .
156 | (Photoshop 5.0) Watermark. One byte.
157 | (Photoshop 5.0) ICC Untagged Profile. 1 byte that disables any assumed profile handling when opening the file. 1 = intentionally untagged.
158 | (Photoshop 5.0) Effects visible. 1-byte global flag to show/hide all the effects layer. Only present when they are hidden.
159 | (Photoshop 5.0) Spot Halftone. 4 bytes for version, 4 bytes for length, and the variable length data.
160 | (Photoshop 5.0) Document-specific IDs seed number. 4 bytes: Base value, starting at which layer IDs will be generated (or a greater value if existing IDs already exceed it). Its purpose is to avoid the case where we add layers, flatten, save, open, and then add more layers that end up with the same IDs as the first set.
161 | (Photoshop 5.0) Unicode Alpha Names. Unicode string
162 | (Photoshop 6.0) Indexed Color Table Count. 2 bytes for the number of colors in table that are actually defined
163 | (Photoshop 6.0) Transparency Index. 2 bytes for the index of transparent color, if any.
164 | (Photoshop 6.0) Global Altitude. 4 byte entry for altitude
165 | (Photoshop 6.0) Slices. See See Slices resource format.
166 | (Photoshop 6.0) Workflow URL. Unicode string
167 | (Photoshop 6.0) Jump To XPEP. 2 bytes major version, 2 bytes minor version, 4 bytes count. Following is repeated for count: 4 bytes block size, 4 bytes key, if key = 'jtDd' , then next is a Boolean for the dirty flag; otherwise it's a 4 byte entry for the mod date.
168 | (Photoshop 6.0) Alpha Identifiers. 4 bytes of length, followed by 4 bytes each for every alpha identifier.
169 | (Photoshop 6.0) URL List. 4 byte count of URLs, followed by 4 byte long, 4 byte ID, and Unicode string for each count.
170 | (Photoshop 6.0) Version Info. 4 bytes version, 1 byte hasRealMergedData , Unicode string: writer name, Unicode string: reader name, 4 bytes file version.
171 | (Photoshop 7.0) EXIF data 1. See http://www.kodak.com/global/plugins/acrobat/en/service/digCam/exifStandard2.pdf
172 | (Photoshop 7.0) EXIF data 3. See http://www.kodak.com/global/plugins/acrobat/en/service/digCam/exifStandard2.pdf
173 | (Photoshop 7.0) XMP metadata. File info as XML description. See http://www.adobe.com/devnet/xmp/
174 | (Photoshop 7.0) Caption digest. 16 bytes: RSA Data Security, MD5 message-digest algorithm
175 | (Photoshop 7.0) Print scale. 2 bytes style (0 = centered, 1 = size to fit, 2 = user defined). 4 bytes x location (floating point). 4 bytes y location (floating point). 4 bytes scale (floating point)
176 | (Photoshop CS) Pixel Aspect Ratio. 4 bytes (version = 1 or 2), 8 bytes double, x / y of a pixel. Version 2, attempting to correct values for NTSC and PAL, previously off by a factor of approx. 5%.
177 | (Photoshop CS) Layer Comps. 4 bytes (descriptor version = 16), Descriptor (see See Descriptor structure)
178 | (Photoshop CS) Alternate Duotone Colors. 2 bytes (version = 1), 2 bytes count, following is repeated for each count: [ Color: 2 bytes for space followed by 4 * 2 byte color component ], following this is another 2 byte count, usually 256, followed by Lab colors one byte each for L, a, b. This resource is not read or used by Photoshop.
179 | (Photoshop CS)Alternate Spot Colors. 2 bytes (version = 1), 2 bytes channel count, following is repeated for each count: 4 bytes channel ID, Color: 2 bytes for space followed by 4 * 2 byte color component. This resource is not read or used by Photoshop.
180 | (Photoshop CS2) Layer Selection ID(s). 2 bytes count, following is repeated for each count: 4 bytes layer ID
181 | (Photoshop CS2) HDR Toning information
182 | (Photoshop CS2) Print info
183 | (Photoshop CS2) Layer Group(s) Enabled ID. 1 byte for each layer in the document, repeated by length of the resource. NOTE: Layer groups have start and end markers
184 | (Photoshop CS3) Color samplers resource. Also see ID 1038 for old format. See See Color samplers resource format.
185 | (Photoshop CS3) Measurement Scale. 4 bytes (descriptor version = 16), Descriptor (see See Descriptor structure)
186 | (Photoshop CS3) Timeline Information. 4 bytes (descriptor version = 16), Descriptor (see See Descriptor structure)
187 | (Photoshop CS3) Sheet Disclosure. 4 bytes (descriptor version = 16), Descriptor (see See Descriptor structure)
188 | (Photoshop CS3) DisplayInfo structure to support floating point clors. Also see ID 1007. See Appendix A in Photoshop API Guide.pdf .
189 | (Photoshop CS3) Onion Skins. 4 bytes (descriptor version = 16), Descriptor (see See Descriptor structure)
190 | (Photoshop CS4) Count Information. 4 bytes (descriptor version = 16), Descriptor (see See Descriptor structure) Information about the count in the document. See the Count Tool.
191 | (Photoshop CS5) Print Information. 4 bytes (descriptor version = 16), Descriptor (see See Descriptor structure) Information about the current print settings in the document. The color management options.
192 | (Photoshop CS5) Print Style. 4 bytes (descriptor version = 16), Descriptor (see See Descriptor structure) Information about the current print style in the document. The printing marks, labels, ornaments, etc.
193 | (Photoshop CS5) Macintosh NSPrintInfo. Variable OS specific info for Macintosh. NSPrintInfo. It is recommened that you do not interpret or use this data.
194 | (Photoshop CS5) Windows DEVMODE. Variable OS specific info for Windows. DEVMODE. It is recommened that you do not interpret or use this data.
195 | (Photoshop CS6) Auto Save File Path. Unicode string. It is recommened that you do not interpret or use this data.
196 | (Photoshop CS6) Auto Save Format. Unicode string. It is recommened that you do not interpret or use this data.
197 | (Photoshop CC) Path Selection State. 4 bytes (descriptor version = 16), Descriptor (see See Descriptor structure) Information about the current path selection state.
198 |
199 | Path Information (saved paths). See See Path resource format."
200 |
201 | Name of clipping path. See See Path resource format.
202 | (Photoshop CC) Origin Path Info. 4 bytes (descriptor version = 16), Descriptor (see See Descriptor structure) Information about the origin path data.
203 |
204 | Plug-In resource(s). Resources added by a plug-in. See the plug-in API found in the SDK documentation
205 |
206 | Image Ready variables. XML representation of variables definition
207 | Image Ready data sets
208 | Image Ready default selected state
209 | Image Ready 7 rollover expanded state
210 | Image Ready rollover expanded state
211 | Image Ready save layer settings
212 | Image Ready version
213 | (Photoshop CS3) Lightroom workflow, if present the document is in the middle of a Lightroom workflow.
214 | Print flags information. 2 bytes version ( = 1), 1 byte center crop marks, 1 byte ( = 0), 4 bytes bleed width value, 2 bytes bleed width scale.
215 | {first.native()}
216 |
217 |
218 |
219 | Layer Info
220 | Some metadata
221 |
222 | Solid Color
223 | Gradient
224 | Pattern
225 | Brightness/Contrast
226 | Levels
227 | Curves
228 | Exposure
229 | Vibrance
230 | Old Hue/saturation, Photoshop 4.0
231 | New Hue/saturation, Photoshop 5.0
232 | Color Balance
233 | Black and White
234 | Photo Filter
235 | Channel Mixer
236 | Color Lookup
237 | Invert
238 | Posterize
239 | Threshold
240 | Gradient Map
241 | Selective color
242 |
243 |
257 | Effects Layer (Photoshop 5.0)
258 | Type Tool Info (Photoshop 5.0 and 5.5 only) Has been superseded in Photoshop 6.0 and beyond by a different structure with the key 'TySh' (see See Type tool object setting (Photoshop 6.0) See Type tool object setting ).
259 | Unicode layer name (Photoshop 5.0)
260 | Layer ID (Photoshop 5.0)
261 | Object-based effects layer info (Photoshop 6.0)
262 | Patterns (Photoshop 6.0 and CS (8.0))
263 | Annotations (Photoshop 6.0)
264 | Blend clipping elements (Photoshop 6.0)
265 | Blend interior elements (Photoshop 6.0)
266 | Knockout setting (Photoshop 6.0)
267 | Protected setting (Photoshop 6.0)
268 | Sheet color setting (Photoshop 6.0)
269 | Reference point (Photoshop 6.0)
270 | Gradient settings (Photoshop 6.0)
271 | Section divider setting (Photoshop 6.0)
272 | Channel blending restrictions setting (Photoshop 6.0)
273 | Solid color sheet setting (Photoshop 6.0)
274 | Pattern fill setting (Photoshop 6.0)
275 | Gradient fill setting (Photoshop 6.0)
276 | Vector mask setting (Photoshop 6.0). If key is 'vsms' then we are writing for (Photoshop CS6) and the document will have a 'vscg' key
277 | Type tool object setting (Photoshop 6.0) This supersedes the type tool info in Photoshop 5.0 (see See Type tool Info).
278 | Foreign effect ID (Photoshop 6.0)
279 | Layer name source setting (Photoshop 6.0)
280 | Pattern data (Photoshop 6.0)
281 | Metadata setting (Photoshop 6.0)
282 | Layer version (Photoshop 7.0)
283 | Transparency shapes layer (Photoshop 7.0)
284 | Layer mask as global mask (Photoshop 7.0)
285 | Vector mask as global mask (Photoshop 7.0)
286 | Brightness and Contrast
287 | Channel Mixer
288 | Color Lookup (Photoshop CS6)
289 | Placed Layer (replaced by SoLd in Photoshop CS3)
290 | Linked Layer
291 | Photo Filter
292 | Black White (Photoshop CS3)
293 | Content Generator Extra Data (Photoshop CS5)
294 | Text Engine Data (Photoshop CS3)
295 | Vibrance (Photoshop CS3)
296 | Unicode Path Name (Photoshop CS6)
297 | Animation Effects (Photoshop CS6)
298 | Filter Mask (Photoshop CS3)
299 | Placed Layer Data (Photoshop CS3)
300 | Vector Stroke Data (Photoshop CS6)
301 | Vector Stroke Content Data (Photoshop CS6)
302 | Using Aligned Rendering (Photoshop CS6)
303 | Vector Origination Data (Photoshop CC)
304 | Pixel Source Data (Photoshop CC)
305 | Pixel Source Data (Photoshop CC 2015)
306 | Artboard Data (Photoshop CC 2015)
307 | Smart Object Layer Data (Photoshop CC 2015)
308 | Saving Merged Transparency
309 | User Mask
310 | Exposure
311 | Filter Effects
312 |
313 |
314 |
--------------------------------------------------------------------------------
/qt5.natvis:
--------------------------------------------------------------------------------
1 |
2 |
41 |
42 |
43 |
44 |
45 |
46 | {{ x = {xp}, y = {yp} }}
47 |
48 | - xp
49 | - yp
50 |
51 |
52 |
53 |
54 | {{ x = {x1}, y = {y1}, width = {x2 - x1 + 1}, height = {y2 - y1 + 1} }}
55 |
56 | - x1
57 | - y1
58 | - x2 - x1 + 1
59 | - y2 - y1 + 1
60 |
61 |
62 |
63 |
64 | {{ x = {xp}, y = {yp}, width = {w}, height = {h} }}
65 |
66 | - xp
67 | - yp
68 | - w
69 | - h
70 |
71 |
72 |
73 |
74 |
75 | {{ width = {wd,g}, height = {ht,g} }}
76 |
77 | - wd
78 | - ht
79 |
80 |
81 |
82 |
83 |
84 | {{ start point = {pt1}, end point = {pt2} }}
85 |
86 |
87 | {pt1}
88 |
89 | pt1
90 |
91 |
92 |
93 | {pt2}
94 |
95 | pt2
96 |
97 |
98 |
99 |
100 |
101 |
102 | {{ size = {d->size} }}
103 |
104 | - d->ref.atomic._q_value
105 |
106 | d->size
107 | (QPoint*)((reinterpret_cast<char*>(d)) + d->offset)
108 |
109 |
110 |
111 |
112 |
113 | {{ size = {d->size} }}
114 |
115 | -
116 | d->size > 0
117 | && ((((QPointF*)((reinterpret_cast<char*>(d)) + d->offset)[0]).xp
118 | == (((QPointF*)((reinterpret_cast<char*>(d)) + d->offset)[d->size - 1]).xp)
119 | && ((((QPointF*)((reinterpret_cast<char*>(d)) + d->offset)[0]).yp
120 | == (((QPointF*)((reinterpret_cast<char*>(d)) + d->offset)[d->size - 1]).yp)
121 |
122 | - d->ref.atomic._q_value
123 |
124 | d->size
125 | (QPointF*)((reinterpret_cast<char*>(d)) + d->offset)
126 |
127 |
128 |
129 |
130 |
131 | {{ x = {xp}, y = {yp} }}
132 |
133 | - xp
134 | - yp
135 |
136 |
137 |
138 |
139 | {{ x = {xp}, y = {yp}, z = {zp} }}
140 |
141 | - xp
142 | - yp
143 | - zp
144 |
145 |
146 |
147 |
148 | {{ x = {xp}, y = {yp}, z = {zp}, w = {wp} }}
149 |
150 | - xp
151 | - yp
152 | - zp
153 | - wp
154 |
155 |
156 |
157 |
158 |
159 |
160 | - v[0],g
161 | - v[1],g
162 |
163 |
164 |
165 |
166 |
167 | - v[0],g
168 | - v[1],g
169 | - v[2],g
170 |
171 |
172 |
173 |
174 |
175 | - v[0],g
176 | - v[1],g
177 | - v[2],g
178 | - v[3],g
179 |
180 |
181 |
182 |
183 |
184 |
185 | {{{{{_m11,g}, {_m12,g}, {_dx,g}}}, {{{_m21,g}, {_m22,g}, {_dy,g}}}}}
186 |
187 |
188 | - _m11
189 | - _m12
190 | - _m21
191 | - _m22
192 | - _dx
193 | - _dy
194 |
195 |
196 |
197 |
198 |
199 | {{
200 | {{{affine._m11,g}, {affine._m12,g}, {m_13,g}}},
201 | {{{affine._m21,g}, {affine._m22,g}, {m_23,g}}},
202 | {{{affine._dx,g}, {affine._dy,g}, {m_33,g}}}
203 | }}
204 |
205 |
206 | {{ {{{affine._m11,g}, {affine._m21,g}, {affine._dx,g}}}, {{{affine._m12,g}, {affine._m22,g}, {affine._dy,g}}}, {{{m_13,g}, {m_23,g}, {m_33,g}}} }}
207 |
208 |
209 |
210 |
211 |
212 | {{ m11 = {m[0][0]}, m12 = {m[1][0]}, m13 = {m[2][0]}, m14 = {m[3][0]}, ... }}
213 |
214 |
215 | - m[0][0]
216 | - m[1][0]
217 | - m[2][0]
218 | - m[3][0]
219 | - m[0][1]
220 | - m[1][1]
221 | - m[2][1]
222 | - m[3][1]
223 | - m[0][2]
224 | - m[1][2]
225 | - m[2][2]
226 | - m[3][2]
227 | - m[0][3]
228 | - m[1][3]
229 | - m[2][3]
230 | - m[3][3]
231 |
232 |
233 |
234 |
235 |
236 | {{ horizontal = {static_cast<Policy>(bits.horPolicy)}, vertical = {static_cast<Policy>(bits.verPolicy)}, type = {ControlType(1 << bits.ctype)} }}
237 |
238 |
239 |
240 | QSizePolicy::Policy::{static_cast<Policy>(bits.verPolicy)}
241 |
242 |
243 | QSizePolicy::Policy::{static_cast<Policy>(bits.horPolicy)}
244 |
245 |
246 | QSizePolicy::ControlType::{ControlType(1 << bits.ctype)}
247 |
248 |
249 |
251 | Qt::Vertical (2)
252 |
253 |
255 | Qt::Horizontal (1)
256 |
257 |
258 | - static_cast<int>(bits.verStretch)
259 | - static_cast<int>(bits.horStretch)
260 | - bits.hfw == 1
261 | - bits.wfh == 1
262 |
263 |
264 |
265 |
266 | {ucs,c}
267 | ucs,c
268 |
269 | - ucs > 0xff ? '\0' : char(ucs),c
270 | - ucs,c
271 |
272 |
273 |
274 |
275 | {((unsigned short*)d) + d->offset / 2,[d->size]sub}
276 | ((unsigned short*)d) + d->offset / 2,[d->size]sub
277 |
278 | - ((unsigned short*)d) + d->offset / 2,[d->size]sub
279 | - d->ref.atomic._q_value
280 | - d->size
281 |
282 | d->size
283 | ((unsigned short*)d) + d->offset / 2,c
284 |
285 |
286 |
287 |
288 |
289 | {&(*m_string)[m_position],[m_size]sub}
290 | &(*m_string)[m_position],[m_size]sub
291 |
292 |
293 |
294 |
295 | {data(),sb}
296 | data(),sb
297 |
298 | - d->size
299 | - d->ref.atomic._q_value
300 |
301 | d->size
302 | data(),c
303 |
304 |
305 |
306 |
307 |
308 | {{ size = {(d.d->size << 3) - *((reinterpret_cast<char*>(d.d)) + d.d->offset)} }}
309 |
310 | - d.d->ref.atomic._q_value
311 |
312 | (d.d->size << 3) - *((reinterpret_cast<char*>(d.d)) + d.d->offset)
313 |
314 | (*(reinterpret_cast<const unsigned char*>((reinterpret_cast<char*>(d.d)) + d.d->offset) + 1
315 | + ($i >> 3)) & (1 << ($i & 7))) != 0
316 |
317 |
318 |
319 |
320 |
321 |
322 |
323 | {{ size = {s} }}
324 |
325 | - a
326 |
327 | s
328 | ptr
329 |
330 |
331 |
332 |
333 |
334 | {{ julian day = {jd} }}
335 |
336 |
337 |
338 |
339 | {{ millisecond = {mds} }}
341 | {{ milliseconds = {mds} }}
343 |
344 | - mds / 3600000, d
346 | - mds / 3600000, d
348 | - (mds % 3600000) / 60000, d
350 | - (mds % 3600000) / 60000, d
352 | - (mds / 1000) % 60, d
354 | - (mds / 1000) % 60, d
356 | - mds % 1000, d
358 | - mds % 1000, d
360 |
361 |
362 |
363 |
364 | {d.pattern}
365 |
366 |
367 |
368 |
369 | - ref._q_value
370 |
371 |
372 |
373 |
374 | null
375 | {{s|w={d->strongref._q_value}|{d->weakref._q_value}}}, {*value}
376 |
377 | *value
378 |
379 |
380 |
381 |
387 |
388 |
389 | pointer to explicit shared object of type {"$T1"}
390 |
391 | d
392 |
393 |
394 |
395 |
396 | guarded pointer to subclass of QObject of type {"$T1"}
397 |
398 | - wp.d == 0 || wp.d->strongref._q_value == 0 || wp.value == 0
399 |
400 |
401 |
402 |
403 |
404 | null
405 | {{s|w={d->strongref._q_value}|{d->weakref._q_value} {(void*)value}}}
406 |
407 | value
408 |
409 |
410 |
411 |
412 |
413 | null
414 | {*d}
415 |
416 | *d
417 |
418 |
419 |
420 |
426 |
427 |
428 | ({first}, {second})
429 |
430 | - first
431 | - second
432 |
433 |
434 |
435 |
436 |
437 |
438 |
439 |
440 |
441 |
442 | {{ size = {d->size} }}
443 | empty
444 |
445 | - d->ref.atomic._q_value
446 |
447 | d->size
448 | ($T1*)((char*)d + d->offset)
449 |
450 |
451 |
452 |
453 |
454 |
455 |
456 | *($T1*)v
457 |
458 |
459 |
460 |
461 |
462 |
463 |
464 |
465 | *($T1*)v
466 |
467 |
468 | *($T1*)this
469 |
470 |
471 |
472 |
473 |
474 |
475 |
476 |
477 |
478 |
479 |
480 | empty
481 | {{ size = {d->end - d->begin} }}
482 |
483 | - d->ref.atomic._q_value
484 |
485 | length()
486 | *($T1*)(pointer($i)->v)
487 | *($T1*)pointer($i)
488 |
489 |
490 |
491 |
492 |
493 |
494 |
495 |
496 |
497 |
498 |
499 | empty
500 | {{ size = {length()} }}
501 |
502 | - d->ref.atomic._q_value
503 |
504 | length()
505 | *($T1*)(pointer($i)->v)
506 | *($T1*)pointer($i)
507 |
508 |
509 |
510 |
511 |
512 | {{ size = {d->end - d->begin} }}
513 |
514 |
515 | *((QList<QString>*)this)
516 |
517 |
518 |
519 |
520 |
521 | {{ size = {d->size} }}
522 |
523 | - d->ref.atomic._q_value
524 |
525 | d->size
526 | d->n
527 | n
528 | (*(QLinkedListNode<$T1>*)this).t
529 |
530 |
531 |
532 |
533 |
534 | ({key}, {value})
535 |
536 | - key
537 | - value
538 |
539 |
540 |
541 |
542 |
543 | {{ size = {d->size} }}
544 |
545 | - d->ref.atomic._q_value
546 |
547 | d->size
548 | d->header.left
549 | left
550 | right
551 | *((QMapNode<$T1,$T2>*)this)
552 |
553 |
554 |
555 |
556 |
557 | (empty)
558 | ({key}, {value})
559 |
560 | - key
561 | - value
562 |
563 |
564 |
565 |
566 |
567 | {{ size = {d->size} }}
568 |
569 | - d->ref.atomic._q_value
570 |
571 |
572 |
573 |
574 |
575 | i=0
576 |
577 | node = (QHashNode<$T1,$T2>*)(d->buckets[i])
578 |
579 | - *node
580 | j++
581 | node = node->next
582 |
583 | i++
584 |
585 |
586 |
587 |
588 |
589 |
590 | (empty)
591 | {key}
592 |
593 | - key
594 |
595 |
596 |
597 |
598 | {{ size = {q_hash.d->size} }}
599 |
600 | q_hash
601 |
602 |
603 |
604 |
605 | ({*keyPtr}, {*t})
606 |
607 | - *keyPtr
608 | - *t
609 |
610 |
611 |
612 |
613 | {{ size = {hash.d->size} }}
614 |
615 | - mx
616 | - total
617 | - hash.d->ref.atomic._q_value
618 |
619 | hash.d->size
620 | f
621 | n
622 | *((Node*)this)
623 |
624 |
625 |
626 |
627 |
628 |
631 |
632 |
633 | Invalid
634 | {d.data.b}
635 | {d.data.i}
636 | {d.data.u}
637 | {d.data.ll}
638 | {d.data.ull}
639 | double {{{d.data.d,g}}}
640 | float {{{d.data.f,g}}}
641 | {d.data.c}
642 |
643 | {*((QMap<QString,QVariant>*)pointer())}
644 | {*((QList<QVariant>*)pointer())}
645 | {*((QString*)pointer())}
646 | {*((QStringList*)pointer())}
647 | {*((QByteArray*)pointer())}
648 | {*((QBitArray*)pointer())}
649 | {*((QDate*)pointer())}
650 | {*((QTime*)pointer())}
651 | DateTime {*((QDateTime*)pointer())}
652 | Url {*((QUrl*)pointer())}
653 | Locale {*((QLocale*)pointer())}
654 | {*((QRect*)pointer())}
655 | {*((QRectF*)pointer())}
656 | {*((QSize*)pointer())}
657 | {*((QSizeF*)pointer())}
658 | {*((QLine*)pointer())}
659 | {*((QLineF*)pointer())}
660 | {*((QPoint*)pointer())}
661 | {*((QPointF*)pointer())}
662 | RegExp {*((QRegExp*)pointer())}
663 | RegularExpression {*((QRegularExpression*)pointer())}
664 | {*((QHash<QString,QVariant>*)pointer())}
665 | EasingCurve {*((QEasingCurve*)pointer())}
666 | Uuid {*((QUuid*)pointer())}
667 | ModelIndex {*((QModelIndex*)pointer())}
668 | LastCoreType
669 | Font {*((QFont*)pointer())}
670 | Pixmap {*((QPixmap*)pointer())}
671 | Brush {*((QBrush*)pointer())}
672 | Color {*((QColor*)pointer())}
673 | Palette {*((QPalette*)pointer())}
674 | Image {*((QImage*)pointer())}
675 | Polygon {*((QPolygon*)pointer())}
676 | Region {*((QRegion*)pointer())}
677 | Bitmap {*((QBitmap*)pointer())}
678 | Cursor {*((QCursor*)pointer())}
679 | KeySequence {*((QKeySequence*)pointer())}
680 | Pen {*((QPen*)pointer())}
681 | TextLength {*((QTextLength*)pointer())}
682 | TextFormat {*((QTextFormat*)pointer())}
683 | Matrix {*((QMatrix*)pointer())}
684 | Transform {*((QTransform*)pointer())}
685 | Matrix4x4 {*(QMatrix4x4*)pointer()}
686 | Vector2D {*(QVector2D*)pointer()}
687 | Vector3D {*(QVector3D*)pointer()}
688 | Vector4D {*(QVector4D*)pointer()}
689 | Quaternion {*(QQuaternion*)pointer()}
690 | PolygonF {*((QPolygonF*)pointer())}
691 | Icon {*((QIcon*)pointer())}
692 | LastGuiType
693 | SizePolicy {*((QSizePolicy*)pointer())}
694 | UserType
695 | LastType
696 |
697 |
698 |
699 |
700 |
701 | d.data.c
702 | *((QString*)pointer())
703 | *((QByteArray*)pointer())
704 |
705 |
706 |
707 |
708 |
709 |
710 | *((QMap<QString,QVariant>*)pointer())
711 | *((QList<QVariant>*)pointer())
712 | *((QString*)pointer())
713 | *((QStringList*)pointer())
714 | *((QByteArray*)pointer())
715 | *((QBitArray*)pointer())
716 | *((QDate*)pointer())
717 | *((QTime*)pointer())
718 | *((QRect*)pointer())
719 | *((QRectF*)pointer())
720 | *((QSize*)pointer())
721 | *((QSizeF*)pointer())
722 | *((QLine*)pointer())
723 | *((QLineF*)pointer())
724 | *((QPoint*)pointer())
725 | *((QPointF*)pointer())
726 | *((QHash<QString,QVariant>*)pointer())
727 |
728 |
729 |
730 |
731 |
732 |
--------------------------------------------------------------------------------