mirror of
https://github.com/PCSX2/pcsx2.git
synced 2026-01-31 01:15:24 +01:00
Compare commits
890 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
267ff7d196 | ||
|
|
2da3e15aaa | ||
|
|
6305d8d61e | ||
|
|
9495b8e3e0 | ||
|
|
29ef99d2d1 | ||
|
|
6d4039cc85 | ||
|
|
8da5817f8f | ||
|
|
4cf1b6068f | ||
|
|
c5e6013d75 | ||
|
|
0bdeb8d411 | ||
|
|
6bb945f6c8 | ||
|
|
1295b46a49 | ||
|
|
149940ffda | ||
|
|
70ad09f6ef | ||
|
|
abb005e6e2 | ||
|
|
079ed2c7a9 | ||
|
|
ad8e800aa5 | ||
|
|
6c750b19b3 | ||
|
|
c0f1738bb9 | ||
|
|
f160c39814 | ||
|
|
a5ff4aca80 | ||
|
|
446977d126 | ||
|
|
90c4322fc5 | ||
|
|
3b83d6d302 | ||
|
|
7b7a977d11 | ||
|
|
cc9b6fa5a4 | ||
|
|
a3cd81c1bb | ||
|
|
3c11e759a2 | ||
|
|
ed317360ef | ||
|
|
f392493245 | ||
|
|
b03162747c | ||
|
|
e0add8003d | ||
|
|
678c8a5cd6 | ||
|
|
14d4b3fe7a | ||
|
|
a0d54df522 | ||
|
|
3f521cc7a0 | ||
|
|
04ca7f4a2b | ||
|
|
e447ffc8b2 | ||
|
|
aba0a09816 | ||
|
|
305942c78b | ||
|
|
90d27bf5f6 | ||
|
|
0346da2fa0 | ||
|
|
7c766e66ad | ||
|
|
8440d263cd | ||
|
|
e23e2ac327 | ||
|
|
6e28a8e694 | ||
|
|
5933db386a | ||
|
|
aea421cc8e | ||
|
|
cdd6598e65 | ||
|
|
a11286bbc5 | ||
|
|
798fa11c57 | ||
|
|
c2cba0d4ae | ||
|
|
be1842f4e9 | ||
|
|
c8c22cf6a0 | ||
|
|
b42c9defb1 | ||
|
|
bed7a4f92e | ||
|
|
553536f9cb | ||
|
|
b03ca5fcf4 | ||
|
|
d6d06d243c | ||
|
|
8ea0766773 | ||
|
|
e548ada1e9 | ||
|
|
b18b0fdf28 | ||
|
|
806cefb0c6 | ||
|
|
f33027f24d | ||
|
|
b07aeb892a | ||
|
|
e525f95f22 | ||
|
|
1c869450c1 | ||
|
|
7082102631 | ||
|
|
10040f82e0 | ||
|
|
2b567e51ff | ||
|
|
576513a6d0 | ||
|
|
25382d471d | ||
|
|
c4bd50c04c | ||
|
|
1779ee42c2 | ||
|
|
95e00e0edf | ||
|
|
6dd3094802 | ||
|
|
9060eadfe7 | ||
|
|
d4793cc6b6 | ||
|
|
c5b6216032 | ||
|
|
ee34bd724f | ||
|
|
59847c964c | ||
|
|
d22a2c7961 | ||
|
|
f037a42309 | ||
|
|
fbb64c4ce7 | ||
|
|
003ac1b762 | ||
|
|
d00666a4d9 | ||
|
|
767b841fea | ||
|
|
fd89d2145a | ||
|
|
6830962c3a | ||
|
|
0c17d67fa5 | ||
|
|
bc4eff88a7 | ||
|
|
93cbce82f9 | ||
|
|
8123b5090a | ||
|
|
da969ffaeb | ||
|
|
b24c76f12a | ||
|
|
0b77f93154 | ||
|
|
2bc4686afa | ||
|
|
dc1cd3eb25 | ||
|
|
7ab320b5d5 | ||
|
|
4074f1b1ed | ||
|
|
f7ffe391f6 | ||
|
|
82c3a5ad5a | ||
|
|
1f54bb73aa | ||
|
|
66d7aa75e2 | ||
|
|
a99f3ea321 | ||
|
|
4773bcf0ea | ||
|
|
532cc7755c | ||
|
|
4f957feacd | ||
|
|
43e854fece | ||
|
|
03a88aab0b | ||
|
|
ff24a5f702 | ||
|
|
b9297c6158 | ||
|
|
316efecaea | ||
|
|
f0a9f0ff29 | ||
|
|
63ba78b664 | ||
|
|
09ec6ebd8e | ||
|
|
62bda675e0 | ||
|
|
7d21497c11 | ||
|
|
768362852e | ||
|
|
c5efdb9df9 | ||
|
|
c7c8b70b22 | ||
|
|
01b0556419 | ||
|
|
18405e2598 | ||
|
|
cb73ed4737 | ||
|
|
e6de35f5ac | ||
|
|
a8ad598153 | ||
|
|
2cfbc6e5ef | ||
|
|
8d8aa87457 | ||
|
|
bf9fc521cb | ||
|
|
cebccea81c | ||
|
|
35f26f00bc | ||
|
|
534b7041f4 | ||
|
|
3d071e50ad | ||
|
|
feca2e3faf | ||
|
|
5d8b2d8044 | ||
|
|
e9233f4698 | ||
|
|
7fb548d7c5 | ||
|
|
d1389db2f4 | ||
|
|
ba9e998ff5 | ||
|
|
cdd09a2616 | ||
|
|
800262fc14 | ||
|
|
4991f9412d | ||
|
|
87f1e8f77d | ||
|
|
5ce4b85edd | ||
|
|
a52f598369 | ||
|
|
0a4f9e43d9 | ||
|
|
9e8b0b59ba | ||
|
|
29a14f5667 | ||
|
|
49d98a4429 | ||
|
|
c945aead54 | ||
|
|
16284d0a59 | ||
|
|
4b6632edf4 | ||
|
|
070dce4c83 | ||
|
|
8afd2edd1d | ||
|
|
7328e55ee9 | ||
|
|
1f5fe7a1db | ||
|
|
ec976743d6 | ||
|
|
c9aa04c679 | ||
|
|
9c92a30dbb | ||
|
|
8a899c4c7b | ||
|
|
a30bd86311 | ||
|
|
374048e1c6 | ||
|
|
4238261784 | ||
|
|
76f719e5d0 | ||
|
|
b9b02cf749 | ||
|
|
ba59036a97 | ||
|
|
7b466a98d0 | ||
|
|
e3ba15de94 | ||
|
|
6f5cd1cd4d | ||
|
|
3d2b0e3766 | ||
|
|
72cfc6a6ef | ||
|
|
9e20387595 | ||
|
|
263c097d13 | ||
|
|
c64f9ad9b1 | ||
|
|
ba1e522bbb | ||
|
|
881735b562 | ||
|
|
db7c26cde7 | ||
|
|
1b555ea3b5 | ||
|
|
b259a46ab7 | ||
|
|
732cbc3ad5 | ||
|
|
5d89454d25 | ||
|
|
fda48f3d55 | ||
|
|
09c13777d8 | ||
|
|
60c0eb7179 | ||
|
|
d21e6ff45f | ||
|
|
60f7ec03c2 | ||
|
|
7964933507 | ||
|
|
8f42b36a42 | ||
|
|
c72af82f73 | ||
|
|
5b3867dd60 | ||
|
|
276e3d9d1b | ||
|
|
3311336d0e | ||
|
|
1b5ea0651c | ||
|
|
75c96c08f7 | ||
|
|
b6a951a9fa | ||
|
|
0ca9bab8b6 | ||
|
|
ab4eaea757 | ||
|
|
30240b4cbf | ||
|
|
06f53b2689 | ||
|
|
4991ef608d | ||
|
|
1b836ac4a7 | ||
|
|
e73d8f383b | ||
|
|
0e636ce411 | ||
|
|
e8a92ae731 | ||
|
|
b60e5a62fc | ||
|
|
7adc7c4833 | ||
|
|
cf5da56390 | ||
|
|
d228ad3ddd | ||
|
|
e6e534c13a | ||
|
|
48b3d91768 | ||
|
|
cbf2e740e3 | ||
|
|
8c90e7cafc | ||
|
|
ff39dffe23 | ||
|
|
920ac6695f | ||
|
|
ec1da2805c | ||
|
|
84f844767c | ||
|
|
58bd645d49 | ||
|
|
16377f7249 | ||
|
|
47f40ed79a | ||
|
|
e62af05496 | ||
|
|
bd9df9a6ec | ||
|
|
b7e5e41afe | ||
|
|
a908d1ab93 | ||
|
|
8434d6c397 | ||
|
|
3d05d706f4 | ||
|
|
df0a9c4683 | ||
|
|
ed6bf53547 | ||
|
|
a64d641a50 | ||
|
|
69e88ffed0 | ||
|
|
937e475169 | ||
|
|
fc480e9bea | ||
|
|
d6ba55eebf | ||
|
|
d55aa66751 | ||
|
|
f0d85d7dcc | ||
|
|
a28d2878e0 | ||
|
|
a0056f4e05 | ||
|
|
6af09d8a09 | ||
|
|
4d818f6cd9 | ||
|
|
f25e056914 | ||
|
|
679fa65b84 | ||
|
|
33967649b1 | ||
|
|
ea6e78ab0d | ||
|
|
a1a1c7d0fb | ||
|
|
1f734a69a0 | ||
|
|
7e89477e6c | ||
|
|
8b45caf611 | ||
|
|
fa3db52cf7 | ||
|
|
6fe9ee387d | ||
|
|
a573ce185c | ||
|
|
ccc1137e12 | ||
|
|
10c7be8c50 | ||
|
|
d37cc8e1e7 | ||
|
|
aaf3fe8b19 | ||
|
|
b98e53e059 | ||
|
|
79e8a912cd | ||
|
|
f46e8cc6ac | ||
|
|
594f6c33a2 | ||
|
|
1c501047f5 | ||
|
|
8833afc2fa | ||
|
|
fa43018d10 | ||
|
|
1e86e3cb08 | ||
|
|
b7601a9add | ||
|
|
9d8d702aa6 | ||
|
|
4659184cc1 | ||
|
|
104688e3ee | ||
|
|
cc24da128c | ||
|
|
d720cc16a6 | ||
|
|
0118d578a2 | ||
|
|
1ea86eedc0 | ||
|
|
5297bd7b2c | ||
|
|
7f57692ee3 | ||
|
|
20b9dbadda | ||
|
|
c85221c64f | ||
|
|
962d136cbc | ||
|
|
728840b7c5 | ||
|
|
c66ea9f740 | ||
|
|
5b3f031654 | ||
|
|
cee80eb5f4 | ||
|
|
60297403a2 | ||
|
|
58a8683d7d | ||
|
|
d51f008c72 | ||
|
|
9656fad0f5 | ||
|
|
fd7b692d00 | ||
|
|
39491f789b | ||
|
|
c4eca8b3cc | ||
|
|
47cafaaa7c | ||
|
|
1b6188ee1d | ||
|
|
9ee88ad070 | ||
|
|
a95e55dc54 | ||
|
|
9fd2f3dd8a | ||
|
|
7b1d3ba7ea | ||
|
|
e59c9b0e65 | ||
|
|
12e8f7d0b4 | ||
|
|
bf7c29e4cd | ||
|
|
4f2c9a05fb | ||
|
|
f287754477 | ||
|
|
2bc2047770 | ||
|
|
73433c25f2 | ||
|
|
9c81272278 | ||
|
|
efa4a50cf5 | ||
|
|
27992b16c2 | ||
|
|
e101a1d77a | ||
|
|
20243ff6fb | ||
|
|
98d22f8b2e | ||
|
|
b9e6024fe9 | ||
|
|
31a62c18be | ||
|
|
2d4b6273f0 | ||
|
|
8dba78abce | ||
|
|
d3ffd13c25 | ||
|
|
4768f293bf | ||
|
|
57b09c371a | ||
|
|
b9fba8005a | ||
|
|
270fc13e2a | ||
|
|
f67941d03b | ||
|
|
c89e703bed | ||
|
|
d0100548d4 | ||
|
|
f7192b82b1 | ||
|
|
08dc8b40e4 | ||
|
|
b875f81be3 | ||
|
|
e8d13090b0 | ||
|
|
f3a50a01a7 | ||
|
|
1290d0b1a3 | ||
|
|
82dfed1512 | ||
|
|
53e57766c9 | ||
|
|
dde94da94f | ||
|
|
5f4fc4701f | ||
|
|
20716e13e4 | ||
|
|
bf52a4c737 | ||
|
|
82ee28fa39 | ||
|
|
f5435f5ba5 | ||
|
|
b717691901 | ||
|
|
7094cc7693 | ||
|
|
80df352711 | ||
|
|
378556c0c2 | ||
|
|
b47a4da81f | ||
|
|
1d116cc23b | ||
|
|
ad3b76c4d8 | ||
|
|
3f7cb991e4 | ||
|
|
9102e40f9c | ||
|
|
9168c344b1 | ||
|
|
4d4f7ac112 | ||
|
|
884876572b | ||
|
|
ec7fb80a5b | ||
|
|
c52c378f49 | ||
|
|
60efb3c4b4 | ||
|
|
d694a3a166 | ||
|
|
90e59b2704 | ||
|
|
999eb83de8 | ||
|
|
e019979749 | ||
|
|
15c487e547 | ||
|
|
d8f3e22f14 | ||
|
|
3fa5816aab | ||
|
|
e5f7057539 | ||
|
|
259a699613 | ||
|
|
d1619af18c | ||
|
|
bddb2504b5 | ||
|
|
769cb6a369 | ||
|
|
4512306207 | ||
|
|
430c617a95 | ||
|
|
9fde236512 | ||
|
|
72c2158b17 | ||
|
|
f7ac17b6be | ||
|
|
1e3e5c92a8 | ||
|
|
5f7a3a8ca9 | ||
|
|
5b14f7de64 | ||
|
|
dc4e75a61c | ||
|
|
f484f35d85 | ||
|
|
9e6fac5faa | ||
|
|
b72963ee5f | ||
|
|
a696bf0d02 | ||
|
|
b0cef1b143 | ||
|
|
02b19b7686 | ||
|
|
795211dba6 | ||
|
|
630f869f7f | ||
|
|
7a260c9885 | ||
|
|
071fbb92df | ||
|
|
6eb0ecbe7c | ||
|
|
357c3160bb | ||
|
|
a8c5454724 | ||
|
|
c963e0b62b | ||
|
|
05b33012b7 | ||
|
|
91fcad0a93 | ||
|
|
fb344fb646 | ||
|
|
f5fe75a73b | ||
|
|
df0fb9551f | ||
|
|
7e5b6dee9c | ||
|
|
174e121034 | ||
|
|
9ebd9c4447 | ||
|
|
4400b56fb5 | ||
|
|
4de63714ce | ||
|
|
0ca72a7d60 | ||
|
|
2aa34186e1 | ||
|
|
adc76243dc | ||
|
|
565e72d9d7 | ||
|
|
2d7ef30e59 | ||
|
|
9284a01346 | ||
|
|
b574d06f5f | ||
|
|
1c29874541 | ||
|
|
08d8026fa3 | ||
|
|
2286ac1c49 | ||
|
|
8d616133d6 | ||
|
|
7197017e74 | ||
|
|
f542c7232e | ||
|
|
7568f6f2ec | ||
|
|
3271048ab6 | ||
|
|
791bfc181b | ||
|
|
1facc8efbc | ||
|
|
b2d8e7137f | ||
|
|
ba63fca9d8 | ||
|
|
655c0efb31 | ||
|
|
52fe7a9f2a | ||
|
|
fb9c24b900 | ||
|
|
05d5f06bb5 | ||
|
|
9dd9448d02 | ||
|
|
cb2593f2bb | ||
|
|
4c7db9e62d | ||
|
|
466e6008ad | ||
|
|
396e42e17c | ||
|
|
f808593b2d | ||
|
|
7de0065216 | ||
|
|
285e07be76 | ||
|
|
66765d827b | ||
|
|
19ea90aff5 | ||
|
|
ad58118df0 | ||
|
|
2a0be7e91e | ||
|
|
fbdc364329 | ||
|
|
54798d4743 | ||
|
|
5aed2b379a | ||
|
|
6f5e0f96b4 | ||
|
|
9dea86068a | ||
|
|
af3482b7cd | ||
|
|
707d32536c | ||
|
|
d247a79e48 | ||
|
|
5820eea1cb | ||
|
|
b6e0ed43de | ||
|
|
72b28ac2fc | ||
|
|
2ae3dd970a | ||
|
|
a3bc6a73a3 | ||
|
|
e1bf7daf59 | ||
|
|
f0af6460a1 | ||
|
|
9dcaaedf06 | ||
|
|
9c58537078 | ||
|
|
c46749f236 | ||
|
|
c09469a71c | ||
|
|
afbb5e2721 | ||
|
|
9a702cd0c4 | ||
|
|
77599bec1c | ||
|
|
a5f54b5ec1 | ||
|
|
b2df6152af | ||
|
|
98aad6ef76 | ||
|
|
730d7ec528 | ||
|
|
c911ba4747 | ||
|
|
9fdb318776 | ||
|
|
d92a621a70 | ||
|
|
7734f2eed8 | ||
|
|
10dc0bcfa2 | ||
|
|
5d1f224794 | ||
|
|
d876ff522a | ||
|
|
8f2b51c461 | ||
|
|
cd8d21cf8e | ||
|
|
3d37a6ce27 | ||
|
|
82c7bcd761 | ||
|
|
3c9367825c | ||
|
|
e99540554a | ||
|
|
86152668c3 | ||
|
|
61088b71c6 | ||
|
|
1bb15fd2cc | ||
|
|
67f934a902 | ||
|
|
a0a54bdd05 | ||
|
|
ed65172308 | ||
|
|
0a35a2fac9 | ||
|
|
a1d2c85d88 | ||
|
|
7d49f75317 | ||
|
|
3e883e4be4 | ||
|
|
3e65c1d0a3 | ||
|
|
e25ad9759a | ||
|
|
06ccc0121f | ||
|
|
03bfffea23 | ||
|
|
de5a55c03e | ||
|
|
b4771030d3 | ||
|
|
4d06f982db | ||
|
|
1fb057462a | ||
|
|
93374facb8 | ||
|
|
e862047142 | ||
|
|
90eb776310 | ||
|
|
9c77b2dfeb | ||
|
|
6abfd601ba | ||
|
|
38738b2a18 | ||
|
|
99b5f7badf | ||
|
|
ac558afc8a | ||
|
|
d555656a41 | ||
|
|
10fd86fd68 | ||
|
|
af58734826 | ||
|
|
08a6ff6e6c | ||
|
|
7d13f96e28 | ||
|
|
e726f82344 | ||
|
|
5c054fb486 | ||
|
|
904f5de1ea | ||
|
|
c79fe9a1e7 | ||
|
|
15943eddb1 | ||
|
|
8d1e294b32 | ||
|
|
c4e89bea32 | ||
|
|
b37f6e9df1 | ||
|
|
30a5e31b66 | ||
|
|
5415fb361f | ||
|
|
34010c5605 | ||
|
|
41d2ea4306 | ||
|
|
36ea4658f1 | ||
|
|
cc0b9bbca9 | ||
|
|
f38c6d0995 | ||
|
|
bfa2bbef85 | ||
|
|
7a9f4161ea | ||
|
|
5c0702092a | ||
|
|
0706564215 | ||
|
|
6485bd89d9 | ||
|
|
38f617233d | ||
|
|
9e774eb41c | ||
|
|
6f101c0a0c | ||
|
|
1d5b250b58 | ||
|
|
e7d0a0345e | ||
|
|
50868f14f6 | ||
|
|
79701aa613 | ||
|
|
ac41ba1f73 | ||
|
|
deb69c4c72 | ||
|
|
76237955c7 | ||
|
|
cfa8e94e95 | ||
|
|
01de778831 | ||
|
|
1fda2a611c | ||
|
|
d5d19acb3f | ||
|
|
fded22e1b3 | ||
|
|
91afc2079c | ||
|
|
d09fee90ad | ||
|
|
e1dbdce91e | ||
|
|
28227ea4c4 | ||
|
|
97ad04dfd0 | ||
|
|
4ada08c690 | ||
|
|
84ee81aba9 | ||
|
|
32a70a6552 | ||
|
|
ae88702e00 | ||
|
|
384fe14ac6 | ||
|
|
c52228278f | ||
|
|
8c07d4e7b9 | ||
|
|
fb5b7a34e3 | ||
|
|
1e951605fb | ||
|
|
82dd025860 | ||
|
|
f1d5a0a1b3 | ||
|
|
8a43789db5 | ||
|
|
ef0e3fe6c6 | ||
|
|
41d12130c2 | ||
|
|
b23062c54a | ||
|
|
455a20d852 | ||
|
|
a3498c506f | ||
|
|
2505291065 | ||
|
|
81458912f9 | ||
|
|
da93a960af | ||
|
|
cea03d91e4 | ||
|
|
320d22f2a7 | ||
|
|
8ff0f9e869 | ||
|
|
74dd2553a6 | ||
|
|
85bb789ffa | ||
|
|
06dfc4e6ef | ||
|
|
ba7b0612dc | ||
|
|
c8c4ff39de | ||
|
|
d12e5104e2 | ||
|
|
90515fdbb0 | ||
|
|
cb9fc6fa3e | ||
|
|
152f04c0a7 | ||
|
|
527d58c9c3 | ||
|
|
839c0af088 | ||
|
|
3db06d7426 | ||
|
|
ae607e56ca | ||
|
|
d6b042f9fe | ||
|
|
735e441afc | ||
|
|
48d00e817f | ||
|
|
ce4dc4ae21 | ||
|
|
0c1087a2e5 | ||
|
|
abd605a066 | ||
|
|
5bd06d3a02 | ||
|
|
391cf379ae | ||
|
|
264cce2003 | ||
|
|
79dd0958d0 | ||
|
|
2c6188b73f | ||
|
|
33adabb035 | ||
|
|
616500b8f3 | ||
|
|
2f98f5a6d6 | ||
|
|
2a6656050c | ||
|
|
80b22ca2be | ||
|
|
53159a81cf | ||
|
|
6f0f7ce948 | ||
|
|
c21dd828d5 | ||
|
|
97bed8e710 | ||
|
|
aaf70d652b | ||
|
|
54c21b30c9 | ||
|
|
91f23938b5 | ||
|
|
0af0db6593 | ||
|
|
7a1ebd22ed | ||
|
|
c2e96a081f | ||
|
|
1d56035a56 | ||
|
|
0e68a9e0fc | ||
|
|
a143a8b1f6 | ||
|
|
5114b37bfa | ||
|
|
8c746302a2 | ||
|
|
a1d6ca2298 | ||
|
|
d6a617c225 | ||
|
|
69f57351b2 | ||
|
|
c4d5267107 | ||
|
|
6b1ee680a2 | ||
|
|
d3ebdae159 | ||
|
|
86a0d3faff | ||
|
|
3f62ad08e1 | ||
|
|
1a483a7d88 | ||
|
|
3daff15f34 | ||
|
|
1736c1e32e | ||
|
|
764ca25f8d | ||
|
|
79ee48d91b | ||
|
|
e2f4fc245a | ||
|
|
f26319a2b0 | ||
|
|
637c99a362 | ||
|
|
a1a0ed0563 | ||
|
|
0a825a1aa4 | ||
|
|
b5f805fc6c | ||
|
|
55c8633f9a | ||
|
|
1fa95de554 | ||
|
|
a1080f4853 | ||
|
|
48d178886e | ||
|
|
673bac12a6 | ||
|
|
b0a0508c85 | ||
|
|
69ecdd3236 | ||
|
|
9a950cdca6 | ||
|
|
7ec3cf46d6 | ||
|
|
ba0d3d1a6a | ||
|
|
b9ff3b6c81 | ||
|
|
f4178e41b3 | ||
|
|
d648227e3d | ||
|
|
3d0094b611 | ||
|
|
f85a4c0467 | ||
|
|
b24d4cce8d | ||
|
|
a235da9cc5 | ||
|
|
fa45ea32dc | ||
|
|
a594c444da | ||
|
|
210f06d990 | ||
|
|
899156435c | ||
|
|
1303b4950f | ||
|
|
a24deadb54 | ||
|
|
4b55e6e68e | ||
|
|
0121366f65 | ||
|
|
c60fefa1a6 | ||
|
|
8c03d50421 | ||
|
|
7318814474 | ||
|
|
afc4f3386a | ||
|
|
c6c6171841 | ||
|
|
47bf88ed3f | ||
|
|
492d67c6e8 | ||
|
|
58b63cb58c | ||
|
|
d4a76b979c | ||
|
|
4fdfd04d3c | ||
|
|
79f6aacc85 | ||
|
|
c73ce3d02d | ||
|
|
f3d03b025a | ||
|
|
a1ac59a48a | ||
|
|
f401f817ed | ||
|
|
23c76075e5 | ||
|
|
d132e6bce4 | ||
|
|
1f188b2610 | ||
|
|
a6d8b3b847 | ||
|
|
0de6e80093 | ||
|
|
3d0f8c986f | ||
|
|
d41edf21e4 | ||
|
|
06167087b3 | ||
|
|
a3d5d9112a | ||
|
|
1cb5ba3efd | ||
|
|
b56d9c9e31 | ||
|
|
a48369dc41 | ||
|
|
6800753f09 | ||
|
|
e9e08c6576 | ||
|
|
5907bbea6e | ||
|
|
cb5b265dcd | ||
|
|
f9baf3eb1c | ||
|
|
1dba4aceca | ||
|
|
e8b3532658 | ||
|
|
35979bb5a6 | ||
|
|
182e826dc5 | ||
|
|
08ef4bfbff | ||
|
|
1bc3f346b1 | ||
|
|
6dff0b13a4 | ||
|
|
76796c76cd | ||
|
|
c5d2343f51 | ||
|
|
e6e7c95e94 | ||
|
|
f4cb9de8d9 | ||
|
|
6f19551a77 | ||
|
|
efce449550 | ||
|
|
ffa216d958 | ||
|
|
ecb42cad9b | ||
|
|
0ddb77c048 | ||
|
|
5bd806ada6 | ||
|
|
2582649490 | ||
|
|
2084ead56c | ||
|
|
f2e50d4ffd | ||
|
|
6faa7a060c | ||
|
|
f998b72e99 | ||
|
|
fe30f2e48e | ||
|
|
9a82bed3a5 | ||
|
|
a00b8ecc55 | ||
|
|
9452444a9f | ||
|
|
2e8f56fc86 | ||
|
|
8148148932 | ||
|
|
e000eeaafb | ||
|
|
9ac9307b44 | ||
|
|
cdba010794 | ||
|
|
eb947dc325 | ||
|
|
9e22135f35 | ||
|
|
5c42ced8d3 | ||
|
|
b5e9a9d451 | ||
|
|
cd3cfb27de | ||
|
|
f7d35ff619 | ||
|
|
81dd3b46c5 | ||
|
|
96d3b41989 | ||
|
|
ff837a767b | ||
|
|
002dc80d48 | ||
|
|
c64d7483db | ||
|
|
ef0f473199 | ||
|
|
fd8161c523 | ||
|
|
53e2824937 | ||
|
|
71ebb2493e | ||
|
|
ad9ec44228 | ||
|
|
8775e51ebd | ||
|
|
f11877e72c | ||
|
|
66785be691 | ||
|
|
1fb3de2960 | ||
|
|
654343f875 | ||
|
|
0bf7a35a53 | ||
|
|
3a46634f4a | ||
|
|
67f7eaabc7 | ||
|
|
d28669761f | ||
|
|
8684596d66 | ||
|
|
460ee7f5de | ||
|
|
b7536ca94b | ||
|
|
58077c63a7 | ||
|
|
22b65489e2 | ||
|
|
2816188c83 | ||
|
|
4d78b6be31 | ||
|
|
5087d13de8 | ||
|
|
4d6d5c870c | ||
|
|
dd8666036c | ||
|
|
27a4bc5a39 | ||
|
|
88f4d1e3a7 | ||
|
|
c6d8b52d26 | ||
|
|
14efa6fbda | ||
|
|
e859d3f3d1 | ||
|
|
0f26be85b5 | ||
|
|
49505ab93f | ||
|
|
86a6fcddc0 | ||
|
|
c92de149a2 | ||
|
|
36fe83afcc | ||
|
|
5771e6eae8 | ||
|
|
7d491cb230 | ||
|
|
a86f2615be | ||
|
|
c37d9c10f7 | ||
|
|
e39db3f9ad | ||
|
|
82f347403a | ||
|
|
916d7502c8 | ||
|
|
42651c1500 | ||
|
|
da4a785fae | ||
|
|
c2b78c6fdf | ||
|
|
c260decf58 | ||
|
|
17eb468f38 | ||
|
|
75c64e12aa | ||
|
|
ea25d12405 | ||
|
|
ca8c5b041d | ||
|
|
414ce3589a | ||
|
|
37b1d3ae42 | ||
|
|
f984339404 | ||
|
|
86895cbf45 | ||
|
|
18953e81bc | ||
|
|
bae75d234a | ||
|
|
2f634bddd3 | ||
|
|
187f0bea3b | ||
|
|
605afeff74 | ||
|
|
0d45e6d70e | ||
|
|
4362cc0e9a | ||
|
|
5af88a3e2b | ||
|
|
9628700ced | ||
|
|
32ed98a9a5 | ||
|
|
ea032b4b3e | ||
|
|
449192e565 | ||
|
|
9d1840e37a | ||
|
|
ec0f9e49c3 | ||
|
|
390245806a | ||
|
|
22e02b545e | ||
|
|
b020bd76c6 | ||
|
|
483b5a75e8 | ||
|
|
70d1719b7d | ||
|
|
30ba964f9d | ||
|
|
3ef93addd0 | ||
|
|
0980591fa2 | ||
|
|
e59b252cc0 | ||
|
|
4496093cf8 | ||
|
|
8b78551b92 | ||
|
|
bde2e3956d | ||
|
|
c85ba4c259 | ||
|
|
403518e852 | ||
|
|
41091f8ebf | ||
|
|
f78c39cc98 | ||
|
|
39a9b7b721 | ||
|
|
9d2b6cb589 | ||
|
|
87c42c8c5d | ||
|
|
e31afb5885 | ||
|
|
2fbac107ca | ||
|
|
a1239ee6a8 | ||
|
|
15ac8d9ffc | ||
|
|
f57be52061 | ||
|
|
f68918c5a9 | ||
|
|
1b481f1946 | ||
|
|
127c1ef8bf | ||
|
|
189c8701d7 | ||
|
|
f7c1b6e060 | ||
|
|
c25020765c | ||
|
|
10c3928eef | ||
|
|
100fe404a5 | ||
|
|
0ade0a44b5 | ||
|
|
7a20d94536 | ||
|
|
4e2e178417 | ||
|
|
aad9ea0e05 | ||
|
|
074da1fedf | ||
|
|
c8a760832b | ||
|
|
b69dcb51a0 | ||
|
|
e55229db40 | ||
|
|
d8abd04a8e | ||
|
|
5935572458 | ||
|
|
807521f91b | ||
|
|
8ee14a8039 | ||
|
|
8cd45189c3 | ||
|
|
fbb0a77ce3 | ||
|
|
854574af66 | ||
|
|
1f7d6461c5 | ||
|
|
30d5135fdd | ||
|
|
192c5d2c4a | ||
|
|
6c87673e57 | ||
|
|
ba46b25e2f | ||
|
|
d044147698 | ||
|
|
689405732c | ||
|
|
bae54f312d | ||
|
|
8fbe363f3c | ||
|
|
141c5e60c5 | ||
|
|
9d41fe251b | ||
|
|
6ccebbf7a8 | ||
|
|
ef27358a82 | ||
|
|
fb13a502d2 | ||
|
|
e6b363ef54 | ||
|
|
8fd3fd7259 | ||
|
|
3f2f799248 | ||
|
|
b460019846 | ||
|
|
35b5e6a923 | ||
|
|
e24f3585d4 | ||
|
|
220f55d760 | ||
|
|
c374343ae9 | ||
|
|
ca3035fe07 | ||
|
|
5af621056a | ||
|
|
44d43495a7 | ||
|
|
8a92ad1434 | ||
|
|
182d51eb34 | ||
|
|
22dc1e7f86 | ||
|
|
babd8868d9 | ||
|
|
038d3bea87 | ||
|
|
f3399ead26 | ||
|
|
888f0a27da | ||
|
|
c979181bd7 | ||
|
|
916537b0f8 | ||
|
|
65152066ca | ||
|
|
0651e45460 | ||
|
|
7d96af950e | ||
|
|
82d5194a4f | ||
|
|
9d479ab64b | ||
|
|
1922598f0f | ||
|
|
3d7b86660a | ||
|
|
907964a7d1 | ||
|
|
384c0c12ea | ||
|
|
749568f290 | ||
|
|
0403bd8c3c | ||
|
|
eafadaf15a | ||
|
|
ea06e2e403 | ||
|
|
11a15ca58a | ||
|
|
93cb647091 | ||
|
|
42b879e6b8 | ||
|
|
b8f8459275 | ||
|
|
3bc5779f68 | ||
|
|
644f0e61ba | ||
|
|
5a8f01edf4 | ||
|
|
02afca3bb6 | ||
|
|
1fb3d7dd17 |
136
.gitignore
vendored
Normal file
136
.gitignore
vendored
Normal file
@@ -0,0 +1,136 @@
|
||||
.*.swp
|
||||
.*.swn
|
||||
.*.swo
|
||||
|
||||
*.suo
|
||||
*.ncb
|
||||
*.sdf
|
||||
*.opensdf
|
||||
*.user
|
||||
*.log
|
||||
*.dsp
|
||||
*.dsw
|
||||
*.bsc
|
||||
*.mo
|
||||
|
||||
*.trace
|
||||
*.asm
|
||||
*.dump
|
||||
|
||||
_ReSharper.*
|
||||
pcsx2.snapshot_*
|
||||
postBuild.inc.cmd
|
||||
postBuild.cmd
|
||||
svnrev.h
|
||||
|
||||
build
|
||||
|
||||
.DS_Store
|
||||
Thumbs.db
|
||||
|
||||
Debug.txt
|
||||
install_log.txt
|
||||
|
||||
Debug
|
||||
Release
|
||||
Devel
|
||||
|
||||
oprofile_data/
|
||||
|
||||
/BuildLog.htm
|
||||
/UpgradeLog.XML
|
||||
/UpgradeLog2.XML
|
||||
/UpgradeLog3.XML
|
||||
|
||||
/bin/pcsx2*
|
||||
/bin/bios
|
||||
/bin/dumps
|
||||
/bin/help
|
||||
/bin/inis
|
||||
/bin/logs
|
||||
/bin/memcards
|
||||
/bin/plugins
|
||||
/bin/snaps
|
||||
/bin/sstates
|
||||
/deps
|
||||
/ipch
|
||||
/nsis/output/
|
||||
|
||||
/3rdparty/soundtouch/Win32
|
||||
/3rdparty/bzip2/Win32
|
||||
/3rdparty/libjpeg/Win32
|
||||
/3rdparty/portaudio/portaudio-2.0.pc
|
||||
/3rdparty/portaudio/bin
|
||||
/3rdparty/portaudio/bin-*
|
||||
/3rdparty/portaudio/autom4te.cache
|
||||
/3rdparty/portaudio/libtool
|
||||
/3rdparty/portaudio/config.*
|
||||
/3rdparty/portaudio/lib-stamp
|
||||
/3rdparty/portaudio/Makefile
|
||||
/3rdparty/portaudio/build/*
|
||||
/3rdparty/portaudio/bindings
|
||||
/3rdparty/portaudio/test
|
||||
/3rdparty/portaudio/testcvs
|
||||
/3rdparty/portaudio/build/msvc/Win32
|
||||
/3rdparty/portaudio/build/msvc/Release (NO ASIO)
|
||||
/3rdparty/portaudio/build/msvc/x64
|
||||
/3rdparty/portaudio/src/hostapi/asio/ASIOSDK/common
|
||||
/3rdparty/portaudio/src/hostapi/asio/ASIOSDK/host
|
||||
/3rdparty/portaudio/src/hostapi/wasapi/mingw-include
|
||||
/3rdparty/w32pthreads/Win32
|
||||
/3rdparty/wxWidgets/deps
|
||||
/3rdparty/wxWidgets/build/msw/Win32
|
||||
/3rdparty/wxWidgets/lib/vc_lib/msw/wx/setup.h
|
||||
/3rdparty/wxWidgets/lib/vc_lib/mswd/wx/setup.h
|
||||
/3rdparty/wxWidgets/lib/vc_lib/mswd/wx/msw/rcdefs.h
|
||||
/3rdparty/zlib/Win32
|
||||
/common/deps
|
||||
/common/build/Utilities/Win32
|
||||
/common/build/x86emitter/Win32
|
||||
/nsis/svnrev_cdvdiso.nsh
|
||||
/nsis/svnrev_gsdx.nsh
|
||||
/nsis/svnrev_lilypad.nsh
|
||||
/nsis/svnrev_pcsx2.nsh
|
||||
/nsis/svnrev_spu2x.nsh
|
||||
/nsis/svnrev_zerogs.nsh
|
||||
/nsis/svnrev_zerospu2.nsh
|
||||
/nsis/vcredist_x86.exe
|
||||
/nsis/vcredist_2008_sp1_x86.exe
|
||||
/nsis/vcredist_2010_x86.exe
|
||||
/nsis/dxwebsetup.exe
|
||||
/pcsx2/gui/Resources/Thumbs.db
|
||||
/pcsx2/gui/Resources/*.h
|
||||
/pcsx2/windows/VCprojects/Win32
|
||||
/plugins/CDVDiso/src/Windows/Win32
|
||||
/plugins/CDVDnull/Windows/Win32
|
||||
/plugins/CDVDolio/Win32
|
||||
/plugins/CDVDolio/x64
|
||||
/plugins/CDVDolio/Template
|
||||
/plugins/CDVDolio/Debug SSE4
|
||||
/plugins/FWnull/Windows/Win32
|
||||
/plugins/GSdx/Win32
|
||||
/plugins/GSdx/Release SSE2
|
||||
/plugins/GSdx/x64
|
||||
/plugins/GSdx/Template
|
||||
/plugins/GSnull/Windows/Win32
|
||||
/plugins/LilyPad/Win32
|
||||
/plugins/LilyPad/x64
|
||||
/plugins/PadNull/Windows/Win32
|
||||
/plugins/SSSPSXPAD/Win32
|
||||
/plugins/USBnull/Windows/Win32
|
||||
/plugins/USBqemu/Win32/bin
|
||||
/plugins/USBqemu/Win32/Win32
|
||||
/plugins/cdvdGigaherz/src/Windows/Win32
|
||||
/plugins/dev9null/Windows/Win32
|
||||
/plugins/spu2-x/src/Windows/Win32
|
||||
/plugins/xpad/Win32
|
||||
/plugins/xpad/x64
|
||||
/plugins/xpad/Template
|
||||
/plugins/zerogs/dx/Windows/Win32
|
||||
/plugins/zerospu2/Windows/Win32
|
||||
/plugins/zerospu2/Windows/dsound51.cpp
|
||||
/plugins/zzogl-pg/opengl/Win32/Win32
|
||||
/plugins/zzogl-pg-cg/opengl/Win32/Win32
|
||||
/tools/bin
|
||||
/tools/GSDumpGUI/bin
|
||||
/tools/GSDumpGUI/obj
|
||||
26
3rdparty/3rdparty.vsprops
vendored
26
3rdparty/3rdparty.vsprops
vendored
@@ -1,26 +0,0 @@
|
||||
<?xml version="1.0" encoding="windows-1250"?>
|
||||
<VisualStudioPropertySheet
|
||||
ProjectType="Visual C++"
|
||||
Version="8.00"
|
||||
Name="3rdparty"
|
||||
OutputDirectory="$(SvnRootDir)\deps\$(PlatformName)\$(ConfigurationName)"
|
||||
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
DeleteExtensionsOnClean="*.bsc;*.idb;*.sbr;*.res;*.pch;*.pdb;*.obj;*.tlb;*.tli;*.tlh;*.tmp;*.rsp;*.pgc;*.pgd;*.meta;$(TargetPath)"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""$(ProjectDir)""
|
||||
PreprocessorDefinitions="__WIN32__;WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE"
|
||||
StructMemberAlignment="5"
|
||||
EnableFunctionLevelLinking="true"
|
||||
RuntimeTypeInfo="false"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="3"
|
||||
CompileAs="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="2"
|
||||
/>
|
||||
</VisualStudioPropertySheet>
|
||||
30
3rdparty/3rdpartyDLL.vsprops
vendored
30
3rdparty/3rdpartyDLL.vsprops
vendored
@@ -1,30 +0,0 @@
|
||||
<?xml version="1.0" encoding="windows-1250"?>
|
||||
<VisualStudioPropertySheet
|
||||
ProjectType="Visual C++"
|
||||
Version="8.00"
|
||||
Name="3rdpartyDLL"
|
||||
OutputDirectory="$(SvnRootDir)\deps\$(PlatformName)\$(ConfigurationName)"
|
||||
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""$(ProjectDir)""
|
||||
PreprocessorDefinitions="__WIN32__;WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE"
|
||||
StructMemberAlignment="5"
|
||||
RuntimeTypeInfo="false"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
OutputFile="$(SolutionDir)\bin\$(ProjectName).dll"
|
||||
LinkIncremental="1"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="2"
|
||||
ImportLibrary="$(OutDir)\$(ProjectName).lib"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
AdditionalIncludeDirectories=""$(SvnRootDir)/common/include""
|
||||
/>
|
||||
</VisualStudioPropertySheet>
|
||||
8
3rdparty/CMakeLists.txt
vendored
8
3rdparty/CMakeLists.txt
vendored
@@ -1,8 +0,0 @@
|
||||
# Check that people use the good file
|
||||
if(NOT TOP_CMAKE_WAS_SOURCED)
|
||||
message(FATAL_ERROR "
|
||||
You did not 'cmake' the good CMakeLists.txt file. Use the one in the top dir.
|
||||
It is advice to delete all wrongly generated cmake stuff => CMakeFiles & CMakeCache.txt")
|
||||
endif(NOT TOP_CMAKE_WAS_SOURCED)
|
||||
|
||||
### 3rd party was dropped
|
||||
15
3rdparty/DefaultProjectRootDir.vsprops
vendored
15
3rdparty/DefaultProjectRootDir.vsprops
vendored
@@ -1,15 +0,0 @@
|
||||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioPropertySheet
|
||||
ProjectType="Visual C++"
|
||||
Version="8.00"
|
||||
Name="DefaultProjectRootDir"
|
||||
>
|
||||
<UserMacro
|
||||
Name="ProjectRootDir"
|
||||
Value="$(ProjectDir)"
|
||||
/>
|
||||
<UserMacro
|
||||
Name="SvnRootDir"
|
||||
Value="$(ProjectRootDir)\..\.."
|
||||
/>
|
||||
</VisualStudioPropertySheet>
|
||||
67
3rdparty/SoundTouch/CMakeLists.txt
vendored
67
3rdparty/SoundTouch/CMakeLists.txt
vendored
@@ -1,67 +0,0 @@
|
||||
# SoundTouch library
|
||||
|
||||
# library name
|
||||
set(Output pcsx2_SoundTouch)
|
||||
|
||||
set(CommonFlags
|
||||
-march=athlon-xp
|
||||
-march=prescott
|
||||
)
|
||||
|
||||
set(OptimizationFlags
|
||||
-Os
|
||||
-W
|
||||
)
|
||||
|
||||
# Debug - Build
|
||||
if(CMAKE_BUILD_TYPE STREQUAL Debug)
|
||||
# add defines
|
||||
add_definitions(${CommonFlags} -g)
|
||||
endif(CMAKE_BUILD_TYPE STREQUAL Debug)
|
||||
|
||||
# Devel - Build
|
||||
if(CMAKE_BUILD_TYPE STREQUAL Devel)
|
||||
# add defines
|
||||
add_definitions(${CommonFlags} ${OptimizationFlags})
|
||||
endif(CMAKE_BUILD_TYPE STREQUAL Devel)
|
||||
|
||||
# Release - Build
|
||||
if(CMAKE_BUILD_TYPE STREQUAL Release)
|
||||
# add defines
|
||||
add_definitions(${CommonFlags} ${OptimizationFlags})
|
||||
endif(CMAKE_BUILD_TYPE STREQUAL Release)
|
||||
|
||||
# variable with all sources of this library
|
||||
set(SoundTouchSources
|
||||
AAFilter.cpp
|
||||
FIFOSampleBuffer.cpp
|
||||
FIRFilter.cpp
|
||||
RateTransposer.cpp
|
||||
SoundTouch.cpp
|
||||
TDStretch.cpp
|
||||
# WavFile.cpp # directly include in spu2x
|
||||
cpu_detect_x86_gcc.cpp
|
||||
mmx_optimized.cpp
|
||||
sse_optimized.cpp)
|
||||
|
||||
# variable with all headers of this library
|
||||
set(SoundTouchHeaders
|
||||
AAFilter.h
|
||||
BPMDetect.h
|
||||
FIFOSampleBuffer.h
|
||||
FIFOSamplePipe.h
|
||||
FIRFilter.h
|
||||
RateTransposer.h
|
||||
STTypes.h
|
||||
SoundTouch.h
|
||||
TDStretch.h
|
||||
# WavFile.h # directly include in spu2x
|
||||
cpu_detect.h)
|
||||
|
||||
# add library
|
||||
add_library(${Output} STATIC ${SoundTouchSources} ${SoundTouchHeaders})
|
||||
|
||||
# User flags options
|
||||
if(NOT USER_CMAKE_LD_FLAGS STREQUAL "")
|
||||
target_link_libraries(${Output} "${USER_CMAKE_LD_FLAGS}")
|
||||
endif(NOT USER_CMAKE_LD_FLAGS STREQUAL "")
|
||||
86
3rdparty/SoundTouch/SoundTouch.cbp
vendored
86
3rdparty/SoundTouch/SoundTouch.cbp
vendored
@@ -1,86 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
|
||||
<CodeBlocks_project_file>
|
||||
<FileVersion major="1" minor="6" />
|
||||
<Project>
|
||||
<Option title="SoundTouch" />
|
||||
<Option pch_mode="2" />
|
||||
<Option compiler="gcc" />
|
||||
<Build>
|
||||
<Target title="Debug">
|
||||
<Option output="../../deps/debug/libsoundtouch-dbg" prefix_auto="1" extension_auto="1" />
|
||||
<Option working_dir="" />
|
||||
<Option object_output="./.objs/debug" />
|
||||
<Option type="2" />
|
||||
<Option compiler="gcc" />
|
||||
<Option createDefFile="1" />
|
||||
<Compiler>
|
||||
<Add option="-g" />
|
||||
<Add option="-O0" />
|
||||
</Compiler>
|
||||
</Target>
|
||||
<Target title="Devel">
|
||||
<Option output="../../deps/devel/libsoundtouch-dev" prefix_auto="1" extension_auto="1" />
|
||||
<Option working_dir="" />
|
||||
<Option object_output="./.objs/devel" />
|
||||
<Option type="2" />
|
||||
<Option compiler="gcc" />
|
||||
<Option createDefFile="1" />
|
||||
<Compiler>
|
||||
<Add option="-O1" />
|
||||
<Add option="-W" />
|
||||
<Add option="-g" />
|
||||
<Add option="-DNDEBUG" />
|
||||
</Compiler>
|
||||
</Target>
|
||||
<Target title="Release">
|
||||
<Option output="../../deps/libsoundtouch" prefix_auto="1" extension_auto="1" />
|
||||
<Option working_dir="" />
|
||||
<Option object_output="./.objs/release" />
|
||||
<Option type="2" />
|
||||
<Option compiler="gcc" />
|
||||
<Option createDefFile="1" />
|
||||
<Compiler>
|
||||
<Add option="-fexpensive-optimizations" />
|
||||
<Add option="-O3" />
|
||||
<Add option="-W" />
|
||||
<Add option="-DNDEBUG" />
|
||||
</Compiler>
|
||||
<Linker>
|
||||
<Add option="-s" />
|
||||
</Linker>
|
||||
</Target>
|
||||
</Build>
|
||||
<Compiler>
|
||||
<Add option="-march=athlon-xp" />
|
||||
<Add option="-march=prescott" />
|
||||
</Compiler>
|
||||
<Unit filename="AAFilter.cpp" />
|
||||
<Unit filename="AAFilter.h" />
|
||||
<Unit filename="BPMDetect.h" />
|
||||
<Unit filename="FIFOSampleBuffer.cpp" />
|
||||
<Unit filename="FIFOSampleBuffer.h" />
|
||||
<Unit filename="FIFOSamplePipe.h" />
|
||||
<Unit filename="FIRFilter.cpp" />
|
||||
<Unit filename="FIRFilter.h" />
|
||||
<Unit filename="RateTransposer.cpp" />
|
||||
<Unit filename="RateTransposer.h" />
|
||||
<Unit filename="STTypes.h" />
|
||||
<Unit filename="SoundTouch.cpp" />
|
||||
<Unit filename="SoundTouch.h" />
|
||||
<Unit filename="TDStretch.cpp" />
|
||||
<Unit filename="TDStretch.h" />
|
||||
<Unit filename="WavFile.cpp" />
|
||||
<Unit filename="WavFile.h" />
|
||||
<Unit filename="cpu_detect.h" />
|
||||
<Unit filename="cpu_detect_x86_gcc.cpp" />
|
||||
<Unit filename="mmx_optimized.cpp" />
|
||||
<Unit filename="soundtouch_config.h" />
|
||||
<Unit filename="sse_optimized.cpp" />
|
||||
<Extensions>
|
||||
<envvars />
|
||||
<code_completion />
|
||||
<lib_finder disable_auto="1" />
|
||||
<debugger />
|
||||
</Extensions>
|
||||
</Project>
|
||||
</CodeBlocks_project_file>
|
||||
285
3rdparty/SoundTouch/SoundTouch.vcproj
vendored
285
3rdparty/SoundTouch/SoundTouch.vcproj
vendored
@@ -1,285 +0,0 @@
|
||||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="9.00"
|
||||
Name="SoundTouch"
|
||||
ProjectGUID="{E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}"
|
||||
RootNamespace="SoundTouch"
|
||||
TargetFrameworkVersion="0"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"
|
||||
/>
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
ConfigurationType="4"
|
||||
InheritedPropertySheets="..\DefaultProjectRootDir.vsprops;..\3rdparty.vsprops;..\..\common\vsprops\CodeGen_Debug.vsprops;..\..\common\vsprops\IncrementalLinking.vsprops"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
WarningLevel="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
ConfigurationType="4"
|
||||
InheritedPropertySheets="..\DefaultProjectRootDir.vsprops;..\3rdparty.vsprops;..\..\common\vsprops\CodeGen_Release.vsprops"
|
||||
CharacterSet="2"
|
||||
WholeProgramOptimization="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
WarningLevel="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Devel|Win32"
|
||||
ConfigurationType="4"
|
||||
InheritedPropertySheets="..\DefaultProjectRootDir.vsprops;..\3rdparty.vsprops;..\..\common\vsprops\CodeGen_Devel.vsprops;..\..\common\vsprops\IncrementalLinking.vsprops"
|
||||
CharacterSet="2"
|
||||
WholeProgramOptimization="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="Source Files"
|
||||
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\3dnow_win.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\AAFilter.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\cpu_detect_x86_win.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\FIFOSampleBuffer.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\FIRFilter.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\mmx_optimized.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\RateTransposer.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\SoundTouch.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\sse_optimized.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\TDStretch.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\WavFile.cpp"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\AAFilter.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\BPMDetect.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\cpu_detect.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\FIFOSampleBuffer.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\FIFOSamplePipe.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\FIRFilter.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\RateTransposer.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\SoundTouch.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\STTypes.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\TDStretch.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\WavFile.h"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
55
3rdparty/bzip2/CMakeLists.txt
vendored
55
3rdparty/bzip2/CMakeLists.txt
vendored
@@ -1,55 +0,0 @@
|
||||
# bzip2 library
|
||||
|
||||
# library name
|
||||
set(Output pcsx2_bzip2)
|
||||
|
||||
set(CommonFlags
|
||||
-march=athlon-xp
|
||||
-march=prescott
|
||||
)
|
||||
|
||||
set(OptimizationFlags
|
||||
-Os
|
||||
-W
|
||||
)
|
||||
|
||||
# Debug - Build
|
||||
if(CMAKE_BUILD_TYPE STREQUAL Debug)
|
||||
# add defines
|
||||
add_definitions(${CommonFlags} -g)
|
||||
endif(CMAKE_BUILD_TYPE STREQUAL Debug)
|
||||
|
||||
# Devel - Build
|
||||
if(CMAKE_BUILD_TYPE STREQUAL Devel)
|
||||
# add defines
|
||||
add_definitions(${CommonFlags} ${OptimizationFlags} -g)
|
||||
endif(CMAKE_BUILD_TYPE STREQUAL Devel)
|
||||
|
||||
# Release - Build
|
||||
if(CMAKE_BUILD_TYPE STREQUAL Release)
|
||||
# add defines
|
||||
add_definitions(${CommonFlags} ${OptimizationFlags})
|
||||
endif(CMAKE_BUILD_TYPE STREQUAL Release)
|
||||
|
||||
# variable with all sources of this library
|
||||
set(bzip2Sources
|
||||
blocksort.c
|
||||
bzlib.c
|
||||
compress.c
|
||||
crctable.c
|
||||
decompress.c
|
||||
huffman.c
|
||||
randtable.c)
|
||||
|
||||
# variable with all headers of this library
|
||||
set(bzip2Headers
|
||||
bzlib.h
|
||||
bzlib_private.h)
|
||||
|
||||
# add library
|
||||
add_library(${Output} STATIC ${bzip2Sources} ${bzip2Headers})
|
||||
|
||||
# User flags options
|
||||
if(NOT USER_CMAKE_LD_FLAGS STREQUAL "")
|
||||
target_link_libraries(${Output} "${USER_CMAKE_LD_FLAGS}")
|
||||
endif(NOT USER_CMAKE_LD_FLAGS STREQUAL "")
|
||||
87
3rdparty/bzip2/bzip2.cbp
vendored
87
3rdparty/bzip2/bzip2.cbp
vendored
@@ -1,87 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
|
||||
<CodeBlocks_project_file>
|
||||
<FileVersion major="1" minor="6" />
|
||||
<Project>
|
||||
<Option title="bzip2" />
|
||||
<Option pch_mode="2" />
|
||||
<Option compiler="gcc" />
|
||||
<Build>
|
||||
<Target title="Debug">
|
||||
<Option output="../../deps/debug/libbzip2" prefix_auto="1" extension_auto="1" />
|
||||
<Option working_dir="" />
|
||||
<Option object_output="./.objs/debug" />
|
||||
<Option type="2" />
|
||||
<Option compiler="gcc" />
|
||||
<Option createDefFile="1" />
|
||||
<Compiler>
|
||||
<Add option="-g" />
|
||||
<Add option="-O0" />
|
||||
</Compiler>
|
||||
</Target>
|
||||
<Target title="Devel">
|
||||
<Option output="../../deps/devel/libbzip2" prefix_auto="1" extension_auto="1" />
|
||||
<Option working_dir="" />
|
||||
<Option object_output="./.objs/devel" />
|
||||
<Option type="2" />
|
||||
<Option compiler="gcc" />
|
||||
<Option createDefFile="1" />
|
||||
<Compiler>
|
||||
<Add option="-O1" />
|
||||
<Add option="-W" />
|
||||
<Add option="-g" />
|
||||
<Add option="-DNDEBUG" />
|
||||
</Compiler>
|
||||
</Target>
|
||||
<Target title="Release">
|
||||
<Option output="../../deps/release/libbzip2" prefix_auto="1" extension_auto="1" />
|
||||
<Option working_dir="" />
|
||||
<Option object_output="./.objs/release" />
|
||||
<Option type="2" />
|
||||
<Option compiler="gcc" />
|
||||
<Option createDefFile="1" />
|
||||
<Compiler>
|
||||
<Add option="-fexpensive-optimizations" />
|
||||
<Add option="-O3" />
|
||||
<Add option="-W" />
|
||||
<Add option="-DNDEBUG" />
|
||||
</Compiler>
|
||||
<Linker>
|
||||
<Add option="-s" />
|
||||
</Linker>
|
||||
</Target>
|
||||
</Build>
|
||||
<Compiler>
|
||||
<Add option="-march=athlon-xp" />
|
||||
<Add option="-march=prescott" />
|
||||
</Compiler>
|
||||
<Unit filename="blocksort.c">
|
||||
<Option compilerVar="CC" />
|
||||
</Unit>
|
||||
<Unit filename="bzlib.c">
|
||||
<Option compilerVar="CC" />
|
||||
</Unit>
|
||||
<Unit filename="bzlib.h" />
|
||||
<Unit filename="bzlib_private.h" />
|
||||
<Unit filename="compress.c">
|
||||
<Option compilerVar="CC" />
|
||||
</Unit>
|
||||
<Unit filename="crctable.c">
|
||||
<Option compilerVar="CC" />
|
||||
</Unit>
|
||||
<Unit filename="decompress.c">
|
||||
<Option compilerVar="CC" />
|
||||
</Unit>
|
||||
<Unit filename="huffman.c">
|
||||
<Option compilerVar="CC" />
|
||||
</Unit>
|
||||
<Unit filename="randtable.c">
|
||||
<Option compilerVar="CC" />
|
||||
</Unit>
|
||||
<Extensions>
|
||||
<envvars />
|
||||
<code_completion />
|
||||
<lib_finder disable_auto="1" />
|
||||
<debugger />
|
||||
</Extensions>
|
||||
</Project>
|
||||
</CodeBlocks_project_file>
|
||||
231
3rdparty/bzip2/bzip2.vcproj
vendored
231
3rdparty/bzip2/bzip2.vcproj
vendored
@@ -1,231 +0,0 @@
|
||||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="9.00"
|
||||
Name="bzip2"
|
||||
ProjectGUID="{F4EB4AB2-C595-4B05-8BC0-059024BC796C}"
|
||||
RootNamespace="bzip2"
|
||||
TargetFrameworkVersion="0"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"
|
||||
/>
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
ConfigurationType="4"
|
||||
InheritedPropertySheets="..\DefaultProjectRootDir.vsprops;..\3rdparty.vsprops;..\..\common\vsprops\CodeGen_Debug.vsprops;..\..\common\vsprops\IncrementalLinking.vsprops"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
ConfigurationType="4"
|
||||
InheritedPropertySheets="..\DefaultProjectRootDir.vsprops;..\3rdparty.vsprops;..\..\common\vsprops\CodeGen_Release.vsprops"
|
||||
CharacterSet="2"
|
||||
WholeProgramOptimization="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Devel|Win32"
|
||||
ConfigurationType="4"
|
||||
InheritedPropertySheets="..\DefaultProjectRootDir.vsprops;..\3rdparty.vsprops;..\..\common\vsprops\CodeGen_Devel.vsprops;..\..\common\vsprops\IncrementalLinking.vsprops"
|
||||
CharacterSet="2"
|
||||
WholeProgramOptimization="0"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="Source Files"
|
||||
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\blocksort.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\bzlib.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\compress.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\crctable.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\decompress.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\huffman.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\randtable.c"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\bzlib.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\bzlib_private.h"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
261
3rdparty/google/dense_hash_map
vendored
261
3rdparty/google/dense_hash_map
vendored
@@ -1,261 +0,0 @@
|
||||
// Copyright (c) 2005, Google Inc.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
// met:
|
||||
//
|
||||
// * Redistributions of source code must retain the above copyright
|
||||
// notice, this list of conditions and the following disclaimer.
|
||||
// * Redistributions in binary form must reproduce the above
|
||||
// copyright notice, this list of conditions and the following disclaimer
|
||||
// in the documentation and/or other materials provided with the
|
||||
// distribution.
|
||||
// * Neither the name of Google Inc. nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from
|
||||
// this software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
// ----
|
||||
// Author: Craig Silverstein
|
||||
//
|
||||
// This is just a very thin wrapper over densehashtable.h, just
|
||||
// like sgi stl's stl_hash_map is a very thin wrapper over
|
||||
// stl_hashtable. The major thing we define is operator[], because
|
||||
// we have a concept of a data_type which stl_hashtable doesn't
|
||||
// (it only has a key and a value).
|
||||
//
|
||||
// NOTE: this is exactly like sparse_hash_map.h, with the word
|
||||
// "sparse" replaced by "dense", except for the addition of
|
||||
// set_empty_key().
|
||||
//
|
||||
// YOU MUST CALL SET_EMPTY_KEY() IMMEDIATELY AFTER CONSTRUCTION.
|
||||
//
|
||||
// Otherwise your program will die in mysterious ways.
|
||||
//
|
||||
// In other respects, we adhere mostly to the STL semantics for
|
||||
// hash-map. One important exception is that insert() invalidates
|
||||
// iterators entirely. On the plus side, though, erase() doesn't
|
||||
// invalidate iterators at all, or even change the ordering of elements.
|
||||
//
|
||||
// Here are a few "power user" tips:
|
||||
//
|
||||
// 1) set_deleted_key():
|
||||
// If you want to use erase() you must call set_deleted_key(),
|
||||
// in addition to set_empty_key(), after construction.
|
||||
// The deleted and empty keys must differ.
|
||||
//
|
||||
// 2) resize(0):
|
||||
// When an item is deleted, its memory isn't freed right
|
||||
// away. This allows you to iterate over a hashtable,
|
||||
// and call erase(), without invalidating the iterator.
|
||||
// To force the memory to be freed, call resize(0).
|
||||
//
|
||||
// 3) set_resizing_parameters(0.0, 0.8):
|
||||
// Setting the shrink_resize_percent to 0.0 guarantees
|
||||
// that the hash table will never shrink.
|
||||
//
|
||||
// Guide to what kind of hash_map to use:
|
||||
// (1) dense_hash_map: fastest, uses the most memory
|
||||
// (2) sparse_hash_map: slowest, uses the least memory
|
||||
// (3) hash_map (STL): in the middle
|
||||
// Typically I use sparse_hash_map when I care about space and/or when
|
||||
// I need to save the hashtable on disk. I use hash_map otherwise. I
|
||||
// don't personally use dense_hash_map ever; the only use of
|
||||
// dense_hash_map I know of is to work around malloc() bugs in some
|
||||
// systems (dense_hash_map has a particularly simple allocation scheme).
|
||||
//
|
||||
// - dense_hash_map has, typically, a factor of 2 memory overhead (if your
|
||||
// data takes up X bytes, the hash_map uses X more bytes in overhead).
|
||||
// - sparse_hash_map has about 2 bits overhead per entry.
|
||||
// - sparse_hash_map can be 3-7 times slower than the others for lookup and,
|
||||
// especially, inserts. See time_hash_map.cc for details.
|
||||
//
|
||||
// See /usr/(local/)?doc/sparsehash-0.1/dense_hash_map.html
|
||||
// for information about how to use this class.
|
||||
|
||||
#ifndef _DENSE_HASH_MAP_H_
|
||||
#define _DENSE_HASH_MAP_H_
|
||||
|
||||
#include <google/sparsehash/sparseconfig.h>
|
||||
#include <stdio.h> // for FILE * in read()/write()
|
||||
#include <algorithm> // for the default template args
|
||||
#include <functional> // for equal_to
|
||||
#include <memory> // for alloc<>
|
||||
#include <utility> // for pair<>
|
||||
#include HASH_FUN_H // defined in config.h
|
||||
#include <google/sparsehash/densehashtable.h>
|
||||
|
||||
|
||||
_START_GOOGLE_NAMESPACE_
|
||||
|
||||
using STL_NAMESPACE::pair;
|
||||
|
||||
template <class Key, class T,
|
||||
class HashFcn = SPARSEHASH_HASH<Key>, // defined in sparseconfig.h
|
||||
class EqualKey = STL_NAMESPACE::equal_to<Key>,
|
||||
class Alloc = STL_NAMESPACE::allocator<T> >
|
||||
class dense_hash_map {
|
||||
private:
|
||||
// Apparently select1st is not stl-standard, so we define our own
|
||||
struct SelectKey {
|
||||
const Key& operator()(const pair<const Key, T>& p) const {
|
||||
return p.first;
|
||||
}
|
||||
};
|
||||
|
||||
// The actual data
|
||||
typedef dense_hashtable<pair<const Key, T>, Key, HashFcn,
|
||||
SelectKey, EqualKey, Alloc> ht;
|
||||
ht rep;
|
||||
|
||||
public:
|
||||
typedef typename ht::key_type key_type;
|
||||
typedef T data_type;
|
||||
typedef T mapped_type;
|
||||
typedef typename ht::value_type value_type;
|
||||
typedef typename ht::hasher hasher;
|
||||
typedef typename ht::key_equal key_equal;
|
||||
|
||||
typedef typename ht::size_type size_type;
|
||||
typedef typename ht::difference_type difference_type;
|
||||
typedef typename ht::pointer pointer;
|
||||
typedef typename ht::const_pointer const_pointer;
|
||||
typedef typename ht::reference reference;
|
||||
typedef typename ht::const_reference const_reference;
|
||||
|
||||
typedef typename ht::iterator iterator;
|
||||
typedef typename ht::const_iterator const_iterator;
|
||||
|
||||
// Iterator functions
|
||||
iterator begin() { return rep.begin(); }
|
||||
iterator end() { return rep.end(); }
|
||||
const_iterator begin() const { return rep.begin(); }
|
||||
const_iterator end() const { return rep.end(); }
|
||||
|
||||
|
||||
// Accessor functions
|
||||
hasher hash_funct() const { return rep.hash_funct(); }
|
||||
key_equal key_eq() const { return rep.key_eq(); }
|
||||
|
||||
|
||||
// Constructors
|
||||
explicit dense_hash_map(size_type expected_max_items_in_table = 0,
|
||||
const hasher& hf = hasher(),
|
||||
const key_equal& eql = key_equal())
|
||||
: rep(expected_max_items_in_table, hf, eql) { }
|
||||
|
||||
template <class InputIterator>
|
||||
dense_hash_map(InputIterator f, InputIterator l,
|
||||
size_type expected_max_items_in_table = 0,
|
||||
const hasher& hf = hasher(),
|
||||
const key_equal& eql = key_equal())
|
||||
: rep(expected_max_items_in_table, hf, eql) {
|
||||
rep.insert(f, l);
|
||||
}
|
||||
// We use the default copy constructor
|
||||
// We use the default operator=()
|
||||
// We use the default destructor
|
||||
|
||||
void clear() { rep.clear(); }
|
||||
// This clears the hash map without resizing it down to the minimum
|
||||
// bucket count, but rather keeps the number of buckets constant
|
||||
void clear_no_resize() { rep.clear_no_resize(); }
|
||||
void swap(dense_hash_map& hs) { rep.swap(hs.rep); }
|
||||
|
||||
|
||||
// Functions concerning size
|
||||
size_type size() const { return rep.size(); }
|
||||
size_type max_size() const { return rep.max_size(); }
|
||||
bool empty() const { return rep.empty(); }
|
||||
size_type bucket_count() const { return rep.bucket_count(); }
|
||||
size_type max_bucket_count() const { return rep.max_bucket_count(); }
|
||||
|
||||
void resize(size_type hint) { rep.resize(hint); }
|
||||
|
||||
void set_resizing_parameters(float shrink, float grow) {
|
||||
return rep.set_resizing_parameters(shrink, grow);
|
||||
}
|
||||
|
||||
// Lookup routines
|
||||
iterator find(const key_type& key) { return rep.find(key); }
|
||||
const_iterator find(const key_type& key) const { return rep.find(key); }
|
||||
|
||||
data_type& operator[](const key_type& key) { // This is our value-add!
|
||||
iterator it = find(key);
|
||||
if (it != end()) {
|
||||
return it->second;
|
||||
} else {
|
||||
return insert(value_type(key, data_type())).first->second;
|
||||
}
|
||||
}
|
||||
|
||||
size_type count(const key_type& key) const { return rep.count(key); }
|
||||
|
||||
pair<iterator, iterator> equal_range(const key_type& key) {
|
||||
return rep.equal_range(key);
|
||||
}
|
||||
pair<const_iterator, const_iterator> equal_range(const key_type& key) const {
|
||||
return rep.equal_range(key);
|
||||
}
|
||||
|
||||
// Insertion routines
|
||||
pair<iterator, bool> insert(const value_type& obj) { return rep.insert(obj); }
|
||||
template <class InputIterator>
|
||||
void insert(InputIterator f, InputIterator l) { rep.insert(f, l); }
|
||||
void insert(const_iterator f, const_iterator l) { rep.insert(f, l); }
|
||||
// required for std::insert_iterator; the passed-in iterator is ignored
|
||||
iterator insert(iterator, const value_type& obj) { return insert(obj).first; }
|
||||
|
||||
|
||||
// Deletion and empty routines
|
||||
// THESE ARE NON-STANDARD! I make you specify an "impossible" key
|
||||
// value to identify deleted and empty buckets. You can change the
|
||||
// deleted key as time goes on, or get rid of it entirely to be insert-only.
|
||||
void set_empty_key(const key_type& key) { // YOU MUST CALL THIS!
|
||||
rep.set_empty_key(value_type(key, data_type())); // rep wants a value
|
||||
}
|
||||
void set_deleted_key(const key_type& key) {
|
||||
rep.set_deleted_key(value_type(key, data_type())); // rep wants a value
|
||||
}
|
||||
void clear_deleted_key() { rep.clear_deleted_key(); }
|
||||
|
||||
// These are standard
|
||||
size_type erase(const key_type& key) { return rep.erase(key); }
|
||||
void erase(iterator it) { rep.erase(it); }
|
||||
void erase(iterator f, iterator l) { rep.erase(f, l); }
|
||||
|
||||
|
||||
// Comparison
|
||||
bool operator==(const dense_hash_map& hs) const { return rep == hs.rep; }
|
||||
bool operator!=(const dense_hash_map& hs) const { return rep != hs.rep; }
|
||||
|
||||
|
||||
// I/O -- this is an add-on for writing metainformation to disk
|
||||
bool write_metadata(FILE *fp) { return rep.write_metadata(fp); }
|
||||
bool read_metadata(FILE *fp) { return rep.read_metadata(fp); }
|
||||
bool write_nopointer_data(FILE *fp) { return rep.write_nopointer_data(fp); }
|
||||
bool read_nopointer_data(FILE *fp) { return rep.read_nopointer_data(fp); }
|
||||
};
|
||||
|
||||
// We need a global swap as well
|
||||
template <class Key, class T, class HashFcn, class EqualKey, class Alloc>
|
||||
inline void swap(dense_hash_map<Key, T, HashFcn, EqualKey, Alloc>& hm1,
|
||||
dense_hash_map<Key, T, HashFcn, EqualKey, Alloc>& hm2) {
|
||||
hm1.swap(hm2);
|
||||
}
|
||||
|
||||
_END_GOOGLE_NAMESPACE_
|
||||
|
||||
#endif /* _DENSE_HASH_MAP_H_ */
|
||||
245
3rdparty/google/dense_hash_set
vendored
245
3rdparty/google/dense_hash_set
vendored
@@ -1,245 +0,0 @@
|
||||
// Copyright (c) 2005, Google Inc.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
// met:
|
||||
//
|
||||
// * Redistributions of source code must retain the above copyright
|
||||
// notice, this list of conditions and the following disclaimer.
|
||||
// * Redistributions in binary form must reproduce the above
|
||||
// copyright notice, this list of conditions and the following disclaimer
|
||||
// in the documentation and/or other materials provided with the
|
||||
// distribution.
|
||||
// * Neither the name of Google Inc. nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from
|
||||
// this software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
// ---
|
||||
// Author: Craig Silverstein
|
||||
//
|
||||
// This is just a very thin wrapper over densehashtable.h, just
|
||||
// like sgi stl's stl_hash_set is a very thin wrapper over
|
||||
// stl_hashtable. The major thing we define is operator[], because
|
||||
// we have a concept of a data_type which stl_hashtable doesn't
|
||||
// (it only has a key and a value).
|
||||
//
|
||||
// This is more different from dense_hash_map than you might think,
|
||||
// because all iterators for sets are const (you obviously can't
|
||||
// change the key, and for sets there is no value).
|
||||
//
|
||||
// NOTE: this is exactly like sparse_hash_set.h, with the word
|
||||
// "sparse" replaced by "dense", except for the addition of
|
||||
// set_empty_key().
|
||||
//
|
||||
// YOU MUST CALL SET_EMPTY_KEY() IMMEDIATELY AFTER CONSTRUCTION.
|
||||
//
|
||||
// Otherwise your program will die in mysterious ways.
|
||||
//
|
||||
// In other respects, we adhere mostly to the STL semantics for
|
||||
// hash-set. One important exception is that insert() invalidates
|
||||
// iterators entirely. On the plus side, though, erase() doesn't
|
||||
// invalidate iterators at all, or even change the ordering of elements.
|
||||
//
|
||||
// Here are a few "power user" tips:
|
||||
//
|
||||
// 1) set_deleted_key():
|
||||
// If you want to use erase() you must call set_deleted_key(),
|
||||
// in addition to set_empty_key(), after construction.
|
||||
// The deleted and empty keys must differ.
|
||||
//
|
||||
// 2) resize(0):
|
||||
// When an item is deleted, its memory isn't freed right
|
||||
// away. This allows you to iterate over a hashtable,
|
||||
// and call erase(), without invalidating the iterator.
|
||||
// To force the memory to be freed, call resize(0).
|
||||
//
|
||||
// 3) set_resizing_parameters(0.0, 0.8):
|
||||
// Setting the shrink_resize_percent to 0.0 guarantees
|
||||
// that the hash table will never shrink.
|
||||
//
|
||||
// Guide to what kind of hash_set to use:
|
||||
// (1) dense_hash_set: fastest, uses the most memory
|
||||
// (2) sparse_hash_set: slowest, uses the least memory
|
||||
// (3) hash_set (STL): in the middle
|
||||
// Typically I use sparse_hash_set when I care about space and/or when
|
||||
// I need to save the hashtable on disk. I use hash_set otherwise. I
|
||||
// don't personally use dense_hash_set ever; the only use of
|
||||
// dense_hash_set I know of is to work around malloc() bugs in some
|
||||
// systems (dense_hash_set has a particularly simple allocation scheme).
|
||||
//
|
||||
// - dense_hash_set has, typically, a factor of 2 memory overhead (if your
|
||||
// data takes up X bytes, the hash_set uses X more bytes in overhead).
|
||||
// - sparse_hash_set has about 2 bits overhead per entry.
|
||||
// - sparse_hash_map can be 3-7 times slower than the others for lookup and,
|
||||
// especially, inserts. See time_hash_map.cc for details.
|
||||
//
|
||||
// See /usr/(local/)?doc/sparsehash-0.1/dense_hash_set.html
|
||||
// for information about how to use this class.
|
||||
|
||||
#ifndef _DENSE_HASH_SET_H_
|
||||
#define _DENSE_HASH_SET_H_
|
||||
|
||||
#include <google/sparsehash/sparseconfig.h>
|
||||
#include <stdio.h> // for FILE * in read()/write()
|
||||
#include <algorithm> // for the default template args
|
||||
#include <functional> // for equal_to
|
||||
#include <memory> // for alloc<>
|
||||
#include <utility> // for pair<>
|
||||
#include HASH_FUN_H // defined in config.h
|
||||
#include <google/sparsehash/densehashtable.h>
|
||||
|
||||
|
||||
_START_GOOGLE_NAMESPACE_
|
||||
|
||||
using STL_NAMESPACE::pair;
|
||||
|
||||
template <class Value,
|
||||
class HashFcn = SPARSEHASH_HASH<Value>, // defined in sparseconfig.h
|
||||
class EqualKey = STL_NAMESPACE::equal_to<Value>,
|
||||
class Alloc = STL_NAMESPACE::allocator<Value> >
|
||||
class dense_hash_set {
|
||||
private:
|
||||
// Apparently identity is not stl-standard, so we define our own
|
||||
struct Identity {
|
||||
Value& operator()(Value& v) const { return v; }
|
||||
const Value& operator()(const Value& v) const { return v; }
|
||||
};
|
||||
|
||||
// The actual data
|
||||
typedef dense_hashtable<Value, Value, HashFcn, Identity, EqualKey, Alloc> ht;
|
||||
ht rep;
|
||||
|
||||
public:
|
||||
typedef typename ht::key_type key_type;
|
||||
typedef typename ht::value_type value_type;
|
||||
typedef typename ht::hasher hasher;
|
||||
typedef typename ht::key_equal key_equal;
|
||||
|
||||
typedef typename ht::size_type size_type;
|
||||
typedef typename ht::difference_type difference_type;
|
||||
typedef typename ht::const_pointer pointer;
|
||||
typedef typename ht::const_pointer const_pointer;
|
||||
typedef typename ht::const_reference reference;
|
||||
typedef typename ht::const_reference const_reference;
|
||||
|
||||
typedef typename ht::const_iterator iterator;
|
||||
typedef typename ht::const_iterator const_iterator;
|
||||
|
||||
|
||||
// Iterator functions -- recall all iterators are const
|
||||
iterator begin() const { return rep.begin(); }
|
||||
iterator end() const { return rep.end(); }
|
||||
|
||||
|
||||
// Accessor functions
|
||||
hasher hash_funct() const { return rep.hash_funct(); }
|
||||
key_equal key_eq() const { return rep.key_eq(); }
|
||||
|
||||
|
||||
// Constructors
|
||||
explicit dense_hash_set(size_type expected_max_items_in_table = 0,
|
||||
const hasher& hf = hasher(),
|
||||
const key_equal& eql = key_equal())
|
||||
: rep(expected_max_items_in_table, hf, eql) { }
|
||||
|
||||
template <class InputIterator>
|
||||
dense_hash_set(InputIterator f, InputIterator l,
|
||||
size_type expected_max_items_in_table = 0,
|
||||
const hasher& hf = hasher(),
|
||||
const key_equal& eql = key_equal())
|
||||
: rep(expected_max_items_in_table, hf, eql) {
|
||||
rep.insert(f, l);
|
||||
}
|
||||
// We use the default copy constructor
|
||||
// We use the default operator=()
|
||||
// We use the default destructor
|
||||
|
||||
void clear() { rep.clear(); }
|
||||
// This clears the hash set without resizing it down to the minimum
|
||||
// bucket count, but rather keeps the number of buckets constant
|
||||
void clear_no_resize() { rep.clear_no_resize(); }
|
||||
void swap(dense_hash_set& hs) { rep.swap(hs.rep); }
|
||||
|
||||
|
||||
// Functions concerning size
|
||||
size_type size() const { return rep.size(); }
|
||||
size_type max_size() const { return rep.max_size(); }
|
||||
bool empty() const { return rep.empty(); }
|
||||
size_type bucket_count() const { return rep.bucket_count(); }
|
||||
size_type max_bucket_count() const { return rep.max_bucket_count(); }
|
||||
|
||||
void resize(size_type hint) { rep.resize(hint); }
|
||||
|
||||
void set_resizing_parameters(float shrink, float grow) {
|
||||
return rep.set_resizing_parameters(shrink, grow);
|
||||
}
|
||||
|
||||
// Lookup routines
|
||||
iterator find(const key_type& key) const { return rep.find(key); }
|
||||
|
||||
size_type count(const key_type& key) const { return rep.count(key); }
|
||||
|
||||
pair<iterator, iterator> equal_range(const key_type& key) const {
|
||||
return rep.equal_range(key);
|
||||
}
|
||||
|
||||
// Insertion routines
|
||||
pair<iterator, bool> insert(const value_type& obj) {
|
||||
pair<typename ht::iterator, bool> p = rep.insert(obj);
|
||||
return pair<iterator, bool>(p.first, p.second); // const to non-const
|
||||
}
|
||||
template <class InputIterator>
|
||||
void insert(InputIterator f, InputIterator l) { rep.insert(f, l); }
|
||||
void insert(const_iterator f, const_iterator l) { rep.insert(f, l); }
|
||||
// required for std::insert_iterator; the passed-in iterator is ignored
|
||||
iterator insert(iterator, const value_type& obj) { return insert(obj).first; }
|
||||
|
||||
|
||||
// Deletion and empty routines
|
||||
// THESE ARE NON-STANDARD! I make you specify an "impossible" key
|
||||
// value to identify deleted and empty buckets. You can change the
|
||||
// deleted key as time goes on, or get rid of it entirely to be insert-only.
|
||||
void set_empty_key(const key_type& key) { rep.set_empty_key(key); }
|
||||
void set_deleted_key(const key_type& key) { rep.set_deleted_key(key); }
|
||||
void clear_deleted_key() { rep.clear_deleted_key(); }
|
||||
|
||||
// These are standard
|
||||
size_type erase(const key_type& key) { return rep.erase(key); }
|
||||
void erase(iterator it) { rep.erase(it); }
|
||||
void erase(iterator f, iterator l) { rep.erase(f, l); }
|
||||
|
||||
|
||||
// Comparison
|
||||
bool operator==(const dense_hash_set& hs) const { return rep == hs.rep; }
|
||||
bool operator!=(const dense_hash_set& hs) const { return rep != hs.rep; }
|
||||
|
||||
|
||||
// I/O -- this is an add-on for writing metainformation to disk
|
||||
bool write_metadata(FILE *fp) { return rep.write_metadata(fp); }
|
||||
bool read_metadata(FILE *fp) { return rep.read_metadata(fp); }
|
||||
bool write_nopointer_data(FILE *fp) { return rep.write_nopointer_data(fp); }
|
||||
bool read_nopointer_data(FILE *fp) { return rep.read_nopointer_data(fp); }
|
||||
};
|
||||
|
||||
template <class Val, class HashFcn, class EqualKey, class Alloc>
|
||||
inline void swap(dense_hash_set<Val, HashFcn, EqualKey, Alloc>& hs1,
|
||||
dense_hash_set<Val, HashFcn, EqualKey, Alloc>& hs2) {
|
||||
hs1.swap(hs2);
|
||||
}
|
||||
|
||||
_END_GOOGLE_NAMESPACE_
|
||||
|
||||
#endif /* _DENSE_HASH_SET_H_ */
|
||||
246
3rdparty/google/sparse_hash_map
vendored
246
3rdparty/google/sparse_hash_map
vendored
@@ -1,246 +0,0 @@
|
||||
// Copyright (c) 2005, Google Inc.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
// met:
|
||||
//
|
||||
// * Redistributions of source code must retain the above copyright
|
||||
// notice, this list of conditions and the following disclaimer.
|
||||
// * Redistributions in binary form must reproduce the above
|
||||
// copyright notice, this list of conditions and the following disclaimer
|
||||
// in the documentation and/or other materials provided with the
|
||||
// distribution.
|
||||
// * Neither the name of Google Inc. nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from
|
||||
// this software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
// ---
|
||||
// Author: Craig Silverstein
|
||||
//
|
||||
// This is just a very thin wrapper over sparsehashtable.h, just
|
||||
// like sgi stl's stl_hash_map is a very thin wrapper over
|
||||
// stl_hashtable. The major thing we define is operator[], because
|
||||
// we have a concept of a data_type which stl_hashtable doesn't
|
||||
// (it only has a key and a value).
|
||||
//
|
||||
// We adhere mostly to the STL semantics for hash-map. One important
|
||||
// exception is that insert() invalidates iterators entirely. On the
|
||||
// plus side, though, delete() doesn't invalidate iterators at all, or
|
||||
// even change the ordering of elements.
|
||||
//
|
||||
// Here are a few "power user" tips:
|
||||
//
|
||||
// 1) set_deleted_key():
|
||||
// Unlike STL's hash_map, if you want to use erase() you
|
||||
// must call set_deleted_key() after construction.
|
||||
//
|
||||
// 2) resize(0):
|
||||
// When an item is deleted, its memory isn't freed right
|
||||
// away. This is what allows you to iterate over a hashtable
|
||||
// and call erase() without invalidating the iterator.
|
||||
// To force the memory to be freed, call resize(0).
|
||||
//
|
||||
// 3) set_resizing_parameters(0.0, 0.8):
|
||||
// Setting the shrink_resize_percent to 0.0 guarantees
|
||||
// that the hash table will never shrink.
|
||||
//
|
||||
// Guide to what kind of hash_map to use:
|
||||
// (1) dense_hash_map: fastest, uses the most memory
|
||||
// (2) sparse_hash_map: slowest, uses the least memory
|
||||
// (3) hash_map (STL): in the middle
|
||||
// Typically I use sparse_hash_map when I care about space and/or when
|
||||
// I need to save the hashtable on disk. I use hash_map otherwise. I
|
||||
// don't personally use dense_hash_map ever; the only use of
|
||||
// dense_hash_map I know of is to work around malloc() bugs in some
|
||||
// systems (dense_hash_map has a particularly simple allocation scheme).
|
||||
//
|
||||
// - dense_hash_map has, typically, a factor of 2 memory overhead (if your
|
||||
// data takes up X bytes, the hash_map uses X more bytes in overhead).
|
||||
// - sparse_hash_map has about 2 bits overhead per entry.
|
||||
// - sparse_hash_map can be 3-7 times slower than the others for lookup and,
|
||||
// especially, inserts. See time_hash_map.cc for details.
|
||||
//
|
||||
// See /usr/(local/)?doc/sparsehash-0.1/sparse_hash_map.html
|
||||
// for information about how to use this class.
|
||||
|
||||
#ifndef _SPARSE_HASH_MAP_H_
|
||||
#define _SPARSE_HASH_MAP_H_
|
||||
|
||||
#include <google/sparsehash/sparseconfig.h>
|
||||
#include <stdio.h> // for FILE * in read()/write()
|
||||
#include <algorithm> // for the default template args
|
||||
#include <functional> // for equal_to
|
||||
#include <memory> // for alloc<>
|
||||
#include <utility> // for pair<>
|
||||
#include HASH_FUN_H // defined in config.h
|
||||
#include <google/sparsehash/sparsehashtable.h>
|
||||
|
||||
|
||||
_START_GOOGLE_NAMESPACE_
|
||||
|
||||
using STL_NAMESPACE::pair;
|
||||
|
||||
template <class Key, class T,
|
||||
class HashFcn = SPARSEHASH_HASH<Key>, // defined in sparseconfig.h
|
||||
class EqualKey = STL_NAMESPACE::equal_to<Key>,
|
||||
class Alloc = STL_NAMESPACE::allocator<T> >
|
||||
class sparse_hash_map {
|
||||
private:
|
||||
// Apparently select1st is not stl-standard, so we define our own
|
||||
struct SelectKey {
|
||||
const Key& operator()(const pair<const Key, T>& p) const {
|
||||
return p.first;
|
||||
}
|
||||
};
|
||||
|
||||
// The actual data
|
||||
typedef sparse_hashtable<pair<const Key, T>, Key, HashFcn,
|
||||
SelectKey, EqualKey, Alloc> ht;
|
||||
ht rep;
|
||||
|
||||
public:
|
||||
typedef typename ht::key_type key_type;
|
||||
typedef T data_type;
|
||||
typedef T mapped_type;
|
||||
typedef typename ht::value_type value_type;
|
||||
typedef typename ht::hasher hasher;
|
||||
typedef typename ht::key_equal key_equal;
|
||||
|
||||
typedef typename ht::size_type size_type;
|
||||
typedef typename ht::difference_type difference_type;
|
||||
typedef typename ht::pointer pointer;
|
||||
typedef typename ht::const_pointer const_pointer;
|
||||
typedef typename ht::reference reference;
|
||||
typedef typename ht::const_reference const_reference;
|
||||
|
||||
typedef typename ht::iterator iterator;
|
||||
typedef typename ht::const_iterator const_iterator;
|
||||
|
||||
// Iterator functions
|
||||
iterator begin() { return rep.begin(); }
|
||||
iterator end() { return rep.end(); }
|
||||
const_iterator begin() const { return rep.begin(); }
|
||||
const_iterator end() const { return rep.end(); }
|
||||
|
||||
|
||||
// Accessor functions
|
||||
hasher hash_funct() const { return rep.hash_funct(); }
|
||||
key_equal key_eq() const { return rep.key_eq(); }
|
||||
|
||||
|
||||
// Constructors
|
||||
explicit sparse_hash_map(size_type expected_max_items_in_table = 0,
|
||||
const hasher& hf = hasher(),
|
||||
const key_equal& eql = key_equal())
|
||||
: rep(expected_max_items_in_table, hf, eql) { }
|
||||
|
||||
template <class InputIterator>
|
||||
sparse_hash_map(InputIterator f, InputIterator l,
|
||||
size_type expected_max_items_in_table = 0,
|
||||
const hasher& hf = hasher(),
|
||||
const key_equal& eql = key_equal())
|
||||
: rep(expected_max_items_in_table, hf, eql) {
|
||||
rep.insert(f, l);
|
||||
}
|
||||
// We use the default copy constructor
|
||||
// We use the default operator=()
|
||||
// We use the default destructor
|
||||
|
||||
void clear() { rep.clear(); }
|
||||
void swap(sparse_hash_map& hs) { rep.swap(hs.rep); }
|
||||
|
||||
|
||||
// Functions concerning size
|
||||
size_type size() const { return rep.size(); }
|
||||
size_type max_size() const { return rep.max_size(); }
|
||||
bool empty() const { return rep.empty(); }
|
||||
size_type bucket_count() const { return rep.bucket_count(); }
|
||||
size_type max_bucket_count() const { return rep.max_bucket_count(); }
|
||||
|
||||
void resize(size_type hint) { rep.resize(hint); }
|
||||
|
||||
void set_resizing_parameters(float shrink, float grow) {
|
||||
return rep.set_resizing_parameters(shrink, grow);
|
||||
}
|
||||
|
||||
// Lookup routines
|
||||
iterator find(const key_type& key) { return rep.find(key); }
|
||||
const_iterator find(const key_type& key) const { return rep.find(key); }
|
||||
|
||||
data_type& operator[](const key_type& key) { // This is our value-add!
|
||||
iterator it = find(key);
|
||||
if (it != end()) {
|
||||
return it->second;
|
||||
} else {
|
||||
return insert(value_type(key, data_type())).first->second;
|
||||
}
|
||||
}
|
||||
|
||||
size_type count(const key_type& key) const { return rep.count(key); }
|
||||
|
||||
pair<iterator, iterator> equal_range(const key_type& key) {
|
||||
return rep.equal_range(key);
|
||||
}
|
||||
pair<const_iterator, const_iterator> equal_range(const key_type& key) const {
|
||||
return rep.equal_range(key);
|
||||
}
|
||||
|
||||
// Insertion routines
|
||||
pair<iterator, bool> insert(const value_type& obj) { return rep.insert(obj); }
|
||||
template <class InputIterator>
|
||||
void insert(InputIterator f, InputIterator l) { rep.insert(f, l); }
|
||||
void insert(const_iterator f, const_iterator l) { rep.insert(f, l); }
|
||||
// required for std::insert_iterator; the passed-in iterator is ignored
|
||||
iterator insert(iterator, const value_type& obj) { return insert(obj).first; }
|
||||
|
||||
|
||||
// Deletion routines
|
||||
// THESE ARE NON-STANDARD! I make you specify an "impossible" key
|
||||
// value to identify deleted buckets. You can change the key as
|
||||
// time goes on, or get rid of it entirely to be insert-only.
|
||||
void set_deleted_key(const key_type& key) {
|
||||
rep.set_deleted_key(value_type(key, data_type())); // rep wants a value
|
||||
}
|
||||
void clear_deleted_key() { rep.clear_deleted_key(); }
|
||||
|
||||
// These are standard
|
||||
size_type erase(const key_type& key) { return rep.erase(key); }
|
||||
void erase(iterator it) { rep.erase(it); }
|
||||
void erase(iterator f, iterator l) { rep.erase(f, l); }
|
||||
|
||||
|
||||
// Comparison
|
||||
bool operator==(const sparse_hash_map& hs) const { return rep == hs.rep; }
|
||||
bool operator!=(const sparse_hash_map& hs) const { return rep != hs.rep; }
|
||||
|
||||
|
||||
// I/O -- this is an add-on for writing metainformation to disk
|
||||
bool write_metadata(FILE *fp) { return rep.write_metadata(fp); }
|
||||
bool read_metadata(FILE *fp) { return rep.read_metadata(fp); }
|
||||
bool write_nopointer_data(FILE *fp) { return rep.write_nopointer_data(fp); }
|
||||
bool read_nopointer_data(FILE *fp) { return rep.read_nopointer_data(fp); }
|
||||
};
|
||||
|
||||
// We need a global swap as well
|
||||
template <class Key, class T, class HashFcn, class EqualKey, class Alloc>
|
||||
inline void swap(sparse_hash_map<Key, T, HashFcn, EqualKey, Alloc>& hm1,
|
||||
sparse_hash_map<Key, T, HashFcn, EqualKey, Alloc>& hm2) {
|
||||
hm1.swap(hm2);
|
||||
}
|
||||
|
||||
_END_GOOGLE_NAMESPACE_
|
||||
|
||||
#endif /* _SPARSE_HASH_MAP_H_ */
|
||||
231
3rdparty/google/sparse_hash_set
vendored
231
3rdparty/google/sparse_hash_set
vendored
@@ -1,231 +0,0 @@
|
||||
// Copyright (c) 2005, Google Inc.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
// met:
|
||||
//
|
||||
// * Redistributions of source code must retain the above copyright
|
||||
// notice, this list of conditions and the following disclaimer.
|
||||
// * Redistributions in binary form must reproduce the above
|
||||
// copyright notice, this list of conditions and the following disclaimer
|
||||
// in the documentation and/or other materials provided with the
|
||||
// distribution.
|
||||
// * Neither the name of Google Inc. nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from
|
||||
// this software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
// ---
|
||||
// Author: Craig Silverstein
|
||||
//
|
||||
// This is just a very thin wrapper over sparsehashtable.h, just
|
||||
// like sgi stl's stl_hash_set is a very thin wrapper over
|
||||
// stl_hashtable. The major thing we define is operator[], because
|
||||
// we have a concept of a data_type which stl_hashtable doesn't
|
||||
// (it only has a key and a value).
|
||||
//
|
||||
// This is more different from sparse_hash_map than you might think,
|
||||
// because all iterators for sets are const (you obviously can't
|
||||
// change the key, and for sets there is no value).
|
||||
//
|
||||
// We adhere mostly to the STL semantics for hash-set. One important
|
||||
// exception is that insert() invalidates iterators entirely. On the
|
||||
// plus side, though, delete() doesn't invalidate iterators at all, or
|
||||
// even change the ordering of elements.
|
||||
//
|
||||
// Here are a few "power user" tips:
|
||||
//
|
||||
// 1) set_deleted_key():
|
||||
// Unlike STL's hash_map, if you want to use erase() you
|
||||
// must call set_deleted_key() after construction.
|
||||
//
|
||||
// 2) resize(0):
|
||||
// When an item is deleted, its memory isn't freed right
|
||||
// away. This allows you to iterate over a hashtable,
|
||||
// and call erase(), without invalidating the iterator.
|
||||
// To force the memory to be freed, call resize(0).
|
||||
//
|
||||
// 3) set_resizing_parameters(0.0, 0.8):
|
||||
// Setting the shrink_resize_percent to 0.0 guarantees
|
||||
// that the hash table will never shrink.
|
||||
//
|
||||
// Guide to what kind of hash_set to use:
|
||||
// (1) dense_hash_set: fastest, uses the most memory
|
||||
// (2) sparse_hash_set: slowest, uses the least memory
|
||||
// (3) hash_set (STL): in the middle
|
||||
// Typically I use sparse_hash_set when I care about space and/or when
|
||||
// I need to save the hashtable on disk. I use hash_set otherwise. I
|
||||
// don't personally use dense_hash_set ever; the only use of
|
||||
// dense_hash_set I know of is to work around malloc() bugs in some
|
||||
// systems (dense_hash_set has a particularly simple allocation scheme).
|
||||
//
|
||||
// - dense_hash_set has, typically, a factor of 2 memory overhead (if your
|
||||
// data takes up X bytes, the hash_set uses X more bytes in overhead).
|
||||
// - sparse_hash_set has about 2 bits overhead per entry.
|
||||
// - sparse_hash_map can be 3-7 times slower than the others for lookup and,
|
||||
// especially, inserts. See time_hash_map.cc for details.
|
||||
//
|
||||
// See /usr/(local/)?doc/sparsehash-0.1/sparse_hash_set.html
|
||||
// for information about how to use this class.
|
||||
|
||||
#ifndef _SPARSE_HASH_SET_H_
|
||||
#define _SPARSE_HASH_SET_H_
|
||||
|
||||
#include <google/sparsehash/sparseconfig.h>
|
||||
#include <stdio.h> // for FILE * in read()/write()
|
||||
#include <algorithm> // for the default template args
|
||||
#include <functional> // for equal_to
|
||||
#include <memory> // for alloc<>
|
||||
#include <utility> // for pair<>
|
||||
#include HASH_FUN_H // defined in config.h
|
||||
#include <google/sparsehash/sparsehashtable.h>
|
||||
|
||||
_START_GOOGLE_NAMESPACE_
|
||||
|
||||
using STL_NAMESPACE::pair;
|
||||
|
||||
template <class Value,
|
||||
class HashFcn = SPARSEHASH_HASH<Value>, // defined in sparseconfig.h
|
||||
class EqualKey = STL_NAMESPACE::equal_to<Value>,
|
||||
class Alloc = STL_NAMESPACE::allocator<Value> >
|
||||
class sparse_hash_set {
|
||||
private:
|
||||
// Apparently identity is not stl-standard, so we define our own
|
||||
struct Identity {
|
||||
Value& operator()(Value& v) const { return v; }
|
||||
const Value& operator()(const Value& v) const { return v; }
|
||||
};
|
||||
|
||||
// The actual data
|
||||
typedef sparse_hashtable<Value, Value, HashFcn, Identity, EqualKey, Alloc> ht;
|
||||
ht rep;
|
||||
|
||||
public:
|
||||
typedef typename ht::key_type key_type;
|
||||
typedef typename ht::value_type value_type;
|
||||
typedef typename ht::hasher hasher;
|
||||
typedef typename ht::key_equal key_equal;
|
||||
|
||||
typedef typename ht::size_type size_type;
|
||||
typedef typename ht::difference_type difference_type;
|
||||
typedef typename ht::const_pointer pointer;
|
||||
typedef typename ht::const_pointer const_pointer;
|
||||
typedef typename ht::const_reference reference;
|
||||
typedef typename ht::const_reference const_reference;
|
||||
|
||||
typedef typename ht::const_iterator iterator;
|
||||
typedef typename ht::const_iterator const_iterator;
|
||||
|
||||
|
||||
// Iterator functions -- recall all iterators are const
|
||||
iterator begin() const { return rep.begin(); }
|
||||
iterator end() const { return rep.end(); }
|
||||
|
||||
|
||||
// Accessor functions
|
||||
hasher hash_funct() const { return rep.hash_funct(); }
|
||||
key_equal key_eq() const { return rep.key_eq(); }
|
||||
|
||||
|
||||
// Constructors
|
||||
explicit sparse_hash_set(size_type expected_max_items_in_table = 0,
|
||||
const hasher& hf = hasher(),
|
||||
const key_equal& eql = key_equal())
|
||||
: rep(expected_max_items_in_table, hf, eql) { }
|
||||
|
||||
template <class InputIterator>
|
||||
sparse_hash_set(InputIterator f, InputIterator l,
|
||||
size_type expected_max_items_in_table = 0,
|
||||
const hasher& hf = hasher(),
|
||||
const key_equal& eql = key_equal())
|
||||
: rep(expected_max_items_in_table, hf, eql) {
|
||||
rep.insert(f, l);
|
||||
}
|
||||
// We use the default copy constructor
|
||||
// We use the default operator=()
|
||||
// We use the default destructor
|
||||
|
||||
void clear() { rep.clear(); }
|
||||
void swap(sparse_hash_set& hs) { rep.swap(hs.rep); }
|
||||
|
||||
|
||||
// Functions concerning size
|
||||
size_type size() const { return rep.size(); }
|
||||
size_type max_size() const { return rep.max_size(); }
|
||||
bool empty() const { return rep.empty(); }
|
||||
size_type bucket_count() const { return rep.bucket_count(); }
|
||||
size_type max_bucket_count() const { return rep.max_bucket_count(); }
|
||||
|
||||
void resize(size_type hint) { rep.resize(hint); }
|
||||
|
||||
void set_resizing_parameters(float shrink, float grow) {
|
||||
return rep.set_resizing_parameters(shrink, grow);
|
||||
}
|
||||
|
||||
// Lookup routines
|
||||
iterator find(const key_type& key) const { return rep.find(key); }
|
||||
|
||||
size_type count(const key_type& key) const { return rep.count(key); }
|
||||
|
||||
pair<iterator, iterator> equal_range(const key_type& key) const {
|
||||
return rep.equal_range(key);
|
||||
}
|
||||
|
||||
// Insertion routines
|
||||
pair<iterator, bool> insert(const value_type& obj) {
|
||||
pair<typename ht::iterator, bool> p = rep.insert(obj);
|
||||
return pair<iterator, bool>(p.first, p.second); // const to non-const
|
||||
}
|
||||
template <class InputIterator>
|
||||
void insert(InputIterator f, InputIterator l) { rep.insert(f, l); }
|
||||
void insert(const_iterator f, const_iterator l) { rep.insert(f, l); }
|
||||
// required for std::insert_iterator; the passed-in iterator is ignored
|
||||
iterator insert(iterator, const value_type& obj) { return insert(obj).first; }
|
||||
|
||||
|
||||
// Deletion routines
|
||||
// THESE ARE NON-STANDARD! I make you specify an "impossible" key
|
||||
// value to identify deleted buckets. You can change the key as
|
||||
// time goes on, or get rid of it entirely to be insert-only.
|
||||
void set_deleted_key(const key_type& key) { rep.set_deleted_key(key); }
|
||||
void clear_deleted_key() { rep.clear_deleted_key(); }
|
||||
|
||||
// These are standard
|
||||
size_type erase(const key_type& key) { return rep.erase(key); }
|
||||
void erase(iterator it) { rep.erase(it); }
|
||||
void erase(iterator f, iterator l) { rep.erase(f, l); }
|
||||
|
||||
|
||||
// Comparison
|
||||
bool operator==(const sparse_hash_set& hs) const { return rep == hs.rep; }
|
||||
bool operator!=(const sparse_hash_set& hs) const { return rep != hs.rep; }
|
||||
|
||||
|
||||
// I/O -- this is an add-on for writing metainformation to disk
|
||||
bool write_metadata(FILE *fp) { return rep.write_metadata(fp); }
|
||||
bool read_metadata(FILE *fp) { return rep.read_metadata(fp); }
|
||||
bool write_nopointer_data(FILE *fp) { return rep.write_nopointer_data(fp); }
|
||||
bool read_nopointer_data(FILE *fp) { return rep.read_nopointer_data(fp); }
|
||||
};
|
||||
|
||||
template <class Val, class HashFcn, class EqualKey, class Alloc>
|
||||
inline void swap(sparse_hash_set<Val, HashFcn, EqualKey, Alloc>& hs1,
|
||||
sparse_hash_set<Val, HashFcn, EqualKey, Alloc>& hs2) {
|
||||
hs1.swap(hs2);
|
||||
}
|
||||
|
||||
_END_GOOGLE_NAMESPACE_
|
||||
|
||||
#endif /* _SPARSE_HASH_SET_H_ */
|
||||
986
3rdparty/google/sparsehash/densehashtable.h
vendored
986
3rdparty/google/sparsehash/densehashtable.h
vendored
@@ -1,986 +0,0 @@
|
||||
// Copyright (c) 2005, Google Inc.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
// met:
|
||||
//
|
||||
// * Redistributions of source code must retain the above copyright
|
||||
// notice, this list of conditions and the following disclaimer.
|
||||
// * Redistributions in binary form must reproduce the above
|
||||
// copyright notice, this list of conditions and the following disclaimer
|
||||
// in the documentation and/or other materials provided with the
|
||||
// distribution.
|
||||
// * Neither the name of Google Inc. nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from
|
||||
// this software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
// ---
|
||||
// Author: Craig Silverstein
|
||||
//
|
||||
// A dense hashtable is a particular implementation of
|
||||
// a hashtable: one that is meant to minimize memory allocation.
|
||||
// It does this by using an array to store all the data. We
|
||||
// steal a value from the key space to indicate "empty" array
|
||||
// elements (ie indices where no item lives) and another to indicate
|
||||
// "deleted" elements.
|
||||
//
|
||||
// (Note it is possible to change the value of the delete key
|
||||
// on the fly; you can even remove it, though after that point
|
||||
// the hashtable is insert_only until you set it again. The empty
|
||||
// value however can't be changed.)
|
||||
//
|
||||
// To minimize allocation and pointer overhead, we use internal
|
||||
// probing, in which the hashtable is a single table, and collisions
|
||||
// are resolved by trying to insert again in another bucket. The
|
||||
// most cache-efficient internal probing schemes are linear probing
|
||||
// (which suffers, alas, from clumping) and quadratic probing, which
|
||||
// is what we implement by default.
|
||||
//
|
||||
// Type requirements: value_type is required to be Copy Constructible
|
||||
// and Default Constructible. It is not required to be (and commonly
|
||||
// isn't) Assignable.
|
||||
//
|
||||
// You probably shouldn't use this code directly. Use
|
||||
// <google/dense_hash_map> or <google/dense_hash_set> instead.
|
||||
|
||||
// You can change the following below:
|
||||
// HT_OCCUPANCY_FLT -- how full before we double size
|
||||
// HT_EMPTY_FLT -- how empty before we halve size
|
||||
// HT_MIN_BUCKETS -- default smallest bucket size
|
||||
//
|
||||
// You can also change enlarge_resize_percent (which defaults to
|
||||
// HT_OCCUPANCY_FLT), and shrink_resize_percent (which defaults to
|
||||
// HT_EMPTY_FLT) with set_resizing_parameters().
|
||||
//
|
||||
// How to decide what values to use?
|
||||
// shrink_resize_percent's default of .4 * OCCUPANCY_FLT, is probably good.
|
||||
// HT_MIN_BUCKETS is probably unnecessary since you can specify
|
||||
// (indirectly) the starting number of buckets at construct-time.
|
||||
// For enlarge_resize_percent, you can use this chart to try to trade-off
|
||||
// expected lookup time to the space taken up. By default, this
|
||||
// code uses quadratic probing, though you can change it to linear
|
||||
// via _JUMP below if you really want to.
|
||||
//
|
||||
// From http://www.augustana.ca/~mohrj/courses/1999.fall/csc210/lecture_notes/hashing.html
|
||||
// NUMBER OF PROBES / LOOKUP Successful Unsuccessful
|
||||
// Quadratic collision resolution 1 - ln(1-L) - L/2 1/(1-L) - L - ln(1-L)
|
||||
// Linear collision resolution [1+1/(1-L)]/2 [1+1/(1-L)2]/2
|
||||
//
|
||||
// -- enlarge_resize_percent -- 0.10 0.50 0.60 0.75 0.80 0.90 0.99
|
||||
// QUADRATIC COLLISION RES.
|
||||
// probes/successful lookup 1.05 1.44 1.62 2.01 2.21 2.85 5.11
|
||||
// probes/unsuccessful lookup 1.11 2.19 2.82 4.64 5.81 11.4 103.6
|
||||
// LINEAR COLLISION RES.
|
||||
// probes/successful lookup 1.06 1.5 1.75 2.5 3.0 5.5 50.5
|
||||
// probes/unsuccessful lookup 1.12 2.5 3.6 8.5 13.0 50.0 5000.0
|
||||
|
||||
#ifndef _DENSEHASHTABLE_H_
|
||||
#define _DENSEHASHTABLE_H_
|
||||
|
||||
// The probing method
|
||||
// Linear probing
|
||||
// #define JUMP_(key, num_probes) ( 1 )
|
||||
// Quadratic-ish probing
|
||||
#define JUMP_(key, num_probes) ( num_probes )
|
||||
|
||||
|
||||
// Hashtable class, used to implement the hashed associative containers
|
||||
// hash_set and hash_map.
|
||||
|
||||
#include <google/sparsehash/sparseconfig.h>
|
||||
#include <assert.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h> // for abort()
|
||||
#include <algorithm> // For swap(), eg
|
||||
#include <iostream> // For cerr
|
||||
#include <memory> // For uninitialized_fill, uninitialized_copy
|
||||
#include <utility> // for pair<>
|
||||
#include <iterator> // for facts about iterator tags
|
||||
#include <google/type_traits.h> // for true_type, integral_constant, etc.
|
||||
|
||||
_START_GOOGLE_NAMESPACE_
|
||||
|
||||
using STL_NAMESPACE::pair;
|
||||
|
||||
template <class Value, class Key, class HashFcn,
|
||||
class ExtractKey, class EqualKey, class Alloc>
|
||||
class dense_hashtable;
|
||||
|
||||
template <class V, class K, class HF, class ExK, class EqK, class A>
|
||||
struct dense_hashtable_iterator;
|
||||
|
||||
template <class V, class K, class HF, class ExK, class EqK, class A>
|
||||
struct dense_hashtable_const_iterator;
|
||||
|
||||
// We're just an array, but we need to skip over empty and deleted elements
|
||||
template <class V, class K, class HF, class ExK, class EqK, class A>
|
||||
struct dense_hashtable_iterator {
|
||||
public:
|
||||
typedef dense_hashtable_iterator<V,K,HF,ExK,EqK,A> iterator;
|
||||
typedef dense_hashtable_const_iterator<V,K,HF,ExK,EqK,A> const_iterator;
|
||||
|
||||
typedef STL_NAMESPACE::forward_iterator_tag iterator_category;
|
||||
typedef V value_type;
|
||||
typedef ptrdiff_t difference_type;
|
||||
typedef size_t size_type;
|
||||
typedef V& reference; // Value
|
||||
typedef V* pointer;
|
||||
|
||||
// "Real" constructor and default constructor
|
||||
dense_hashtable_iterator(const dense_hashtable<V,K,HF,ExK,EqK,A> *h,
|
||||
pointer it, pointer it_end, bool advance)
|
||||
: ht(h), pos(it), end(it_end) {
|
||||
if (advance) advance_past_empty_and_deleted();
|
||||
}
|
||||
dense_hashtable_iterator() { }
|
||||
// The default destructor is fine; we don't define one
|
||||
// The default operator= is fine; we don't define one
|
||||
|
||||
// Happy dereferencer
|
||||
reference operator*() const { return *pos; }
|
||||
pointer operator->() const { return &(operator*()); }
|
||||
|
||||
// Arithmetic. The only hard part is making sure that
|
||||
// we're not on an empty or marked-deleted array element
|
||||
void advance_past_empty_and_deleted() {
|
||||
while ( pos != end && (ht->test_empty(*this) || ht->test_deleted(*this)) )
|
||||
++pos;
|
||||
}
|
||||
iterator& operator++() {
|
||||
assert(pos != end); ++pos; advance_past_empty_and_deleted(); return *this;
|
||||
}
|
||||
iterator operator++(int) { iterator tmp(*this); ++*this; return tmp; }
|
||||
|
||||
// Comparison.
|
||||
bool operator==(const iterator& it) const { return pos == it.pos; }
|
||||
bool operator!=(const iterator& it) const { return pos != it.pos; }
|
||||
|
||||
|
||||
// The actual data
|
||||
const dense_hashtable<V,K,HF,ExK,EqK,A> *ht;
|
||||
pointer pos, end;
|
||||
};
|
||||
|
||||
|
||||
// Now do it all again, but with const-ness!
|
||||
template <class V, class K, class HF, class ExK, class EqK, class A>
|
||||
struct dense_hashtable_const_iterator {
|
||||
public:
|
||||
typedef dense_hashtable_iterator<V,K,HF,ExK,EqK,A> iterator;
|
||||
typedef dense_hashtable_const_iterator<V,K,HF,ExK,EqK,A> const_iterator;
|
||||
|
||||
typedef STL_NAMESPACE::forward_iterator_tag iterator_category;
|
||||
typedef V value_type;
|
||||
typedef ptrdiff_t difference_type;
|
||||
typedef size_t size_type;
|
||||
typedef const V& reference; // Value
|
||||
typedef const V* pointer;
|
||||
|
||||
// "Real" constructor and default constructor
|
||||
dense_hashtable_const_iterator(const dense_hashtable<V,K,HF,ExK,EqK,A> *h,
|
||||
pointer it, pointer it_end, bool advance)
|
||||
: ht(h), pos(it), end(it_end) {
|
||||
if (advance) advance_past_empty_and_deleted();
|
||||
}
|
||||
dense_hashtable_const_iterator() { }
|
||||
// This lets us convert regular iterators to const iterators
|
||||
dense_hashtable_const_iterator(const iterator &it)
|
||||
: ht(it.ht), pos(it.pos), end(it.end) { }
|
||||
// The default destructor is fine; we don't define one
|
||||
// The default operator= is fine; we don't define one
|
||||
|
||||
// Happy dereferencer
|
||||
reference operator*() const { return *pos; }
|
||||
pointer operator->() const { return &(operator*()); }
|
||||
|
||||
// Arithmetic. The only hard part is making sure that
|
||||
// we're not on an empty or marked-deleted array element
|
||||
void advance_past_empty_and_deleted() {
|
||||
while ( pos != end && (ht->test_empty(*this) || ht->test_deleted(*this)) )
|
||||
++pos;
|
||||
}
|
||||
const_iterator& operator++() {
|
||||
assert(pos != end); ++pos; advance_past_empty_and_deleted(); return *this;
|
||||
}
|
||||
const_iterator operator++(int) { const_iterator tmp(*this); ++*this; return tmp; }
|
||||
|
||||
// Comparison.
|
||||
bool operator==(const const_iterator& it) const { return pos == it.pos; }
|
||||
bool operator!=(const const_iterator& it) const { return pos != it.pos; }
|
||||
|
||||
|
||||
// The actual data
|
||||
const dense_hashtable<V,K,HF,ExK,EqK,A> *ht;
|
||||
pointer pos, end;
|
||||
};
|
||||
|
||||
template <class Value, class Key, class HashFcn,
|
||||
class ExtractKey, class EqualKey, class Alloc>
|
||||
class dense_hashtable {
|
||||
public:
|
||||
typedef Key key_type;
|
||||
typedef Value value_type;
|
||||
typedef HashFcn hasher;
|
||||
typedef EqualKey key_equal;
|
||||
|
||||
typedef size_t size_type;
|
||||
typedef ptrdiff_t difference_type;
|
||||
typedef value_type* pointer;
|
||||
typedef const value_type* const_pointer;
|
||||
typedef value_type& reference;
|
||||
typedef const value_type& const_reference;
|
||||
typedef dense_hashtable_iterator<Value, Key, HashFcn,
|
||||
ExtractKey, EqualKey, Alloc>
|
||||
iterator;
|
||||
|
||||
typedef dense_hashtable_const_iterator<Value, Key, HashFcn,
|
||||
ExtractKey, EqualKey, Alloc>
|
||||
const_iterator;
|
||||
|
||||
// How full we let the table get before we resize. Knuth says .8 is
|
||||
// good -- higher causes us to probe too much, though saves memory
|
||||
static const float HT_OCCUPANCY_FLT; // = 0.8;
|
||||
|
||||
// How empty we let the table get before we resize lower.
|
||||
// (0.0 means never resize lower.)
|
||||
// It should be less than OCCUPANCY_FLT / 2 or we thrash resizing
|
||||
static const float HT_EMPTY_FLT; // = 0.4 * HT_OCCUPANCY_FLT
|
||||
|
||||
// Minimum size we're willing to let hashtables be.
|
||||
// Must be a power of two, and at least 4.
|
||||
// Note, however, that for a given hashtable, the initial size is a
|
||||
// function of the first constructor arg, and may be >HT_MIN_BUCKETS.
|
||||
static const size_t HT_MIN_BUCKETS = 4;
|
||||
|
||||
// By default, if you don't specify a hashtable size at
|
||||
// construction-time, we use this size. Must be a power of two, and
|
||||
// at least HT_MIN_BUCKETS.
|
||||
static const size_t HT_DEFAULT_STARTING_BUCKETS = 32;
|
||||
|
||||
|
||||
// ITERATOR FUNCTIONS
|
||||
iterator begin() { return iterator(this, table,
|
||||
table + num_buckets, true); }
|
||||
iterator end() { return iterator(this, table + num_buckets,
|
||||
table + num_buckets, true); }
|
||||
const_iterator begin() const { return const_iterator(this, table,
|
||||
table+num_buckets,true);}
|
||||
const_iterator end() const { return const_iterator(this, table + num_buckets,
|
||||
table+num_buckets,true);}
|
||||
|
||||
// ACCESSOR FUNCTIONS for the things we templatize on, basically
|
||||
hasher hash_funct() const { return hash; }
|
||||
key_equal key_eq() const { return equals; }
|
||||
|
||||
// Annoyingly, we can't copy values around, because they might have
|
||||
// const components (they're probably pair<const X, Y>). We use
|
||||
// explicit destructor invocation and placement new to get around
|
||||
// this. Arg.
|
||||
private:
|
||||
void set_value(value_type* dst, const value_type& src) {
|
||||
dst->~value_type();
|
||||
new(dst) value_type(src);
|
||||
}
|
||||
|
||||
void destroy_buckets(size_type first, size_type last) {
|
||||
for ( ; first != last; ++first)
|
||||
table[first].~value_type();
|
||||
}
|
||||
|
||||
// DELETE HELPER FUNCTIONS
|
||||
// This lets the user describe a key that will indicate deleted
|
||||
// table entries. This key should be an "impossible" entry --
|
||||
// if you try to insert it for real, you won't be able to retrieve it!
|
||||
// (NB: while you pass in an entire value, only the key part is looked
|
||||
// at. This is just because I don't know how to assign just a key.)
|
||||
private:
|
||||
void squash_deleted() { // gets rid of any deleted entries we have
|
||||
if ( num_deleted ) { // get rid of deleted before writing
|
||||
dense_hashtable tmp(*this); // copying will get rid of deleted
|
||||
swap(tmp); // now we are tmp
|
||||
}
|
||||
assert(num_deleted == 0);
|
||||
}
|
||||
|
||||
public:
|
||||
void set_deleted_key(const value_type &val) {
|
||||
// the empty indicator (if specified) and the deleted indicator
|
||||
// must be different
|
||||
assert(!use_empty || !equals(get_key(val), get_key(emptyval)));
|
||||
// It's only safe to change what "deleted" means if we purge deleted guys
|
||||
squash_deleted();
|
||||
use_deleted = true;
|
||||
set_value(&delval, val);
|
||||
}
|
||||
void clear_deleted_key() {
|
||||
squash_deleted();
|
||||
use_deleted = false;
|
||||
}
|
||||
|
||||
// These are public so the iterators can use them
|
||||
// True if the item at position bucknum is "deleted" marker
|
||||
bool test_deleted(size_type bucknum) const {
|
||||
// The num_deleted test is crucial for read(): after read(), the ht values
|
||||
// are garbage, and we don't want to think some of them are deleted.
|
||||
return (use_deleted && num_deleted > 0 &&
|
||||
equals(get_key(delval), get_key(table[bucknum])));
|
||||
}
|
||||
bool test_deleted(const iterator &it) const {
|
||||
return (use_deleted && num_deleted > 0 &&
|
||||
equals(get_key(delval), get_key(*it)));
|
||||
}
|
||||
bool test_deleted(const const_iterator &it) const {
|
||||
return (use_deleted && num_deleted > 0 &&
|
||||
equals(get_key(delval), get_key(*it)));
|
||||
}
|
||||
// Set it so test_deleted is true. true if object didn't used to be deleted
|
||||
// See below (at erase()) to explain why we allow const_iterators
|
||||
bool set_deleted(const_iterator &it) {
|
||||
assert(use_deleted); // bad if set_deleted_key() wasn't called
|
||||
bool retval = !test_deleted(it);
|
||||
// &* converts from iterator to value-type
|
||||
set_value(const_cast<value_type*>(&(*it)), delval);
|
||||
return retval;
|
||||
}
|
||||
// Set it so test_deleted is false. true if object used to be deleted
|
||||
bool clear_deleted(const_iterator &it) {
|
||||
assert(use_deleted); // bad if set_deleted_key() wasn't called
|
||||
// happens automatically when we assign something else in its place
|
||||
return test_deleted(it);
|
||||
}
|
||||
|
||||
// EMPTY HELPER FUNCTIONS
|
||||
// This lets the user describe a key that will indicate empty (unused)
|
||||
// table entries. This key should be an "impossible" entry --
|
||||
// if you try to insert it for real, you won't be able to retrieve it!
|
||||
// (NB: while you pass in an entire value, only the key part is looked
|
||||
// at. This is just because I don't know how to assign just a key.)
|
||||
public:
|
||||
// These are public so the iterators can use them
|
||||
// True if the item at position bucknum is "empty" marker
|
||||
bool test_empty(size_type bucknum) const {
|
||||
assert(use_empty); // we always need to know what's empty!
|
||||
return equals(get_key(emptyval), get_key(table[bucknum]));
|
||||
}
|
||||
bool test_empty(const iterator &it) const {
|
||||
assert(use_empty); // we always need to know what's empty!
|
||||
return equals(get_key(emptyval), get_key(*it));
|
||||
}
|
||||
bool test_empty(const const_iterator &it) const {
|
||||
assert(use_empty); // we always need to know what's empty!
|
||||
return equals(get_key(emptyval), get_key(*it));
|
||||
}
|
||||
|
||||
private:
|
||||
// You can either set a range empty or an individual element
|
||||
void set_empty(size_type bucknum) {
|
||||
assert(use_empty);
|
||||
set_value(&table[bucknum], emptyval);
|
||||
}
|
||||
void fill_range_with_empty(value_type* table_start, value_type* table_end) {
|
||||
// Like set_empty(range), but doesn't destroy previous contents
|
||||
STL_NAMESPACE::uninitialized_fill(table_start, table_end, emptyval);
|
||||
}
|
||||
void set_empty(size_type buckstart, size_type buckend) {
|
||||
assert(use_empty);
|
||||
destroy_buckets(buckstart, buckend);
|
||||
fill_range_with_empty(table + buckstart, table + buckend);
|
||||
}
|
||||
|
||||
public:
|
||||
// TODO(csilvers): change all callers of this to pass in a key instead,
|
||||
// and take a const key_type instead of const value_type.
|
||||
void set_empty_key(const value_type &val) {
|
||||
// Once you set the empty key, you can't change it
|
||||
assert(!use_empty);
|
||||
// The deleted indicator (if specified) and the empty indicator
|
||||
// must be different.
|
||||
assert(!use_deleted || !equals(get_key(val), get_key(delval)));
|
||||
use_empty = true;
|
||||
set_value(&emptyval, val);
|
||||
|
||||
assert(!table); // must set before first use
|
||||
// num_buckets was set in constructor even though table was NULL
|
||||
table = (value_type *) malloc(num_buckets * sizeof(*table));
|
||||
assert(table);
|
||||
fill_range_with_empty(table, table + num_buckets);
|
||||
}
|
||||
|
||||
// FUNCTIONS CONCERNING SIZE
|
||||
public:
|
||||
size_type size() const { return num_elements - num_deleted; }
|
||||
// Buckets are always a power of 2
|
||||
size_type max_size() const { return (size_type(-1) >> 1U) + 1; }
|
||||
bool empty() const { return size() == 0; }
|
||||
size_type bucket_count() const { return num_buckets; }
|
||||
size_type max_bucket_count() const { return max_size(); }
|
||||
size_type nonempty_bucket_count() const { return num_elements; }
|
||||
|
||||
private:
|
||||
// Because of the above, size_type(-1) is never legal; use it for errors
|
||||
static const size_type ILLEGAL_BUCKET = size_type(-1);
|
||||
|
||||
private:
|
||||
// This is the smallest size a hashtable can be without being too crowded
|
||||
// If you like, you can give a min #buckets as well as a min #elts
|
||||
size_type min_size(size_type num_elts, size_type min_buckets_wanted) {
|
||||
size_type sz = HT_MIN_BUCKETS; // min buckets allowed
|
||||
while ( sz < min_buckets_wanted || num_elts >= sz * enlarge_resize_percent )
|
||||
sz *= 2;
|
||||
return sz;
|
||||
}
|
||||
|
||||
// Used after a string of deletes
|
||||
void maybe_shrink() {
|
||||
assert(num_elements >= num_deleted);
|
||||
assert((bucket_count() & (bucket_count()-1)) == 0); // is a power of two
|
||||
assert(bucket_count() >= HT_MIN_BUCKETS);
|
||||
|
||||
// If you construct a hashtable with < HT_DEFAULT_STARTING_BUCKETS,
|
||||
// we'll never shrink until you get relatively big, and we'll never
|
||||
// shrink below HT_DEFAULT_STARTING_BUCKETS. Otherwise, something
|
||||
// like "dense_hash_set<int> x; x.insert(4); x.erase(4);" will
|
||||
// shrink us down to HT_MIN_BUCKETS buckets, which is too small.
|
||||
if (shrink_threshold > 0 &&
|
||||
(num_elements-num_deleted) < shrink_threshold &&
|
||||
bucket_count() > HT_DEFAULT_STARTING_BUCKETS ) {
|
||||
size_type sz = bucket_count() / 2; // find how much we should shrink
|
||||
while ( sz > HT_DEFAULT_STARTING_BUCKETS &&
|
||||
(num_elements - num_deleted) < sz * shrink_resize_percent )
|
||||
sz /= 2; // stay a power of 2
|
||||
dense_hashtable tmp(*this, sz); // Do the actual resizing
|
||||
swap(tmp); // now we are tmp
|
||||
}
|
||||
consider_shrink = false; // because we just considered it
|
||||
}
|
||||
|
||||
// We'll let you resize a hashtable -- though this makes us copy all!
|
||||
// When you resize, you say, "make it big enough for this many more elements"
|
||||
void resize_delta(size_type delta) {
|
||||
if ( consider_shrink ) // see if lots of deletes happened
|
||||
maybe_shrink();
|
||||
if ( bucket_count() > HT_MIN_BUCKETS &&
|
||||
(num_elements + delta) <= enlarge_threshold )
|
||||
return; // we're ok as we are
|
||||
|
||||
// Sometimes, we need to resize just to get rid of all the
|
||||
// "deleted" buckets that are clogging up the hashtable. So when
|
||||
// deciding whether to resize, count the deleted buckets (which
|
||||
// are currently taking up room). But later, when we decide what
|
||||
// size to resize to, *don't* count deleted buckets, since they
|
||||
// get discarded during the resize.
|
||||
const size_type needed_size = min_size(num_elements + delta, 0);
|
||||
if ( needed_size > bucket_count() ) { // we don't have enough buckets
|
||||
const size_type resize_to = min_size(num_elements - num_deleted + delta,
|
||||
0);
|
||||
dense_hashtable tmp(*this, resize_to);
|
||||
swap(tmp); // now we are tmp
|
||||
}
|
||||
}
|
||||
|
||||
// Increase number of buckets, assuming value_type has trivial copy
|
||||
// constructor and destructor. (Really, we want it to have "trivial
|
||||
// move", because that's what realloc does. But there's no way to
|
||||
// capture that using type_traits, so we pretend that move(x, y) is
|
||||
// equivalent to "x.~T(); new(x) T(y);" which is pretty much
|
||||
// correct, if a bit conservative.)
|
||||
void expand_array(size_t resize_to, true_type) {
|
||||
table = (value_type *) realloc(table, resize_to * sizeof(value_type));
|
||||
assert(table);
|
||||
fill_range_with_empty(table + num_buckets, table + resize_to);
|
||||
}
|
||||
|
||||
// Increase number of buckets, without special assumptions about value_type.
|
||||
// TODO(austern): make this exception safe. Handle exceptions from
|
||||
// value_type's copy constructor.
|
||||
void expand_array(size_t resize_to, false_type) {
|
||||
value_type* new_table =
|
||||
(value_type *) malloc(resize_to * sizeof(value_type));
|
||||
assert(new_table);
|
||||
STL_NAMESPACE::uninitialized_copy(table, table + num_buckets, new_table);
|
||||
fill_range_with_empty(new_table + num_buckets, new_table + resize_to);
|
||||
destroy_buckets(0, num_buckets);
|
||||
free(table);
|
||||
table = new_table;
|
||||
}
|
||||
|
||||
// Used to actually do the rehashing when we grow/shrink a hashtable
|
||||
void copy_from(const dense_hashtable &ht, size_type min_buckets_wanted) {
|
||||
clear(); // clear table, set num_deleted to 0
|
||||
|
||||
// If we need to change the size of our table, do it now
|
||||
const size_type resize_to = min_size(ht.size(), min_buckets_wanted);
|
||||
if ( resize_to > bucket_count() ) { // we don't have enough buckets
|
||||
typedef integral_constant<bool,
|
||||
(has_trivial_copy<value_type>::value &&
|
||||
has_trivial_destructor<value_type>::value)>
|
||||
realloc_ok; // we pretend mv(x,y) == "x.~T(); new(x) T(y)"
|
||||
expand_array(resize_to, realloc_ok());
|
||||
num_buckets = resize_to;
|
||||
reset_thresholds();
|
||||
}
|
||||
|
||||
// We use a normal iterator to get non-deleted bcks from ht
|
||||
// We could use insert() here, but since we know there are
|
||||
// no duplicates and no deleted items, we can be more efficient
|
||||
assert((bucket_count() & (bucket_count()-1)) == 0); // a power of two
|
||||
for ( const_iterator it = ht.begin(); it != ht.end(); ++it ) {
|
||||
size_type num_probes = 0; // how many times we've probed
|
||||
size_type bucknum;
|
||||
const size_type bucket_count_minus_one = bucket_count() - 1;
|
||||
for (bucknum = hash(get_key(*it)) & bucket_count_minus_one;
|
||||
!test_empty(bucknum); // not empty
|
||||
bucknum = (bucknum + JUMP_(key, num_probes)) & bucket_count_minus_one) {
|
||||
++num_probes;
|
||||
assert(num_probes < bucket_count()); // or else the hashtable is full
|
||||
}
|
||||
set_value(&table[bucknum], *it); // copies the value to here
|
||||
num_elements++;
|
||||
}
|
||||
}
|
||||
|
||||
// Required by the spec for hashed associative container
|
||||
public:
|
||||
// Though the docs say this should be num_buckets, I think it's much
|
||||
// more useful as req_elements. As a special feature, calling with
|
||||
// req_elements==0 will cause us to shrink if we can, saving space.
|
||||
void resize(size_type req_elements) { // resize to this or larger
|
||||
if ( consider_shrink || req_elements == 0 )
|
||||
maybe_shrink();
|
||||
if ( req_elements > num_elements )
|
||||
return resize_delta(req_elements - num_elements);
|
||||
}
|
||||
|
||||
// Change the value of shrink_resize_percent and
|
||||
// enlarge_resize_percent. The description at the beginning of this
|
||||
// file explains how to choose the values. Setting the shrink
|
||||
// parameter to 0.0 ensures that the table never shrinks.
|
||||
void set_resizing_parameters(float shrink, float grow) {
|
||||
assert(shrink >= 0.0);
|
||||
assert(grow <= 1.0);
|
||||
assert(shrink <= grow/2.0);
|
||||
shrink_resize_percent = shrink;
|
||||
enlarge_resize_percent = grow;
|
||||
reset_thresholds();
|
||||
}
|
||||
|
||||
// CONSTRUCTORS -- as required by the specs, we take a size,
|
||||
// but also let you specify a hashfunction, key comparator,
|
||||
// and key extractor. We also define a copy constructor and =.
|
||||
// DESTRUCTOR -- needs to free the table
|
||||
explicit dense_hashtable(size_type expected_max_items_in_table = 0,
|
||||
const HashFcn& hf = HashFcn(),
|
||||
const EqualKey& eql = EqualKey(),
|
||||
const ExtractKey& ext = ExtractKey())
|
||||
: hash(hf), equals(eql), get_key(ext), num_deleted(0),
|
||||
use_deleted(false), use_empty(false),
|
||||
delval(), emptyval(), enlarge_resize_percent(HT_OCCUPANCY_FLT),
|
||||
shrink_resize_percent(HT_EMPTY_FLT), table(NULL),
|
||||
num_buckets(expected_max_items_in_table == 0
|
||||
? HT_DEFAULT_STARTING_BUCKETS
|
||||
: min_size(expected_max_items_in_table, 0)),
|
||||
num_elements(0) {
|
||||
// table is NULL until emptyval is set. However, we set num_buckets
|
||||
// here so we know how much space to allocate once emptyval is set
|
||||
reset_thresholds();
|
||||
}
|
||||
|
||||
// As a convenience for resize(), we allow an optional second argument
|
||||
// which lets you make this new hashtable a different size than ht
|
||||
dense_hashtable(const dense_hashtable& ht,
|
||||
size_type min_buckets_wanted = HT_DEFAULT_STARTING_BUCKETS)
|
||||
: hash(ht.hash), equals(ht.equals), get_key(ht.get_key), num_deleted(0),
|
||||
use_deleted(ht.use_deleted), use_empty(ht.use_empty),
|
||||
delval(ht.delval), emptyval(ht.emptyval),
|
||||
enlarge_resize_percent(ht.enlarge_resize_percent),
|
||||
shrink_resize_percent(ht.shrink_resize_percent), table(NULL),
|
||||
num_buckets(0), num_elements(0) {
|
||||
reset_thresholds();
|
||||
copy_from(ht, min_buckets_wanted); // copy_from() ignores deleted entries
|
||||
}
|
||||
|
||||
dense_hashtable& operator= (const dense_hashtable& ht) {
|
||||
if (&ht == this) return *this; // don't copy onto ourselves
|
||||
clear();
|
||||
hash = ht.hash;
|
||||
equals = ht.equals;
|
||||
get_key = ht.get_key;
|
||||
use_deleted = ht.use_deleted;
|
||||
use_empty = ht.use_empty;
|
||||
set_value(&delval, ht.delval);
|
||||
set_value(&emptyval, ht.emptyval);
|
||||
enlarge_resize_percent = ht.enlarge_resize_percent;
|
||||
shrink_resize_percent = ht.shrink_resize_percent;
|
||||
copy_from(ht, HT_MIN_BUCKETS); // sets num_deleted to 0 too
|
||||
return *this;
|
||||
}
|
||||
|
||||
~dense_hashtable() {
|
||||
if (table) {
|
||||
destroy_buckets(0, num_buckets);
|
||||
free(table);
|
||||
}
|
||||
}
|
||||
|
||||
// Many STL algorithms use swap instead of copy constructors
|
||||
void swap(dense_hashtable& ht) {
|
||||
STL_NAMESPACE::swap(hash, ht.hash);
|
||||
STL_NAMESPACE::swap(equals, ht.equals);
|
||||
STL_NAMESPACE::swap(get_key, ht.get_key);
|
||||
STL_NAMESPACE::swap(num_deleted, ht.num_deleted);
|
||||
STL_NAMESPACE::swap(use_deleted, ht.use_deleted);
|
||||
STL_NAMESPACE::swap(use_empty, ht.use_empty);
|
||||
STL_NAMESPACE::swap(enlarge_resize_percent, ht.enlarge_resize_percent);
|
||||
STL_NAMESPACE::swap(shrink_resize_percent, ht.shrink_resize_percent);
|
||||
{ value_type tmp; // for annoying reasons, swap() doesn't work
|
||||
set_value(&tmp, delval);
|
||||
set_value(&delval, ht.delval);
|
||||
set_value(&ht.delval, tmp);
|
||||
}
|
||||
{ value_type tmp; // for annoying reasons, swap() doesn't work
|
||||
set_value(&tmp, emptyval);
|
||||
set_value(&emptyval, ht.emptyval);
|
||||
set_value(&ht.emptyval, tmp);
|
||||
}
|
||||
STL_NAMESPACE::swap(table, ht.table);
|
||||
STL_NAMESPACE::swap(num_buckets, ht.num_buckets);
|
||||
STL_NAMESPACE::swap(num_elements, ht.num_elements);
|
||||
reset_thresholds();
|
||||
ht.reset_thresholds();
|
||||
}
|
||||
|
||||
// It's always nice to be able to clear a table without deallocating it
|
||||
void clear() {
|
||||
if (table)
|
||||
destroy_buckets(0, num_buckets);
|
||||
num_buckets = min_size(0,0); // our new size
|
||||
reset_thresholds();
|
||||
table = (value_type *) realloc(table, num_buckets * sizeof(*table));
|
||||
assert(table);
|
||||
fill_range_with_empty(table, table + num_buckets);
|
||||
num_elements = 0;
|
||||
num_deleted = 0;
|
||||
}
|
||||
|
||||
// Clear the table without resizing it.
|
||||
// Mimicks the stl_hashtable's behaviour when clear()-ing in that it
|
||||
// does not modify the bucket count
|
||||
void clear_no_resize() {
|
||||
if (table) {
|
||||
set_empty(0, num_buckets);
|
||||
}
|
||||
// don't consider to shrink before another erase()
|
||||
reset_thresholds();
|
||||
num_elements = 0;
|
||||
num_deleted = 0;
|
||||
}
|
||||
|
||||
// LOOKUP ROUTINES
|
||||
private:
|
||||
// Returns a pair of positions: 1st where the object is, 2nd where
|
||||
// it would go if you wanted to insert it. 1st is ILLEGAL_BUCKET
|
||||
// if object is not found; 2nd is ILLEGAL_BUCKET if it is.
|
||||
// Note: because of deletions where-to-insert is not trivial: it's the
|
||||
// first deleted bucket we see, as long as we don't find the key later
|
||||
pair<size_type, size_type> find_position(const key_type &key) const {
|
||||
size_type num_probes = 0; // how many times we've probed
|
||||
const size_type bucket_count_minus_one = bucket_count() - 1;
|
||||
size_type bucknum = hash(key) & bucket_count_minus_one;
|
||||
size_type insert_pos = ILLEGAL_BUCKET; // where we would insert
|
||||
while ( 1 ) { // probe until something happens
|
||||
if ( test_empty(bucknum) ) { // bucket is empty
|
||||
if ( insert_pos == ILLEGAL_BUCKET ) // found no prior place to insert
|
||||
return pair<size_type,size_type>(ILLEGAL_BUCKET, bucknum);
|
||||
else
|
||||
return pair<size_type,size_type>(ILLEGAL_BUCKET, insert_pos);
|
||||
|
||||
} else if ( test_deleted(bucknum) ) {// keep searching, but mark to insert
|
||||
if ( insert_pos == ILLEGAL_BUCKET )
|
||||
insert_pos = bucknum;
|
||||
|
||||
} else if ( equals(key, get_key(table[bucknum])) ) {
|
||||
return pair<size_type,size_type>(bucknum, ILLEGAL_BUCKET);
|
||||
}
|
||||
++num_probes; // we're doing another probe
|
||||
bucknum = (bucknum + JUMP_(key, num_probes)) & bucket_count_minus_one;
|
||||
assert(num_probes < bucket_count()); // don't probe too many times!
|
||||
}
|
||||
}
|
||||
|
||||
public:
|
||||
iterator find(const key_type& key) {
|
||||
if ( size() == 0 ) return end();
|
||||
pair<size_type, size_type> pos = find_position(key);
|
||||
if ( pos.first == ILLEGAL_BUCKET ) // alas, not there
|
||||
return end();
|
||||
else
|
||||
return iterator(this, table + pos.first, table + num_buckets, false);
|
||||
}
|
||||
|
||||
const_iterator find(const key_type& key) const {
|
||||
if ( size() == 0 ) return end();
|
||||
pair<size_type, size_type> pos = find_position(key);
|
||||
if ( pos.first == ILLEGAL_BUCKET ) // alas, not there
|
||||
return end();
|
||||
else
|
||||
return const_iterator(this, table + pos.first, table+num_buckets, false);
|
||||
}
|
||||
|
||||
// Counts how many elements have key key. For maps, it's either 0 or 1.
|
||||
size_type count(const key_type &key) const {
|
||||
pair<size_type, size_type> pos = find_position(key);
|
||||
return pos.first == ILLEGAL_BUCKET ? 0 : 1;
|
||||
}
|
||||
|
||||
// Likewise, equal_range doesn't really make sense for us. Oh well.
|
||||
pair<iterator,iterator> equal_range(const key_type& key) {
|
||||
const iterator pos = find(key); // either an iterator or end
|
||||
return pair<iterator,iterator>(pos, pos);
|
||||
}
|
||||
pair<const_iterator,const_iterator> equal_range(const key_type& key) const {
|
||||
const const_iterator pos = find(key); // either an iterator or end
|
||||
return pair<iterator,iterator>(pos, pos);
|
||||
}
|
||||
|
||||
|
||||
// INSERTION ROUTINES
|
||||
private:
|
||||
// If you know *this is big enough to hold obj, use this routine
|
||||
pair<iterator, bool> insert_noresize(const value_type& obj) {
|
||||
// First, double-check we're not inserting delval or emptyval
|
||||
assert(!use_empty || !equals(get_key(obj), get_key(emptyval)));
|
||||
assert(!use_deleted || !equals(get_key(obj), get_key(delval)));
|
||||
const pair<size_type,size_type> pos = find_position(get_key(obj));
|
||||
if ( pos.first != ILLEGAL_BUCKET) { // object was already there
|
||||
return pair<iterator,bool>(iterator(this, table + pos.first,
|
||||
table + num_buckets, false),
|
||||
false); // false: we didn't insert
|
||||
} else { // pos.second says where to put it
|
||||
if ( test_deleted(pos.second) ) { // just replace if it's been del.
|
||||
const_iterator delpos(this, table + pos.second, // shrug:
|
||||
table + num_buckets, false);// shouldn't need const
|
||||
clear_deleted(delpos);
|
||||
assert( num_deleted > 0);
|
||||
--num_deleted; // used to be, now it isn't
|
||||
} else {
|
||||
++num_elements; // replacing an empty bucket
|
||||
}
|
||||
set_value(&table[pos.second], obj);
|
||||
return pair<iterator,bool>(iterator(this, table + pos.second,
|
||||
table + num_buckets, false),
|
||||
true); // true: we did insert
|
||||
}
|
||||
}
|
||||
|
||||
public:
|
||||
// This is the normal insert routine, used by the outside world
|
||||
pair<iterator, bool> insert(const value_type& obj) {
|
||||
resize_delta(1); // adding an object, grow if need be
|
||||
return insert_noresize(obj);
|
||||
}
|
||||
|
||||
// When inserting a lot at a time, we specialize on the type of iterator
|
||||
template <class InputIterator>
|
||||
void insert(InputIterator f, InputIterator l) {
|
||||
// specializes on iterator type
|
||||
insert(f, l, typename STL_NAMESPACE::iterator_traits<InputIterator>::iterator_category());
|
||||
}
|
||||
|
||||
// Iterator supports operator-, resize before inserting
|
||||
template <class ForwardIterator>
|
||||
void insert(ForwardIterator f, ForwardIterator l,
|
||||
STL_NAMESPACE::forward_iterator_tag) {
|
||||
size_type n = STL_NAMESPACE::distance(f, l); // TODO(csilvers): standard?
|
||||
resize_delta(n);
|
||||
for ( ; n > 0; --n, ++f)
|
||||
insert_noresize(*f);
|
||||
}
|
||||
|
||||
// Arbitrary iterator, can't tell how much to resize
|
||||
template <class InputIterator>
|
||||
void insert(InputIterator f, InputIterator l,
|
||||
STL_NAMESPACE::input_iterator_tag) {
|
||||
for ( ; f != l; ++f)
|
||||
insert(*f);
|
||||
}
|
||||
|
||||
|
||||
// DELETION ROUTINES
|
||||
size_type erase(const key_type& key) {
|
||||
// First, double-check we're not trying to erase delval or emptyval
|
||||
assert(!use_empty || !equals(key, get_key(emptyval)));
|
||||
assert(!use_deleted || !equals(key, get_key(delval)));
|
||||
const_iterator pos = find(key); // shrug: shouldn't need to be const
|
||||
if ( pos != end() ) {
|
||||
assert(!test_deleted(pos)); // or find() shouldn't have returned it
|
||||
set_deleted(pos);
|
||||
++num_deleted;
|
||||
consider_shrink = true; // will think about shrink after next insert
|
||||
return 1; // because we deleted one thing
|
||||
} else {
|
||||
return 0; // because we deleted nothing
|
||||
}
|
||||
}
|
||||
|
||||
// This is really evil: really it should be iterator, not const_iterator.
|
||||
// But...the only reason keys are const is to allow lookup.
|
||||
// Since that's a moot issue for deleted keys, we allow const_iterators
|
||||
void erase(const_iterator pos) {
|
||||
if ( pos == end() ) return; // sanity check
|
||||
if ( set_deleted(pos) ) { // true if object has been newly deleted
|
||||
++num_deleted;
|
||||
consider_shrink = true; // will think about shrink after next insert
|
||||
}
|
||||
}
|
||||
|
||||
void erase(const_iterator f, const_iterator l) {
|
||||
for ( ; f != l; ++f) {
|
||||
if ( set_deleted(f) ) // should always be true
|
||||
++num_deleted;
|
||||
}
|
||||
consider_shrink = true; // will think about shrink after next insert
|
||||
}
|
||||
|
||||
|
||||
// COMPARISON
|
||||
bool operator==(const dense_hashtable& ht) const {
|
||||
if (size() != ht.size()) {
|
||||
return false;
|
||||
} else if (this == &ht) {
|
||||
return true;
|
||||
} else {
|
||||
// Iterate through the elements in "this" and see if the
|
||||
// corresponding element is in ht
|
||||
for ( const_iterator it = begin(); it != end(); ++it ) {
|
||||
const_iterator it2 = ht.find(get_key(*it));
|
||||
if ((it2 == ht.end()) || (*it != *it2)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
bool operator!=(const dense_hashtable& ht) const {
|
||||
return !(*this == ht);
|
||||
}
|
||||
|
||||
|
||||
// I/O
|
||||
// We support reading and writing hashtables to disk. Alas, since
|
||||
// I don't know how to write a hasher or key_equal, you have to make
|
||||
// sure everything but the table is the same. We compact before writing
|
||||
//
|
||||
// NOTE: These functions are currently TODO. They've not been implemented.
|
||||
bool write_metadata(FILE *fp) {
|
||||
squash_deleted(); // so we don't have to worry about delval
|
||||
return false; // TODO
|
||||
}
|
||||
|
||||
bool read_metadata(FILE *fp) {
|
||||
num_deleted = 0; // since we got rid before writing
|
||||
assert(use_empty); // have to set this before calling us
|
||||
if (table) free(table); // we'll make our own
|
||||
// TODO: read magic number
|
||||
// TODO: read num_buckets
|
||||
reset_thresholds();
|
||||
table = (value_type *) malloc(num_buckets * sizeof(*table));
|
||||
assert(table);
|
||||
fill_range_with_empty(table, table + num_buckets);
|
||||
// TODO: read num_elements
|
||||
for ( size_type i = 0; i < num_elements; ++i ) {
|
||||
// TODO: read bucket_num
|
||||
// TODO: set with non-empty, non-deleted value
|
||||
}
|
||||
return false; // TODO
|
||||
}
|
||||
|
||||
// If your keys and values are simple enough, we can write them to
|
||||
// disk for you. "simple enough" means value_type is a POD type
|
||||
// that contains no pointers. However, we don't try to normalize
|
||||
// endianness
|
||||
bool write_nopointer_data(FILE *fp) const {
|
||||
for ( const_iterator it = begin(); it != end(); ++it ) {
|
||||
// TODO: skip empty/deleted values
|
||||
if ( !fwrite(&*it, sizeof(*it), 1, fp) ) return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// When reading, we have to override the potential const-ness of *it
|
||||
bool read_nopointer_data(FILE *fp) {
|
||||
for ( iterator it = begin(); it != end(); ++it ) {
|
||||
// TODO: skip empty/deleted values
|
||||
if ( !fread(reinterpret_cast<void*>(&(*it)), sizeof(*it), 1, fp) )
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private:
|
||||
// The actual data
|
||||
hasher hash; // required by hashed_associative_container
|
||||
key_equal equals;
|
||||
ExtractKey get_key;
|
||||
size_type num_deleted; // how many occupied buckets are marked deleted
|
||||
bool use_deleted; // false until delval has been set
|
||||
bool use_empty; // you must do this before you start
|
||||
value_type delval; // which key marks deleted entries
|
||||
value_type emptyval; // which key marks unused entries
|
||||
float enlarge_resize_percent; // how full before resize
|
||||
float shrink_resize_percent; // how empty before resize
|
||||
size_type shrink_threshold; // num_buckets * shrink_resize_percent
|
||||
size_type enlarge_threshold; // num_buckets * enlarge_resize_percent
|
||||
value_type *table;
|
||||
size_type num_buckets;
|
||||
size_type num_elements;
|
||||
bool consider_shrink; // true if we should try to shrink before next insert
|
||||
|
||||
void reset_thresholds() {
|
||||
enlarge_threshold = static_cast<size_type>(num_buckets
|
||||
* enlarge_resize_percent);
|
||||
shrink_threshold = static_cast<size_type>(num_buckets
|
||||
* shrink_resize_percent);
|
||||
consider_shrink = false; // whatever caused us to reset already considered
|
||||
}
|
||||
};
|
||||
|
||||
// We need a global swap as well
|
||||
template <class V, class K, class HF, class ExK, class EqK, class A>
|
||||
inline void swap(dense_hashtable<V,K,HF,ExK,EqK,A> &x,
|
||||
dense_hashtable<V,K,HF,ExK,EqK,A> &y) {
|
||||
x.swap(y);
|
||||
}
|
||||
|
||||
#undef JUMP_
|
||||
|
||||
template <class V, class K, class HF, class ExK, class EqK, class A>
|
||||
const typename dense_hashtable<V,K,HF,ExK,EqK,A>::size_type
|
||||
dense_hashtable<V,K,HF,ExK,EqK,A>::ILLEGAL_BUCKET;
|
||||
|
||||
// How full we let the table get before we resize. Knuth says .8 is
|
||||
// good -- higher causes us to probe too much, though saves memory
|
||||
template <class V, class K, class HF, class ExK, class EqK, class A>
|
||||
const float dense_hashtable<V,K,HF,ExK,EqK,A>::HT_OCCUPANCY_FLT = 0.5f;
|
||||
|
||||
// How empty we let the table get before we resize lower.
|
||||
// It should be less than OCCUPANCY_FLT / 2 or we thrash resizing
|
||||
template <class V, class K, class HF, class ExK, class EqK, class A>
|
||||
const float dense_hashtable<V,K,HF,ExK,EqK,A>::HT_EMPTY_FLT = 0.4f *
|
||||
dense_hashtable<V,K,HF,ExK,EqK,A>::HT_OCCUPANCY_FLT;
|
||||
|
||||
_END_GOOGLE_NAMESPACE_
|
||||
|
||||
#endif /* _DENSEHASHTABLE_H_ */
|
||||
74
3rdparty/google/sparsehash/sparseconfig.h
vendored
74
3rdparty/google/sparsehash/sparseconfig.h
vendored
@@ -1,74 +0,0 @@
|
||||
#ifndef SPARSEHASH_SPARSECONFIG_H__
|
||||
#define SPARSEHASH_SPARSECONFIG_H__
|
||||
|
||||
// [AIR] : I couldn't make the google "windows" folder concept work.
|
||||
// This does, and we only care of GCC and MSVC right now anyway.
|
||||
|
||||
#if defined( _MSC_VER )
|
||||
|
||||
#define GOOGLE_NAMESPACE google
|
||||
#define HASH_NAMESPACE stdext
|
||||
#define HASH_FUN_H <hash_map>
|
||||
#define SPARSEHASH_HASH HASH_NAMESPACE::hash_compare
|
||||
#undef HAVE_UINT16_T
|
||||
#undef HAVE_U_INT16_T
|
||||
#define HAVE___UINT16 1
|
||||
#define HAVE_LONG_LONG 1
|
||||
#define HAVE_SYS_TYPES_H 1
|
||||
#undef HAVE_STDINT_H
|
||||
#undef HAVE_INTTYPES_H
|
||||
#define HAVE_MEMCPY 1
|
||||
#define STL_NAMESPACE std
|
||||
#define _END_GOOGLE_NAMESPACE_ }
|
||||
#define _START_GOOGLE_NAMESPACE_ namespace GOOGLE_NAMESPACE {
|
||||
|
||||
#else //if defined( GNUC )
|
||||
|
||||
/* Namespace for Google classes */
|
||||
#define GOOGLE_NAMESPACE google
|
||||
|
||||
/* the location of <hash_fun.h>/<stl_hash_fun.h> */
|
||||
#define HASH_FUN_H <backward/hash_fun.h>
|
||||
|
||||
/* the namespace of hash_map/hash_set */
|
||||
#define HASH_NAMESPACE __gnu_cxx
|
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#define HAVE_INTTYPES_H 1
|
||||
|
||||
/* Define to 1 if the system has the type `long long'. */
|
||||
#define HAVE_LONG_LONG 1
|
||||
|
||||
/* Define to 1 if you have the `memcpy' function. */
|
||||
#define HAVE_MEMCPY 1
|
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */
|
||||
#define HAVE_STDINT_H 1
|
||||
|
||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
#define HAVE_SYS_TYPES_H 1
|
||||
|
||||
/* Define to 1 if the system has the type `uint16_t'. */
|
||||
#define HAVE_UINT16_T 1
|
||||
|
||||
/* Define to 1 if the system has the type `u_int16_t'. */
|
||||
#define HAVE_U_INT16_T 1
|
||||
|
||||
/* Define to 1 if the system has the type `__uint16'. */
|
||||
/* #undef HAVE___UINT16 */
|
||||
|
||||
/* The system-provided hash function including the namespace. */
|
||||
#define SPARSEHASH_HASH HASH_NAMESPACE::hash
|
||||
|
||||
/* the namespace where STL code like vector<> is defined */
|
||||
#define STL_NAMESPACE std
|
||||
|
||||
/* Stops putting the code inside the Google namespace */
|
||||
#define _END_GOOGLE_NAMESPACE_ }
|
||||
|
||||
/* Puts following code inside the Google namespace */
|
||||
#define _START_GOOGLE_NAMESPACE_ namespace google {
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
941
3rdparty/google/sparsehash/sparsehashtable.h
vendored
941
3rdparty/google/sparsehash/sparsehashtable.h
vendored
@@ -1,941 +0,0 @@
|
||||
// Copyright (c) 2005, Google Inc.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
// met:
|
||||
//
|
||||
// * Redistributions of source code must retain the above copyright
|
||||
// notice, this list of conditions and the following disclaimer.
|
||||
// * Redistributions in binary form must reproduce the above
|
||||
// copyright notice, this list of conditions and the following disclaimer
|
||||
// in the documentation and/or other materials provided with the
|
||||
// distribution.
|
||||
// * Neither the name of Google Inc. nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from
|
||||
// this software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
// ---
|
||||
// Author: Craig Silverstein
|
||||
//
|
||||
// A sparse hashtable is a particular implementation of
|
||||
// a hashtable: one that is meant to minimize memory use.
|
||||
// It does this by using a *sparse table* (cf sparsetable.h),
|
||||
// which uses between 1 and 2 bits to store empty buckets
|
||||
// (we may need another bit for hashtables that support deletion).
|
||||
//
|
||||
// When empty buckets are so cheap, an appealing hashtable
|
||||
// implementation is internal probing, in which the hashtable
|
||||
// is a single table, and collisions are resolved by trying
|
||||
// to insert again in another bucket. The most cache-efficient
|
||||
// internal probing schemes are linear probing (which suffers,
|
||||
// alas, from clumping) and quadratic probing, which is what
|
||||
// we implement by default.
|
||||
//
|
||||
// Deleted buckets are a bit of a pain. We have to somehow mark
|
||||
// deleted buckets (the probing must distinguish them from empty
|
||||
// buckets). The most principled way is to have another bitmap,
|
||||
// but that's annoying and takes up space. Instead we let the
|
||||
// user specify an "impossible" key. We set deleted buckets
|
||||
// to have the impossible key.
|
||||
//
|
||||
// Note it is possible to change the value of the delete key
|
||||
// on the fly; you can even remove it, though after that point
|
||||
// the hashtable is insert_only until you set it again.
|
||||
//
|
||||
// You probably shouldn't use this code directly. Use
|
||||
// <google/sparse_hash_table> or <google/sparse_hash_set> instead.
|
||||
//
|
||||
// You can modify the following, below:
|
||||
// HT_OCCUPANCY_FLT -- how full before we double size
|
||||
// HT_EMPTY_FLT -- how empty before we halve size
|
||||
// HT_MIN_BUCKETS -- smallest bucket size
|
||||
// HT_DEFAULT_STARTING_BUCKETS -- default bucket size at construct-time
|
||||
//
|
||||
// You can also change enlarge_resize_percent (which defaults to
|
||||
// HT_OCCUPANCY_FLT), and shrink_resize_percent (which defaults to
|
||||
// HT_EMPTY_FLT) with set_resizing_parameters().
|
||||
//
|
||||
// How to decide what values to use?
|
||||
// shrink_resize_percent's default of .4 * OCCUPANCY_FLT, is probably good.
|
||||
// HT_MIN_BUCKETS is probably unnecessary since you can specify
|
||||
// (indirectly) the starting number of buckets at construct-time.
|
||||
// For enlarge_resize_percent, you can use this chart to try to trade-off
|
||||
// expected lookup time to the space taken up. By default, this
|
||||
// code uses quadratic probing, though you can change it to linear
|
||||
// via _JUMP below if you really want to.
|
||||
//
|
||||
// From http://www.augustana.ca/~mohrj/courses/1999.fall/csc210/lecture_notes/hashing.html
|
||||
// NUMBER OF PROBES / LOOKUP Successful Unsuccessful
|
||||
// Quadratic collision resolution 1 - ln(1-L) - L/2 1/(1-L) - L - ln(1-L)
|
||||
// Linear collision resolution [1+1/(1-L)]/2 [1+1/(1-L)2]/2
|
||||
//
|
||||
// -- enlarge_resize_percent -- 0.10 0.50 0.60 0.75 0.80 0.90 0.99
|
||||
// QUADRATIC COLLISION RES.
|
||||
// probes/successful lookup 1.05 1.44 1.62 2.01 2.21 2.85 5.11
|
||||
// probes/unsuccessful lookup 1.11 2.19 2.82 4.64 5.81 11.4 103.6
|
||||
// LINEAR COLLISION RES.
|
||||
// probes/successful lookup 1.06 1.5 1.75 2.5 3.0 5.5 50.5
|
||||
// probes/unsuccessful lookup 1.12 2.5 3.6 8.5 13.0 50.0 5000.0
|
||||
//
|
||||
// The value type is required to be copy constructible and default
|
||||
// constructible, but it need not be (and commonly isn't) assignable.
|
||||
|
||||
#ifndef _SPARSEHASHTABLE_H_
|
||||
#define _SPARSEHASHTABLE_H_
|
||||
|
||||
#ifndef SPARSEHASH_STAT_UPDATE
|
||||
#define SPARSEHASH_STAT_UPDATE(x) ((void) 0)
|
||||
#endif
|
||||
|
||||
// The probing method
|
||||
// Linear probing
|
||||
// #define JUMP_(key, num_probes) ( 1 )
|
||||
// Quadratic-ish probing
|
||||
#define JUMP_(key, num_probes) ( num_probes )
|
||||
|
||||
|
||||
// Hashtable class, used to implement the hashed associative containers
|
||||
// hash_set and hash_map.
|
||||
|
||||
#include <google/sparsehash/sparseconfig.h>
|
||||
#include <assert.h>
|
||||
#include <algorithm> // For swap(), eg
|
||||
#include <iterator> // for facts about iterator tags
|
||||
#include <utility> // for pair<>
|
||||
#include <google/sparsetable> // Since that's basically what we are
|
||||
|
||||
_START_GOOGLE_NAMESPACE_
|
||||
|
||||
using STL_NAMESPACE::pair;
|
||||
|
||||
// Alloc is completely ignored. It is present as a template parameter only
|
||||
// for the sake of being compatible with the old SGI hashtable interface.
|
||||
// TODO(csilvers): is that the right thing to do?
|
||||
|
||||
template <class Value, class Key, class HashFcn,
|
||||
class ExtractKey, class EqualKey, class Alloc>
|
||||
class sparse_hashtable;
|
||||
|
||||
template <class V, class K, class HF, class ExK, class EqK, class A>
|
||||
struct sparse_hashtable_iterator;
|
||||
|
||||
template <class V, class K, class HF, class ExK, class EqK, class A>
|
||||
struct sparse_hashtable_const_iterator;
|
||||
|
||||
// As far as iterating, we're basically just a sparsetable
|
||||
// that skips over deleted elements.
|
||||
template <class V, class K, class HF, class ExK, class EqK, class A>
|
||||
struct sparse_hashtable_iterator {
|
||||
public:
|
||||
typedef sparse_hashtable_iterator<V,K,HF,ExK,EqK,A> iterator;
|
||||
typedef sparse_hashtable_const_iterator<V,K,HF,ExK,EqK,A> const_iterator;
|
||||
typedef typename sparsetable<V>::nonempty_iterator st_iterator;
|
||||
|
||||
typedef STL_NAMESPACE::forward_iterator_tag iterator_category;
|
||||
typedef V value_type;
|
||||
typedef ptrdiff_t difference_type;
|
||||
typedef size_t size_type;
|
||||
typedef V& reference; // Value
|
||||
typedef V* pointer;
|
||||
|
||||
// "Real" constructor and default constructor
|
||||
sparse_hashtable_iterator(const sparse_hashtable<V,K,HF,ExK,EqK,A> *h,
|
||||
st_iterator it, st_iterator it_end)
|
||||
: ht(h), pos(it), end(it_end) { advance_past_deleted(); }
|
||||
sparse_hashtable_iterator() { } // not ever used internally
|
||||
// The default destructor is fine; we don't define one
|
||||
// The default operator= is fine; we don't define one
|
||||
|
||||
// Happy dereferencer
|
||||
reference operator*() const { return *pos; }
|
||||
pointer operator->() const { return &(operator*()); }
|
||||
|
||||
// Arithmetic. The only hard part is making sure that
|
||||
// we're not on a marked-deleted array element
|
||||
void advance_past_deleted() {
|
||||
while ( pos != end && ht->test_deleted(*this) )
|
||||
++pos;
|
||||
}
|
||||
iterator& operator++() {
|
||||
assert(pos != end); ++pos; advance_past_deleted(); return *this;
|
||||
}
|
||||
iterator operator++(int) { iterator tmp(*this); ++*this; return tmp; }
|
||||
|
||||
// Comparison.
|
||||
bool operator==(const iterator& it) const { return pos == it.pos; }
|
||||
bool operator!=(const iterator& it) const { return pos != it.pos; }
|
||||
|
||||
|
||||
// The actual data
|
||||
const sparse_hashtable<V,K,HF,ExK,EqK,A> *ht;
|
||||
st_iterator pos, end;
|
||||
};
|
||||
|
||||
// Now do it all again, but with const-ness!
|
||||
template <class V, class K, class HF, class ExK, class EqK, class A>
|
||||
struct sparse_hashtable_const_iterator {
|
||||
public:
|
||||
typedef sparse_hashtable_iterator<V,K,HF,ExK,EqK,A> iterator;
|
||||
typedef sparse_hashtable_const_iterator<V,K,HF,ExK,EqK,A> const_iterator;
|
||||
typedef typename sparsetable<V>::const_nonempty_iterator st_iterator;
|
||||
|
||||
typedef STL_NAMESPACE::forward_iterator_tag iterator_category;
|
||||
typedef V value_type;
|
||||
typedef ptrdiff_t difference_type;
|
||||
typedef size_t size_type;
|
||||
typedef const V& reference; // Value
|
||||
typedef const V* pointer;
|
||||
|
||||
// "Real" constructor and default constructor
|
||||
sparse_hashtable_const_iterator(const sparse_hashtable<V,K,HF,ExK,EqK,A> *h,
|
||||
st_iterator it, st_iterator it_end)
|
||||
: ht(h), pos(it), end(it_end) { advance_past_deleted(); }
|
||||
// This lets us convert regular iterators to const iterators
|
||||
sparse_hashtable_const_iterator() { } // never used internally
|
||||
sparse_hashtable_const_iterator(const iterator &it)
|
||||
: ht(it.ht), pos(it.pos), end(it.end) { }
|
||||
// The default destructor is fine; we don't define one
|
||||
// The default operator= is fine; we don't define one
|
||||
|
||||
// Happy dereferencer
|
||||
reference operator*() const { return *pos; }
|
||||
pointer operator->() const { return &(operator*()); }
|
||||
|
||||
// Arithmetic. The only hard part is making sure that
|
||||
// we're not on a marked-deleted array element
|
||||
void advance_past_deleted() {
|
||||
while ( pos != end && ht->test_deleted(*this) )
|
||||
++pos;
|
||||
}
|
||||
const_iterator& operator++() {
|
||||
assert(pos != end); ++pos; advance_past_deleted(); return *this;
|
||||
}
|
||||
const_iterator operator++(int) { const_iterator tmp(*this); ++*this; return tmp; }
|
||||
|
||||
// Comparison.
|
||||
bool operator==(const const_iterator& it) const { return pos == it.pos; }
|
||||
bool operator!=(const const_iterator& it) const { return pos != it.pos; }
|
||||
|
||||
|
||||
// The actual data
|
||||
const sparse_hashtable<V,K,HF,ExK,EqK,A> *ht;
|
||||
st_iterator pos, end;
|
||||
};
|
||||
|
||||
// And once again, but this time freeing up memory as we iterate
|
||||
template <class V, class K, class HF, class ExK, class EqK, class A>
|
||||
struct sparse_hashtable_destructive_iterator {
|
||||
public:
|
||||
typedef sparse_hashtable_destructive_iterator<V,K,HF,ExK,EqK,A> iterator;
|
||||
typedef typename sparsetable<V>::destructive_iterator st_iterator;
|
||||
|
||||
typedef STL_NAMESPACE::forward_iterator_tag iterator_category;
|
||||
typedef V value_type;
|
||||
typedef ptrdiff_t difference_type;
|
||||
typedef size_t size_type;
|
||||
typedef V& reference; // Value
|
||||
typedef V* pointer;
|
||||
|
||||
// "Real" constructor and default constructor
|
||||
sparse_hashtable_destructive_iterator(const
|
||||
sparse_hashtable<V,K,HF,ExK,EqK,A> *h,
|
||||
st_iterator it, st_iterator it_end)
|
||||
: ht(h), pos(it), end(it_end) { advance_past_deleted(); }
|
||||
sparse_hashtable_destructive_iterator() { } // never used internally
|
||||
// The default destructor is fine; we don't define one
|
||||
// The default operator= is fine; we don't define one
|
||||
|
||||
// Happy dereferencer
|
||||
reference operator*() const { return *pos; }
|
||||
pointer operator->() const { return &(operator*()); }
|
||||
|
||||
// Arithmetic. The only hard part is making sure that
|
||||
// we're not on a marked-deleted array element
|
||||
void advance_past_deleted() {
|
||||
while ( pos != end && ht->test_deleted(*this) )
|
||||
++pos;
|
||||
}
|
||||
iterator& operator++() {
|
||||
assert(pos != end); ++pos; advance_past_deleted(); return *this;
|
||||
}
|
||||
iterator operator++(int) { iterator tmp(*this); ++*this; return tmp; }
|
||||
|
||||
// Comparison.
|
||||
bool operator==(const iterator& it) const { return pos == it.pos; }
|
||||
bool operator!=(const iterator& it) const { return pos != it.pos; }
|
||||
|
||||
|
||||
// The actual data
|
||||
const sparse_hashtable<V,K,HF,ExK,EqK,A> *ht;
|
||||
st_iterator pos, end;
|
||||
};
|
||||
|
||||
|
||||
template <class Value, class Key, class HashFcn,
|
||||
class ExtractKey, class EqualKey, class Alloc>
|
||||
class sparse_hashtable {
|
||||
public:
|
||||
typedef Key key_type;
|
||||
typedef Value value_type;
|
||||
typedef HashFcn hasher;
|
||||
typedef EqualKey key_equal;
|
||||
|
||||
typedef size_t size_type;
|
||||
typedef ptrdiff_t difference_type;
|
||||
typedef value_type* pointer;
|
||||
typedef const value_type* const_pointer;
|
||||
typedef value_type& reference;
|
||||
typedef const value_type& const_reference;
|
||||
typedef sparse_hashtable_iterator<Value, Key, HashFcn,
|
||||
ExtractKey, EqualKey, Alloc>
|
||||
iterator;
|
||||
|
||||
typedef sparse_hashtable_const_iterator<Value, Key, HashFcn,
|
||||
ExtractKey, EqualKey, Alloc>
|
||||
const_iterator;
|
||||
|
||||
typedef sparse_hashtable_destructive_iterator<Value, Key, HashFcn,
|
||||
ExtractKey, EqualKey, Alloc>
|
||||
destructive_iterator;
|
||||
|
||||
|
||||
// How full we let the table get before we resize. Knuth says .8 is
|
||||
// good -- higher causes us to probe too much, though saves memory
|
||||
static const float HT_OCCUPANCY_FLT; // = 0.8f;
|
||||
|
||||
// How empty we let the table get before we resize lower.
|
||||
// It should be less than OCCUPANCY_FLT / 2 or we thrash resizing
|
||||
static const float HT_EMPTY_FLT; // = 0.4 * HT_OCCUPANCY_FLT;
|
||||
|
||||
// Minimum size we're willing to let hashtables be.
|
||||
// Must be a power of two, and at least 4.
|
||||
// Note, however, that for a given hashtable, the minimum size is
|
||||
// determined by the first constructor arg, and may be >HT_MIN_BUCKETS.
|
||||
static const size_t HT_MIN_BUCKETS = 4;
|
||||
|
||||
// By default, if you don't specify a hashtable size at
|
||||
// construction-time, we use this size. Must be a power of two, and
|
||||
// at least HT_MIN_BUCKETS.
|
||||
static const size_t HT_DEFAULT_STARTING_BUCKETS = 32;
|
||||
|
||||
// ITERATOR FUNCTIONS
|
||||
iterator begin() { return iterator(this, table.nonempty_begin(),
|
||||
table.nonempty_end()); }
|
||||
iterator end() { return iterator(this, table.nonempty_end(),
|
||||
table.nonempty_end()); }
|
||||
const_iterator begin() const { return const_iterator(this,
|
||||
table.nonempty_begin(),
|
||||
table.nonempty_end()); }
|
||||
const_iterator end() const { return const_iterator(this,
|
||||
table.nonempty_end(),
|
||||
table.nonempty_end()); }
|
||||
|
||||
// This is used when resizing
|
||||
destructive_iterator destructive_begin() {
|
||||
return destructive_iterator(this, table.destructive_begin(),
|
||||
table.destructive_end());
|
||||
}
|
||||
destructive_iterator destructive_end() {
|
||||
return destructive_iterator(this, table.destructive_end(),
|
||||
table.destructive_end());
|
||||
}
|
||||
|
||||
|
||||
// ACCESSOR FUNCTIONS for the things we templatize on, basically
|
||||
hasher hash_funct() const { return hash; }
|
||||
key_equal key_eq() const { return equals; }
|
||||
|
||||
// We need to copy values when we set the special marker for deleted
|
||||
// elements, but, annoyingly, we can't just use the copy assignment
|
||||
// operator because value_type might not be assignable (it's often
|
||||
// pair<const X, Y>). We use explicit destructor invocation and
|
||||
// placement new to get around this. Arg.
|
||||
private:
|
||||
void set_value(value_type* dst, const value_type src) {
|
||||
dst->~value_type(); // delete the old value, if any
|
||||
new(dst) value_type(src);
|
||||
}
|
||||
|
||||
// This is used as a tag for the copy constructor, saying to destroy its
|
||||
// arg We have two ways of destructively copying: with potentially growing
|
||||
// the hashtable as we copy, and without. To make sure the outside world
|
||||
// can't do a destructive copy, we make the typename private.
|
||||
enum MoveDontCopyT {MoveDontCopy, MoveDontGrow};
|
||||
|
||||
|
||||
// DELETE HELPER FUNCTIONS
|
||||
// This lets the user describe a key that will indicate deleted
|
||||
// table entries. This key should be an "impossible" entry --
|
||||
// if you try to insert it for real, you won't be able to retrieve it!
|
||||
// (NB: while you pass in an entire value, only the key part is looked
|
||||
// at. This is just because I don't know how to assign just a key.)
|
||||
private:
|
||||
void squash_deleted() { // gets rid of any deleted entries we have
|
||||
if ( num_deleted ) { // get rid of deleted before writing
|
||||
sparse_hashtable tmp(MoveDontGrow, *this);
|
||||
swap(tmp); // now we are tmp
|
||||
}
|
||||
assert(num_deleted == 0);
|
||||
}
|
||||
|
||||
public:
|
||||
void set_deleted_key(const value_type &val) {
|
||||
// It's only safe to change what "deleted" means if we purge deleted guys
|
||||
squash_deleted();
|
||||
use_deleted = true;
|
||||
set_value(&delval, val); // save the key (and rest of val too)
|
||||
}
|
||||
void clear_deleted_key() {
|
||||
squash_deleted();
|
||||
use_deleted = false;
|
||||
}
|
||||
|
||||
// These are public so the iterators can use them
|
||||
// True if the item at position bucknum is "deleted" marker
|
||||
bool test_deleted(size_type bucknum) const {
|
||||
// The num_deleted test is crucial for read(): after read(), the ht values
|
||||
// are garbage, and we don't want to think some of them are deleted.
|
||||
return (use_deleted && num_deleted > 0 && table.test(bucknum) &&
|
||||
equals(get_key(delval), get_key(table.get(bucknum))));
|
||||
}
|
||||
bool test_deleted(const iterator &it) const {
|
||||
return (use_deleted && num_deleted > 0 &&
|
||||
equals(get_key(delval), get_key(*it)));
|
||||
}
|
||||
bool test_deleted(const const_iterator &it) const {
|
||||
return (use_deleted && num_deleted > 0 &&
|
||||
equals(get_key(delval), get_key(*it)));
|
||||
}
|
||||
bool test_deleted(const destructive_iterator &it) const {
|
||||
return (use_deleted && num_deleted > 0 &&
|
||||
equals(get_key(delval), get_key(*it)));
|
||||
}
|
||||
// Set it so test_deleted is true. true if object didn't used to be deleted
|
||||
// See below (at erase()) to explain why we allow const_iterators
|
||||
bool set_deleted(const_iterator &it) {
|
||||
assert(use_deleted); // bad if set_deleted_key() wasn't called
|
||||
bool retval = !test_deleted(it);
|
||||
// &* converts from iterator to value-type
|
||||
set_value(const_cast<value_type*>(&(*it)), delval);
|
||||
return retval;
|
||||
}
|
||||
// Set it so test_deleted is false. true if object used to be deleted
|
||||
bool clear_deleted(const_iterator &it) {
|
||||
assert(use_deleted); // bad if set_deleted_key() wasn't called
|
||||
// happens automatically when we assign something else in its place
|
||||
return test_deleted(it);
|
||||
}
|
||||
|
||||
|
||||
// FUNCTIONS CONCERNING SIZE
|
||||
size_type size() const { return table.num_nonempty() - num_deleted; }
|
||||
// Buckets are always a power of 2
|
||||
size_type max_size() const { return (size_type(-1) >> 1U) + 1; }
|
||||
bool empty() const { return size() == 0; }
|
||||
size_type bucket_count() const { return table.size(); }
|
||||
size_type max_bucket_count() const { return max_size(); }
|
||||
|
||||
private:
|
||||
// Because of the above, size_type(-1) is never legal; use it for errors
|
||||
static const size_type ILLEGAL_BUCKET = size_type(-1);
|
||||
|
||||
private:
|
||||
// This is the smallest size a hashtable can be without being too crowded
|
||||
// If you like, you can give a min #buckets as well as a min #elts
|
||||
size_type min_size(size_type num_elts, size_type min_buckets_wanted) {
|
||||
size_type sz = HT_MIN_BUCKETS;
|
||||
while ( sz < min_buckets_wanted || num_elts >= sz * enlarge_resize_percent )
|
||||
sz *= 2;
|
||||
return sz;
|
||||
}
|
||||
|
||||
// Used after a string of deletes
|
||||
void maybe_shrink() {
|
||||
assert(table.num_nonempty() >= num_deleted);
|
||||
assert((bucket_count() & (bucket_count()-1)) == 0); // is a power of two
|
||||
assert(bucket_count() >= HT_MIN_BUCKETS);
|
||||
|
||||
// If you construct a hashtable with < HT_DEFAULT_STARTING_BUCKETS,
|
||||
// we'll never shrink until you get relatively big, and we'll never
|
||||
// shrink below HT_DEFAULT_STARTING_BUCKETS. Otherwise, something
|
||||
// like "dense_hash_set<int> x; x.insert(4); x.erase(4);" will
|
||||
// shrink us down to HT_MIN_BUCKETS buckets, which is too small.
|
||||
if (shrink_threshold > 0
|
||||
&& (table.num_nonempty()-num_deleted) < shrink_threshold &&
|
||||
bucket_count() > HT_DEFAULT_STARTING_BUCKETS ) {
|
||||
size_type sz = bucket_count() / 2; // find how much we should shrink
|
||||
while ( sz > HT_DEFAULT_STARTING_BUCKETS &&
|
||||
(table.num_nonempty() - num_deleted) <= sz *
|
||||
shrink_resize_percent )
|
||||
sz /= 2; // stay a power of 2
|
||||
sparse_hashtable tmp(MoveDontCopy, *this, sz);
|
||||
swap(tmp); // now we are tmp
|
||||
}
|
||||
consider_shrink = false; // because we just considered it
|
||||
}
|
||||
|
||||
// We'll let you resize a hashtable -- though this makes us copy all!
|
||||
// When you resize, you say, "make it big enough for this many more elements"
|
||||
void resize_delta(size_type delta) {
|
||||
if ( consider_shrink ) // see if lots of deletes happened
|
||||
maybe_shrink();
|
||||
if ( bucket_count() >= HT_MIN_BUCKETS &&
|
||||
(table.num_nonempty() + delta) <= enlarge_threshold )
|
||||
return; // we're ok as we are
|
||||
|
||||
// Sometimes, we need to resize just to get rid of all the
|
||||
// "deleted" buckets that are clogging up the hashtable. So when
|
||||
// deciding whether to resize, count the deleted buckets (which
|
||||
// are currently taking up room). But later, when we decide what
|
||||
// size to resize to, *don't* count deleted buckets, since they
|
||||
// get discarded during the resize.
|
||||
const size_type needed_size = min_size(table.num_nonempty() + delta, 0);
|
||||
if ( needed_size > bucket_count() ) { // we don't have enough buckets
|
||||
const size_type resize_to = min_size(table.num_nonempty() - num_deleted
|
||||
+ delta, 0);
|
||||
sparse_hashtable tmp(MoveDontCopy, *this, resize_to);
|
||||
swap(tmp); // now we are tmp
|
||||
}
|
||||
}
|
||||
|
||||
// Used to actually do the rehashing when we grow/shrink a hashtable
|
||||
void copy_from(const sparse_hashtable &ht, size_type min_buckets_wanted) {
|
||||
clear(); // clear table, set num_deleted to 0
|
||||
|
||||
// If we need to change the size of our table, do it now
|
||||
const size_type resize_to = min_size(ht.size(), min_buckets_wanted);
|
||||
if ( resize_to > bucket_count() ) { // we don't have enough buckets
|
||||
table.resize(resize_to); // sets the number of buckets
|
||||
reset_thresholds();
|
||||
}
|
||||
|
||||
// We use a normal iterator to get non-deleted bcks from ht
|
||||
// We could use insert() here, but since we know there are
|
||||
// no duplicates and no deleted items, we can be more efficient
|
||||
assert( (bucket_count() & (bucket_count()-1)) == 0); // a power of two
|
||||
for ( const_iterator it = ht.begin(); it != ht.end(); ++it ) {
|
||||
size_type num_probes = 0; // how many times we've probed
|
||||
size_type bucknum;
|
||||
const size_type bucket_count_minus_one = bucket_count() - 1;
|
||||
for (bucknum = hash(get_key(*it)) & bucket_count_minus_one;
|
||||
table.test(bucknum); // not empty
|
||||
bucknum = (bucknum + JUMP_(key, num_probes)) & bucket_count_minus_one) {
|
||||
++num_probes;
|
||||
assert(num_probes < bucket_count()); // or else the hashtable is full
|
||||
}
|
||||
table.set(bucknum, *it); // copies the value to here
|
||||
}
|
||||
}
|
||||
|
||||
// Implementation is like copy_from, but it destroys the table of the
|
||||
// "from" guy by freeing sparsetable memory as we iterate. This is
|
||||
// useful in resizing, since we're throwing away the "from" guy anyway.
|
||||
void move_from(MoveDontCopyT mover, sparse_hashtable &ht,
|
||||
size_type min_buckets_wanted) {
|
||||
clear(); // clear table, set num_deleted to 0
|
||||
|
||||
// If we need to change the size of our table, do it now
|
||||
size_t resize_to;
|
||||
if ( mover == MoveDontGrow )
|
||||
resize_to = ht.bucket_count(); // keep same size as old ht
|
||||
else // MoveDontCopy
|
||||
resize_to = min_size(ht.size(), min_buckets_wanted);
|
||||
if ( resize_to > bucket_count() ) { // we don't have enough buckets
|
||||
table.resize(resize_to); // sets the number of buckets
|
||||
reset_thresholds();
|
||||
}
|
||||
|
||||
// We use a normal iterator to get non-deleted bcks from ht
|
||||
// We could use insert() here, but since we know there are
|
||||
// no duplicates and no deleted items, we can be more efficient
|
||||
assert( (bucket_count() & (bucket_count()-1)) == 0); // a power of two
|
||||
// THIS IS THE MAJOR LINE THAT DIFFERS FROM COPY_FROM():
|
||||
for ( destructive_iterator it = ht.destructive_begin();
|
||||
it != ht.destructive_end(); ++it ) {
|
||||
size_type num_probes = 0; // how many times we've probed
|
||||
size_type bucknum;
|
||||
for ( bucknum = hash(get_key(*it)) & (bucket_count()-1); // h % buck_cnt
|
||||
table.test(bucknum); // not empty
|
||||
bucknum = (bucknum + JUMP_(key, num_probes)) & (bucket_count()-1) ) {
|
||||
++num_probes;
|
||||
assert(num_probes < bucket_count()); // or else the hashtable is full
|
||||
}
|
||||
table.set(bucknum, *it); // copies the value to here
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Required by the spec for hashed associative container
|
||||
public:
|
||||
// Though the docs say this should be num_buckets, I think it's much
|
||||
// more useful as num_elements. As a special feature, calling with
|
||||
// req_elements==0 will cause us to shrink if we can, saving space.
|
||||
void resize(size_type req_elements) { // resize to this or larger
|
||||
if ( consider_shrink || req_elements == 0 )
|
||||
maybe_shrink();
|
||||
if ( req_elements > table.num_nonempty() ) // we only grow
|
||||
resize_delta(req_elements - table.num_nonempty());
|
||||
}
|
||||
|
||||
// Change the value of shrink_resize_percent and
|
||||
// enlarge_resize_percent. The description at the beginning of this
|
||||
// file explains how to choose the values. Setting the shrink
|
||||
// parameter to 0.0 ensures that the table never shrinks.
|
||||
void set_resizing_parameters(float shrink, float grow) {
|
||||
assert(shrink >= 0.0);
|
||||
assert(grow <= 1.0);
|
||||
assert(shrink <= grow/2.0);
|
||||
shrink_resize_percent = shrink;
|
||||
enlarge_resize_percent = grow;
|
||||
reset_thresholds();
|
||||
}
|
||||
|
||||
// CONSTRUCTORS -- as required by the specs, we take a size,
|
||||
// but also let you specify a hashfunction, key comparator,
|
||||
// and key extractor. We also define a copy constructor and =.
|
||||
// DESTRUCTOR -- the default is fine, surprisingly.
|
||||
explicit sparse_hashtable(size_type expected_max_items_in_table = 0,
|
||||
const HashFcn& hf = HashFcn(),
|
||||
const EqualKey& eql = EqualKey(),
|
||||
const ExtractKey& ext = ExtractKey())
|
||||
: hash(hf), equals(eql), get_key(ext), num_deleted(0), use_deleted(false),
|
||||
delval(), enlarge_resize_percent(HT_OCCUPANCY_FLT),
|
||||
shrink_resize_percent(HT_EMPTY_FLT),
|
||||
table(expected_max_items_in_table == 0
|
||||
? HT_DEFAULT_STARTING_BUCKETS
|
||||
: min_size(expected_max_items_in_table, 0)) {
|
||||
reset_thresholds();
|
||||
}
|
||||
|
||||
// As a convenience for resize(), we allow an optional second argument
|
||||
// which lets you make this new hashtable a different size than ht.
|
||||
// We also provide a mechanism of saying you want to "move" the ht argument
|
||||
// into us instead of copying.
|
||||
sparse_hashtable(const sparse_hashtable& ht,
|
||||
size_type min_buckets_wanted = HT_DEFAULT_STARTING_BUCKETS)
|
||||
: hash(ht.hash), equals(ht.equals), get_key(ht.get_key),
|
||||
num_deleted(0), use_deleted(ht.use_deleted), delval(ht.delval),
|
||||
enlarge_resize_percent(ht.enlarge_resize_percent),
|
||||
shrink_resize_percent(ht.shrink_resize_percent),
|
||||
table() {
|
||||
reset_thresholds();
|
||||
copy_from(ht, min_buckets_wanted); // copy_from() ignores deleted entries
|
||||
}
|
||||
sparse_hashtable(MoveDontCopyT mover, sparse_hashtable& ht,
|
||||
size_type min_buckets_wanted = HT_DEFAULT_STARTING_BUCKETS)
|
||||
: hash(ht.hash), equals(ht.equals), get_key(ht.get_key),
|
||||
num_deleted(0), use_deleted(ht.use_deleted), delval(ht.delval),
|
||||
enlarge_resize_percent(ht.enlarge_resize_percent),
|
||||
shrink_resize_percent(ht.shrink_resize_percent),
|
||||
table() {
|
||||
reset_thresholds();
|
||||
move_from(mover, ht, min_buckets_wanted); // ignores deleted entries
|
||||
}
|
||||
|
||||
sparse_hashtable& operator= (const sparse_hashtable& ht) {
|
||||
if (&ht == this) return *this; // don't copy onto ourselves
|
||||
clear();
|
||||
hash = ht.hash;
|
||||
equals = ht.equals;
|
||||
get_key = ht.get_key;
|
||||
use_deleted = ht.use_deleted;
|
||||
set_value(&delval, ht.delval);
|
||||
copy_from(ht, HT_MIN_BUCKETS); // sets num_deleted to 0 too
|
||||
return *this;
|
||||
}
|
||||
|
||||
// Many STL algorithms use swap instead of copy constructors
|
||||
void swap(sparse_hashtable& ht) {
|
||||
STL_NAMESPACE::swap(hash, ht.hash);
|
||||
STL_NAMESPACE::swap(equals, ht.equals);
|
||||
STL_NAMESPACE::swap(get_key, ht.get_key);
|
||||
STL_NAMESPACE::swap(num_deleted, ht.num_deleted);
|
||||
STL_NAMESPACE::swap(use_deleted, ht.use_deleted);
|
||||
STL_NAMESPACE::swap(enlarge_resize_percent, ht.enlarge_resize_percent);
|
||||
STL_NAMESPACE::swap(shrink_resize_percent, ht.shrink_resize_percent);
|
||||
{ value_type tmp; // for annoying reasons, swap() doesn't work
|
||||
set_value(&tmp, delval);
|
||||
set_value(&delval, ht.delval);
|
||||
set_value(&ht.delval, tmp);
|
||||
}
|
||||
table.swap(ht.table);
|
||||
reset_thresholds();
|
||||
ht.reset_thresholds();
|
||||
}
|
||||
|
||||
// It's always nice to be able to clear a table without deallocating it
|
||||
void clear() {
|
||||
table.clear();
|
||||
reset_thresholds();
|
||||
num_deleted = 0;
|
||||
}
|
||||
|
||||
|
||||
// LOOKUP ROUTINES
|
||||
private:
|
||||
// Returns a pair of positions: 1st where the object is, 2nd where
|
||||
// it would go if you wanted to insert it. 1st is ILLEGAL_BUCKET
|
||||
// if object is not found; 2nd is ILLEGAL_BUCKET if it is.
|
||||
// Note: because of deletions where-to-insert is not trivial: it's the
|
||||
// first deleted bucket we see, as long as we don't find the key later
|
||||
pair<size_type, size_type> find_position(const key_type &key) const {
|
||||
size_type num_probes = 0; // how many times we've probed
|
||||
const size_type bucket_count_minus_one = bucket_count() - 1;
|
||||
size_type bucknum = hash(key) & bucket_count_minus_one;
|
||||
size_type insert_pos = ILLEGAL_BUCKET; // where we would insert
|
||||
SPARSEHASH_STAT_UPDATE(total_lookups += 1);
|
||||
while ( 1 ) { // probe until something happens
|
||||
if ( !table.test(bucknum) ) { // bucket is empty
|
||||
SPARSEHASH_STAT_UPDATE(total_probes += num_probes);
|
||||
if ( insert_pos == ILLEGAL_BUCKET ) // found no prior place to insert
|
||||
return pair<size_type,size_type>(ILLEGAL_BUCKET, bucknum);
|
||||
else
|
||||
return pair<size_type,size_type>(ILLEGAL_BUCKET, insert_pos);
|
||||
|
||||
} else if ( test_deleted(bucknum) ) {// keep searching, but mark to insert
|
||||
if ( insert_pos == ILLEGAL_BUCKET )
|
||||
insert_pos = bucknum;
|
||||
|
||||
} else if ( equals(key, get_key(table.get(bucknum))) ) {
|
||||
SPARSEHASH_STAT_UPDATE(total_probes += num_probes);
|
||||
return pair<size_type,size_type>(bucknum, ILLEGAL_BUCKET);
|
||||
}
|
||||
++num_probes; // we're doing another probe
|
||||
bucknum = (bucknum + JUMP_(key, num_probes)) & bucket_count_minus_one;
|
||||
assert(num_probes < bucket_count()); // don't probe too many times!
|
||||
}
|
||||
}
|
||||
|
||||
public:
|
||||
iterator find(const key_type& key) {
|
||||
if ( size() == 0 ) return end();
|
||||
pair<size_type, size_type> pos = find_position(key);
|
||||
if ( pos.first == ILLEGAL_BUCKET ) // alas, not there
|
||||
return end();
|
||||
else
|
||||
return iterator(this, table.get_iter(pos.first), table.nonempty_end());
|
||||
}
|
||||
|
||||
const_iterator find(const key_type& key) const {
|
||||
if ( size() == 0 ) return end();
|
||||
pair<size_type, size_type> pos = find_position(key);
|
||||
if ( pos.first == ILLEGAL_BUCKET ) // alas, not there
|
||||
return end();
|
||||
else
|
||||
return const_iterator(this,
|
||||
table.get_iter(pos.first), table.nonempty_end());
|
||||
}
|
||||
|
||||
// Counts how many elements have key key. For maps, it's either 0 or 1.
|
||||
size_type count(const key_type &key) const {
|
||||
pair<size_type, size_type> pos = find_position(key);
|
||||
return pos.first == ILLEGAL_BUCKET ? 0 : 1;
|
||||
}
|
||||
|
||||
// Likewise, equal_range doesn't really make sense for us. Oh well.
|
||||
pair<iterator,iterator> equal_range(const key_type& key) {
|
||||
const iterator pos = find(key); // either an iterator or end
|
||||
return pair<iterator,iterator>(pos, pos);
|
||||
}
|
||||
pair<const_iterator,const_iterator> equal_range(const key_type& key) const {
|
||||
const const_iterator pos = find(key); // either an iterator or end
|
||||
return pair<iterator,iterator>(pos, pos);
|
||||
}
|
||||
|
||||
|
||||
// INSERTION ROUTINES
|
||||
private:
|
||||
// If you know *this is big enough to hold obj, use this routine
|
||||
pair<iterator, bool> insert_noresize(const value_type& obj) {
|
||||
// First, double-check we're not inserting delval
|
||||
assert(!use_deleted || !equals(get_key(obj), get_key(delval)));
|
||||
const pair<size_type,size_type> pos = find_position(get_key(obj));
|
||||
if ( pos.first != ILLEGAL_BUCKET) { // object was already there
|
||||
return pair<iterator,bool>(iterator(this, table.get_iter(pos.first),
|
||||
table.nonempty_end()),
|
||||
false); // false: we didn't insert
|
||||
} else { // pos.second says where to put it
|
||||
if ( test_deleted(pos.second) ) { // just replace if it's been del.
|
||||
// The set() below will undelete this object. We just worry about stats
|
||||
assert(num_deleted > 0);
|
||||
--num_deleted; // used to be, now it isn't
|
||||
}
|
||||
table.set(pos.second, obj);
|
||||
return pair<iterator,bool>(iterator(this, table.get_iter(pos.second),
|
||||
table.nonempty_end()),
|
||||
true); // true: we did insert
|
||||
}
|
||||
}
|
||||
|
||||
public:
|
||||
// This is the normal insert routine, used by the outside world
|
||||
pair<iterator, bool> insert(const value_type& obj) {
|
||||
resize_delta(1); // adding an object, grow if need be
|
||||
return insert_noresize(obj);
|
||||
}
|
||||
|
||||
// When inserting a lot at a time, we specialize on the type of iterator
|
||||
template <class InputIterator>
|
||||
void insert(InputIterator f, InputIterator l) {
|
||||
// specializes on iterator type
|
||||
insert(f, l, typename STL_NAMESPACE::iterator_traits<InputIterator>::iterator_category());
|
||||
}
|
||||
|
||||
// Iterator supports operator-, resize before inserting
|
||||
template <class ForwardIterator>
|
||||
void insert(ForwardIterator f, ForwardIterator l,
|
||||
STL_NAMESPACE::forward_iterator_tag) {
|
||||
size_type n = STL_NAMESPACE::distance(f, l); // TODO(csilvers): standard?
|
||||
resize_delta(n);
|
||||
for ( ; n > 0; --n, ++f)
|
||||
insert_noresize(*f);
|
||||
}
|
||||
|
||||
// Arbitrary iterator, can't tell how much to resize
|
||||
template <class InputIterator>
|
||||
void insert(InputIterator f, InputIterator l,
|
||||
STL_NAMESPACE::input_iterator_tag) {
|
||||
for ( ; f != l; ++f)
|
||||
insert(*f);
|
||||
}
|
||||
|
||||
|
||||
// DELETION ROUTINES
|
||||
size_type erase(const key_type& key) {
|
||||
// First, double-check we're not erasing delval
|
||||
assert(!use_deleted || !equals(key, get_key(delval)));
|
||||
const_iterator pos = find(key); // shrug: shouldn't need to be const
|
||||
if ( pos != end() ) {
|
||||
assert(!test_deleted(pos)); // or find() shouldn't have returned it
|
||||
set_deleted(pos);
|
||||
++num_deleted;
|
||||
consider_shrink = true; // will think about shrink after next insert
|
||||
return 1; // because we deleted one thing
|
||||
} else {
|
||||
return 0; // because we deleted nothing
|
||||
}
|
||||
}
|
||||
|
||||
// This is really evil: really it should be iterator, not const_iterator.
|
||||
// But...the only reason keys are const is to allow lookup.
|
||||
// Since that's a moot issue for deleted keys, we allow const_iterators
|
||||
void erase(const_iterator pos) {
|
||||
if ( pos == end() ) return; // sanity check
|
||||
if ( set_deleted(pos) ) { // true if object has been newly deleted
|
||||
++num_deleted;
|
||||
consider_shrink = true; // will think about shrink after next insert
|
||||
}
|
||||
}
|
||||
|
||||
void erase(const_iterator f, const_iterator l) {
|
||||
for ( ; f != l; ++f) {
|
||||
if ( set_deleted(f) ) // should always be true
|
||||
++num_deleted;
|
||||
}
|
||||
consider_shrink = true; // will think about shrink after next insert
|
||||
}
|
||||
|
||||
|
||||
// COMPARISON
|
||||
bool operator==(const sparse_hashtable& ht) const {
|
||||
// We really want to check that the hash functions are the same
|
||||
// but alas there's no way to do this. We just hope.
|
||||
return ( num_deleted == ht.num_deleted && table == ht.table );
|
||||
}
|
||||
bool operator!=(const sparse_hashtable& ht) const {
|
||||
return !(*this == ht);
|
||||
}
|
||||
|
||||
|
||||
// I/O
|
||||
// We support reading and writing hashtables to disk. NOTE that
|
||||
// this only stores the hashtable metadata, not the stuff you've
|
||||
// actually put in the hashtable! Alas, since I don't know how to
|
||||
// write a hasher or key_equal, you have to make sure everything
|
||||
// but the table is the same. We compact before writing.
|
||||
bool write_metadata(FILE *fp) {
|
||||
squash_deleted(); // so we don't have to worry about delkey
|
||||
return table.write_metadata(fp);
|
||||
}
|
||||
|
||||
bool read_metadata(FILE *fp) {
|
||||
num_deleted = 0; // since we got rid before writing
|
||||
bool result = table.read_metadata(fp);
|
||||
reset_thresholds();
|
||||
return result;
|
||||
}
|
||||
|
||||
// Only meaningful if value_type is a POD.
|
||||
bool write_nopointer_data(FILE *fp) {
|
||||
return table.write_nopointer_data(fp);
|
||||
}
|
||||
|
||||
// Only meaningful if value_type is a POD.
|
||||
bool read_nopointer_data(FILE *fp) {
|
||||
return table.read_nopointer_data(fp);
|
||||
}
|
||||
|
||||
private:
|
||||
// The actual data
|
||||
hasher hash; // required by hashed_associative_container
|
||||
key_equal equals;
|
||||
ExtractKey get_key;
|
||||
size_type num_deleted; // how many occupied buckets are marked deleted
|
||||
bool use_deleted; // false until delval has been set
|
||||
value_type delval; // which key marks deleted entries
|
||||
float enlarge_resize_percent; // how full before resize
|
||||
float shrink_resize_percent; // how empty before resize
|
||||
size_type shrink_threshold; // table.size() * shrink_resize_percent
|
||||
size_type enlarge_threshold; // table.size() * enlarge_resize_percent
|
||||
sparsetable<value_type> table; // holds num_buckets and num_elements too
|
||||
bool consider_shrink; // true if we should try to shrink before next insert
|
||||
|
||||
void reset_thresholds() {
|
||||
enlarge_threshold = static_cast<size_type>(table.size()
|
||||
* enlarge_resize_percent);
|
||||
shrink_threshold = static_cast<size_type>(table.size()
|
||||
* shrink_resize_percent);
|
||||
consider_shrink = false; // whatever caused us to reset already considered
|
||||
}
|
||||
};
|
||||
|
||||
// We need a global swap as well
|
||||
template <class V, class K, class HF, class ExK, class EqK, class A>
|
||||
inline void swap(sparse_hashtable<V,K,HF,ExK,EqK,A> &x,
|
||||
sparse_hashtable<V,K,HF,ExK,EqK,A> &y) {
|
||||
x.swap(y);
|
||||
}
|
||||
|
||||
#undef JUMP_
|
||||
|
||||
template <class V, class K, class HF, class ExK, class EqK, class A>
|
||||
const typename sparse_hashtable<V,K,HF,ExK,EqK,A>::size_type
|
||||
sparse_hashtable<V,K,HF,ExK,EqK,A>::ILLEGAL_BUCKET;
|
||||
|
||||
// How full we let the table get before we resize. Knuth says .8 is
|
||||
// good -- higher causes us to probe too much, though saves memory
|
||||
template <class V, class K, class HF, class ExK, class EqK, class A>
|
||||
const float sparse_hashtable<V,K,HF,ExK,EqK,A>::HT_OCCUPANCY_FLT = 0.8f;
|
||||
|
||||
// How empty we let the table get before we resize lower.
|
||||
// It should be less than OCCUPANCY_FLT / 2 or we thrash resizing
|
||||
template <class V, class K, class HF, class ExK, class EqK, class A>
|
||||
const float sparse_hashtable<V,K,HF,ExK,EqK,A>::HT_EMPTY_FLT = 0.4f *
|
||||
sparse_hashtable<V,K,HF,ExK,EqK,A>::HT_OCCUPANCY_FLT;
|
||||
|
||||
_END_GOOGLE_NAMESPACE_
|
||||
|
||||
#endif /* _SPARSEHASHTABLE_H_ */
|
||||
1451
3rdparty/google/sparsetable
vendored
1451
3rdparty/google/sparsetable
vendored
File diff suppressed because it is too large
Load Diff
250
3rdparty/google/type_traits.h
vendored
250
3rdparty/google/type_traits.h
vendored
@@ -1,250 +0,0 @@
|
||||
// Copyright (c) 2006, Google Inc.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are
|
||||
// met:
|
||||
//
|
||||
// * Redistributions of source code must retain the above copyright
|
||||
// notice, this list of conditions and the following disclaimer.
|
||||
// * Redistributions in binary form must reproduce the above
|
||||
// copyright notice, this list of conditions and the following disclaimer
|
||||
// in the documentation and/or other materials provided with the
|
||||
// distribution.
|
||||
// * Neither the name of Google Inc. nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from
|
||||
// this software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
// ----
|
||||
// Author: Matt Austern
|
||||
//
|
||||
// Define a small subset of tr1 type traits. The traits we define are:
|
||||
// is_integral
|
||||
// is_floating_point
|
||||
// is_pointer
|
||||
// is_reference
|
||||
// is_pod
|
||||
// has_trivial_constructor
|
||||
// has_trivial_copy
|
||||
// has_trivial_assign
|
||||
// has_trivial_destructor
|
||||
// remove_const
|
||||
// remove_volatile
|
||||
// remove_cv
|
||||
// remove_reference
|
||||
// remove_pointer
|
||||
// is_convertible
|
||||
// We can add more type traits as required.
|
||||
|
||||
#ifndef BASE_TYPE_TRAITS_H_
|
||||
#define BASE_TYPE_TRAITS_H_
|
||||
|
||||
#include <google/sparsehash/sparseconfig.h>
|
||||
#include <utility> // For pair
|
||||
|
||||
_START_GOOGLE_NAMESPACE_
|
||||
|
||||
// integral_constant, defined in tr1, is a wrapper for an integer
|
||||
// value. We don't really need this generality; we could get away
|
||||
// with hardcoding the integer type to bool. We use the fully
|
||||
// general integer_constant for compatibility with tr1.
|
||||
|
||||
template<class T, T v>
|
||||
struct integral_constant {
|
||||
static const T value = v;
|
||||
typedef T value_type;
|
||||
typedef integral_constant<T, v> type;
|
||||
};
|
||||
|
||||
template <class T, T v> const T integral_constant<T, v>::value;
|
||||
|
||||
// Abbreviations: true_type and false_type are structs that represent
|
||||
// boolean true and false values.
|
||||
typedef integral_constant<bool, true> true_type;
|
||||
typedef integral_constant<bool, false> false_type;
|
||||
|
||||
// Types small_ and big_ are guaranteed such that sizeof(small_) <
|
||||
// sizeof(big_)
|
||||
typedef char small_;
|
||||
|
||||
struct big_ {
|
||||
char dummy[2];
|
||||
};
|
||||
|
||||
// is_integral is false except for the built-in integer types.
|
||||
template <class T> struct is_integral : false_type { };
|
||||
template<> struct is_integral<bool> : true_type { };
|
||||
template<> struct is_integral<char> : true_type { };
|
||||
template<> struct is_integral<unsigned char> : true_type { };
|
||||
template<> struct is_integral<signed char> : true_type { };
|
||||
#if defined(_MSC_VER)
|
||||
// wchar_t is not by default a distinct type from unsigned short in
|
||||
// Microsoft C.
|
||||
// See http://msdn2.microsoft.com/en-us/library/dh8che7s(VS.80).aspx
|
||||
template<> struct is_integral<__wchar_t> : true_type { };
|
||||
#else
|
||||
template<> struct is_integral<wchar_t> : true_type { };
|
||||
#endif
|
||||
template<> struct is_integral<short> : true_type { };
|
||||
template<> struct is_integral<unsigned short> : true_type { };
|
||||
template<> struct is_integral<int> : true_type { };
|
||||
template<> struct is_integral<unsigned int> : true_type { };
|
||||
template<> struct is_integral<long> : true_type { };
|
||||
template<> struct is_integral<unsigned long> : true_type { };
|
||||
#ifdef HAVE_LONG_LONG
|
||||
template<> struct is_integral<long long> : true_type { };
|
||||
template<> struct is_integral<unsigned long long> : true_type { };
|
||||
#endif
|
||||
|
||||
|
||||
// is_floating_point is false except for the built-in floating-point types.
|
||||
template <class T> struct is_floating_point : false_type { };
|
||||
template<> struct is_floating_point<float> : true_type { };
|
||||
template<> struct is_floating_point<double> : true_type { };
|
||||
template<> struct is_floating_point<long double> : true_type { };
|
||||
|
||||
|
||||
// is_pointer is false except for pointer types.
|
||||
template <class T> struct is_pointer : false_type { };
|
||||
template <class T> struct is_pointer<T*> : true_type { };
|
||||
|
||||
|
||||
// is_reference is false except for reference types.
|
||||
template<typename T> struct is_reference : false_type {};
|
||||
template<typename T> struct is_reference<T&> : true_type {};
|
||||
|
||||
|
||||
// We can't get is_pod right without compiler help, so fail conservatively.
|
||||
// We will assume it's false except for arithmetic types and pointers,
|
||||
// and const versions thereof. Note that std::pair is not a POD.
|
||||
template <class T> struct is_pod
|
||||
: integral_constant<bool, (is_integral<T>::value ||
|
||||
is_floating_point<T>::value ||
|
||||
is_pointer<T>::value)> { };
|
||||
template <class T> struct is_pod<const T> : is_pod<T> { };
|
||||
|
||||
|
||||
// We can't get has_trivial_constructor right without compiler help, so
|
||||
// fail conservatively. We will assume it's false except for: (1) types
|
||||
// for which is_pod is true. (2) std::pair of types with trivial
|
||||
// constructors. (3) array of a type with a trivial constructor.
|
||||
// (4) const versions thereof.
|
||||
template <class T> struct has_trivial_constructor : is_pod<T> { };
|
||||
template <class T, class U> struct has_trivial_constructor<std::pair<T, U> >
|
||||
: integral_constant<bool,
|
||||
(has_trivial_constructor<T>::value &&
|
||||
has_trivial_constructor<U>::value)> { };
|
||||
template <class A, int N> struct has_trivial_constructor<A[N]>
|
||||
: has_trivial_constructor<A> { };
|
||||
template <class T> struct has_trivial_constructor<const T>
|
||||
: has_trivial_constructor<T> { };
|
||||
|
||||
// We can't get has_trivial_copy right without compiler help, so fail
|
||||
// conservatively. We will assume it's false except for: (1) types
|
||||
// for which is_pod is true. (2) std::pair of types with trivial copy
|
||||
// constructors. (3) array of a type with a trivial copy constructor.
|
||||
// (4) const versions thereof.
|
||||
template <class T> struct has_trivial_copy : is_pod<T> { };
|
||||
template <class T, class U> struct has_trivial_copy<std::pair<T, U> >
|
||||
: integral_constant<bool,
|
||||
(has_trivial_copy<T>::value &&
|
||||
has_trivial_copy<U>::value)> { };
|
||||
template <class A, int N> struct has_trivial_copy<A[N]>
|
||||
: has_trivial_copy<A> { };
|
||||
template <class T> struct has_trivial_copy<const T> : has_trivial_copy<T> { };
|
||||
|
||||
// We can't get has_trivial_assign right without compiler help, so fail
|
||||
// conservatively. We will assume it's false except for: (1) types
|
||||
// for which is_pod is true. (2) std::pair of types with trivial copy
|
||||
// constructors. (3) array of a type with a trivial assign constructor.
|
||||
template <class T> struct has_trivial_assign : is_pod<T> { };
|
||||
template <class T, class U> struct has_trivial_assign<std::pair<T, U> >
|
||||
: integral_constant<bool,
|
||||
(has_trivial_assign<T>::value &&
|
||||
has_trivial_assign<U>::value)> { };
|
||||
template <class A, int N> struct has_trivial_assign<A[N]>
|
||||
: has_trivial_assign<A> { };
|
||||
|
||||
// We can't get has_trivial_destructor right without compiler help, so
|
||||
// fail conservatively. We will assume it's false except for: (1) types
|
||||
// for which is_pod is true. (2) std::pair of types with trivial
|
||||
// destructors. (3) array of a type with a trivial destructor.
|
||||
// (4) const versions thereof.
|
||||
template <class T> struct has_trivial_destructor : is_pod<T> { };
|
||||
template <class T, class U> struct has_trivial_destructor<std::pair<T, U> >
|
||||
: integral_constant<bool,
|
||||
(has_trivial_destructor<T>::value &&
|
||||
has_trivial_destructor<U>::value)> { };
|
||||
template <class A, int N> struct has_trivial_destructor<A[N]>
|
||||
: has_trivial_destructor<A> { };
|
||||
template <class T> struct has_trivial_destructor<const T>
|
||||
: has_trivial_destructor<T> { };
|
||||
|
||||
// Specified by TR1 [4.7.1]
|
||||
template<typename T> struct remove_const { typedef T type; };
|
||||
template<typename T> struct remove_const<T const> { typedef T type; };
|
||||
template<typename T> struct remove_volatile { typedef T type; };
|
||||
template<typename T> struct remove_volatile<T volatile> { typedef T type; };
|
||||
template<typename T> struct remove_cv {
|
||||
typedef typename remove_const<typename remove_volatile<T>::type>::type type;
|
||||
};
|
||||
|
||||
|
||||
// Specified by TR1 [4.7.2]
|
||||
template<typename T> struct remove_reference { typedef T type; };
|
||||
template<typename T> struct remove_reference<T&> { typedef T type; };
|
||||
|
||||
// Specified by TR1 [4.7.4] Pointer modifications.
|
||||
template<typename T> struct remove_pointer { typedef T type; };
|
||||
template<typename T> struct remove_pointer<T*> { typedef T type; };
|
||||
template<typename T> struct remove_pointer<T* const> { typedef T type; };
|
||||
template<typename T> struct remove_pointer<T* volatile> { typedef T type; };
|
||||
template<typename T> struct remove_pointer<T* const volatile> {
|
||||
typedef T type; };
|
||||
|
||||
// Specified by TR1 [4.6] Relationships between types
|
||||
#ifndef _MSC_VER
|
||||
namespace internal {
|
||||
|
||||
// This class is an implementation detail for is_convertible, and you
|
||||
// don't need to know how it works to use is_convertible. For those
|
||||
// who care: we declare two different functions, one whose argument is
|
||||
// of type To and one with a variadic argument list. We give them
|
||||
// return types of different size, so we can use sizeof to trick the
|
||||
// compiler into telling us which function it would have chosen if we
|
||||
// had called it with an argument of type From. See Alexandrescu's
|
||||
// _Modern C++ Design_ for more details on this sort of trick.
|
||||
|
||||
template <typename From, typename To>
|
||||
struct ConvertHelper {
|
||||
static small_ Test(To);
|
||||
static big_ Test(...);
|
||||
static From Create();
|
||||
};
|
||||
} // namespace internal
|
||||
|
||||
// Inherits from true_type if From is convertible to To, false_type otherwise.
|
||||
template <typename From, typename To>
|
||||
struct is_convertible
|
||||
: integral_constant<bool,
|
||||
sizeof(internal::ConvertHelper<From, To>::Test(
|
||||
internal::ConvertHelper<From, To>::Create()))
|
||||
== sizeof(small_)> {
|
||||
};
|
||||
#endif
|
||||
|
||||
_END_GOOGLE_NAMESPACE_
|
||||
|
||||
#endif // BASE_TYPE_TRAITS_H_
|
||||
442
3rdparty/libjpeg/libjpeg.vcproj
vendored
442
3rdparty/libjpeg/libjpeg.vcproj
vendored
@@ -1,442 +0,0 @@
|
||||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="9.00"
|
||||
Name="libjpeg7"
|
||||
ProjectGUID="{BC236261-77E8-4567-8D09-45CD02965EB6}"
|
||||
RootNamespace="libjpeg"
|
||||
Keyword="Win32Proj"
|
||||
TargetFrameworkVersion="0"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"
|
||||
/>
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
<DefaultToolFile
|
||||
FileName="masm.rules"
|
||||
/>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
ConfigurationType="4"
|
||||
InheritedPropertySheets="..\DefaultProjectRootDir.vsprops;..\3rdparty.vsprops;..\..\common\vsprops\CodeGen_Debug.vsprops;..\..\common\vsprops\IncrementalLinking.vsprops"
|
||||
CharacterSet="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="MASM"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
ConfigurationType="4"
|
||||
InheritedPropertySheets="..\DefaultProjectRootDir.vsprops;..\3rdparty.vsprops;..\..\common\vsprops\CodeGen_Release.vsprops"
|
||||
CharacterSet="1"
|
||||
WholeProgramOptimization="0"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="MASM"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
WholeProgramOptimization="false"
|
||||
UsePrecompiledHeader="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Devel|Win32"
|
||||
ConfigurationType="4"
|
||||
InheritedPropertySheets="..\DefaultProjectRootDir.vsprops;..\3rdparty.vsprops;..\..\common\vsprops\CodeGen_Devel.vsprops;..\..\common\vsprops\IncrementalLinking.vsprops"
|
||||
CharacterSet="1"
|
||||
WholeProgramOptimization="0"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="MASM"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="Source Files"
|
||||
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\jaricom.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jcapimin.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jcapistd.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jcarith.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jccoefct.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jccolor.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jcdctmgr.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jchuff.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jcinit.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jcmainct.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jcmarker.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jcmaster.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jcomapi.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jconfig.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jcparam.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jcprepct.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jcsample.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jctrans.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jdapimin.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jdapistd.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jdarith.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jdatadst.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jdatasrc.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jdcoefct.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jdcolor.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jdct.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jddctmgr.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jdhuff.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jdinput.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jdmainct.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jdmarker.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jdmaster.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jdmerge.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jdpostct.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jdsample.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jdtrans.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jerror.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jerror.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jfdctflt.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jfdctfst.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jfdctint.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jidctflt.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jidctfst.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jidctint.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jinclude.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jmemansi.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jmemmgr.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jmemsys.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jmorecfg.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jpegint.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jpeglib.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jquant1.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jquant2.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jutils.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\jversion.h"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<File
|
||||
RelativePath=".\change.log"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\filelist.txt"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\README"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\readme.pcsx2.txt"
|
||||
>
|
||||
</File>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
1383
3rdparty/opencl/CL/cl.h
vendored
Normal file
1383
3rdparty/opencl/CL/cl.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
12456
3rdparty/opencl/CL/cl.hpp
vendored
Normal file
12456
3rdparty/opencl/CL/cl.hpp
vendored
Normal file
File diff suppressed because it is too large
Load Diff
126
3rdparty/opencl/CL/cl_d3d10.h
vendored
Normal file
126
3rdparty/opencl/CL/cl_d3d10.h
vendored
Normal file
@@ -0,0 +1,126 @@
|
||||
/**********************************************************************************
|
||||
* Copyright (c) 2008-2013 The Khronos Group Inc.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and/or associated documentation files (the
|
||||
* "Materials"), to deal in the Materials without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Materials, and to
|
||||
* permit persons to whom the Materials are furnished to do so, subject to
|
||||
* the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Materials.
|
||||
*
|
||||
* THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
||||
**********************************************************************************/
|
||||
|
||||
/* $Revision: 11708 $ on $Date: 2010-06-13 23:36:24 -0700 (Sun, 13 Jun 2010) $ */
|
||||
|
||||
#ifndef __OPENCL_CL_D3D10_H
|
||||
#define __OPENCL_CL_D3D10_H
|
||||
|
||||
#include <d3d10.h>
|
||||
#include <CL/cl.h>
|
||||
#include <CL/cl_platform.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/******************************************************************************
|
||||
* cl_khr_d3d10_sharing */
|
||||
#define cl_khr_d3d10_sharing 1
|
||||
|
||||
typedef cl_uint cl_d3d10_device_source_khr;
|
||||
typedef cl_uint cl_d3d10_device_set_khr;
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
/* Error Codes */
|
||||
#define CL_INVALID_D3D10_DEVICE_KHR -1002
|
||||
#define CL_INVALID_D3D10_RESOURCE_KHR -1003
|
||||
#define CL_D3D10_RESOURCE_ALREADY_ACQUIRED_KHR -1004
|
||||
#define CL_D3D10_RESOURCE_NOT_ACQUIRED_KHR -1005
|
||||
|
||||
/* cl_d3d10_device_source_nv */
|
||||
#define CL_D3D10_DEVICE_KHR 0x4010
|
||||
#define CL_D3D10_DXGI_ADAPTER_KHR 0x4011
|
||||
|
||||
/* cl_d3d10_device_set_nv */
|
||||
#define CL_PREFERRED_DEVICES_FOR_D3D10_KHR 0x4012
|
||||
#define CL_ALL_DEVICES_FOR_D3D10_KHR 0x4013
|
||||
|
||||
/* cl_context_info */
|
||||
#define CL_CONTEXT_D3D10_DEVICE_KHR 0x4014
|
||||
#define CL_CONTEXT_D3D10_PREFER_SHARED_RESOURCES_KHR 0x402C
|
||||
|
||||
/* cl_mem_info */
|
||||
#define CL_MEM_D3D10_RESOURCE_KHR 0x4015
|
||||
|
||||
/* cl_image_info */
|
||||
#define CL_IMAGE_D3D10_SUBRESOURCE_KHR 0x4016
|
||||
|
||||
/* cl_command_type */
|
||||
#define CL_COMMAND_ACQUIRE_D3D10_OBJECTS_KHR 0x4017
|
||||
#define CL_COMMAND_RELEASE_D3D10_OBJECTS_KHR 0x4018
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clGetDeviceIDsFromD3D10KHR_fn)(
|
||||
cl_platform_id platform,
|
||||
cl_d3d10_device_source_khr d3d_device_source,
|
||||
void * d3d_object,
|
||||
cl_d3d10_device_set_khr d3d_device_set,
|
||||
cl_uint num_entries,
|
||||
cl_device_id * devices,
|
||||
cl_uint * num_devices) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D10BufferKHR_fn)(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
ID3D10Buffer * resource,
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D10Texture2DKHR_fn)(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
ID3D10Texture2D * resource,
|
||||
UINT subresource,
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D10Texture3DKHR_fn)(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
ID3D10Texture3D * resource,
|
||||
UINT subresource,
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueAcquireD3D10ObjectsKHR_fn)(
|
||||
cl_command_queue command_queue,
|
||||
cl_uint num_objects,
|
||||
const cl_mem * mem_objects,
|
||||
cl_uint num_events_in_wait_list,
|
||||
const cl_event * event_wait_list,
|
||||
cl_event * event) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueReleaseD3D10ObjectsKHR_fn)(
|
||||
cl_command_queue command_queue,
|
||||
cl_uint num_objects,
|
||||
const cl_mem * mem_objects,
|
||||
cl_uint num_events_in_wait_list,
|
||||
const cl_event * event_wait_list,
|
||||
cl_event * event) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __OPENCL_CL_D3D10_H */
|
||||
|
||||
132
3rdparty/opencl/CL/cl_d3d11.h
vendored
Normal file
132
3rdparty/opencl/CL/cl_d3d11.h
vendored
Normal file
@@ -0,0 +1,132 @@
|
||||
/**********************************************************************************
|
||||
* Copyright (c) 2008-2013 The Khronos Group Inc.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and/or associated documentation files (the
|
||||
* "Materials"), to deal in the Materials without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Materials, and to
|
||||
* permit persons to whom the Materials are furnished to do so, subject to
|
||||
* the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Materials.
|
||||
*
|
||||
* THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
||||
**********************************************************************************/
|
||||
|
||||
/* $Revision: 11708 $ on $Date: 2010-06-13 23:36:24 -0700 (Sun, 13 Jun 2010) $ */
|
||||
|
||||
#ifndef __OPENCL_CL_D3D11_H
|
||||
#define __OPENCL_CL_D3D11_H
|
||||
|
||||
#include <d3d11.h>
|
||||
#include <CL/cl.h>
|
||||
#include <CL/cl_platform.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/******************************************************************************
|
||||
* cl_khr_d3d11_sharing */
|
||||
#define cl_khr_d3d11_sharing 1
|
||||
|
||||
typedef cl_uint cl_d3d11_device_source_khr;
|
||||
typedef cl_uint cl_d3d11_device_set_khr;
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
/* Error Codes */
|
||||
#define CL_INVALID_D3D11_DEVICE_KHR -1006
|
||||
#define CL_INVALID_D3D11_RESOURCE_KHR -1007
|
||||
#define CL_D3D11_RESOURCE_ALREADY_ACQUIRED_KHR -1008
|
||||
#define CL_D3D11_RESOURCE_NOT_ACQUIRED_KHR -1009
|
||||
|
||||
/* cl_d3d11_device_source */
|
||||
#define CL_D3D11_DEVICE_KHR 0x4019
|
||||
#define CL_D3D11_DXGI_ADAPTER_KHR 0x401A
|
||||
|
||||
/* cl_d3d11_device_set */
|
||||
#define CL_PREFERRED_DEVICES_FOR_D3D11_KHR 0x401B
|
||||
#define CL_ALL_DEVICES_FOR_D3D11_KHR 0x401C
|
||||
|
||||
/* cl_context_info */
|
||||
#define CL_CONTEXT_D3D11_DEVICE_KHR 0x401D
|
||||
#define CL_CONTEXT_D3D11_PREFER_SHARED_RESOURCES_KHR 0x402D
|
||||
|
||||
/* cl_mem_info */
|
||||
#define CL_MEM_D3D11_RESOURCE_KHR 0x401E
|
||||
|
||||
/* cl_image_info */
|
||||
#define CL_IMAGE_D3D11_SUBRESOURCE_KHR 0x401F
|
||||
|
||||
/* cl_command_type */
|
||||
#define CL_COMMAND_ACQUIRE_D3D11_OBJECTS_KHR 0x4020
|
||||
#define CL_COMMAND_RELEASE_D3D11_OBJECTS_KHR 0x4021
|
||||
|
||||
// object types
|
||||
|
||||
#define CL_D3D11_OBJECT_BUFFER 0x3000
|
||||
#define CL_D3D11_OBJECT_TEXTURE2D 0x3001
|
||||
#define CL_D3D11_OBJECT_TEXTURE3D 0x3003
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clGetDeviceIDsFromD3D11KHR_fn)(
|
||||
cl_platform_id platform,
|
||||
cl_d3d11_device_source_khr d3d_device_source,
|
||||
void * d3d_object,
|
||||
cl_d3d11_device_set_khr d3d_device_set,
|
||||
cl_uint num_entries,
|
||||
cl_device_id * devices,
|
||||
cl_uint * num_devices) CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D11BufferKHR_fn)(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
ID3D11Buffer * resource,
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D11Texture2DKHR_fn)(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
ID3D11Texture2D * resource,
|
||||
UINT subresource,
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D11Texture3DKHR_fn)(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
ID3D11Texture3D * resource,
|
||||
UINT subresource,
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueAcquireD3D11ObjectsKHR_fn)(
|
||||
cl_command_queue command_queue,
|
||||
cl_uint num_objects,
|
||||
const cl_mem * mem_objects,
|
||||
cl_uint num_events_in_wait_list,
|
||||
const cl_event * event_wait_list,
|
||||
cl_event * event) CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueReleaseD3D11ObjectsKHR_fn)(
|
||||
cl_command_queue command_queue,
|
||||
cl_uint num_objects,
|
||||
const cl_mem * mem_objects,
|
||||
cl_uint num_events_in_wait_list,
|
||||
const cl_event * event_wait_list,
|
||||
cl_event * event) CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __OPENCL_CL_D3D11_H */
|
||||
|
||||
331
3rdparty/opencl/CL/cl_d3d9.h
vendored
Normal file
331
3rdparty/opencl/CL/cl_d3d9.h
vendored
Normal file
@@ -0,0 +1,331 @@
|
||||
/**********************************************************************************
|
||||
* Copyright (c) 2008-2013 The Khronos Group Inc.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and/or associated documentation files (the
|
||||
* "Materials"), to deal in the Materials without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Materials, and to
|
||||
* permit persons to whom the Materials are furnished to do so, subject to
|
||||
* the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Materials.
|
||||
*
|
||||
* THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
||||
**********************************************************************************/
|
||||
|
||||
/* $Revision: 11708 $ on $Date: 2010-06-13 23:36:24 -0700 (Sun, 13 Jun 2010) $ */
|
||||
|
||||
#ifndef __OPENCL_CL_D3D9_H
|
||||
#define __OPENCL_CL_D3D9_H
|
||||
|
||||
#include <CL/cl.h>
|
||||
#include <CL/cl_platform.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/******************************************************************************/
|
||||
/* cl_khr_dx9_media_sharing */
|
||||
#define cl_khr_dx9_media_sharing 1
|
||||
|
||||
typedef cl_uint cl_dx9_media_adapter_type_khr;
|
||||
typedef cl_uint cl_dx9_media_adapter_set_khr;
|
||||
|
||||
#if defined(_WIN32)
|
||||
#include <d3d9.h>
|
||||
typedef struct _cl_dx9_surface_info_khr
|
||||
{
|
||||
IDirect3DSurface9 *resource;
|
||||
HANDLE shared_handle;
|
||||
} cl_dx9_surface_info_khr;
|
||||
#endif
|
||||
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
/* Error Codes */
|
||||
#define CL_INVALID_DX9_MEDIA_ADAPTER_KHR -1010
|
||||
#define CL_INVALID_DX9_MEDIA_SURFACE_KHR -1011
|
||||
#define CL_DX9_MEDIA_SURFACE_ALREADY_ACQUIRED_KHR -1012
|
||||
#define CL_DX9_MEDIA_SURFACE_NOT_ACQUIRED_KHR -1013
|
||||
|
||||
/* cl_media_adapter_type_khr */
|
||||
#define CL_ADAPTER_D3D9_KHR 0x2020
|
||||
#define CL_ADAPTER_D3D9EX_KHR 0x2021
|
||||
#define CL_ADAPTER_DXVA_KHR 0x2022
|
||||
|
||||
/* cl_media_adapter_set_khr */
|
||||
#define CL_PREFERRED_DEVICES_FOR_DX9_MEDIA_ADAPTER_KHR 0x2023
|
||||
#define CL_ALL_DEVICES_FOR_DX9_MEDIA_ADAPTER_KHR 0x2024
|
||||
|
||||
/* cl_context_info */
|
||||
#define CL_CONTEXT_ADAPTER_D3D9_KHR 0x2025
|
||||
#define CL_CONTEXT_ADAPTER_D3D9EX_KHR 0x2026
|
||||
#define CL_CONTEXT_ADAPTER_DXVA_KHR 0x2027
|
||||
|
||||
/* cl_mem_info */
|
||||
#define CL_MEM_DX9_MEDIA_ADAPTER_TYPE_KHR 0x2028
|
||||
#define CL_MEM_DX9_MEDIA_SURFACE_INFO_KHR 0x2029
|
||||
|
||||
/* cl_image_info */
|
||||
#define CL_IMAGE_DX9_MEDIA_PLANE_KHR 0x202A
|
||||
|
||||
/* cl_command_type */
|
||||
#define CL_COMMAND_ACQUIRE_DX9_MEDIA_SURFACES_KHR 0x202B
|
||||
#define CL_COMMAND_RELEASE_DX9_MEDIA_SURFACES_KHR 0x202C
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clGetDeviceIDsFromDX9MediaAdapterKHR_fn)(
|
||||
cl_platform_id platform,
|
||||
cl_uint num_media_adapters,
|
||||
cl_dx9_media_adapter_type_khr * media_adapter_type,
|
||||
void * media_adapters[],
|
||||
cl_dx9_media_adapter_set_khr media_adapter_set,
|
||||
cl_uint num_entries,
|
||||
cl_device_id * devices,
|
||||
cl_uint * num_devices) CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromDX9MediaSurfaceKHR_fn)(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
cl_dx9_media_adapter_type_khr adapter_type,
|
||||
void * surface_info,
|
||||
cl_uint plane,
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueAcquireDX9MediaSurfacesKHR_fn)(
|
||||
cl_command_queue command_queue,
|
||||
cl_uint num_objects,
|
||||
const cl_mem * mem_objects,
|
||||
cl_uint num_events_in_wait_list,
|
||||
const cl_event * event_wait_list,
|
||||
cl_event * event) CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueReleaseDX9MediaSurfacesKHR_fn)(
|
||||
cl_command_queue command_queue,
|
||||
cl_uint num_objects,
|
||||
const cl_mem * mem_objects,
|
||||
cl_uint num_events_in_wait_list,
|
||||
const cl_event * event_wait_list,
|
||||
cl_event * event) CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
#if defined CL_DX9_MEDIA_SHARING_INTEL_EXT
|
||||
|
||||
#ifndef _WIN32
|
||||
#include <d3d9.h>
|
||||
#endif
|
||||
#include <d3d9.h>
|
||||
#include <dxvahd.h>
|
||||
#include <wtypes.h>
|
||||
#include <d3d9types.h>
|
||||
|
||||
/******************************************************************************/
|
||||
/* cl_intel_dx9_media_sharing extension */
|
||||
#define cl_intel_dx9_media_sharing 1
|
||||
|
||||
typedef cl_uint cl_dx9_device_source_intel;
|
||||
typedef cl_uint cl_dx9_device_set_intel;
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
// Error Codes
|
||||
#define CL_INVALID_DX9_DEVICE_INTEL -1010
|
||||
#define CL_INVALID_DX9_RESOURCE_INTEL -1011
|
||||
#define CL_DX9_RESOURCE_ALREADY_ACQUIRED_INTEL -1012
|
||||
#define CL_DX9_RESOURCE_NOT_ACQUIRED_INTEL -1013
|
||||
|
||||
// cl_dx9_device_source_intel
|
||||
#define CL_D3D9_DEVICE_INTEL 0x4022
|
||||
#define CL_D3D9EX_DEVICE_INTEL 0x4070
|
||||
#define CL_DXVA_DEVICE_INTEL 0x4071
|
||||
|
||||
// cl_dx9_device_set_intel
|
||||
#define CL_PREFERRED_DEVICES_FOR_DX9_INTEL 0x4024
|
||||
#define CL_ALL_DEVICES_FOR_DX9_INTEL 0x4025
|
||||
|
||||
// cl_context_info
|
||||
#define CL_CONTEXT_D3D9_DEVICE_INTEL 0x4026
|
||||
#define CL_CONTEXT_D3D9EX_DEVICE_INTEL 0x4072
|
||||
#define CL_CONTEXT_DXVA_DEVICE_INTEL 0x4073
|
||||
|
||||
// cl_mem_info
|
||||
#define CL_MEM_DX9_RESOURCE_INTEL 0x4027
|
||||
#define CL_MEM_DX9_SHARED_HANDLE_INTEL 0x4074
|
||||
|
||||
// cl_image_info
|
||||
#define CL_IMAGE_DX9_PLANE_INTEL 0x4075
|
||||
|
||||
// cl_command_type
|
||||
#define CL_COMMAND_ACQUIRE_DX9_OBJECTS_INTEL 0x402A
|
||||
#define CL_COMMAND_RELEASE_DX9_OBJECTS_INTEL 0x402B
|
||||
|
||||
//packed YUV channel order
|
||||
#define CL_YUYV_INTEL 0x4076
|
||||
#define CL_UYVY_INTEL 0x4077
|
||||
#define CL_YVYU_INTEL 0x4078
|
||||
#define CL_VYUY_INTEL 0x4079
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL* clGetDeviceIDsFromDX9INTEL_fn)(
|
||||
cl_platform_id /*platform*/,
|
||||
cl_dx9_device_source_intel /*dx9_device_source*/,
|
||||
void* /*dx9_object*/,
|
||||
cl_dx9_device_set_intel /*dx9_device_set*/,
|
||||
cl_uint /*num_entries*/,
|
||||
cl_device_id* /*devices*/,
|
||||
cl_uint* /*num_devices*/);
|
||||
|
||||
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromDX9MediaSurfaceINTEL_fn)(
|
||||
cl_context /*context*/,
|
||||
cl_mem_flags /*flags*/,
|
||||
IDirect3DSurface9 * /*resource*/,
|
||||
HANDLE /*sharedHandle*/,
|
||||
UINT /*plane*/,
|
||||
cl_int * /*errcode_ret*/);
|
||||
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueAcquireDX9ObjectsINTEL_fn)(
|
||||
cl_command_queue /*command_queue*/,
|
||||
cl_uint /*num_objects*/,
|
||||
const cl_mem * /*mem_objects*/,
|
||||
cl_uint /*num_events_in_wait_list*/,
|
||||
const cl_event * /*event_wait_list*/,
|
||||
cl_event * /*event*/);
|
||||
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueReleaseDX9ObjectsINTEL_fn)(
|
||||
cl_command_queue /*command_queue*/,
|
||||
cl_uint /*num_objects*/,
|
||||
cl_mem * /*mem_objects*/,
|
||||
cl_uint /*num_events_in_wait_list*/,
|
||||
const cl_event * /*event_wait_list*/,
|
||||
cl_event * /*event*/);
|
||||
|
||||
#endif // CL_DX9_MEDIA_SHARING_INTEL_EXT
|
||||
|
||||
#if defined CL_DX9_MEDIA_SHARING_NV_EXT
|
||||
|
||||
#ifndef _WIN32
|
||||
#include <d3d9.h>
|
||||
#endif
|
||||
|
||||
/******************************************************************************
|
||||
* cl_nv_d3d9_sharing */
|
||||
|
||||
typedef cl_uint cl_d3d9_device_source_nv;
|
||||
typedef cl_uint cl_d3d9_device_set_nv;
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
// Error Codes
|
||||
#define CL_INVALID_D3D9_DEVICE_NV -1010
|
||||
#define CL_INVALID_D3D9_RESOURCE_NV -1011
|
||||
#define CL_D3D9_RESOURCE_ALREADY_ACQUIRED_NV -1012
|
||||
#define CL_D3D9_RESOURCE_NOT_ACQUIRED_NV -1013
|
||||
|
||||
// cl_d3d9_device_source_nv
|
||||
#define CL_D3D9_DEVICE_NV 0x4022
|
||||
#define CL_D3D9_ADAPTER_NAME_NV 0x4023
|
||||
|
||||
// cl_d3d9_device_set_nv
|
||||
#define CL_PREFERRED_DEVICES_FOR_D3D9_NV 0x4024
|
||||
#define CL_ALL_DEVICES_FOR_D3D9_NV 0x4025
|
||||
|
||||
// cl_context_info
|
||||
#define CL_CONTEXT_D3D9_DEVICE_NV 0x4026
|
||||
|
||||
// cl_mem_info
|
||||
#define CL_MEM_D3D9_RESOURCE_NV 0x4027
|
||||
|
||||
// cl_image_info
|
||||
#define CL_IMAGE_D3D9_FACE_NV 0x4028
|
||||
#define CL_IMAGE_D3D9_LEVEL_NV 0x4029
|
||||
|
||||
// cl_command_type
|
||||
#define CL_COMMAND_ACQUIRE_D3D9_OBJECTS_NV 0x402A
|
||||
#define CL_COMMAND_RELEASE_D3D9_OBJECTS_NV 0x402B
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clGetDeviceIDsFromD3D9NV_fn)(
|
||||
cl_platform_id platform,
|
||||
cl_d3d9_device_source_nv d3d_device_source,
|
||||
void * d3d_object,
|
||||
cl_d3d9_device_set_nv d3d_device_set,
|
||||
cl_uint num_entries,
|
||||
cl_device_id * devices,
|
||||
cl_uint * num_devices) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D9VertexBufferNV_fn)(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
IDirect3DVertexBuffer9 * resource,
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D9IndexBufferNV_fn)(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
IDirect3DIndexBuffer9 * resource,
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D9SurfaceNV_fn)(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
IDirect3DSurface9 * resource,
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D9TextureNV_fn)(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
IDirect3DTexture9 *resource,
|
||||
UINT miplevel,
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D9CubeTextureNV_fn)(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
IDirect3DCubeTexture9 * resource,
|
||||
D3DCUBEMAP_FACES facetype,
|
||||
UINT miplevel,
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D9VolumeTextureNV_fn)(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
IDirect3DVolumeTexture9 * resource,
|
||||
UINT miplevel,
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueAcquireD3D9ObjectsNV_fn)(
|
||||
cl_command_queue command_queue,
|
||||
cl_uint num_objects,
|
||||
const cl_mem *mem_objects,
|
||||
cl_uint num_events_in_wait_list,
|
||||
const cl_event *event_wait_list,
|
||||
cl_event *event) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueReleaseD3D9ObjectsNV_fn)(
|
||||
cl_command_queue command_queue,
|
||||
cl_uint num_objects,
|
||||
cl_mem *mem_objects,
|
||||
cl_uint num_events_in_wait_list,
|
||||
const cl_event *event_wait_list,
|
||||
cl_event *event) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
#endif // CL_DX9_MEDIA_SHARING_NV_EXT
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __OPENCL_CL_DX9_MEDIA_SHARING_H */
|
||||
|
||||
133
3rdparty/opencl/CL/cl_egl.h
vendored
Normal file
133
3rdparty/opencl/CL/cl_egl.h
vendored
Normal file
@@ -0,0 +1,133 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2008-2010 The Khronos Group Inc.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and/or associated documentation files (the
|
||||
* "Materials"), to deal in the Materials without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Materials, and to
|
||||
* permit persons to whom the Materials are furnished to do so, subject to
|
||||
* the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Materials.
|
||||
*
|
||||
* THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
||||
******************************************************************************/
|
||||
|
||||
#ifndef __OPENCL_CL_EGL_H
|
||||
#define __OPENCL_CL_EGL_H
|
||||
|
||||
#ifdef __APPLE__
|
||||
|
||||
#else
|
||||
#include <CL/cl.h>
|
||||
#include <EGL/egl.h>
|
||||
#include <EGL/eglext.h>
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
/* Command type for events created with clEnqueueAcquireEGLObjectsKHR */
|
||||
#define CL_COMMAND_EGL_FENCE_SYNC_OBJECT_KHR 0x202F
|
||||
#define CL_COMMAND_ACQUIRE_EGL_OBJECTS_KHR 0x202D
|
||||
#define CL_COMMAND_RELEASE_EGL_OBJECTS_KHR 0x202E
|
||||
|
||||
/* Error type for clCreateFromEGLImageKHR */
|
||||
#define CL_INVALID_EGL_OBJECT_KHR -1093
|
||||
#define CL_EGL_RESOURCE_NOT_ACQUIRED_KHR -1092
|
||||
|
||||
/* CLeglImageKHR is an opaque handle to an EGLImage */
|
||||
typedef void* CLeglImageKHR;
|
||||
|
||||
/* CLeglDisplayKHR is an opaque handle to an EGLDisplay */
|
||||
typedef void* CLeglDisplayKHR;
|
||||
|
||||
/* CLeglSyncKHR is an opaque handle to an EGLSync object */
|
||||
typedef void* CLeglSyncKHR;
|
||||
|
||||
/* properties passed to clCreateFromEGLImageKHR */
|
||||
typedef intptr_t cl_egl_image_properties_khr;
|
||||
|
||||
|
||||
#define cl_khr_egl_image 1
|
||||
|
||||
extern CL_API_ENTRY cl_mem CL_API_CALL
|
||||
clCreateFromEGLImageKHR(cl_context /* context */,
|
||||
CLeglDisplayKHR /* egldisplay */,
|
||||
CLeglImageKHR /* eglimage */,
|
||||
cl_mem_flags /* flags */,
|
||||
const cl_egl_image_properties_khr * /* properties */,
|
||||
cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromEGLImageKHR_fn)(
|
||||
cl_context context,
|
||||
CLeglDisplayKHR egldisplay,
|
||||
CLeglImageKHR eglimage,
|
||||
cl_mem_flags flags,
|
||||
const cl_egl_image_properties_khr * properties,
|
||||
cl_int * errcode_ret);
|
||||
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clEnqueueAcquireEGLObjectsKHR(cl_command_queue /* command_queue */,
|
||||
cl_uint /* num_objects */,
|
||||
const cl_mem * /* mem_objects */,
|
||||
cl_uint /* num_events_in_wait_list */,
|
||||
const cl_event * /* event_wait_list */,
|
||||
cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueAcquireEGLObjectsKHR_fn)(
|
||||
cl_command_queue command_queue,
|
||||
cl_uint num_objects,
|
||||
const cl_mem * mem_objects,
|
||||
cl_uint num_events_in_wait_list,
|
||||
const cl_event * event_wait_list,
|
||||
cl_event * event);
|
||||
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clEnqueueReleaseEGLObjectsKHR(cl_command_queue /* command_queue */,
|
||||
cl_uint /* num_objects */,
|
||||
const cl_mem * /* mem_objects */,
|
||||
cl_uint /* num_events_in_wait_list */,
|
||||
const cl_event * /* event_wait_list */,
|
||||
cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueReleaseEGLObjectsKHR_fn)(
|
||||
cl_command_queue command_queue,
|
||||
cl_uint num_objects,
|
||||
const cl_mem * mem_objects,
|
||||
cl_uint num_events_in_wait_list,
|
||||
const cl_event * event_wait_list,
|
||||
cl_event * event);
|
||||
|
||||
|
||||
#define cl_khr_egl_event 1
|
||||
|
||||
extern CL_API_ENTRY cl_event CL_API_CALL
|
||||
clCreateEventFromEGLSyncKHR(cl_context /* context */,
|
||||
CLeglSyncKHR /* sync */,
|
||||
CLeglDisplayKHR /* display */,
|
||||
cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
typedef CL_API_ENTRY cl_event (CL_API_CALL *clCreateEventFromEGLSyncKHR_fn)(
|
||||
cl_context context,
|
||||
CLeglSyncKHR sync,
|
||||
CLeglDisplayKHR display,
|
||||
cl_int * errcode_ret);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __OPENCL_CL_EGL_H */
|
||||
458
3rdparty/opencl/CL/cl_ext.h
vendored
Normal file
458
3rdparty/opencl/CL/cl_ext.h
vendored
Normal file
@@ -0,0 +1,458 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2008-2013 The Khronos Group Inc.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and/or associated documentation files (the
|
||||
* "Materials"), to deal in the Materials without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Materials, and to
|
||||
* permit persons to whom the Materials are furnished to do so, subject to
|
||||
* the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Materials.
|
||||
*
|
||||
* THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
||||
******************************************************************************/
|
||||
|
||||
/* $Revision: 11928 $ on $Date: 2010-07-13 09:04:56 -0700 (Tue, 13 Jul 2010) $ */
|
||||
|
||||
/* cl_ext.h contains OpenCL extensions which don't have external */
|
||||
/* (OpenGL, D3D) dependencies. */
|
||||
|
||||
#ifndef __CL_EXT_H
|
||||
#define __CL_EXT_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#ifdef __APPLE__
|
||||
#include <OpenCL/cl.h>
|
||||
#include <AvailabilityMacros.h>
|
||||
#else
|
||||
#include <CL/cl.h>
|
||||
#endif
|
||||
|
||||
/* cl_khr_fp16 extension - no extension #define since it has no functions */
|
||||
#define CL_DEVICE_HALF_FP_CONFIG 0x1033
|
||||
|
||||
/* Memory object destruction
|
||||
*
|
||||
* Apple extension for use to manage externally allocated buffers used with cl_mem objects with CL_MEM_USE_HOST_PTR
|
||||
*
|
||||
* Registers a user callback function that will be called when the memory object is deleted and its resources
|
||||
* freed. Each call to clSetMemObjectCallbackFn registers the specified user callback function on a callback
|
||||
* stack associated with memobj. The registered user callback functions are called in the reverse order in
|
||||
* which they were registered. The user callback functions are called and then the memory object is deleted
|
||||
* and its resources freed. This provides a mechanism for the application (and libraries) using memobj to be
|
||||
* notified when the memory referenced by host_ptr, specified when the memory object is created and used as
|
||||
* the storage bits for the memory object, can be reused or freed.
|
||||
*
|
||||
* The application may not call CL api's with the cl_mem object passed to the pfn_notify.
|
||||
*
|
||||
* Please check for the "cl_APPLE_SetMemObjectDestructor" extension using clGetDeviceInfo(CL_DEVICE_EXTENSIONS)
|
||||
* before using.
|
||||
*/
|
||||
#define cl_APPLE_SetMemObjectDestructor 1
|
||||
cl_int CL_API_ENTRY clSetMemObjectDestructorAPPLE( cl_mem /* memobj */,
|
||||
void (* /*pfn_notify*/)( cl_mem /* memobj */, void* /*user_data*/),
|
||||
void * /*user_data */ ) CL_EXT_SUFFIX__VERSION_1_0;
|
||||
|
||||
|
||||
/* Context Logging Functions
|
||||
*
|
||||
* The next three convenience functions are intended to be used as the pfn_notify parameter to clCreateContext().
|
||||
* Please check for the "cl_APPLE_ContextLoggingFunctions" extension using clGetDeviceInfo(CL_DEVICE_EXTENSIONS)
|
||||
* before using.
|
||||
*
|
||||
* clLogMessagesToSystemLog fowards on all log messages to the Apple System Logger
|
||||
*/
|
||||
#define cl_APPLE_ContextLoggingFunctions 1
|
||||
extern void CL_API_ENTRY clLogMessagesToSystemLogAPPLE( const char * /* errstr */,
|
||||
const void * /* private_info */,
|
||||
size_t /* cb */,
|
||||
void * /* user_data */ ) CL_EXT_SUFFIX__VERSION_1_0;
|
||||
|
||||
/* clLogMessagesToStdout sends all log messages to the file descriptor stdout */
|
||||
extern void CL_API_ENTRY clLogMessagesToStdoutAPPLE( const char * /* errstr */,
|
||||
const void * /* private_info */,
|
||||
size_t /* cb */,
|
||||
void * /* user_data */ ) CL_EXT_SUFFIX__VERSION_1_0;
|
||||
|
||||
/* clLogMessagesToStderr sends all log messages to the file descriptor stderr */
|
||||
extern void CL_API_ENTRY clLogMessagesToStderrAPPLE( const char * /* errstr */,
|
||||
const void * /* private_info */,
|
||||
size_t /* cb */,
|
||||
void * /* user_data */ ) CL_EXT_SUFFIX__VERSION_1_0;
|
||||
|
||||
|
||||
/************************
|
||||
* cl_khr_icd extension *
|
||||
************************/
|
||||
#define cl_khr_icd 1
|
||||
|
||||
/* cl_platform_info */
|
||||
#define CL_PLATFORM_ICD_SUFFIX_KHR 0x0920
|
||||
|
||||
/* Additional Error Codes */
|
||||
#define CL_PLATFORM_NOT_FOUND_KHR -1001
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clIcdGetPlatformIDsKHR(cl_uint /* num_entries */,
|
||||
cl_platform_id * /* platforms */,
|
||||
cl_uint * /* num_platforms */);
|
||||
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clIcdGetPlatformIDsKHR_fn)(
|
||||
cl_uint /* num_entries */,
|
||||
cl_platform_id * /* platforms */,
|
||||
cl_uint * /* num_platforms */);
|
||||
|
||||
|
||||
/* Extension: cl_khr_image2D_buffer
|
||||
*
|
||||
* This extension allows a 2D image to be created from a cl_mem buffer without a copy.
|
||||
* The type associated with a 2D image created from a buffer in an OpenCL program is image2d_t.
|
||||
* Both the sampler and sampler-less read_image built-in functions are supported for 2D images
|
||||
* and 2D images created from a buffer. Similarly, the write_image built-ins are also supported
|
||||
* for 2D images created from a buffer.
|
||||
*
|
||||
* When the 2D image from buffer is created, the client must specify the width,
|
||||
* height, image format (i.e. channel order and channel data type) and optionally the row pitch
|
||||
*
|
||||
* The pitch specified must be a multiple of CL_DEVICE_IMAGE_PITCH_ALIGNMENT pixels.
|
||||
* The base address of the buffer must be aligned to CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT pixels.
|
||||
*/
|
||||
|
||||
/*************************************
|
||||
* cl_khr_initalize_memory extension *
|
||||
*************************************/
|
||||
|
||||
#define CL_CONTEXT_MEMORY_INITIALIZE_KHR 0x2030
|
||||
|
||||
|
||||
/**************************************
|
||||
* cl_khr_terminate_context extension *
|
||||
**************************************/
|
||||
|
||||
#define CL_DEVICE_TERMINATE_CAPABILITY_KHR 0x2031
|
||||
#define CL_CONTEXT_TERMINATE_KHR 0x2032
|
||||
|
||||
#define cl_khr_terminate_context 1
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL clTerminateContextKHR(cl_context /* context */) CL_EXT_SUFFIX__VERSION_1_2;
|
||||
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clTerminateContextKHR_fn)(cl_context /* context */) CL_EXT_SUFFIX__VERSION_1_2;
|
||||
|
||||
|
||||
/*
|
||||
* Extension: cl_khr_spir
|
||||
*
|
||||
* This extension adds support to create an OpenCL program object from a
|
||||
* Standard Portable Intermediate Representation (SPIR) instance
|
||||
*/
|
||||
|
||||
#define CL_DEVICE_SPIR_VERSIONS 0x40E0
|
||||
#define CL_PROGRAM_BINARY_TYPE_INTERMEDIATE 0x40E1
|
||||
|
||||
|
||||
/******************************************
|
||||
* cl_nv_device_attribute_query extension *
|
||||
******************************************/
|
||||
/* cl_nv_device_attribute_query extension - no extension #define since it has no functions */
|
||||
#define CL_DEVICE_COMPUTE_CAPABILITY_MAJOR_NV 0x4000
|
||||
#define CL_DEVICE_COMPUTE_CAPABILITY_MINOR_NV 0x4001
|
||||
#define CL_DEVICE_REGISTERS_PER_BLOCK_NV 0x4002
|
||||
#define CL_DEVICE_WARP_SIZE_NV 0x4003
|
||||
#define CL_DEVICE_GPU_OVERLAP_NV 0x4004
|
||||
#define CL_DEVICE_KERNEL_EXEC_TIMEOUT_NV 0x4005
|
||||
#define CL_DEVICE_INTEGRATED_MEMORY_NV 0x4006
|
||||
|
||||
/*********************************
|
||||
* cl_amd_device_attribute_query *
|
||||
*********************************/
|
||||
#define CL_DEVICE_PROFILING_TIMER_OFFSET_AMD 0x4036
|
||||
|
||||
/*********************************
|
||||
* cl_arm_printf extension
|
||||
*********************************/
|
||||
#define CL_PRINTF_CALLBACK_ARM 0x40B0
|
||||
#define CL_PRINTF_BUFFERSIZE_ARM 0x40B1
|
||||
|
||||
/*********************************
|
||||
* cl_intel_accelerator extension *
|
||||
*********************************/
|
||||
#define cl_intel_accelerator 1
|
||||
#define cl_intel_motion_estimation 1
|
||||
|
||||
typedef struct _cl_accelerator_intel* cl_accelerator_intel;
|
||||
typedef cl_uint cl_accelerator_type_intel;
|
||||
typedef cl_uint cl_accelerator_info_intel;
|
||||
|
||||
typedef struct _cl_motion_estimation_desc_intel {
|
||||
cl_uint mb_block_type;
|
||||
cl_uint subpixel_mode;
|
||||
cl_uint sad_adjust_mode;
|
||||
cl_uint search_path_type;
|
||||
} cl_motion_estimation_desc_intel;
|
||||
|
||||
/* Error Codes */
|
||||
#define CL_INVALID_ACCELERATOR_INTEL -1094
|
||||
#define CL_INVALID_ACCELERATOR_TYPE_INTEL -1095
|
||||
#define CL_INVALID_ACCELERATOR_DESCRIPTOR_INTEL -1096
|
||||
#define CL_ACCELERATOR_TYPE_NOT_SUPPORTED_INTEL -1097
|
||||
|
||||
/* Deprecated Error Codes */
|
||||
#define CL_INVALID_ACCELERATOR_INTEL_DEPRECATED -6000
|
||||
#define CL_INVALID_ACCELERATOR_TYPE_INTEL_DEPRECATED -6001
|
||||
#define CL_INVALID_ACCELERATOR_DESCRIPTOR_INTEL_DEPRECATED -6002
|
||||
#define CL_ACCELERATOR_TYPE_NOT_SUPPORTED_INTEL_DEPRECATED -6003
|
||||
|
||||
/* cl_accelerator_type_intel */
|
||||
#define CL_ACCELERATOR_TYPE_MOTION_ESTIMATION_INTEL 0x0
|
||||
|
||||
/* cl_accelerator_info_intel */
|
||||
#define CL_ACCELERATOR_DESCRIPTOR_INTEL 0x4090
|
||||
#define CL_ACCELERATOR_REFERENCE_COUNT_INTEL 0x4091
|
||||
#define CL_ACCELERATOR_CONTEXT_INTEL 0x4092
|
||||
#define CL_ACCELERATOR_TYPE_INTEL 0x4093
|
||||
|
||||
/*cl_motion_detect_desc_intel flags */
|
||||
#define CL_ME_MB_TYPE_16x16_INTEL 0x0
|
||||
#define CL_ME_MB_TYPE_8x8_INTEL 0x1
|
||||
#define CL_ME_MB_TYPE_4x4_INTEL 0x2
|
||||
|
||||
#define CL_ME_SUBPIXEL_MODE_INTEGER_INTEL 0x0
|
||||
#define CL_ME_SUBPIXEL_MODE_HPEL_INTEL 0x1
|
||||
#define CL_ME_SUBPIXEL_MODE_QPEL_INTEL 0x2
|
||||
|
||||
#define CL_ME_SAD_ADJUST_MODE_NONE_INTEL 0x0
|
||||
#define CL_ME_SAD_ADJUST_MODE_HAAR_INTEL 0x1
|
||||
|
||||
#define CL_ME_SEARCH_PATH_RADIUS_2_2_INTEL 0x0
|
||||
#define CL_ME_SEARCH_PATH_RADIUS_4_4_INTEL 0x1
|
||||
#define CL_ME_SEARCH_PATH_RADIUS_16_12_INTEL 0x5
|
||||
|
||||
extern CL_API_ENTRY cl_accelerator_intel CL_API_CALL
|
||||
clCreateAcceleratorINTEL(
|
||||
cl_context /* context */,
|
||||
cl_accelerator_type_intel /* accelerator_type */,
|
||||
size_t /* descriptor_size */,
|
||||
const void* /* descriptor */,
|
||||
cl_int* /* errcode_ret */ ) CL_EXT_SUFFIX__VERSION_1_2;
|
||||
|
||||
typedef CL_API_ENTRY cl_accelerator_intel
|
||||
(CL_API_CALL *clCreateAcceleratorINTEL_fn)(
|
||||
cl_context /* context */,
|
||||
cl_accelerator_type_intel /* accelerator_type */,
|
||||
size_t /* descriptor_size */,
|
||||
const void* /* descriptor */,
|
||||
cl_int* /* errcode_ret */ ) CL_EXT_SUFFIX__VERSION_1_2;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clGetAcceleratorInfoINTEL
|
||||
(
|
||||
cl_accelerator_intel /* accelerator */,
|
||||
cl_accelerator_info_intel /* param_name */,
|
||||
size_t /* param_value_size */,
|
||||
void* /* param_value */,
|
||||
size_t* /* param_value_size_ret */ ) CL_EXT_SUFFIX__VERSION_1_2;
|
||||
|
||||
typedef CL_API_ENTRY cl_int
|
||||
(CL_API_CALL *clGetAcceleratorInfoINTEL_fn)(
|
||||
cl_accelerator_intel /* accelerator */,
|
||||
cl_accelerator_info_intel /* param_name */,
|
||||
size_t /* param_value_size */,
|
||||
void* /* param_value */,
|
||||
size_t* /* param_value_size_ret */ ) CL_EXT_SUFFIX__VERSION_1_2;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clRetainAcceleratorINTEL(
|
||||
cl_accelerator_intel /* accelerator */ ) CL_EXT_SUFFIX__VERSION_1_2;
|
||||
|
||||
typedef CL_API_ENTRY cl_int
|
||||
(CL_API_CALL *clRetainAcceleratorINTEL_fn)(
|
||||
cl_accelerator_intel /* accelerator */ ) CL_EXT_SUFFIX__VERSION_1_2;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clReleaseAcceleratorINTEL(
|
||||
cl_accelerator_intel /* accelerator */ ) CL_EXT_SUFFIX__VERSION_1_2;
|
||||
|
||||
typedef CL_API_ENTRY cl_int
|
||||
(CL_API_CALL *clReleaseAcceleratorINTEL_fn)(
|
||||
cl_accelerator_intel /* accelerator */ ) CL_EXT_SUFFIX__VERSION_1_2;
|
||||
|
||||
#ifdef CL_VERSION_1_1
|
||||
/***********************************
|
||||
* cl_ext_device_fission extension *
|
||||
***********************************/
|
||||
#define cl_ext_device_fission 1
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clReleaseDeviceEXT( cl_device_id /*device*/ ) CL_EXT_SUFFIX__VERSION_1_1;
|
||||
|
||||
typedef CL_API_ENTRY cl_int
|
||||
(CL_API_CALL *clReleaseDeviceEXT_fn)( cl_device_id /*device*/ ) CL_EXT_SUFFIX__VERSION_1_1;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clRetainDeviceEXT( cl_device_id /*device*/ ) CL_EXT_SUFFIX__VERSION_1_1;
|
||||
|
||||
typedef CL_API_ENTRY cl_int
|
||||
(CL_API_CALL *clRetainDeviceEXT_fn)( cl_device_id /*device*/ ) CL_EXT_SUFFIX__VERSION_1_1;
|
||||
|
||||
typedef cl_ulong cl_device_partition_property_ext;
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clCreateSubDevicesEXT( cl_device_id /*in_device*/,
|
||||
const cl_device_partition_property_ext * /* properties */,
|
||||
cl_uint /*num_entries*/,
|
||||
cl_device_id * /*out_devices*/,
|
||||
cl_uint * /*num_devices*/ ) CL_EXT_SUFFIX__VERSION_1_1;
|
||||
|
||||
typedef CL_API_ENTRY cl_int
|
||||
( CL_API_CALL * clCreateSubDevicesEXT_fn)( cl_device_id /*in_device*/,
|
||||
const cl_device_partition_property_ext * /* properties */,
|
||||
cl_uint /*num_entries*/,
|
||||
cl_device_id * /*out_devices*/,
|
||||
cl_uint * /*num_devices*/ ) CL_EXT_SUFFIX__VERSION_1_1;
|
||||
|
||||
/* cl_device_partition_property_ext */
|
||||
#define CL_DEVICE_PARTITION_EQUALLY_EXT 0x4050
|
||||
#define CL_DEVICE_PARTITION_BY_COUNTS_EXT 0x4051
|
||||
#define CL_DEVICE_PARTITION_BY_NAMES_EXT 0x4052
|
||||
#define CL_DEVICE_PARTITION_BY_NAMES_INTEL 0x4052
|
||||
#define CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN_EXT 0x4053
|
||||
|
||||
/* clDeviceGetInfo selectors */
|
||||
#define CL_DEVICE_PARENT_DEVICE_EXT 0x4054
|
||||
#define CL_DEVICE_PARTITION_TYPES_EXT 0x4055
|
||||
#define CL_DEVICE_AFFINITY_DOMAINS_EXT 0x4056
|
||||
#define CL_DEVICE_REFERENCE_COUNT_EXT 0x4057
|
||||
#define CL_DEVICE_PARTITION_STYLE_EXT 0x4058
|
||||
|
||||
/* error codes */
|
||||
#define CL_DEVICE_PARTITION_FAILED_EXT -1057
|
||||
#define CL_INVALID_PARTITION_COUNT_EXT -1058
|
||||
#define CL_INVALID_PARTITION_NAME_EXT -1059
|
||||
|
||||
/* CL_AFFINITY_DOMAINs */
|
||||
#define CL_AFFINITY_DOMAIN_L1_CACHE_EXT 0x1
|
||||
#define CL_AFFINITY_DOMAIN_L2_CACHE_EXT 0x2
|
||||
#define CL_AFFINITY_DOMAIN_L3_CACHE_EXT 0x3
|
||||
#define CL_AFFINITY_DOMAIN_L4_CACHE_EXT 0x4
|
||||
#define CL_AFFINITY_DOMAIN_NUMA_EXT 0x10
|
||||
#define CL_AFFINITY_DOMAIN_NEXT_FISSIONABLE_EXT 0x100
|
||||
|
||||
/* cl_device_partition_property_ext list terminators */
|
||||
#define CL_PROPERTIES_LIST_END_EXT ((cl_device_partition_property_ext) 0)
|
||||
#define CL_PARTITION_BY_COUNTS_LIST_END_EXT ((cl_device_partition_property_ext) 0)
|
||||
#define CL_PARTITION_BY_NAMES_LIST_END_EXT ((cl_device_partition_property_ext) 0 - 1)
|
||||
#define CL_PARTITION_BY_NAMES_LIST_END_INTEL ((cl_device_partition_property_ext) 0 - 1)
|
||||
|
||||
#define CL_QUEUE_THREAD_LOCAL_EXEC_ENABLE_INTEL (1 << 31)
|
||||
|
||||
|
||||
/*********************************
|
||||
* cl_qcom_ext_host_ptr extension
|
||||
*********************************/
|
||||
|
||||
#define CL_MEM_EXT_HOST_PTR_QCOM (1 << 29)
|
||||
|
||||
#define CL_DEVICE_EXT_MEM_PADDING_IN_BYTES_QCOM 0x40A0
|
||||
#define CL_DEVICE_PAGE_SIZE_QCOM 0x40A1
|
||||
#define CL_IMAGE_ROW_ALIGNMENT_QCOM 0x40A2
|
||||
#define CL_IMAGE_SLICE_ALIGNMENT_QCOM 0x40A3
|
||||
#define CL_MEM_HOST_UNCACHED_QCOM 0x40A4
|
||||
#define CL_MEM_HOST_WRITEBACK_QCOM 0x40A5
|
||||
#define CL_MEM_HOST_WRITETHROUGH_QCOM 0x40A6
|
||||
#define CL_MEM_HOST_WRITE_COMBINING_QCOM 0x40A7
|
||||
|
||||
typedef cl_uint cl_image_pitch_info_qcom;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clGetDeviceImageInfoQCOM(cl_device_id device,
|
||||
size_t image_width,
|
||||
size_t image_height,
|
||||
const cl_image_format *image_format,
|
||||
cl_image_pitch_info_qcom param_name,
|
||||
size_t param_value_size,
|
||||
void *param_value,
|
||||
size_t *param_value_size_ret);
|
||||
|
||||
typedef struct _cl_mem_ext_host_ptr
|
||||
{
|
||||
/* Type of external memory allocation. */
|
||||
/* Legal values will be defined in layered extensions. */
|
||||
cl_uint allocation_type;
|
||||
|
||||
/* Host cache policy for this external memory allocation. */
|
||||
cl_uint host_cache_policy;
|
||||
|
||||
} cl_mem_ext_host_ptr;
|
||||
|
||||
/*********************************
|
||||
* cl_qcom_ion_host_ptr extension
|
||||
*********************************/
|
||||
|
||||
#define CL_MEM_ION_HOST_PTR_QCOM 0x40A8
|
||||
|
||||
typedef struct _cl_mem_ion_host_ptr
|
||||
{
|
||||
/* Type of external memory allocation. */
|
||||
/* Must be CL_MEM_ION_HOST_PTR_QCOM for ION allocations. */
|
||||
cl_mem_ext_host_ptr ext_host_ptr;
|
||||
|
||||
/* ION file descriptor */
|
||||
int ion_filedesc;
|
||||
|
||||
/* Host pointer to the ION allocated memory */
|
||||
void* ion_hostptr;
|
||||
|
||||
} cl_mem_ion_host_ptr;
|
||||
|
||||
#endif /* CL_VERSION_1_1 */
|
||||
|
||||
|
||||
#ifdef CL_VERSION_2_0
|
||||
/*********************************
|
||||
* cl_khr_sub_groups extension
|
||||
*********************************/
|
||||
#define cl_khr_sub_groups 1
|
||||
|
||||
typedef cl_uint cl_kernel_sub_group_info;
|
||||
|
||||
/* cl_khr_sub_group_info */
|
||||
#define CL_KERNEL_MAX_SUB_GROUP_SIZE_FOR_NDRANGE_KHR 0x2033
|
||||
#define CL_KERNEL_SUB_GROUP_COUNT_FOR_NDRANGE_KHR 0x2034
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clGetKernelSubGroupInfoKHR(cl_kernel /* in_kernel */,
|
||||
cl_device_id /*in_device*/,
|
||||
const cl_kernel_sub_group_info /* param_name */,
|
||||
size_t /*input_value_size*/,
|
||||
const void * /*input_value*/,
|
||||
size_t /*param_value_size*/,
|
||||
void* /*param_value*/,
|
||||
size_t* /*param_value_size_ret*/ ) CL_EXT_SUFFIX__VERSION_2_0;
|
||||
|
||||
typedef CL_API_ENTRY cl_int
|
||||
( CL_API_CALL * clGetKernelSubGroupInfoKHR_fn)(cl_kernel /* in_kernel */,
|
||||
cl_device_id /*in_device*/,
|
||||
const cl_kernel_sub_group_info /* param_name */,
|
||||
size_t /*input_value_size*/,
|
||||
const void * /*input_value*/,
|
||||
size_t /*param_value_size*/,
|
||||
void* /*param_value*/,
|
||||
size_t* /*param_value_size_ret*/ ) CL_EXT_SUFFIX__VERSION_2_0;
|
||||
#endif /* CL_VERSION_2_0 */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#endif /* __CL_EXT_H */
|
||||
162
3rdparty/opencl/CL/cl_gl.h
vendored
Normal file
162
3rdparty/opencl/CL/cl_gl.h
vendored
Normal file
@@ -0,0 +1,162 @@
|
||||
/**********************************************************************************
|
||||
* Copyright (c) 2008 - 2013 The Khronos Group Inc.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and/or associated documentation files (the
|
||||
* "Materials"), to deal in the Materials without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Materials, and to
|
||||
* permit persons to whom the Materials are furnished to do so, subject to
|
||||
* the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Materials.
|
||||
*
|
||||
* THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
||||
**********************************************************************************/
|
||||
|
||||
#ifndef __OPENCL_CL_GL_H
|
||||
#define __OPENCL_CL_GL_H
|
||||
|
||||
#ifdef __APPLE__
|
||||
#include <OpenCL/cl.h>
|
||||
#else
|
||||
#include <CL/cl.h>
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef cl_uint cl_gl_object_type;
|
||||
typedef cl_uint cl_gl_texture_info;
|
||||
typedef cl_uint cl_gl_platform_info;
|
||||
typedef struct __GLsync *cl_GLsync;
|
||||
|
||||
/* cl_gl_object_type = 0x2000 - 0x200F enum values are currently taken */
|
||||
#define CL_GL_OBJECT_BUFFER 0x2000
|
||||
#define CL_GL_OBJECT_TEXTURE2D 0x2001
|
||||
#define CL_GL_OBJECT_TEXTURE3D 0x2002
|
||||
#define CL_GL_OBJECT_RENDERBUFFER 0x2003
|
||||
#define CL_GL_OBJECT_TEXTURE2D_ARRAY 0x200E
|
||||
#define CL_GL_OBJECT_TEXTURE1D 0x200F
|
||||
#define CL_GL_OBJECT_TEXTURE1D_ARRAY 0x2010
|
||||
#define CL_GL_OBJECT_TEXTURE_BUFFER 0x2011
|
||||
|
||||
/* cl_gl_texture_info */
|
||||
#define CL_GL_TEXTURE_TARGET 0x2004
|
||||
#define CL_GL_MIPMAP_LEVEL 0x2005
|
||||
#define CL_GL_NUM_SAMPLES 0x2012
|
||||
|
||||
|
||||
extern CL_API_ENTRY cl_mem CL_API_CALL
|
||||
clCreateFromGLBuffer(cl_context /* context */,
|
||||
cl_mem_flags /* flags */,
|
||||
cl_GLuint /* bufobj */,
|
||||
int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
extern CL_API_ENTRY cl_mem CL_API_CALL
|
||||
clCreateFromGLTexture(cl_context /* context */,
|
||||
cl_mem_flags /* flags */,
|
||||
cl_GLenum /* target */,
|
||||
cl_GLint /* miplevel */,
|
||||
cl_GLuint /* texture */,
|
||||
cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_2;
|
||||
|
||||
extern CL_API_ENTRY cl_mem CL_API_CALL
|
||||
clCreateFromGLRenderbuffer(cl_context /* context */,
|
||||
cl_mem_flags /* flags */,
|
||||
cl_GLuint /* renderbuffer */,
|
||||
cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clGetGLObjectInfo(cl_mem /* memobj */,
|
||||
cl_gl_object_type * /* gl_object_type */,
|
||||
cl_GLuint * /* gl_object_name */) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clGetGLTextureInfo(cl_mem /* memobj */,
|
||||
cl_gl_texture_info /* param_name */,
|
||||
size_t /* param_value_size */,
|
||||
void * /* param_value */,
|
||||
size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clEnqueueAcquireGLObjects(cl_command_queue /* command_queue */,
|
||||
cl_uint /* num_objects */,
|
||||
const cl_mem * /* mem_objects */,
|
||||
cl_uint /* num_events_in_wait_list */,
|
||||
const cl_event * /* event_wait_list */,
|
||||
cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clEnqueueReleaseGLObjects(cl_command_queue /* command_queue */,
|
||||
cl_uint /* num_objects */,
|
||||
const cl_mem * /* mem_objects */,
|
||||
cl_uint /* num_events_in_wait_list */,
|
||||
const cl_event * /* event_wait_list */,
|
||||
cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
|
||||
/* Deprecated OpenCL 1.1 APIs */
|
||||
extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_mem CL_API_CALL
|
||||
clCreateFromGLTexture2D(cl_context /* context */,
|
||||
cl_mem_flags /* flags */,
|
||||
cl_GLenum /* target */,
|
||||
cl_GLint /* miplevel */,
|
||||
cl_GLuint /* texture */,
|
||||
cl_int * /* errcode_ret */) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
|
||||
|
||||
extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_mem CL_API_CALL
|
||||
clCreateFromGLTexture3D(cl_context /* context */,
|
||||
cl_mem_flags /* flags */,
|
||||
cl_GLenum /* target */,
|
||||
cl_GLint /* miplevel */,
|
||||
cl_GLuint /* texture */,
|
||||
cl_int * /* errcode_ret */) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED;
|
||||
|
||||
/* cl_khr_gl_sharing extension */
|
||||
|
||||
#define cl_khr_gl_sharing 1
|
||||
|
||||
typedef cl_uint cl_gl_context_info;
|
||||
|
||||
/* Additional Error Codes */
|
||||
#define CL_INVALID_GL_SHAREGROUP_REFERENCE_KHR -1000
|
||||
|
||||
/* cl_gl_context_info */
|
||||
#define CL_CURRENT_DEVICE_FOR_GL_CONTEXT_KHR 0x2006
|
||||
#define CL_DEVICES_FOR_GL_CONTEXT_KHR 0x2007
|
||||
|
||||
/* Additional cl_context_properties */
|
||||
#define CL_GL_CONTEXT_KHR 0x2008
|
||||
#define CL_EGL_DISPLAY_KHR 0x2009
|
||||
#define CL_GLX_DISPLAY_KHR 0x200A
|
||||
#define CL_WGL_HDC_KHR 0x200B
|
||||
#define CL_CGL_SHAREGROUP_KHR 0x200C
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clGetGLContextInfoKHR(const cl_context_properties * /* properties */,
|
||||
cl_gl_context_info /* param_name */,
|
||||
size_t /* param_value_size */,
|
||||
void * /* param_value */,
|
||||
size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0;
|
||||
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clGetGLContextInfoKHR_fn)(
|
||||
const cl_context_properties * properties,
|
||||
cl_gl_context_info param_name,
|
||||
size_t param_value_size,
|
||||
void * param_value,
|
||||
size_t * param_value_size_ret);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __OPENCL_CL_GL_H */
|
||||
69
3rdparty/opencl/CL/cl_gl_ext.h
vendored
Normal file
69
3rdparty/opencl/CL/cl_gl_ext.h
vendored
Normal file
@@ -0,0 +1,69 @@
|
||||
/**********************************************************************************
|
||||
* Copyright (c) 2008-2013 The Khronos Group Inc.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and/or associated documentation files (the
|
||||
* "Materials"), to deal in the Materials without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Materials, and to
|
||||
* permit persons to whom the Materials are furnished to do so, subject to
|
||||
* the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Materials.
|
||||
*
|
||||
* THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
||||
**********************************************************************************/
|
||||
|
||||
/* $Revision: 11708 $ on $Date: 2010-06-13 23:36:24 -0700 (Sun, 13 Jun 2010) $ */
|
||||
|
||||
/* cl_gl_ext.h contains vendor (non-KHR) OpenCL extensions which have */
|
||||
/* OpenGL dependencies. */
|
||||
|
||||
#ifndef __OPENCL_CL_GL_EXT_H
|
||||
#define __OPENCL_CL_GL_EXT_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#ifdef __APPLE__
|
||||
#include <OpenCL/cl_gl.h>
|
||||
#else
|
||||
#include <CL/cl_gl.h>
|
||||
#endif
|
||||
|
||||
/*
|
||||
* For each extension, follow this template
|
||||
* cl_VEN_extname extension */
|
||||
/* #define cl_VEN_extname 1
|
||||
* ... define new types, if any
|
||||
* ... define new tokens, if any
|
||||
* ... define new APIs, if any
|
||||
*
|
||||
* If you need GLtypes here, mirror them with a cl_GLtype, rather than including a GL header
|
||||
* This allows us to avoid having to decide whether to include GL headers or GLES here.
|
||||
*/
|
||||
|
||||
/*
|
||||
* cl_khr_gl_event extension
|
||||
* See section 9.9 in the OpenCL 1.1 spec for more information
|
||||
*/
|
||||
#define CL_COMMAND_GL_FENCE_SYNC_OBJECT_KHR 0x200D
|
||||
|
||||
extern CL_API_ENTRY cl_event CL_API_CALL
|
||||
clCreateEventFromGLsyncKHR(cl_context /* context */,
|
||||
cl_GLsync /* cl_GLsync */,
|
||||
cl_int * /* errcode_ret */) CL_EXT_SUFFIX__VERSION_1_1;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __OPENCL_CL_GL_EXT_H */
|
||||
1299
3rdparty/opencl/CL/cl_platform.h
vendored
Normal file
1299
3rdparty/opencl/CL/cl_platform.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
54
3rdparty/opencl/CL/opencl.h
vendored
Normal file
54
3rdparty/opencl/CL/opencl.h
vendored
Normal file
@@ -0,0 +1,54 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2008-2013 The Khronos Group Inc.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and/or associated documentation files (the
|
||||
* "Materials"), to deal in the Materials without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Materials, and to
|
||||
* permit persons to whom the Materials are furnished to do so, subject to
|
||||
* the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Materials.
|
||||
*
|
||||
* THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
||||
******************************************************************************/
|
||||
|
||||
/* $Revision: 11708 $ on $Date: 2010-06-13 23:36:24 -0700 (Sun, 13 Jun 2010) $ */
|
||||
|
||||
#ifndef __OPENCL_H
|
||||
#define __OPENCL_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#ifdef __APPLE__
|
||||
|
||||
#include <OpenCL/cl.h>
|
||||
#include <OpenCL/cl_gl.h>
|
||||
#include <OpenCL/cl_gl_ext.h>
|
||||
#include <OpenCL/cl_ext.h>
|
||||
|
||||
#else
|
||||
|
||||
#include <CL/cl.h>
|
||||
#include <CL/cl_gl.h>
|
||||
#include <CL/cl_gl_ext.h>
|
||||
#include <CL/cl_ext.h>
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __OPENCL_H */
|
||||
|
||||
824
3rdparty/opencl/opencl.cpp
vendored
Normal file
824
3rdparty/opencl/opencl.cpp
vendored
Normal file
@@ -0,0 +1,824 @@
|
||||
#include "CL/cl.h"
|
||||
|
||||
typedef cl_int (CL_API_CALL * clGetPlatformIDsPtr)(cl_uint num_entries, cl_platform_id* platforms, cl_uint* num_platforms) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_int (CL_API_CALL * clGetPlatformInfoPtr)(cl_platform_id platform, cl_platform_info param_name, size_t param_value_size, void* param_value, size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_int (CL_API_CALL * clGetDeviceIDsPtr)(cl_platform_id platform, cl_device_type device_type, cl_uint num_entries, cl_device_id* devices, cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_int (CL_API_CALL * clGetDeviceInfoPtr)(cl_device_id device, cl_device_info param_name, size_t param_value_size, void* param_value, size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_int (CL_API_CALL * clCreateSubDevicesPtr)(cl_device_id in_device, const cl_device_partition_property* properties, cl_uint num_devices, cl_device_id* out_devices, cl_uint* num_devices_ret) CL_API_SUFFIX__VERSION_1_2;
|
||||
typedef cl_int (CL_API_CALL * clRetainDevicePtr)(cl_device_id device) CL_API_SUFFIX__VERSION_1_2;
|
||||
typedef cl_int (CL_API_CALL * clReleaseDevicePtr)(cl_device_id device) CL_API_SUFFIX__VERSION_1_2;
|
||||
typedef cl_context (CL_API_CALL * clCreateContextPtr)(const cl_context_properties* properties, cl_uint num_devices, const cl_device_id* devices, void (CL_CALLBACK* pfn_notify)(const char*, const void*, size_t, void*), void* user_data, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_context (CL_API_CALL * clCreateContextFromTypePtr)(const cl_context_properties* properties, cl_device_type device_type, void (CL_CALLBACK* pfn_notify)(const char*, const void*, size_t, void*), void* user_data, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_int (CL_API_CALL * clRetainContextPtr)(cl_context context) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_int (CL_API_CALL * clReleaseContextPtr)(cl_context context) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_int (CL_API_CALL * clGetContextInfoPtr)(cl_context context, cl_context_info param_name, size_t param_value_size, void* param_value, size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_command_queue (CL_API_CALL * clCreateCommandQueueWithPropertiesPtr)(cl_context context, cl_device_id device, const cl_queue_properties* properties, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_2_0;
|
||||
typedef cl_int (CL_API_CALL * clRetainCommandQueuePtr)(cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_int (CL_API_CALL * clReleaseCommandQueuePtr)(cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_int (CL_API_CALL * clGetCommandQueueInfoPtr)(cl_command_queue command_queue, cl_command_queue_info param_name, size_t param_value_size, void* param_value, size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_mem (CL_API_CALL * clCreateBufferPtr)(cl_context context, cl_mem_flags flags, size_t size, void* host_ptr, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_mem (CL_API_CALL * clCreateSubBufferPtr)(cl_mem buffer, cl_mem_flags flags, cl_buffer_create_type buffer_create_type, const void* buffer_create_info, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1;
|
||||
typedef cl_mem (CL_API_CALL * clCreateImagePtr)(cl_context context, cl_mem_flags flags, const cl_image_format* image_format, const cl_image_desc* image_desc, void* host_ptr, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2;
|
||||
typedef cl_mem (CL_API_CALL * clCreatePipePtr)(cl_context context, cl_mem_flags flags, cl_uint pipe_packet_size, cl_uint pipe_max_packets, const cl_pipe_properties* properties, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_2_0;
|
||||
typedef cl_int (CL_API_CALL * clRetainMemObjectPtr)(cl_mem memobj) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_int (CL_API_CALL * clReleaseMemObjectPtr)(cl_mem memobj) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_int (CL_API_CALL * clGetSupportedImageFormatsPtr)(cl_context context, cl_mem_flags flags, cl_mem_object_type image_type, cl_uint num_entries, cl_image_format* image_formats, cl_uint* num_image_formats) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_int (CL_API_CALL * clGetMemObjectInfoPtr)(cl_mem memobj, cl_mem_info param_name, size_t param_value_size, void* param_value, size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_int (CL_API_CALL * clGetImageInfoPtr)(cl_mem image, cl_image_info param_name, size_t param_value_size, void* param_value, size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_int (CL_API_CALL * clGetPipeInfoPtr)(cl_mem pipe, cl_pipe_info param_name, size_t param_value_size, void* param_value, size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_2_0;
|
||||
typedef cl_int (CL_API_CALL * clSetMemObjectDestructorCallbackPtr)(cl_mem memobj, void (CL_CALLBACK* pfn_notify)(cl_mem memobj, void* user_data), void* user_data) CL_API_SUFFIX__VERSION_1_1;
|
||||
typedef void* (CL_API_CALL * clSVMAllocPtr)(cl_context context, cl_svm_mem_flags flags, size_t size, cl_uint alignment) CL_API_SUFFIX__VERSION_2_0;
|
||||
typedef void (CL_API_CALL * clSVMFreePtr)(cl_context context, void* svm_pointer) CL_API_SUFFIX__VERSION_2_0;
|
||||
typedef cl_sampler (CL_API_CALL * clCreateSamplerWithPropertiesPtr)(cl_context context, const cl_sampler_properties* normalized_coords, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_2_0;
|
||||
typedef cl_int (CL_API_CALL * clRetainSamplerPtr)(cl_sampler sampler) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_int (CL_API_CALL * clReleaseSamplerPtr)(cl_sampler sampler) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_int (CL_API_CALL * clGetSamplerInfoPtr)(cl_sampler sampler, cl_sampler_info param_name, size_t param_value_size, void* param_value, size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_program (CL_API_CALL * clCreateProgramWithSourcePtr)(cl_context context, cl_uint count, const char** strings, const size_t* lengths, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_program (CL_API_CALL * clCreateProgramWithBinaryPtr)(cl_context context, cl_uint num_devices, const cl_device_id* device_list, const size_t* lengths, const unsigned char** binaries, cl_int* binary_status, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_program (CL_API_CALL * clCreateProgramWithBuiltInKernelsPtr)(cl_context context, cl_uint num_devices, const cl_device_id* device_list, const char* kernel_names, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2;
|
||||
typedef cl_int (CL_API_CALL * clRetainProgramPtr)(cl_program program) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_int (CL_API_CALL * clReleaseProgramPtr)(cl_program program) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_int (CL_API_CALL * clBuildProgramPtr)(cl_program program, cl_uint num_devices, const cl_device_id* device_list, const char* options, void (CL_CALLBACK* pfn_notify)(cl_program program, void* user_data), void* user_data) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_int (CL_API_CALL * clCompileProgramPtr)(cl_program program, cl_uint num_devices, const cl_device_id* device_list, const char* options, cl_uint num_input_headers, const cl_program* input_headers, const char** header_include_names, void (CL_CALLBACK* pfn_notify)(cl_program program, void* user_data), void* user_data) CL_API_SUFFIX__VERSION_1_2;
|
||||
typedef cl_program (CL_API_CALL * clLinkProgramPtr)(cl_context context, cl_uint num_devices, const cl_device_id* device_list, const char* options, cl_uint num_input_programs, const cl_program* input_programs, void (CL_CALLBACK* pfn_notify)(cl_program program, void* user_data), void* user_data, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2;
|
||||
typedef cl_int (CL_API_CALL * clUnloadPlatformCompilerPtr)(cl_platform_id platform) CL_API_SUFFIX__VERSION_1_2;
|
||||
typedef cl_int (CL_API_CALL * clGetProgramInfoPtr)(cl_program program, cl_program_info param_name, size_t param_value_size, void* param_value, size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_int (CL_API_CALL * clGetProgramBuildInfoPtr)(cl_program program, cl_device_id device, cl_program_build_info param_name, size_t param_value_size, void* param_value, size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_kernel (CL_API_CALL * clCreateKernelPtr)(cl_program program, const char* kernel_name, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_int (CL_API_CALL * clCreateKernelsInProgramPtr)(cl_program program, cl_uint num_kernels, cl_kernel* kernels, cl_uint* num_kernels_ret) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_int (CL_API_CALL * clRetainKernelPtr)(cl_kernel kernel) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_int (CL_API_CALL * clReleaseKernelPtr)(cl_kernel kernel) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_int (CL_API_CALL * clSetKernelArgPtr)(cl_kernel kernel, cl_uint arg_index, size_t arg_size, const void* arg_value) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_int (CL_API_CALL * clSetKernelArgSVMPointerPtr)(cl_kernel kernel, cl_uint arg_index, const void* arg_value) CL_API_SUFFIX__VERSION_2_0;
|
||||
typedef cl_int (CL_API_CALL * clSetKernelExecInfoPtr)(cl_kernel kernel, cl_kernel_exec_info param_name, size_t param_value_size, const void* param_value) CL_API_SUFFIX__VERSION_2_0;
|
||||
typedef cl_int (CL_API_CALL * clGetKernelInfoPtr)(cl_kernel kernel, cl_kernel_info param_name, size_t param_value_size, void* param_value, size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_int (CL_API_CALL * clGetKernelArgInfoPtr)(cl_kernel kernel, cl_uint arg_indx, cl_kernel_arg_info param_name, size_t param_value_size, void* param_value, size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_2;
|
||||
typedef cl_int (CL_API_CALL * clGetKernelWorkGroupInfoPtr)(cl_kernel kernel, cl_device_id device, cl_kernel_work_group_info param_name, size_t param_value_size, void* param_value, size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_int (CL_API_CALL * clWaitForEventsPtr)(cl_uint num_events, const cl_event* event_list) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_int (CL_API_CALL * clGetEventInfoPtr)(cl_event event, cl_event_info param_name, size_t param_value_size, void* param_value, size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_event (CL_API_CALL * clCreateUserEventPtr)(cl_context context, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1;
|
||||
typedef cl_int (CL_API_CALL * clRetainEventPtr)(cl_event event) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_int (CL_API_CALL * clReleaseEventPtr)(cl_event event) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_int (CL_API_CALL * clSetUserEventStatusPtr)(cl_event event, cl_int execution_status) CL_API_SUFFIX__VERSION_1_1;
|
||||
typedef cl_int (CL_API_CALL * clSetEventCallbackPtr)(cl_event event, cl_int command_exec_callback_type, void (CL_CALLBACK* pfn_notify)(cl_event, cl_int, void*), void* user_data) CL_API_SUFFIX__VERSION_1_1;
|
||||
typedef cl_int (CL_API_CALL * clGetEventProfilingInfoPtr)(cl_event event, cl_profiling_info param_name, size_t param_value_size, void* param_value, size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_int (CL_API_CALL * clFlushPtr)(cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_int (CL_API_CALL * clFinishPtr)(cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_int (CL_API_CALL * clEnqueueReadBufferPtr)(cl_command_queue command_queue, cl_mem buffer, cl_bool blocking_read, size_t offset, size_t size, void* ptr, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_int (CL_API_CALL * clEnqueueReadBufferRectPtr)(cl_command_queue command_queue, cl_mem buffer, cl_bool blocking_read, const size_t* buffer_offset, const size_t* host_offset, const size_t* region, size_t buffer_row_pitch, size_t buffer_slice_pitch, size_t host_row_pitch, size_t host_slice_pitch, void* ptr, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_1;
|
||||
typedef cl_int (CL_API_CALL * clEnqueueWriteBufferPtr)(cl_command_queue command_queue, cl_mem buffer, cl_bool blocking_write, size_t offset, size_t size, const void* ptr, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_int (CL_API_CALL * clEnqueueWriteBufferRectPtr)(cl_command_queue command_queue, cl_mem buffer, cl_bool blocking_write, const size_t* buffer_offset, const size_t* host_offset, const size_t* region, size_t buffer_row_pitch, size_t buffer_slice_pitch, size_t host_row_pitch, size_t host_slice_pitch, const void* ptr, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_1;
|
||||
typedef cl_int (CL_API_CALL * clEnqueueFillBufferPtr)(cl_command_queue command_queue, cl_mem buffer, const void* pattern, size_t pattern_size, size_t offset, size_t size, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2;
|
||||
typedef cl_int (CL_API_CALL * clEnqueueCopyBufferPtr)(cl_command_queue command_queue, cl_mem src_buffer, cl_mem dst_buffer, size_t src_offset, size_t dst_offset, size_t size, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_int (CL_API_CALL * clEnqueueCopyBufferRectPtr)(cl_command_queue command_queue, cl_mem src_buffer, cl_mem dst_buffer, const size_t* src_origin, const size_t* dst_origin, const size_t* region, size_t src_row_pitch, size_t src_slice_pitch, size_t dst_row_pitch, size_t dst_slice_pitch, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_1;
|
||||
typedef cl_int (CL_API_CALL * clEnqueueReadImagePtr)(cl_command_queue command_queue, cl_mem image, cl_bool blocking_read, const size_t* origin, const size_t* region, size_t row_pitch, size_t slice_pitch, void* ptr, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_int (CL_API_CALL * clEnqueueWriteImagePtr)(cl_command_queue command_queue, cl_mem image, cl_bool blocking_write, const size_t* origin, const size_t* region, size_t input_row_pitch, size_t input_slice_pitch, const void* ptr, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_int (CL_API_CALL * clEnqueueFillImagePtr)(cl_command_queue command_queue, cl_mem image, const void* fill_color, const size_t* origin, const size_t* region, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2;
|
||||
typedef cl_int (CL_API_CALL * clEnqueueCopyImagePtr)(cl_command_queue command_queue, cl_mem src_image, cl_mem dst_image, const size_t* src_origin, const size_t* dst_origin, const size_t* region, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_int (CL_API_CALL * clEnqueueCopyImageToBufferPtr)(cl_command_queue command_queue, cl_mem src_image, cl_mem dst_buffer, const size_t* src_origin, const size_t* region, size_t dst_offset, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_int (CL_API_CALL * clEnqueueCopyBufferToImagePtr)(cl_command_queue command_queue, cl_mem src_buffer, cl_mem dst_image, size_t src_offset, const size_t* dst_origin, const size_t* region, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef void* (CL_API_CALL * clEnqueueMapBufferPtr)(cl_command_queue command_queue, cl_mem buffer, cl_bool blocking_map, cl_map_flags map_flags, size_t offset, size_t size, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef void* (CL_API_CALL * clEnqueueMapImagePtr)(cl_command_queue command_queue, cl_mem image, cl_bool blocking_map, cl_map_flags map_flags, const size_t* origin, const size_t* region, size_t* image_row_pitch, size_t* image_slice_pitch, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_int (CL_API_CALL * clEnqueueUnmapMemObjectPtr)(cl_command_queue command_queue, cl_mem memobj, void* mapped_ptr, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_int (CL_API_CALL * clEnqueueMigrateMemObjectsPtr)(cl_command_queue command_queue, cl_uint num_mem_objects, const cl_mem* mem_objects, cl_mem_migration_flags flags, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2;
|
||||
typedef cl_int (CL_API_CALL * clEnqueueNDRangeKernelPtr)(cl_command_queue command_queue, cl_kernel kernel, cl_uint work_dim, const size_t* global_work_offset, const size_t* global_work_size, const size_t* local_work_size, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_int (CL_API_CALL * clEnqueueNativeKernelPtr)(cl_command_queue command_queue, void (CL_CALLBACK* /*user_func*/)(void*), void* args, size_t cb_args, cl_uint num_mem_objects, const cl_mem* mem_list, const void** args_mem_loc, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0;
|
||||
typedef cl_int (CL_API_CALL * clEnqueueMarkerWithWaitListPtr)(cl_command_queue command_queue, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2;
|
||||
typedef cl_int (CL_API_CALL * clEnqueueBarrierWithWaitListPtr)(cl_command_queue command_queue, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2;
|
||||
typedef cl_int (CL_API_CALL * clEnqueueSVMFreePtr)(cl_command_queue command_queue, cl_uint num_svm_pointers, void* svm_pointers[], void (CL_CALLBACK* /*pfn_free_func*/)(cl_command_queue queue, cl_uint num_svm_pointers, void* svm_pointers[], void* user_data), void* user_data, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_2_0;
|
||||
typedef cl_int (CL_API_CALL * clEnqueueSVMMemcpyPtr)(cl_command_queue command_queue, cl_bool blocking_copy, void* dst_ptr, const void* src_ptr, size_t size, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_2_0;
|
||||
typedef cl_int (CL_API_CALL * clEnqueueSVMMemFillPtr)(cl_command_queue command_queue, void* svm_ptr, const void* pattern, size_t pattern_size, size_t size, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_2_0;
|
||||
typedef cl_int (CL_API_CALL * clEnqueueSVMMapPtr)(cl_command_queue command_queue, cl_bool blocking_map, cl_map_flags flags, void* svm_ptr, size_t size, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_2_0;
|
||||
typedef cl_int (CL_API_CALL * clEnqueueSVMUnmapPtr)(cl_command_queue command_queue, void* svm_ptr, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_2_0;
|
||||
typedef void* (CL_API_CALL * clGetExtensionFunctionAddressForPlatformPtr)(cl_platform_id platform, const char* func_name) CL_API_SUFFIX__VERSION_1_2;
|
||||
typedef cl_mem (CL_API_CALL * clCreateImage2DPtr)(cl_context context, cl_mem_flags flags, const cl_image_format* image_format, size_t image_width, size_t image_height, size_t image_row_pitch, void* host_ptr, cl_int* errcode_ret);
|
||||
typedef cl_mem (CL_API_CALL * clCreateImage3DPtr)(cl_context context, cl_mem_flags flags, const cl_image_format* image_format, size_t image_width, size_t image_height, size_t image_depth, size_t image_row_pitch, size_t image_slice_pitch, void* host_ptr, cl_int* errcode_ret);
|
||||
typedef cl_int (CL_API_CALL * clEnqueueMarkerPtr)(cl_command_queue command_queue, cl_event* event);
|
||||
typedef cl_int (CL_API_CALL * clEnqueueWaitForEventsPtr)(cl_command_queue command_queue, cl_uint num_events, const cl_event* event_list);
|
||||
typedef cl_int (CL_API_CALL * clEnqueueBarrierPtr)(cl_command_queue command_queue);
|
||||
typedef cl_int (CL_API_CALL * clUnloadCompilerPtr)(void);
|
||||
typedef void* (CL_API_CALL * clGetExtensionFunctionAddressPtr)(const char* func_name);
|
||||
typedef cl_command_queue (CL_API_CALL * clCreateCommandQueuePtr)(cl_context context, cl_device_id device, cl_command_queue_properties properties, cl_int* errcode_ret);
|
||||
typedef cl_sampler (CL_API_CALL * clCreateSamplerPtr)(cl_context context, cl_bool normalized_coords, cl_addressing_mode addressing_mode, cl_filter_mode filter_mode, cl_int* errcode_ret);
|
||||
typedef cl_int (CL_API_CALL * clEnqueueTaskPtr)(cl_command_queue command_queue, cl_kernel kernel, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event);
|
||||
|
||||
static clGetPlatformIDsPtr cl_GetPlatformIDs = NULL;
|
||||
static clGetPlatformInfoPtr cl_GetPlatformInfo = NULL;
|
||||
static clGetDeviceIDsPtr cl_GetDeviceIDs = NULL;
|
||||
static clGetDeviceInfoPtr cl_GetDeviceInfo = NULL;
|
||||
static clCreateSubDevicesPtr cl_CreateSubDevices = NULL;
|
||||
static clRetainDevicePtr cl_RetainDevice = NULL;
|
||||
static clReleaseDevicePtr cl_ReleaseDevice = NULL;
|
||||
static clCreateContextPtr cl_CreateContext = NULL;
|
||||
static clCreateContextFromTypePtr cl_CreateContextFromType = NULL;
|
||||
static clRetainContextPtr cl_RetainContext = NULL;
|
||||
static clReleaseContextPtr cl_ReleaseContext = NULL;
|
||||
static clGetContextInfoPtr cl_GetContextInfo = NULL;
|
||||
static clCreateCommandQueueWithPropertiesPtr cl_CreateCommandQueueWithProperties = NULL;
|
||||
static clRetainCommandQueuePtr cl_RetainCommandQueue = NULL;
|
||||
static clReleaseCommandQueuePtr cl_ReleaseCommandQueue = NULL;
|
||||
static clGetCommandQueueInfoPtr cl_GetCommandQueueInfo = NULL;
|
||||
static clCreateBufferPtr cl_CreateBuffer = NULL;
|
||||
static clCreateSubBufferPtr cl_CreateSubBuffer = NULL;
|
||||
static clCreateImagePtr cl_CreateImage = NULL;
|
||||
static clCreatePipePtr cl_CreatePipe = NULL;
|
||||
static clRetainMemObjectPtr cl_RetainMemObject = NULL;
|
||||
static clReleaseMemObjectPtr cl_ReleaseMemObject = NULL;
|
||||
static clGetSupportedImageFormatsPtr cl_GetSupportedImageFormats = NULL;
|
||||
static clGetMemObjectInfoPtr cl_GetMemObjectInfo = NULL;
|
||||
static clGetImageInfoPtr cl_GetImageInfo = NULL;
|
||||
static clGetPipeInfoPtr cl_GetPipeInfo = NULL;
|
||||
static clSetMemObjectDestructorCallbackPtr cl_SetMemObjectDestructorCallback = NULL;
|
||||
static clSVMAllocPtr cl_SVMAlloc = NULL;
|
||||
static clSVMFreePtr cl_SVMFree = NULL;
|
||||
static clCreateSamplerWithPropertiesPtr cl_CreateSamplerWithProperties = NULL;
|
||||
static clRetainSamplerPtr cl_RetainSampler = NULL;
|
||||
static clReleaseSamplerPtr cl_ReleaseSampler = NULL;
|
||||
static clGetSamplerInfoPtr cl_GetSamplerInfo = NULL;
|
||||
static clCreateProgramWithSourcePtr cl_CreateProgramWithSource = NULL;
|
||||
static clCreateProgramWithBinaryPtr cl_CreateProgramWithBinary = NULL;
|
||||
static clCreateProgramWithBuiltInKernelsPtr cl_CreateProgramWithBuiltInKernels = NULL;
|
||||
static clRetainProgramPtr cl_RetainProgram = NULL;
|
||||
static clReleaseProgramPtr cl_ReleaseProgram = NULL;
|
||||
static clBuildProgramPtr cl_BuildProgram = NULL;
|
||||
static clCompileProgramPtr cl_CompileProgram = NULL;
|
||||
static clLinkProgramPtr cl_LinkProgram = NULL;
|
||||
static clUnloadPlatformCompilerPtr cl_UnloadPlatformCompiler = NULL;
|
||||
static clGetProgramInfoPtr cl_GetProgramInfo = NULL;
|
||||
static clGetProgramBuildInfoPtr cl_GetProgramBuildInfo = NULL;
|
||||
static clCreateKernelPtr cl_CreateKernel = NULL;
|
||||
static clCreateKernelsInProgramPtr cl_CreateKernelsInProgram = NULL;
|
||||
static clRetainKernelPtr cl_RetainKernel = NULL;
|
||||
static clReleaseKernelPtr cl_ReleaseKernel = NULL;
|
||||
static clSetKernelArgPtr cl_SetKernelArg = NULL;
|
||||
static clSetKernelArgSVMPointerPtr cl_SetKernelArgSVMPointer = NULL;
|
||||
static clSetKernelExecInfoPtr cl_SetKernelExecInfo = NULL;
|
||||
static clGetKernelInfoPtr cl_GetKernelInfo = NULL;
|
||||
static clGetKernelArgInfoPtr cl_GetKernelArgInfo = NULL;
|
||||
static clGetKernelWorkGroupInfoPtr cl_GetKernelWorkGroupInfo = NULL;
|
||||
static clWaitForEventsPtr cl_WaitForEvents = NULL;
|
||||
static clGetEventInfoPtr cl_GetEventInfo = NULL;
|
||||
static clCreateUserEventPtr cl_CreateUserEvent = NULL;
|
||||
static clRetainEventPtr cl_RetainEvent = NULL;
|
||||
static clReleaseEventPtr cl_ReleaseEvent = NULL;
|
||||
static clSetUserEventStatusPtr cl_SetUserEventStatus = NULL;
|
||||
static clSetEventCallbackPtr cl_SetEventCallback = NULL;
|
||||
static clGetEventProfilingInfoPtr cl_GetEventProfilingInfo = NULL;
|
||||
static clFlushPtr cl_Flush = NULL;
|
||||
static clFinishPtr cl_Finish = NULL;
|
||||
static clEnqueueReadBufferPtr cl_EnqueueReadBuffer = NULL;
|
||||
static clEnqueueReadBufferRectPtr cl_EnqueueReadBufferRect = NULL;
|
||||
static clEnqueueWriteBufferPtr cl_EnqueueWriteBuffer = NULL;
|
||||
static clEnqueueWriteBufferRectPtr cl_EnqueueWriteBufferRect = NULL;
|
||||
static clEnqueueFillBufferPtr cl_EnqueueFillBuffer = NULL;
|
||||
static clEnqueueCopyBufferPtr cl_EnqueueCopyBuffer = NULL;
|
||||
static clEnqueueCopyBufferRectPtr cl_EnqueueCopyBufferRect = NULL;
|
||||
static clEnqueueReadImagePtr cl_EnqueueReadImage = NULL;
|
||||
static clEnqueueWriteImagePtr cl_EnqueueWriteImage = NULL;
|
||||
static clEnqueueFillImagePtr cl_EnqueueFillImage = NULL;
|
||||
static clEnqueueCopyImagePtr cl_EnqueueCopyImage = NULL;
|
||||
static clEnqueueCopyImageToBufferPtr cl_EnqueueCopyImageToBuffer = NULL;
|
||||
static clEnqueueCopyBufferToImagePtr cl_EnqueueCopyBufferToImage = NULL;
|
||||
static clEnqueueMapBufferPtr cl_EnqueueMapBuffer = NULL;
|
||||
static clEnqueueMapImagePtr cl_EnqueueMapImage = NULL;
|
||||
static clEnqueueUnmapMemObjectPtr cl_EnqueueUnmapMemObject = NULL;
|
||||
static clEnqueueMigrateMemObjectsPtr cl_EnqueueMigrateMemObjects = NULL;
|
||||
static clEnqueueNDRangeKernelPtr cl_EnqueueNDRangeKernel = NULL;
|
||||
static clEnqueueNativeKernelPtr cl_EnqueueNativeKernel = NULL;
|
||||
static clEnqueueMarkerWithWaitListPtr cl_EnqueueMarkerWithWaitList = NULL;
|
||||
static clEnqueueBarrierWithWaitListPtr cl_EnqueueBarrierWithWaitList = NULL;
|
||||
static clEnqueueSVMFreePtr cl_EnqueueSVMFree = NULL;
|
||||
static clEnqueueSVMMemcpyPtr cl_EnqueueSVMMemcpy = NULL;
|
||||
static clEnqueueSVMMemFillPtr cl_EnqueueSVMMemFill = NULL;
|
||||
static clEnqueueSVMMapPtr cl_EnqueueSVMMap = NULL;
|
||||
static clEnqueueSVMUnmapPtr cl_EnqueueSVMUnmap = NULL;
|
||||
static clGetExtensionFunctionAddressForPlatformPtr cl_GetExtensionFunctionAddressForPlatform = NULL;
|
||||
static clCreateImage2DPtr cl_CreateImage2D = NULL;
|
||||
static clCreateImage3DPtr cl_CreateImage3D = NULL;
|
||||
static clEnqueueMarkerPtr cl_EnqueueMarker = NULL;
|
||||
static clEnqueueWaitForEventsPtr cl_EnqueueWaitForEvents = NULL;
|
||||
static clEnqueueBarrierPtr cl_EnqueueBarrier = NULL;
|
||||
static clUnloadCompilerPtr cl_UnloadCompiler = NULL;
|
||||
static clGetExtensionFunctionAddressPtr cl_GetExtensionFunctionAddress = NULL;
|
||||
static clCreateCommandQueuePtr cl_CreateCommandQueue = NULL;
|
||||
static clCreateSamplerPtr cl_CreateSampler = NULL;
|
||||
static clEnqueueTaskPtr cl_EnqueueTask = NULL;
|
||||
|
||||
#include <Windows.h>
|
||||
|
||||
static struct Loader
|
||||
{
|
||||
struct Loader()
|
||||
{
|
||||
HMODULE hModule = LoadLibrary("OpenCL.dll");
|
||||
|
||||
if(hModule == NULL) return;
|
||||
|
||||
*(void**)&cl_GetPlatformIDs = GetProcAddress(hModule, "clGetPlatformIDs");
|
||||
*(void**)&cl_GetPlatformInfo = GetProcAddress(hModule, "clGetPlatformInfo");
|
||||
*(void**)&cl_GetDeviceIDs = GetProcAddress(hModule, "clGetDeviceIDs");
|
||||
*(void**)&cl_GetDeviceInfo = GetProcAddress(hModule, "clGetDeviceInfo");
|
||||
*(void**)&cl_CreateSubDevices = GetProcAddress(hModule, "clCreateSubDevices");
|
||||
*(void**)&cl_RetainDevice = GetProcAddress(hModule, "clRetainDevice");
|
||||
*(void**)&cl_ReleaseDevice = GetProcAddress(hModule, "clReleaseDevice");
|
||||
*(void**)&cl_CreateContext = GetProcAddress(hModule, "clCreateContext");
|
||||
*(void**)&cl_CreateContextFromType = GetProcAddress(hModule, "clCreateContextFromType");
|
||||
*(void**)&cl_RetainContext = GetProcAddress(hModule, "clRetainContext");
|
||||
*(void**)&cl_ReleaseContext = GetProcAddress(hModule, "clReleaseContext");
|
||||
*(void**)&cl_GetContextInfo = GetProcAddress(hModule, "clGetContextInfo");
|
||||
*(void**)&cl_CreateCommandQueueWithProperties = GetProcAddress(hModule, "clCreateCommandQueueWithProperties");
|
||||
*(void**)&cl_RetainCommandQueue = GetProcAddress(hModule, "clRetainCommandQueue");
|
||||
*(void**)&cl_ReleaseCommandQueue = GetProcAddress(hModule, "clReleaseCommandQueue");
|
||||
*(void**)&cl_GetCommandQueueInfo = GetProcAddress(hModule, "clGetCommandQueueInfo");
|
||||
*(void**)&cl_CreateBuffer = GetProcAddress(hModule, "clCreateBuffer");
|
||||
*(void**)&cl_CreateSubBuffer = GetProcAddress(hModule, "clCreateSubBuffer");
|
||||
*(void**)&cl_CreateImage = GetProcAddress(hModule, "clCreateImage");
|
||||
*(void**)&cl_CreatePipe = GetProcAddress(hModule, "clCreatePipe");
|
||||
*(void**)&cl_RetainMemObject = GetProcAddress(hModule, "clRetainMemObject");
|
||||
*(void**)&cl_ReleaseMemObject = GetProcAddress(hModule, "clReleaseMemObject");
|
||||
*(void**)&cl_GetSupportedImageFormats = GetProcAddress(hModule, "clGetSupportedImageFormats");
|
||||
*(void**)&cl_GetMemObjectInfo = GetProcAddress(hModule, "clGetMemObjectInfo");
|
||||
*(void**)&cl_GetImageInfo = GetProcAddress(hModule, "clGetImageInfo");
|
||||
*(void**)&cl_GetPipeInfo = GetProcAddress(hModule, "clGetPipeInfo");
|
||||
*(void**)&cl_SetMemObjectDestructorCallback = GetProcAddress(hModule, "clSetMemObjectDestructorCallback");
|
||||
*(void**)&cl_SVMAlloc = GetProcAddress(hModule, "clSVMAlloc");
|
||||
*(void**)&cl_SVMFree = GetProcAddress(hModule, "clSVMFree");
|
||||
*(void**)&cl_CreateSamplerWithProperties = GetProcAddress(hModule, "clCreateSamplerWithProperties");
|
||||
*(void**)&cl_RetainSampler = GetProcAddress(hModule, "clRetainSampler");
|
||||
*(void**)&cl_ReleaseSampler = GetProcAddress(hModule, "clReleaseSampler");
|
||||
*(void**)&cl_GetSamplerInfo = GetProcAddress(hModule, "clGetSamplerInfo");
|
||||
*(void**)&cl_CreateProgramWithSource = GetProcAddress(hModule, "clCreateProgramWithSource");
|
||||
*(void**)&cl_CreateProgramWithBinary = GetProcAddress(hModule, "clCreateProgramWithBinary");
|
||||
*(void**)&cl_CreateProgramWithBuiltInKernels = GetProcAddress(hModule, "clCreateProgramWithBuiltInKernels");
|
||||
*(void**)&cl_RetainProgram = GetProcAddress(hModule, "clRetainProgram");
|
||||
*(void**)&cl_ReleaseProgram = GetProcAddress(hModule, "clReleaseProgram");
|
||||
*(void**)&cl_BuildProgram = GetProcAddress(hModule, "clBuildProgram");
|
||||
*(void**)&cl_CompileProgram = GetProcAddress(hModule, "clCompileProgram");
|
||||
*(void**)&cl_LinkProgram = GetProcAddress(hModule, "clLinkProgram");
|
||||
*(void**)&cl_UnloadPlatformCompiler = GetProcAddress(hModule, "clUnloadPlatformCompiler");
|
||||
*(void**)&cl_GetProgramInfo = GetProcAddress(hModule, "clGetProgramInfo");
|
||||
*(void**)&cl_GetProgramBuildInfo = GetProcAddress(hModule, "clGetProgramBuildInfo");
|
||||
*(void**)&cl_CreateKernel = GetProcAddress(hModule, "clCreateKernel");
|
||||
*(void**)&cl_CreateKernelsInProgram = GetProcAddress(hModule, "clCreateKernelsInProgram");
|
||||
*(void**)&cl_RetainKernel = GetProcAddress(hModule, "clRetainKernel");
|
||||
*(void**)&cl_ReleaseKernel = GetProcAddress(hModule, "clReleaseKernel");
|
||||
*(void**)&cl_SetKernelArg = GetProcAddress(hModule, "clSetKernelArg");
|
||||
*(void**)&cl_SetKernelArgSVMPointer = GetProcAddress(hModule, "clSetKernelArgSVMPointer");
|
||||
*(void**)&cl_SetKernelExecInfo = GetProcAddress(hModule, "clSetKernelExecInfo");
|
||||
*(void**)&cl_GetKernelInfo = GetProcAddress(hModule, "clGetKernelInfo");
|
||||
*(void**)&cl_GetKernelArgInfo = GetProcAddress(hModule, "clGetKernelArgInfo");
|
||||
*(void**)&cl_GetKernelWorkGroupInfo = GetProcAddress(hModule, "clGetKernelWorkGroupInfo");
|
||||
*(void**)&cl_WaitForEvents = GetProcAddress(hModule, "clWaitForEvents");
|
||||
*(void**)&cl_GetEventInfo = GetProcAddress(hModule, "clGetEventInfo");
|
||||
*(void**)&cl_CreateUserEvent = GetProcAddress(hModule, "clCreateUserEvent");
|
||||
*(void**)&cl_RetainEvent = GetProcAddress(hModule, "clRetainEvent");
|
||||
*(void**)&cl_ReleaseEvent = GetProcAddress(hModule, "clReleaseEvent");
|
||||
*(void**)&cl_SetUserEventStatus = GetProcAddress(hModule, "clSetUserEventStatus");
|
||||
*(void**)&cl_SetEventCallback = GetProcAddress(hModule, "clSetEventCallback");
|
||||
*(void**)&cl_GetEventProfilingInfo = GetProcAddress(hModule, "clGetEventProfilingInfo");
|
||||
*(void**)&cl_Flush = GetProcAddress(hModule, "clFlush");
|
||||
*(void**)&cl_Finish = GetProcAddress(hModule, "clFinish");
|
||||
*(void**)&cl_EnqueueReadBuffer = GetProcAddress(hModule, "clEnqueueReadBuffer");
|
||||
*(void**)&cl_EnqueueReadBufferRect = GetProcAddress(hModule, "clEnqueueReadBufferRect");
|
||||
*(void**)&cl_EnqueueWriteBuffer = GetProcAddress(hModule, "clEnqueueWriteBuffer");
|
||||
*(void**)&cl_EnqueueWriteBufferRect = GetProcAddress(hModule, "clEnqueueWriteBufferRect");
|
||||
*(void**)&cl_EnqueueFillBuffer = GetProcAddress(hModule, "clEnqueueFillBuffer");
|
||||
*(void**)&cl_EnqueueCopyBuffer = GetProcAddress(hModule, "clEnqueueCopyBuffer");
|
||||
*(void**)&cl_EnqueueCopyBufferRect = GetProcAddress(hModule, "clEnqueueCopyBufferRect");
|
||||
*(void**)&cl_EnqueueReadImage = GetProcAddress(hModule, "clEnqueueReadImage");
|
||||
*(void**)&cl_EnqueueWriteImage = GetProcAddress(hModule, "clEnqueueWriteImage");
|
||||
*(void**)&cl_EnqueueFillImage = GetProcAddress(hModule, "clEnqueueFillImage");
|
||||
*(void**)&cl_EnqueueCopyImage = GetProcAddress(hModule, "clEnqueueCopyImage");
|
||||
*(void**)&cl_EnqueueCopyImageToBuffer = GetProcAddress(hModule, "clEnqueueCopyImageToBuffer");
|
||||
*(void**)&cl_EnqueueCopyBufferToImage = GetProcAddress(hModule, "clEnqueueCopyBufferToImage");
|
||||
*(void**)&cl_EnqueueMapBuffer = GetProcAddress(hModule, "clEnqueueMapBuffer");
|
||||
*(void**)&cl_EnqueueMapImage = GetProcAddress(hModule, "clEnqueueMapImage");
|
||||
*(void**)&cl_EnqueueUnmapMemObject = GetProcAddress(hModule, "clEnqueueUnmapMemObject");
|
||||
*(void**)&cl_EnqueueMigrateMemObjects = GetProcAddress(hModule, "clEnqueueMigrateMemObjects");
|
||||
*(void**)&cl_EnqueueNDRangeKernel = GetProcAddress(hModule, "clEnqueueNDRangeKernel");
|
||||
*(void**)&cl_EnqueueNativeKernel = GetProcAddress(hModule, "clEnqueueNativeKernel");
|
||||
*(void**)&cl_EnqueueMarkerWithWaitList = GetProcAddress(hModule, "clEnqueueMarkerWithWaitList");
|
||||
*(void**)&cl_EnqueueBarrierWithWaitList = GetProcAddress(hModule, "clEnqueueBarrierWithWaitList");
|
||||
*(void**)&cl_EnqueueSVMFree = GetProcAddress(hModule, "clEnqueueSVMFree");
|
||||
*(void**)&cl_EnqueueSVMMemcpy = GetProcAddress(hModule, "clEnqueueSVMMemcpy");
|
||||
*(void**)&cl_EnqueueSVMMemFill = GetProcAddress(hModule, "clEnqueueSVMMemFill");
|
||||
*(void**)&cl_EnqueueSVMMap = GetProcAddress(hModule, "clEnqueueSVMMap");
|
||||
*(void**)&cl_EnqueueSVMUnmap = GetProcAddress(hModule, "clEnqueueSVMUnmap");
|
||||
*(void**)&cl_GetExtensionFunctionAddressForPlatform = GetProcAddress(hModule, "clGetExtensionFunctionAddressForPlatform");
|
||||
*(void**)&cl_CreateImage2D = GetProcAddress(hModule, "clCreateImage2D");
|
||||
*(void**)&cl_CreateImage3D = GetProcAddress(hModule, "clCreateImage3D");
|
||||
*(void**)&cl_EnqueueMarker = GetProcAddress(hModule, "clEnqueueMarker");
|
||||
*(void**)&cl_EnqueueWaitForEvents = GetProcAddress(hModule, "clEnqueueWaitForEvents");
|
||||
*(void**)&cl_EnqueueBarrier = GetProcAddress(hModule, "clEnqueueBarrier");
|
||||
*(void**)&cl_UnloadCompiler = GetProcAddress(hModule, "clUnloadCompiler");
|
||||
*(void**)&cl_GetExtensionFunctionAddress = GetProcAddress(hModule, "clGetExtensionFunctionAddress");
|
||||
*(void**)&cl_CreateCommandQueue = GetProcAddress(hModule, "clCreateCommandQueue");
|
||||
*(void**)&cl_CreateSampler = GetProcAddress(hModule, "clCreateSampler");
|
||||
*(void**)&cl_EnqueueTask = GetProcAddress(hModule, "clEnqueueTask");
|
||||
}
|
||||
} s_loader;
|
||||
|
||||
cl_int CL_API_CALL clGetPlatformIDs(cl_uint num_entries, cl_platform_id* platforms, cl_uint* num_platforms) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_GetPlatformIDs(num_entries, platforms, num_platforms);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clGetPlatformInfo(cl_platform_id platform, cl_platform_info param_name, size_t param_value_size, void* param_value, size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_GetPlatformInfo(platform, param_name, param_value_size, param_value, param_value_size_ret);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clGetDeviceIDs(cl_platform_id platform, cl_device_type device_type, cl_uint num_entries, cl_device_id* devices, cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_GetDeviceIDs(platform, device_type, num_entries, devices, num_devices);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clGetDeviceInfo(cl_device_id device, cl_device_info param_name, size_t param_value_size, void* param_value, size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_GetDeviceInfo(device, param_name, param_value_size, param_value, param_value_size_ret);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clCreateSubDevices(cl_device_id in_device, const cl_device_partition_property* properties, cl_uint num_devices, cl_device_id* out_devices, cl_uint* num_devices_ret) CL_API_SUFFIX__VERSION_1_2
|
||||
{
|
||||
return cl_CreateSubDevices(in_device, properties, num_devices, out_devices, num_devices_ret);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clRetainDevice(cl_device_id device) CL_API_SUFFIX__VERSION_1_2
|
||||
{
|
||||
return cl_RetainDevice(device);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clReleaseDevice(cl_device_id device) CL_API_SUFFIX__VERSION_1_2
|
||||
{
|
||||
return cl_ReleaseDevice(device);
|
||||
}
|
||||
|
||||
cl_context CL_API_CALL clCreateContext(const cl_context_properties* properties, cl_uint num_devices, const cl_device_id* devices, void (CL_CALLBACK* pfn_notify)(const char*, const void*, size_t, void*), void* user_data, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_CreateContext(properties, num_devices, devices, pfn_notify, user_data, errcode_ret);
|
||||
}
|
||||
|
||||
cl_context CL_API_CALL clCreateContextFromType(const cl_context_properties* properties, cl_device_type device_type, void (CL_CALLBACK* pfn_notify)(const char*, const void*, size_t, void*), void* user_data, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_CreateContextFromType(properties, device_type, pfn_notify, user_data, errcode_ret);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clRetainContext(cl_context context) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_RetainContext(context);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clReleaseContext(cl_context context) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_ReleaseContext(context);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clGetContextInfo(cl_context context, cl_context_info param_name, size_t param_value_size, void* param_value, size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_GetContextInfo(context, param_name, param_value_size, param_value, param_value_size_ret);
|
||||
}
|
||||
|
||||
cl_command_queue CL_API_CALL clCreateCommandQueueWithProperties(cl_context context, cl_device_id device, const cl_queue_properties* properties, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_2_0
|
||||
{
|
||||
return cl_CreateCommandQueueWithProperties(context, device, properties, errcode_ret);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clRetainCommandQueue(cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_RetainCommandQueue(command_queue);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clReleaseCommandQueue(cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_ReleaseCommandQueue(command_queue);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clGetCommandQueueInfo(cl_command_queue command_queue, cl_command_queue_info param_name, size_t param_value_size, void* param_value, size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_GetCommandQueueInfo(command_queue, param_name, param_value_size, param_value, param_value_size_ret);
|
||||
}
|
||||
|
||||
cl_mem CL_API_CALL clCreateBuffer(cl_context context, cl_mem_flags flags, size_t size, void* host_ptr, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_CreateBuffer(context, flags, size, host_ptr, errcode_ret);
|
||||
}
|
||||
|
||||
cl_mem CL_API_CALL clCreateSubBuffer(cl_mem buffer, cl_mem_flags flags, cl_buffer_create_type buffer_create_type, const void* buffer_create_info, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1
|
||||
{
|
||||
return cl_CreateSubBuffer(buffer, flags, buffer_create_type, buffer_create_info, errcode_ret);
|
||||
}
|
||||
|
||||
cl_mem CL_API_CALL clCreateImage(cl_context context, cl_mem_flags flags, const cl_image_format* image_format, const cl_image_desc* image_desc, void* host_ptr, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2
|
||||
{
|
||||
return cl_CreateImage(context, flags, image_format, image_desc, host_ptr, errcode_ret);
|
||||
}
|
||||
|
||||
cl_mem CL_API_CALL clCreatePipe(cl_context context, cl_mem_flags flags, cl_uint pipe_packet_size, cl_uint pipe_max_packets, const cl_pipe_properties* properties, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_2_0
|
||||
{
|
||||
return cl_CreatePipe(context, flags, pipe_packet_size, pipe_max_packets, properties, errcode_ret);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clRetainMemObject(cl_mem memobj) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_RetainMemObject(memobj);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clReleaseMemObject(cl_mem memobj) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_ReleaseMemObject(memobj);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clGetSupportedImageFormats(cl_context context, cl_mem_flags flags, cl_mem_object_type image_type, cl_uint num_entries, cl_image_format* image_formats, cl_uint* num_image_formats) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_GetSupportedImageFormats(context, flags, image_type, num_entries, image_formats, num_image_formats);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clGetMemObjectInfo(cl_mem memobj, cl_mem_info param_name, size_t param_value_size, void* param_value, size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_GetMemObjectInfo(memobj, param_name, param_value_size, param_value, param_value_size_ret);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clGetImageInfo(cl_mem image, cl_image_info param_name, size_t param_value_size, void* param_value, size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_GetImageInfo(image, param_name, param_value_size, param_value, param_value_size_ret);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clGetPipeInfo(cl_mem pipe, cl_pipe_info param_name, size_t param_value_size, void* param_value, size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_2_0
|
||||
{
|
||||
return cl_GetPipeInfo(pipe, param_name, param_value_size, param_value, param_value_size_ret);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clSetMemObjectDestructorCallback(cl_mem memobj, void (CL_CALLBACK* pfn_notify)(cl_mem memobj, void* user_data), void* user_data) CL_API_SUFFIX__VERSION_1_1
|
||||
{
|
||||
return cl_SetMemObjectDestructorCallback(memobj, pfn_notify, user_data);
|
||||
}
|
||||
|
||||
void* CL_API_CALL clSVMAlloc(cl_context context, cl_svm_mem_flags flags, size_t size, cl_uint alignment) CL_API_SUFFIX__VERSION_2_0
|
||||
{
|
||||
return cl_SVMAlloc(context, flags, size, alignment);
|
||||
}
|
||||
|
||||
void CL_API_CALL clSVMFree(cl_context context, void* svm_pointer) CL_API_SUFFIX__VERSION_2_0
|
||||
{
|
||||
cl_SVMFree(context, svm_pointer);
|
||||
}
|
||||
|
||||
cl_sampler CL_API_CALL clCreateSamplerWithProperties(cl_context context, const cl_sampler_properties* normalized_coords, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_2_0
|
||||
{
|
||||
return cl_CreateSamplerWithProperties(context, normalized_coords, errcode_ret);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clRetainSampler(cl_sampler sampler) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_RetainSampler(sampler);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clReleaseSampler(cl_sampler sampler) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_ReleaseSampler(sampler);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clGetSamplerInfo(cl_sampler sampler, cl_sampler_info param_name, size_t param_value_size, void* param_value, size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_GetSamplerInfo(sampler, param_name, param_value_size, param_value, param_value_size_ret);
|
||||
}
|
||||
|
||||
cl_program CL_API_CALL clCreateProgramWithSource(cl_context context, cl_uint count, const char** strings, const size_t* lengths, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_CreateProgramWithSource(context, count, strings, lengths, errcode_ret);
|
||||
}
|
||||
|
||||
cl_program CL_API_CALL clCreateProgramWithBinary(cl_context context, cl_uint num_devices, const cl_device_id* device_list, const size_t* lengths, const unsigned char** binaries, cl_int* binary_status, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_CreateProgramWithBinary(context, num_devices, device_list, lengths, binaries, binary_status, errcode_ret);
|
||||
}
|
||||
|
||||
cl_program CL_API_CALL clCreateProgramWithBuiltInKernels(cl_context context, cl_uint num_devices, const cl_device_id* device_list, const char* kernel_names, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2
|
||||
{
|
||||
return cl_CreateProgramWithBuiltInKernels(context, num_devices, device_list, kernel_names, errcode_ret);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clRetainProgram(cl_program program) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_RetainProgram(program);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clReleaseProgram(cl_program program) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_ReleaseProgram(program);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clBuildProgram(cl_program program, cl_uint num_devices, const cl_device_id* device_list, const char* options, void (CL_CALLBACK* pfn_notify)(cl_program program, void* user_data), void* user_data) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_BuildProgram(program, num_devices, device_list, options, pfn_notify, user_data);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clCompileProgram(cl_program program, cl_uint num_devices, const cl_device_id* device_list, const char* options, cl_uint num_input_headers, const cl_program* input_headers, const char** header_include_names, void (CL_CALLBACK* pfn_notify)(cl_program program, void* user_data), void* user_data) CL_API_SUFFIX__VERSION_1_2
|
||||
{
|
||||
return cl_CompileProgram(program, num_devices, device_list, options, num_input_headers, input_headers, header_include_names, pfn_notify, user_data);
|
||||
}
|
||||
|
||||
cl_program CL_API_CALL clLinkProgram(cl_context context, cl_uint num_devices, const cl_device_id* device_list, const char* options, cl_uint num_input_programs, const cl_program* input_programs, void (CL_CALLBACK* pfn_notify)(cl_program program, void* user_data), void* user_data, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2
|
||||
{
|
||||
return cl_LinkProgram(context, num_devices, device_list, options, num_input_programs, input_programs, pfn_notify, user_data, errcode_ret);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clUnloadPlatformCompiler(cl_platform_id platform) CL_API_SUFFIX__VERSION_1_2
|
||||
{
|
||||
return cl_UnloadPlatformCompiler(platform);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clGetProgramInfo(cl_program program, cl_program_info param_name, size_t param_value_size, void* param_value, size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_GetProgramInfo(program, param_name, param_value_size, param_value, param_value_size_ret);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clGetProgramBuildInfo(cl_program program, cl_device_id device, cl_program_build_info param_name, size_t param_value_size, void* param_value, size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_GetProgramBuildInfo(program, device, param_name, param_value_size, param_value, param_value_size_ret);
|
||||
}
|
||||
|
||||
cl_kernel CL_API_CALL clCreateKernel(cl_program program, const char* kernel_name, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_CreateKernel(program, kernel_name, errcode_ret);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clCreateKernelsInProgram(cl_program program, cl_uint num_kernels, cl_kernel* kernels, cl_uint* num_kernels_ret) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_CreateKernelsInProgram(program, num_kernels, kernels, num_kernels_ret);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clRetainKernel(cl_kernel kernel) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_RetainKernel(kernel);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clReleaseKernel(cl_kernel kernel) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_ReleaseKernel(kernel);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clSetKernelArg(cl_kernel kernel, cl_uint arg_index, size_t arg_size, const void* arg_value) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_SetKernelArg(kernel, arg_index, arg_size, arg_value);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clSetKernelArgSVMPointer(cl_kernel kernel, cl_uint arg_index, const void* arg_value) CL_API_SUFFIX__VERSION_2_0
|
||||
{
|
||||
return cl_SetKernelArgSVMPointer(kernel, arg_index, arg_value);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clSetKernelExecInfo(cl_kernel kernel, cl_kernel_exec_info param_name, size_t param_value_size, const void* param_value) CL_API_SUFFIX__VERSION_2_0
|
||||
{
|
||||
return cl_SetKernelExecInfo(kernel, param_name, param_value_size, param_value);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clGetKernelInfo(cl_kernel kernel, cl_kernel_info param_name, size_t param_value_size, void* param_value, size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_GetKernelInfo(kernel, param_name, param_value_size, param_value, param_value_size_ret);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clGetKernelArgInfo(cl_kernel kernel, cl_uint arg_indx, cl_kernel_arg_info param_name, size_t param_value_size, void* param_value, size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_2
|
||||
{
|
||||
return cl_GetKernelArgInfo(kernel, arg_indx, param_name, param_value_size, param_value, param_value_size_ret);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clGetKernelWorkGroupInfo(cl_kernel kernel, cl_device_id device, cl_kernel_work_group_info param_name, size_t param_value_size, void* param_value, size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_GetKernelWorkGroupInfo(kernel, device, param_name, param_value_size, param_value, param_value_size_ret);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clWaitForEvents(cl_uint num_events, const cl_event* event_list) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_WaitForEvents(num_events, event_list);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clGetEventInfo(cl_event event, cl_event_info param_name, size_t param_value_size, void* param_value, size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_GetEventInfo(event, param_name, param_value_size, param_value, param_value_size_ret);
|
||||
}
|
||||
|
||||
cl_event CL_API_CALL clCreateUserEvent(cl_context context, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1
|
||||
{
|
||||
return cl_CreateUserEvent(context, errcode_ret);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clRetainEvent(cl_event event) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_RetainEvent(event);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clReleaseEvent(cl_event event) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_ReleaseEvent(event);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clSetUserEventStatus(cl_event event, cl_int execution_status) CL_API_SUFFIX__VERSION_1_1
|
||||
{
|
||||
return cl_SetUserEventStatus(event, execution_status);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clSetEventCallback(cl_event event, cl_int command_exec_callback_type, void (CL_CALLBACK* pfn_notify)(cl_event, cl_int, void*), void* user_data) CL_API_SUFFIX__VERSION_1_1
|
||||
{
|
||||
return cl_SetEventCallback(event, command_exec_callback_type, pfn_notify, user_data);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clGetEventProfilingInfo(cl_event event, cl_profiling_info param_name, size_t param_value_size, void* param_value, size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_GetEventProfilingInfo(event, param_name, param_value_size, param_value, param_value_size_ret);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clFlush(cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_Flush(command_queue);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clFinish(cl_command_queue command_queue) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_Finish(command_queue);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clEnqueueReadBuffer(cl_command_queue command_queue, cl_mem buffer, cl_bool blocking_read, size_t offset, size_t size, void* ptr, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_EnqueueReadBuffer(command_queue, buffer, blocking_read, offset, size, ptr, num_events_in_wait_list, event_wait_list, event);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clEnqueueReadBufferRect(cl_command_queue command_queue, cl_mem buffer, cl_bool blocking_read, const size_t* buffer_offset, const size_t* host_offset, const size_t* region, size_t buffer_row_pitch, size_t buffer_slice_pitch, size_t host_row_pitch, size_t host_slice_pitch, void* ptr, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_1
|
||||
{
|
||||
return cl_EnqueueReadBufferRect(command_queue, buffer, blocking_read, buffer_offset, host_offset, region, buffer_row_pitch, buffer_slice_pitch, host_row_pitch, host_slice_pitch, ptr, num_events_in_wait_list, event_wait_list, event);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clEnqueueWriteBuffer(cl_command_queue command_queue, cl_mem buffer, cl_bool blocking_write, size_t offset, size_t size, const void* ptr, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_EnqueueWriteBuffer(command_queue, buffer, blocking_write, offset, size, ptr, num_events_in_wait_list, event_wait_list, event);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clEnqueueWriteBufferRect(cl_command_queue command_queue, cl_mem buffer, cl_bool blocking_write, const size_t* buffer_offset, const size_t* host_offset, const size_t* region, size_t buffer_row_pitch, size_t buffer_slice_pitch, size_t host_row_pitch, size_t host_slice_pitch, const void* ptr, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_1
|
||||
{
|
||||
return cl_EnqueueWriteBufferRect(command_queue, buffer, blocking_write, buffer_offset, host_offset, region, buffer_row_pitch, buffer_slice_pitch, host_row_pitch, host_slice_pitch, ptr, num_events_in_wait_list, event_wait_list, event);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clEnqueueFillBuffer(cl_command_queue command_queue, cl_mem buffer, const void* pattern, size_t pattern_size, size_t offset, size_t size, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2
|
||||
{
|
||||
return cl_EnqueueFillBuffer(command_queue, buffer, pattern, pattern_size, offset, size, num_events_in_wait_list, event_wait_list, event);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clEnqueueCopyBuffer(cl_command_queue command_queue, cl_mem src_buffer, cl_mem dst_buffer, size_t src_offset, size_t dst_offset, size_t size, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_EnqueueCopyBuffer(command_queue, src_buffer, dst_buffer, src_offset, dst_offset, size, num_events_in_wait_list, event_wait_list, event);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clEnqueueCopyBufferRect(cl_command_queue command_queue, cl_mem src_buffer, cl_mem dst_buffer, const size_t* src_origin, const size_t* dst_origin, const size_t* region, size_t src_row_pitch, size_t src_slice_pitch, size_t dst_row_pitch, size_t dst_slice_pitch, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_1
|
||||
{
|
||||
return cl_EnqueueCopyBufferRect(command_queue, src_buffer, dst_buffer, src_origin, dst_origin, region, src_row_pitch, src_slice_pitch, dst_row_pitch, dst_slice_pitch, num_events_in_wait_list, event_wait_list, event);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clEnqueueReadImage(cl_command_queue command_queue, cl_mem image, cl_bool blocking_read, const size_t* origin, const size_t* region, size_t row_pitch, size_t slice_pitch, void* ptr, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_EnqueueReadImage(command_queue, image, blocking_read, origin, region, row_pitch, slice_pitch, ptr, num_events_in_wait_list, event_wait_list, event);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clEnqueueWriteImage(cl_command_queue command_queue, cl_mem image, cl_bool blocking_write, const size_t* origin, const size_t* region, size_t input_row_pitch, size_t input_slice_pitch, const void* ptr, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_EnqueueWriteImage(command_queue, image, blocking_write, origin, region, input_row_pitch, input_slice_pitch, ptr, num_events_in_wait_list, event_wait_list, event);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clEnqueueFillImage(cl_command_queue command_queue, cl_mem image, const void* fill_color, const size_t* origin, const size_t* region, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2
|
||||
{
|
||||
return cl_EnqueueFillImage(command_queue, image, fill_color, origin, region, num_events_in_wait_list, event_wait_list, event);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clEnqueueCopyImage(cl_command_queue command_queue, cl_mem src_image, cl_mem dst_image, const size_t* src_origin, const size_t* dst_origin, const size_t* region, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_EnqueueCopyImage(command_queue, src_image, dst_image, src_origin, dst_origin, region, num_events_in_wait_list, event_wait_list, event);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clEnqueueCopyImageToBuffer(cl_command_queue command_queue, cl_mem src_image, cl_mem dst_buffer, const size_t* src_origin, const size_t* region, size_t dst_offset, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_EnqueueCopyImageToBuffer(command_queue, src_image, dst_buffer, src_origin, region, dst_offset, num_events_in_wait_list, event_wait_list, event);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clEnqueueCopyBufferToImage(cl_command_queue command_queue, cl_mem src_buffer, cl_mem dst_image, size_t src_offset, const size_t* dst_origin, const size_t* region, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_EnqueueCopyBufferToImage(command_queue, src_buffer, dst_image, src_offset, dst_origin, region, num_events_in_wait_list, event_wait_list, event);
|
||||
}
|
||||
|
||||
void* CL_API_CALL clEnqueueMapBuffer(cl_command_queue command_queue, cl_mem buffer, cl_bool blocking_map, cl_map_flags map_flags, size_t offset, size_t size, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_EnqueueMapBuffer(command_queue, buffer, blocking_map, map_flags, offset, size, num_events_in_wait_list, event_wait_list, event, errcode_ret);
|
||||
}
|
||||
|
||||
void* CL_API_CALL clEnqueueMapImage(cl_command_queue command_queue, cl_mem image, cl_bool blocking_map, cl_map_flags map_flags, const size_t* origin, const size_t* region, size_t* image_row_pitch, size_t* image_slice_pitch, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event, cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_EnqueueMapImage(command_queue, image, blocking_map, map_flags, origin, region, image_row_pitch, image_slice_pitch, num_events_in_wait_list, event_wait_list, event, errcode_ret);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clEnqueueUnmapMemObject(cl_command_queue command_queue, cl_mem memobj, void* mapped_ptr, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_EnqueueUnmapMemObject(command_queue, memobj, mapped_ptr, num_events_in_wait_list, event_wait_list, event);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clEnqueueMigrateMemObjects(cl_command_queue command_queue, cl_uint num_mem_objects, const cl_mem* mem_objects, cl_mem_migration_flags flags, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2
|
||||
{
|
||||
return cl_EnqueueMigrateMemObjects(command_queue, num_mem_objects, mem_objects, flags, num_events_in_wait_list, event_wait_list, event);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clEnqueueNDRangeKernel(cl_command_queue command_queue, cl_kernel kernel, cl_uint work_dim, const size_t* global_work_offset, const size_t* global_work_size, const size_t* local_work_size, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_EnqueueNDRangeKernel(command_queue, kernel, work_dim, global_work_offset, global_work_size, local_work_size, num_events_in_wait_list, event_wait_list, event);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clEnqueueNativeKernel(cl_command_queue command_queue, void (CL_CALLBACK* user_func)(void*), void* args, size_t cb_args, cl_uint num_mem_objects, const cl_mem* mem_list, const void** args_mem_loc, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_0
|
||||
{
|
||||
return cl_EnqueueNativeKernel(command_queue, user_func, args, cb_args, num_mem_objects, mem_list, args_mem_loc, num_events_in_wait_list, event_wait_list, event);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clEnqueueMarkerWithWaitList(cl_command_queue command_queue, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2
|
||||
{
|
||||
return cl_EnqueueMarkerWithWaitList(command_queue, num_events_in_wait_list, event_wait_list, event);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clEnqueueBarrierWithWaitList(cl_command_queue command_queue, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_1_2
|
||||
{
|
||||
return cl_EnqueueBarrierWithWaitList(command_queue, num_events_in_wait_list, event_wait_list, event);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clEnqueueSVMFree(cl_command_queue command_queue, cl_uint num_svm_pointers, void* svm_pointers[], void (CL_CALLBACK* pfn_free_func)(cl_command_queue queue, cl_uint num_svm_pointers, void* svm_pointers[], void* user_data), void* user_data, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_2_0
|
||||
{
|
||||
return cl_EnqueueSVMFree(command_queue, num_svm_pointers, svm_pointers, pfn_free_func, user_data, num_events_in_wait_list, event_wait_list, event);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clEnqueueSVMMemcpy(cl_command_queue command_queue, cl_bool blocking_copy, void* dst_ptr, const void* src_ptr, size_t size, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_2_0
|
||||
{
|
||||
return cl_EnqueueSVMMemcpy(command_queue, blocking_copy, dst_ptr, src_ptr, size, num_events_in_wait_list, event_wait_list, event);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clEnqueueSVMMemFill(cl_command_queue command_queue, void* svm_ptr, const void* pattern, size_t pattern_size, size_t size, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_2_0
|
||||
{
|
||||
return cl_EnqueueSVMMemFill(command_queue, svm_ptr, pattern, pattern_size, size, num_events_in_wait_list, event_wait_list, event);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clEnqueueSVMMap(cl_command_queue command_queue, cl_bool blocking_map, cl_map_flags flags, void* svm_ptr, size_t size, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_2_0
|
||||
{
|
||||
return cl_EnqueueSVMMap(command_queue, blocking_map, flags, svm_ptr, size, num_events_in_wait_list, event_wait_list, event);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clEnqueueSVMUnmap(cl_command_queue command_queue, void* svm_ptr, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event) CL_API_SUFFIX__VERSION_2_0
|
||||
{
|
||||
return cl_EnqueueSVMUnmap(command_queue, svm_ptr, num_events_in_wait_list, event_wait_list, event);
|
||||
}
|
||||
|
||||
void* CL_API_CALL clGetExtensionFunctionAddressForPlatform(cl_platform_id platform, const char* func_name) CL_API_SUFFIX__VERSION_1_2
|
||||
{
|
||||
return cl_GetExtensionFunctionAddressForPlatform(platform, func_name);
|
||||
}
|
||||
|
||||
cl_mem CL_API_CALL clCreateImage2D(cl_context context, cl_mem_flags flags, const cl_image_format* image_format, size_t image_width, size_t image_height, size_t image_row_pitch, void* host_ptr, cl_int* errcode_ret)
|
||||
{
|
||||
return cl_CreateImage2D(context, flags, image_format, image_width, image_height, image_row_pitch, host_ptr, errcode_ret);
|
||||
}
|
||||
|
||||
cl_mem CL_API_CALL clCreateImage3D(cl_context context, cl_mem_flags flags, const cl_image_format* image_format, size_t image_width, size_t image_height, size_t image_depth, size_t image_row_pitch, size_t image_slice_pitch, void* host_ptr, cl_int* errcode_ret)
|
||||
{
|
||||
return cl_CreateImage3D(context, flags, image_format, image_width, image_height, image_depth, image_row_pitch, image_slice_pitch, host_ptr, errcode_ret);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clEnqueueMarker(cl_command_queue command_queue, cl_event* event)
|
||||
{
|
||||
return cl_EnqueueMarker(command_queue, event);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clEnqueueWaitForEvents(cl_command_queue command_queue, cl_uint num_events, const cl_event* event_list)
|
||||
{
|
||||
return cl_EnqueueWaitForEvents(command_queue, num_events, event_list);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clEnqueueBarrier(cl_command_queue command_queue)
|
||||
{
|
||||
return cl_EnqueueBarrier(command_queue);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clUnloadCompiler(void)
|
||||
{
|
||||
return cl_UnloadCompiler();
|
||||
}
|
||||
|
||||
void* CL_API_CALL clGetExtensionFunctionAddress(const char* func_name)
|
||||
{
|
||||
return cl_GetExtensionFunctionAddress(func_name);
|
||||
}
|
||||
|
||||
cl_command_queue CL_API_CALL clCreateCommandQueue(cl_context context, cl_device_id device, cl_command_queue_properties properties, cl_int* errcode_ret)
|
||||
{
|
||||
return cl_CreateCommandQueue(context, device, properties, errcode_ret);
|
||||
}
|
||||
|
||||
cl_sampler CL_API_CALL clCreateSampler(cl_context context, cl_bool normalized_coords, cl_addressing_mode addressing_mode, cl_filter_mode filter_mode, cl_int* errcode_ret)
|
||||
{
|
||||
return cl_CreateSampler(context, normalized_coords, addressing_mode, filter_mode, errcode_ret);
|
||||
}
|
||||
|
||||
cl_int CL_API_CALL clEnqueueTask(cl_command_queue command_queue, cl_kernel kernel, cl_uint num_events_in_wait_list, const cl_event* event_wait_list, cl_event* event)
|
||||
{
|
||||
return cl_EnqueueTask(command_queue, kernel, num_events_in_wait_list, event_wait_list, event);
|
||||
}
|
||||
160
3rdparty/opencl/opencl.vcxproj
vendored
Normal file
160
3rdparty/opencl/opencl.vcxproj
vendored
Normal file
@@ -0,0 +1,160 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{D80D4A75-C385-41BD-AE62-83D2E2B595A7}</ProjectGuid>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<RootNamespace>opencl</RootNamespace>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="..\DefaultProjectRootDir.props" />
|
||||
<Import Project="..\3rdparty.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="..\DefaultProjectRootDir.props" />
|
||||
<Import Project="..\3rdparty.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="..\DefaultProjectRootDir.props" />
|
||||
<Import Project="..\3rdparty.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="..\DefaultProjectRootDir.props" />
|
||||
<Import Project="..\3rdparty.props" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
<Lib />
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
</Link>
|
||||
<Lib />
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="CL\cl.h" />
|
||||
<ClInclude Include="CL\cl.hpp" />
|
||||
<ClInclude Include="CL\cl_d3d10.h" />
|
||||
<ClInclude Include="CL\cl_d3d11.h" />
|
||||
<ClInclude Include="CL\cl_d3d9.h" />
|
||||
<ClInclude Include="CL\cl_egl.h" />
|
||||
<ClInclude Include="CL\cl_ext.h" />
|
||||
<ClInclude Include="CL\cl_gl.h" />
|
||||
<ClInclude Include="CL\cl_gl_ext.h" />
|
||||
<ClInclude Include="CL\cl_platform.h" />
|
||||
<ClInclude Include="CL\opencl.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="opencl.cpp" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
57
3rdparty/opencl/opencl.vcxproj.filters
vendored
Normal file
57
3rdparty/opencl/opencl.vcxproj.filters
vendored
Normal file
@@ -0,0 +1,57 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Resource Files">
|
||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="CL\cl.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="CL\cl.hpp">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="CL\cl_d3d10.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="CL\cl_d3d11.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="CL\cl_d3d9.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="CL\cl_egl.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="CL\cl_ext.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="CL\cl_gl.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="CL\cl_gl_ext.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="CL\cl_platform.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="CL\opencl.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="opencl.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
349
3rdparty/portaudio/CMakeLists.txt
vendored
349
3rdparty/portaudio/CMakeLists.txt
vendored
@@ -1,349 +0,0 @@
|
||||
# $Id: $
|
||||
#
|
||||
# For a "How-To" please refer to the Portaudio documentation at:
|
||||
# http://www.portaudio.com/trac/wiki/TutorialDir/Compile/CMake
|
||||
#
|
||||
PROJECT( portaudio )
|
||||
|
||||
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
|
||||
|
||||
OPTION(PA_CONFIG_LIB_OUTPUT_PATH "Make sure that output paths are kept neat" OFF)
|
||||
IF(CMAKE_CL_64)
|
||||
SET(TARGET_POSTFIX x64)
|
||||
IF(PA_CONFIG_LIB_OUTPUT_PATH)
|
||||
SET(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/bin/x64)
|
||||
ENDIF(PA_CONFIG_LIB_OUTPUT_PATH)
|
||||
ELSE(CMAKE_CL_64)
|
||||
SET(TARGET_POSTFIX x86)
|
||||
IF(PA_CONFIG_LIB_OUTPUT_PATH)
|
||||
SET(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/bin/Win32)
|
||||
ENDIF(PA_CONFIG_LIB_OUTPUT_PATH)
|
||||
ENDIF(CMAKE_CL_64)
|
||||
|
||||
OPTION(PA_ENABLE_DEBUG_OUTPUT "Enable debug output for Portaudio" OFF)
|
||||
IF(PA_ENABLE_DEBUG_OUTPUT)
|
||||
ADD_DEFINITIONS(-DPA_ENABLE_DEBUG_OUTPUT)
|
||||
ENDIF(PA_ENABLE_DEBUG_OUTPUT)
|
||||
|
||||
IF(WIN32 AND MSVC)
|
||||
OPTION(PA_DLL_LINK_WITH_STATIC_RUNTIME "Link with static runtime libraries (minimizes runtime dependencies)" ON)
|
||||
IF(PA_DLL_LINK_WITH_STATIC_RUNTIME)
|
||||
FOREACH(flag_var
|
||||
CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE
|
||||
CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO
|
||||
CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE
|
||||
CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO)
|
||||
IF(${flag_var} MATCHES "/MD")
|
||||
STRING(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")
|
||||
ENDIF(${flag_var} MATCHES "/MD")
|
||||
ENDFOREACH(flag_var)
|
||||
ENDIF(PA_DLL_LINK_WITH_STATIC_RUNTIME)
|
||||
|
||||
ENDIF(WIN32 AND MSVC)
|
||||
|
||||
IF(WIN32)
|
||||
OPTION(PA_UNICODE_BUILD "Enable Portaudio Unicode build" ON)
|
||||
|
||||
SET(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake_support)
|
||||
# Try to find DirectX SDK
|
||||
FIND_PACKAGE(DXSDK)
|
||||
# Try to find ASIO SDK (assumes that portaudio and asiosdk folders are side-by-side, see
|
||||
# http://www.portaudio.com/trac/wiki/TutorialDir/Compile/WindowsASIOMSVC)
|
||||
FIND_PACKAGE(ASIOSDK)
|
||||
|
||||
IF(ASIOSDK_FOUND)
|
||||
OPTION(PA_USE_ASIO "Enable support for ASIO" ON)
|
||||
ELSE(ASIOSDK_FOUND)
|
||||
OPTION(PA_USE_ASIO "Enable support for ASIO" OFF)
|
||||
ENDIF(ASIOSDK_FOUND)
|
||||
IF(DXSDK_FOUND)
|
||||
OPTION(PA_USE_DS "Enable support for DirectSound" ON)
|
||||
ELSE(DXSDK_FOUND)
|
||||
OPTION(PA_USE_DS "Enable support for DirectSound" OFF)
|
||||
ENDIF(DXSDK_FOUND)
|
||||
OPTION(PA_USE_WMME "Enable support for MME" ON)
|
||||
OPTION(PA_USE_WASAPI "Enable support for WASAPI" ON)
|
||||
OPTION(PA_USE_WDMKS "Enable support for WDMKS" ON)
|
||||
OPTION(PA_USE_WDMKS_DEVICE_INFO "Use WDM/KS API for device info" ON)
|
||||
MARK_AS_ADVANCED(PA_USE_WDMKS_DEVICE_INFO)
|
||||
IF(PA_USE_DS)
|
||||
OPTION(PA_USE_DIRECTSOUNDFULLDUPLEXCREATE "Use DirectSound full duplex create" ON)
|
||||
MARK_AS_ADVANCED(PA_USE_DIRECTSOUNDFULLDUPLEXCREATE)
|
||||
ENDIF(PA_USE_DS)
|
||||
ENDIF(WIN32)
|
||||
|
||||
# Set variables for DEF file expansion
|
||||
IF(NOT PA_USE_ASIO)
|
||||
SET(DEF_EXCLUDE_ASIO_SYMBOLS ";")
|
||||
ENDIF(NOT PA_USE_ASIO)
|
||||
|
||||
IF(NOT PA_USE_WASAPI)
|
||||
SET(DEF_EXCLUDE_WASAPI_SYMBOLS ";")
|
||||
ENDIF(NOT PA_USE_WASAPI)
|
||||
|
||||
IF(PA_USE_WDMKS_DEVICE_INFO)
|
||||
ADD_DEFINITIONS(-DPAWIN_USE_WDMKS_DEVICE_INFO)
|
||||
ENDIF(PA_USE_WDMKS_DEVICE_INFO)
|
||||
|
||||
IF(PA_USE_DIRECTSOUNDFULLDUPLEXCREATE)
|
||||
ADD_DEFINITIONS(-DPAWIN_USE_DIRECTSOUNDFULLDUPLEXCREATE)
|
||||
ENDIF(PA_USE_DIRECTSOUNDFULLDUPLEXCREATE)
|
||||
|
||||
#######################################
|
||||
IF(WIN32)
|
||||
INCLUDE_DIRECTORIES(src/os/win)
|
||||
ENDIF(WIN32)
|
||||
|
||||
IF(PA_USE_ASIO)
|
||||
INCLUDE_DIRECTORIES(${ASIOSDK_ROOT_DIR}/common)
|
||||
INCLUDE_DIRECTORIES(${ASIOSDK_ROOT_DIR}/host)
|
||||
INCLUDE_DIRECTORIES(${ASIOSDK_ROOT_DIR}/host/pc)
|
||||
|
||||
SET(PA_ASIO_INCLUDES
|
||||
include/pa_asio.h
|
||||
)
|
||||
|
||||
SET(PA_ASIO_SOURCES
|
||||
src/hostapi/asio/pa_asio.cpp
|
||||
)
|
||||
|
||||
SET(PA_ASIOSDK_SOURCES
|
||||
${ASIOSDK_ROOT_DIR}/common/asio.cpp
|
||||
${ASIOSDK_ROOT_DIR}/host/pc/asiolist.cpp
|
||||
${ASIOSDK_ROOT_DIR}/host/asiodrivers.cpp
|
||||
)
|
||||
|
||||
SOURCE_GROUP("hostapi\\ASIO" FILES
|
||||
${PA_ASIO_SOURCES}
|
||||
)
|
||||
|
||||
SOURCE_GROUP("hostapi\\ASIO\\ASIOSDK" FILES
|
||||
${PA_ASIOSDK_SOURCES}
|
||||
)
|
||||
ENDIF(PA_USE_ASIO)
|
||||
|
||||
IF(PA_USE_DS)
|
||||
INCLUDE_DIRECTORIES(${DXSDK_INCLUDE_DIR})
|
||||
INCLUDE_DIRECTORIES(src/os/win)
|
||||
|
||||
SET(PA_DS_INCLUDES
|
||||
include/pa_win_ds.h
|
||||
src/hostapi/dsound/pa_win_ds_dynlink.h
|
||||
)
|
||||
|
||||
SET(PA_DS_SOURCES
|
||||
src/hostapi/dsound/pa_win_ds.c
|
||||
src/hostapi/dsound/pa_win_ds_dynlink.c
|
||||
)
|
||||
|
||||
SOURCE_GROUP("hostapi\\dsound" FILES
|
||||
${PA_DS_INCLUDES}
|
||||
${PA_DS_SOURCES}
|
||||
)
|
||||
ENDIF(PA_USE_DS)
|
||||
|
||||
IF(PA_USE_WMME)
|
||||
|
||||
SET(PA_WMME_INCLUDES
|
||||
include/pa_win_wmme.h
|
||||
)
|
||||
|
||||
SET(PA_WMME_SOURCES
|
||||
src/hostapi/wmme/pa_win_wmme.c
|
||||
)
|
||||
|
||||
SOURCE_GROUP("hostapi\\wmme" FILES
|
||||
${PA_WMME_SOURCES}
|
||||
)
|
||||
ENDIF(PA_USE_WMME)
|
||||
|
||||
IF(PA_USE_WASAPI)
|
||||
|
||||
SET(PA_WASAPI_INCLUDES
|
||||
include/pa_win_wasapi.h
|
||||
)
|
||||
|
||||
SET(PA_WASAPI_SOURCES
|
||||
src/hostapi/wasapi/pa_win_wasapi.c
|
||||
)
|
||||
|
||||
SOURCE_GROUP("hostapi\\wasapi" FILES
|
||||
${PA_WASAPI_SOURCES}
|
||||
)
|
||||
ENDIF(PA_USE_WASAPI)
|
||||
|
||||
IF(PA_USE_WDMKS)
|
||||
|
||||
SET(PA_WDMKS_INCLUDES
|
||||
include/pa_win_wdmks.h
|
||||
)
|
||||
|
||||
SET(PA_WDMKS_SOURCES
|
||||
src/hostapi/wdmks/pa_win_wdmks.c
|
||||
)
|
||||
|
||||
SOURCE_GROUP("hostapi\\wdmks" FILES
|
||||
${PA_WDMKS_SOURCES}
|
||||
)
|
||||
ENDIF(PA_USE_WDMKS)
|
||||
|
||||
SET(PA_SKELETON_SOURCES
|
||||
src/hostapi/skeleton/pa_hostapi_skeleton.c
|
||||
)
|
||||
|
||||
SOURCE_GROUP("hostapi\\skeleton"
|
||||
${PA_SKELETON_SOURCES})
|
||||
|
||||
#######################################
|
||||
IF(WIN32)
|
||||
SET(PA_INCLUDES
|
||||
include/portaudio.h
|
||||
${PA_ASIO_INCLUDES}
|
||||
${PA_DS_INCLUDES}
|
||||
${PA_WMME_INCLUDES}
|
||||
${PA_WASAPI_INCLUDES}
|
||||
${PA_WDMKS_INCLUDES}
|
||||
)
|
||||
ENDIF(WIN32)
|
||||
|
||||
SOURCE_GROUP("include" FILES
|
||||
${PA_INCLUDES}
|
||||
)
|
||||
|
||||
SET(PA_COMMON_INCLUDES
|
||||
src/common/pa_allocation.h
|
||||
src/common/pa_converters.h
|
||||
src/common/pa_cpuload.h
|
||||
src/common/pa_debugprint.h
|
||||
src/common/pa_dither.h
|
||||
src/common/pa_endianness.h
|
||||
src/common/pa_hostapi.h
|
||||
src/common/pa_memorybarrier.h
|
||||
src/common/pa_process.h
|
||||
src/common/pa_ringbuffer.h
|
||||
src/common/pa_stream.h
|
||||
src/common/pa_trace.h
|
||||
src/common/pa_types.h
|
||||
src/common/pa_util.h
|
||||
)
|
||||
|
||||
SET(PA_COMMON_SOURCES
|
||||
src/common/pa_allocation.c
|
||||
src/common/pa_converters.c
|
||||
src/common/pa_cpuload.c
|
||||
src/common/pa_debugprint.c
|
||||
src/common/pa_dither.c
|
||||
src/common/pa_front.c
|
||||
src/common/pa_process.c
|
||||
src/common/pa_ringbuffer.c
|
||||
src/common/pa_stream.c
|
||||
src/common/pa_trace.c
|
||||
)
|
||||
|
||||
SOURCE_GROUP("common" FILES
|
||||
${PA_COMMON_INCLUDES}
|
||||
${PA_COMMON_SOURCES}
|
||||
)
|
||||
|
||||
SOURCE_GROUP("cmake_generated" FILES
|
||||
${CMAKE_CURRENT_BINARY_DIR}/portaudio_cmake.def
|
||||
${CMAKE_CURRENT_BINARY_DIR}/options_cmake.h
|
||||
)
|
||||
|
||||
IF(WIN32)
|
||||
SET(PA_PLATFORM_SOURCES
|
||||
src/os/win/pa_win_hostapis.c
|
||||
src/os/win/pa_win_util.c
|
||||
src/os/win/pa_win_waveformat.c
|
||||
src/os/win/pa_win_wdmks_utils.c
|
||||
src/os/win/pa_win_coinitialize.c
|
||||
src/os/win/pa_x86_plain_converters.c
|
||||
)
|
||||
|
||||
SOURCE_GROUP("os\\win" FILES
|
||||
${PA_PLATFORM_SOURCES}
|
||||
)
|
||||
ENDIF(WIN32)
|
||||
|
||||
INCLUDE_DIRECTORIES( include )
|
||||
INCLUDE_DIRECTORIES( src/common )
|
||||
|
||||
IF(WIN32 AND MSVC)
|
||||
ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS)
|
||||
ENDIF(WIN32 AND MSVC)
|
||||
|
||||
ADD_DEFINITIONS(-DPORTAUDIO_CMAKE_GENERATED)
|
||||
INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_BINARY_DIR} )
|
||||
|
||||
SET(SOURCES_LESS_ASIO_SDK
|
||||
${PA_COMMON_SOURCES}
|
||||
${PA_ASIO_SOURCES}
|
||||
${PA_DS_SOURCES}
|
||||
${PA_WMME_SOURCES}
|
||||
${PA_WASAPI_SOURCES}
|
||||
${PA_WDMKS_SOURCES}
|
||||
${PA_SKELETON_SOURCES}
|
||||
${PA_PLATFORM_SOURCES}
|
||||
)
|
||||
|
||||
IF(PA_UNICODE_BUILD)
|
||||
SET_SOURCE_FILES_PROPERTIES(
|
||||
${SOURCES_LESS_ASIO_SDK}
|
||||
PROPERTIES
|
||||
COMPILE_DEFINITIONS "UNICODE;_UNICODE"
|
||||
)
|
||||
ENDIF(PA_UNICODE_BUILD)
|
||||
|
||||
ADD_LIBRARY(portaudio SHARED
|
||||
${PA_INCLUDES}
|
||||
${PA_COMMON_INCLUDES}
|
||||
${SOURCES_LESS_ASIO_SDK}
|
||||
${PA_ASIOSDK_SOURCES}
|
||||
${CMAKE_CURRENT_BINARY_DIR}/portaudio_cmake.def
|
||||
${CMAKE_CURRENT_BINARY_DIR}/options_cmake.h
|
||||
)
|
||||
|
||||
ADD_LIBRARY(portaudio_static STATIC
|
||||
${PA_INCLUDES}
|
||||
${PA_COMMON_INCLUDES}
|
||||
${SOURCES_LESS_ASIO_SDK}
|
||||
${PA_ASIOSDK_SOURCES}
|
||||
${CMAKE_CURRENT_BINARY_DIR}/options_cmake.h
|
||||
)
|
||||
|
||||
# Configure the exports file according to settings
|
||||
SET(GENERATED_MESSAGE "CMake generated file, do NOT edit! Use CMake-GUI to change configuration instead.")
|
||||
CONFIGURE_FILE( cmake_support/template_portaudio.def ${CMAKE_CURRENT_BINARY_DIR}/portaudio_cmake.def @ONLY )
|
||||
# Configure header for options (PA_USE_xxx)
|
||||
CONFIGURE_FILE( cmake_support/options_cmake.h.in ${CMAKE_CURRENT_BINARY_DIR}/options_cmake.h @ONLY )
|
||||
|
||||
IF(WIN32)
|
||||
# If we use DirectSound, we need this for the library to be found (if not in VS project settings)
|
||||
IF(PA_USE_DS AND DXSDK_FOUND)
|
||||
TARGET_LINK_LIBRARIES(portaudio ${DXSDK_DSOUND_LIBRARY})
|
||||
ENDIF(PA_USE_DS AND DXSDK_FOUND)
|
||||
|
||||
# If we use WDM/KS we need setupapi.lib
|
||||
IF(PA_USE_WDMKS)
|
||||
TARGET_LINK_LIBRARIES(portaudio setupapi)
|
||||
ENDIF(PA_USE_WDMKS)
|
||||
|
||||
SET_TARGET_PROPERTIES(portaudio PROPERTIES OUTPUT_NAME portaudio_${TARGET_POSTFIX})
|
||||
SET_TARGET_PROPERTIES(portaudio_static PROPERTIES OUTPUT_NAME portaudio_static_${TARGET_POSTFIX})
|
||||
ENDIF(WIN32)
|
||||
|
||||
OPTION(PA_BUILD_TESTS "Include test projects" OFF)
|
||||
OPTION(PA_BUILD_EXAMPLES "Include example projects" OFF)
|
||||
|
||||
# Prepared for inclusion of test files
|
||||
IF(PA_BUILD_TESTS)
|
||||
SUBDIRS(test)
|
||||
ENDIF(PA_BUILD_TESTS)
|
||||
|
||||
# Prepared for inclusion of test files
|
||||
IF(PA_BUILD_EXAMPLES)
|
||||
SUBDIRS(examples)
|
||||
ENDIF(PA_BUILD_EXAMPLES)
|
||||
|
||||
#################################
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioPropertySheet
|
||||
ProjectType="Visual C++"
|
||||
Version="8.00"
|
||||
Name="ProjectRootDir"
|
||||
>
|
||||
<UserMacro
|
||||
Name="ProjectRootDir"
|
||||
Value="$(ProjectDir)\..\.."
|
||||
/>
|
||||
<UserMacro
|
||||
Name="SvnRootDir"
|
||||
Value="$(ProjectRootDir)\..\.."
|
||||
/>
|
||||
</VisualStudioPropertySheet>
|
||||
966
3rdparty/portaudio/build/msvc/portaudio.vcproj
vendored
966
3rdparty/portaudio/build/msvc/portaudio.vcproj
vendored
@@ -1,966 +0,0 @@
|
||||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="9.00"
|
||||
Name="portaudio"
|
||||
ProjectGUID="{0A18A071-125E-442F-AFF7-A3F68ABECF99}"
|
||||
RootNamespace="portaudio"
|
||||
TargetFrameworkVersion="131072"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"
|
||||
/>
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
ConfigurationType="4"
|
||||
InheritedPropertySheets=".\ProjectRootDir.vsprops;..\..\..\3rdpartyDLL.vsprops;..\..\..\..\common\vsprops\CodeGen_Release.vsprops"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
MkTypLibCompatible="true"
|
||||
SuppressStartupBanner="true"
|
||||
TargetEnvironment="1"
|
||||
TypeLibraryName=".\Release_x86/portaudio.tlb"
|
||||
HeaderFileName=""
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="..\..\src\common,..\..\include,.\,..\..\src\os\win"
|
||||
PreprocessorDefinitions="_USRDLL;_CRT_SECURE_NO_DEPRECATE;PAWIN_USE_WDMKS_DEVICE_INFO;PA_USE_DS=1;PA_USE_WASAPI=1;PA_USE_WDMKS=1;PA_USE_WMME=0;PA_USE_ASIO=1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
Culture="1033"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
AdditionalDependencies="ksuser.lib"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
SuppressStartupBanner="true"
|
||||
OutputFile="$(PlatformName)\$(ConfigurationName)\portaudio.bsc"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
ConfigurationType="4"
|
||||
InheritedPropertySheets=".\ProjectRootDir.vsprops;..\..\..\3rdpartyDLL.vsprops;..\..\..\..\common\vsprops\CodeGen_Debug.vsprops;..\..\..\..\common\vsprops\IncrementalLinking.vsprops"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
MkTypLibCompatible="true"
|
||||
SuppressStartupBanner="true"
|
||||
TargetEnvironment="1"
|
||||
TypeLibraryName=".\Debug_x86/portaudio.tlb"
|
||||
HeaderFileName=""
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\src\common,..\..\include,.\,..\..\src\os\win"
|
||||
PreprocessorDefinitions="_DEBUG;_USRDLL;PA_ENABLE_DEBUG_OUTPUT;_CRT_SECURE_NO_DEPRECATE;PAWIN_USE_WDMKS_DEVICE_INFO;PA_USE_DS=1;PA_USE_WASAPI=1;PA_USE_WDMKS=1;PA_USE_WMME=0;PA_USE_ASIO=1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
Culture="1033"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
AdditionalDependencies="ksuser.lib"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
SuppressStartupBanner="true"
|
||||
OutputFile="$(PlatformName)\$(ConfigurationName)\portaudio.bsc"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release (NO ASIO)|Win32"
|
||||
ConfigurationType="4"
|
||||
InheritedPropertySheets=".\ProjectRootDir.vsprops;..\..\..\3rdpartyDLL.vsprops;..\..\..\..\common\vsprops\CodeGen_Release.vsprops"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||
WholeProgramOptimization="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
MkTypLibCompatible="true"
|
||||
SuppressStartupBanner="true"
|
||||
TargetEnvironment="1"
|
||||
TypeLibraryName=".\Release_x86/portaudio.tlb"
|
||||
HeaderFileName=""
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="..\..\src\common,..\..\include,.\,..\..\src\os\win"
|
||||
PreprocessorDefinitions="_USRDLL;_CRT_SECURE_NO_DEPRECATE;PAWIN_USE_WDMKS_DEVICE_INFO;PA_USE_DS=1;PA_USE_WASAPI=1;PA_USE_WDMKS=1;PA_USE_WMME=0;PA_USE_ASIO=0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
Culture="1033"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
AdditionalDependencies="ksuser.lib"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
SuppressStartupBanner="true"
|
||||
OutputFile="$(PlatformName)\$(ConfigurationName)\portaudio.bsc"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Debug (NO ASIO)|Win32"
|
||||
ConfigurationType="4"
|
||||
InheritedPropertySheets=".\ProjectRootDir.vsprops;..\..\..\3rdpartyDLL.vsprops;..\..\..\..\common\vsprops\CodeGen_Debug.vsprops;..\..\..\..\common\vsprops\IncrementalLinking.vsprops"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
MkTypLibCompatible="true"
|
||||
SuppressStartupBanner="true"
|
||||
TargetEnvironment="1"
|
||||
TypeLibraryName=".\Debug_x86/portaudio.tlb"
|
||||
HeaderFileName=""
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\src\common,..\..\include,.\,..\..\src\os\win"
|
||||
PreprocessorDefinitions="_DEBUG;_USRDLL;PA_ENABLE_DEBUG_OUTPUT;_CRT_SECURE_NO_DEPRECATE;PAWIN_USE_WDMKS_DEVICE_INFO;PA_USE_DS=1;PA_USE_WASAPI=1;PA_USE_WDMKS=1;PA_USE_WMME=0;PA_USE_ASIO=0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
Culture="1033"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
AdditionalDependencies="ksuser.lib"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
SuppressStartupBanner="true"
|
||||
OutputFile="$(PlatformName)\$(ConfigurationName)\portaudio.bsc"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Devel (NO ASIO)|Win32"
|
||||
ConfigurationType="4"
|
||||
InheritedPropertySheets=".\ProjectRootDir.vsprops;..\..\..\3rdpartyDLL.vsprops;..\..\..\..\common\vsprops\CodeGen_Devel.vsprops;..\..\..\..\common\vsprops\IncrementalLinking.vsprops"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
MkTypLibCompatible="true"
|
||||
SuppressStartupBanner="true"
|
||||
TargetEnvironment="1"
|
||||
TypeLibraryName=".\Release_x86/portaudio.tlb"
|
||||
HeaderFileName=""
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="..\..\src\common,..\..\include,.\,..\..\src\os\win"
|
||||
PreprocessorDefinitions="_USRDLL;PA_ENABLE_DEBUG_OUTPUT;_CRT_SECURE_NO_DEPRECATE;PAWIN_USE_WDMKS_DEVICE_INFO;PA_USE_DS=1;PA_USE_WASAPI=1;PA_USE_WDMKS=1;PA_USE_WMME=0;PA_USE_ASIO=0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
Culture="1033"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
AdditionalDependencies="ksuser.lib"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
SuppressStartupBanner="true"
|
||||
OutputFile="$(PlatformName)\$(ConfigurationName)\portaudio.bsc"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="Source Files"
|
||||
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
||||
>
|
||||
<Filter
|
||||
Name="common"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\..\src\common\pa_allocation.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\common\pa_converters.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\common\pa_cpuload.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\common\pa_debugprint.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\common\pa_dither.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\common\pa_front.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\common\pa_process.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\common\pa_ringbuffer.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\common\pa_stream.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\common\pa_trace.c"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="hostapi"
|
||||
>
|
||||
<Filter
|
||||
Name="ASIO"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\..\src\hostapi\asio\pa_asio.cpp"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common"
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common"
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release (NO ASIO)|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common"
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug (NO ASIO)|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common"
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Devel (NO ASIO)|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common"
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<Filter
|
||||
Name="ASIOSDK"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\..\src\hostapi\asio\ASIOSDK\common\asio.cpp"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common"
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common"
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release (NO ASIO)|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common"
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug (NO ASIO)|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common"
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Devel (NO ASIO)|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common"
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\hostapi\asio\ASIOSDK\host\ASIOConvertSamples.cpp"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common"
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common"
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release (NO ASIO)|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common"
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug (NO ASIO)|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common"
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Devel (NO ASIO)|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common"
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\hostapi\asio\ASIOSDK\host\asiodrivers.cpp"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common"
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common"
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release (NO ASIO)|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common"
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug (NO ASIO)|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common"
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Devel (NO ASIO)|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common"
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\hostapi\asio\ASIOSDK\host\pc\asiolist.cpp"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common"
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common"
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release (NO ASIO)|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common"
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug (NO ASIO)|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common"
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Devel (NO ASIO)|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common"
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\hostapi\asio\ASIOSDK\common\combase.cpp"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common"
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common"
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release (NO ASIO)|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common"
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug (NO ASIO)|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common"
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Devel (NO ASIO)|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common"
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\hostapi\asio\ASIOSDK\common\debugmessage.cpp"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common"
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common"
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release (NO ASIO)|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common"
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug (NO ASIO)|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common"
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Devel (NO ASIO)|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common"
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\hostapi\asio\ASIOSDK\common\register.cpp"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common"
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common"
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release (NO ASIO)|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common"
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug (NO ASIO)|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common"
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Devel (NO ASIO)|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\src\hostapi\asio\ASIOSDK\host;..\..\src\hostapi\asio\ASIOSDK\host\pc;..\..\src\hostapi\asio\ASIOSDK\common"
|
||||
PreprocessorDefinitions=""
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
</Filter>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="dsound"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\..\src\hostapi\dsound\pa_win_ds.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\hostapi\dsound\pa_win_ds_dynlink.c"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="wmme"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\..\src\hostapi\wmme\pa_win_wmme.c"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="wasapi"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\..\src\hostapi\wasapi\pa_win_wasapi.c"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="wdmks"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\..\src\hostapi\wdmks\pa_win_wdmks.c"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="os"
|
||||
>
|
||||
<Filter
|
||||
Name="win"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\..\src\os\win\pa_win_coinitialize.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\os\win\pa_win_hostapis.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\os\win\pa_win_util.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\os\win\pa_win_waveformat.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\os\win\pa_win_wdmks_utils.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\os\win\pa_x86_plain_converters.c"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
</Filter>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Resource Files"
|
||||
Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
||||
>
|
||||
<File
|
||||
RelativePath="portaudio.def"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\portaudio_noasio.def"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\..\include\pa_asio.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\pa_jack.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\pa_linux_alsa.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\pa_mac_core.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\os\win\pa_win_coinitialize.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\pa_win_ds.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\pa_win_wasapi.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\pa_win_waveformat.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\pa_win_wdmks.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\pa_win_wmme.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\portaudio.h"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
1
3rdparty/soundtouch_linux_include/soundtouch
vendored
1
3rdparty/soundtouch_linux_include/soundtouch
vendored
@@ -1 +0,0 @@
|
||||
../SoundTouch
|
||||
5
3rdparty/tinyxml/Makefile.am
vendored
5
3rdparty/tinyxml/Makefile.am
vendored
@@ -1,5 +0,0 @@
|
||||
INCLUDES = -I../
|
||||
noinst_LIBRARIES = libtinyxml.a
|
||||
|
||||
libtinyxml_a_SOURCES = \
|
||||
tinystr.h tinyxml.h tinystr.cpp tinyxml.cpp tinyxmlerror.cpp tinyxmlparser.cpp
|
||||
116
3rdparty/tinyxml/tinystr.cpp
vendored
116
3rdparty/tinyxml/tinystr.cpp
vendored
@@ -1,116 +0,0 @@
|
||||
/*
|
||||
www.sourceforge.net/projects/tinyxml
|
||||
Original file by Yves Berquin.
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any
|
||||
damages arising from the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any
|
||||
purpose, including commercial applications, and to alter it and
|
||||
redistribute it freely, subject to the following restrictions:
|
||||
|
||||
1. The origin of this software must not be misrepresented; you must
|
||||
not claim that you wrote the original software. If you use this
|
||||
software in a product, an acknowledgment in the product documentation
|
||||
would be appreciated but is not required.
|
||||
|
||||
2. Altered source versions must be plainly marked as such, and
|
||||
must not be misrepresented as being the original software.
|
||||
|
||||
3. This notice may not be removed or altered from any source
|
||||
distribution.
|
||||
*/
|
||||
|
||||
/*
|
||||
* THIS FILE WAS ALTERED BY Tyge L<>vset, 7. April 2005.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef TIXML_USE_STL
|
||||
|
||||
#include "tinystr.h"
|
||||
|
||||
// Error value for find primitive
|
||||
const TiXmlString::size_type TiXmlString::npos = static_cast< TiXmlString::size_type >(-1);
|
||||
|
||||
|
||||
// Null rep.
|
||||
TiXmlString::Rep TiXmlString::nullrep_ = { 0, 0, '\0' };
|
||||
|
||||
|
||||
void TiXmlString::reserve (size_type cap)
|
||||
{
|
||||
if (cap > capacity())
|
||||
{
|
||||
TiXmlString tmp;
|
||||
tmp.init(length(), cap);
|
||||
memcpy(tmp.start(), data(), length());
|
||||
swap(tmp);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
TiXmlString& TiXmlString::assign(const char* str, size_type len)
|
||||
{
|
||||
size_type cap = capacity();
|
||||
if (len > cap || cap > 3*(len + 8))
|
||||
{
|
||||
TiXmlString tmp;
|
||||
tmp.init(len);
|
||||
memcpy(tmp.start(), str, len);
|
||||
swap(tmp);
|
||||
}
|
||||
else
|
||||
{
|
||||
memmove(start(), str, len);
|
||||
set_size(len);
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
||||
TiXmlString& TiXmlString::append(const char* str, size_type len)
|
||||
{
|
||||
size_type newsize = length() + len;
|
||||
if (newsize > capacity())
|
||||
{
|
||||
reserve (newsize + capacity());
|
||||
}
|
||||
memmove(finish(), str, len);
|
||||
set_size(newsize);
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
||||
TiXmlString operator + (const TiXmlString & a, const TiXmlString & b)
|
||||
{
|
||||
TiXmlString tmp;
|
||||
tmp.reserve(a.length() + b.length());
|
||||
tmp += a;
|
||||
tmp += b;
|
||||
return tmp;
|
||||
}
|
||||
|
||||
TiXmlString operator + (const TiXmlString & a, const char* b)
|
||||
{
|
||||
TiXmlString tmp;
|
||||
TiXmlString::size_type b_len = static_cast<TiXmlString::size_type>( strlen(b) );
|
||||
tmp.reserve(a.length() + b_len);
|
||||
tmp += a;
|
||||
tmp.append(b, b_len);
|
||||
return tmp;
|
||||
}
|
||||
|
||||
TiXmlString operator + (const char* a, const TiXmlString & b)
|
||||
{
|
||||
TiXmlString tmp;
|
||||
TiXmlString::size_type a_len = static_cast<TiXmlString::size_type>( strlen(a) );
|
||||
tmp.reserve(a_len + b.length());
|
||||
tmp.append(a, a_len);
|
||||
tmp += b;
|
||||
return tmp;
|
||||
}
|
||||
|
||||
|
||||
#endif // TIXML_USE_STL
|
||||
319
3rdparty/tinyxml/tinystr.h
vendored
319
3rdparty/tinyxml/tinystr.h
vendored
@@ -1,319 +0,0 @@
|
||||
/*
|
||||
www.sourceforge.net/projects/tinyxml
|
||||
Original file by Yves Berquin.
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any
|
||||
damages arising from the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any
|
||||
purpose, including commercial applications, and to alter it and
|
||||
redistribute it freely, subject to the following restrictions:
|
||||
|
||||
1. The origin of this software must not be misrepresented; you must
|
||||
not claim that you wrote the original software. If you use this
|
||||
software in a product, an acknowledgment in the product documentation
|
||||
would be appreciated but is not required.
|
||||
|
||||
2. Altered source versions must be plainly marked as such, and
|
||||
must not be misrepresented as being the original software.
|
||||
|
||||
3. This notice may not be removed or altered from any source
|
||||
distribution.
|
||||
*/
|
||||
|
||||
/*
|
||||
* THIS FILE WAS ALTERED BY Tyge Lovset, 7. April 2005.
|
||||
*
|
||||
* - completely rewritten. compact, clean, and fast implementation.
|
||||
* - sizeof(TiXmlString) = pointer size (4 bytes on 32-bit systems)
|
||||
* - fixed reserve() to work as per specification.
|
||||
* - fixed buggy compares operator==(), operator<(), and operator>()
|
||||
* - fixed operator+=() to take a const ref argument, following spec.
|
||||
* - added "copy" constructor with length, and most compare operators.
|
||||
* - added swap(), clear(), size(), capacity(), operator+().
|
||||
*/
|
||||
|
||||
#ifndef TIXML_USE_STL
|
||||
|
||||
#ifndef TIXML_STRING_INCLUDED
|
||||
#define TIXML_STRING_INCLUDED
|
||||
|
||||
#include <assert.h>
|
||||
#include <string.h>
|
||||
|
||||
/* The support for explicit isn't that universal, and it isn't really
|
||||
required - it is used to check that the TiXmlString class isn't incorrectly
|
||||
used. Be nice to old compilers and macro it here:
|
||||
*/
|
||||
#if defined(_MSC_VER) && (_MSC_VER >= 1200 )
|
||||
// Microsoft visual studio, version 6 and higher.
|
||||
#define TIXML_EXPLICIT explicit
|
||||
#elif defined(__GNUC__) && (__GNUC__ >= 3 )
|
||||
// GCC version 3 and higher.s
|
||||
#define TIXML_EXPLICIT explicit
|
||||
#else
|
||||
#define TIXML_EXPLICIT
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
TiXmlString is an emulation of a subset of the std::string template.
|
||||
Its purpose is to allow compiling TinyXML on compilers with no or poor STL support.
|
||||
Only the member functions relevant to the TinyXML project have been implemented.
|
||||
The buffer allocation is made by a simplistic power of 2 like mechanism : if we increase
|
||||
a string and there's no more room, we allocate a buffer twice as big as we need.
|
||||
*/
|
||||
class TiXmlString
|
||||
{
|
||||
public :
|
||||
// The size type used
|
||||
typedef size_t size_type;
|
||||
|
||||
// Error value for find primitive
|
||||
static const size_type npos; // = -1;
|
||||
|
||||
|
||||
// TiXmlString empty constructor
|
||||
TiXmlString () : rep_(&nullrep_)
|
||||
{
|
||||
}
|
||||
|
||||
// TiXmlString copy constructor
|
||||
TiXmlString ( const TiXmlString & copy) : rep_(0)
|
||||
{
|
||||
init(copy.length());
|
||||
memcpy(start(), copy.data(), length());
|
||||
}
|
||||
|
||||
// TiXmlString constructor, based on a string
|
||||
TIXML_EXPLICIT TiXmlString ( const char * copy) : rep_(0)
|
||||
{
|
||||
init( static_cast<size_type>( strlen(copy) ));
|
||||
memcpy(start(), copy, length());
|
||||
}
|
||||
|
||||
// TiXmlString constructor, based on a string
|
||||
TIXML_EXPLICIT TiXmlString ( const char * str, size_type len) : rep_(0)
|
||||
{
|
||||
init(len);
|
||||
memcpy(start(), str, len);
|
||||
}
|
||||
|
||||
// TiXmlString destructor
|
||||
~TiXmlString ()
|
||||
{
|
||||
quit();
|
||||
}
|
||||
|
||||
// = operator
|
||||
TiXmlString& operator = (const char * copy)
|
||||
{
|
||||
return assign( copy, (size_type)strlen(copy));
|
||||
}
|
||||
|
||||
// = operator
|
||||
TiXmlString& operator = (const TiXmlString & copy)
|
||||
{
|
||||
return assign(copy.start(), copy.length());
|
||||
}
|
||||
|
||||
|
||||
// += operator. Maps to append
|
||||
TiXmlString& operator += (const char * suffix)
|
||||
{
|
||||
return append(suffix, static_cast<size_type>( strlen(suffix) ));
|
||||
}
|
||||
|
||||
// += operator. Maps to append
|
||||
TiXmlString& operator += (char single)
|
||||
{
|
||||
return append(&single, 1);
|
||||
}
|
||||
|
||||
// += operator. Maps to append
|
||||
TiXmlString& operator += (const TiXmlString & suffix)
|
||||
{
|
||||
return append(suffix.data(), suffix.length());
|
||||
}
|
||||
|
||||
|
||||
// Convert a TiXmlString into a null-terminated char *
|
||||
const char * c_str () const { return rep_->str; }
|
||||
|
||||
// Convert a TiXmlString into a char * (need not be null terminated).
|
||||
const char * data () const { return rep_->str; }
|
||||
|
||||
// Return the length of a TiXmlString
|
||||
size_type length () const { return rep_->size; }
|
||||
|
||||
// Alias for length()
|
||||
size_type size () const { return rep_->size; }
|
||||
|
||||
// Checks if a TiXmlString is empty
|
||||
bool empty () const { return rep_->size == 0; }
|
||||
|
||||
// Return capacity of string
|
||||
size_type capacity () const { return rep_->capacity; }
|
||||
|
||||
|
||||
// single char extraction
|
||||
const char& at (size_type index) const
|
||||
{
|
||||
assert( index < length() );
|
||||
return rep_->str[ index ];
|
||||
}
|
||||
|
||||
// [] operator
|
||||
char& operator [] (size_type index) const
|
||||
{
|
||||
assert( index < length() );
|
||||
return rep_->str[ index ];
|
||||
}
|
||||
|
||||
// find a char in a string. Return TiXmlString::npos if not found
|
||||
size_type find (char lookup) const
|
||||
{
|
||||
return find(lookup, 0);
|
||||
}
|
||||
|
||||
// find a char in a string from an offset. Return TiXmlString::npos if not found
|
||||
size_type find (char tofind, size_type offset) const
|
||||
{
|
||||
if (offset >= length()) return npos;
|
||||
|
||||
for (const char* p = c_str() + offset; *p != '\0'; ++p)
|
||||
{
|
||||
if (*p == tofind) return static_cast< size_type >( p - c_str() );
|
||||
}
|
||||
return npos;
|
||||
}
|
||||
|
||||
void clear ()
|
||||
{
|
||||
//Lee:
|
||||
//The original was just too strange, though correct:
|
||||
// TiXmlString().swap(*this);
|
||||
//Instead use the quit & re-init:
|
||||
quit();
|
||||
init(0,0);
|
||||
}
|
||||
|
||||
/* Function to reserve a big amount of data when we know we'll need it. Be aware that this
|
||||
function DOES NOT clear the content of the TiXmlString if any exists.
|
||||
*/
|
||||
void reserve (size_type cap);
|
||||
|
||||
TiXmlString& assign (const char* str, size_type len);
|
||||
|
||||
TiXmlString& append (const char* str, size_type len);
|
||||
|
||||
void swap (TiXmlString& other)
|
||||
{
|
||||
Rep* r = rep_;
|
||||
rep_ = other.rep_;
|
||||
other.rep_ = r;
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
void init(size_type sz) { init(sz, sz); }
|
||||
void set_size(size_type sz) { rep_->str[ rep_->size = sz ] = '\0'; }
|
||||
char* start() const { return rep_->str; }
|
||||
char* finish() const { return rep_->str + rep_->size; }
|
||||
|
||||
struct Rep
|
||||
{
|
||||
size_type size, capacity;
|
||||
char str[1];
|
||||
};
|
||||
|
||||
void init(size_type sz, size_type cap)
|
||||
{
|
||||
if (cap)
|
||||
{
|
||||
// Lee: the original form:
|
||||
// rep_ = static_cast<Rep*>(operator new(sizeof(Rep) + cap));
|
||||
// doesn't work in some cases of new being overloaded. Switching
|
||||
// to the normal allocation, although use an 'int' for systems
|
||||
// that are overly picky about structure alignment.
|
||||
const size_type bytesNeeded = sizeof(Rep) + cap;
|
||||
const size_type intsNeeded = ( bytesNeeded + sizeof(int) - 1 ) / sizeof( int );
|
||||
rep_ = reinterpret_cast<Rep*>( new int[ intsNeeded ] );
|
||||
|
||||
rep_->str[ rep_->size = sz ] = '\0';
|
||||
rep_->capacity = cap;
|
||||
}
|
||||
else
|
||||
{
|
||||
rep_ = &nullrep_;
|
||||
}
|
||||
}
|
||||
|
||||
void quit()
|
||||
{
|
||||
if (rep_ != &nullrep_)
|
||||
{
|
||||
// The rep_ is really an array of ints. (see the allocator, above).
|
||||
// Cast it back before delete, so the compiler won't incorrectly call destructors.
|
||||
delete [] ( reinterpret_cast<int*>( rep_ ) );
|
||||
}
|
||||
}
|
||||
|
||||
Rep * rep_;
|
||||
static Rep nullrep_;
|
||||
|
||||
} ;
|
||||
|
||||
|
||||
inline bool operator == (const TiXmlString & a, const TiXmlString & b)
|
||||
{
|
||||
return ( a.length() == b.length() ) // optimization on some platforms
|
||||
&& ( strcmp(a.c_str(), b.c_str()) == 0 ); // actual compare
|
||||
}
|
||||
inline bool operator < (const TiXmlString & a, const TiXmlString & b)
|
||||
{
|
||||
return strcmp(a.c_str(), b.c_str()) < 0;
|
||||
}
|
||||
|
||||
inline bool operator != (const TiXmlString & a, const TiXmlString & b) { return !(a == b); }
|
||||
inline bool operator > (const TiXmlString & a, const TiXmlString & b) { return b < a; }
|
||||
inline bool operator <= (const TiXmlString & a, const TiXmlString & b) { return !(b < a); }
|
||||
inline bool operator >= (const TiXmlString & a, const TiXmlString & b) { return !(a < b); }
|
||||
|
||||
inline bool operator == (const TiXmlString & a, const char* b) { return strcmp(a.c_str(), b) == 0; }
|
||||
inline bool operator == (const char* a, const TiXmlString & b) { return b == a; }
|
||||
inline bool operator != (const TiXmlString & a, const char* b) { return !(a == b); }
|
||||
inline bool operator != (const char* a, const TiXmlString & b) { return !(b == a); }
|
||||
|
||||
TiXmlString operator + (const TiXmlString & a, const TiXmlString & b);
|
||||
TiXmlString operator + (const TiXmlString & a, const char* b);
|
||||
TiXmlString operator + (const char* a, const TiXmlString & b);
|
||||
|
||||
|
||||
/*
|
||||
TiXmlOutStream is an emulation of std::ostream. It is based on TiXmlString.
|
||||
Only the operators that we need for TinyXML have been developped.
|
||||
*/
|
||||
class TiXmlOutStream : public TiXmlString
|
||||
{
|
||||
public :
|
||||
|
||||
// TiXmlOutStream << operator.
|
||||
TiXmlOutStream & operator << (const TiXmlString & in)
|
||||
{
|
||||
*this += in;
|
||||
return *this;
|
||||
}
|
||||
|
||||
// TiXmlOutStream << operator.
|
||||
TiXmlOutStream & operator << (const char * in)
|
||||
{
|
||||
*this += in;
|
||||
return *this;
|
||||
}
|
||||
|
||||
} ;
|
||||
|
||||
#endif // TIXML_STRING_INCLUDED
|
||||
#endif // TIXML_USE_STL
|
||||
1866
3rdparty/tinyxml/tinyxml.cpp
vendored
1866
3rdparty/tinyxml/tinyxml.cpp
vendored
File diff suppressed because it is too large
Load Diff
1776
3rdparty/tinyxml/tinyxml.h
vendored
1776
3rdparty/tinyxml/tinyxml.h
vendored
File diff suppressed because it is too large
Load Diff
53
3rdparty/tinyxml/tinyxmlerror.cpp
vendored
53
3rdparty/tinyxml/tinyxmlerror.cpp
vendored
@@ -1,53 +0,0 @@
|
||||
/*
|
||||
www.sourceforge.net/projects/tinyxml
|
||||
Original code (2.0 and earlier )copyright (c) 2000-2006 Lee Thomason (www.grinninglizard.com)
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any
|
||||
damages arising from the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any
|
||||
purpose, including commercial applications, and to alter it and
|
||||
redistribute it freely, subject to the following restrictions:
|
||||
|
||||
1. The origin of this software must not be misrepresented; you must
|
||||
not claim that you wrote the original software. If you use this
|
||||
software in a product, an acknowledgment in the product documentation
|
||||
would be appreciated but is not required.
|
||||
|
||||
2. Altered source versions must be plainly marked as such, and
|
||||
must not be misrepresented as being the original software.
|
||||
|
||||
3. This notice may not be removed or altered from any source
|
||||
distribution.
|
||||
*/
|
||||
|
||||
#include "tinyxml.h"
|
||||
|
||||
// The goal of the seperate error file is to make the first
|
||||
// step towards localization. tinyxml (currently) only supports
|
||||
// english error messages, but the could now be translated.
|
||||
//
|
||||
// It also cleans up the code a bit.
|
||||
//
|
||||
|
||||
const char* TiXmlBase::errorString[ TIXML_ERROR_STRING_COUNT ] =
|
||||
{
|
||||
"No error",
|
||||
"Error",
|
||||
"Failed to open file",
|
||||
"Memory allocation failed.",
|
||||
"Error parsing Element.",
|
||||
"Failed to read Element name",
|
||||
"Error reading Element value.",
|
||||
"Error reading Attributes.",
|
||||
"Error: empty tag.",
|
||||
"Error reading end tag.",
|
||||
"Error parsing Unknown.",
|
||||
"Error parsing Comment.",
|
||||
"Error parsing Declaration.",
|
||||
"Error document empty.",
|
||||
"Error null (0) or unexpected EOF found in input stream.",
|
||||
"Error parsing CDATA.",
|
||||
"Error when TiXmlDocument added to document, because TiXmlDocument can only be at the root.",
|
||||
};
|
||||
1606
3rdparty/tinyxml/tinyxmlparser.cpp
vendored
1606
3rdparty/tinyxml/tinyxmlparser.cpp
vendored
File diff suppressed because it is too large
Load Diff
1298
3rdparty/w32pthreads/pthreads_2008.vcproj
vendored
1298
3rdparty/w32pthreads/pthreads_2008.vcproj
vendored
File diff suppressed because it is too large
Load Diff
3092
3rdparty/w32pthreads/pthreads_lib_2008.vcproj
vendored
3092
3rdparty/w32pthreads/pthreads_lib_2008.vcproj
vendored
File diff suppressed because it is too large
Load Diff
15
3rdparty/wxWidgets/build/msw/Common.vsprops
vendored
15
3rdparty/wxWidgets/build/msw/Common.vsprops
vendored
@@ -1,15 +0,0 @@
|
||||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioPropertySheet
|
||||
ProjectType="Visual C++"
|
||||
Version="8.00"
|
||||
Name="wxCommon"
|
||||
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)\$(ProjectName)"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
PreprocessorDefinitions="WIN32;__WXMSW__;_LIB;wxUSE_UNICODE=1"
|
||||
ExceptionHandling="2"
|
||||
EnableFunctionLevelLinking="true"
|
||||
CompileAs="0"
|
||||
/>
|
||||
</VisualStudioPropertySheet>
|
||||
@@ -1,19 +0,0 @@
|
||||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioPropertySheet
|
||||
ProjectType="Visual C++"
|
||||
Version="8.00"
|
||||
Name="ProjectRootDir"
|
||||
>
|
||||
<UserMacro
|
||||
Name="ProjectRootDir"
|
||||
Value="$(ProjectDir)\..\.."
|
||||
/>
|
||||
<UserMacro
|
||||
Name="SvnRootDir"
|
||||
Value="$(ProjectRootDir)\..\.."
|
||||
/>
|
||||
<UserMacro
|
||||
Name="SvnCommonDir"
|
||||
Value="$(SvnRootDir)\common"
|
||||
/>
|
||||
</VisualStudioPropertySheet>
|
||||
588
3rdparty/wxWidgets/build/msw/wx_adv_2008.vcproj
vendored
588
3rdparty/wxWidgets/build/msw/wx_adv_2008.vcproj
vendored
@@ -1,588 +0,0 @@
|
||||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="9.00"
|
||||
Name="wxAdv28"
|
||||
ProjectGUID="{0E231FB1-F3C9-4724-ACCB-DE8BCB3C089E}"
|
||||
RootNamespace="wxAdvanced"
|
||||
TargetFrameworkVersion="0"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"
|
||||
/>
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
ConfigurationType="4"
|
||||
InheritedPropertySheets=".\ProjectRootDir.vsprops;..\..\..\3rdparty.vsprops;.\Common.vsprops;..\..\..\..\common\vsprops\CodeGen_Debug.vsprops;..\..\..\..\common\vsprops\IncrementalLinking.vsprops"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||
CharacterSet="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""$(ProjectRootDir)\include";"$(ProjectRootDir)\include\msvc";"$(SvnRootDir)\3rdparty\zlib""
|
||||
PreprocessorDefinitions="_DEBUG;__WXDEBUG__;wxUSE_BASE=0;wxUSE_GUI=1"
|
||||
UsePrecompiledHeader="2"
|
||||
PrecompiledHeaderThrough="wx/wxprec.h"
|
||||
PrecompiledHeaderFile="$(IntDir)\$(TargetName).pch"
|
||||
WarningLevel="4"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
Culture="1033"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
OutputFile="$(OutDir)/wxAdv28.lib"
|
||||
SuppressStartupBanner="true"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
SuppressStartupBanner="true"
|
||||
OutputFile=".\..\..\lib\vc_lib/wx_adv.bsc"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
ConfigurationType="4"
|
||||
InheritedPropertySheets=".\ProjectRootDir.vsprops;..\..\..\3rdparty.vsprops;.\Common.vsprops;..\..\..\..\common\vsprops\CodeGen_Release.vsprops"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||
CharacterSet="1"
|
||||
WholeProgramOptimization="0"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
WholeProgramOptimization="false"
|
||||
AdditionalIncludeDirectories=""$(ProjectRootDir)\include";"$(ProjectRootDir)\include\msvc";"$(SvnRootDir)\3rdparty\zlib""
|
||||
PreprocessorDefinitions="wxUSE_BASE=0;wxUSE_GUI=1"
|
||||
UsePrecompiledHeader="2"
|
||||
PrecompiledHeaderThrough="wx/wxprec.h"
|
||||
PrecompiledHeaderFile="$(IntDir)\$(TargetName).pch"
|
||||
WarningLevel="4"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
Culture="1033"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
SuppressStartupBanner="true"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Devel|Win32"
|
||||
ConfigurationType="4"
|
||||
InheritedPropertySheets=".\ProjectRootDir.vsprops;..\..\..\3rdparty.vsprops;.\Common.vsprops;..\..\..\..\common\vsprops\CodeGen_Devel.vsprops;..\..\..\..\common\vsprops\IncrementalLinking.vsprops"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||
CharacterSet="1"
|
||||
WholeProgramOptimization="0"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""$(ProjectRootDir)\include";"$(ProjectRootDir)\include\msvc";"$(SvnRootDir)\3rdparty\zlib""
|
||||
PreprocessorDefinitions="wxUSE_BASE=0;wxUSE_GUI=1"
|
||||
UsePrecompiledHeader="2"
|
||||
PrecompiledHeaderThrough="wx/wxprec.h"
|
||||
PrecompiledHeaderFile="$(IntDir)\$(TargetName).pch"
|
||||
WarningLevel="4"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
Culture="1033"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLibrarianTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
SuppressStartupBanner="true"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="Common Sources"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\..\src\common\animatecmn.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\common\datavcmn.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\common\dummy.cpp"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="1"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="1"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Devel|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="1"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\common\taskbarcmn.cpp"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="MSW Sources"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\..\src\msw\aboutdlg.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\msw\datectrl.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\msw\joystick.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\msw\sound.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\msw\taskbar.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\msw\version.rc"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Devel|Win32"
|
||||
ExcludedFromBuild="true"
|
||||
>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Generic Sources"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\..\src\generic\aboutdlgg.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\generic\animateg.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\generic\bmpcboxg.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\generic\calctrl.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\generic\datavgen.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\generic\datectlg.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\generic\grid.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\generic\gridctrl.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\generic\gridsel.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\generic\helpext.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\generic\hyperlink.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\generic\laywin.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\generic\odcombo.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\generic\propdlg.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\generic\sashwin.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\generic\splash.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\generic\tipdlg.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\src\generic\wizard.cpp"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Setup Headers"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\..\include\wx\univ\setup.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\wx\msw\setup.h"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="MSW Headers"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\..\include\wx\msw\datectrl.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\wx\msw\genrcdefs.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\wx\msw\joystick.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\wx\msw\sound.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\wx\msw\taskbar.h"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Generic Headers"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\..\include\wx\generic\aboutdlgg.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\wx\generic\animate.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\wx\generic\bmpcbox.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\wx\generic\calctrl.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\wx\generic\dataview.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\wx\generic\datectrl.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\wx\generic\grid.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\wx\generic\gridctrl.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\wx\generic\gridsel.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\wx\generic\helpext.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\wx\generic\laywin.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\wx\generic\propdlg.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\wx\generic\sashwin.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\wx\generic\splash.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\wx\generic\wizard.h"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Common Headers"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\..\include\wx\aboutdlg.h"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\wx\animate.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\wx\animdecod.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\wx\bmpcbox.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\wx\calctrl.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\wx\dataview.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\wx\datectrl.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\wx\dateevt.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\wx\dcbuffer.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\wx\grid.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\wx\hyperlink.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\wx\joystick.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\wx\laywin.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\wx\odcombo.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\wx\propdlg.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\wx\sashwin.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\wx\sound.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\wx\splash.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\wx\taskbar.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\wx\tipdlg.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\wx\wave.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\wx\wizard.h"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
1197
3rdparty/wxWidgets/build/msw/wx_base_2008.vcproj
vendored
1197
3rdparty/wxWidgets/build/msw/wx_base_2008.vcproj
vendored
File diff suppressed because it is too large
Load Diff
144
3rdparty/wxWidgets/build/msw/wx_config_2008.vcproj
vendored
144
3rdparty/wxWidgets/build/msw/wx_config_2008.vcproj
vendored
@@ -1,144 +0,0 @@
|
||||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="9.00"
|
||||
Name="wxConfig28"
|
||||
ProjectGUID="{C34487AF-228A-4D11-8E50-27803DF76873}"
|
||||
RootNamespace="wxConfig"
|
||||
TargetFrameworkVersion="0"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"
|
||||
/>
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="10"
|
||||
CharacterSet="1"
|
||||
WholeProgramOptimization="0"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="10"
|
||||
CharacterSet="1"
|
||||
WholeProgramOptimization="0"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Devel|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="10"
|
||||
CharacterSet="1"
|
||||
WholeProgramOptimization="0"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="Source Files"
|
||||
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
|
||||
>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\..\include\wx\msw\genrcdefs.h"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Creating ..\..\lib\vc_lib\mswd\wx\msw\rcdefs.h"
|
||||
CommandLine="cl /EP /nologo "$(InputPath)" > "..\..\lib\vc_lib\mswd\wx\msw\rcdefs.h"
"
|
||||
Outputs="..\..\lib\vc_lib\mswd\wx\msw\rcdefs.h"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Creating ..\..\lib\vc_lib\mswd\wx\msw\rcdefs.h"
|
||||
CommandLine="cl /EP /nologo "$(InputPath)" > "..\..\lib\vc_lib\mswd\wx\msw\rcdefs.h"
"
|
||||
Outputs="..\..\lib\vc_lib\mswd\wx\msw\rcdefs.h"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Devel|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Creating ..\..\lib\vc_lib\mswd\wx\msw\rcdefs.h"
|
||||
CommandLine="cl /EP /nologo "$(InputPath)" > "..\..\lib\vc_lib\mswd\wx\msw\rcdefs.h"
"
|
||||
Outputs="..\..\lib\vc_lib\mswd\wx\msw\rcdefs.h"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\wx\setup.h"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Resource Files"
|
||||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
|
||||
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
|
||||
>
|
||||
</Filter>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
4
3rdparty/wxWidgets/src/msw/ownerdrw.cpp
vendored
4
3rdparty/wxWidgets/src/msw/ownerdrw.cpp
vendored
@@ -90,7 +90,7 @@ public:
|
||||
static wxFont* ms_systemMenuFont;
|
||||
static int ms_systemMenuButtonWidth; // windows clean install default
|
||||
static int ms_systemMenuHeight; // windows clean install default
|
||||
static bool ms_showCues;
|
||||
static BOOL ms_showCues;
|
||||
private:
|
||||
DECLARE_DYNAMIC_CLASS(wxMSWSystemMenuFontModule)
|
||||
};
|
||||
@@ -102,7 +102,7 @@ private:
|
||||
wxFont* wxMSWSystemMenuFontModule::ms_systemMenuFont = NULL;
|
||||
int wxMSWSystemMenuFontModule::ms_systemMenuButtonWidth = 18; // windows clean install default
|
||||
int wxMSWSystemMenuFontModule::ms_systemMenuHeight = 18; // windows clean install default
|
||||
bool wxMSWSystemMenuFontModule::ms_showCues = true;
|
||||
BOOL wxMSWSystemMenuFontModule::ms_showCues = true;
|
||||
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxMSWSystemMenuFontModule, wxModule)
|
||||
|
||||
|
||||
1
3rdparty/wxwidgets3.0-3.0.1/.pc/.quilt_patches
vendored
Normal file
1
3rdparty/wxwidgets3.0-3.0.1/.pc/.quilt_patches
vendored
Normal file
@@ -0,0 +1 @@
|
||||
debian/patches
|
||||
1
3rdparty/wxwidgets3.0-3.0.1/.pc/.quilt_series
vendored
Normal file
1
3rdparty/wxwidgets3.0-3.0.1/.pc/.quilt_series
vendored
Normal file
@@ -0,0 +1 @@
|
||||
series
|
||||
1
3rdparty/wxwidgets3.0-3.0.1/.pc/.version
vendored
Normal file
1
3rdparty/wxwidgets3.0-3.0.1/.pc/.version
vendored
Normal file
@@ -0,0 +1 @@
|
||||
2
|
||||
2
3rdparty/wxwidgets3.0-3.0.1/.pc/applied-patches
vendored
Normal file
2
3rdparty/wxwidgets3.0-3.0.1/.pc/applied-patches
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
wx-config-conditionalise-webview-in-std.patch
|
||||
gcc4.9-workaround.patch
|
||||
4501
3rdparty/wxwidgets3.0-3.0.1/.pc/gcc4.9-workaround.patch/include/wx/event.h
vendored
Normal file
4501
3rdparty/wxwidgets3.0-3.0.1/.pc/gcc4.9-workaround.patch/include/wx/event.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user