Compare commits
1123 Commits
jump_and_c
...
mesa_6_4
Author | SHA1 | Date | |
---|---|---|---|
|
7cd7a78d72 | ||
|
5c57efd6b4 | ||
|
ea9ed5849f | ||
|
1ef0939a64 | ||
|
d0f9c2887c | ||
|
ed75287003 | ||
|
c01c2fb542 | ||
|
e1d7297812 | ||
|
b4227f0d98 | ||
|
c868c1ee14 | ||
|
a1dcb43658 | ||
|
cc7b6810e2 | ||
|
7b9fecee10 | ||
|
8856180e4f | ||
|
df51dfbdc3 | ||
|
2fd1ed1b45 | ||
|
66b928e95e | ||
|
d5e9cca0b2 | ||
|
c072c17a8c | ||
|
8367420be9 | ||
|
e2a2ed06b2 | ||
|
0cc3703188 | ||
|
fb6c1492fb | ||
|
89ad797f9a | ||
|
fa67028ae7 | ||
|
8e1724dfe9 | ||
|
fbdb5c9b14 | ||
|
4b2728f95c | ||
|
3a7437399f | ||
|
3338f04be7 | ||
|
047f7bb11c | ||
|
5b25acdac7 | ||
|
cb16208ec0 | ||
|
88107bea56 | ||
|
b4d25157f2 | ||
|
c6d1f32ebe | ||
|
281f388e03 | ||
|
c0a0dfeb96 | ||
|
ab07593563 | ||
|
5b08058604 | ||
|
3bf13d3c4b | ||
|
2b05784084 | ||
|
2292262de4 | ||
|
a9358bb3b0 | ||
|
b9d111f202 | ||
|
20fd105e2a | ||
|
1faaa0090a | ||
|
23803bd5fb | ||
|
c000250504 | ||
|
b854297bab | ||
|
3c1b44ad55 | ||
|
bdab2cc216 | ||
|
91ade9ad68 | ||
|
7355bbce55 | ||
|
1d2671e6cb | ||
|
0a405dcc5f | ||
|
b210ffaadf | ||
|
b1e8471898 | ||
|
aefe0dabec | ||
|
758c5b9a7e | ||
|
44db6d7cb8 | ||
|
04f1fdc755 | ||
|
b181773d02 | ||
|
4218cddfb1 | ||
|
a4e35c21d2 | ||
|
5d63323d34 | ||
|
419a350499 | ||
|
db78ec7018 | ||
|
291911aeb5 | ||
|
e15a7d4883 | ||
|
2e95fdc5d8 | ||
|
6e03f6ed43 | ||
|
97790948f6 | ||
|
a882648023 | ||
|
b7f8d69bb3 | ||
|
5bad790e56 | ||
|
382b00f483 | ||
|
718bd385ed | ||
|
402ca8903f | ||
|
25a9c9f370 | ||
|
d73a838f01 | ||
|
c72b2fb2db | ||
|
5a6ce051ef | ||
|
e7c2fa9cff | ||
|
5919aec5c3 | ||
|
f5a6175d83 | ||
|
e41ea35fee | ||
|
38cf2b14f4 | ||
|
66725dca81 | ||
|
59ad040754 | ||
|
5e16f314d6 | ||
|
2376438410 | ||
|
1be13df2c3 | ||
|
1f6892527b | ||
|
e5f6f26c87 | ||
|
e14b3baca0 | ||
|
5eb129de76 | ||
|
3f27b6ffeb | ||
|
270572e543 | ||
|
7b56e1a443 | ||
|
cfaac5dc4f | ||
|
1e5c3e977f | ||
|
831b4143f7 | ||
|
b26b565f91 | ||
|
f4d1dafc18 | ||
|
db70c3f9b6 | ||
|
384b1d03e4 | ||
|
e3c1b594ae | ||
|
453eb90128 | ||
|
cb505bf744 | ||
|
133112c71a | ||
|
a66eebc579 | ||
|
89ea47182d | ||
|
2efe639f26 | ||
|
39e4095560 | ||
|
b19ec5009f | ||
|
afed3e55ba | ||
|
46cf4fa1bd | ||
|
b4198e821a | ||
|
5a1fb7db0e | ||
|
f16fbf03bd | ||
|
ec0c42a3be | ||
|
a4c1895d07 | ||
|
b2971358ad | ||
|
24a36c26fa | ||
|
247e27d0b8 | ||
|
912bcb2386 | ||
|
cee416863f | ||
|
8e946792dc | ||
|
dfb6c56ed8 | ||
|
dcf14aa3a7 | ||
|
1e71d6af48 | ||
|
298af7a609 | ||
|
ae27ef2219 | ||
|
f350e22716 | ||
|
eacd347fce | ||
|
8fcd1e0287 | ||
|
2ae5645115 | ||
|
b7c727e500 | ||
|
d912f6cfe3 | ||
|
f7eb54a12f | ||
|
e0029b33ef | ||
|
ab5be2c5f7 | ||
|
61ac29e7c6 | ||
|
b462855c24 | ||
|
e918bac8cd | ||
|
aa2a357bae | ||
|
05fe2871e3 | ||
|
926a19e108 | ||
|
160b3284dd | ||
|
c2c2600728 | ||
|
7a362deb8c | ||
|
a3dd6efb00 | ||
|
dabec11d27 | ||
|
69dc32cfac | ||
|
33f9c98aa6 | ||
|
6fe7a0dc01 | ||
|
f2876d1ee3 | ||
|
fbcc5aedf2 | ||
|
4c4e4bfa4e | ||
|
ac7c147aaf | ||
|
b7ae3e4787 | ||
|
82dfd4b71f | ||
|
ac887d4211 | ||
|
967b006f51 | ||
|
1b8d0f149e | ||
|
8c9cd63c89 | ||
|
63c9ebeaff | ||
|
6b563bda43 | ||
|
5d40169436 | ||
|
738c9a073f | ||
|
258f005c6b | ||
|
c91720fb1a | ||
|
d2e289c70f | ||
|
e78a3c42e4 | ||
|
a1a6fa2fa1 | ||
|
ecde87054c | ||
|
24d55a1145 | ||
|
aba4864a25 | ||
|
7bf08c23fd | ||
|
63dffa4e77 | ||
|
da0c5b2e2c | ||
|
0d942b740c | ||
|
ac54de021a | ||
|
ae4e58c9ab | ||
|
81b3c5e85c | ||
|
f1a261377f | ||
|
8e653f12bc | ||
|
bf54a28384 | ||
|
9a4dbf1cff | ||
|
7e5da5d526 | ||
|
94a4eb1e78 | ||
|
b8731903df | ||
|
23a4f50c5b | ||
|
6965f2cb0a | ||
|
928218a283 | ||
|
6bc24c5c05 | ||
|
126c89e35f | ||
|
33f5e47faf | ||
|
485528f2ac | ||
|
b507bd4160 | ||
|
711555d1e3 | ||
|
7f5925d57c | ||
|
7adcedcd54 | ||
|
29206ae569 | ||
|
dc6e2c778a | ||
|
4508bcc72c | ||
|
a7d4bfed8a | ||
|
4ce390b933 | ||
|
df68d11b47 | ||
|
82e3ecf413 | ||
|
f7c9eafa85 | ||
|
68679d2b9e | ||
|
960467443e | ||
|
14fa5f6a60 | ||
|
1585c234e0 | ||
|
9f23a3a1bf | ||
|
3e36986e5a | ||
|
67d94e5a86 | ||
|
a7df74ea02 | ||
|
36d6e9df16 | ||
|
ab7c6ffadc | ||
|
1361398600 | ||
|
5c6fd3dd4c | ||
|
a08d8a095c | ||
|
5f1ba3e21b | ||
|
1201348a33 | ||
|
800c72ae61 | ||
|
7c1ab40898 | ||
|
8dcc6736ab | ||
|
e9dbe58b8b | ||
|
c39bf5e273 | ||
|
7d40d230fa | ||
|
3e2419a7cc | ||
|
70cf1f0cf8 | ||
|
60a6a0eb51 | ||
|
fea5a428e9 | ||
|
61e694f270 | ||
|
db251d72c8 | ||
|
7a37189adc | ||
|
f87bb14b0b | ||
|
dff11bb9a8 | ||
|
98b06bcbeb | ||
|
7b5c506c0e | ||
|
7cf480e6fe | ||
|
951dbf08e7 | ||
|
49e74989c3 | ||
|
3e8efc3753 | ||
|
aeb0ee771b | ||
|
6ae76788a7 | ||
|
e98494d0a4 | ||
|
18014525a1 | ||
|
2276679c53 | ||
|
d4596584f6 | ||
|
6bb49eacfd | ||
|
bfb5ea307e | ||
|
364ae78e69 | ||
|
8d7d9c22f6 | ||
|
2d47c07398 | ||
|
7e152b83cb | ||
|
ed886336e1 | ||
|
5343ae8304 | ||
|
df88dfe1df | ||
|
c235a96a71 | ||
|
aa8ff1e75d | ||
|
9bdfee3a47 | ||
|
e0e993c5ff | ||
|
c529f6bf70 | ||
|
8d3aca655e | ||
|
1f88391747 | ||
|
d39760d718 | ||
|
df0350b7ec | ||
|
b0489d4f82 | ||
|
8ec981c469 | ||
|
4eb3a0f076 | ||
|
4c72778251 | ||
|
badad72383 | ||
|
c62c24c72f | ||
|
b127cfeb7a | ||
|
3f7cb794ea | ||
|
c472dcdac0 | ||
|
ce721143b4 | ||
|
9311bc253e | ||
|
0cfbd849ec | ||
|
6d5d1f8a41 | ||
|
38e2fa385d | ||
|
2550844c6e | ||
|
259f096ed8 | ||
|
f3186e5789 | ||
|
4cf6718725 | ||
|
78be0b5dad | ||
|
f0ff50d4ed | ||
|
1a9cac10b8 | ||
|
9204e87b2e | ||
|
4f178c6e3a | ||
|
ef2ce9d003 | ||
|
c1c684b0f3 | ||
|
666dcaaf05 | ||
|
7b12220256 | ||
|
5f79d27b82 | ||
|
c136b41b09 | ||
|
ee850657e6 | ||
|
0cf67634bb | ||
|
101d05ad94 | ||
|
c5b6580c6f | ||
|
35a11c14ee | ||
|
ec171b7d02 | ||
|
2de5f6e252 | ||
|
b64d60a2a6 | ||
|
eac7688231 | ||
|
219f3c4489 | ||
|
06abb854f0 | ||
|
7fe8696d01 | ||
|
9b56781986 | ||
|
758f334717 | ||
|
8e8fa63cb4 | ||
|
559c494fc8 | ||
|
03f52fea63 | ||
|
6d3284efd4 | ||
|
58a9573b08 | ||
|
0d34c0158d | ||
|
f4f1c29597 | ||
|
bb5c84fcbc | ||
|
446e258940 | ||
|
54fb9226e4 | ||
|
30aea49cf6 | ||
|
cf5b2f7419 | ||
|
c212abf99a | ||
|
1ac8ae446a | ||
|
aa70253cbb | ||
|
049e320f46 | ||
|
f138b977d0 | ||
|
4d652b7855 | ||
|
b0d62880e8 | ||
|
0e55891674 | ||
|
ccda2162f6 | ||
|
b6c0d753fa | ||
|
ec17e7941a | ||
|
b6c5116171 | ||
|
84f8d7aafb | ||
|
39a488ed63 | ||
|
2dbffb30f0 | ||
|
397088ff5e | ||
|
c43f03e38d | ||
|
3f9839a52b | ||
|
a4eb693b5f | ||
|
32b898126e | ||
|
3b817fde88 | ||
|
845f2a7350 | ||
|
f8582b6c1f | ||
|
394fd40a53 | ||
|
4e1aae6e0e | ||
|
5aafea03af | ||
|
3fb86eefe8 | ||
|
1c5caba184 | ||
|
2636e853f6 | ||
|
814e5360b0 | ||
|
66a5548fbb | ||
|
f292e13a20 | ||
|
1e4744d2b9 | ||
|
ebd99043ed | ||
|
a5fb15cb87 | ||
|
04f863e856 | ||
|
23606a5704 | ||
|
90b40c33e7 | ||
|
dc137ddb3f | ||
|
a6a3e01b09 | ||
|
4378dee78c | ||
|
38332a6d94 | ||
|
4e7df27466 | ||
|
3c6f17be32 | ||
|
af02907b4c | ||
|
463c1d6c57 | ||
|
0e288e58ef | ||
|
3176f8e2e1 | ||
|
6c2098ffd4 | ||
|
f445aaa67a | ||
|
aa26915472 | ||
|
fb818a0b11 | ||
|
6b9d9c5039 | ||
|
2d218885ec | ||
|
902e70875d | ||
|
b675c48027 | ||
|
4476978856 | ||
|
252d8e78cc | ||
|
5d6ecf25f8 | ||
|
b4979ec178 | ||
|
6c1948d593 | ||
|
729cccba5d | ||
|
7e8e4c500e | ||
|
f6e7cfb60d | ||
|
52608d2d21 | ||
|
1c48986e54 | ||
|
1fc4bcbb17 | ||
|
44367aab2a | ||
|
2c6e8e90ec | ||
|
81032030ff | ||
|
a8534885ef | ||
|
79b7bd18bb | ||
|
8e56122782 | ||
|
ea93b2986b | ||
|
002d0ad3e9 | ||
|
562bdaf70e | ||
|
9899f58c76 | ||
|
dce3a91a8d | ||
|
2d2f5a4b19 | ||
|
ee7ad16f3f | ||
|
2c7336af4e | ||
|
012de39c23 | ||
|
60339c7062 | ||
|
7fb16836e7 | ||
|
d45cb9a836 | ||
|
681b758f11 | ||
|
a0b5c98364 | ||
|
31d0cedd78 | ||
|
7477a7d366 | ||
|
4417d4cb61 | ||
|
ed7f3aead8 | ||
|
395280bf88 | ||
|
a4691981d9 | ||
|
1d60469c4c | ||
|
461a2a799a | ||
|
757e0855ad | ||
|
17d249d31b | ||
|
4f923fb0bc | ||
|
c20a2b0b72 | ||
|
ef9e0be0cb | ||
|
2e7dcdd38b | ||
|
d59fbcdee5 | ||
|
3c4c6d1f80 | ||
|
40b8b57ed4 | ||
|
df5e2b934b | ||
|
d96dd3cd49 | ||
|
bb8b302dbc | ||
|
5ec5c6b222 | ||
|
863bd56520 | ||
|
5821f3d70c | ||
|
5b10d71559 | ||
|
516546ad5b | ||
|
3fe9c40cb2 | ||
|
13c8f985d9 | ||
|
1516f559bc | ||
|
c4fbdb090c | ||
|
589a3a3f6e | ||
|
f090fdc50b | ||
|
d638f6a0bb | ||
|
502504de23 | ||
|
f772e3dd15 | ||
|
c7264415b6 | ||
|
1b93953fbc | ||
|
5d5100aabc | ||
|
2e081cd90e | ||
|
0009e3d97d | ||
|
628b18b8ca | ||
|
4ec6eceea9 | ||
|
8c2a9a9166 | ||
|
ef377c3c00 | ||
|
b79c47e90c | ||
|
8a1df96862 | ||
|
9dff2ca07a | ||
|
12eabeb3b9 | ||
|
c7f8d36451 | ||
|
993d8ad5ef | ||
|
b328dded75 | ||
|
c1b87b2a06 | ||
|
0936eeb456 | ||
|
f2149a7a66 | ||
|
0b73889d54 | ||
|
2962f88189 | ||
|
f054fa85d8 | ||
|
2ed4c296d9 | ||
|
22b0a42465 | ||
|
0bae91562e | ||
|
908dbc44c2 | ||
|
74e412c695 | ||
|
0080faf83e | ||
|
d322810e13 | ||
|
6580a6d561 | ||
|
70dbbbf89a | ||
|
497dd3e920 | ||
|
249db89b00 | ||
|
020225496e | ||
|
69509641a8 | ||
|
978d2fda3c | ||
|
ae516306b4 | ||
|
e45b5a4fa8 | ||
|
8e5099d6a0 | ||
|
d2ee346a93 | ||
|
170999a103 | ||
|
d1834e8c10 | ||
|
0432411837 | ||
|
0f71c6691e | ||
|
fc534034cc | ||
|
1de60fe47f | ||
|
c16264b138 | ||
|
1aadf1c039 | ||
|
1008f57f6f | ||
|
2b73e5aaaf | ||
|
863eca9973 | ||
|
39e14d2cff | ||
|
741b980433 | ||
|
3f6d985753 | ||
|
49109d01c0 | ||
|
8286abd798 | ||
|
53d13e014f | ||
|
f387c83ec1 | ||
|
e87ab8c05f | ||
|
6b5afb0036 | ||
|
89bf62cd49 | ||
|
5dc31379c4 | ||
|
c97a3a3038 | ||
|
7df5eddf6a | ||
|
f7c0c4f485 | ||
|
b4c8b34534 | ||
|
45ab8cb08a | ||
|
b31b1f44f1 | ||
|
7708b75d72 | ||
|
c73968af95 | ||
|
9a726cdf8f | ||
|
7179810375 | ||
|
a1b07e187e | ||
|
39c0e51329 | ||
|
2f9722863d | ||
|
731f1b12a0 | ||
|
2d5f12ae6b | ||
|
afa7f6a0f5 | ||
|
eeada48497 | ||
|
0c4731b27c | ||
|
17bcf9f816 | ||
|
eb9d6f44a9 | ||
|
241b6b7ab1 | ||
|
2dea6df80b | ||
|
6fe176a648 | ||
|
eb8be5d923 | ||
|
446980473d | ||
|
b70a47736a | ||
|
3cc2f82bb5 | ||
|
923515b3f8 | ||
|
e3e8067db7 | ||
|
8f384f0b67 | ||
|
e58d32947e | ||
|
063efce6ee | ||
|
bab559b1fa | ||
|
8f8e0f0b01 | ||
|
18a74321aa | ||
|
c2745ffa49 | ||
|
9557401a98 | ||
|
67cc1f6ba6 | ||
|
c70dace694 | ||
|
6040d34109 | ||
|
8608978aba | ||
|
02168254a8 | ||
|
e5ff2b94ff | ||
|
216f89318e | ||
|
e3cdbca63f | ||
|
6bc9ea1df9 | ||
|
9a1b5af333 | ||
|
8818eae253 | ||
|
2b2bd08589 | ||
|
dc7fc17396 | ||
|
96582f4f28 | ||
|
dd4c1dd038 | ||
|
b745bf08cd | ||
|
2f74adc41f | ||
|
e53fc72f67 | ||
|
bd565e4bb7 | ||
|
9a3da7ea7b | ||
|
6e56f905d0 | ||
|
2860e5f536 | ||
|
22652f952f | ||
|
ae818ed1da | ||
|
198d6d05b0 | ||
|
5a0cb726d1 | ||
|
d2ab4eb2c2 | ||
|
2ec2e94e2e | ||
|
40c1c723fb | ||
|
bf7f998f39 | ||
|
bb2c65200c | ||
|
5119056324 | ||
|
4c80f8df46 | ||
|
e03b5cdf3f | ||
|
167b141e6e | ||
|
d06da50888 | ||
|
c1082804a8 | ||
|
ffd97d20aa | ||
|
a33f0d3024 | ||
|
380991cb65 | ||
|
3e8001a465 | ||
|
af1a729972 | ||
|
cf4f3c5061 | ||
|
4cf20d9236 | ||
|
72a313902b | ||
|
f9bad3dfea | ||
|
a495ed372f | ||
|
d9789b7861 | ||
|
51ac95ba89 | ||
|
6493bd07a7 | ||
|
7bfe8df08a | ||
|
5873faf39b | ||
|
fdeda9c458 | ||
|
9b134f641c | ||
|
efeea95dcc | ||
|
45472672a2 | ||
|
aca2e0da3c | ||
|
d5084d42d4 | ||
|
578f63f2bf | ||
|
1c606a9aa1 | ||
|
09f433b97c | ||
|
8110df4f61 | ||
|
9cf35d2876 | ||
|
11bd5c1ac4 | ||
|
686e9b9f57 | ||
|
aecc05627a | ||
|
d0ddf190aa | ||
|
5cb977fedf | ||
|
296428dcf4 | ||
|
ee83a1302f | ||
|
7012d01d88 | ||
|
a6ed129dfc | ||
|
733bc876ee | ||
|
64034c4fb5 | ||
|
846eb333ae | ||
|
c9a69a6968 | ||
|
269e3895d9 | ||
|
5c72837af9 | ||
|
5f430c9976 | ||
|
714be699be | ||
|
10432bcc0a | ||
|
69a2f7cdd5 | ||
|
db21f1c84f | ||
|
4e68f4c1fa | ||
|
1e5772f0ba | ||
|
ac6728d2d9 | ||
|
49d8cbe8d1 | ||
|
9d148e6b2b | ||
|
363d0bcf01 | ||
|
e490242b9a | ||
|
a582015905 | ||
|
3509fd8c1b | ||
|
93cd9237d7 | ||
|
1243b829bb | ||
|
2fcaf7a529 | ||
|
a42fe19d8d | ||
|
e57d5c4742 | ||
|
5a5b4436cb | ||
|
3ffe8731e6 | ||
|
c5f5055097 | ||
|
dbeea25bb8 | ||
|
f29f2fc294 | ||
|
ab81d1fd99 | ||
|
d9fdb6c2bb | ||
|
9eef0da109 | ||
|
8b88f62fbd | ||
|
948fa3b295 | ||
|
586f2c59fe | ||
|
e3b0c19ec9 | ||
|
9ca8815d3b | ||
|
ecb6bfc0ce | ||
|
fee163a61a | ||
|
0e26580c90 | ||
|
c8542705f7 | ||
|
435eff8b85 | ||
|
276330b241 | ||
|
ff6723e326 | ||
|
1180fc13db | ||
|
5c6aec2f39 | ||
|
86300c6945 | ||
|
fc3bc1ae14 | ||
|
d3bd97bb14 | ||
|
52064f6c37 | ||
|
2eb147e7f5 | ||
|
6f3d16c64a | ||
|
42fa81275c | ||
|
e3f684b753 | ||
|
883d20791a | ||
|
b1d0ac64ab | ||
|
c64573997c | ||
|
e133984f51 | ||
|
bd8162aaac | ||
|
4a55d4ffa7 | ||
|
6258b76c49 | ||
|
203dcb733d | ||
|
bd1d9d96b2 | ||
|
9f8b3fac97 | ||
|
0355d3ff94 | ||
|
cb34c11663 | ||
|
1077779c7d | ||
|
1c39d183c4 | ||
|
fd4f7064e2 | ||
|
db46e2a7dd | ||
|
e7769cb348 | ||
|
d83c4e6dd1 | ||
|
73e8ffe9f3 | ||
|
286c4cc201 | ||
|
b3e878ad90 | ||
|
eae0439ae6 | ||
|
79c0bb5264 | ||
|
41a93f544e | ||
|
e4b2356c07 | ||
|
ebef61f5c0 | ||
|
fe6ee3f5e6 | ||
|
f5581bb994 | ||
|
47b29f511a | ||
|
c3f764f7bb | ||
|
3151b27b0a | ||
|
209b090241 | ||
|
d8f9599403 | ||
|
c6e1569b7f | ||
|
82761cb08b | ||
|
c22990c29a | ||
|
3aeae20685 | ||
|
884b5ade86 | ||
|
138b7ef4d9 | ||
|
3a934557bf | ||
|
5f0bf77255 | ||
|
8af7ff1ded | ||
|
1c54579e86 | ||
|
7d33053e47 | ||
|
47d18cbb64 | ||
|
f1d053b19a | ||
|
28d0a9c9dd | ||
|
5f534aa1e2 | ||
|
e9e20fc47d | ||
|
a5cb1aa211 | ||
|
431417fec7 | ||
|
5c81a4b9cd | ||
|
a6ebcdfe7d | ||
|
2c19069182 | ||
|
15e75e00c7 | ||
|
d59054e60b | ||
|
5cef1a1fed | ||
|
545515cbea | ||
|
97e1e60b1c | ||
|
69441868f6 | ||
|
55d8dd4078 | ||
|
d09df24082 | ||
|
c03b6f40ba | ||
|
c039af165d | ||
|
c3259fa436 | ||
|
b83aadb0e4 | ||
|
576caad33e | ||
|
cbc8d7596a | ||
|
6ffd0a4cf1 | ||
|
5c906924ed | ||
|
9b4536a654 | ||
|
df943a4041 | ||
|
0d4af83f25 | ||
|
bf87f86493 | ||
|
963586b871 | ||
|
fc06f9fb25 | ||
|
20d44dc9bc | ||
|
11b0a76370 | ||
|
adbff7e977 | ||
|
a661654a33 | ||
|
6f973f3367 | ||
|
6a13c7da4c | ||
|
addcc6afbd | ||
|
19fb77ee7b | ||
|
b10d080b1e | ||
|
3ed1f07686 | ||
|
2cbbd3dc50 | ||
|
a7fcac5e92 | ||
|
07d91bbb59 | ||
|
b3474de7b5 | ||
|
7c26b61f93 | ||
|
88b69d7998 | ||
|
f069e5e412 | ||
|
0ff98b03c6 | ||
|
70375aff48 | ||
|
52bf005425 | ||
|
8d51bbf2a3 | ||
|
fc8f202181 | ||
|
c4e1fd5a7f | ||
|
f8ed0aa268 | ||
|
d03ab104db | ||
|
93d2d54e7a | ||
|
8ea22650bd | ||
|
2510ba618d | ||
|
b7142567bc | ||
|
61f08d8094 | ||
|
f905145b60 | ||
|
02986cb2cc | ||
|
2e823f29e4 | ||
|
b52673117b | ||
|
49b1d95c1c | ||
|
e9a3d8a772 | ||
|
afb3fb4b77 | ||
|
635ee2df37 | ||
|
509710cfd7 | ||
|
efb41b07ff | ||
|
78803b2667 | ||
|
a131d50fb7 | ||
|
e3a846b0e3 | ||
|
65ce50897e | ||
|
8855664489 | ||
|
35725a92be | ||
|
d8aa5ffed5 | ||
|
067e788acd | ||
|
73b4c1b388 | ||
|
a3deff2404 | ||
|
6cae4f3bc9 | ||
|
f434e07a6a | ||
|
369404299c | ||
|
b2b01a60db | ||
|
60e2810ae4 | ||
|
99b329ca13 | ||
|
ed5f790919 | ||
|
8c01903114 | ||
|
6372ea0da0 | ||
|
2a37053fd5 | ||
|
1e8fc5ffea | ||
|
5c968cbc5e | ||
|
98e35025ba | ||
|
fd451b6d01 | ||
|
25fe93f0a1 | ||
|
c604e457d1 | ||
|
9a5ba4794c | ||
|
fa2802d4d0 | ||
|
0e7836b500 | ||
|
d3ea221d3e | ||
|
2f951683be | ||
|
5a38200122 | ||
|
f18d70b804 | ||
|
cfcf86b37d | ||
|
0ad2ef20a7 | ||
|
ad0dbe6b04 | ||
|
41bddcfa7b | ||
|
55ba0dccc9 | ||
|
aaa5a66433 | ||
|
5f92c38f0e | ||
|
db382c5b1d | ||
|
a657c1aee8 | ||
|
d9c389dff6 | ||
|
c51ed8c236 | ||
|
c61782958b | ||
|
c3984fc015 | ||
|
481bdd383a | ||
|
bfc8a8dc63 | ||
|
29c909f81c | ||
|
5234d17514 | ||
|
c39a4bc83c | ||
|
a92100a3c6 | ||
|
fe1230f1c8 | ||
|
26772ac988 | ||
|
425569bbc5 | ||
|
93b52d9484 | ||
|
1706ba4101 | ||
|
9a54843a94 | ||
|
cb80e3905c | ||
|
32e845f05e | ||
|
7d4abc9b3a | ||
|
a62fe7f5e3 | ||
|
00e599e783 | ||
|
1d7f71924d | ||
|
05ab19ef43 | ||
|
a095aa4f4b | ||
|
675f802542 | ||
|
116986bad5 | ||
|
798e753e07 | ||
|
ce1d7ee5ee | ||
|
068039eec1 | ||
|
05bbafa01a | ||
|
8fb17f5b3f | ||
|
3e62d3a8d8 | ||
|
050b77a9ac | ||
|
59b4b7e07e | ||
|
46d50d9e8e | ||
|
de4fe1e3c5 | ||
|
7f8e10f96c | ||
|
e7c7a0f353 | ||
|
6bd390743d | ||
|
2fb2e27e28 | ||
|
5b641a516e | ||
|
706bb1c714 | ||
|
1d5c727bba | ||
|
a890ceee63 | ||
|
8a7dcd97bd | ||
|
a78bbd0816 | ||
|
80a939cafb | ||
|
6af6a69312 | ||
|
979f35fb78 | ||
|
b81efaaa1a | ||
|
00e760c971 | ||
|
3f35fbbf66 | ||
|
9eae0b9f19 | ||
|
c1aa3d1e6f | ||
|
dd9da8cdb5 | ||
|
fbe5296d14 | ||
|
7541794373 | ||
|
3c4c86aff2 | ||
|
34dd4843d7 | ||
|
7457a648d2 | ||
|
bd5bba8470 | ||
|
e2e4a5c992 | ||
|
02eb36fa8d | ||
|
0c7d2fff1e | ||
|
5c9d21df3d | ||
|
8998de569c | ||
|
278c6025f9 | ||
|
4f05e61543 | ||
|
45f26f9979 | ||
|
203bd3e8ec | ||
|
91c219d906 | ||
|
522ea42718 | ||
|
e24a9c10b5 | ||
|
96035d54f3 | ||
|
746df56717 | ||
|
5737fda093 | ||
|
439f7feab1 | ||
|
f0d484fa5a | ||
|
2579c32a5f | ||
|
0bd5373d94 | ||
|
9d05d3dd30 | ||
|
e6aa21156a | ||
|
a30402b56a | ||
|
07561c6b32 | ||
|
a4296239d4 | ||
|
3f9467c946 | ||
|
1bb14ad90c | ||
|
87030f6618 | ||
|
8ff72e9723 | ||
|
b47731f24d | ||
|
bc6bf401f5 | ||
|
984d527626 | ||
|
fdb5a87f91 | ||
|
ce77d37264 | ||
|
6e776f25fd | ||
|
c1f2f9090b | ||
|
7644bfb536 | ||
|
3e1961839e | ||
|
fff3b2f318 | ||
|
b960c14cbb | ||
|
3db7ae3a38 | ||
|
7cd2ae9d97 | ||
|
03dc437363 | ||
|
80875253ce | ||
|
d1e40c9bdd | ||
|
6c0c91714c | ||
|
87a2f3df64 | ||
|
ab7312ef63 | ||
|
67742383e8 | ||
|
4932ba28ad | ||
|
8ca515097f | ||
|
c68233cb35 | ||
|
9bfd9582d4 | ||
|
24dcc6b6bf | ||
|
f3a6e4fa5b | ||
|
4e262cfb07 | ||
|
40af76bbaa | ||
|
1fd3bbc42e | ||
|
ac8020ea9c | ||
|
2c6f911e10 | ||
|
7b7d00ca62 | ||
|
365a0a7c15 | ||
|
2b1ec683d3 | ||
|
ba0fe1832e | ||
|
540b260cbd | ||
|
8f5f6b3d59 | ||
|
6614766f3e | ||
|
57b5e8538e | ||
|
fdb07636f2 | ||
|
cb83f62e30 | ||
|
78123bb38b | ||
|
3c69df8a70 | ||
|
e00b729716 | ||
|
a2990a9d73 | ||
|
dee1c795c2 | ||
|
eb6560bf2b | ||
|
35bc4ac680 | ||
|
ff3ce3dd96 | ||
|
42896b2a18 | ||
|
10b892af96 | ||
|
9605806d81 | ||
|
3f22c0966d | ||
|
8281cca82f | ||
|
4d73f1af35 | ||
|
26d812ae00 | ||
|
f448e632b6 | ||
|
49f7430b12 | ||
|
d73b929ef2 | ||
|
6f37e76272 | ||
|
74477b24a8 | ||
|
78152f85e7 | ||
|
002a64cc48 | ||
|
ca4116bfce | ||
|
0846e52d46 | ||
|
6e2fd96627 | ||
|
a9eb712fc9 | ||
|
934be3266f | ||
|
c8af2b5a52 | ||
|
f321f16e83 | ||
|
41d180c899 | ||
|
8eeef423e9 | ||
|
1ff8f50f2f | ||
|
2c28dd892c | ||
|
5c2f3d5d3a | ||
|
d588311dbb | ||
|
f446027656 | ||
|
233d93d47e | ||
|
70f2be9cc6 | ||
|
9e5a0b8895 | ||
|
09298228c6 | ||
|
e82cb7852b | ||
|
4ea4589302 | ||
|
a5f2dcb57b | ||
|
72b2af6035 | ||
|
84396a72df | ||
|
0340663eb7 | ||
|
8352666a9d | ||
|
8d12a6d537 | ||
|
fbdd7a5e74 | ||
|
aeee36a311 | ||
|
2f99f6558c | ||
|
b6082fd236 | ||
|
0a13cebaa1 | ||
|
baa832d311 | ||
|
1718e34352 | ||
|
d5e008b84b | ||
|
3271390362 | ||
|
37cbb521d3 | ||
|
2752177ade | ||
|
f640ee2f6e | ||
|
25817dc26b | ||
|
ed9119b72a | ||
|
0872b85b1e | ||
|
6125515cec | ||
|
cc70176446 | ||
|
a0c8524924 | ||
|
2d10924a14 | ||
|
4837ea3020 | ||
|
26d3159125 | ||
|
b66251f76d | ||
|
d9468c9405 | ||
|
f901072afb | ||
|
1982a66838 | ||
|
3f9bae90c3 | ||
|
b97e478fe9 | ||
|
a9a4c5489e | ||
|
a85eb9c0a7 | ||
|
dd951e6dde | ||
|
d190734875 | ||
|
4afa1d7abb | ||
|
58010eb35c | ||
|
816c0c932d | ||
|
4f1f5e336b | ||
|
a8d5b176b5 | ||
|
fe7aa08ad9 | ||
|
1f6735a6a5 | ||
|
f0bbbf66b8 | ||
|
d863424032 | ||
|
799bc13da2 | ||
|
4754fc653f | ||
|
85199453cc | ||
|
a91e0218a3 | ||
|
5e4a7581df | ||
|
6a04cff065 | ||
|
3dec3c7a74 | ||
|
8e5f0e62dd | ||
|
46cde1715f | ||
|
d084982240 | ||
|
4885a9eb20 | ||
|
1764b78ee9 | ||
|
315afce941 | ||
|
3f847b73f3 | ||
|
923b6fc4d9 | ||
|
1864c7d79a | ||
|
386e997f45 | ||
|
3d2e10564e | ||
|
cf69e051ce | ||
|
78e6e59477 | ||
|
87440f531c | ||
|
6cfd4f7e55 | ||
|
463642c0be | ||
|
d1b1b37270 | ||
|
0d22b90540 | ||
|
27f75a863e | ||
|
049290c584 | ||
|
71699df7de | ||
|
8d621b3bdd | ||
|
1f2b715988 | ||
|
3deaa01c2b | ||
|
1e42244e82 | ||
|
66b48d6df6 | ||
|
5bdf2bc6c7 | ||
|
d9d972a944 | ||
|
ddc82eefca | ||
|
2886579324 | ||
|
bb7d5f8837 | ||
|
8c3ddf4270 | ||
|
f955218bf1 | ||
|
7aafcc86c7 | ||
|
ce657cf752 | ||
|
cf899d400d | ||
|
557dce9bc2 | ||
|
b64d4a27cb | ||
|
a02b83115a | ||
|
0a755ade51 | ||
|
19064f818a | ||
|
cbff5db516 | ||
|
64b85b4563 | ||
|
9ea600ff3f | ||
|
fe58074dea | ||
|
c326f9ffae | ||
|
54b03eefda | ||
|
d26e464b6a | ||
|
4c56261075 | ||
|
19b260119a | ||
|
3f0926b612 | ||
|
cb085044c9 | ||
|
f350617c24 | ||
|
f46de6f23b | ||
|
94a20cbadf | ||
|
eba5b610b9 | ||
|
2eb9e67a5a | ||
|
8b21166c14 | ||
|
1a141b9161 | ||
|
6286dda286 | ||
|
1a1c49f8a6 | ||
|
3fec8c24ec | ||
|
6b158a7d23 | ||
|
b5c90ca7d9 | ||
|
b5128c6e82 | ||
|
7bccfa1026 |
233
Makefile
233
Makefile
@@ -28,12 +28,13 @@ realclean:
|
||||
-rm -f `find . -name \*.o`
|
||||
-rm -f `find . -name \*.a`
|
||||
-rm -f `find . -name \*.so`
|
||||
-rm -f `find . -name depend`
|
||||
|
||||
|
||||
|
||||
install:
|
||||
@echo "Installing"
|
||||
$(TOP)/bin/installmesa
|
||||
$(TOP)/bin/installmesa $(DESTDIR)
|
||||
|
||||
# DirectFBGL module installation
|
||||
linux-directfb-install:
|
||||
@@ -61,6 +62,7 @@ darwin \
|
||||
darwin-static \
|
||||
freebsd \
|
||||
freebsd-dri \
|
||||
freebsd-dri-amd64 \
|
||||
freebsd-dri-x86 \
|
||||
hpux10 \
|
||||
hpux10-gcc \
|
||||
@@ -87,6 +89,8 @@ linux-dri \
|
||||
linux-dri-x86 \
|
||||
linux-dri-x86-64 \
|
||||
linux-dri-ppc \
|
||||
linux-indirect \
|
||||
linux-fbdev \
|
||||
linux-glide \
|
||||
linux-icc \
|
||||
linux-icc-static \
|
||||
@@ -105,8 +109,11 @@ linux-ultrasparc \
|
||||
linux-tcc \
|
||||
linux-x86 \
|
||||
linux-x86-debug \
|
||||
linux-x86-32 \
|
||||
linux-x86-64 \
|
||||
linux-x86-64-debug \
|
||||
linux-x86-64-static \
|
||||
linux-x86-xcb \
|
||||
linux-x86-glide \
|
||||
linux-x86-static \
|
||||
netbsd \
|
||||
@@ -127,28 +134,28 @@ ultrix-gcc:
|
||||
|
||||
# Rules for making release tarballs
|
||||
|
||||
DIRECTORY = Mesa-6.3
|
||||
LIB_NAME = MesaLib-6.3
|
||||
DEMO_NAME = MesaDemos-6.3
|
||||
DIRECTORY = Mesa-6.4
|
||||
LIB_NAME = MesaLib-6.4
|
||||
DEMO_NAME = MesaDemos-6.4
|
||||
GLUT_NAME = MesaGLUT-6.4
|
||||
|
||||
LIB_FILES = \
|
||||
MAIN_FILES = \
|
||||
$(DIRECTORY)/Makefile* \
|
||||
$(DIRECTORY)/descrip.mms \
|
||||
$(DIRECTORY)/mms-config. \
|
||||
$(DIRECTORY)/Mesa.dsw \
|
||||
$(DIRECTORY)/bin/mklib \
|
||||
$(DIRECTORY)/bin/installmesa \
|
||||
$(DIRECTORY)/configs/[a-z]* \
|
||||
$(DIRECTORY)/docs/*.html \
|
||||
$(DIRECTORY)/docs/COPYING \
|
||||
$(DIRECTORY)/docs/INSTALL.GNU \
|
||||
$(DIRECTORY)/docs/README.* \
|
||||
$(DIRECTORY)/docs/RELNOTES* \
|
||||
$(DIRECTORY)/docs/VERSIONS \
|
||||
$(DIRECTORY)/docs/*.spec \
|
||||
$(DIRECTORY)/include/GL/internal/glcore.h \
|
||||
$(DIRECTORY)/include/GL/dmesa.h \
|
||||
$(DIRECTORY)/include/GL/amesa.h \
|
||||
$(DIRECTORY)/include/GL/dmesa.h \
|
||||
$(DIRECTORY)/include/GL/directfbgl.h \
|
||||
$(DIRECTORY)/include/GL/fxmesa.h \
|
||||
$(DIRECTORY)/include/GL/ggimesa.h \
|
||||
$(DIRECTORY)/include/GL/gl.h \
|
||||
@@ -169,6 +176,7 @@ LIB_FILES = \
|
||||
$(DIRECTORY)/include/GL/xmesa.h \
|
||||
$(DIRECTORY)/include/GL/xmesa_x.h \
|
||||
$(DIRECTORY)/include/GL/xmesa_xf86.h \
|
||||
$(DIRECTORY)/include/GLView.h \
|
||||
$(DIRECTORY)/src/Makefile \
|
||||
$(DIRECTORY)/src/descrip.mms \
|
||||
$(DIRECTORY)/src/mesa/Makefile* \
|
||||
@@ -176,28 +184,25 @@ LIB_FILES = \
|
||||
$(DIRECTORY)/src/mesa/descrip.mms \
|
||||
$(DIRECTORY)/src/mesa/depend \
|
||||
$(DIRECTORY)/src/mesa/main/*.[chS] \
|
||||
$(DIRECTORY)/src/mesa/main/main.dsp \
|
||||
$(DIRECTORY)/src/mesa/main/descrip.mms \
|
||||
$(DIRECTORY)/src/mesa/glapi/*.[chS] \
|
||||
$(DIRECTORY)/src/mesa/glapi/glapi.dsp \
|
||||
$(DIRECTORY)/src/mesa/glapi/descrip.mms \
|
||||
$(DIRECTORY)/src/mesa/array_cache/*.[ch] \
|
||||
$(DIRECTORY)/src/mesa/array_cache/array_cache.dsp \
|
||||
$(DIRECTORY)/src/mesa/array_cache/descrip.mms \
|
||||
$(DIRECTORY)/src/mesa/math/*.[ch] \
|
||||
$(DIRECTORY)/src/mesa/math/math.dsp \
|
||||
$(DIRECTORY)/src/mesa/math/descrip.mms \
|
||||
$(DIRECTORY)/src/mesa/shader/*.[ch] \
|
||||
$(DIRECTORY)/src/mesa/shader/shader.dsp \
|
||||
$(DIRECTORY)/src/mesa/shader/descrip.mms \
|
||||
$(DIRECTORY)/src/mesa/shader/grammar/*.[ch] \
|
||||
$(DIRECTORY)/src/mesa/shader/grammar/descrip.mms \
|
||||
$(DIRECTORY)/src/mesa/shader/slang/*.[ch] \
|
||||
$(DIRECTORY)/src/mesa/shader/slang/descrip.mms \
|
||||
$(DIRECTORY)/src/mesa/shader/slang/library/*.[ch] \
|
||||
$(DIRECTORY)/src/mesa/swrast/*.[ch] \
|
||||
$(DIRECTORY)/src/mesa/swrast/swrast.dsp \
|
||||
$(DIRECTORY)/src/mesa/swrast/descrip.mms \
|
||||
$(DIRECTORY)/src/mesa/swrast_setup/*.[ch] \
|
||||
$(DIRECTORY)/src/mesa/swrast_setup/swrast_setup.dsp \
|
||||
$(DIRECTORY)/src/mesa/swrast_setup/descrip.mms \
|
||||
$(DIRECTORY)/src/mesa/tnl/*.[chS] \
|
||||
$(DIRECTORY)/src/mesa/tnl/tnl.dsp \
|
||||
$(DIRECTORY)/src/mesa/tnl/descrip.mms \
|
||||
$(DIRECTORY)/src/mesa/tnl_dd/*.[ch] \
|
||||
$(DIRECTORY)/src/mesa/tnl_dd/imm/*.[ch] \
|
||||
@@ -206,13 +211,11 @@ LIB_FILES = \
|
||||
$(DIRECTORY)/src/mesa/drivers/beos/Makefile \
|
||||
$(DIRECTORY)/src/mesa/drivers/common/*.[ch] \
|
||||
$(DIRECTORY)/src/mesa/drivers/common/descrip.mms \
|
||||
$(DIRECTORY)/src/mesa/drivers/directfb/*.[ch] \
|
||||
$(DIRECTORY)/src/mesa/drivers/directfb/Makefile \
|
||||
$(DIRECTORY)/src/mesa/drivers/directfb/*.[ch] \
|
||||
$(DIRECTORY)/src/mesa/drivers/directfb/Makefile \
|
||||
$(DIRECTORY)/src/mesa/drivers/dos/*.[chS] \
|
||||
$(DIRECTORY)/src/mesa/drivers/dri/common/*.[ch] \
|
||||
$(DIRECTORY)/src/mesa/drivers/fbdev/glfbdev.c \
|
||||
$(DIRECTORY)/src/mesa/drivers/glide/*.[ch] \
|
||||
$(DIRECTORY)/src/mesa/drivers/glide/*.def \
|
||||
$(DIRECTORY)/src/mesa/drivers/ggi/*.[ch] \
|
||||
$(DIRECTORY)/src/mesa/drivers/ggi/ggimesa.conf.in \
|
||||
$(DIRECTORY)/src/mesa/drivers/ggi/default/*.c \
|
||||
@@ -223,26 +226,62 @@ LIB_FILES = \
|
||||
$(DIRECTORY)/src/mesa/drivers/osmesa/Makefile.win \
|
||||
$(DIRECTORY)/src/mesa/drivers/osmesa/descrip.mms \
|
||||
$(DIRECTORY)/src/mesa/drivers/osmesa/osmesa.def \
|
||||
$(DIRECTORY)/src/mesa/drivers/osmesa/osmesa.dsp \
|
||||
$(DIRECTORY)/src/mesa/drivers/osmesa/*.[ch] \
|
||||
$(DIRECTORY)/src/mesa/drivers/svga/*.[ch] \
|
||||
$(DIRECTORY)/src/mesa/drivers/windows/*/*.[ch] \
|
||||
$(DIRECTORY)/src/mesa/drivers/windows/*/*.def \
|
||||
$(DIRECTORY)/src/mesa/drivers/windows/*/*.dsp \
|
||||
$(DIRECTORY)/src/mesa/drivers/x11/descrip.mms \
|
||||
$(DIRECTORY)/src/mesa/drivers/x11/*.[ch] \
|
||||
$(DIRECTORY)/src/mesa/ppc/*.[ch] \
|
||||
$(DIRECTORY)/src/mesa/sparc/*.[chS] \
|
||||
$(DIRECTORY)/src/mesa/x86/Makefile \
|
||||
$(DIRECTORY)/src/mesa/x86/*.[ch] \
|
||||
$(DIRECTORY)/src/mesa/x86/*.S \
|
||||
$(DIRECTORY)/src/mesa/x86/rtasm/*.[ch] \
|
||||
$(DIRECTORY)/src/mesa/x86-64/*.[chS] \
|
||||
$(DIRECTORY)/src/mesa/x86-64/Makefile \
|
||||
$(DIRECTORY)/progs/Makefile \
|
||||
$(DIRECTORY)/progs/util/README \
|
||||
$(DIRECTORY)/progs/util/*.[ch] \
|
||||
$(DIRECTORY)/progs/util/sampleMakefile \
|
||||
$(DIRECTORY)/vms/analyze_map.com \
|
||||
$(DIRECTORY)/vms/xlib.opt \
|
||||
$(DIRECTORY)/vms/xlib_share.opt \
|
||||
$(DIRECTORY)/windows/VC6/mesa/gdi/gdi.dsp \
|
||||
$(DIRECTORY)/windows/VC6/mesa/glu/*.txt \
|
||||
$(DIRECTORY)/windows/VC6/mesa/glu/glu.dsp \
|
||||
$(DIRECTORY)/windows/VC6/mesa/mesa.dsw \
|
||||
$(DIRECTORY)/windows/VC6/mesa/mesa/mesa.dsp \
|
||||
$(DIRECTORY)/windows/VC6/mesa/osmesa/osmesa.dsp \
|
||||
$(DIRECTORY)/windows/VC7/mesa/gdi/gdi.vcproj \
|
||||
$(DIRECTORY)/windows/VC7/mesa/glu/glu.vcproj \
|
||||
$(DIRECTORY)/windows/VC7/mesa/mesa.sln \
|
||||
$(DIRECTORY)/windows/VC7/mesa/mesa/mesa.vcproj \
|
||||
$(DIRECTORY)/windows/VC7/mesa/osmesa/osmesa.vcproj
|
||||
|
||||
DRI_FILES = \
|
||||
$(DIRECTORY)/include/GL/internal/dri_interface.h \
|
||||
$(DIRECTORY)/include/GL/internal/sarea.h \
|
||||
$(DIRECTORY)/src/glx/Makefile \
|
||||
$(DIRECTORY)/src/glx/x11/Makefile \
|
||||
$(DIRECTORY)/src/glx/x11/*.[ch] \
|
||||
$(DIRECTORY)/src/mesa/drivers/dri/Makefile \
|
||||
$(DIRECTORY)/src/mesa/drivers/dri/Makefile.template \
|
||||
$(DIRECTORY)/src/mesa/drivers/dri/common/xmlpool/*.[ch] \
|
||||
$(DIRECTORY)/src/mesa/drivers/dri/common/xmlpool/*.po \
|
||||
$(DIRECTORY)/src/mesa/drivers/dri/dri_client/imports/*.h \
|
||||
$(DIRECTORY)/src/mesa/drivers/dri/*/*.[chS] \
|
||||
$(DIRECTORY)/src/mesa/drivers/dri/*/Makefile \
|
||||
$(DIRECTORY)/src/mesa/drivers/dri/*/Doxyfile \
|
||||
$(DIRECTORY)/src/mesa/drivers/dri/*/server/*.[ch]
|
||||
|
||||
SGI_GLU_FILES = \
|
||||
$(DIRECTORY)/src/glu/Makefile \
|
||||
$(DIRECTORY)/src/glu/descrip.mms \
|
||||
$(DIRECTORY)/src/glu/sgi/Makefile \
|
||||
$(DIRECTORY)/src/glu/sgi/Makefile.win \
|
||||
$(DIRECTORY)/src/glu/sgi/Makefile.DJ \
|
||||
$(DIRECTORY)/src/glu/sgi/cc*.txt \
|
||||
$(DIRECTORY)/src/glu/sgi/glu.def \
|
||||
$(DIRECTORY)/src/glu/sgi/glu.dsp \
|
||||
$(DIRECTORY)/src/glu/sgi/dummy.cc \
|
||||
$(DIRECTORY)/src/glu/sgi/descrip.mms \
|
||||
$(DIRECTORY)/src/glu/sgi/mesaglu.opt \
|
||||
@@ -256,46 +295,22 @@ LIB_FILES = \
|
||||
$(DIRECTORY)/src/glu/sgi/libtess/README \
|
||||
$(DIRECTORY)/src/glu/sgi/libtess/alg-outline \
|
||||
$(DIRECTORY)/src/glu/sgi/libtess/*.[ch] \
|
||||
$(DIRECTORY)/src/glu/sgi/libutil/*.[ch] \
|
||||
$(DIRECTORY)/src/glu/mesa/README[12] \
|
||||
$(DIRECTORY)/src/glu/mesa/Makefile* \
|
||||
$(DIRECTORY)/src/glu/mesa/descrip.mms \
|
||||
$(DIRECTORY)/src/glu/mesa/mms_depend \
|
||||
$(DIRECTORY)/src/glu/mesa/*.def \
|
||||
$(DIRECTORY)/src/glu/mesa/depend \
|
||||
$(DIRECTORY)/src/glu/mesa/*.[ch] \
|
||||
$(DIRECTORY)/src/glw/*.[ch] \
|
||||
$(DIRECTORY)/src/glw/Makefile* \
|
||||
$(DIRECTORY)/src/glw/README \
|
||||
$(DIRECTORY)/src/glw/depend \
|
||||
$(DIRECTORY)/progs/Makefile \
|
||||
$(DIRECTORY)/progs/util/README \
|
||||
$(DIRECTORY)/progs/util/*.[ch] \
|
||||
$(DIRECTORY)/progs/util/sampleMakefile \
|
||||
$(DIRECTORY)/vms/analyze_map.com \
|
||||
$(DIRECTORY)/vms/xlib.opt \
|
||||
$(DIRECTORY)/vms/xlib_share.opt
|
||||
$(DIRECTORY)/src/glu/sgi/libutil/*.[ch]
|
||||
|
||||
MESA_GLU_FILES = \
|
||||
$(DIRECTORY)/src/glu/mesa/README[12] \
|
||||
$(DIRECTORY)/src/glu/mesa/Makefile* \
|
||||
$(DIRECTORY)/src/glu/mesa/descrip.mms \
|
||||
$(DIRECTORY)/src/glu/mesa/mms_depend \
|
||||
$(DIRECTORY)/src/glu/mesa/*.def \
|
||||
$(DIRECTORY)/src/glu/mesa/depend \
|
||||
$(DIRECTORY)/src/glu/mesa/*.[ch]
|
||||
|
||||
GLUT_FILES = \
|
||||
$(DIRECTORY)/include/GL/glut.h \
|
||||
$(DIRECTORY)/include/GL/glutf90.h \
|
||||
$(DIRECTORY)/src/glut/glx/Makefile* \
|
||||
$(DIRECTORY)/src/glut/glx/depend \
|
||||
$(DIRECTORY)/src/glut/glx/*def \
|
||||
$(DIRECTORY)/src/glut/glx/descrip.mms \
|
||||
$(DIRECTORY)/src/glut/glx/mms_depend \
|
||||
$(DIRECTORY)/src/glut/glx/glut.dsp \
|
||||
$(DIRECTORY)/src/glut/glx/*.[ch] \
|
||||
$(DIRECTORY)/src/glut/beos/*.[ch] \
|
||||
$(DIRECTORY)/src/glut/beos/*.cpp \
|
||||
$(DIRECTORY)/src/glut/beos/Makefile \
|
||||
$(DIRECTORY)/src/glut/dos/*.[ch] \
|
||||
$(DIRECTORY)/src/glut/dos/Makefile.DJ \
|
||||
$(DIRECTORY)/src/glut/dos/PC_HW/*.[chS] \
|
||||
$(DIRECTORY)/src/glut/ggi/*.[ch] \
|
||||
$(DIRECTORY)/src/glut/ggi/Makefile
|
||||
|
||||
GLW_FILES = \
|
||||
$(DIRECTORY)/src/glw/*.[ch] \
|
||||
$(DIRECTORY)/src/glw/Makefile* \
|
||||
$(DIRECTORY)/src/glw/README \
|
||||
$(DIRECTORY)/src/glw/depend
|
||||
|
||||
DEMO_FILES = \
|
||||
$(DIRECTORY)/progs/beos/*.cpp \
|
||||
@@ -308,8 +323,6 @@ DEMO_FILES = \
|
||||
$(DIRECTORY)/progs/demos/*.cxx \
|
||||
$(DIRECTORY)/progs/demos/*.dat \
|
||||
$(DIRECTORY)/progs/demos/README \
|
||||
$(DIRECTORY)/progs/demos/Windows/*.dsp \
|
||||
$(DIRECTORY)/progs/demos/Windows/*.dsw \
|
||||
$(DIRECTORY)/progs/xdemos/Makefile* \
|
||||
$(DIRECTORY)/progs/xdemos/descrip.mms \
|
||||
$(DIRECTORY)/progs/xdemos/*.[chf] \
|
||||
@@ -322,68 +335,109 @@ DEMO_FILES = \
|
||||
$(DIRECTORY)/progs/windml/Makefile.ugl \
|
||||
$(DIRECTORY)/progs/windml/*.c \
|
||||
$(DIRECTORY)/progs/windml/*.bmp \
|
||||
$(DIRECTORY)/progs/ggi/*.c
|
||||
$(DIRECTORY)/progs/ggi/*.c \
|
||||
$(DIRECTORY)/windows/VC6/progs/demos/*.dsp \
|
||||
$(DIRECTORY)/windows/VC6/progs/progs.dsw \
|
||||
$(DIRECTORY)/windows/VC7/progs/demos/*.vcproj \
|
||||
$(DIRECTORY)/windows/VC7/progs/progs.sln
|
||||
|
||||
GLUT_FILES = \
|
||||
$(DIRECTORY)/include/GL/glut.h \
|
||||
$(DIRECTORY)/include/GL/glutf90.h \
|
||||
$(DIRECTORY)/src/glut/glx/Makefile* \
|
||||
$(DIRECTORY)/src/glut/glx/depend \
|
||||
$(DIRECTORY)/src/glut/glx/*def \
|
||||
$(DIRECTORY)/src/glut/glx/descrip.mms \
|
||||
$(DIRECTORY)/src/glut/glx/mms_depend \
|
||||
$(DIRECTORY)/src/glut/glx/*.[ch] \
|
||||
$(DIRECTORY)/src/glut/beos/*.[ch] \
|
||||
$(DIRECTORY)/src/glut/beos/*.cpp \
|
||||
$(DIRECTORY)/src/glut/beos/Makefile \
|
||||
$(DIRECTORY)/src/glut/dos/*.[ch] \
|
||||
$(DIRECTORY)/src/glut/dos/Makefile.DJ \
|
||||
$(DIRECTORY)/src/glut/dos/PC_HW/*.[chS] \
|
||||
$(DIRECTORY)/src/glut/ggi/*.[ch] \
|
||||
$(DIRECTORY)/src/glut/ggi/Makefile \
|
||||
$(DIRECTORY)/windows/VC6/progs/glut/glut.dsp \
|
||||
$(DIRECTORY)/windows/VC7/progs/glut/glut.vcproj
|
||||
|
||||
DEPEND_FILES = \
|
||||
$(TOP)/src/mesa/depend \
|
||||
$(TOP)/src/glw/depend \
|
||||
$(TOP)/src/glut/glx/depend \
|
||||
$(TOP)/src/glu/sgi/depend
|
||||
|
||||
|
||||
DRI_FILES = \
|
||||
$(DIRECTORY)/src/glx/Makefile \
|
||||
$(DIRECTORY)/src/glx/mini/*.[ch] \
|
||||
$(DIRECTORY)/src/glx/mini/example.miniglx.conf \
|
||||
$(DIRECTORY)/src/glx/mini/NOTES \
|
||||
$(DIRECTORY)/src/mesa/drivers/dri/Makefile \
|
||||
$(DIRECTORY)/src/mesa/drivers/dri/Makefile.template \
|
||||
$(DIRECTORY)/src/mesa/drivers/dri/common/*.[ch] \
|
||||
$(DIRECTORY)/src/mesa/drivers/dri/dri_client/imports/*.h \
|
||||
$(DIRECTORY)/src/mesa/drivers/dri/*/*.[ch] \
|
||||
$(DIRECTORY)/src/mesa/drivers/dri/*/depend \
|
||||
$(DIRECTORY)/src/mesa/drivers/dri/*/Makefile \
|
||||
$(DIRECTORY)/src/mesa/drivers/dri/*/Doxyfile \
|
||||
$(DIRECTORY)/src/mesa/drivers/dri/*/server/*.[ch]
|
||||
LIB_FILES = $(MAIN_FILES) $(DRI_FILES) $(SGI_GLU_FILES) $(GLW_FILES)
|
||||
|
||||
|
||||
# Everything for new a Mesa release:
|
||||
tarballs: lib_gz demo_gz lib_bz2 demo_bz2 lib_zip demo_zip md5
|
||||
tarballs: rm_depend lib_gz demo_gz glut_gz lib_bz2 demo_bz2 glut_bz2 lib_zip demo_zip glut_zip md5
|
||||
|
||||
|
||||
rm_depend:
|
||||
@for dep in $(DEPEND_FILES) ; do \
|
||||
rm -f $$dep ; \
|
||||
touch $$dep ; \
|
||||
done
|
||||
|
||||
lib_gz:
|
||||
rm -f configs/current ; \
|
||||
cd .. ; \
|
||||
tar -cvf $(LIB_NAME).tar $(LIB_FILES) ; \
|
||||
tar -cf $(LIB_NAME).tar $(LIB_FILES) ; \
|
||||
gzip $(LIB_NAME).tar ; \
|
||||
mv $(LIB_NAME).tar.gz $(DIRECTORY)
|
||||
|
||||
demo_gz:
|
||||
cd .. ; \
|
||||
tar -cvf $(DEMO_NAME).tar $(DEMO_FILES) $(GLUT_FILES) ; \
|
||||
tar -cf $(DEMO_NAME).tar $(DEMO_FILES) ; \
|
||||
gzip $(DEMO_NAME).tar ; \
|
||||
mv $(DEMO_NAME).tar.gz $(DIRECTORY)
|
||||
|
||||
glut_gz:
|
||||
cd .. ; \
|
||||
tar -cf $(GLUT_NAME).tar $(GLUT_FILES) ; \
|
||||
gzip $(GLUT_NAME).tar ; \
|
||||
mv $(GLUT_NAME).tar.gz $(DIRECTORY)
|
||||
|
||||
lib_bz2:
|
||||
rm -f configs/current ; \
|
||||
cd .. ; \
|
||||
tar -cvf $(LIB_NAME).tar $(LIB_FILES) ; \
|
||||
tar -cf $(LIB_NAME).tar $(LIB_FILES) ; \
|
||||
bzip2 $(LIB_NAME).tar ; \
|
||||
mv $(LIB_NAME).tar.bz2 $(DIRECTORY)
|
||||
|
||||
demo_bz2:
|
||||
cd .. ; \
|
||||
tar -cvf $(DEMO_NAME).tar $(DEMO_FILES) $(GLUT_FILES) ; \
|
||||
tar -cf $(DEMO_NAME).tar $(DEMO_FILES) ; \
|
||||
bzip2 $(DEMO_NAME).tar ; \
|
||||
mv $(DEMO_NAME).tar.bz2 $(DIRECTORY)
|
||||
|
||||
glut_bz2:
|
||||
cd .. ; \
|
||||
tar -cf $(GLUT_NAME).tar $(GLUT_FILES) ; \
|
||||
bzip2 $(GLUT_NAME).tar ; \
|
||||
mv $(GLUT_NAME).tar.bz2 $(DIRECTORY)
|
||||
|
||||
lib_zip:
|
||||
rm -f configs/current ; \
|
||||
-rm $(LIB_NAME).zip ; \
|
||||
rm -f $(LIB_NAME).zip ; \
|
||||
cd .. ; \
|
||||
zip -r $(LIB_NAME).zip $(LIB_FILES) ; \
|
||||
zip -qr $(LIB_NAME).zip $(LIB_FILES) ; \
|
||||
mv $(LIB_NAME).zip $(DIRECTORY)
|
||||
|
||||
demo_zip:
|
||||
-rm $(DEMO_NAME).zip ; \
|
||||
rm -f $(DEMO_NAME).zip ; \
|
||||
cd .. ; \
|
||||
zip -r $(DEMO_NAME).zip $(DEMO_FILES) $(GLUT_FILES) ; \
|
||||
zip -qr $(DEMO_NAME).zip $(DEMO_FILES) ; \
|
||||
mv $(DEMO_NAME).zip $(DIRECTORY)
|
||||
|
||||
glut_zip:
|
||||
rm -f $(GLUT_NAME).zip ; \
|
||||
cd .. ; \
|
||||
zip -qr $(GLUT_NAME).zip $(GLUT_FILES) ; \
|
||||
mv $(GLUT_NAME).zip $(DIRECTORY)
|
||||
|
||||
md5:
|
||||
@-md5sum $(LIB_NAME).tar.gz
|
||||
@-md5sum $(LIB_NAME).tar.bz2
|
||||
@@ -391,3 +445,6 @@ md5:
|
||||
@-md5sum $(DEMO_NAME).tar.gz
|
||||
@-md5sum $(DEMO_NAME).tar.bz2
|
||||
@-md5sum $(DEMO_NAME).zip
|
||||
@-md5sum $(GLUT_NAME).tar.gz
|
||||
@-md5sum $(GLUT_NAME).tar.bz2
|
||||
@-md5sum $(GLUT_NAME).zip
|
||||
|
@@ -31,8 +31,6 @@
|
||||
# Available options:
|
||||
#
|
||||
# Environment variables:
|
||||
# CPU optimize for the given processor.
|
||||
# default = pentium
|
||||
# GLU=[mesa|sgi] specify GLU directory; can be `sgi' (requires GNU/C++)
|
||||
# or `mesa'.
|
||||
# default = mesa
|
||||
@@ -59,12 +57,10 @@
|
||||
|
||||
.PHONY : all libgl libglu libglut clean realclean
|
||||
|
||||
CPU ?= pentium
|
||||
|
||||
GLU ?= mesa
|
||||
|
||||
CFLAGS = -Wall -W -pedantic
|
||||
CFLAGS += -O2 -ffast-math -mtune=$(CPU)
|
||||
CFLAGS += -O2 -ffast-math
|
||||
|
||||
export CFLAGS
|
||||
|
||||
|
@@ -31,8 +31,6 @@
|
||||
# Available options:
|
||||
#
|
||||
# Environment variables:
|
||||
# CPU optimize for the given processor.
|
||||
# default = pentium
|
||||
# GLIDE path to Glide3 SDK; used with FX.
|
||||
# default = $(TOP)/glide3
|
||||
# FX=1 build for 3dfx Glide3. Note that this disables
|
||||
@@ -57,8 +55,6 @@
|
||||
|
||||
.PHONY : all libgl clean realclean
|
||||
|
||||
CPU ?= pentium
|
||||
|
||||
ifeq ($(ICD),1)
|
||||
# when -std=c99 mingw will not define WIN32
|
||||
CFLAGS = -Wall -W -Werror
|
||||
@@ -66,7 +62,7 @@ else
|
||||
# I love c89
|
||||
CFLAGS = -Wall -W -pedantic
|
||||
endif
|
||||
CFLAGS += -O2 -ffast-math -mtune=$(CPU)
|
||||
CFLAGS += -O2 -ffast-math
|
||||
|
||||
export CFLAGS
|
||||
|
||||
|
179
Mesa.dsw
179
Mesa.dsw
@@ -1,179 +0,0 @@
|
||||
Microsoft Developer Studio Workspace File, Format Version 6.00
|
||||
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
|
||||
|
||||
###############################################################################
|
||||
|
||||
Project: "array_cache"=".\SRC\MESA\array_cache\array_cache.dsp" - Package Owner=<4>
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<4>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
Project: "gdi"=".\src\mesa\drivers\windows\gdi\gdi.dsp" - Package Owner=<4>
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<4>
|
||||
{{{
|
||||
Begin Project Dependency
|
||||
Project_Dep_Name array_cache
|
||||
End Project Dependency
|
||||
Begin Project Dependency
|
||||
Project_Dep_Name main
|
||||
End Project Dependency
|
||||
Begin Project Dependency
|
||||
Project_Dep_Name math
|
||||
End Project Dependency
|
||||
Begin Project Dependency
|
||||
Project_Dep_Name swrast_setup
|
||||
End Project Dependency
|
||||
Begin Project Dependency
|
||||
Project_Dep_Name swrast
|
||||
End Project Dependency
|
||||
Begin Project Dependency
|
||||
Project_Dep_Name tnl
|
||||
End Project Dependency
|
||||
Begin Project Dependency
|
||||
Project_Dep_Name glapi
|
||||
End Project Dependency
|
||||
Begin Project Dependency
|
||||
Project_Dep_Name shader
|
||||
End Project Dependency
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
Project: "glapi"=".\SRC\MESA\glapi\glapi.dsp" - Package Owner=<4>
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<4>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
Project: "glu"=".\src\glu\sgi\glu.dsp" - Package Owner=<4>
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<4>
|
||||
{{{
|
||||
Begin Project Dependency
|
||||
Project_Dep_Name gdi
|
||||
End Project Dependency
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
Project: "main"=".\SRC\MESA\main\main.dsp" - Package Owner=<4>
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<4>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
Project: "math"=".\SRC\MESA\math\math.dsp" - Package Owner=<4>
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<4>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
Project: "osmesa"=".\SRC\MESA\DRIVERS\osmesa\osmesa.dsp" - Package Owner=<4>
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<4>
|
||||
{{{
|
||||
Begin Project Dependency
|
||||
Project_Dep_Name gdi
|
||||
End Project Dependency
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
Project: "shader"=".\SRC\MESA\shader\shader.dsp" - Package Owner=<4>
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<4>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
Project: "swrast"=".\SRC\MESA\swrast\swrast.dsp" - Package Owner=<4>
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<4>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
Project: "swrast_setup"=".\SRC\MESA\swrast_setup\swrast_setup.dsp" - Package Owner=<4>
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<4>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
Project: "tnl"=".\SRC\MESA\tnl\tnl.dsp" - Package Owner=<4>
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<4>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
Global:
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<3>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
@@ -12,7 +12,7 @@ TOP=.
|
||||
INCLUDE_DIR="/usr/local/include"
|
||||
LIB_DIR="/usr/local/lib"
|
||||
|
||||
|
||||
if [ "x$#" = "x0" ] ; then
|
||||
echo
|
||||
echo "***** Mesa installation - You may need root privileges to do this *****"
|
||||
echo
|
||||
@@ -20,7 +20,7 @@ echo "Default directory for header files is:" ${INCLUDE_DIR}
|
||||
echo "Enter new directory or press <Enter> to accept this default."
|
||||
|
||||
read INPUT
|
||||
if [ x${INPUT} != "x" ] ; then
|
||||
if [ "x${INPUT}" != "x" ] ; then
|
||||
INCLUDE_DIR=${INPUT}
|
||||
fi
|
||||
|
||||
@@ -29,11 +29,10 @@ echo "Default directory for library files is:" ${LIB_DIR}
|
||||
echo "Enter new directory or press <Enter> to accept this default."
|
||||
|
||||
read INPUT
|
||||
if [ x${INPUT} != "x" ] ; then
|
||||
if [ "x${INPUT}" != "x" ] ; then
|
||||
LIB_DIR=${INPUT}
|
||||
fi
|
||||
|
||||
|
||||
echo
|
||||
echo "About to install Mesa header files (GL/*.h) in: " ${INCLUDE_DIR}/GL
|
||||
echo "and Mesa library files (libGL.*, etc) in: " ${LIB_DIR}
|
||||
@@ -41,17 +40,30 @@ echo "Press <Enter> to continue, or <ctrl>-C to abort."
|
||||
|
||||
read INPUT
|
||||
|
||||
else
|
||||
INCLUDE_DIR=$1/include
|
||||
LIB_DIR=$1/lib
|
||||
fi
|
||||
|
||||
# flags:
|
||||
# -f = force
|
||||
# -d = preserve symlinks
|
||||
# -d = preserve symlinks (does not work on BSD)
|
||||
|
||||
if [ `uname` = "FreeBSD" ] ; then
|
||||
CP_FLAGS="-f"
|
||||
else
|
||||
CP_FLAGS="-fd"
|
||||
fi
|
||||
|
||||
|
||||
set -v
|
||||
|
||||
mkdir ${INCLUDE_DIR}
|
||||
mkdir ${INCLUDE_DIR}/GL
|
||||
mkdir ${INCLUDE_DIR}/GLES
|
||||
mkdir ${LIB_DIR}
|
||||
cp -f ${TOP}/include/GL/*.h ${INCLUDE_DIR}/GL
|
||||
cp -fd ${TOP}/lib*/lib* ${LIB_DIR}
|
||||
# NOT YET: cp -f ${TOP}/include/GLES/*.h ${INCLUDE_DIR}/GLES
|
||||
cp ${CP_FLAGS} ${TOP}/lib*/lib* ${LIB_DIR}
|
||||
|
||||
echo "Done."
|
||||
|
279
bin/mklib
279
bin/mklib
@@ -1,38 +1,28 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Make a shared library.
|
||||
# Basically do a switch/case depending on the OS and make a shared (or static)
|
||||
# library conforming to that OS.
|
||||
# This script should be useful for projects other than Mesa.
|
||||
# Improvements/fixes are welcome.
|
||||
|
||||
|
||||
# Usage:
|
||||
# mklib [options] objects ...
|
||||
# Options:
|
||||
# -o LIBRARY specifies the name of resulting library
|
||||
# ("-o GL" for example, might result in "libGL.so" being made)
|
||||
# -major N specifies major version number (default is 1)
|
||||
# -minor N specifies minor version number (default is 0)
|
||||
# -patch N specifies patch version number (default is 0)
|
||||
# -lLIBRARY specifies a dependency on LIBRARY
|
||||
# -LDIR search in DIR for library dependencies
|
||||
# -cplusplus link with C++ runtime
|
||||
# -static make a static library (default is dynamic/shared)
|
||||
# -install DIR move resulting library file(s) to DIR
|
||||
# -arch ARCH override using `uname` to determine architecture
|
||||
# -archopt OPT specify an extra achitecture-specific option OPT
|
||||
# -noprefix don't prefix library name with "lib" or any suffix
|
||||
# -exports FILE only export the symbols listed in FILE
|
||||
# Copyright (C) 1999-2005 Brian Paul All Rights Reserved.
|
||||
#
|
||||
# The library name should just be "GL" or "GLU", etc. The 'lib' prefix
|
||||
# will be added here if needed, as well as the ".so" or ".a" suffix,
|
||||
# etc (unless the -noprefix option is used).
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a
|
||||
# copy of this software and associated documentation files (the "Software"),
|
||||
# to deal in the Software without restriction, including without limitation
|
||||
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
# and/or sell copies of the Software, and to permit persons to whom the
|
||||
# Software is furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# objects should be: foo.o bar.o etc.o
|
||||
#
|
||||
# Environment variables recognized:
|
||||
# CC C compiler command
|
||||
# CXX C++ compiler command
|
||||
# The above copyright notice and this permission notice shall be included
|
||||
# in all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS 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
|
||||
# BRIAN PAUL 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 SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
|
||||
#
|
||||
@@ -43,6 +33,7 @@ MAJOR=1
|
||||
MINOR=0
|
||||
PATCH=""
|
||||
DEPS=""
|
||||
LINK=""
|
||||
CPLUSPLUS=0
|
||||
STATIC=0
|
||||
INSTALLDIR="."
|
||||
@@ -58,26 +49,93 @@ EXPORTS=""
|
||||
while true
|
||||
do
|
||||
case $1 in
|
||||
'-o') shift 1; LIBNAME=$1;;
|
||||
'-major') shift 1; MAJOR=$1;;
|
||||
'-minor') shift 1; MINOR=$1;;
|
||||
'-patch') shift 1; PATCH=$1;;
|
||||
-l*) DEPS="$DEPS $1";;
|
||||
-L*) DEPS="$DEPS $1";;
|
||||
'-cplusplus') CPLUSPLUS=1;;
|
||||
'-static') STATIC=1;;
|
||||
'-install') shift 1; INSTALLDIR=$1;;
|
||||
'-arch') shift 1; ARCH=$1;;
|
||||
'-archopt') shift 1; ARCHOPT=$1;;
|
||||
'-noprefix') NOPREFIX=1;;
|
||||
'-exports') shift 1; EXPORTS=$1;;
|
||||
-*) echo "mklib: Unknown option: " $1 ; exit 1;;
|
||||
*) break
|
||||
'-h' | '--help')
|
||||
echo 'Usage: mklib [options] objects'
|
||||
echo 'Create a shared library from object files.'
|
||||
echo ' -o LIBRARY specifies the name of the resulting library, without'
|
||||
echo ' the leading "lib" or any suffix.'
|
||||
echo ' (eg: "-o GL" might result in "libGL.so" being made)'
|
||||
echo ' -major N specifies major version number (default is 1)'
|
||||
echo ' -minor N specifies minor version number (default is 0)'
|
||||
echo ' -patch N specifies patch version number (default is 0)'
|
||||
echo ' -lLIBRARY specifies a dependency on LIBRARY'
|
||||
echo ' -LDIR search in DIR for library dependencies'
|
||||
echo ' -linker L explicity specify the linker program to use (eg: gcc, g++)'
|
||||
echo ' Not observed on all systems at this time.'
|
||||
echo ' -cplusplus link with C++ runtime'
|
||||
echo ' -static make a static library (default is dynamic/shared)'
|
||||
echo ' -install DIR put resulting library file(s) in DIR'
|
||||
echo ' -arch ARCH override using `uname` to determine host system'
|
||||
echo ' -archopt OPT specify an extra achitecture-specific option OPT'
|
||||
echo " -noprefix don't prefix library name with 'lib' nor add any suffix"
|
||||
echo ' -exports FILE only export the symbols listed in FILE'
|
||||
echo ' -h, --help display this information and exit'
|
||||
exit 1
|
||||
;;
|
||||
'-o')
|
||||
shift 1;
|
||||
LIBNAME=$1
|
||||
;;
|
||||
'-major')
|
||||
shift 1;
|
||||
MAJOR=$1
|
||||
;;
|
||||
'-minor')
|
||||
shift 1;
|
||||
MINOR=$1
|
||||
;;
|
||||
'-patch')
|
||||
shift 1;
|
||||
PATCH=$1
|
||||
;;
|
||||
'-linker')
|
||||
shift 1;
|
||||
LINK=$1
|
||||
;;
|
||||
-l*)
|
||||
DEPS="$DEPS $1"
|
||||
;;
|
||||
-L*)
|
||||
DEPS="$DEPS $1"
|
||||
;;
|
||||
'-cplusplus')
|
||||
CPLUSPLUS=1
|
||||
;;
|
||||
'-static')
|
||||
STATIC=1
|
||||
;;
|
||||
'-install')
|
||||
shift 1;
|
||||
INSTALLDIR=$1
|
||||
;;
|
||||
'-arch')
|
||||
shift 1;
|
||||
ARCH=$1
|
||||
;;
|
||||
'-archopt')
|
||||
shift 1;
|
||||
ARCHOPT=$1
|
||||
;;
|
||||
'-noprefix')
|
||||
NOPREFIX=1
|
||||
;;
|
||||
'-exports')
|
||||
shift 1;
|
||||
EXPORTS=$1
|
||||
;;
|
||||
-*)
|
||||
echo "mklib: Unknown option: " $1 ;
|
||||
exit 1
|
||||
;;
|
||||
*)
|
||||
# This should be the first object file, stop parsing
|
||||
break
|
||||
esac
|
||||
shift 1
|
||||
done
|
||||
OBJECTS=$@
|
||||
|
||||
|
||||
if [ ${ARCH} = "auto" ] ; then
|
||||
ARCH=`uname`
|
||||
fi
|
||||
@@ -120,12 +178,13 @@ case $ARCH in
|
||||
'Linux' | 'OpenBSD')
|
||||
# we assume gcc
|
||||
|
||||
# Set default compilers if env vars not set
|
||||
if [ "x$CXX" = "x" ] ; then
|
||||
CXX=g++
|
||||
fi
|
||||
if [ "x$CC" = "x" ] ; then
|
||||
CC=gcc
|
||||
if [ "x$LINK" = "x" ] ; then
|
||||
# -linker was not specified so set default link command now
|
||||
if [ $CPLUSPLUS = 1 ] ; then
|
||||
LINK=g++
|
||||
else
|
||||
LINK=gcc
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ $NOPREFIX = 1 ] ; then
|
||||
@@ -133,13 +192,16 @@ case $ARCH in
|
||||
echo "mklib: Making" $ARCH "shared library: " ${LIBNAME}
|
||||
#OPTS="-shared -Wl,-soname,${LIBNAME}" # soname???
|
||||
OPTS="-shared"
|
||||
if [ $CPLUSPLUS = 1 ] ; then
|
||||
LINK=$CXX
|
||||
else
|
||||
LINK=$CC
|
||||
fi
|
||||
rm -f ${LIBNAME}
|
||||
|
||||
# Check if objects are 32-bit and we're running in 64-bit
|
||||
# environment. If so, pass -m32 flag to linker.
|
||||
set ${OBJECTS}
|
||||
ABI32=`file $1 | grep 32-bit`
|
||||
if [ "${ABI32}" -a `uname -m` = "x86_64" ] ; then
|
||||
OPTS="-m32 ${OPTS}"
|
||||
fi
|
||||
|
||||
rm -f ${LIBNAME}
|
||||
# make lib
|
||||
${LINK} ${OPTS} -o ${LIBNAME} ${OBJECTS} ${DEPS}
|
||||
# finish up
|
||||
@@ -173,6 +235,15 @@ case $ARCH in
|
||||
OPTS="${OPTS} -Xlinker --version-script=exptmp"
|
||||
# exptmp is removed below
|
||||
fi
|
||||
|
||||
# Check if objects are 32-bit and we're running in 64-bit
|
||||
# environment. If so, pass -m32 flag to linker.
|
||||
set ${OBJECTS}
|
||||
ABI32=`file $1 | grep 32-bit`
|
||||
if [ "${ABI32}" -a `uname -m` = "x86_64" ] ; then
|
||||
OPTS="-m32 ${OPTS}"
|
||||
fi
|
||||
|
||||
if [ x${PATCH} = "x" ] ; then
|
||||
VERSION="${MAJOR}.${MINOR}"
|
||||
else
|
||||
@@ -181,12 +252,6 @@ case $ARCH in
|
||||
|
||||
echo "mklib: Making" $ARCH "shared library: " ${LIBNAME}.so.${VERSION}
|
||||
|
||||
if [ $CPLUSPLUS = 1 ] ; then
|
||||
LINK=$CXX
|
||||
else
|
||||
LINK=$CC
|
||||
fi
|
||||
|
||||
# rm any old libs
|
||||
rm -f ${LIBNAME}.so.${VERSION}
|
||||
rm -f ${LIBNAME}.so.${MAJOR}
|
||||
@@ -215,41 +280,25 @@ case $ARCH in
|
||||
echo "mklib: Making SunOS shared library: " ${LIBNAME}
|
||||
# XXX OPTS for gcc should be -shared, but that doesn't work.
|
||||
# Using -G does work though.
|
||||
if [ $CPLUSPLUS = 1 ] ; then
|
||||
# determine linker and options for C++ code
|
||||
if [ "x${CXX}" = "xg++" ] ; then
|
||||
# use g++
|
||||
LINK="g++"
|
||||
OPTS="-G"
|
||||
elif [ "x${CXX}" = "xCC" ] ; then
|
||||
# use Sun CC
|
||||
LINK="CC"
|
||||
OPTS="-G"
|
||||
elif [ "x${CXX}" = "xc++" ] ; then
|
||||
# use Sun c++
|
||||
LINK="c++"
|
||||
OPTS="-G"
|
||||
elif [ `which c++` ] ; then
|
||||
# use Sun c++
|
||||
LINK="c++"
|
||||
OPTS="-G"
|
||||
elif [ `type g++` ] ; then
|
||||
# use g++
|
||||
LINK="g++"
|
||||
OPTS="-G"
|
||||
OPTS="-G"
|
||||
if [ "x$LINK" = "x" ] ; then
|
||||
# -linker was not specified, choose default linker now
|
||||
if [ $CPLUSPLUS = 1 ] ; then
|
||||
# determine linker and options for C++ code
|
||||
if [ `which c++` ] ; then
|
||||
# use Sun c++
|
||||
LINK="c++"
|
||||
elif [ `type g++` ] ; then
|
||||
# use g++
|
||||
LINK="g++"
|
||||
else
|
||||
echo "mklib: warning: can't find C++ comiler, trying CC."
|
||||
LINK="CC"
|
||||
fi
|
||||
else
|
||||
echo "mklib: warning: can't find C++ comiler, trying CC."
|
||||
LINK="CC"
|
||||
OPTS="-G"
|
||||
# use native Sun linker for C code
|
||||
LINK="ld"
|
||||
fi
|
||||
elif [ "x${CC}" = "xgcc" ] ; then
|
||||
# use gcc for linking
|
||||
LINK="gcc"
|
||||
OPTS="-G"
|
||||
else
|
||||
# use native Sun linker
|
||||
LINK="ld"
|
||||
OPTS="-G"
|
||||
fi
|
||||
echo "mklib: linker is" ${LINK} ${OPTS}
|
||||
rm -f ${LIBNAME}.${MAJOR} ${LIBNAME}
|
||||
@@ -260,11 +309,23 @@ case $ARCH in
|
||||
;;
|
||||
|
||||
'FreeBSD')
|
||||
# we assume gcc
|
||||
|
||||
if [ "x$LINK" = "x" ] ; then
|
||||
# -linker was not specified so set default link command now
|
||||
if [ $CPLUSPLUS = 1 ] ; then
|
||||
LINK=g++
|
||||
else
|
||||
LINK=gcc
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ $NOPREFIX = 1 ] ; then
|
||||
# No "lib" or ".so" part
|
||||
echo "mklib: Making FreeBSD shared library: " ${LIBNAME}
|
||||
OPTS="-shared"
|
||||
rm -f ${LIBNAME}
|
||||
ld -Bshareable -o ${LIBNAME} ${OBJECTS}
|
||||
${LINK} ${OPTS} -o ${LIBNAME} ${OBJECTS} ${DEPS}
|
||||
FINAL_LIBS=${LIBNAME}
|
||||
elif [ $STATIC = 1 ] ; then
|
||||
STLIB="lib${LIBNAME}.a"
|
||||
@@ -274,12 +335,13 @@ case $ARCH in
|
||||
ranlib ${STLIB}
|
||||
FINAL_LIBS=${STLIB}
|
||||
else
|
||||
SHLIB="lib${LIBNAME}.so.${MAJOR}.${MINOR}"
|
||||
SHLIB="lib${LIBNAME}.so.${MAJOR}"
|
||||
OPTS="-shared -Wl,-soname,${SHLIB}"
|
||||
echo "mklib: Making FreeBSD shared library: " ${SHLIB}
|
||||
rm -f ${SHLIB}
|
||||
ld -Bshareable -o ${SHLIB} ${OBJECTS}
|
||||
# XXX make lib${LIBNAME}.so.${MAJOR} symlink?
|
||||
FINAL_LIBS=${SHLIB}
|
||||
${LINK} ${OPTS} -o ${SHLIB} ${OBJECTS} ${DEPS}
|
||||
ln -sf ${SHLIB} "lib${LIBNAME}.so"
|
||||
FINAL_LIBS="${SHLIB} lib${LIBNAME}.so"
|
||||
fi
|
||||
;;
|
||||
|
||||
@@ -308,6 +370,8 @@ case $ARCH in
|
||||
FINAL_LIBS=${LIBNAME}
|
||||
else
|
||||
LIBNAME="lib${LIBNAME}.so" # prefix with "lib", suffix with ".so"
|
||||
# XXX we should run 'file' on the first object file to determine
|
||||
# if it's o32, n32 or 64 format, as we do for Linux above.
|
||||
if [ $ARCHOPT = "64" ] ; then
|
||||
# 64-bit ABI
|
||||
OPTS="-64 -shared -all"
|
||||
@@ -416,10 +480,12 @@ case $ARCH in
|
||||
VERSION="${MAJOR}.${MINOR}"
|
||||
LIBNAME="lib${LIBNAME}.so"
|
||||
echo "mklib: Making OSF/1 shared library: " ${LIBNAME}
|
||||
if [ $CPLUSPLUS = 1 ] ; then
|
||||
LINK=$CXX
|
||||
else
|
||||
LINK=$CC
|
||||
if [ "x$LINK" = "x" ] ; then
|
||||
if [ $CPLUSPLUS = 1 ] ; then
|
||||
LINK=cxx
|
||||
else
|
||||
LINK=cc
|
||||
fi
|
||||
fi
|
||||
rm -f ${LIBNAME}.${VERSION}
|
||||
${LINK} -o ${LIBNAME}.${VERSION} -shared -set_version ${VERSION} -soname ${LIBNAME}.${VERSION} -expect_unresolved \* -all ${OBJECTS} ${DEPS}
|
||||
@@ -437,9 +503,9 @@ case $ARCH in
|
||||
${LINK} ${OPTS} ${LIBNAME} ${OBJECTS}
|
||||
FINAL_LIBS=${LIBNAME}
|
||||
else
|
||||
LIBNAME="${LIBNAME}.dylib"
|
||||
LIBNAME="lib${LIBNAME}.dylib"
|
||||
echo "mklib: Making Darwin shared library: " ${LIBNAME}
|
||||
FLAGS="-dynamiclib -multiply_defined suppress"
|
||||
FLAGS="-dynamiclib -multiply_defined suppress -current_version ${MAJOR}.${MINOR}.0 -compatibility_version ${MAJOR}.${MINOR}.0"
|
||||
if [ $CPLUSPLUS = 1 ] ; then
|
||||
LINK="g++"
|
||||
else
|
||||
@@ -468,6 +534,7 @@ case $ARCH in
|
||||
echo "mklib: Making BeOS shared library: " ${LIBNAME}
|
||||
gcc -nostart -Xlinker "-soname=${LIBNAME}" -L/Be/develop/lib/x86 -lbe ${DEPS} ${OBJECTS} -o "${LIBNAME}"
|
||||
mimeset -f "${LIBNAME}"
|
||||
# XXX remove the Mesa3D stuff here since mklib isn't mesa-specific.
|
||||
setversion "${LIBNAME}" -app ${MAJOR} ${MINOR} ${PATCH} -short "Powered by Mesa3D!" -long "Powered by Mesa3D!"
|
||||
fi
|
||||
FINAL_LIBS=${LIBNAME}
|
||||
@@ -489,6 +556,8 @@ case $ARCH in
|
||||
|
||||
'icc')
|
||||
# Intel C compiler
|
||||
# This should get merged into the Linux code, above, since this isn't
|
||||
# really a different architecture.
|
||||
LIBNAME="lib${LIBNAME}" # prefix with "lib"
|
||||
|
||||
if [ $STATIC = 1 ] ; then
|
||||
@@ -606,7 +675,7 @@ case $ARCH in
|
||||
ar rv ${LIBNAME} ${OBJECTS}
|
||||
FINAL_LIBS="${LIBNAME}"
|
||||
else
|
||||
LIBNAME="lib${LIBNAME}.so" # prefix with "lib"
|
||||
LIBNAME="lib${LIBNAME}.so" # prefix with "lib", suffix with ".so"
|
||||
echo "mklib: Making shared library for example arch: " ${LIBNAME}
|
||||
ld -o ${LIBNAME} ${OBJECTS} ${DEPS}
|
||||
FINAL_LIBS="${LIBNAME}"
|
||||
|
@@ -18,8 +18,12 @@ GLW_LIB_NAME = libGLw.dylib
|
||||
OSMESA_LIB_NAME = libOSMesa.dylib
|
||||
|
||||
GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread
|
||||
OSMESA_LIB_DEPS = $(TOP)/lib/GL.dylib
|
||||
GLU_LIB_DEPS = $(TOP)/lib/GL.dylib
|
||||
GLUT_LIB_DEPS =
|
||||
OSMESA_LIB_DEPS = -L$(LIB_DIR) -lGL
|
||||
GLU_LIB_DEPS = -L$(LIB_DIR) -lGL
|
||||
GLUT_LIB_DEPS = -L$(LIB_DIR) -lGL -lGLU -L/usr/X11R6/lib -lX11 -lXmu -lXi -lXext
|
||||
GLW_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXt $(TOP)/lib/GL.dylib
|
||||
APP_LIB_DEPS = -L$(TOP)/lib -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
|
||||
|
||||
# omit glw lib for now:
|
||||
SRC_DIRS = mesa glu glut/glx
|
||||
|
||||
|
@@ -7,10 +7,10 @@ CONFIG_NAME = default
|
||||
|
||||
# Version info
|
||||
MESA_MAJOR=6
|
||||
MESA_MINOR=3
|
||||
MESA_MINOR=4
|
||||
MESA_TINY=0
|
||||
|
||||
# external projects
|
||||
# external projects. This should be useless now that we use libdrm.
|
||||
DRM_SOURCE_PATH=$(TOP)/../drm
|
||||
|
||||
# Compiler and flags
|
||||
@@ -26,6 +26,10 @@ MKDEP = makedepend
|
||||
MKDEP_OPTIONS = -fdepend
|
||||
MAKE = make
|
||||
|
||||
# Python and flags (generally only needed by the developers)
|
||||
PYTHON2 = python
|
||||
PYTHON_FLAGS = -t -O -O
|
||||
|
||||
# Library names (base name)
|
||||
GL_LIB = GL
|
||||
GLU_LIB = GLU
|
||||
@@ -35,11 +39,11 @@ OSMESA_LIB = OSMesa
|
||||
|
||||
|
||||
# Library names (actual file names)
|
||||
GL_LIB_NAME = libGL.so
|
||||
GLU_LIB_NAME = libGLU.so
|
||||
GLUT_LIB_NAME = libglut.so
|
||||
GLW_LIB_NAME = libGLw.so
|
||||
OSMESA_LIB_NAME = libOSMesa.so
|
||||
GL_LIB_NAME = lib$(GL_LIB).so
|
||||
GLU_LIB_NAME = lib$(GLU_LIB).so
|
||||
GLUT_LIB_NAME = lib$(GLUT_LIB).so
|
||||
GLW_LIB_NAME = lib$(GLW_LIB).so
|
||||
OSMESA_LIB_NAME = lib$(OSMESA_LIB).so
|
||||
|
||||
|
||||
# Optional assembly language optimization files for libGL
|
||||
@@ -56,13 +60,15 @@ INSTALL_PREFIX = /usr/local
|
||||
SRC_DIRS = mesa glu glut/glx glw
|
||||
GLU_DIRS = sgi
|
||||
DRIVER_DIRS = x11 osmesa
|
||||
# Which subdirs under $(TOP)/progs/ to enter:
|
||||
PROGRAM_DIRS = demos redbook samples xdemos
|
||||
|
||||
|
||||
# Library/program dependencies
|
||||
GL_LIB_DEPS = -lX11 -lXext -lm -lpthread
|
||||
EXTRA_LIB_PATH ?=
|
||||
GL_LIB_DEPS = $(EXTRA_LIB_PATH) -lX11 -lXext -lm -lpthread
|
||||
OSMESA_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB)
|
||||
GLU_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -lm
|
||||
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -lX11 -lXmu -lXt -lXi -lm
|
||||
GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -lXt -lX11
|
||||
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) $(EXTRA_LIB_PATH) -lX11 -lXmu -lXt -lXi -lm
|
||||
GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) $(EXTRA_LIB_PATH) -lXt -lX11
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm
|
||||
|
@@ -13,5 +13,4 @@ CFLAGS = -O2 -fPIC -pedantic -I/usr/X11R6/include -DUSE_XSHM -DHZ=100
|
||||
CXXFLAGS = -O2 -fPIC -pedantic
|
||||
GLUT_CFLAGS = -fexceptions
|
||||
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -L/usr/X11R6/lib -lXext -lXmu -lXi -lX11 -lm
|
||||
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -L/usr/X11R6/lib -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lXext -lXmu -lXi -lX11 -lm
|
||||
|
@@ -11,23 +11,27 @@ CXX = g++
|
||||
WARN_FLAGS = -Wall
|
||||
OPT_FLAGS = -O
|
||||
|
||||
X11_INCLUDES = -I/usr/X11R6/include -I/usr/X11R6/include/X11/extensions
|
||||
DEFINES = -DDRI_NEW_INTERFACE_ONLY
|
||||
CFLAGS = $(DEFINES) -Wmissing-prototypes -g -std=c99 -Wundef -fPIC -ffast-math -I/usr/local/include $(X11_INCLUDES)
|
||||
EXPAT_INCLUDES = -I/usr/local/include
|
||||
X11_INCLUDES = -I/usr/X11R6/include
|
||||
DEFINES = -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER \
|
||||
-DGLX_DIRECT_RENDERING -DHAVE_ALIAS
|
||||
CFLAGS = $(DEFINES) -Wmissing-prototypes -g -std=c99 -Wundef -fPIC \
|
||||
-ffast-math $(X11_INCLUDES)
|
||||
CXXFLAGS = $(DEFINES) -Wall -g -ansi -pedantic -fPIC
|
||||
|
||||
ASM_SOURCES =
|
||||
|
||||
# Library/program dependencies
|
||||
DRI_LIB_DEPS = -lm -lpthread -lexpat
|
||||
GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -pthread
|
||||
LIBDRM_LIB = `pkg-config --libs libdrm` -ldrm
|
||||
DRI_LIB_DEPS = -L/usr/local/lib -lm -lpthread -lexpat $(LIBDRM_LIB)
|
||||
GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread $(LIBDRM_LIB)
|
||||
|
||||
GLUT_LIB_DEPS = -L$(LIB_DIR) -L/usr/X11R6/lib -lGLU -lGL -lX11 -lXmu -lXt -lXi -lm
|
||||
GLW_LIB_DEPS = -L$(LIB_DIR) -L/usr/X11R6/lib -lGL -lXt -lXm -lX11
|
||||
|
||||
|
||||
# Directories
|
||||
SRC_DIRS = mesa glu glut/glx glw glx/x11
|
||||
SRC_DIRS = glx/x11 mesa glu glut/glx glw
|
||||
DRIVER_DIRS = dri
|
||||
PROGRAM_DIRS =
|
||||
WINDOW_SYSTEM=dri
|
||||
@@ -36,6 +40,6 @@ DRM_SOURCE_PATH=$(TOP)/../drm
|
||||
|
||||
# ffb and gamma are missing because they have not been converted to use the new
|
||||
# interface.
|
||||
DRI_DIRS = dri_client i810 i830 i915 mach64 mga r128 r200 radeon tdfx \
|
||||
DRI_DIRS = i810 i830 i915 mach64 mga r128 r200 r300 radeon tdfx \
|
||||
unichrome savage sis
|
||||
|
||||
|
9
configs/freebsd-dri-amd64
Normal file
9
configs/freebsd-dri-amd64
Normal file
@@ -0,0 +1,9 @@
|
||||
# -*-makefile-*-
|
||||
# Configuration for freebsd-dri-amd64: FreeBSD DRI hardware drivers
|
||||
|
||||
include $(TOP)/configs/freebsd-dri
|
||||
|
||||
CONFIG_NAME = freebsd-dri-x86-64
|
||||
|
||||
ASM_FLAGS = -DUSE_X86_64_ASM
|
||||
ASM_SOURCES = $(X86-64_SOURCES) $(X86-64_API)
|
@@ -8,13 +8,26 @@ CONFIG_NAME = linux
|
||||
CC = gcc
|
||||
CXX = g++
|
||||
|
||||
CFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DPTHREADS -I/usr/X11R6/include
|
||||
CXXFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE
|
||||
WARN_FLAGS = -Wall
|
||||
OPT_FLAGS = -O3 -g
|
||||
PIC_FLAGS = -fPIC
|
||||
|
||||
# Add '-DGLX_USE_TLS' to ARCH_FLAGS to enable TLS support. Add -m32
|
||||
# to build properly on 64-bit platforms.
|
||||
|
||||
ARCH_FLAGS ?=
|
||||
|
||||
DEFINES = -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE \
|
||||
-D_BSD_SOURCE -DPTHREADS -DUSE_XSHM
|
||||
|
||||
X11_INCLUDES = -I/usr/X11R6/include
|
||||
|
||||
CFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES) \
|
||||
$(ASM_FLAGS) $(X11_INCLUDES) -std=c99 -ffast-math
|
||||
|
||||
CXXFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES) \
|
||||
$(X11_INCLUDES)
|
||||
|
||||
GLUT_CFLAGS = -fexceptions
|
||||
|
||||
|
||||
# Library/program dependencies
|
||||
# Need to have -L/usr/X11R6/lib in these:
|
||||
GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread
|
||||
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
|
||||
GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -L/usr/X11R6/lib -lXt -lX11
|
||||
EXTRA_LIB_PATH = -L/usr/X11R6/lib
|
||||
|
@@ -1,20 +1,8 @@
|
||||
# Configuration for debugging on Linux
|
||||
|
||||
include $(TOP)/configs/default
|
||||
include $(TOP)/configs/linux
|
||||
|
||||
CONFIG_NAME = linux-debug
|
||||
|
||||
# Compiler and flags
|
||||
CC = gcc
|
||||
CXX = g++
|
||||
|
||||
CFLAGS = -g -ansi -pedantic -Wall -Wmissing-prototypes -Wundef -fPIC -ffast-math -D_POSIX_SOURCE -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DUSE_XSHM -DPTHREADS -DDEBUG -DMESA_DEBUG
|
||||
|
||||
CXXFLAGS = -g -ansi -pedantic -Wall -Wundef -fPIC -ffast-math -D_POSIX_SOURCE -D_SVID_SOURCE -D_BSD_SOURCE -DDEBUG -DMESA_DEBUG
|
||||
|
||||
GLUT_CFLAGS = -fexceptions
|
||||
|
||||
# Need to have -L/usr/X11R6/lib in these:
|
||||
GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread
|
||||
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
|
||||
GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -lXt -L/usr/X11R6/lib -lX11
|
||||
OPT_FLAGS = -g
|
||||
DEFINES += -DDEBUG -DMESA_DEBUG -DRUN_DEBUG_BENCHMARK
|
||||
|
@@ -14,40 +14,55 @@ MKDEP = /usr/X11R6/bin/makedepend
|
||||
#MKDEP_OPTIONS = -MF depend
|
||||
|
||||
WARN_FLAGS = -Wall
|
||||
OPT_FLAGS = -O -g
|
||||
PIC_FLAGS = -fPIC
|
||||
OPT_FLAGS = -O -g
|
||||
PIC_FLAGS = -fPIC
|
||||
|
||||
# Add '-DGLX_USE_TLS' to ARCH_FLAGS to enable TLS support.
|
||||
ARCH_FLAGS ?=
|
||||
|
||||
DEFINES = -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE \
|
||||
-D_BSD_SOURCE -D_GNU_SOURCE \
|
||||
-DDRI_NEW_INTERFACE_ONLY -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1
|
||||
-DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER \
|
||||
-DGLX_DIRECT_RENDERING -DHAVE_ALIAS
|
||||
|
||||
X11_INCLUDES = -I/usr/X11R6/include -I/usr/X11R6/include/X11/extensions
|
||||
X11_INCLUDES = -I/usr/X11R6/include
|
||||
|
||||
CFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(ASM_FLAGS) -std=c99 $(PIC_FLAGS) -ffast-math \
|
||||
$(DEFINES)
|
||||
CFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES) \
|
||||
$(ASM_FLAGS) -std=c99 -ffast-math
|
||||
|
||||
CXXFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) \
|
||||
$(DEFINES)
|
||||
CXXFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES)
|
||||
|
||||
|
||||
ASM_SOURCES =
|
||||
|
||||
# Library/program dependencies
|
||||
DRI_LIB_DEPS = -lm -lpthread -lexpat -ldl
|
||||
GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lXxf86vm -lm -lpthread -ldl
|
||||
EXTRA_LIB_PATH=-L/usr/X11R6/lib
|
||||
|
||||
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
|
||||
GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -L/usr/X11R6/lib -lXt -lX11
|
||||
LIBDRM_LIB = `pkg-config --libs libdrm` -ldrm
|
||||
DRI_LIB_DEPS = $(EXTRA_LIB_PATH) -lm -lpthread -lexpat -ldl $(LIBDRM_LIB)
|
||||
GL_LIB_DEPS = $(EXTRA_LIB_PATH) -lX11 -lXext -lXxf86vm -lm -lpthread -ldl \
|
||||
$(LIBDRM_LIB)
|
||||
|
||||
|
||||
# This is now 0 by default since it seems to confuse the hell out of people
|
||||
# and generate a lot of extra noise on bugzilla. If you need to build with
|
||||
# EGL, do 'make linux-dri USING_EGL=1'
|
||||
|
||||
USING_EGL=0
|
||||
|
||||
# Directories
|
||||
SRC_DIRS = mesa glu glut/glx glw glx/x11
|
||||
ifeq ($(USING_EGL), 1)
|
||||
SRC_DIRS = egl glx/x11 mesa glu glut/glx glw
|
||||
PROGRAM_DIRS = egl
|
||||
else
|
||||
SRC_DIRS = glx/x11 mesa glu glut/glx glw
|
||||
PROGRAM_DIRS =
|
||||
endif
|
||||
|
||||
DRIVER_DIRS = dri
|
||||
PROGRAM_DIRS =
|
||||
WINDOW_SYSTEM=dri
|
||||
|
||||
# ffb and gamma are missing because they have not been converted to use the new
|
||||
# gamma are missing because they have not been converted to use the new
|
||||
# interface.
|
||||
DRI_DIRS = dri_client i810 i830 i915 mach64 mga r128 r200 radeon s3v \
|
||||
savage sis tdfx trident unichrome
|
||||
DRI_DIRS = i810 i830 i915 mach64 mga r128 r200 r300 radeon s3v \
|
||||
savage sis tdfx trident unichrome ffb
|
||||
|
@@ -13,5 +13,5 @@ ASM_SOURCES = $(PPC_SOURCES)
|
||||
|
||||
# Build only the drivers for cards that exist on PowerPC. At some point MGA
|
||||
# will be added, but not yet.
|
||||
DRI_DIRS = dri_client mach64 r128 r200 radeon tdfx
|
||||
DRI_DIRS = mach64 r128 r200 r300 radeon tdfx
|
||||
|
||||
|
@@ -8,5 +8,9 @@ CONFIG_NAME = linux-dri-x86
|
||||
# Unnecessary on x86, generally.
|
||||
PIC_FLAGS =
|
||||
|
||||
# Add -m32 to CFLAGS:
|
||||
ARCH_FLAGS = -m32
|
||||
|
||||
ASM_FLAGS = -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM
|
||||
ASM_SOURCES = $(X86_SOURCES)
|
||||
|
||||
|
@@ -1,40 +1,23 @@
|
||||
# -*-makefile-*-
|
||||
# Configuration for linux-dri: Linux DRI hardware drivers for XFree86 & others
|
||||
|
||||
include $(TOP)/configs/default
|
||||
include $(TOP)/configs/linux-dri
|
||||
|
||||
CONFIG_NAME = linux-dri-x86-64
|
||||
|
||||
# Compiler and flags
|
||||
CC = gcc
|
||||
CXX = g++
|
||||
ARCH_FLAGS = -m64
|
||||
|
||||
DEFINES = -DDRI_NEW_INTERFACE_ONLY -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DPTHREADS -D_GNU_SOURCE -D__AMD64__
|
||||
|
||||
CFLAGS = -m64 -Wmissing-prototypes -g -std=c99 -Wundef -fPIC -ffast-math $(DEFINES)
|
||||
CXXFLAGS = -m64 -Wall -g -ansi -pedantic -fPIC $(DEFINES)
|
||||
|
||||
X11_INCLUDES = -I/usr/X11R6/include -I/usr/X11R6/include/X11/extensions
|
||||
|
||||
#ASM_SOURCES = $(X86_SOURCES)
|
||||
ASM_FLAGS = -DUSE_X86_64_ASM
|
||||
ASM_SOURCES = $(X86-64_SOURCES) $(X86-64_API)
|
||||
|
||||
LIB_DIR = $(TOP)/lib64
|
||||
|
||||
# Library/program dependencies
|
||||
DRI_LIB_DEPS = -lm -lpthread -lexpat -ldl
|
||||
GL_LIB_DEPS = -L/usr/X11R6/lib64 -lX11 -lXext -lXxf86vm -lm -lpthread -ldl
|
||||
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib64 -lX11 -lXmu -lXt -lXi -lm
|
||||
GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -L/usr/X11R6/lib64 -lXt -lX11
|
||||
EXTRA_LIB_PATH=-L/usr/X11R6/lib64
|
||||
|
||||
# Directories
|
||||
SRC_DIRS = mesa glu glut/glx glw glx/x11
|
||||
DRIVER_DIRS = dri
|
||||
PROGRAM_DIRS =
|
||||
WINDOW_SYSTEM=dri
|
||||
|
||||
# ffb, gamma, and sis are missing because they have
|
||||
# not be converted to use the new interface. Do i810 & i830 really
|
||||
# need to be included here?
|
||||
# ffb, gamma, and sis are missing because they have not be converted to use
|
||||
# the new interface. i810 and i830 are missing because there is no x86-64
|
||||
# system where they could *ever* be used.
|
||||
#
|
||||
DRI_DIRS = dri_client i810 i830 i915 mach64 mga r128 r200 radeon tdfx unichrome savage
|
||||
DRI_DIRS = i915 mach64 mga r128 r200 radeon tdfx unichrome savage r300
|
||||
|
||||
|
10
configs/linux-fbdev
Normal file
10
configs/linux-fbdev
Normal file
@@ -0,0 +1,10 @@
|
||||
# Configuration for Linux fbdev interface
|
||||
|
||||
include $(TOP)/configs/linux
|
||||
|
||||
CONFIG_NAME = linux-fbdev
|
||||
DRIVER_DIRS = fbdev
|
||||
|
||||
CFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DPTHREADS -DUSE_GLFBDEV_DRIVER
|
||||
|
||||
PROGRAM_DIRS = fbdev
|
49
configs/linux-indirect
Normal file
49
configs/linux-indirect
Normal file
@@ -0,0 +1,49 @@
|
||||
# -*-makefile-*-
|
||||
# Configuration for linux-indirect: Builds a libGL capable of indirect
|
||||
# rendering, but *NOT* capable of direct rendering.
|
||||
|
||||
include $(TOP)/configs/default
|
||||
|
||||
CONFIG_NAME = linux-dri
|
||||
|
||||
# Compiler and flags
|
||||
CC = gcc
|
||||
CXX = g++
|
||||
|
||||
MKDEP = /usr/X11R6/bin/makedepend
|
||||
#MKDEP = gcc -M
|
||||
#MKDEP_OPTIONS = -MF depend
|
||||
|
||||
WARN_FLAGS = -Wall
|
||||
OPT_FLAGS = -O -g
|
||||
PIC_FLAGS = -fPIC
|
||||
|
||||
# Add '-DGLX_USE_TLS' to ARCH_FLAGS to enable TLS support.
|
||||
ARCH_FLAGS ?=
|
||||
|
||||
DEFINES = -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE \
|
||||
-D_BSD_SOURCE -D_GNU_SOURCE \
|
||||
-DPTHREADS -DHAVE_ALIAS
|
||||
|
||||
X11_INCLUDES = -I/usr/X11R6/include
|
||||
|
||||
CFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES) \
|
||||
$(ASM_FLAGS) -std=c99 -ffast-math
|
||||
|
||||
CXXFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES)
|
||||
|
||||
|
||||
ASM_SOURCES =
|
||||
|
||||
# Library/program dependencies
|
||||
EXTRA_LIB_PATH=-L/usr/X11R6/lib
|
||||
|
||||
DRI_LIB_DEPS = $(EXTRA_LIB_PATH) -lm -lpthread -lexpat -ldl
|
||||
GL_LIB_DEPS = $(EXTRA_LIB_PATH) -lX11 -lXext -lXxf86vm -lm -lpthread -ldl
|
||||
|
||||
|
||||
# Directories
|
||||
SRC_DIRS = glx/x11 glu glut/glx glw
|
||||
DRIVER_DIRS =
|
||||
PROGRAM_DIRS =
|
||||
WINDOW_SYSTEM=dri
|
@@ -1,18 +1,9 @@
|
||||
# Configuration for Linux on PPC
|
||||
|
||||
include $(TOP)/configs/default
|
||||
include $(TOP)/configs/linux
|
||||
|
||||
CONFIG_NAME = linux-ppc
|
||||
|
||||
# Compiler and flags
|
||||
CC = gcc
|
||||
CXX = g++
|
||||
CFLAGS = -O3 -mcpu=603 -ansi -pedantic -fPIC -fsigned-char -ffast-math -funroll-loops -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DUSE_XSHM
|
||||
CXXFLAGS = -O3 -mcpu=603 -ansi -pedantic -fPIC -fsigned-char -ffast-math -funroll-loops -D_SVID_SOURCE -D_BSD_SOURCE
|
||||
GLUT_CFLAGS = -fexceptions
|
||||
|
||||
GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread
|
||||
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
|
||||
GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -L/usr/X11R6/lib -lXt -lX11
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm
|
||||
OPT_FLAGS = -O3 -mcpu=603 -fsigned-char -funroll-loops
|
||||
|
||||
# FIXME: Use of PowerPC assembly should be enabled here.
|
@@ -1,15 +1,9 @@
|
||||
# Configuration for Linux on PPC, static libs
|
||||
|
||||
include $(TOP)/configs/default
|
||||
include $(TOP)/configs/linux-ppc
|
||||
|
||||
CONFIG_NAME = linux-ppc-static
|
||||
|
||||
# Compiler and flags
|
||||
CC = gcc
|
||||
CXX = g++
|
||||
CFLAGS = -O3 -mcpu=603 -ansi -pedantic -fPIC -fsigned-char -ffast-math -funroll-loops -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DUSE_XSHM
|
||||
CXXFLAGS = -O3 -mcpu=603 -ansi -pedantic -fPIC -fsigned-char -ffast-math -funroll-loops -D_SVID_SOURCE -D_BSD_SOURCE
|
||||
GLUT_CFLAGS = -fexceptions
|
||||
MKLIB_OPTIONS = -static
|
||||
|
||||
# Library names (actual file names)
|
||||
@@ -18,9 +12,3 @@ GLU_LIB_NAME = libGLU.a
|
||||
GLUT_LIB_NAME = libglut.a
|
||||
GLW_LIB_NAME = libGLw.a
|
||||
OSMESA_LIB_NAME = libOSMesa.a
|
||||
|
||||
|
||||
GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread
|
||||
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
|
||||
GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -L/usr/X11R6/lib -lXt -lX11
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lm
|
||||
|
29
configs/linux-profile
Normal file
29
configs/linux-profile
Normal file
@@ -0,0 +1,29 @@
|
||||
# Configuration for profiling on Linux with gprof
|
||||
|
||||
include $(TOP)/configs/default
|
||||
|
||||
CONFIG_NAME = linux-profile
|
||||
|
||||
# Compiler and flags
|
||||
CC = gcc
|
||||
CXX = g++
|
||||
|
||||
CFLAGS = -pg -O -ansi -pedantic -Wall -Wmissing-prototypes -Wundef -fPIC -ffast-math -D_POSIX_SOURCE -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DUSE_XSHM -DPTHREADS -DDEBUG -DMESA_DEBUG
|
||||
|
||||
CXXFLAGS = -pg -O -ansi -pedantic -Wall -Wundef -fPIC -ffast-math -D_POSIX_SOURCE -D_SVID_SOURCE -D_BSD_SOURCE -DDEBUG -DMESA_DEBUG
|
||||
|
||||
GLUT_CFLAGS = -fexceptions
|
||||
|
||||
# Need to have -L/usr/X11R6/lib in these:
|
||||
GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread
|
||||
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
|
||||
GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -lXt -L/usr/X11R6/lib -lX11
|
||||
|
||||
# Need to make static libs for profiling:
|
||||
MKLIB_OPTIONS = -static
|
||||
GL_LIB_NAME = lib$(GL_LIB).a
|
||||
GLU_LIB_NAME = lib$(GLU_LIB).a
|
||||
GLUT_LIB_NAME = lib$(GLUT_LIB).a
|
||||
GLW_LIB_NAME = lib$(GLW_LIB).a
|
||||
OSMESA_LIB_NAME = lib$(OSMesa).a
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm -lpthread
|
@@ -8,26 +8,36 @@ CONFIG_NAME = linux-solo
|
||||
CC = gcc
|
||||
CXX = g++
|
||||
|
||||
DEFINES = -DDRI_NEW_INTERFACE_ONLY -D_POSIX_SOURCE -D_SVID_SOURCE -D_BSD_SOURCE -D_POSIX_C_SOURCE=199309L -D_GNU_SOURCE -DUSE_EXTERNAL_DXTN_LIB=1
|
||||
WARN_FLAGS = -Wall -Wundef
|
||||
OPT_FLAGS = -O3 -g
|
||||
PIC_FLAGS = -fPIC
|
||||
|
||||
CFLAGS = $(DEFINES) -Wmissing-prototypes -g -std=c99 -Wundef -fPIC -ffast-math
|
||||
# Add '-DGLX_USE_TLS' to ARCH_FLAGS to enable TLS support.
|
||||
ARCH_FLAGS ?=
|
||||
|
||||
CXXFLAGS = $(DEFINES) -Wall -O3 -ansi -pedantic -fPIC
|
||||
DEFINES = -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE \
|
||||
-D_BSD_SOURCE -D_GNU_SOURCE \
|
||||
-DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DDRM_USE_MALLOC -DIN_DRI_DRIVER
|
||||
|
||||
CFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES) \
|
||||
$(ASM_FLAGS) -std=c99 -ffast-math
|
||||
|
||||
CXXFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES)
|
||||
|
||||
|
||||
ASM_SOURCES = $(X86_SOURCES)
|
||||
ASM_SOURCES =
|
||||
|
||||
# Library/program dependencies
|
||||
DRI_LIB_DEPS = -lm -lpthread -lexpat -ldl
|
||||
DRI_LIB_DEPS = -lm -lpthread -lexpat -ldl -L$(LIB_DIR)
|
||||
GL_LIB_DEPS = -lm -lpthread -ldl
|
||||
GLU_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -lm
|
||||
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -lm
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm -lpthread
|
||||
|
||||
# Directories
|
||||
SRC_DIRS = mesa glx/mini glu glut/mini
|
||||
SRC_DIRS = glx/mini mesa glu glut/mini
|
||||
DRIVER_DIRS = dri
|
||||
PROGRAM_DIRS = miniglx
|
||||
|
||||
#DRI_DIRS = fb ffb gamma sis savage
|
||||
DRI_DIRS = i810 i830 i915 mach64 mga r128 r200 radeon tdfx unichrome
|
||||
#DRI_DIRS = ffb gamma sis savage
|
||||
DRI_DIRS = i810 i830 i915 mach64 mga r128 r200 radeon tdfx unichrome fb
|
||||
|
@@ -1,29 +1,7 @@
|
||||
# Configuration for linux-solo-ia64: Linux DRI hardware drivers for fbdev
|
||||
|
||||
include $(TOP)/configs/default
|
||||
include $(TOP)/configs/linux-solo
|
||||
|
||||
CONFIG_NAME = linux-solo-ia64
|
||||
|
||||
# Compiler and flags
|
||||
CC = gcc
|
||||
CXX = g++
|
||||
|
||||
DEFINES = -DDRI_NEW_INTERFACE_ONLY -D_POSIX_SOURCE -D_SVID_SOURCE -D_BSD_SOURCE -D_POSIX_C_SOURCE=199309L -D_GNU_SOURCE
|
||||
|
||||
CFLAGS = $(DEFINES) -Wmissing-prototypes -g -std=c99 -Wundef -fPIC -ffast-math
|
||||
|
||||
CXXFLAGS = $(DEFINES) -Wall -O3 -ansi -pedantic -fPIC
|
||||
|
||||
|
||||
# Library/program dependencies
|
||||
DRI_LIB_DEPS = -lm -lpthread -lexpat -ldl
|
||||
GL_LIB_DEPS = -lm -lpthread -ldl
|
||||
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -lm
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm -lpthread
|
||||
|
||||
# Directories
|
||||
SRC_DIRS = mesa glx/mini glu glut/mini
|
||||
DRIVER_DIRS = dri
|
||||
PROGRAM_DIRS = miniglx
|
||||
|
||||
DRI_DIRS = fb mach64 mga r128 r200 radeon sis tdfx unichrome
|
||||
|
@@ -1,32 +1,12 @@
|
||||
# Configuration for linux-solo: Linux DRI hardware drivers for fbdev
|
||||
# -*-makefile-*-
|
||||
# Configuration for linux-solo-x86: Linux hardware drivers for fbdev for x86
|
||||
|
||||
include $(TOP)/configs/default
|
||||
include $(TOP)/configs/linux-solo
|
||||
|
||||
CONFIG_NAME = linux-solo-x86
|
||||
|
||||
# Compiler and flags
|
||||
CC = gcc
|
||||
CXX = g++
|
||||
|
||||
DEFINES = -DDRI_NEW_INTERFACE_ONLY -D_POSIX_SOURCE -D_SVID_SOURCE -D_BSD_SOURCE -D_POSIX_C_SOURCE=199309L -D_GNU_SOURCE -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1
|
||||
|
||||
CFLAGS = $(DEFINES) -Wmissing-prototypes -O3 -g -std=c99 -Wundef -fPIC -ffast-math
|
||||
|
||||
CXXFLAGS = $(DEFINES) -Wall -O3 -ansi -pedantic -fPIC
|
||||
|
||||
# Unnecessary on x86, generally.
|
||||
PIC_FLAGS =
|
||||
|
||||
ASM_FLAGS = -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM
|
||||
ASM_SOURCES = $(X86_SOURCES)
|
||||
|
||||
# Library/program dependencies
|
||||
DRI_LIB_DEPS = -lm -lpthread -lexpat -ldl
|
||||
GL_LIB_DEPS = -lm -lpthread -ldl
|
||||
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -lm
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm -lpthread
|
||||
|
||||
# Directories
|
||||
SRC_DIRS = mesa glx/mini glu glut/mini
|
||||
DRIVER_DIRS = dri
|
||||
PROGRAM_DIRS = miniglx
|
||||
|
||||
#DRI_DIRS = fb ffb gamma sis savage
|
||||
DRI_DIRS = i810 i830 i915 mach64 mga r128 r200 radeon tdfx unichrome
|
||||
|
@@ -7,10 +7,24 @@ CONFIG_NAME = linux-sparc
|
||||
# Compiler and flags
|
||||
CC = gcc
|
||||
CXX = g++
|
||||
CFLAGS = -O2 -ffast-math -ansi -pedantic -fPIC -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DUSE_XSHM
|
||||
CXXFLAGS = -O2 -ffast-math -ansi -pedantic -fPIC -D_SVID_SOURCE -D_BSD_SOURCE
|
||||
|
||||
WARN_FLAGS = -Wall
|
||||
OPT_FLAGS = -O2
|
||||
PIC_FLAGS = -fPIC
|
||||
|
||||
DEFINES = -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM
|
||||
|
||||
X11_INCLUDES = -I/usr/X11R6/include
|
||||
|
||||
CFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES) \
|
||||
$(ASM_FLAGS) -std=c99 -ffast-math
|
||||
|
||||
CXXFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES)
|
||||
|
||||
GLUT_CFLAGS = -fexceptions
|
||||
|
||||
GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread
|
||||
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
|
||||
GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -L/usr/X11R6/lib -lXt -lX11
|
||||
EXTRA_LIB_PATH=-L/usr/X11R6/lib
|
||||
|
||||
GL_LIB_DEPS = $(EXTRA_LIB_PATH) -lX11 -lXext -lm -lpthread
|
||||
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) $(EXTRA_LIB_PATH) -lX11 -lXmu -lXt -lXi -lm
|
||||
GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) $(EXTRA_LIB_PATH) -lXt -lX11
|
||||
|
@@ -1,17 +1,9 @@
|
||||
# Configuration for generic Linux, making static libs
|
||||
|
||||
include $(TOP)/configs/default
|
||||
include $(TOP)/configs/linux
|
||||
|
||||
CONFIG_NAME = linux-static
|
||||
|
||||
# Compiler and flags
|
||||
CC = gcc
|
||||
CXX = g++
|
||||
|
||||
CFLAGS = -O3 -ansi -pedantic -ffast-math -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DPTHREADS -I/usr/X11R6/include
|
||||
CXXFLAGS = -O3 -ansi -pedantic -ffast-math -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE
|
||||
GLUT_CFLAGS = -fexceptions
|
||||
|
||||
MKLIB_OPTIONS = -static
|
||||
|
||||
# Library names (actual file names)
|
||||
@@ -27,4 +19,3 @@ OSMESA_LIB_DEPS =
|
||||
GLU_LIB_DEPS =
|
||||
GLUT_LIB_DEPS =
|
||||
GLW_LIB_DEPS =
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lpthread -lm -lstdc++
|
||||
|
@@ -1,24 +1,8 @@
|
||||
# Configuration for Linux with x86 optimizations
|
||||
|
||||
include $(TOP)/configs/default
|
||||
include $(TOP)/configs/linux
|
||||
|
||||
CONFIG_NAME = linux-x86
|
||||
|
||||
# Compiler and flags
|
||||
CC = gcc
|
||||
CXX = g++
|
||||
|
||||
CFLAGS = -Wall -O3 -ansi -pedantic -fPIC -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -DPTHREADS -I/usr/X11R6/include
|
||||
|
||||
CXXFLAGS = -Wall -O3 -ansi -pedantic -fPIC -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE
|
||||
|
||||
GLUT_CFLAGS = -fexceptions
|
||||
|
||||
|
||||
ASM_FLAGS = -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM
|
||||
ASM_SOURCES = $(X86_SOURCES) $(X86_API)
|
||||
|
||||
# Library/program dependencies
|
||||
GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread
|
||||
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
|
||||
GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -L/usr/X11R6/lib -lXt -lX11
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm
|
||||
|
7
configs/linux-x86-32
Normal file
7
configs/linux-x86-32
Normal file
@@ -0,0 +1,7 @@
|
||||
# To build Linux x86 32-bit in an x86-64 environment
|
||||
|
||||
include $(TOP)/configs/linux-x86
|
||||
|
||||
CONFIG_NAME = linux-x86-32
|
||||
|
||||
ARCH_FLAGS += -m32
|
@@ -1,28 +1,13 @@
|
||||
# Configuration for Linux for 64-bit X86 (Opteron)
|
||||
|
||||
include $(TOP)/configs/default
|
||||
include $(TOP)/configs/linux
|
||||
|
||||
CONFIG_NAME = linux-x86-64
|
||||
|
||||
# Compiler and flags
|
||||
CC = gcc
|
||||
CXX = g++
|
||||
|
||||
CFLAGS = -m64 -Wall -O3 -ansi -pedantic -fPIC -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DPTHREADS -D__AMD64__ -I/usr/X11R6/include
|
||||
|
||||
CXXFLAGS = -m64 -Wall -O3 -ansi -pedantic -fPIC -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -D__AMD64__
|
||||
|
||||
GLUT_CFLAGS = -fexceptions
|
||||
|
||||
|
||||
#ASM_SOURCES = $(X86_SOURCES)
|
||||
ARCH_FLAGS = -m64
|
||||
|
||||
ASM_SOURCES = $(X86-64_SOURCES) $(X86-64_API)
|
||||
ASM_FLAGS = -DUSE_X86_64_ASM
|
||||
|
||||
LIB_DIR = $(TOP)/lib64
|
||||
|
||||
|
||||
# Library/program dependencies
|
||||
GL_LIB_DEPS = -L/usr/X11R6/lib64 -lX11 -lXext -lm -lpthread
|
||||
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib64 -lX11 -lXmu -lXt -lXi -lm
|
||||
GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -L/usr/X11R6/lib64 -lXt -lX11
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm
|
||||
EXTRA_LIB_PATH = -L/usr/X11R6/lib64
|
||||
|
7
configs/linux-x86-64-debug
Normal file
7
configs/linux-x86-64-debug
Normal file
@@ -0,0 +1,7 @@
|
||||
# Configuration for Linux for 64-bit X86 (Opteron)
|
||||
|
||||
include $(TOP)/configs/linux-x86-64
|
||||
|
||||
CONFIG_NAME = linux-x86-64-debug
|
||||
|
||||
DEFINES += -DDEBUG -DMESA_DEBUG -DRUN_DEBUG_BENCHMARK
|
@@ -1,22 +1,11 @@
|
||||
# Configuration for Linux for 64-bit X86 (Opteron), static libs
|
||||
|
||||
include $(TOP)/configs/default
|
||||
include $(TOP)/configs/linux-x86-64
|
||||
|
||||
CONFIG_NAME = linux-x86-64-static
|
||||
|
||||
# Compiler and flags
|
||||
CC = gcc
|
||||
CXX = g++
|
||||
|
||||
CFLAGS = -m64 -Wall -O3 -ansi -pedantic -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DPTHREADS -D__AMD64__ -I/usr/X11R6/include
|
||||
|
||||
CXXFLAGS = -m64 -Wall -O3 -ansi -pedantic -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -D__AMD64__
|
||||
|
||||
GLUT_CFLAGS = -fexceptions
|
||||
|
||||
MKLIB_OPTIONS = -static
|
||||
|
||||
|
||||
# Library names (actual file names)
|
||||
GL_LIB_NAME = libGL.a
|
||||
GLU_LIB_NAME = libGLU.a
|
||||
@@ -24,17 +13,9 @@ GLUT_LIB_NAME = libglut.a
|
||||
GLW_LIB_NAME = libGLw.a
|
||||
OSMESA_LIB_NAME = libOSMesa.a
|
||||
|
||||
|
||||
#ASM_SOURCES = $(X86_SOURCES)
|
||||
|
||||
|
||||
LIB_DIR = $(TOP)/lib64
|
||||
|
||||
|
||||
# Library/program dependencies (static libs don't have dependencies)
|
||||
GL_LIB_DEPS =
|
||||
OSMESA_LIB_DEPS =
|
||||
GLU_LIB_DEPS =
|
||||
GLUT_LIB_DEPS =
|
||||
GLW_LIB_DEPS =
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib64 -lX11 -lXext -lXmu -lXt -lXi -lpthread -lm -lstdc++
|
||||
|
@@ -5,6 +5,5 @@ include $(TOP)/configs/linux-x86
|
||||
|
||||
CONFIG_NAME = linux-x86-debug
|
||||
|
||||
CFLAGS = -Wall -g -ansi -pedantic -fPIC -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -DPTHREADS -I/usr/X11R6/include
|
||||
|
||||
CXXFLAGS = -Wall -g -ansi -pedantic -fPIC -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE
|
||||
OPT_FLAGS = -g
|
||||
DEFINES += -DDEBUG -DMESA_DEBUG -DRUN_DEBUG_BENCHMARK
|
||||
|
@@ -1,22 +1,11 @@
|
||||
# Configuration for Linux with x86 optimizations, static libs
|
||||
|
||||
include $(TOP)/configs/default
|
||||
include $(TOP)/configs/linux-x86
|
||||
|
||||
CONFIG_NAME = linux-x86-static
|
||||
|
||||
# Compiler and flags
|
||||
CC = gcc
|
||||
CXX = g++
|
||||
|
||||
CFLAGS = -Wall -O3 -ansi -pedantic -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -DPTHREADS -I/usr/X11R6/include
|
||||
|
||||
CXXFLAGS = -Wall -O3 -ansi -pedantic -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE
|
||||
|
||||
GLUT_CFLAGS = -fexceptions
|
||||
|
||||
MKLIB_OPTIONS = -static
|
||||
|
||||
|
||||
# Library names (actual file names)
|
||||
GL_LIB_NAME = libGL.a
|
||||
GLU_LIB_NAME = libGLU.a
|
||||
@@ -24,14 +13,9 @@ GLUT_LIB_NAME = libglut.a
|
||||
GLW_LIB_NAME = libGLw.a
|
||||
OSMESA_LIB_NAME = libOSMesa.a
|
||||
|
||||
|
||||
ASM_SOURCES = $(X86_SOURCES) $(X86_API)
|
||||
|
||||
|
||||
# Library/program dependencies (static libs don't have dependencies)
|
||||
GL_LIB_DEPS =
|
||||
OSMESA_LIB_DEPS =
|
||||
GLU_LIB_DEPS =
|
||||
GLUT_LIB_DEPS =
|
||||
GLW_LIB_DEPS =
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lpthread -lm -lstdc++
|
||||
|
24
configs/linux-x86-xcb
Normal file
24
configs/linux-x86-xcb
Normal file
@@ -0,0 +1,24 @@
|
||||
# Configuration for Linux with x86 optimizations
|
||||
|
||||
include $(TOP)/configs/default
|
||||
|
||||
CONFIG_NAME = linux-x86-xcb
|
||||
|
||||
# Compiler and flags
|
||||
CC = gcc
|
||||
CXX = g++
|
||||
|
||||
CFLAGS = -Wall -O3 -ansi -pedantic -fPIC -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -DPTHREADS -DUSE_XCB -I/usr/X11R6/include
|
||||
|
||||
CXXFLAGS = -Wall -O3 -ansi -pedantic -fPIC -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XCB
|
||||
|
||||
GLUT_CFLAGS = -fexceptions
|
||||
|
||||
|
||||
ASM_SOURCES = $(X86_SOURCES) $(X86_API)
|
||||
|
||||
# Library/program dependencies
|
||||
GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread -lXCB
|
||||
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
|
||||
GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -L/usr/X11R6/lib -lXt -lX11
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm
|
@@ -9,7 +9,7 @@ CC = cc
|
||||
CFLAGS = -Xa -xO3 -xpentium -KPIC -I/usr/openwin/include -DUSE_XSHM
|
||||
MKLIB_OPTIONS = -static
|
||||
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -L/usr/openwin/lib -R/usr/openwin/lib -lX11 -lXext -lXmu -lXi -lm
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -L/usr/openwin/lib -R/usr/openwin/lib -lX11 -lXext -lXmu -lXi -lm -lglut -lGLU -lGL
|
||||
|
||||
GL_LIB_NAME = libGL.a
|
||||
GLU_LIB_NAME = libGLU.a
|
||||
|
@@ -4,18 +4,32 @@ include $(TOP)/configs/default
|
||||
|
||||
CONFIG_NAME = sunos5-gcc
|
||||
|
||||
ASM_SOURCES = $(SPARC_SOURCES) $(SPARC_API)
|
||||
|
||||
# Compiler and flags
|
||||
CC = gcc
|
||||
CXX = g++
|
||||
CFLAGS = -O3 -I/usr/openwin/include -fPIC -fomit-frame-pointer -D_REENTRANT -DUSE_XSHM -DUSE_SPARC_ASM
|
||||
CXXFLAGS = -O3 -I/usr/openwin/include -fPIC -fomit-frame-pointer -D_REENTRANT -DUSE_SPARC_ASM
|
||||
|
||||
WARN_FLAGS = -Wall
|
||||
OPT_FLAGS = -O3 -g -fomit-frame-pointer -pipe
|
||||
PIC_FLAGS = -fPIC
|
||||
|
||||
ARCH_FLAGS ?=
|
||||
|
||||
DEFINES = -D_REENTRANT -DUSE_XSHM
|
||||
|
||||
ASM_SOURCES = $(SPARC_SOURCES) $(SPARC_API)
|
||||
ASM_FLAGS = -DUSE_SPARC_ASM
|
||||
|
||||
CFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES) \
|
||||
$(ASM_FLAGS) -std=c99 -ffast-math -I/usr/openwin/include
|
||||
|
||||
CXXFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES) \
|
||||
-I/usr/openwin/include
|
||||
|
||||
GLUT_CFLAGS = -fexceptions -DSOLARIS_2_4_BUG
|
||||
|
||||
GL_LIB_DEPS = -L/usr/openwin/lib -lX11 -lXext -lXmu -lXi -lm
|
||||
GLU_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -lm
|
||||
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -lm
|
||||
GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -L/usr/openwin/lib -lXt -lX11
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -lX11 -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm
|
||||
# Library/program dependencies
|
||||
EXTRA_LIB_PATH=-L/usr/openwin/lib
|
||||
|
||||
GL_LIB_DEPS = $(EXTRA_LIB_PATH) -lX11 -lXext -lXmu -lXi -lm
|
||||
GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -lm
|
||||
APP_LIB_DEPS = -L$(LIB_DIR) -lX11 -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm
|
||||
|
182
docs/INSTALL.GNU
182
docs/INSTALL.GNU
@@ -1,182 +0,0 @@
|
||||
Basic Installation
|
||||
==================
|
||||
|
||||
These are generic installation instructions.
|
||||
|
||||
The `configure' shell script attempts to guess correct values for
|
||||
various system-dependent variables used during compilation. It uses
|
||||
those values to create a `Makefile' in each directory of the package.
|
||||
It may also create one or more `.h' files containing system-dependent
|
||||
definitions. Finally, it creates a shell script `config.status' that
|
||||
you can run in the future to recreate the current configuration, a file
|
||||
`config.cache' that saves the results of its tests to speed up
|
||||
reconfiguring, and a file `config.log' containing compiler output
|
||||
(useful mainly for debugging `configure').
|
||||
|
||||
If you need to do unusual things to compile the package, please try
|
||||
to figure out how `configure' could check whether to do them, and mail
|
||||
diffs or instructions to the address given in the `README' so they can
|
||||
be considered for the next release. If at some point `config.cache'
|
||||
contains results you don't want to keep, you may remove or edit it.
|
||||
|
||||
The file `configure.in' is used to create `configure' by a program
|
||||
called `autoconf'. You only need `configure.in' if you want to change
|
||||
it or regenerate `configure' using a newer version of `autoconf'.
|
||||
|
||||
The simplest way to compile this package is:
|
||||
|
||||
1. `cd' to the directory containing the package's source code and type
|
||||
`./configure' to configure the package for your system. If you're
|
||||
using `csh' on an old version of System V, you might need to type
|
||||
`sh ./configure' instead to prevent `csh' from trying to execute
|
||||
`configure' itself.
|
||||
|
||||
Running `configure' takes awhile. While running, it prints some
|
||||
messages telling which features it is checking for.
|
||||
|
||||
2. Type `make' to compile the package.
|
||||
|
||||
3. Optionally, type `make check' to run any self-tests that come with
|
||||
the package.
|
||||
|
||||
4. Type `make install' to install the programs and any data files and
|
||||
documentation.
|
||||
|
||||
5. You can remove the program binaries and object files from the
|
||||
source code directory by typing `make clean'. To also remove the
|
||||
files that `configure' created (so you can compile the package for
|
||||
a different kind of computer), type `make distclean'. There is
|
||||
also a `make maintainer-clean' target, but that is intended mainly
|
||||
for the package's developers. If you use it, you may have to get
|
||||
all sorts of other programs in order to regenerate files that came
|
||||
with the distribution.
|
||||
|
||||
Compilers and Options
|
||||
=====================
|
||||
|
||||
Some systems require unusual options for compilation or linking that
|
||||
the `configure' script does not know about. You can give `configure'
|
||||
initial values for variables by setting them in the environment. Using
|
||||
a Bourne-compatible shell, you can do that on the command line like
|
||||
this:
|
||||
CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
|
||||
|
||||
Or on systems that have the `env' program, you can do it like this:
|
||||
env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
|
||||
|
||||
Compiling For Multiple Architectures
|
||||
====================================
|
||||
|
||||
You can compile the package for more than one kind of computer at the
|
||||
same time, by placing the object files for each architecture in their
|
||||
own directory. To do this, you must use a version of `make' that
|
||||
supports the `VPATH' variable, such as GNU `make'. `cd' to the
|
||||
directory where you want the object files and executables to go and run
|
||||
the `configure' script. `configure' automatically checks for the
|
||||
source code in the directory that `configure' is in and in `..'.
|
||||
|
||||
If you have to use a `make' that does not supports the `VPATH'
|
||||
variable, you have to compile the package for one architecture at a time
|
||||
in the source code directory. After you have installed the package for
|
||||
one architecture, use `make distclean' before reconfiguring for another
|
||||
architecture.
|
||||
|
||||
Installation Names
|
||||
==================
|
||||
|
||||
By default, `make install' will install the package's files in
|
||||
`/usr/local/bin', `/usr/local/man', etc. You can specify an
|
||||
installation prefix other than `/usr/local' by giving `configure' the
|
||||
option `--prefix=PATH'.
|
||||
|
||||
You can specify separate installation prefixes for
|
||||
architecture-specific files and architecture-independent files. If you
|
||||
give `configure' the option `--exec-prefix=PATH', the package will use
|
||||
PATH as the prefix for installing programs and libraries.
|
||||
Documentation and other data files will still use the regular prefix.
|
||||
|
||||
In addition, if you use an unusual directory layout you can give
|
||||
options like `--bindir=PATH' to specify different values for particular
|
||||
kinds of files. Run `configure --help' for a list of the directories
|
||||
you can set and what kinds of files go in them.
|
||||
|
||||
If the package supports it, you can cause programs to be installed
|
||||
with an extra prefix or suffix on their names by giving `configure' the
|
||||
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
|
||||
|
||||
Optional Features
|
||||
=================
|
||||
|
||||
Some packages pay attention to `--enable-FEATURE' options to
|
||||
`configure', where FEATURE indicates an optional part of the package.
|
||||
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
|
||||
is something like `gnu-as' or `x' (for the X Window System). The
|
||||
`README' should mention any `--enable-' and `--with-' options that the
|
||||
package recognizes.
|
||||
|
||||
For packages that use the X Window System, `configure' can usually
|
||||
find the X include and library files automatically, but if it doesn't,
|
||||
you can use the `configure' options `--x-includes=DIR' and
|
||||
`--x-libraries=DIR' to specify their locations.
|
||||
|
||||
Specifying the System Type
|
||||
==========================
|
||||
|
||||
There may be some features `configure' can not figure out
|
||||
automatically, but needs to determine by the type of host the package
|
||||
will run on. Usually `configure' can figure that out, but if it prints
|
||||
a message saying it can not guess the host type, give it the
|
||||
`--host=TYPE' option. TYPE can either be a short name for the system
|
||||
type, such as `sun4', or a canonical name with three fields:
|
||||
CPU-COMPANY-SYSTEM
|
||||
|
||||
See the file `config.sub' for the possible values of each field. If
|
||||
`config.sub' isn't included in this package, then this package doesn't
|
||||
need to know the host type.
|
||||
|
||||
If you are building compiler tools for cross-compiling, you can also
|
||||
use the `--target=TYPE' option to select the type of system they will
|
||||
produce code for and the `--build=TYPE' option to select the type of
|
||||
system on which you are compiling the package.
|
||||
|
||||
Sharing Defaults
|
||||
================
|
||||
|
||||
If you want to set default values for `configure' scripts to share,
|
||||
you can create a site shell script called `config.site' that gives
|
||||
default values for variables like `CC', `cache_file', and `prefix'.
|
||||
`configure' looks for `PREFIX/share/config.site' if it exists, then
|
||||
`PREFIX/etc/config.site' if it exists. Or, you can set the
|
||||
`CONFIG_SITE' environment variable to the location of the site script.
|
||||
A warning: not all `configure' scripts look for a site script.
|
||||
|
||||
Operation Controls
|
||||
==================
|
||||
|
||||
`configure' recognizes the following options to control how it
|
||||
operates.
|
||||
|
||||
`--cache-file=FILE'
|
||||
Use and save the results of the tests in FILE instead of
|
||||
`./config.cache'. Set FILE to `/dev/null' to disable caching, for
|
||||
debugging `configure'.
|
||||
|
||||
`--help'
|
||||
Print a summary of the options to `configure', and exit.
|
||||
|
||||
`--quiet'
|
||||
`--silent'
|
||||
`-q'
|
||||
Do not print messages saying which checks are being made. To
|
||||
suppress all normal output, redirect it to `/dev/null' (any error
|
||||
messages will still be shown).
|
||||
|
||||
`--srcdir=DIR'
|
||||
Look for the package's source code in directory DIR. Usually
|
||||
`configure' can determine that directory automatically.
|
||||
|
||||
`--version'
|
||||
Print the version of Autoconf used to generate the `configure'
|
||||
script, and exit.
|
||||
|
||||
`configure' also accepts some other, not widely useful, options.
|
@@ -113,14 +113,10 @@ FAQ:
|
||||
at peak performance ;-).
|
||||
|
||||
Q) I'm getting a "bad font!" fatal error.
|
||||
A) By default, DOS GLUT compiles with GLUT_IMPORT_LIB, to cope with variable
|
||||
access inside dynamic modules (same mechanism used for Win32 _DLL). Since
|
||||
-DGLUT_IMPORT_LIB affects Mesa's `glut.h', your apps must be compiled the
|
||||
same way GLUT was compiled (either with or without defining it). If you
|
||||
want to use another `glut.h' when building your own demos, or just don't
|
||||
feel happy about this, make sure you remove the line with GLUT_IMPORT_LIB
|
||||
from `Mesa/src/glut/dos/Makefile.DJ' before (re)making GLUT. Beware, this
|
||||
means you will never EVER be able to safely use `glut.dxe'!
|
||||
A) Always use GLUT_STROKE_* and GLUT_BITMAP_* constants when dealing with
|
||||
GLUT fonts. If you're using `glut.dxe', then make sure GLUT_STROKE_* and
|
||||
GLUT_BITMAP_* are mapped to integer constants, not to the actual font
|
||||
address (same mechanism used for Win32 _DLL).
|
||||
|
||||
Q) What is NUL driver good for, if I don't get any output at all?
|
||||
A) For debugging. The NUL driver is very much like OSMesa. Everything is
|
||||
@@ -265,8 +261,9 @@ v1.6 (aug-2004)
|
||||
v1.7 (???-2005)
|
||||
+ enabled OpenGL 2.0 support
|
||||
+ added support for sw texture compression
|
||||
* minor rework
|
||||
* `glutTimerFunc' now works with heavy callbacks
|
||||
+ added FreeGLUT specific functions
|
||||
* no more GLX sources in DOS GLUT
|
||||
* made GLUT timer callbacks less accurate but safer
|
||||
|
||||
|
||||
|
||||
|
@@ -14,68 +14,77 @@ Quick & dirty start:
|
||||
|
||||
|
||||
|
||||
Contact:
|
||||
--------
|
||||
|
||||
Daniel Borca <dborca@users.sourceforge.net>
|
||||
|
||||
|
||||
|
||||
WARNING! The info below this line is outdated (yet some of it useful). WARNING!
|
||||
*******************************************************************************
|
||||
The Mingw port for Mesa 3-D Graphics Library was created August 30, 1998 by Paul Garceau.
|
||||
|
||||
|
||||
|
||||
August 30, 1998 -- Paul Garceau
|
||||
Updated January 13, 2000 -- Paul Garceau (pgarceau@teleport.com)
|
||||
Updated January 13, 2000; June 3, 2005 -- Paul Garceau <pgarceau@users.sourceforge.net>
|
||||
|
||||
DISCLAIMER: I make this port of the Mesa 3-D Graphics Library as a service
|
||||
to the general public. I can, in no way support or make any guarantee that the
|
||||
build will work for your system.
|
||||
|
||||
The associated packages and batch files I have included as part of the GCC-2.95.2/Mingw32 extension are provided "As-is" with out any guarantee of support or functionality from this author.
|
||||
Acknowledgements:
|
||||
|
||||
Feel free to modify or change things as you see fit, just remember that
|
||||
I can't support any modifications you might want to make to the files which I
|
||||
have included OR the lgpl protected Mesa 3-D Graphics Library.
|
||||
Daniel Borca, whose work and commitment to maintaining the Mingw port of the Mesa 3-D Graphics Library has been, and will continue to be greatly appreciated by an overworked and underpaid developer such as myself.
|
||||
Without the creative inspiration and personal commitment provided by Mumit Khan, Jan-Jaap Vanderhagen and Colin Peters, Mingw would never have existed. Acknowledgements also need to be given to all of the developers who have worked on Mingw, Mesa and Msys over the years.
|
||||
Last, but certainly far from the least, Brian Paul, who has dedicated at least the last seven or eight years of his life to making Mesa 3-D Graphics Library what it is today and managing the development for all of those years.
|
||||
*********************************************************************************
|
||||
|
||||
I recommend using GCC-2.95.2/Mingw32 which is available at Mumit Khans' ftp site:
|
||||
Greetings,
|
||||
|
||||
(ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/mingw32/)
|
||||
Feel free to modify or change things related to the Mingw build as you see fit, just remember that, the author of the current build may not be able to support any modifications you might want to make to the files which have been included for the build.
|
||||
|
||||
Mesa core components are licensed under XFree-86 (for more on licensing of Mesa 3-D Graphics Library, check out the Mesa homepage (http://www.mesa3d.org).
|
||||
|
||||
The Mingw generated libraries themselves are licensed under the GNU-LGPL license. Source code for Mingw can be found at http://www.mingw.org. For licensing terms on Mingw, please visit http://www.mingw.org.
|
||||
|
||||
It is recommended that you use the latest "stable" release of Mingw. "Candidates" are beta testing distributions for Mingw. Mingw is available at http://www.mingw.org.
|
||||
|
||||
This build has been tested under WinNT4/SP6. Win9x and WinNT5 remain untested by me. I have not tested any of the demos included with Mesa3d.
|
||||
|
||||
I recommend using the GCC-2.95.2/Mingw32.
|
||||
Installation:
|
||||
|
||||
ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/mingw32/gcc-2.95.2
|
||||
This readme assumes that you already have extracted the necessary files to a working directory/folder that Mingw can use to build the Mesa3D libraries and that you know where that directory/folder is located on your Windows system. If you have any questions about how to set things up properly which is specific to Mesa3D, the folks on the Mesa3D mailing lists (http://www.mesa3d.org) would probably be happy to assist you. Also you can probably ask anyone on the Mingw mailing lists for any questions specific to Mingw (http://www.mingw.org)
|
||||
|
||||
Much thanks to the combined efforts of Mumit Khan, Jan-Jaap Vanderhagen
|
||||
and Colin Peters for making it possible for the Mingw32 toolchain to exist. Also, thanks go out to Stephane Rehel for the work that was completed on the Cygwin build.
|
||||
Targets and Environment variables used for Mingw build:
|
||||
|
||||
Installing GCC-2.95.2/Mingw32 Build:
|
||||
Before going into the actual build of the libraries, here is a list of available targets for the make process:
|
||||
|
||||
a) Open the file archive (either tar.gz or .zip extensions)
|
||||
"all" or "libgl" -- this target will build libopengl.a, a static library. It will not build the demos, etc.
|
||||
|
||||
b) Decide the directory you want to move the archived files to.
|
||||
clean -- this target will clean up most of the Mesa 3-D Graphics Library/object code from your hard drive.
|
||||
|
||||
realclean -- this target will clean up all of the Mesa 3D Graphics Library and the Mesa object code that it can find.
|
||||
|
||||
Environment Variables:
|
||||
|
||||
The environment variables are used to determine what sort of graphics driver support needs to be included in the finished Mesa 3-D Graphics Library.
|
||||
|
||||
GLIDE path to Glide3 SDK; used with FX.
|
||||
default = $(TOP)/glide3
|
||||
FX=1 build for 3dfx Glide3. Note that this disables
|
||||
compilation of most WMesa code and requires fxMesa.
|
||||
As a consequence, you'll need the Win32 Glide3
|
||||
library to build any application.
|
||||
default = no
|
||||
ICD=1 build the installable client driver interface
|
||||
(windows opengl driver interface)
|
||||
default = no
|
||||
X86=1 optimize for x86 (if possible, use MMX, SSE, 3DNow).
|
||||
default = no
|
||||
|
||||
d) Extract the files from the archive.
|
||||
|
||||
e) Edit the mingw32.bat file to accomodate your choice of directory structure.
|
||||
|
||||
%mesaroot%: This is your root directory (Mesa-3.3)
|
||||
%mesasrc%: This is the Mesa-3.3 src directory (Mesa-3.3\src)
|
||||
%mesalib%: This is where the build will put libGL.a and libGLU.a
|
||||
|
||||
Running the Build:
|
||||
|
||||
Open your Command Prompt or MS-DOS prompt.
|
||||
Go to your Mesa-3.3 'root' directory
|
||||
At the command line type: mingw32
|
||||
Launch Mingw.
|
||||
From the Windows Command Prompt:
|
||||
Set Environment Variables (as needed).
|
||||
"cd" to your Mesa3D 'root' directory.
|
||||
Enter "mingw32-make -f makefile.mgw <target>
|
||||
|
||||
That's all there is to it.
|
||||
|
||||
Enjoy!
|
||||
|
||||
Peace,
|
||||
|
||||
Paul G. (pgarceau@teleport.com)
|
||||
Paul G. <pgarceau@users.sourceforge.net>
|
||||
Daniel Borca <dborca@users.sourceforge.net>
|
||||
|
@@ -26,3 +26,7 @@ On Alpha platforms at default a sharable images for the libraries are created.
|
||||
To get a static library make it by typing MMS/MACRO=(NOSHARE=1).
|
||||
On VAX platforms only static libraries can be build.
|
||||
|
||||
|
||||
You may want to compile Mesa to use IEEE floating point arithmetic, instead
|
||||
of VAX floating point by specifying the /float=IEEE flag to the compiler.
|
||||
For more information see https://bugs.freedesktop.org/show_bug.cgi?id=4270
|
||||
|
@@ -1,108 +1,139 @@
|
||||
File: docs/README.WIN32
|
||||
|
||||
Last updated: Oct 01, 2004 - Karl Schultz - kschultz@users.sourceforge.net
|
||||
Last updated: Jul 01, 2005 - Karl Schultz - kschultz@users.sourceforge.net
|
||||
|
||||
Quick Start
|
||||
----- -----
|
||||
|
||||
Unzip both ZIP files (MesaLib and MesaDemos) into the same directory.
|
||||
The libs and demos build separately, so if you do not care about the
|
||||
demos, you do not have to unzip that zip file. But if you do, it does
|
||||
need to be unzipped into the same directory as the lib zip file because
|
||||
the demos depend on the libs.
|
||||
need to be unzipped into the same directory as the lib zip file
|
||||
because the demos depend on the libs.
|
||||
|
||||
The build system has been changed to use Microsoft Visual Studio project
|
||||
workspaces and projects. Makefiles are no longer shipped or supported, but
|
||||
can be generated from the projects using Visual Studio.
|
||||
The Windows build system uses Microsoft Visual Studio. Project files
|
||||
for a specific version of Visual Studio are in their own directory in
|
||||
the top-level "windows" directory. For example, Visual Studio 6 files
|
||||
are in windows/VC6. If a directory does not exist for your version of
|
||||
Visual Studio, you can try importing the project files from an earlier
|
||||
version of Visual Studio. At this time, project files exist for
|
||||
Version 6 and Version 7. The code has been built with a beta version
|
||||
of Version 8 and it runs on 64-bit Windows. If you want to try this,
|
||||
start by importing the VC7 files and create the 64-bit targets in the
|
||||
configuration manager.
|
||||
|
||||
The workspace and project files were created with Visual Studio 6, so that
|
||||
they can be used with VS6 and so that they can also be imported into VS 7.
|
||||
The project files to build the core Mesa library, Windows Mesa
|
||||
drivers, OSMesa, and GLU are in the mesa directory. The project files
|
||||
to build GLUT and some demo programs are in the progs directory.
|
||||
|
||||
Details and Notes
|
||||
Makefiles are no longer shipped or supported, but can be generated
|
||||
from the projects using Visual Studio.
|
||||
|
||||
- To build the Mesa libraries, open the Mesa.dsw workspace file
|
||||
in the top directory. You will need to build at least one
|
||||
driver. Currently, only the gdi and osmesa drivers are available.
|
||||
Select one or the other as the active project and build it.
|
||||
If you want glu, select the glu project as active and build that as well.
|
||||
|
||||
- Glut is no longer in the Mesa.dsw workspace. It is now built in
|
||||
the demo workspace (see below).
|
||||
|
||||
- The build process will create a lib directory in the top directory
|
||||
and will put the following files there as you build them:
|
||||
Windows Drivers
|
||||
------- -------
|
||||
|
||||
At this time, only the GDI driver is known to work, as it has been
|
||||
ported and rewritten to the latest Mesa DD interfaces. Source code
|
||||
also exists in the tree for other drivers in src/mesa/drivers/windows,
|
||||
but the status of this code is unknown.
|
||||
|
||||
The GDI driver operates basically by writing pixel spans into a DIB
|
||||
section and then blitting the DIB to the window. The driver was
|
||||
recently cleaned up and rewitten and so may have bugs or may be
|
||||
missing some functionality. The older versions of the CVS source may
|
||||
be useful in figuring out any problems, or report them to me.
|
||||
|
||||
To build Mesa with the GDI driver, build the mesa, gdi, and glu
|
||||
projects in the Visual Studio workspace found at
|
||||
|
||||
windows/VC6/mesa/mesa.dsw
|
||||
or
|
||||
windows/VC7/mesa/mesa.sln
|
||||
|
||||
The osmesa DLL can also be built with the osmesa project.
|
||||
|
||||
The build system creates a lib top-level directory and copies
|
||||
resulting LIB and DLL files to this lib directory. The files are:
|
||||
|
||||
OPENGL32.LIB, GLU32.LIB, OSMESA32.LIB
|
||||
OPENGL32.DLL, GLU32.DLL, OSMESA32.DLL
|
||||
|
||||
- Some users have reported problems building glu with VS7 after importing
|
||||
and converting the VS6 project files. The problem is caused by a custom
|
||||
build step that was put in place to work around a problem with VS6 not
|
||||
recognizing .cc files as C++ source files. It appears that VS7 can be
|
||||
configured to recognize .cc files as C++ files and so it compiles these
|
||||
glu files with the default settings, and does not use settings that are
|
||||
required to compile the files correctly. The easiest way to solve the
|
||||
problem is to remove the .cc files from the glu project. This does not
|
||||
delete the files, but removes them from the project so that VS does not
|
||||
try to compile them at all. This allows the custom build step to compile
|
||||
the files with the proper settings.
|
||||
If the MesaDemos ZIP file was extracted, the DLL files are also copied
|
||||
to the demos directory. This facilitates running the demos as described
|
||||
below.
|
||||
|
||||
- After building, you can copy the above DLL files to a place in your PATH
|
||||
such as $SystemRoot/SYSTEM32. If you don't like putting things in a
|
||||
system directory, place them in the same directory as the executable(s).
|
||||
Be careful about accidentially overwriting files of the same name in
|
||||
the SYSTEM32 directory.
|
||||
|
||||
- Build the demos by opening the appropriate *.dsw file in the
|
||||
progs directory tree. For example, to build the demos, use
|
||||
progs/demos/Windows/demos.dsw. The Windows directory contains
|
||||
the workspace and all the projects for each demo program. Each
|
||||
project places the executable in the same directory as its source
|
||||
code, which is required for some demos.
|
||||
GLUT and Demos
|
||||
---- --- -----
|
||||
|
||||
- The demo projects also copy the Mesa library DLL files from the lib
|
||||
directory into the same directory as the demo executables, so that
|
||||
the demos use the Mesa libs you just built.
|
||||
A Visual Studio workspace can be found at
|
||||
|
||||
- The DLL files are built so that the external entry points use the
|
||||
stdcall calling convention.
|
||||
windows/VC6/progs/progs.dsw
|
||||
or
|
||||
windows/VC7/progs/progs.sln
|
||||
|
||||
- Static LIB files are not built. The LIB files that are built with
|
||||
are the linker import files associated with the DLL files.
|
||||
It can be used to build GLUT and a few demos. The GLUT lib and DLL
|
||||
are copied to the top-level lib directory, along with the Mesa libs.
|
||||
|
||||
- The si-glu sources are used to build the GLU libs. This was done
|
||||
mainly to get the better tessellator code.
|
||||
The demo build system expects to find the LIB files in the top level
|
||||
lib directory, so you must build the Mesa libs first. The demo
|
||||
executables are placed in the demos directory, because some of them
|
||||
rely on data files found there. Also, the Mesa lib DLL's were copied
|
||||
there by the Mesa lib build process. Therefore, you should be able to
|
||||
simply run the demo executables from the demo directory.
|
||||
|
||||
- The Windows driver (in src/Windows) builds and runs at least at
|
||||
a minimal level. I modified this driver to work with the new
|
||||
Mesa 4.0 code and driver architecture, but I did not do a great
|
||||
deal of optimization and testing. There are many opportunities
|
||||
for optimization, many of which can be done by coding more specific
|
||||
paths for the rasterizers. See src/osmesa/osmesa.c for some good
|
||||
examples.
|
||||
If you want to run the demos from the Visual Studio, you may have to
|
||||
change the startup directory and explicitly state where the executables are.
|
||||
|
||||
- There is DirectDraw support in the Windows driver, updated by
|
||||
Daniel Slater. You'll need to uncomment the #define DDRAW line
|
||||
in src/Windows/wmesadef.h and add ddraw.lib to the list of libraries.
|
||||
On some systems, you will acheive significantly higher framerates
|
||||
with DirectDraw.
|
||||
|
||||
- Some of the more specialized code like FX drivers, stereo, and
|
||||
parallel support isn't compiled or tested. I left much of this
|
||||
code alone, but it may need some work to get it 'turned on' again.
|
||||
Build System Notes
|
||||
----- ------ -----
|
||||
|
||||
- No assembly code is compiled or assembled. Again, this may need
|
||||
some work to turn it back on or use it again.
|
||||
VC6
|
||||
---
|
||||
|
||||
- To build "mangled" Mesa, add the preprocessor define USE_MGL_NAMESPACE
|
||||
to the project settings. You will also need to edit src/mesa.def to change
|
||||
all the gl* symbols to mgl*. Because this is easy to do with a global
|
||||
replace operation in a text editor, no additional mangled version of mesa.def
|
||||
is maintained or shipped.
|
||||
Visual Studio 6 does not recognize files with the .cc extension as C++
|
||||
language files, without a lot of unnatural tweaking. So, the VC6
|
||||
build process uses custom build steps to compile these files in the
|
||||
GLU library.
|
||||
|
||||
|
||||
VC7
|
||||
---
|
||||
|
||||
The above-mentioned .cc problem does not exist in this version.
|
||||
|
||||
|
||||
General
|
||||
-------
|
||||
|
||||
After building, you can copy the above DLL files to a place in your
|
||||
PATH such as $SystemRoot/SYSTEM32. If you don't like putting things
|
||||
in a system directory, place them in the same directory as the
|
||||
executable(s). Be careful about accidentially overwriting files of
|
||||
the same name in the SYSTEM32 directory.
|
||||
|
||||
The DLL files are built so that the external entry points use the
|
||||
stdcall calling convention.
|
||||
|
||||
Static LIB files are not built. The LIB files that are built with are
|
||||
the linker import files associated with the DLL files.
|
||||
|
||||
The si-glu sources are used to build the GLU libs. This was done
|
||||
mainly to get the better tessellator code.
|
||||
|
||||
To build "mangled" Mesa, add the preprocessor define USE_MGL_NAMESPACE
|
||||
to the project settings. You will also need to edit src/mesa.def to
|
||||
change all the gl* symbols to mgl*. Because this is easy to do with a
|
||||
global replace operation in a text editor, no additional mangled
|
||||
version of mesa.def is maintained or shipped.
|
||||
|
||||
If you have a Windows-related build problem or question, it is
|
||||
probably better to direct it to me (kschultz@users.sourceforge.net),
|
||||
rather than directly to the other Mesa developers. I will help you
|
||||
as much as I can. I also monitor the Mesa mailing lists and will
|
||||
answer questions in this area there as well.
|
||||
rather than directly to the other Mesa developers. I will help you as
|
||||
much as I can. I also monitor the Mesa mailing lists and will answer
|
||||
questions in this area there as well.
|
||||
|
||||
|
||||
Karl Schultz
|
||||
|
@@ -1,7 +1,7 @@
|
||||
|
||||
Mesa 6.3 release notes
|
||||
|
||||
month day, 2004
|
||||
July 20, 2005
|
||||
|
||||
PLEASE READ!!!!
|
||||
|
||||
@@ -27,6 +27,10 @@ GL_OES_read_format - allows one to query the fastest glReadPixels format
|
||||
|
||||
GL_ARB_pixel_buffer_object - buffer objects for pixel read/write functions.
|
||||
|
||||
GL_EXT_framebuffer_object - allows render-to-texture and provides a
|
||||
window-system indepedent Pbuffer facility.
|
||||
The Mesa CVS tree contains a couple tests of this extension.
|
||||
|
||||
DirectFB driver, contributed by Claudio Ciccani. See docs/README.directfb
|
||||
for details.
|
||||
|
||||
@@ -60,11 +64,25 @@ contexts so they can't be deleted until they're unbound in _all_ contexts.
|
||||
|
||||
|
||||
|
||||
GL_EXT_framebuffer_object changes
|
||||
---------------------------------
|
||||
|
||||
Implementing this extension involved changing a lot of code (for the better).
|
||||
|
||||
The gl_framebuffer object now a collection of gl_renderbuffer objects.
|
||||
Renderbuffers may store colors, stencil indices, or depth values. The
|
||||
gl_framebuffer and gl_renderbuffer types are object-oriented in design.
|
||||
|
||||
All the old RGB, color index, stencil and depth-related span functions for
|
||||
reading/writing pixels from/to buffers has changed. Now, all pixels are
|
||||
read/written through a set of common renderbuffer functions (methods).
|
||||
|
||||
Most device drivers have been updated for these changes, but some haven't.
|
||||
|
||||
|
||||
To Do before release
|
||||
--------------------
|
||||
Fix dinoshade bug
|
||||
|
||||
To Do (someday) items
|
||||
---------------------
|
||||
Switch to freeglut
|
||||
Increase MAX_DRAWBUFFERS
|
||||
driver hooks for BeginQuery/EndQuery
|
||||
@@ -74,7 +92,7 @@ To Do before release
|
||||
Miscellaneous
|
||||
-------------
|
||||
|
||||
The main/get.c file is now generated with a Python script.
|
||||
The main/get.c file is now generated with a Python script (get_gen.py).
|
||||
|
||||
|
||||
|
||||
@@ -94,4 +112,4 @@ D3D needs updating
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
$Id: RELNOTES-6.3,v 3.8 2005/01/20 04:03:37 brianp Exp $
|
||||
$Id: RELNOTES-6.3,v 3.13 2005/07/21 15:57:29 brianp Exp $
|
||||
|
49
docs/RELNOTES-6.3.1
Normal file
49
docs/RELNOTES-6.3.1
Normal file
@@ -0,0 +1,49 @@
|
||||
|
||||
Mesa 6.3.1 release notes
|
||||
|
||||
July XX, 2005
|
||||
|
||||
PLEASE READ!!!!
|
||||
|
||||
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
Mesa uses an even/odd version number scheme like the Linux kernel.
|
||||
Odd numbered versions (such as 6.3) designate new developmental releases.
|
||||
Even numbered versions (such as 6.2) designate stable releases.
|
||||
|
||||
|
||||
|
||||
DRI drivers
|
||||
-----------
|
||||
|
||||
This release includes the DRI drivers and GLX code for hardware rendering.
|
||||
|
||||
|
||||
|
||||
Bug fixes
|
||||
---------
|
||||
|
||||
Bugs fixed in 6.3.1 are listed in the VERSIONS file.
|
||||
|
||||
|
||||
|
||||
Driver Status
|
||||
---------------------- ---------------------
|
||||
XMesa (Xlib) implements OpenGL 1.5
|
||||
OSMesa (off-screen) implements OpenGL 1.5
|
||||
Glide (3dfx Voodoo1/2) implements OpenGL 1.3
|
||||
SVGA implements OpenGL 1.3
|
||||
Wind River UGL implements OpenGL 1.3
|
||||
Windows/Win32 implements OpenGL 1.5
|
||||
DJGPP implements OpenGL 1.5
|
||||
GGI implements OpenGL 1.3
|
||||
BeOS implements OpenGL 1.5
|
||||
Allegro needs updating
|
||||
D3D needs updating
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
$Id: RELNOTES-6.3.1,v 3.1 2005/07/21 18:45:54 brianp Exp $
|
37
docs/RELNOTES-6.3.2
Normal file
37
docs/RELNOTES-6.3.2
Normal file
@@ -0,0 +1,37 @@
|
||||
|
||||
Mesa 6.3.2 Release Notes
|
||||
|
||||
August 19, 2005
|
||||
|
||||
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
Mesa uses an even/odd version number scheme like the Linux kernel.
|
||||
Odd numbered versions (such as 6.3) designate new developmental releases.
|
||||
Even numbered versions (such as 6.2) designate stable releases.
|
||||
|
||||
|
||||
6.3.2 is primarily a bug-fix release. See the VERSIONS file for details.
|
||||
|
||||
|
||||
|
||||
Driver Status
|
||||
---------------------- ----------------------
|
||||
DRI drivers varies with the driver
|
||||
XMesa (Xlib) implements OpenGL 1.5
|
||||
OSMesa (off-screen) implements OpenGL 1.5
|
||||
Glide (3dfx Voodoo1/2) implements OpenGL 1.3
|
||||
SVGA implements OpenGL 1.3
|
||||
Wind River UGL implements OpenGL 1.3
|
||||
Windows/Win32 implements OpenGL 1.5
|
||||
DJGPP implements OpenGL 1.5
|
||||
GGI implements OpenGL 1.3
|
||||
BeOS implements OpenGL 1.5
|
||||
Allegro needs updating
|
||||
D3D needs updating
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
$Id: RELNOTES-6.3.2,v 3.2 2005/08/19 16:57:50 brianp Exp $
|
50
docs/RELNOTES-6.4
Normal file
50
docs/RELNOTES-6.4
Normal file
@@ -0,0 +1,50 @@
|
||||
|
||||
Mesa 6.4 Release Notes
|
||||
|
||||
October 24, 2005
|
||||
|
||||
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
Mesa uses an even/odd version number scheme like the Linux kernel.
|
||||
Odd numbered versions (such as 6.3) designate new developmental releases.
|
||||
Even numbered versions (such as 6.4) designate stable releases.
|
||||
|
||||
|
||||
6.4 is a bug-fix release. See the VERSIONS file for details.
|
||||
|
||||
|
||||
|
||||
GLUT tarball
|
||||
------------
|
||||
|
||||
Starting with 6.4, the GLUT library sources are distributed in a separate
|
||||
tarball. This was done at the request of Linux distro vendors who prefer
|
||||
to use freeglut.
|
||||
|
||||
|
||||
|
||||
|
||||
Driver Status
|
||||
---------------------- ----------------------
|
||||
DRI drivers varies with the driver
|
||||
XMesa (Xlib) implements OpenGL 1.5
|
||||
OSMesa (off-screen) implements OpenGL 1.5
|
||||
Windows/Win32 implements OpenGL 1.5
|
||||
Glide (3dfx Voodoo1/2) requires updates
|
||||
SVGA requires updates
|
||||
DJGPP requires updates
|
||||
GGI requires updates
|
||||
BeOS requires updates
|
||||
Allegro requires updates
|
||||
D3D requires updates
|
||||
|
||||
The drivers which require updates mostly need to be updated to work
|
||||
with the new gl_renderbuffer / gl_framebuffer infrastructure introduced
|
||||
in Mesa 6.3.
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
$Id: RELNOTES-6.4,v 1.1.2.5 2005/10/24 23:12:29 brianp Exp $
|
@@ -1308,24 +1308,100 @@ Mesa Version History
|
||||
- glReadPixels from a clipped front color buffer didn't always work
|
||||
- glTexImage didn't accept GL_RED/GREEN/BLUE as the format
|
||||
- Attempting queries/accesses of VBO 0 weren't detected as errors
|
||||
- paletted textures failed if the palette had fewer that 256 entries
|
||||
- paletted textures failed if the palette had fewer than 256 entries
|
||||
Changes:
|
||||
- fixed a bunch of compiler warnings found with gcc 3.4
|
||||
- bug reports should to go bugzilla.freedesktop.org
|
||||
|
||||
|
||||
6.3 Month day, 2004
|
||||
6.3 July 20, 2005
|
||||
New:
|
||||
- GL_EXT_framebuffer_object extension
|
||||
- GL_ARB_draw_buffers extension
|
||||
- GL_ARB_pixel_buffer_object extension
|
||||
- GL_OES_read_format extension (Ian Romanick)
|
||||
- DirectFB driver (Claudio Ciccani)
|
||||
- x86_64 vertex transformation code (Mikko T.)
|
||||
- Updated GL/glext.h to version 29
|
||||
Changes:
|
||||
- added -stereo option for glxgears demo (Jacek Rosik)
|
||||
- updated the PBuffer demo code in xdemos/ directory
|
||||
- glDeleteTextures/Programs/Buffers() now makes the object ID
|
||||
available for immediate re-use
|
||||
- assorted 64-bit clean-ups fixes (x86_64 and Win64)
|
||||
- lots of internal changes for GL_EXT_framebuffer_object
|
||||
Bug fixes:
|
||||
- some functions didn't support PBO functionality
|
||||
- glGetTexImage didn't convert color index images to RGBA as required
|
||||
- fragment program texcoords were sometimes wrong for points and lines
|
||||
- fixed problem with negative dot product in arbfplight, fplight demos
|
||||
- fixed bug in perspective correction of antialiased, textured lines
|
||||
- querying GL_POST_CONVOLUTION_ALPHA_BIAS_EXT returned wrong value
|
||||
- fixed a couple per-pixel fog bugs (Soju Matsumoto)
|
||||
- glGetBooleanv(GL_FRAGMENT_PROGRAM_BINDING_NV) was broken
|
||||
- fixed float parsing bug in ARB frag/vert programs (bug 2520)
|
||||
- XMesaGetDepthBuffer() returned incorrect value for bytesPerValue
|
||||
- GL_COLOR_MATERIAL with glColor3 didn't properly set diffuse alpha
|
||||
- glXChooseFBConfig() crashed if attribList pointer was NULL
|
||||
- program state.light[n].spot.direction.w was wrong value (bug 3083)
|
||||
- fragment program fog option required glEnable(GL_FOG) - wrong.
|
||||
- glColorTable() could produce a Mesa implementation error (bug 3135)
|
||||
- RasterPos could get corrupted by color index rendering path
|
||||
- Removed bad XTranslateCoordinates call when rendering to Pixmaps
|
||||
- glPopAttrib() didn't properly restore GL_TEXTURE_GEN enable state
|
||||
- fixed a few Darwin compilation problems
|
||||
|
||||
|
||||
6.3.1
|
||||
This was an intermediate release for X.org which wasn't otherwise released.
|
||||
|
||||
|
||||
6.3.2 August 19, 2005
|
||||
New:
|
||||
- The distribution now includes the DRI drivers and GLX code
|
||||
Changes:
|
||||
- Made the DRI "new" driver interface standard, remove old code
|
||||
Bug fixes:
|
||||
- GL_ARB_vertex/fragment_shader were mistakenly listed in the
|
||||
extensions string
|
||||
- negative relative addressing in vertex programs was broken
|
||||
- update/fix SPARC assembly code for vertex transformation
|
||||
- fixed memory leak when freeing GLX drawables/renderbuffers
|
||||
- fixed display list memory leak
|
||||
- the GL_PIXEL_MAP_I_TO_I table is now floating point, not integer
|
||||
- wglGetProcAddress() didn't handle wgl-functions
|
||||
- fixed glxext.h cross-compile issue (Colin Harrison)
|
||||
- assorted DRI driver fixes
|
||||
|
||||
|
||||
6.4 October 24, 2005
|
||||
New:
|
||||
- Added a fast XOR line drawing function in Xlib driver
|
||||
- Added support for GL_ARB_texture_mirrored_repeat to savage
|
||||
driver (supported only on Savage4 hardware).
|
||||
Changes:
|
||||
- Mesa now packaged in three parts: Library, Demos and GLUT
|
||||
Bug fixes:
|
||||
- GLX_X_RENDERABLE token wasn't accepted by glXChooseFBConfig
|
||||
- Some files were present multiple times in the 6.3.2 tarballs
|
||||
- r200_vtxtmp_x86.S file was missing from 6.3.2 tarball (bug 4207)
|
||||
- glxgears_fbconfig demo didn't work (bug 4237)
|
||||
- fixed bug when bilinear sampling 2d textures with borders
|
||||
- glXCreatePbuffer() could segfault instead of returning 0 (bug 4235)
|
||||
- fixed undefined frexp and rand in X.org libGLcore.a (bug 4242)
|
||||
- fixed a few problems with proxy color tables (bug 4270)
|
||||
- fixed precision problem in Z clearing (bug 4395)
|
||||
- glBitmap, glDraw/CopyPixels mistakenly generated selection hits
|
||||
- fixed potential segfault caused by reading pixels outside
|
||||
of renderbuffer bounds
|
||||
- glGetTexLevelParameter didn't accept GL_TEXTURE_DEPTH_SIZE_ARB
|
||||
- fixed memory corruption bug involving software alpha buffers
|
||||
- glReadPixels clipped by window bounds was sometimes broken
|
||||
- glDraw/CopyPixels of stencil data ignored the stencil write mask
|
||||
- glReadPixels from a texture bound to a framebuffer object didn't work
|
||||
- glIsRender/FramebufferEXT weren't totally correct
|
||||
- fixed a number of point size attenuation/fade bugs
|
||||
- fixed glFogCoord bug 4729
|
||||
- GLX encoding for transpose matrix functions was broken
|
||||
- fixed broken fragment program KIL and SWZ instructions
|
||||
- fragment programs that wrote result.depth.z didn't work
|
||||
|
@@ -1,15 +1,27 @@
|
||||
<HTML>
|
||||
|
||||
<title>Banner</title>
|
||||
|
||||
|
||||
<body text="#ffffff" bgcolor="#aa4444">
|
||||
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<title>Banner</title>
|
||||
</head>
|
||||
<body bgcolor="#000000" text="#ffffff">
|
||||
<center>
|
||||
<p>
|
||||
<font size="5">The Mesa 3D Graphics Library</font>
|
||||
</p>
|
||||
<table style="width: 95%; text-align: left;" border="0" cellpadding="2"
|
||||
cellspacing="2">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="vertical-align: top;">
|
||||
<p><img src="gears.png"> </p>
|
||||
</td>
|
||||
<td style="text-align: center;"><font face="sans-serif" size="5">The
|
||||
Mesa 3D Graphics Library</font></td>
|
||||
<td style="vertical-align: top; text-align: right;">
|
||||
<p><img src="gears.png"> </p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p><font face="sans-serif" size="5"><br>
|
||||
</font></p>
|
||||
</center>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
@@ -4,20 +4,18 @@
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="mesa.css"></head>
|
||||
|
||||
<body bgcolor="#119955">
|
||||
|
||||
<!--Override a few values from the style sheet: -->
|
||||
<style>
|
||||
<!--
|
||||
body {
|
||||
background-color: #119955;
|
||||
color: white;
|
||||
background-color: #cccccc;
|
||||
color: black;
|
||||
}
|
||||
a:link {
|
||||
color: #fff;
|
||||
color: #000;
|
||||
}
|
||||
a:visited {
|
||||
color: #ccc;
|
||||
color: #000;
|
||||
}
|
||||
-->
|
||||
</style>
|
||||
@@ -39,7 +37,6 @@ a:visited {
|
||||
|
||||
<b>Download / Install</b>
|
||||
<ul>
|
||||
<li><a href="http://www.sourceforge.net/projects/mesa3d" target="_parent">Stable Release (6.2.1)</a>
|
||||
<li><a href="download.html" target="MainFrame">Downloading/Unpacking</a>
|
||||
<li><a href="install.html" target="MainFrame">Compilation/Installation</a>
|
||||
<li><a href="glu.html" target="MainFrame">SGI's GLU</a>
|
||||
@@ -83,6 +80,7 @@ a:visited {
|
||||
<ul>
|
||||
<li><a href="http://www.opengl.org" target="_parent">OpenGL website</a>
|
||||
<li><a href="http://dri.sourceforge.net" target="_parent">DRI website</a>
|
||||
<li><a href="http://www.freedesktop.org" target="_parent">freedesktop.org</a>
|
||||
<li><a href="games.html" target="MainFrame">Games and Entertainment</a>
|
||||
<li><a href="libraries.html" target="MainFrame">Libraries and Toolkits</a>
|
||||
<li><a href="modelers.html" target="MainFrame">Modeling and Rendering</a>
|
||||
@@ -91,9 +89,13 @@ a:visited {
|
||||
<li><a href="demos.html" target="MainFrame">Demos / other</a>
|
||||
</ul>
|
||||
|
||||
<b>Hosted by:</b>
|
||||
<br>
|
||||
<blockquote>
|
||||
<A HREF="http://sourceforge.net"
|
||||
target="_parent"><IMG SRC="http://sourceforge.net/sflogo.php?group_id=3&type=1"
|
||||
WIDTH="88" HEIGHT="31" ALIGN="BOTTOM" ALT="Sourceforge.net" BORDER="0"></A>
|
||||
</blockquote>
|
||||
|
||||
</body>
|
||||
</html>
|
@@ -67,9 +67,11 @@ Here are the basic instructions for Unix systems:
|
||||
Mesa developers working with the Mesa CVS repository need to first
|
||||
have an account on <a href="http://www.freedesktop.org" target="_parent">
|
||||
freedesktop.org</a>.
|
||||
You can request an account from either
|
||||
<a href="mailto:dstone@trinity.unimelb.edu.au">Daniel Stone</a> or
|
||||
<a href="mailto:eta@lclark.edu">Eric Anholt</a>.
|
||||
To get an account, please ask Brian or the other Mesa developers for
|
||||
permission.
|
||||
Then, if there are no objections, follow this
|
||||
<a href="http://www.freedesktop.org/wiki/AccountRequests" target="_parent">
|
||||
procedure</a>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
|
@@ -6,101 +6,125 @@
|
||||
|
||||
<BODY>
|
||||
|
||||
<H1>Downloading / Unpacking</H1>
|
||||
<H1>Downloading</H1>
|
||||
|
||||
<p>
|
||||
Mesa can be downloaded from the
|
||||
<a href="http://www.sourceforge.net/projects/mesa3d" target="_parent">
|
||||
SourceForge download area</A>.
|
||||
Current stable release: <b>6.4</b>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Since version 2.3, Mesa is distributed in two pieces: main library code
|
||||
and demos. If you're upgrading from a previous version of Mesa or you're not
|
||||
interested in the demos you can just download the core Mesa archive file.
|
||||
Primary download site:
|
||||
<a href="http://sourceforge.net/project/showfiles.php?group_id=3"
|
||||
target="_parent">SourceForge</a>
|
||||
</p>
|
||||
|
||||
|
||||
<p>
|
||||
Mesa is distributed in several parts:
|
||||
</p>
|
||||
<ul>
|
||||
<li><b>MesaLib-x.y.z</b> - the main Mesa library source code, drivers
|
||||
and documentation.
|
||||
</li>
|
||||
<li><b>MesaDemos-x.y.z</b> - OpenGL demonstration and test programs.
|
||||
Most of the programs require GLUT (either the
|
||||
<a href="http://www.opengl.org/resources/libraries/glut.html"
|
||||
target="_parent">original GLUT by Mark Kilgard</a> or
|
||||
<a href="http://freeglut.sourceforge.net" target="_parent">freeglut</a> or
|
||||
<a href="http://freeglut.sourceforge.net" target="_parent">OpenGLUT</a>).
|
||||
</li>
|
||||
<li><b>MesaGLUT-x.y.z</b> - Mark Kilgard's GLUT, easily compiled and used
|
||||
with Mesa. Plus, other implementation of GLUT for DOS, OS/2, BeOS, etc.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
If you're not interested in running the demos, you'll only need the first
|
||||
package.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Mesa is available in at least three archive formats:
|
||||
The packages are available in .tar.gz, .tar.bz2 and .zip formats.
|
||||
Other organizations might offer additional package formats.
|
||||
</p>
|
||||
|
||||
<H1>Unpacking</H1>
|
||||
|
||||
<p>
|
||||
All the packages should be in the same directory prior to unpacking.
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>To unpack .tar.gz files:
|
||||
<pre>
|
||||
1. GNU zip/tar
|
||||
|
||||
Download MesaLib-X.Y.tar.gz and optionally MesaDemos-X.Y.tar.gz
|
||||
Unpack with:
|
||||
gzcat MesaLib-X.Y.tar.gz | tar xf -
|
||||
gzcat MesaDemos-X.Y.tar.gz | tar xf -
|
||||
or
|
||||
gunzip MesaLib-X.Y.tar.gz ; tar xf MesaLib-X.Y.tar
|
||||
gunzip MesaDemos-X.Y.tar.gz ; tar xf MesaLib-X.Y.tar
|
||||
or
|
||||
tar zxf MesaLib-X.Y.tar.gz
|
||||
tar zxf MesaDemos-X.Y.tar.gz
|
||||
|
||||
If you don't have gzcat try zcat instead.
|
||||
|
||||
2. Unix compressed/tar
|
||||
|
||||
Download MesaLib-X.Y.tar.Z and optionally MesaDemos-X.Y.tar.Z
|
||||
Unpack with:
|
||||
zcat MesaLib-X.Y.tar.Z | tar xf -
|
||||
zcat MesaDemos-X.Y.tar.Z | tar xf -
|
||||
|
||||
3. ZIP format
|
||||
|
||||
Download MesaLib-X.Y.zip and optionally MesaDemos-X.Y.zip
|
||||
Unpack with:
|
||||
unzip MesaLib-X.Y.zip
|
||||
unzip MesaDemos-X.Y.zip
|
||||
tar zxf MesaLib-X.Y.tar.gz
|
||||
tar zxf MesaDemos-X.Y.tar.gz
|
||||
tar zxf MesaGLUT-X.Y.tar.gz
|
||||
</pre>
|
||||
or
|
||||
<pre>
|
||||
gzcat MesaLib-X.Y.tar.gz | tar xf -
|
||||
gzcat MesaDemos-X.Y.tar.gz | tar xf -
|
||||
gzcat MesaGLUT-X.Y.tar.gz | tar xf -
|
||||
</pre>
|
||||
or
|
||||
<pre>
|
||||
gunzip MesaLib-X.Y.tar.gz ; tar xf MesaLib-X.Y.tar
|
||||
gunzip MesaDemos-X.Y.tar.gz ; tar xf MesaDemos-X.Y.tar
|
||||
gunzip MesaGLUT-X.Y.tar.gz ; tar xf MesaGLUT-X.Y.tar
|
||||
</pre>
|
||||
<li>To unpack .tar.bz2 files:
|
||||
<pre>
|
||||
bunzip2 -c MesaLib-X.Y.tar.gz | tar xf -
|
||||
bunzip2 -c MesaDemos-X.Y.tar.gz | tar xf -
|
||||
bunzip2 -c MesaGLUT-X.Y.tar.gz | tar xf -
|
||||
</pre>
|
||||
<li>To unpack .zip files:
|
||||
<pre>
|
||||
unzip MesaLib-X.Y.zip
|
||||
unzip MesaDemos-X.Y.zip
|
||||
unzip MesaGLUT-X.Y.zip
|
||||
</pre>
|
||||
</ul>
|
||||
|
||||
|
||||
<h1>Contents</h1>
|
||||
|
||||
<p>
|
||||
After unpacking you'll have these directories (and more):
|
||||
After unpacking you'll have these directories:
|
||||
</p>
|
||||
<pre>
|
||||
Makefile.X11 - top-level Makefile for X11-based systems
|
||||
Make-config - system configurations used by the Makefile.X11
|
||||
Makefile - top-level Makefile for most systems
|
||||
configs/ - makefile parameter files for various systems
|
||||
include/ - GL header (include) files
|
||||
bin/ - shell scripts for making shared libraries, etc
|
||||
lib/ - final client libraries, created during compilation
|
||||
docs/ - documentation
|
||||
src/ - source code for libraries
|
||||
src/mesa - sources for the main Mesa library and device drivers
|
||||
src/glu - libGLU source code
|
||||
src/glw - Xt/Motif/OpenGL widget code
|
||||
</pre>
|
||||
|
||||
If you downloaded and unpacked the MesaDemos.X.Y package:
|
||||
|
||||
and if you downloaded and unpacked the MesaDemos.X.Y archive:
|
||||
|
||||
src/glut - GLUT source code
|
||||
progs/ - OpenGL programs
|
||||
<pre>
|
||||
progs/demos - original Mesa demos
|
||||
progs/xdemos - GLX OpenGL/Mesa demos
|
||||
progs/redbook - examples from the OpenGL Programming Guide
|
||||
progs/samples - examples from SGI
|
||||
progs/images/ - image files
|
||||
</pre>
|
||||
|
||||
If you downloaded and unpacked the MesaGLUT.X.Y package:
|
||||
<pre>
|
||||
src/glut - GLUT library source code
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
Proceed to <a href="install.html">compilation and installation
|
||||
Proceed to the <a href="install.html">compilation and installation
|
||||
instructions</a>.
|
||||
</p>
|
||||
|
||||
<H1>GLUT</H1>
|
||||
|
||||
<p>
|
||||
Mesa 2.5 and later includes Mark Kilgard's GLUT library (GL Utility Toolkit).
|
||||
GLUT is built automatically on systems which support it.
|
||||
</p>
|
||||
<p>
|
||||
The GLUT tests, demos, examples, etc are not included, just the main library.
|
||||
To obtain the latest complete release of GLUT please visit the
|
||||
<a href="http://www.opengl.org/resources/libraries/glut.html"
|
||||
target ="_parent">GLUT page</a> on www.opengl.org.
|
||||
</p>
|
||||
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
@@ -16,7 +16,9 @@ Mesa supports the following environment variables:
|
||||
<li>MESA_NO_MMX - if set, disables Intel MMX optimizations
|
||||
<li>MESA_NO_3DNOW - if set, disables AMD 3DNow! optimizations
|
||||
<li>MESA_NO_SSE - if set, disables Intel SSE optimizations
|
||||
<li>MESA_DEBUG - if set, error messages are printed to stderr
|
||||
<li>MESA_DEBUG - if set, error messages are printed to stderr.
|
||||
If the value of MESA_DEBUG is "FP" floating point arithmetic errors will
|
||||
generate exceptions.
|
||||
<li>MESA_NO_DITHER - if set, disables dithering, overriding glEnable(GL_DITHER)
|
||||
</ul>
|
||||
|
||||
|
@@ -9,7 +9,7 @@
|
||||
|
||||
<center>
|
||||
<h1>Mesa Frequently Asked Questions</h1>
|
||||
Last updated: 17 November 2004
|
||||
Last updated: 21 October 2004
|
||||
</center>
|
||||
|
||||
<br>
|
||||
@@ -39,14 +39,14 @@ See the </a><a href="http://www.opengl.org/">OpenGL website</a> for more
|
||||
information.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 5.x supports the OpenGL 1.4 specification.
|
||||
Mesa 6.x supports the OpenGL 1.5 specification.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>1.2 Does Mesa support/use graphics hardware?</h2>
|
||||
<p>
|
||||
Yes. Specifically, Mesa serves as the OpenGL core for the open-source
|
||||
XFree86/DRI OpenGL drivers. See the <a href="http://dri.sf.net/">DRI
|
||||
Yes. Specifically, Mesa serves as the OpenGL core for the open-source DRI
|
||||
drivers for XFree86/X.org. See the <a href="http://dri.sf.net/">DRI
|
||||
website</a> for more information.
|
||||
</p>
|
||||
<p>
|
||||
@@ -62,7 +62,8 @@ operating systems today.
|
||||
Still, Mesa serves at least these purposes:
|
||||
</p>
|
||||
<ul>
|
||||
<li>Mesa is used as the core of the open-source XFree86/DRI hardware drivers.
|
||||
<li>Mesa is used as the core of the open-source XFree86/X.org DRI
|
||||
hardware drivers.
|
||||
</li>
|
||||
<li>Mesa is quite portable and allows OpenGL to be used on systems
|
||||
that have no other OpenGL solution.
|
||||
@@ -86,8 +87,8 @@ Still, Mesa serves at least these purposes:
|
||||
<h2>1.4 What's the difference between"Stand-Alone" Mesa and the DRI drivers?</h2>
|
||||
<p>
|
||||
<em>Stand-alone Mesa</em> is the original incarnation of Mesa.
|
||||
On systems running the X Window System, it does all its rendering through
|
||||
the Xlib API.
|
||||
On systems running the X Window System it does all its rendering through
|
||||
the Xlib API:
|
||||
<ul>
|
||||
<li>The GLX API is supported, but it's really just an emulation of the
|
||||
real thing.
|
||||
@@ -116,21 +117,10 @@ within the DRI (Direct Rendering Infrastructure):
|
||||
|
||||
<h2>1.5 How do I upgrade my DRI installation to use a new Mesa release?</h2>
|
||||
<p>
|
||||
You don't! A copy of the Mesa source code lives inside the XFree86/DRI source
|
||||
tree and gets compiled into the individual DRI driver modules.
|
||||
If you try to install Mesa over an XFree86/DRI installation, you'll lose
|
||||
hardware rendering (because stand-alone Mesa's libGL.so is different than
|
||||
the XFree86 libGL.so).
|
||||
</p>
|
||||
<p>
|
||||
The DRI developers will incorporate the latest release of Mesa into the
|
||||
DRI drivers when the time is right.
|
||||
</p>
|
||||
<p>
|
||||
To upgrade, either look for a new release of <a href="http://www.xfree86.org"
|
||||
target="_parent">XFree86</a> or visit the
|
||||
<a href="http://dri.sf.net" target="_parent">DRI website</a> to see
|
||||
if there's newer drivers.
|
||||
This wasn't easy in the past.
|
||||
Now, the DRI drivers are included in the Mesa tree and can be compiled
|
||||
separately from the X server.
|
||||
Just follow the Mesa <a href="install.html">compilation instructions</a>.
|
||||
</p>
|
||||
|
||||
|
||||
@@ -201,7 +191,7 @@ Mesa no longer supports GNU autoconf/automake. Why?
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
Now, Mesa again uses a conventional Makefile system (as it did originally).
|
||||
Now Mesa again uses a conventional Makefile system (as it did originally).
|
||||
Basically, each Makefile in the tree includes one of the configuration
|
||||
files from the config/ directory.
|
||||
The config files specify all the variables for a variety of popular systems.
|
||||
@@ -219,9 +209,9 @@ Mesa's not the solution.
|
||||
|
||||
<h2><a name="part2">2.4 Where is the GLUT library?</a></h2>
|
||||
<p>
|
||||
<a name="part2">GLUT (OpenGL Utility Toolkit) is in the separate MesaDemos-x.y.z.tar.gz file.
|
||||
If you don't already have GLUT installed, you should grab the MesaDemos
|
||||
package and unpack it before compiling Mesa.
|
||||
<a name="part2">GLUT (OpenGL Utility Toolkit) is in the separate MesaGLUT-x.y.z.tar.gz file.
|
||||
If you don't already have GLUT installed, you should grab the MesaGLUT
|
||||
package and compile it with the rest of Mesa.
|
||||
</a></p>
|
||||
|
||||
|
||||
@@ -250,7 +240,7 @@ Mesa version number.
|
||||
version number.
|
||||
</li></ul>
|
||||
<p>
|
||||
After installing XFree86 and the DRI drivers, some of these files
|
||||
After installing XFree86/X.org and the DRI drivers, some of these files
|
||||
may be symlinks into the /usr/X11R6/ tree.
|
||||
</p>
|
||||
<p>
|
||||
|
BIN
docs/gears.png
Normal file
BIN
docs/gears.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.6 KiB |
@@ -24,7 +24,7 @@ We're no longer developing the original Mesa GLU library.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The new SI GLU library code is included in the Mesa package.
|
||||
The SI GLU library code is included in the Mesa distribution.
|
||||
You don't have to download it separately.
|
||||
</p>
|
||||
|
||||
|
@@ -9,54 +9,64 @@
|
||||
<H1>Help Wanted</H1>
|
||||
|
||||
<p>
|
||||
We can always use more help with the Mesa project. Here are some
|
||||
specific areas. If you think you can help out, post to the mesa3d-dev
|
||||
mailing list.
|
||||
We can always use more help with the Mesa project.
|
||||
Here are some specific ideas and areas where help would be appreciated:
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>Windows 98/NT build/driver maintenance and testing (Karl Schultz has been
|
||||
doing a great job of this lately)
|
||||
<li>DOS/DJGPP build/driver maintenance and testing
|
||||
<li>GGI driver/build maintenance and testing
|
||||
<li>GNU autoconfig/libtool maintenance (esp. on non-Linux systems)
|
||||
<li>x86, SSE, 3DNow! and SPARC assembly language programming
|
||||
<li>Implement WGL font functions in the WGL interface code
|
||||
<li>Implement off-screen bitmap rendering support in the WGL interface code
|
||||
<li>Help with writing/testing the new NV_fragment_program extension code
|
||||
<li>Implement the ARB_vertex/fragment extensions
|
||||
<li>Download/compile/test Mesa and report any bugs found
|
||||
</ul>
|
||||
<ol>
|
||||
<li><p>
|
||||
Generate the src/mesa/main/enums.c file with a Python script which
|
||||
uses the gl_API.xml file.
|
||||
</p>
|
||||
<li><p>
|
||||
Try to auto-generate the display list "save" functions seen in dlist.c
|
||||
using a Python script and the gl_API.xml file.
|
||||
The gl_API.xml file will probably need a new tag to indicate whether or
|
||||
not each function gets compiled into display lists.
|
||||
</p>
|
||||
<li><p>
|
||||
Maintenance of assembly language files on Linux, Windows and SPARC systems.
|
||||
</p>
|
||||
<li><p>
|
||||
Help to incorporate the 3Dlabs' shading language compiler for OpenGL 2.0.
|
||||
</p>
|
||||
<li><p>
|
||||
Implement assembly language (SSE/MMX) code generation for
|
||||
vertex/fragment programs.
|
||||
</p>
|
||||
<li><p>
|
||||
Windows 98/NT driver building, maintenance and testing
|
||||
(Karl Schultz has been doing a great job of this lately).
|
||||
</p>
|
||||
<li><p>
|
||||
Maintenance and testing of various drivers, such as DOS/DJGPP, GGI, etc.
|
||||
</p>
|
||||
<li><p>
|
||||
Write new tests for Glean.
|
||||
</p>
|
||||
</ol>
|
||||
|
||||
|
||||
<p>
|
||||
If you want to help with Mesa, first join the Mesa developer's
|
||||
mailing list. Then post a message explaining what you might like
|
||||
to help with. The Mesa web page has a list of a few work items
|
||||
which you may consider.
|
||||
mailing list.
|
||||
Then post a message to propose what you want to do, just to make sure
|
||||
there's no issues.
|
||||
</p>
|
||||
|
||||
</p>
|
||||
Anyone is welcome to contribute code to the Mesa project, provided you
|
||||
agree to the copyright terms of the relevant code. See the COPYRIGHT
|
||||
file.
|
||||
Anyone is welcome to contribute code to the Mesa project.
|
||||
By doing so, it's assumed that you agree to the code's licensing terms.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Unfortunately, all the easy work in Mesa was done years ago. Nowadays, the
|
||||
work is rather complicated and not suited to beginners.
|
||||
</p>
|
||||
Finally:
|
||||
<p>
|
||||
|
||||
<p>
|
||||
If you're contribution code to the Mesa library itself:
|
||||
<p>
|
||||
<ol>
|
||||
<li>Try to write clean code (uniform indentation, comments, meaningful
|
||||
identifiers, etc). It must be readable and maintainable!
|
||||
|
||||
<li>Test your code. On several occations I've incorporated code from
|
||||
users which later turned out to have bugs. Now, I'm pretty hesitant
|
||||
to use code which doesn't look good.
|
||||
<li>Try to write high-quality code that follows the existing style.
|
||||
<li>Use uniform indentation, write comments, use meaningful identifiers, etc.
|
||||
<li>Test your code thoroughly. Include test programs if appropriate.
|
||||
</ol>
|
||||
|
||||
|
||||
|
@@ -1,20 +1,29 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
|
||||
<html>
|
||||
|
||||
<title>Mesa Home Page</title></head>
|
||||
<head>
|
||||
<title>Mesa Home Page</title>
|
||||
</head>
|
||||
|
||||
<frameset rows="80,*" border="0" frameborder="yes">
|
||||
|
||||
<frameset rows="50,100% " border="1" framespacing="1" frameborder="yes">
|
||||
<frame src="banner.html" name="BannerFrame" scrolling="no" marginwidth="1" marginheight="1" resize="">
|
||||
<frameset cols="28%,72% " border="1" framespacing="1" frameborder="yes">
|
||||
<frame src="contents.html" name="ContentsFrame" marginwidth="2" marginheight="1" resize="">
|
||||
<frame src="news.html" name="MainFrame" marginwidth="3" marginheight="1" resize="">
|
||||
</frameset>
|
||||
</frameset>
|
||||
<frame src="banner.html" name="BannerFrame"
|
||||
scrolling="no" marginwidth="1" marginheight="1">
|
||||
|
||||
<frameset cols="28%,72% " border="1" frameborder="yes">
|
||||
|
||||
<frame src="contents.html" name="ContentsFrame"
|
||||
marginwidth="2" marginheight="1" noresize="noresize">
|
||||
|
||||
<frame src="news.html" name="MainFrame"
|
||||
marginwidth="3" marginheight="1" noresize="noresize">
|
||||
|
||||
</frameset>
|
||||
|
||||
<noframes>
|
||||
|
||||
<body>
|
||||
</body>
|
||||
|
||||
<p>Sorry, this site requires frame support</p>
|
||||
</noframes>
|
||||
</html>
|
||||
|
||||
</frameset>
|
||||
|
||||
</html>
|
||||
|
@@ -21,53 +21,77 @@
|
||||
<a name="unix-x11">
|
||||
<H2>1. Unix/X11 Compilation and Installation</H1>
|
||||
|
||||
<p>
|
||||
Mesa uses a rather conventional Makefile system.
|
||||
A GNU autoconf/automake system used to be included, but was discarded
|
||||
in Mesa 5.1 because:
|
||||
</p>
|
||||
<ul>
|
||||
<li>It seldom worked on IRIX, Solaris, AIX, etc.
|
||||
<li>It was very compilicated
|
||||
<li>Nobody maintained it
|
||||
<li>libtool was just too weird
|
||||
</ul>
|
||||
<p>
|
||||
If someone strongly feels that Mesa should have a autoconf/automake
|
||||
system and wants to contribute one and maintain it, we'll consider
|
||||
adding it again.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
In Mesa 6.1 we modified the conventional Makefile system.
|
||||
Instead of specifying all the various system configurations in the
|
||||
Make-config file, there's a directory named <code>configs/</code> which
|
||||
has an individual file for each configuration.
|
||||
One of the configs gets copied to <code>configs/current</code>, which
|
||||
is then included by all Makefiles.
|
||||
</p>
|
||||
|
||||
|
||||
<h3>1.1 Compilation</h3>
|
||||
|
||||
<p>
|
||||
Note: if you've obtained Mesa through CVS, do this first:
|
||||
Mesa may be compiled in several different ways:
|
||||
</p>
|
||||
<pre>
|
||||
cd Mesa
|
||||
chmod a+x bin/mklib
|
||||
</pre>
|
||||
|
||||
<ul>
|
||||
<li><b><em>Stand-alone/Xlib mode</em></b> - Mesa is compiled as
|
||||
a software renderer using Xlib to do all rendering.
|
||||
libGL.so is a self-contained rendering library.
|
||||
<p>
|
||||
Just type <b>make</b> in the top-level directory.
|
||||
To compile stand-alone Mesa type <b>make</b> in the top-level directory.
|
||||
You'll see a list of supported system configurations.
|
||||
Choose one from the list (such as linux-x86), and type:
|
||||
</p>
|
||||
<pre>
|
||||
make linux-x86
|
||||
</pre>
|
||||
<p>This will produce libGL.so and several other libraries</p>
|
||||
</li>
|
||||
|
||||
<li><b><em>DRI/accelerated</em></b> - The DRI hardware drivers (for ATI,
|
||||
Intel, Matrox, etc) are built.
|
||||
libGL.so implements the GLX extension and dynamically loads the DRI drivers.
|
||||
<p>
|
||||
If you want to rebuild for a different configuration run
|
||||
To build the DRI drivers you'll first need to have the DRM (Direct
|
||||
Rendering Manager) kernel drivers and header files.
|
||||
They're available from the <a href="http://dri.sf.net/" target="_parent">DRI</a> project.
|
||||
</p>
|
||||
<p>
|
||||
You can get them from CVS by doing:
|
||||
<pre>
|
||||
cvs -d:pserver:anonymous@pds.freedesktop.org:/cvs/dri login
|
||||
(hit enter when prompted for a password)
|
||||
cvs -z3 -d:pserver:anonymous@pdx.freedesktop.org:/cvs/dri co drm
|
||||
</pre>
|
||||
<p>
|
||||
Make note of the directory in which the drm files are placed.
|
||||
</p>
|
||||
<p>
|
||||
See the <a href="http://dri.freedesktop.org/wiki/Building" target="_parent">
|
||||
DRI Building Instructions</a> for the steps to build the DRM modules.
|
||||
</p>
|
||||
<p>
|
||||
Next, in the <code>Mesa-x.y.z/configs/default</code> file, set the
|
||||
<code>DRM_SOURCE_PATH</code> variable to indicate where the DRM files
|
||||
are located.
|
||||
</p>
|
||||
<p>
|
||||
Now build Mesa and the DRI drivers by running
|
||||
</p>
|
||||
<pre>
|
||||
make linux-dri
|
||||
</pre>
|
||||
<p>
|
||||
There are also <code>linux-dri-x86</code>, <code>linux-dri-x86-64</code>,
|
||||
and <code>linux-ppc</code> configurations, optimized for those architectures.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Finally, you'll need a DRI-enabled X server from
|
||||
<a href="http://freedesktop.org/wiki/Software_2fXserver" target="_parent">
|
||||
X.org</a> or <a href="http://www.xfree86.org" target="_parent">XFree86</a>.
|
||||
Visit those projects' home pages for more information.
|
||||
</p>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<p>
|
||||
Later, if you want to rebuild for a different configuration run
|
||||
<code>make realclean</code> before rebuilding.
|
||||
</p>
|
||||
|
||||
@@ -75,7 +99,8 @@ If you want to rebuild for a different configuration run
|
||||
<h3>1.2 The libraries</h3>
|
||||
|
||||
<p>
|
||||
When compilation has finished, look in the top-level <b>lib/</b> directory.
|
||||
When compilation has finished, look in the top-level <code>lib/</code>
|
||||
directory.
|
||||
You'll see a set of library files similar to this:
|
||||
</p>
|
||||
<pre>
|
||||
@@ -108,6 +133,23 @@ lrwxrwxrwx 1 brian users 23 Mar 26 07:53 libOSMesa.so.6 -> libOSM
|
||||
<b>libOSMesa</b> is the OSMesa (Off-Screen) interface library.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
If you built the DRI hardware drivers, you'll also see the DRI drivers:
|
||||
</p>
|
||||
<pre>
|
||||
-rwxr-xr-x 1 brian users 11320803 Jul 21 12:11 mach64_dri.so
|
||||
-rwxr-xr-x 1 brian users 11418014 Jul 21 12:12 mga_dri.so
|
||||
-rwxr-xr-x 1 brian users 11064426 Jul 21 12:12 r128_dri.so
|
||||
-rwxr-xr-x 1 brian users 11849858 Jul 21 12:12 r200_dri.so
|
||||
-rwxr-xr-x 1 brian users 11757388 Jul 21 12:12 radeon_dri.so
|
||||
-rwxr-xr-x 1 brian users 11232304 Jul 21 12:13 s3v_dri.so
|
||||
-rwxr-xr-x 1 brian users 11062970 Jul 21 12:13 savage_dri.so
|
||||
-rwxr-xr-x 1 brian users 11214212 Jul 21 12:13 sis_dri.so
|
||||
-rwxr-xr-x 1 brian users 11368736 Jul 21 12:13 tdfx_dri.so
|
||||
-rwxr-xr-x 1 brian users 10598868 Jul 21 12:13 trident_dri.so
|
||||
-rwxr-xr-x 1 brian users 10997120 Jul 21 12:13 unichrome_dri.so
|
||||
</pre>
|
||||
|
||||
|
||||
<h3>1.3 Running the demos</h3>
|
||||
|
||||
|
@@ -82,7 +82,7 @@ my work hours at the Space Science and Engineering Center at the University
|
||||
of Wisconsin in Madison. My supervisor, Bill Hibbard, lets me do this because
|
||||
Mesa is now being using for the <a href="http://www.ssec.wisc.edu/%7Ebillh/vis.html" target="_parent">Vis5D</a> project.
|
||||
</p><p>
|
||||
October 1996: Mesa 2.0 is released. It implementes the OpenGL 1.1 specification.
|
||||
October 1996: Mesa 2.0 is released. It implements the OpenGL 1.1 specification.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
@@ -134,8 +134,8 @@ GL_ARB_fragment_program extensions.
|
||||
|
||||
|
||||
<p>
|
||||
Ongoing: Mesa is used as the core of many hardware OpenGL drivers for XFree86
|
||||
within the
|
||||
Ongoing: Mesa is used as the core of many hardware OpenGL drivers for
|
||||
the XFree86 X.org X servers within the
|
||||
<A href="http://dri.sourceforge.net/" target="_parent">DRI project</A>.
|
||||
I continue to enhance Mesa with new extensions and features.
|
||||
</p>
|
||||
@@ -146,7 +146,8 @@ I continue to enhance Mesa with new extensions and features.
|
||||
|
||||
<p>
|
||||
This is a summary of the major versions of Mesa. Note that Mesa's major
|
||||
version number tracks OpenGL's minor version number.
|
||||
version number tracks OpenGL's minor version number (+1).
|
||||
Work is underway to implement the OpenGL 2.0 specification.
|
||||
</p>
|
||||
|
||||
|
||||
@@ -162,10 +163,11 @@ extensions incorporated as standard features:
|
||||
</ul>
|
||||
<p>
|
||||
Also note that several OpenGL tokens were renamed in OpenGL 1.5
|
||||
for the sake of consistency. The old names will still be valid.
|
||||
for the sake of consistency.
|
||||
The old tokens are still available.
|
||||
</p>
|
||||
<pre>
|
||||
New Name Old Name
|
||||
New Token Old Token
|
||||
------------------------------------------------------------
|
||||
GL_FOG_COORD_SRC GL_FOG_COORDINATE_SOURCE
|
||||
GL_FOG_COORD GL_FOG_COORDINATE
|
||||
|
@@ -13,17 +13,18 @@ The Mesa distribution consists of several components. Different copyrights
|
||||
and licenses apply to different components. For example, GLUT is copyrighted
|
||||
by Mark Kilgard, some demo programs are copyrighted by SGI, some of the Mesa
|
||||
device drivers are copyrighted by their authors. See below for a list of
|
||||
Mesa's components and the copyright/license for each.
|
||||
Mesa's main components and the license for each.
|
||||
</p>
|
||||
<p>
|
||||
The core Mesa library is licensed according to the terms of the XFree86
|
||||
copyright (an MIT-style license). This allows integration with the
|
||||
XFree86/DRI project. Unless otherwise stated, the Mesa source code and
|
||||
documentation is licensed as follows:
|
||||
The core Mesa library is licensed according to the terms of the MIT license.
|
||||
This allows integration with the XFree86, Xorg and DRI projects.
|
||||
</p>
|
||||
<p>
|
||||
The default Mesa license is as follows:
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
Copyright (C) 1999-2003 Brian Paul All Rights Reserved.
|
||||
Copyright (C) 1999-2005 Brian Paul All Rights Reserved.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a
|
||||
copy of this software and associated documentation files (the "Software"),
|
||||
@@ -47,70 +48,38 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
<H1>Attention, Contributors</H1>
|
||||
|
||||
<p>
|
||||
When contributing to the Mesa project you must agree to relinquish your
|
||||
work to the holder of the copyright for the particular component you're
|
||||
contributing to. That is, you can't put your own copyright on the code,
|
||||
unless it's a modular piece that can be omitted from Mesa (like a new
|
||||
device driver). If for example, you contribute a bug fix to Mesa's
|
||||
texture mapping code, your code will become a part of the body of work
|
||||
which is copyrighted by Brian Paul and licensed by the above terms.
|
||||
When contributing to the Mesa project you must agree to the licensing terms
|
||||
of the component to which you're contributing.
|
||||
The following section lists the primary components of the Mesa distribution
|
||||
and their respective licenses.
|
||||
</p>
|
||||
|
||||
|
||||
<H1>Mesa Component Licenses</H1>
|
||||
|
||||
<pre>
|
||||
Mesa Component Licenses:
|
||||
|
||||
Component Files Primary Author License
|
||||
Component Location Primary Author License
|
||||
----------------------------------------------------------------------------
|
||||
core Mesa code src/*.[ch] Brian Paul Mesa
|
||||
include/GL/gl.h
|
||||
Main Mesa code src/mesa/ Brian Paul Mesa (MIT)
|
||||
|
||||
GLX driver src/X/* Brian Paul Mesa
|
||||
include/GL/glx.h
|
||||
include/GL/xmesa.h
|
||||
Device drivers src/mesa/drivers/* See drivers See drivers
|
||||
|
||||
OS/Mesa driver src/OSmesa/* Brian Paul Mesa
|
||||
include/GL/osmesa.h
|
||||
Ext headers include/GL/glext.h SGI SGI Free B
|
||||
include/GL/glxext.h
|
||||
|
||||
3Dfx driver src/FX/* David Bucciarelli Mesa
|
||||
include/GL/fxmesa.h
|
||||
GLUT src/glut/ Mark Kilgard Mark's copyright
|
||||
|
||||
BeOS R4 driver src/BeOS/* Brian Paul Mesa
|
||||
Mesa GLU library src/glu/mesa/ Brian Paul GNU-LGPL
|
||||
|
||||
MGL driver src/MGL/* SciTech, Inc SciTech copyright
|
||||
include/GL/mglmesa.h
|
||||
SGI GLU library src/glu/sgi/ SGI SGI Free B
|
||||
|
||||
Windows driver src/Windows/* Li Wei copyright by Li Wei
|
||||
include/GL/wmesa.h
|
||||
demo programs progs/demos/ various see source files
|
||||
|
||||
SVGA driver src/SVGA/* Brian Paul GNU-LGPL
|
||||
include/GL/svgamesa.h
|
||||
X demos progs/xdemos/ Brian Paul see source files
|
||||
|
||||
DOS driver src/DOS/* Charlie Wallace GNU-LGPL
|
||||
include/GL/dosmesa.h
|
||||
SGI demos progs/samples/ SGI SGI copyright
|
||||
|
||||
GGI driver src/GGI/* Uwe Maurer GNU-LGPL
|
||||
include/GL/ggimesa.h
|
||||
|
||||
S3 driver src/S3/* S3, Inc. S3 copyright
|
||||
|
||||
GLUT src-glut/* Mark Kilgard Mark's copyright
|
||||
include/GL/*glut*.h
|
||||
|
||||
GLU library src-glu/* Brian Paul GNU-LGPL
|
||||
|
||||
SI GLU library si-glu/* SGI SGI Free B
|
||||
include/GL/glu.h
|
||||
|
||||
Ext registry include/GL/glext.h SGI SGI Free B
|
||||
include/GL/glxext.h
|
||||
|
||||
demo programs demos/* various see source files
|
||||
|
||||
X demos xdemos/* Brian Paul see source files
|
||||
|
||||
SGI demos samples/* SGI SGI copyright
|
||||
|
||||
RedBook demos book/* SGI SGI copyright
|
||||
RedBook demos progs/redbook/ SGI SGI copyright
|
||||
</pre>
|
||||
|
||||
</body>
|
||||
|
@@ -30,7 +30,8 @@ SourceForge lists page.</a>
|
||||
with the mailing lists please contact the SourceForge administrators for help.</p>
|
||||
|
||||
<p>Archives of the old Mesa mailing list which was hosted by unicamp.br
|
||||
are available <a href="http://groups.yahoo.com/group/mesa/messages/">here</a>.</p>
|
||||
are available <a href="http://groups.yahoo.com/group/mesa/messages/"
|
||||
target="_parent">here</a>.</p>
|
||||
|
||||
<p>
|
||||
Here are some other OpenGL-related forums you might find useful:
|
||||
@@ -46,7 +47,8 @@ Usenet newsgroups:
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<a href="http://www.opengl.org/">OpenGL discussion forums</A> at www.opengl.org
|
||||
<a href="http://www.opengl.org/" target="_parent">OpenGL discussion forums</A>
|
||||
at www.opengl.org
|
||||
</p>
|
||||
|
||||
</HTML>
|
||||
|
@@ -1,20 +1,18 @@
|
||||
/* Mesa CSS */
|
||||
body {
|
||||
background-color: #55bbff;
|
||||
background-color: #ffffff;
|
||||
font: 14px 'Lucida Grande', Geneva, Arial, Verdana, sans-serif;
|
||||
color: black;
|
||||
link: #111188;
|
||||
}
|
||||
|
||||
h1 {
|
||||
background-color: #55bbff;
|
||||
font: 24px 'Lucida Grande', Geneva, Arial, Verdana, sans-serif;
|
||||
font-weight: bold;
|
||||
color: black;
|
||||
}
|
||||
|
||||
h2 {
|
||||
background-color: #55bbff;
|
||||
font: 18px 'Lucida Grande', Geneva, Arial, Verdana, sans-serif, bold;
|
||||
font-weight: bold;
|
||||
color: black;
|
||||
|
@@ -32,7 +32,7 @@
|
||||
- VRML viewer
|
||||
</li><li><a href="http://aig.cs.man.ac.uk/systems/Maverik/" target="_parent">Maverik</a>
|
||||
- VR graphics and interaction system
|
||||
</li><li><a href="http://www.swissquake.ch/chumb.alum-soft" target="_parent">MD2 Viewer</a>
|
||||
</li><li><a href="http://www.swissquake.ch/chumbalum-soft/md2v" target="_parent">MD2 Viewer</a>
|
||||
- View .MD2 files
|
||||
</li><li><a href="http://www.megacads.dlr.de/" target="_parent">MegaCads</a>
|
||||
- Multiblock-Elliptic-Grid-Generation-And-CAD-System
|
||||
|
142
docs/news.html
142
docs/news.html
@@ -2,13 +2,147 @@
|
||||
|
||||
<TITLE>Mesa News</TITLE>
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="mesa.css"></head>
|
||||
<head><link rel="stylesheet" type="text/css" href="mesa.css"></head>
|
||||
|
||||
<BODY>
|
||||
|
||||
<body bgcolor="#eeeeee">
|
||||
|
||||
<H1>News</H1>
|
||||
|
||||
|
||||
<h2>October 24, 2005</h2>
|
||||
<p>
|
||||
Mesa 6.4 has been released. This is stable, bug-fix release.
|
||||
</p>
|
||||
<pre>
|
||||
New:
|
||||
- Added a fast XOR line drawing function in Xlib driver
|
||||
- Added support for GL_ARB_texture_mirrored_repeat to savage
|
||||
driver (supported only on Savage4 hardware).
|
||||
Changes:
|
||||
- Mesa now packaged in three parts: Library, Demos and GLUT
|
||||
Bug fixes:
|
||||
- GLX_X_RENDERABLE token wasn't accepted by glXChooseFBConfig
|
||||
- Some files were present multiple times in the 6.3.2 tarballs
|
||||
- r200_vtxtmp_x86.S file was missing from 6.3.2 tarball (bug 4207)
|
||||
- glxgears_fbconfig demo didn't work (bug 4237)
|
||||
- fixed bug when bilinear sampling 2d textures with borders
|
||||
- glXCreatePbuffer() could segfault instead of returning 0 (bug 4235)
|
||||
- fixed undefined frexp and rand in X.org libGLcore.a (bug 4242)
|
||||
- fixed a few problems with proxy color tables (bug 4270)
|
||||
- fixed precision problem in Z clearing (bug 4395)
|
||||
- glBitmap, glDraw/CopyPixels mistakenly generated selection hits
|
||||
- fixed potential segfault caused by reading pixels outside
|
||||
of renderbuffer bounds
|
||||
- glGetTexLevelParameter didn't accept GL_TEXTURE_DEPTH_SIZE_ARB
|
||||
- fixed memory corruption bug involving software alpha buffers
|
||||
- glReadPixels clipped by window bounds was sometimes broken
|
||||
- glDraw/CopyPixels of stencil data ignored the stencil write mask
|
||||
- glReadPixels from a texture bound to a framebuffer object didn't work
|
||||
- glIsRender/FramebufferEXT weren't totally correct
|
||||
- fixed a number of point size attenuation/fade bugs
|
||||
- fixed glFogCoord bug 4729
|
||||
- GLX encoding for transpose matrix functions was broken
|
||||
- fixed broken fragment program KIL and SWZ instructions
|
||||
</pre>
|
||||
<p>
|
||||
The MD5 checksums are:
|
||||
</p>
|
||||
<pre>
|
||||
TBD
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>August 19, 2005</h2>
|
||||
<p>
|
||||
Mesa 6.3.2 has been released.
|
||||
Note: there was no public release of version 6.3.1.
|
||||
</p>
|
||||
<pre>
|
||||
New:
|
||||
- The distribution now includes the DRI drivers and GLX code
|
||||
Changes:
|
||||
- Made the DRI "new" driver interface standard, remove old code
|
||||
Bug fixes:
|
||||
- GL_ARB_vertex/fragment_shader were mistakenly listed in the
|
||||
extensions string
|
||||
- negative relative addressing in vertex programs was broken
|
||||
- update/fix SPARC assembly code for vertex transformation
|
||||
- fixed memory leak when freeing GLX drawables/renderbuffers
|
||||
- fixed display list memory leak
|
||||
- the GL_PIXEL_MAP_I_TO_I table is now floating point, not integer
|
||||
- wglGetProcAddress() didn't handle wgl-functions
|
||||
- fixed glxext.h cross-compile issue (Colin Harrison)
|
||||
- assorted DRI driver fixes
|
||||
</pre>
|
||||
<p>
|
||||
The MD5 checksums are:
|
||||
</p>
|
||||
<pre>
|
||||
98192e45ed8d69113688f89f90869346 MesaLib-6.3.2.tar.gz
|
||||
0df27701df0924d17ddf41185efa8ce1 MesaLib-6.3.2.tar.bz2
|
||||
ccb2423aab77fc7e81ce628734586140 MesaLib-6.3.2.zip
|
||||
9d0fca0a7d051c34a0b485423fb3e85d MesaDemos-6.3.2.tar.gz
|
||||
96708868450c188205e42229b5d813c4 MesaDemos-6.3.2.tar.bz2
|
||||
c5102501e609aa8996d832fafacb8ab9 MesaDemos-6.3.2.zip
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>July 20, 2005</h2>
|
||||
<p>
|
||||
Mesa 6.3 has been released.
|
||||
This is a development release with new features, changes and bug fixes.
|
||||
</p>
|
||||
<pre>
|
||||
New:
|
||||
- GL_EXT_framebuffer_object extension
|
||||
- GL_ARB_draw_buffers extension
|
||||
- GL_ARB_pixel_buffer_object extension
|
||||
- GL_OES_read_format extension (Ian Romanick)
|
||||
- DirectFB driver (Claudio Ciccani)
|
||||
- x86_64 vertex transformation code (Mikko T.)
|
||||
Changes:
|
||||
- added -stereo option for glxgears demo (Jacek Rosik)
|
||||
- updated the PBuffer demo code in xdemos/ directory
|
||||
- glDeleteTextures/Programs/Buffers() now makes the object ID
|
||||
available for immediate re-use
|
||||
- assorted 64-bit clean-ups fixes (x86_64 and Win64)
|
||||
- lots of internal changes for GL_EXT_framebuffer_object
|
||||
Bug fixes:
|
||||
- some functions didn't support PBO functionality
|
||||
- glGetTexImage didn't convert color index images to RGBA as required
|
||||
- fragment program texcoords were sometimes wrong for points and lines
|
||||
- fixed problem with negative dot product in arbfplight, fplight demos
|
||||
- fixed bug in perspective correction of antialiased, textured lines
|
||||
- querying GL_POST_CONVOLUTION_ALPHA_BIAS_EXT returned wrong value
|
||||
- fixed a couple per-pixel fog bugs (Soju Matsumoto)
|
||||
- glGetBooleanv(GL_FRAGMENT_PROGRAM_BINDING_NV) was broken
|
||||
- fixed float parsing bug in ARB frag/vert programs (bug 2520)
|
||||
- XMesaGetDepthBuffer() returned incorrect value for bytesPerValue
|
||||
- GL_COLOR_MATERIAL with glColor3 didn't properly set diffuse alpha
|
||||
- glXChooseFBConfig() crashed if attribList pointer was NULL
|
||||
- program state.light[n].spot.direction.w was wrong value (bug 3083)
|
||||
- fragment program fog option required glEnable(GL_FOG) - wrong.
|
||||
- glColorTable() could produce a Mesa implementation error (bug 3135)
|
||||
- RasterPos could get corrupted by color index rendering path
|
||||
- Removed bad XTranslateCoordinates call when rendering to Pixmaps
|
||||
- glPopAttrib() didn't properly restore GL_TEXTURE_GEN enable state
|
||||
- fixed a few Darwin compilation problems
|
||||
</pre>
|
||||
<p>
|
||||
The MD5 checksums are:
|
||||
</p>
|
||||
<pre>
|
||||
0236f552d37514776945d5a013e5bb7b MesaLib-6.3.tar.gz
|
||||
60e1a8f78c4a8c7750a1e95753190986 MesaLib-6.3.tar.bz2
|
||||
ca7c950fbace68c70caa822322db7223 MesaLib-6.3.zip
|
||||
25ea801645b376c014051804fe4974b2 MesaDemos-6.3.tar.gz
|
||||
9248e74872ea88c57ec25c900c295057 MesaDemos-6.3.tar.bz2
|
||||
8537dfa734ef258dcc7272097558d434 MesaDemos-6.3.zip
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>December 9, 2004</h2>
|
||||
<p>
|
||||
Mesa 6.2.1 has been released.
|
||||
@@ -25,7 +159,7 @@ This is a stable release which just fixes bugs since the 6.2 release.
|
||||
- glReadPixels from a clipped front color buffer didn't always work
|
||||
- glTexImage didn't accept GL_RED/GREEN/BLUE as the format
|
||||
- Attempting queries/accesses of VBO 0 weren't detected as errors
|
||||
- paletted textures failed if the palette had fewer that 256 entries
|
||||
- paletted textures failed if the palette had fewer than 256 entries
|
||||
Changes:
|
||||
- fixed a bunch of compiler warnings found with gcc 3.4
|
||||
- bug reports should to go bugzilla.freedesktop.org
|
||||
@@ -960,6 +1094,6 @@ source code</a>.</p>
|
||||
|
||||
|
||||
<hr>
|
||||
$Id: news.html,v 3.17 2005/01/20 03:55:10 brianp Exp $
|
||||
$Id: news.html,v 3.24.2.2 2005/10/24 23:12:29 brianp Exp $
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
@@ -13,6 +13,8 @@ The release notes summarize what's new or changed in each Mesa release.
|
||||
</p>
|
||||
|
||||
<UL>
|
||||
<LI><A HREF="RELNOTES-6.4">RELNOTES-6.4</A>
|
||||
<LI><A HREF="RELNOTES-6.3.2">RELNOTES-6.3.2</A>
|
||||
<LI><A HREF="RELNOTES-6.3">RELNOTES-6.3</A>
|
||||
<LI><A HREF="RELNOTES-6.2.1">RELNOTES-6.2.1</A>
|
||||
<LI><A HREF="RELNOTES-6.2">RELNOTES-6.2</A>
|
||||
|
@@ -14,98 +14,43 @@ supported on those systems. All you need is an ANSI C compiler and the
|
||||
X development environment to use Mesa.
|
||||
</p>
|
||||
|
||||
<p>Others have contributed drivers
|
||||
for the Amiga, Apple Macintosh, BeOS, NeXT, OS/2, MS-DOS, VMS, Windows
|
||||
<p>
|
||||
The DRI hardware drivers for the X.org server and XFree86 provide
|
||||
hardware accelerated rendering for chips from ATI, Intel, Matrox, 3dfx
|
||||
and others on Linux and FreeBSD.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Drivers for other assorted platforms include:
|
||||
the Amiga, Apple Macintosh, BeOS, NeXT, OS/2, MS-DOS, VMS, Windows
|
||||
9x/NT, and Direct3D.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The following files describe the details for various platforms.
|
||||
Be warned, some of these files (and drivers) may be very out of date.
|
||||
Details about particular drivers follows.
|
||||
Be warned that some drivers may be out of date and no longer function.
|
||||
</p>
|
||||
|
||||
<UL>
|
||||
<LI><A HREF="README.X11">README.X11</A> - X Window System / Unix / Linux
|
||||
<LI><A HREF="README.WIN32">README.WIN32</A> - Microsoft Windows
|
||||
<LI><A HREF="README.VMS">README.VMS</A> - DEC VMS
|
||||
<LI><A HREF="README.GGI">README.GGI</A> - GGI
|
||||
<LI><A HREF="README.3DFX">README.3DFX</A> - 3Dfx/Glide driver
|
||||
<LI><A HREF="README.AMIWIN">README.AMIWIN</A> - Amiga Amiwin
|
||||
<LI><A HREF="README.BEOS">README.BEOS</A> - BeOS
|
||||
<LI><A HREF="README.D3D">README.D3D</A> - Direct3D driver
|
||||
<LI><A HREF="README.DJ">README.DJ</A> - DJGPP
|
||||
<LI><A HREF="README.LYNXOS">README.LYNXOS</A> - LynxOS
|
||||
<LI><A HREF="README.MINGW32">README.MINGW32</A> - Mingw32
|
||||
<LI><A HREF="README.NeXT">README.NeXT</A> - NeXT
|
||||
<LI><A HREF="README.OpenStep">README.OpenStep</A> - OpenStep
|
||||
<LI><A HREF="README.OS2">README.OS2</A> - OS/2
|
||||
<LI><A HREF="README.WINDML">README.WINDML</A> - WindML
|
||||
<LI>Xlib driver for the X Window System <A HREF="README.X11">(README.X11)</A>
|
||||
<li><a href="http://dri.sourceforge.net/" target="_parent">
|
||||
DRI hardware drivers</a> for the X window system
|
||||
<LI>Microsoft Windows <A HREF="README.WIN32">(README.WIN32)</A>
|
||||
<LI>DEC VMS <A HREF="README.VMS">(README.VMS)</A>
|
||||
<LI>3dfx/Glide <A HREF="README.3DFX">(README.3DFX)</A>
|
||||
<LI>GGI <A HREF="README.GGI">(README.GGI)</A>
|
||||
<LI>Amiga Amiwin <A HREF="README.AMIWIN">(README.AMIWIN)</A>
|
||||
<LI>BeOS <A HREF="README.BEOS">(README.BEOS)</A>
|
||||
<LI>Direct3D driver <A HREF="README.D3D">(README.D3D)</A>
|
||||
<LI>DJGPP <A HREF="README.DJ">(README.DJ)</A>
|
||||
<LI>LynxOS <A HREF="README.LYNXOS">(README.LYNXOS)</A>
|
||||
<LI>Mingw32 <A HREF="README.MINGW32">(README.MINGW32)</A>
|
||||
<LI>NeXT <A HREF="README.NeXT">(README.NeXT)</A>
|
||||
<LI>OpenStep <A HREF="README.OpenStep">(README.OpenStep)</A>
|
||||
<LI>OS/2 <A HREF="README.OS2">(README.OS2)</A>
|
||||
<LI>WindML <A HREF="README.WINDML">(README.WINDML)</A>
|
||||
<LI><a href="http://utah-glx.sourceforge.net/" target="_parent">Utah GLX drivers</a>
|
||||
</UL>
|
||||
|
||||
|
||||
<p>
|
||||
The standard Mesa distribution only supports software-based rendering, with
|
||||
the exception of the 3Dfx Glide driver.
|
||||
Information about other hardware support follows.
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>DRI-based hardware support for 3dfx, Intel, Matrox, ATI with XFree86
|
||||
<blockquote>
|
||||
<p>The <a href="http://dri.sourceforge.net/" target="_parent">DRI architecture</a>,
|
||||
originally developed by Precision Insight, Inc. uses Mesa and
|
||||
provides hardware acceleration for a number of popular chipsets.<br>
|
||||
<br>
|
||||
The DRI is part of XFree86 4.0 and later.
|
||||
<br><br>
|
||||
If you download and install XFree86 4.x you do not need to
|
||||
install Mesa separately. All the important parts of Mesa
|
||||
will be installed with the rest of XFree86.
|
||||
</blockquote>
|
||||
|
||||
|
||||
<li>3dfx Voodoo1, Voodoo2, Voodoo Rush, Voodoo Banshee, Voodoo3
|
||||
<blockquote>
|
||||
<p>All cards based on these chipsets should work with Linux and
|
||||
Windows 95 via 3dfx's Glide library.
|
||||
The Mesa/Glide driver is included with the Mesa distribution.
|
||||
You'll need to install the Glide header files and runtime library.
|
||||
</p>
|
||||
<p>
|
||||
David Bucciarelli wrote the original 3dfx driver for Mesa.<br>
|
||||
Daryll Strauss ported Glide to Linux.
|
||||
</p>
|
||||
</blockquote>
|
||||
|
||||
|
||||
<li>Matrox G200/G400, nVidia RIVA, ATI Rage Pro, Intel i810 on Linux
|
||||
<blockquote>
|
||||
<p>The <a href="http://utah-glx.sourceforge.net/" target="_parent">
|
||||
Utah GLX project</a>
|
||||
(no longer active) developed drivers for these chipsets and others.
|
||||
</blockquote>
|
||||
|
||||
<li>Amiga Warp3D
|
||||
<blockquote>
|
||||
<p>Amiga systems can support 3D hardware with the Warp3D API.
|
||||
See <a href="http://www.haage-partner.com/3dworld" target="_parent">here</a>.
|
||||
</blockquote>
|
||||
|
||||
<li>Also see
|
||||
<blockquote>
|
||||
<p><a href="http://www.linux3d.org/" target="_parent">www.linux3d.org</a> for
|
||||
other 3D hardware info for Linux.
|
||||
</blockquote>
|
||||
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
<b><em>Note:</em></b>
|
||||
If you have NVIDIA hardware in your computer,
|
||||
you should download and install NVIDIA's OpenGL library. You may
|
||||
however, want to download Mesa in order to use its GLU and GLUT
|
||||
libraries, or assorted demo programs.</p>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
@@ -13,6 +13,7 @@
|
||||
|
||||
The following individuals and groups are to be acknowledged for their
|
||||
contributions to Mesa over the years.
|
||||
This list is far from complete and somewhat dated, unfortunately.
|
||||
|
||||
|
||||
<ul>
|
||||
@@ -32,14 +33,21 @@ substantial piece of work.
|
||||
Tungsten Graphics, Inc. have supported the ongoing development of Mesa.
|
||||
<br>
|
||||
<br>
|
||||
<li>The <A HREF="http://sourceforge.net/projects/mesa3d"
|
||||
target="_parent">Mesa</A>
|
||||
project is hosted by<A HREF="http://sourceforge.net"
|
||||
target="_parent"><IMG SRC="http://sourceforge.net/sflogo.php?group_id=3&type=1"
|
||||
<li>The
|
||||
<A HREF="http://sourceforge.net/projects/mesa3d" target="_parent">Mesa</A>
|
||||
website is hosted by
|
||||
<A HREF="http://sourceforge.net" target="_parent">
|
||||
<IMG SRC="http://sourceforge.net/sflogo.php?group_id=3&type=1"
|
||||
WIDTH="88" HEIGHT="31" ALIGN="BOTTOM" ALT="Sourceforge.net" BORDER="0"></A>
|
||||
<br>
|
||||
<br>
|
||||
|
||||
<li>The Mesa CVS repository is hosted by
|
||||
<a href="http://freedesktop.org/" target="_parent">freedesktop.org</a>.
|
||||
<br>
|
||||
<br>
|
||||
|
||||
|
||||
<li><a href="http://www.altsoftware.com/"
|
||||
target="_parent">alt.software</a> contributed the Direct3D driver.
|
||||
|
||||
|
@@ -2,7 +2,7 @@
|
||||
* Mesa 3-D graphics library
|
||||
* Version: 6.3
|
||||
*
|
||||
* Copyright (C) 1999-2004 Brian Paul All Rights Reserved.
|
||||
* Copyright (C) 1999-2005 Brian Paul All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
@@ -62,6 +62,9 @@
|
||||
#elif defined(__CYGWIN__) && defined(USE_OPENGL32) /* use native windows opengl32 */
|
||||
# define GLAPI extern
|
||||
# define GLAPIENTRY __stdcall
|
||||
#elif defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__) >= 303
|
||||
# define GLAPI __attribute__((visibility("default")))
|
||||
# define GLAPIENTRY
|
||||
#endif /* WIN32 && !CYGWIN */
|
||||
|
||||
#if (defined(__BEOS__) && defined(__POWERPC__)) || defined(__QUICKDRAW__)
|
||||
@@ -101,7 +104,7 @@
|
||||
#define APIENTRY GLAPIENTRY
|
||||
#endif
|
||||
|
||||
/* "P" suffix for when function returns a pointer */
|
||||
/* "P" suffix to be used for a pointer to a function */
|
||||
#ifndef APIENTRYP
|
||||
#define APIENTRYP APIENTRY *
|
||||
#endif
|
||||
@@ -850,7 +853,7 @@ GLAPI GLint GLAPIENTRY glRenderMode( GLenum mode );
|
||||
|
||||
GLAPI GLenum GLAPIENTRY glGetError( void );
|
||||
|
||||
GLAPI const GLubyte GLAPIENTRYP glGetString( GLenum name );
|
||||
GLAPI const GLubyte * GLAPIENTRY glGetString( GLenum name );
|
||||
|
||||
GLAPI void GLAPIENTRY glFinish( void );
|
||||
|
||||
@@ -2210,13 +2213,9 @@ GLAPI void GLAPIENTRY glTracePointerRangeMESA( const GLvoid* first, const GLvoid
|
||||
|
||||
typedef void (*GLprogramcallbackMESA)(GLenum target, GLvoid *data);
|
||||
|
||||
extern void
|
||||
glProgramCallbackMESA(GLenum target, GLprogramcallbackMESA callback,
|
||||
GLvoid *data);
|
||||
GLAPI void GLAPIENTRY glProgramCallbackMESA(GLenum target, GLprogramcallbackMESA callback, GLvoid *data);
|
||||
|
||||
extern void
|
||||
glGetProgramRegisterfvMESA(GLenum target, GLsizei len, const GLubyte *name,
|
||||
GLfloat *v);
|
||||
GLAPI void GLAPIENTRY glGetProgramRegisterfvMESA(GLenum target, GLsizei len, const GLubyte *name, GLfloat *v);
|
||||
|
||||
#endif /* GL_MESA_program_debug */
|
||||
|
||||
|
@@ -62,11 +62,13 @@
|
||||
#define glBindBufferARB MANGLE(BindBufferARB)
|
||||
#define glBindBuffer MANGLE(BindBuffer)
|
||||
#define glBindFragmentShaderATI MANGLE(BindFragmentShaderATI)
|
||||
#define glBindFramebufferEXT MANGLE(BindFramebufferEXT)
|
||||
#define glBindLightParameterEXT MANGLE(BindLightParameterEXT)
|
||||
#define glBindMaterialParameterEXT MANGLE(BindMaterialParameterEXT)
|
||||
#define glBindParameterEXT MANGLE(BindParameterEXT)
|
||||
#define glBindProgramARB MANGLE(BindProgramARB)
|
||||
#define glBindProgramNV MANGLE(BindProgramNV)
|
||||
#define glBindRenderbufferEXT MANGLE(BindRenderbufferEXT)
|
||||
#define glBindTexGenParameterEXT MANGLE(BindTexGenParameterEXT)
|
||||
#define glBindTextureEXT MANGLE(BindTextureEXT)
|
||||
#define glBindTexture MANGLE(BindTexture)
|
||||
@@ -102,6 +104,7 @@
|
||||
#define glBufferSubData MANGLE(BufferSubData)
|
||||
#define glCallList MANGLE(CallList)
|
||||
#define glCallLists MANGLE(CallLists)
|
||||
#define glCheckFramebufferStatusEXT MANGLE(CheckFramebufferStatusEXT)
|
||||
#define glClampColorARB MANGLE(ClampColorARB)
|
||||
#define glClearAccum MANGLE(ClearAccum)
|
||||
#define glClearColor MANGLE(ClearColor)
|
||||
@@ -244,6 +247,7 @@
|
||||
#define glDeleteFencesAPPLE MANGLE(DeleteFencesAPPLE)
|
||||
#define glDeleteFencesNV MANGLE(DeleteFencesNV)
|
||||
#define glDeleteFragmentShaderATI MANGLE(DeleteFragmentShaderATI)
|
||||
#define glDeleteFramebuffersEXT MANGLE(DeleteFramebuffersEXT)
|
||||
#define glDeleteLists MANGLE(DeleteLists)
|
||||
#define glDeleteObjectARB MANGLE(DeleteObjectARB)
|
||||
#define glDeleteOcclusionQueriesNV MANGLE(DeleteOcclusionQueriesNV)
|
||||
@@ -252,6 +256,7 @@
|
||||
#define glDeleteProgramsNV MANGLE(DeleteProgramsNV)
|
||||
#define glDeleteQueriesARB MANGLE(DeleteQueriesARB)
|
||||
#define glDeleteQueries MANGLE(DeleteQueries)
|
||||
#define glDeleteRenderbuffersEXT MANGLE(DeleteRenderbuffersEXT)
|
||||
#define glDeleteShader MANGLE(DeleteShader)
|
||||
#define glDeleteTexturesEXT MANGLE(DeleteTexturesEXT)
|
||||
#define glDeleteTextures MANGLE(DeleteTextures)
|
||||
@@ -365,6 +370,10 @@
|
||||
#define glFragmentMaterialfvSGIX MANGLE(FragmentMaterialfvSGIX)
|
||||
#define glFragmentMaterialiSGIX MANGLE(FragmentMaterialiSGIX)
|
||||
#define glFragmentMaterialivSGIX MANGLE(FragmentMaterialivSGIX)
|
||||
#define glFramebufferRenderbufferEXT MANGLE(FramebufferRenderbufferEXT)
|
||||
#define glFramebufferTexture1DEXT MANGLE(FramebufferTexture1DEXT)
|
||||
#define glFramebufferTexture2DEXT MANGLE(FramebufferTexture2DEXT)
|
||||
#define glFramebufferTexture3DEXT MANGLE(FramebufferTexture3DEXT)
|
||||
#define glFrameZoomSGIX MANGLE(FrameZoomSGIX)
|
||||
#define glFreeObjectBufferATI MANGLE(FreeObjectBufferATI)
|
||||
#define glFrontFace MANGLE(FrontFace)
|
||||
@@ -372,15 +381,18 @@
|
||||
#define glGenAsyncMarkersSGIX MANGLE(GenAsyncMarkersSGIX)
|
||||
#define glGenBuffersARB MANGLE(GenBuffersARB)
|
||||
#define glGenBuffers MANGLE(GenBuffers)
|
||||
#define glGenerateMipmapEXT MANGLE(GenerateMipmapEXT)
|
||||
#define glGenFencesAPPLE MANGLE(GenFencesAPPLE)
|
||||
#define glGenFencesNV MANGLE(GenFencesNV)
|
||||
#define glGenFragmentShadersATI MANGLE(GenFragmentShadersATI)
|
||||
#define glGenFramebuffersEXT MANGLE(GenFramebuffersEXT)
|
||||
#define glGenLists MANGLE(GenLists)
|
||||
#define glGenOcclusionQueriesNV MANGLE(GenOcclusionQueriesNV)
|
||||
#define glGenProgramsARB MANGLE(GenProgramsARB)
|
||||
#define glGenProgramsNV MANGLE(GenProgramsNV)
|
||||
#define glGenQueriesARB MANGLE(GenQueriesARB)
|
||||
#define glGenQueries MANGLE(GenQueries)
|
||||
#define glGenRenderbuffersEXT MANGLE(GenRenderbuffersEXT)
|
||||
#define glGenSymbolsEXT MANGLE(GenSymbolsEXT)
|
||||
#define glGenTexturesEXT MANGLE(GenTexturesEXT)
|
||||
#define glGenTextures MANGLE(GenTextures)
|
||||
@@ -438,6 +450,7 @@
|
||||
#define glGetFragmentLightivSGIX MANGLE(GetFragmentLightivSGIX)
|
||||
#define glGetFragmentMaterialfvSGIX MANGLE(GetFragmentMaterialfvSGIX)
|
||||
#define glGetFragmentMaterialivSGIX MANGLE(GetFragmentMaterialivSGIX)
|
||||
#define glGetFramebufferAttachmentParameterivEXT MANGLE(GetFramebufferAttachmentParameterivEXT)
|
||||
#define glGetHandleARB MANGLE(GetHandleARB)
|
||||
#define glGetHistogramEXT MANGLE(GetHistogramEXT)
|
||||
#define glGetHistogram MANGLE(GetHistogram)
|
||||
@@ -502,6 +515,7 @@
|
||||
#define glGetProgramNamedParameterfvNV MANGLE(GetProgramNamedParameterfvNV)
|
||||
#define glGetProgramParameterdvNV MANGLE(GetProgramParameterdvNV)
|
||||
#define glGetProgramParameterfvNV MANGLE(GetProgramParameterfvNV)
|
||||
#define glGetProgramRegisterfvMESA MANGLE(GetProgramRegisterfvMESA)
|
||||
#define glGetProgramStringARB MANGLE(GetProgramStringARB)
|
||||
#define glGetProgramStringNV MANGLE(GetProgramStringNV)
|
||||
#define glGetQueryivARB MANGLE(GetQueryivARB)
|
||||
@@ -510,6 +524,7 @@
|
||||
#define glGetQueryObjectiv MANGLE(GetQueryObjectiv)
|
||||
#define glGetQueryObjectuivARB MANGLE(GetQueryObjectuivARB)
|
||||
#define glGetQueryObjectuiv MANGLE(GetQueryObjectuiv)
|
||||
#define glGetRenderbufferParameterivEXT MANGLE(GetRenderbufferParameterivEXT)
|
||||
#define glGetSeparableFilterEXT MANGLE(GetSeparableFilterEXT)
|
||||
#define glGetSeparableFilter MANGLE(GetSeparableFilter)
|
||||
#define glGetShaderInfoLog MANGLE(GetShaderInfoLog)
|
||||
@@ -601,6 +616,7 @@
|
||||
#define glIsEnabled MANGLE(IsEnabled)
|
||||
#define glIsFenceAPPLE MANGLE(IsFenceAPPLE)
|
||||
#define glIsFenceNV MANGLE(IsFenceNV)
|
||||
#define glIsFramebufferEXT MANGLE(IsFramebufferEXT)
|
||||
#define glIsList MANGLE(IsList)
|
||||
#define glIsObjectBufferATI MANGLE(IsObjectBufferATI)
|
||||
#define glIsOcclusionQueryNV MANGLE(IsOcclusionQueryNV)
|
||||
@@ -609,6 +625,7 @@
|
||||
#define glIsProgramNV MANGLE(IsProgramNV)
|
||||
#define glIsQueryARB MANGLE(IsQueryARB)
|
||||
#define glIsQuery MANGLE(IsQuery)
|
||||
#define glIsRenderbufferEXT MANGLE(IsRenderbufferEXT)
|
||||
#define glIsShader MANGLE(IsShader)
|
||||
#define glIsTextureEXT MANGLE(IsTextureEXT)
|
||||
#define glIsTexture MANGLE(IsTexture)
|
||||
@@ -836,6 +853,7 @@
|
||||
#define glPrimitiveRestartNV MANGLE(PrimitiveRestartNV)
|
||||
#define glPrioritizeTexturesEXT MANGLE(PrioritizeTexturesEXT)
|
||||
#define glPrioritizeTextures MANGLE(PrioritizeTextures)
|
||||
#define glProgramCallbackMESA MANGLE(ProgramCallbackMESA)
|
||||
#define glProgramEnvParameter4dARB MANGLE(ProgramEnvParameter4dARB)
|
||||
#define glProgramEnvParameter4dvARB MANGLE(ProgramEnvParameter4dvARB)
|
||||
#define glProgramEnvParameter4fARB MANGLE(ProgramEnvParameter4fARB)
|
||||
@@ -895,6 +913,7 @@
|
||||
#define glRects MANGLE(Rects)
|
||||
#define glRectsv MANGLE(Rectsv)
|
||||
#define glReferencePlaneSGIX MANGLE(ReferencePlaneSGIX)
|
||||
#define glRenderbufferStorageEXT MANGLE(RenderbufferStorageEXT)
|
||||
#define glRenderMode MANGLE(RenderMode)
|
||||
#define glReplacementCodePointerSUN MANGLE(ReplacementCodePointerSUN)
|
||||
#define glReplacementCodeubSUN MANGLE(ReplacementCodeubSUN)
|
||||
@@ -1003,6 +1022,7 @@
|
||||
#define glStencilOpSeparateATI MANGLE(StencilOpSeparateATI)
|
||||
#define glStencilOpSeparate MANGLE(StencilOpSeparate)
|
||||
#define glStopInstrumentsSGIX MANGLE(StopInstrumentsSGIX)
|
||||
#define glStringMarkerGREMEDY MANGLE(StringMarkerGREMEDY)
|
||||
#define glSwizzleEXT MANGLE(SwizzleEXT)
|
||||
#define glTagSampleBufferSGIX MANGLE(TagSampleBufferSGIX)
|
||||
#define glTangent3bEXT MANGLE(Tangent3bEXT)
|
||||
|
@@ -52,9 +52,9 @@ extern "C" {
|
||||
/*************************************************************/
|
||||
|
||||
/* Header file version number, required by OpenGL ABI for Linux */
|
||||
/* glext.h last updated 2005/01/20 */
|
||||
/* glext.h last updated 2005/06/20 */
|
||||
/* Current version at http://oss.sgi.com/projects/ogl-sample/registry/ */
|
||||
#define GL_GLEXT_VERSION 26
|
||||
#define GL_GLEXT_VERSION 29
|
||||
|
||||
#ifndef GL_VERSION_1_2
|
||||
#define GL_UNSIGNED_BYTE_3_3_2 0x8032
|
||||
@@ -2980,6 +2980,64 @@ extern "C" {
|
||||
/* reuse GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB */
|
||||
#endif
|
||||
|
||||
#ifndef GL_EXT_framebuffer_object
|
||||
#define GL_INVALID_FRAMEBUFFER_OPERATION_EXT 0x0506
|
||||
#define GL_MAX_RENDERBUFFER_SIZE_EXT 0x84E8
|
||||
#define GL_FRAMEBUFFER_BINDING_EXT 0x8CA6
|
||||
#define GL_RENDERBUFFER_BINDING_EXT 0x8CA7
|
||||
#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT 0x8CD0
|
||||
#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT 0x8CD1
|
||||
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT 0x8CD2
|
||||
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT 0x8CD3
|
||||
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT 0x8CD4
|
||||
#define GL_FRAMEBUFFER_COMPLETE_EXT 0x8CD5
|
||||
#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT 0x8CD6
|
||||
#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT 0x8CD7
|
||||
#define GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT 0x8CD8
|
||||
#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT 0x8CD9
|
||||
#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT 0x8CDA
|
||||
#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT 0x8CDB
|
||||
#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT 0x8CDC
|
||||
#define GL_FRAMEBUFFER_UNSUPPORTED_EXT 0x8CDD
|
||||
#define GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF
|
||||
#define GL_COLOR_ATTACHMENT0_EXT 0x8CE0
|
||||
#define GL_COLOR_ATTACHMENT1_EXT 0x8CE1
|
||||
#define GL_COLOR_ATTACHMENT2_EXT 0x8CE2
|
||||
#define GL_COLOR_ATTACHMENT3_EXT 0x8CE3
|
||||
#define GL_COLOR_ATTACHMENT4_EXT 0x8CE4
|
||||
#define GL_COLOR_ATTACHMENT5_EXT 0x8CE5
|
||||
#define GL_COLOR_ATTACHMENT6_EXT 0x8CE6
|
||||
#define GL_COLOR_ATTACHMENT7_EXT 0x8CE7
|
||||
#define GL_COLOR_ATTACHMENT8_EXT 0x8CE8
|
||||
#define GL_COLOR_ATTACHMENT9_EXT 0x8CE9
|
||||
#define GL_COLOR_ATTACHMENT10_EXT 0x8CEA
|
||||
#define GL_COLOR_ATTACHMENT11_EXT 0x8CEB
|
||||
#define GL_COLOR_ATTACHMENT12_EXT 0x8CEC
|
||||
#define GL_COLOR_ATTACHMENT13_EXT 0x8CED
|
||||
#define GL_COLOR_ATTACHMENT14_EXT 0x8CEE
|
||||
#define GL_COLOR_ATTACHMENT15_EXT 0x8CEF
|
||||
#define GL_DEPTH_ATTACHMENT_EXT 0x8D00
|
||||
#define GL_STENCIL_ATTACHMENT_EXT 0x8D20
|
||||
#define GL_FRAMEBUFFER_EXT 0x8D40
|
||||
#define GL_RENDERBUFFER_EXT 0x8D41
|
||||
#define GL_RENDERBUFFER_WIDTH_EXT 0x8D42
|
||||
#define GL_RENDERBUFFER_HEIGHT_EXT 0x8D43
|
||||
#define GL_RENDERBUFFER_INTERNAL_FORMAT_EXT 0x8D44
|
||||
#define GL_STENCIL_INDEX1_EXT 0x8D46
|
||||
#define GL_STENCIL_INDEX4_EXT 0x8D47
|
||||
#define GL_STENCIL_INDEX8_EXT 0x8D48
|
||||
#define GL_STENCIL_INDEX16_EXT 0x8D49
|
||||
#define GL_RENDERBUFFER_RED_SIZE_EXT 0x8D50
|
||||
#define GL_RENDERBUFFER_GREEN_SIZE_EXT 0x8D51
|
||||
#define GL_RENDERBUFFER_BLUE_SIZE_EXT 0x8D52
|
||||
#define GL_RENDERBUFFER_ALPHA_SIZE_EXT 0x8D53
|
||||
#define GL_RENDERBUFFER_DEPTH_SIZE_EXT 0x8D54
|
||||
#define GL_RENDERBUFFER_STENCIL_SIZE_EXT 0x8D55
|
||||
#endif
|
||||
|
||||
#ifndef GL_GREMEDY_string_marker
|
||||
#endif
|
||||
|
||||
|
||||
/*************************************************************/
|
||||
|
||||
@@ -6381,6 +6439,54 @@ typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEEXTPROC) (GLenum modeRGB, GLen
|
||||
#define GL_NV_vertex_program3 1
|
||||
#endif
|
||||
|
||||
#ifndef GL_EXT_framebuffer_object
|
||||
#define GL_EXT_framebuffer_object 1
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI GLboolean APIENTRY glIsRenderbufferEXT (GLuint);
|
||||
GLAPI void APIENTRY glBindRenderbufferEXT (GLenum, GLuint);
|
||||
GLAPI void APIENTRY glDeleteRenderbuffersEXT (GLsizei, const GLuint *);
|
||||
GLAPI void APIENTRY glGenRenderbuffersEXT (GLsizei, GLuint *);
|
||||
GLAPI void APIENTRY glRenderbufferStorageEXT (GLenum, GLenum, GLsizei, GLsizei);
|
||||
GLAPI void APIENTRY glGetRenderbufferParameterivEXT (GLenum, GLenum, GLint *);
|
||||
GLAPI GLboolean APIENTRY glIsFramebufferEXT (GLuint);
|
||||
GLAPI void APIENTRY glBindFramebufferEXT (GLenum, GLuint);
|
||||
GLAPI void APIENTRY glDeleteFramebuffersEXT (GLsizei, const GLuint *);
|
||||
GLAPI void APIENTRY glGenFramebuffersEXT (GLsizei, GLuint *);
|
||||
GLAPI GLenum APIENTRY glCheckFramebufferStatusEXT (GLenum);
|
||||
GLAPI void APIENTRY glFramebufferTexture1DEXT (GLenum, GLenum, GLenum, GLuint, GLint);
|
||||
GLAPI void APIENTRY glFramebufferTexture2DEXT (GLenum, GLenum, GLenum, GLuint, GLint);
|
||||
GLAPI void APIENTRY glFramebufferTexture3DEXT (GLenum, GLenum, GLenum, GLuint, GLint, GLint);
|
||||
GLAPI void APIENTRY glFramebufferRenderbufferEXT (GLenum, GLenum, GLenum, GLuint);
|
||||
GLAPI void APIENTRY glGetFramebufferAttachmentParameterivEXT (GLenum, GLenum, GLenum, GLint *);
|
||||
GLAPI void APIENTRY glGenerateMipmapEXT (GLenum);
|
||||
#endif /* GL_GLEXT_PROTOTYPES */
|
||||
typedef GLboolean (APIENTRYP PFNGLISRENDERBUFFEREXTPROC) (GLuint renderbuffer);
|
||||
typedef void (APIENTRYP PFNGLBINDRENDERBUFFEREXTPROC) (GLenum target, GLuint renderbuffer);
|
||||
typedef void (APIENTRYP PFNGLDELETERENDERBUFFERSEXTPROC) (GLsizei n, const GLuint *renderbuffers);
|
||||
typedef void (APIENTRYP PFNGLGENRENDERBUFFERSEXTPROC) (GLsizei n, GLuint *renderbuffers);
|
||||
typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
|
||||
typedef void (APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
|
||||
typedef GLboolean (APIENTRYP PFNGLISFRAMEBUFFEREXTPROC) (GLuint framebuffer);
|
||||
typedef void (APIENTRYP PFNGLBINDFRAMEBUFFEREXTPROC) (GLenum target, GLuint framebuffer);
|
||||
typedef void (APIENTRYP PFNGLDELETEFRAMEBUFFERSEXTPROC) (GLsizei n, const GLuint *framebuffers);
|
||||
typedef void (APIENTRYP PFNGLGENFRAMEBUFFERSEXTPROC) (GLsizei n, GLuint *framebuffers);
|
||||
typedef GLenum (APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC) (GLenum target);
|
||||
typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE1DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
|
||||
typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
|
||||
typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
|
||||
typedef void (APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
|
||||
typedef void (APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params);
|
||||
typedef void (APIENTRYP PFNGLGENERATEMIPMAPEXTPROC) (GLenum target);
|
||||
#endif
|
||||
|
||||
#ifndef GL_GREMEDY_string_marker
|
||||
#define GL_GREMEDY_string_marker 1
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glStringMarkerGREMEDY (GLsizei, const GLvoid *);
|
||||
#endif /* GL_GLEXT_PROTOTYPES */
|
||||
typedef void (APIENTRYP PFNGLSTRINGMARKERGREMEDYPROC) (GLsizei len, const GLvoid *string);
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
@@ -62,7 +62,10 @@ extern const char *
|
||||
glFBDevGetString( int str );
|
||||
|
||||
|
||||
extern const void *
|
||||
typedef void (*GLFBDevProc)();
|
||||
|
||||
|
||||
extern const GLFBDevProc
|
||||
glFBDevGetProcAddress( const char *procName );
|
||||
|
||||
|
||||
|
@@ -193,13 +193,11 @@ WGLAPI int GLAPIENTRY SetPixelFormat(HDC,int,const PIXELFORMATDESCRIPTOR *);
|
||||
#else /* _WIN32 not defined */
|
||||
|
||||
/* Define GLUTAPIENTRY and GLUTCALLBACK to nothing if we aren't on Win32. */
|
||||
# define GLUTAPIENTRY
|
||||
# define GLUTAPIENTRY GLAPIENTRY
|
||||
# define GLUTAPIENTRYV
|
||||
# define GLUT_APIENTRY_DEFINED
|
||||
# define GLUTCALLBACK
|
||||
# define GLUTAPI extern
|
||||
/* Prototype exit for the non-Win32 case (see above). */
|
||||
/*extern void exit(int); this screws up gcc -ansi -pedantic! */
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -747,26 +745,4 @@ GLUTAPI int GLUTAPIENTRY glutGameModeGet(GLenum mode);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if 0
|
||||
#ifdef GLUT_APIENTRY_DEFINED
|
||||
# undef GLUT_APIENTRY_DEFINED
|
||||
# undef APIENTRY
|
||||
#endif
|
||||
|
||||
#ifdef GLUT_WINGDIAPI_DEFINED
|
||||
# undef GLUT_WINGDIAPI_DEFINED
|
||||
# undef WINGDIAPI
|
||||
#endif
|
||||
|
||||
#ifdef GLUT_DEFINED___CDECL
|
||||
# undef GLUT_DEFINED___CDECL
|
||||
# undef __cdecl
|
||||
#endif
|
||||
|
||||
#ifdef GLUT_DEFINED__CRTIMP
|
||||
# undef GLUT_DEFINED__CRTIMP
|
||||
# undef _CRTIMP
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif /* __glut_h__ */
|
||||
|
@@ -482,6 +482,21 @@ typedef GLuint (* PFNGLXGETAGPOFFSETMESAPROC) (const GLvoid *pointer);
|
||||
#endif /* GLX_MESA_agp_offset */
|
||||
|
||||
|
||||
/*
|
||||
* ???. GLX_MESA_allocate_memory
|
||||
*/
|
||||
#ifndef GLX_MESA_allocate_memory
|
||||
#define GLX_MESA_allocate_memory 1
|
||||
|
||||
extern void *glXAllocateMemoryMESA(Display *dpy, int scrn, size_t size, float readfreq, float writefreq, float priority);
|
||||
extern void glXFreeMemoryMESA(Display *dpy, int scrn, void *pointer);
|
||||
extern GLuint glXGetMemoryOffsetMESA(Display *dpy, int scrn, const void *pointer);
|
||||
typedef void * ( * PFNGLXALLOCATEMEMORYMESAPROC) (Display *dpy, int scrn, size_t size, float readfreq, float writefreq, float priority);
|
||||
typedef void ( * PFNGLXFREEMEMORYMESAPROC) (Display *dpy, int scrn, void *pointer);
|
||||
typedef GLuint (* PFNGLXGETMEMORYOFFSETMESAPROC) (Display *dpy, int scrn, const void *pointer);
|
||||
|
||||
#endif /* GLX_MESA_allocate_memory */
|
||||
|
||||
/*
|
||||
* ARB ?. GLX_ARB_render_texture
|
||||
*/
|
||||
@@ -506,6 +521,28 @@ extern Bool glXDrawableAttribARB(Display *dpy, GLXDrawable draw, const int *attr
|
||||
#endif /* GLX_NV_float_buffer */
|
||||
|
||||
|
||||
/*** Should these go here, or in another header? */
|
||||
/*
|
||||
** GLX Events
|
||||
*/
|
||||
typedef struct {
|
||||
int event_type; /* GLX_DAMAGED or GLX_SAVED */
|
||||
int draw_type; /* GLX_WINDOW or GLX_PBUFFER */
|
||||
unsigned long serial; /* # of last request processed by server */
|
||||
Bool send_event; /* true if this came for SendEvent request */
|
||||
Display *display; /* display the event was read from */
|
||||
GLXDrawable drawable; /* XID of Drawable */
|
||||
unsigned int buffer_mask; /* mask indicating which buffers are affected */
|
||||
unsigned int aux_buffer; /* which aux buffer was affected */
|
||||
int x, y;
|
||||
int width, height;
|
||||
int count; /* if nonzero, at least this many more */
|
||||
} GLXPbufferClobberEvent;
|
||||
|
||||
typedef union __GLXEvent {
|
||||
GLXPbufferClobberEvent glxpbufferclobber;
|
||||
long pad[24];
|
||||
} GLXEvent;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
@@ -331,13 +331,24 @@ typedef struct {
|
||||
} GLXBufferClobberEventSGIX;
|
||||
#endif
|
||||
|
||||
#if defined(__UNIXOS2__) || defined(__SOL64__)
|
||||
#if defined(__sun__)
|
||||
#include <inttypes.h>
|
||||
#if defined(__STDC__)
|
||||
#if defined(__arch64__)
|
||||
typedef long int int64_t;
|
||||
#else
|
||||
typedef long long int int64_t;
|
||||
#endif /* __arch64__ */
|
||||
#endif /* __STDC__ */
|
||||
#elif defined(__UNIXOS2__) || defined(__SOL64__)
|
||||
typedef long int int32_t;
|
||||
typedef long long int int64_t;
|
||||
#elif defined( __VMS )
|
||||
#include <inttypes.h>
|
||||
#elif defined(__SCO__) || defined(__USLC__)
|
||||
#include <stdint.h>
|
||||
#elif defined(WIN32) && defined(__GNUC__)
|
||||
#include <stdint.h>
|
||||
#endif
|
||||
|
||||
#ifndef GLX_VERSION_1_3
|
||||
|
@@ -38,12 +38,6 @@
|
||||
#ifndef DRI_INTERFACE_H
|
||||
#define DRI_INTERFACE_H
|
||||
|
||||
#ifndef DRI_NEW_INTERFACE_ONLY
|
||||
# include <X11/X.h>
|
||||
# include <GL/glx.h>
|
||||
# include "GL/glxint.h"
|
||||
#endif
|
||||
|
||||
#include <GL/internal/glcore.h>
|
||||
#include <xf86drm.h>
|
||||
#include <drm.h>
|
||||
@@ -62,6 +56,7 @@ typedef struct __DRIdrawableRec __DRIdrawable;
|
||||
typedef struct __DRIdriverRec __DRIdriver;
|
||||
typedef struct __DRIframebufferRec __DRIframebuffer;
|
||||
typedef struct __DRIversionRec __DRIversion;
|
||||
typedef struct __DRIinterfaceMethodsRec __DRIinterfaceMethods;
|
||||
typedef unsigned long __DRIid;
|
||||
typedef void __DRInativeDisplay;
|
||||
/*@}*/
|
||||
@@ -71,42 +66,6 @@ typedef void __DRInativeDisplay;
|
||||
* \name Functions provided by the driver loader.
|
||||
*/
|
||||
/*@{*/
|
||||
extern __DRIscreen *__glXFindDRIScreen(__DRInativeDisplay *dpy, int scrn);
|
||||
|
||||
|
||||
/**
|
||||
* Type of a pointer to \c __glXGetInternalVersion, as returned by
|
||||
* \c glXGetProcAddress.
|
||||
*
|
||||
* \sa __glXGetInternalVersion, glXGetProcAddress
|
||||
*/
|
||||
typedef int (* PFNGLXGETINTERNALVERSIONPROC) ( void );
|
||||
|
||||
/**
|
||||
* Type of a pointer to \c __glXWindowExists, as returned by
|
||||
* \c glXGetProcAddress.
|
||||
*
|
||||
* \sa __glXWindowExists, glXGetProcAddress
|
||||
*/
|
||||
typedef GLboolean (* PFNGLXWINDOWEXISTSPROC) (__DRInativeDisplay *dpy, __DRIid draw);
|
||||
|
||||
/**
|
||||
* Type of a pointer to \c __glXGetUST, as returned by \c glXGetProcAddress.
|
||||
*
|
||||
* \sa __glXGetUST, glXGetProcAddress
|
||||
*/
|
||||
typedef int (* PFNGLXGETUSTPROC) ( int64_t * ust );
|
||||
|
||||
/**
|
||||
* Type of pointer to \c __glXCreateContextModes, as returned by
|
||||
* \c glXGetProcAddress.
|
||||
*
|
||||
* \sa _gl_context_modes_create, glXGetProcAddress
|
||||
*/
|
||||
|
||||
typedef __GLcontextModes * (* PFNGLXCREATECONTEXTMODES) ( unsigned count,
|
||||
size_t minimum_bytes_per_struct );
|
||||
|
||||
/**
|
||||
* Type of a pointer to \c glXGetScreenDriver, as returned by
|
||||
* \c glXGetProcAddress. This function is used to get the name of the DRI
|
||||
@@ -127,39 +86,11 @@ typedef const char * (* PFNGLXGETSCREENDRIVERPROC) (__DRInativeDisplay *dpy, int
|
||||
typedef const char * (* PFNGLXGETDRIVERCONFIGPROC) (const char *driverName);
|
||||
|
||||
/**
|
||||
* Type of a pointer to \c __glXScrEnableExtension, as returned by
|
||||
* \c glXGetProcAddress. This function is used to enable a GLX extension
|
||||
* on the specified screen.
|
||||
*
|
||||
* \sa __glXScrEnableExtension, glXGetProcAddress
|
||||
* Type of a pointer to \c glxEnableExtension, as returned by
|
||||
* \c __DRIinterfaceMethods::getProcAddress. This function is used to enable
|
||||
* a GLX extension on the specified screen.
|
||||
*/
|
||||
typedef void (* PFNGLXSCRENABLEEXTENSIONPROC) ( void *psc, const char * name );
|
||||
|
||||
/**
|
||||
* Type of a pointer to \c __glXGetDrawableInfo, as returned by
|
||||
* \c glXGetProcAddress. This function is used to get information about the
|
||||
* position, size, and clip rects of a drawable.
|
||||
*
|
||||
* \sa __glXGetDrawableInfo, glXGetProcAddress
|
||||
*/
|
||||
typedef GLboolean (* PFNGLXGETDRAWABLEINFOPROC) ( __DRInativeDisplay *dpy, int scrn,
|
||||
__DRIid draw, unsigned int * index, unsigned int * stamp,
|
||||
int * x, int * y, int * width, int * height,
|
||||
int * numClipRects, drm_clip_rect_t ** pClipRects,
|
||||
int * backX, int * backY,
|
||||
int * numBackClipRects, drm_clip_rect_t ** pBackClipRects );
|
||||
|
||||
/* Test for the xf86dri.h header file */
|
||||
#ifndef _XF86DRI_H_
|
||||
extern GLboolean XF86DRIDestroyContext( __DRInativeDisplay *dpy, int screen,
|
||||
__DRIid context_id );
|
||||
|
||||
extern GLboolean XF86DRICreateDrawable( __DRInativeDisplay *dpy, int screen,
|
||||
__DRIid drawable, drm_drawable_t *hHWDrawable );
|
||||
|
||||
extern GLboolean XF86DRIDestroyDrawable( __DRInativeDisplay *dpy, int screen,
|
||||
__DRIid drawable);
|
||||
#endif
|
||||
/*@}*/
|
||||
|
||||
|
||||
@@ -173,16 +104,10 @@ typedef void *(CREATENEWSCREENFUNC)(__DRInativeDisplay *dpy, int scrn,
|
||||
const __DRIversion * ddx_version, const __DRIversion * dri_version,
|
||||
const __DRIversion * drm_version, const __DRIframebuffer * frame_buffer,
|
||||
void * pSAREA, int fd, int internal_api_version,
|
||||
const __DRIinterfaceMethods * interface,
|
||||
__GLcontextModes ** driver_modes);
|
||||
typedef CREATENEWSCREENFUNC* PFNCREATENEWSCREENFUNC;
|
||||
extern CREATENEWSCREENFUNC __driCreateNewScreen;
|
||||
|
||||
#ifndef DRI_NEW_INTERFACE_ONLY
|
||||
|
||||
extern void *__driCreateScreen(Display *dpy, int scrn, __DRIscreen *psc,
|
||||
int numConfigs, __GLXvisualConfig *config);
|
||||
|
||||
#endif /* DRI_NEW_INTERFACE_ONLY */
|
||||
extern CREATENEWSCREENFUNC __driCreateNewScreen_20050727;
|
||||
|
||||
|
||||
/**
|
||||
@@ -209,6 +134,113 @@ struct __DRIversionRec {
|
||||
int patch; /**< Patch-level. */
|
||||
};
|
||||
|
||||
|
||||
typedef void (*__DRIfuncPtr)(void);
|
||||
|
||||
struct __DRIinterfaceMethodsRec {
|
||||
/**
|
||||
* Get pointer to named function.
|
||||
*/
|
||||
__DRIfuncPtr (*getProcAddress)( const char * proc_name );
|
||||
|
||||
/**
|
||||
* Create a list of \c __GLcontextModes structures.
|
||||
*/
|
||||
__GLcontextModes * (*createContextModes)(unsigned count,
|
||||
size_t minimum_bytes_per_struct);
|
||||
|
||||
/**
|
||||
* Destroy a list of \c __GLcontextModes structures.
|
||||
*
|
||||
* \todo
|
||||
* Determine if the drivers actually need to call this.
|
||||
*/
|
||||
void (*destroyContextModes)( __GLcontextModes * modes );
|
||||
|
||||
/**
|
||||
* Get the \c __DRIscreen for a given display and screen number.
|
||||
*/
|
||||
__DRIscreen *(*getScreen)(__DRInativeDisplay *dpy, int screenNum);
|
||||
|
||||
|
||||
/**
|
||||
* \name Client/server protocol functions.
|
||||
*
|
||||
* These functions implement the DRI client/server protocol for
|
||||
* context and drawable operations. Platforms that do not implement
|
||||
* the wire protocol (e.g., EGL) will implement glorified no-op functions.
|
||||
*/
|
||||
/*@{*/
|
||||
/**
|
||||
* Determine if the specified window ID still exists.
|
||||
*
|
||||
* \note
|
||||
* Implementations may assume that the driver will only pass an ID into
|
||||
* this function that actually corresponds to a window. On
|
||||
* implementations where windows can only be destroyed by the DRI driver
|
||||
* (e.g., EGL), this function is allowed to always return \c GL_TRUE.
|
||||
*/
|
||||
GLboolean (*windowExists)(__DRInativeDisplay *dpy, __DRIid draw);
|
||||
|
||||
/**
|
||||
* Create the server-side portion of the GL context.
|
||||
*/
|
||||
GLboolean (* createContext)( __DRInativeDisplay *dpy, int screenNum,
|
||||
int configID, void * contextID, drm_context_t * hw_context );
|
||||
|
||||
/**
|
||||
* Destroy the server-side portion of the GL context.
|
||||
*/
|
||||
GLboolean (* destroyContext)( __DRInativeDisplay *dpy, int screenNum,
|
||||
__DRIid context );
|
||||
|
||||
/**
|
||||
* Create the server-side portion of the drawable.
|
||||
*/
|
||||
GLboolean (*createDrawable)( __DRInativeDisplay * ndpy, int screen,
|
||||
__DRIid drawable, drm_drawable_t * hHWDrawable );
|
||||
|
||||
/**
|
||||
* Destroy the server-side portion of the drawable.
|
||||
*/
|
||||
GLboolean (*destroyDrawable)( __DRInativeDisplay * ndpy, int screen,
|
||||
__DRIid drawable );
|
||||
|
||||
/**
|
||||
* This function is used to get information about the position, size, and
|
||||
* clip rects of a drawable.
|
||||
*/
|
||||
GLboolean (* getDrawableInfo) ( __DRInativeDisplay *dpy, int scrn,
|
||||
__DRIid draw, unsigned int * index, unsigned int * stamp,
|
||||
int * x, int * y, int * width, int * height,
|
||||
int * numClipRects, drm_clip_rect_t ** pClipRects,
|
||||
int * backX, int * backY,
|
||||
int * numBackClipRects, drm_clip_rect_t ** pBackClipRects );
|
||||
/*@}*/
|
||||
|
||||
|
||||
/**
|
||||
* \name Timing related functions.
|
||||
*/
|
||||
/*@{*/
|
||||
/**
|
||||
* Get the 64-bit unadjusted system time (UST).
|
||||
*/
|
||||
int (*getUST)(int64_t * ust);
|
||||
|
||||
/**
|
||||
* Get the media stream counter (MSC) rate.
|
||||
*
|
||||
* Matching the definition in GLX_OML_sync_control, this function returns
|
||||
* the rate of the "media stream counter". In practical terms, this is
|
||||
* the frame refresh rate of the display.
|
||||
*/
|
||||
GLboolean (*getMSCRate)(__DRInativeDisplay * dpy, __DRIid drawable,
|
||||
int32_t * numerator, int32_t * denominator);
|
||||
/*@}*/
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Framebuffer information record. Used by libGL to communicate information
|
||||
* about the framebuffer to the driver's \c __driCreateNewScreen function.
|
||||
@@ -247,25 +279,6 @@ struct __DRIscreenRec {
|
||||
*/
|
||||
void (*destroyScreen)(__DRInativeDisplay *dpy, int scrn, void *screenPrivate);
|
||||
|
||||
/**
|
||||
* Method to create the private DRI context data and initialize the
|
||||
* context dependent methods.
|
||||
*
|
||||
* \sa __DRIscreenRec::createNewContext driCreateContext
|
||||
* driCreateNewContext
|
||||
*
|
||||
* \deprecated
|
||||
* This function has been replaced by \c __DRIscreenRec::createNewContext.
|
||||
* New drivers will continue to export this method, but it will eventually
|
||||
* (in the next XFree86 major relearse) go away.
|
||||
*/
|
||||
#ifndef DRI_NEW_INTERFACE_ONLY
|
||||
void *(*createContext)(Display *dpy, XVisualInfo *vis, void *sharedPrivate,
|
||||
__DRIcontext *pctx);
|
||||
#else
|
||||
void * createContext;
|
||||
#endif /* DRI_NEW_INTERFACE_ONLY */
|
||||
|
||||
/**
|
||||
* Method to create the private DRI drawable data and initialize the
|
||||
* drawable dependent methods.
|
||||
@@ -341,30 +354,6 @@ struct __DRIcontextRec {
|
||||
*/
|
||||
void (*destroyContext)(__DRInativeDisplay *dpy, int scrn, void *contextPrivate);
|
||||
|
||||
/**
|
||||
* Method to bind a DRI drawable to a DRI graphics context.
|
||||
*
|
||||
* \deprecated Replaced by bindContext3.
|
||||
*/
|
||||
#ifndef DRI_NEW_INTERFACE_ONLY
|
||||
Bool (*bindContext)(Display *dpy, int scrn, GLXDrawable draw,
|
||||
GLXContext gc);
|
||||
#else
|
||||
void *bindContext;
|
||||
#endif /* DRI_NEW_INTERFACE_ONLY */
|
||||
|
||||
/**
|
||||
* Method to unbind a DRI drawable to a DRI graphics context.
|
||||
*
|
||||
* \deprecated Replaced by unbindContext3.
|
||||
*/
|
||||
#ifndef DRI_NEW_INTERFACE_ONLY
|
||||
Bool (*unbindContext)(Display *dpy, int scrn, GLXDrawable draw,
|
||||
GLXContext gc, int will_rebind);
|
||||
#else
|
||||
void *unbindContext;
|
||||
#endif /* DRI_NEW_INTERFACE_ONLY */
|
||||
|
||||
/**
|
||||
* Opaque pointer to private per context direct rendering data.
|
||||
* \c NULL if direct rendering is not supported on the display or
|
||||
@@ -372,32 +361,6 @@ struct __DRIcontextRec {
|
||||
*/
|
||||
void *private;
|
||||
|
||||
/**
|
||||
* Method to bind a DRI drawable to a DRI graphics context.
|
||||
*
|
||||
* \since Internal API version 20030606.
|
||||
* \deprecated Replaced by bindContext3.
|
||||
*/
|
||||
#ifndef DRI_NEW_INTERFACE_ONLY
|
||||
Bool (*bindContext2)(Display *dpy, int scrn, GLXDrawable draw,
|
||||
GLXDrawable read, GLXContext gc);
|
||||
#else
|
||||
void *bindContext2;
|
||||
#endif /* DRI_NEW_INTERFACE_ONLY */
|
||||
|
||||
/**
|
||||
* Method to unbind a DRI drawable from a DRI graphics context.
|
||||
*
|
||||
* \since Internal API version 20030606.
|
||||
* \deprecated Replaced by unbindContext3.
|
||||
*/
|
||||
#ifndef DRI_NEW_INTERFACE_ONLY
|
||||
Bool (*unbindContext2)(Display *dpy, int scrn, GLXDrawable draw,
|
||||
GLXDrawable read, GLXContext gc);
|
||||
#else
|
||||
void *unbindContext2;
|
||||
#endif /* DRI_NEW_INTERFACE_ONLY */
|
||||
|
||||
/**
|
||||
* Pointer to the mode used to create this context.
|
||||
*
|
||||
@@ -408,17 +371,17 @@ struct __DRIcontextRec {
|
||||
/**
|
||||
* Method to bind a DRI drawable to a DRI graphics context.
|
||||
*
|
||||
* \since Internal API version 20040415.
|
||||
* \since Internal API version 20050727.
|
||||
*/
|
||||
GLboolean (*bindContext3)(__DRInativeDisplay *dpy, int scrn, __DRIid draw,
|
||||
GLboolean (*bindContext)(__DRInativeDisplay *dpy, int scrn, __DRIid draw,
|
||||
__DRIid read, __DRIcontext *ctx);
|
||||
|
||||
/**
|
||||
* Method to unbind a DRI drawable from a DRI graphics context.
|
||||
*
|
||||
* \since Internal API version 20040415.
|
||||
* \since Internal API version 20050727.
|
||||
*/
|
||||
GLboolean (*unbindContext3)(__DRInativeDisplay *dpy, int scrn, __DRIid draw,
|
||||
GLboolean (*unbindContext)(__DRInativeDisplay *dpy, int scrn, __DRIid draw,
|
||||
__DRIid read, __DRIcontext *ctx);
|
||||
};
|
||||
|
||||
|
@@ -52,14 +52,20 @@ extern "C" {
|
||||
*
|
||||
* It can have the values #True or #False.
|
||||
*/
|
||||
#ifndef MINIGLX_NO_XTYPES
|
||||
typedef int Bool;
|
||||
#endif
|
||||
typedef int MINI_Bool;
|
||||
|
||||
/**
|
||||
* \brief Color map.
|
||||
*
|
||||
* Alias for private ::MiniGLXColormapRec structure.
|
||||
*/
|
||||
typedef struct MiniGLXColormapRec *MINI_Colormap;
|
||||
#ifndef MINIGLX_NO_XTYPES
|
||||
typedef struct MiniGLXColormapRec *Colormap;
|
||||
#endif
|
||||
|
||||
/**
|
||||
* \brief Window attributes.
|
||||
@@ -67,7 +73,7 @@ typedef struct MiniGLXColormapRec *Colormap;
|
||||
typedef struct MiniGLXSetWindowAttributesRec {
|
||||
int background_pixel; /**< \brief background pixel */
|
||||
int border_pixel; /**< \brief border pixel value */
|
||||
Colormap colormap; /**< \brief color map to be associated with window */
|
||||
MINI_Colormap colormap; /**< \brief color map to be associated with window */
|
||||
int event_mask; /**< \brief set of events that should be saved */
|
||||
} XSetWindowAttributes;
|
||||
|
||||
@@ -85,10 +91,13 @@ typedef struct MiniGLXVisualRec Visual;
|
||||
*
|
||||
* \sa \ref datatypes.
|
||||
*/
|
||||
typedef unsigned int VisualID;
|
||||
#ifndef MINIGLX_NO_XTYPES
|
||||
typedef unsigned long VisualID;
|
||||
#endif
|
||||
typedef unsigned long MINI_VisualID;
|
||||
typedef struct MiniGLXXVisualInfoRec {
|
||||
Visual *visual; /**< \brief pointer to the GLX Visual */
|
||||
VisualID visualid; /**< \brief visual ID */
|
||||
MINI_VisualID visualid; /**< \brief visual ID */
|
||||
int screen; /**< \brief screen number */
|
||||
int depth; /**< \brief bit depth */
|
||||
#if defined(__cplusplus) || defined(c_plusplus)
|
||||
@@ -115,7 +124,10 @@ typedef struct MiniGLXFBConfigRec {
|
||||
*
|
||||
* \sa \ref datatypes.
|
||||
*/
|
||||
#ifndef MINIGLX_NO_XTYPES
|
||||
typedef struct MiniGLXDisplayRec Display;
|
||||
#endif
|
||||
typedef struct MiniGLXDisplayRec MINI_Display;
|
||||
|
||||
/**
|
||||
* \brief Window handle.
|
||||
@@ -124,7 +136,10 @@ typedef struct MiniGLXDisplayRec Display;
|
||||
*
|
||||
* \sa \ref datatypes.
|
||||
*/
|
||||
#ifndef MINIGLX_NO_XTYPES
|
||||
typedef struct MiniGLXWindowRec *Window;
|
||||
#endif
|
||||
typedef struct MiniGLXWindowRec *MINI_Window;
|
||||
|
||||
/**
|
||||
* \brief Drawable.
|
||||
@@ -136,7 +151,10 @@ typedef struct MiniGLXWindowRec *Window;
|
||||
*
|
||||
* \sa \ref datatypes.
|
||||
*/
|
||||
#ifndef MINIGLX_NO_XTYPES
|
||||
typedef struct MiniGLXWindowRec *Drawable;
|
||||
#endif
|
||||
typedef struct MiniGLXWindowRec *MINI_Drawable;
|
||||
|
||||
/**
|
||||
* \brief GLX drawable.
|
||||
@@ -174,9 +192,9 @@ typedef struct MiniGLXContextRec *GLXContext;
|
||||
typedef struct {
|
||||
int type;
|
||||
unsigned long serial; /* # of last request processed by server */
|
||||
Bool send_event; /* true if this came from a SendEvent request */
|
||||
Display *display; /* Display the event was read from */
|
||||
Window window;
|
||||
MINI_Bool send_event; /* true if this came from a SendEvent request */
|
||||
MINI_Display *display; /* Display the event was read from */
|
||||
MINI_Window window;
|
||||
int x, y;
|
||||
int width, height;
|
||||
int count; /* if non-zero, at least this many more */
|
||||
@@ -185,53 +203,53 @@ typedef struct {
|
||||
typedef struct {
|
||||
int type;
|
||||
unsigned long serial; /* # of last request processed by server */
|
||||
Bool send_event; /* true if this came from a SendEvent request */
|
||||
Display *display; /* Display the event was read from */
|
||||
Window parent; /* parent of the window */
|
||||
Window window; /* window id of window created */
|
||||
MINI_Bool send_event; /* true if this came from a SendEvent request */
|
||||
MINI_Display *display; /* Display the event was read from */
|
||||
MINI_Window parent; /* parent of the window */
|
||||
MINI_Window window; /* window id of window created */
|
||||
int x, y; /* window location */
|
||||
int width, height; /* size of window */
|
||||
int border_width; /* border width */
|
||||
Bool override_redirect; /* creation should be overridden */
|
||||
MINI_Bool override_redirect; /* creation should be overridden */
|
||||
} XCreateWindowEvent;
|
||||
|
||||
typedef struct {
|
||||
int type;
|
||||
unsigned long serial; /* # of last request processed by server */
|
||||
Bool send_event; /* true if this came from a SendEvent request */
|
||||
Display *display; /* Display the event was read from */
|
||||
Window event;
|
||||
Window window;
|
||||
MINI_Bool send_event; /* true if this came from a SendEvent request */
|
||||
MINI_Display *display; /* Display the event was read from */
|
||||
MINI_Window event;
|
||||
MINI_Window window;
|
||||
} XDestroyWindowEvent;
|
||||
|
||||
typedef struct {
|
||||
int type;
|
||||
unsigned long serial; /* # of last request processed by server */
|
||||
Bool send_event; /* true if this came from a SendEvent request */
|
||||
Display *display; /* Display the event was read from */
|
||||
Window event;
|
||||
Window window;
|
||||
Bool from_configure;
|
||||
MINI_Bool send_event; /* true if this came from a SendEvent request */
|
||||
MINI_Display *display; /* Display the event was read from */
|
||||
MINI_Window event;
|
||||
MINI_Window window;
|
||||
MINI_Bool from_configure;
|
||||
} XUnmapEvent;
|
||||
|
||||
typedef struct {
|
||||
int type;
|
||||
unsigned long serial; /* # of last request processed by server */
|
||||
Bool send_event; /* true if this came from a SendEvent request */
|
||||
Display *display; /* Display the event was read from */
|
||||
Window event;
|
||||
Window window;
|
||||
Bool override_redirect; /* boolean, is override set... */
|
||||
MINI_Bool send_event; /* true if this came from a SendEvent request */
|
||||
MINI_Display *display; /* Display the event was read from */
|
||||
MINI_Window event;
|
||||
MINI_Window window;
|
||||
MINI_Bool override_redirect; /* boolean, is override set... */
|
||||
} XMapEvent;
|
||||
|
||||
|
||||
typedef struct {
|
||||
int type;
|
||||
unsigned long serial; /* # of last request processed by server */
|
||||
Bool send_event; /* true if this came from a SendEvent request */
|
||||
Display *display; /* Display the event was read from */
|
||||
Window parent;
|
||||
Window window;
|
||||
MINI_Bool send_event; /* true if this came from a SendEvent request */
|
||||
MINI_Display *display; /* Display the event was read from */
|
||||
MINI_Window parent;
|
||||
MINI_Window window;
|
||||
} XMapRequestEvent;
|
||||
|
||||
typedef union _XEvent {
|
||||
@@ -263,6 +281,7 @@ typedef union _XEvent {
|
||||
#define CWColormap (1L<<13)
|
||||
#define PseudoColor 3
|
||||
#define TrueColor 4
|
||||
#define VisualIDMask 0x1
|
||||
#define VisualScreenMask 0x2
|
||||
#define Expose 12
|
||||
#define CreateNotify 16
|
||||
@@ -318,11 +337,11 @@ typedef union _XEvent {
|
||||
/**
|
||||
* \name Server-specific functions
|
||||
*/
|
||||
extern Display *
|
||||
extern MINI_Display *
|
||||
__miniglx_StartServer( const char *display_name );
|
||||
|
||||
extern int
|
||||
__miniglx_Select( Display *dpy, int maxfd,
|
||||
__miniglx_Select( MINI_Display *dpy, int maxfd,
|
||||
fd_set *rfds, fd_set *wfds, fd_set *xfds,
|
||||
struct timeval *tv );
|
||||
|
||||
@@ -331,25 +350,25 @@ __miniglx_Select( Display *dpy, int maxfd,
|
||||
* \name Simulated Xlib functions
|
||||
*/
|
||||
/*@{*/
|
||||
extern Display *
|
||||
extern MINI_Display *
|
||||
XOpenDisplay( const char *dpy_name );
|
||||
|
||||
|
||||
extern void
|
||||
XCloseDisplay( Display *display );
|
||||
XCloseDisplay( MINI_Display *display );
|
||||
|
||||
extern Window
|
||||
XCreateWindow( Display *display, Window parent, int x, int y,
|
||||
extern MINI_Window
|
||||
XCreateWindow( MINI_Display *display, MINI_Window parent, int x, int y,
|
||||
unsigned int width, unsigned int height,
|
||||
unsigned int border_width, int depth, unsigned int winclass,
|
||||
Visual *visual, unsigned long valuemask,
|
||||
XSetWindowAttributes *attributes );
|
||||
|
||||
extern int
|
||||
XNextEvent(Display *display, XEvent *event_return);
|
||||
XNextEvent(MINI_Display *display, XEvent *event_return);
|
||||
|
||||
extern Bool
|
||||
XCheckMaskEvent( Display *dpy, long event_mask, XEvent *event_return );
|
||||
extern MINI_Bool
|
||||
XCheckMaskEvent( MINI_Display *dpy, long event_mask, XEvent *event_return );
|
||||
|
||||
/**
|
||||
* \brief Return the root window.
|
||||
@@ -365,27 +384,27 @@ XCheckMaskEvent( Display *dpy, long event_mask, XEvent *event_return );
|
||||
#define DefaultScreen(dpy) 0
|
||||
|
||||
extern void
|
||||
XDestroyWindow( Display *display, Window w );
|
||||
XDestroyWindow( MINI_Display *display, MINI_Window w );
|
||||
|
||||
extern void
|
||||
XMapWindow( Display *display, Window w );
|
||||
XMapWindow( MINI_Display *display, MINI_Window w );
|
||||
|
||||
/* Should clients have access to this?
|
||||
*/
|
||||
extern void
|
||||
XUnmapWindow( Display *display, Window w );
|
||||
XUnmapWindow( MINI_Display *display, MINI_Window w );
|
||||
|
||||
extern Colormap
|
||||
XCreateColormap( Display *display, Window w, Visual *visual, int alloc );
|
||||
extern MINI_Colormap
|
||||
XCreateColormap( MINI_Display *display, MINI_Window w, Visual *visual, int alloc );
|
||||
|
||||
extern void
|
||||
XFreeColormap( Display *display, Colormap cmap );
|
||||
XFreeColormap( MINI_Display *display, MINI_Colormap cmap );
|
||||
|
||||
extern void
|
||||
XFree( void *data );
|
||||
|
||||
extern XVisualInfo *
|
||||
XGetVisualInfo( Display *display, long vinfo_mask,
|
||||
XGetVisualInfo( MINI_Display *display, long vinfo_mask,
|
||||
XVisualInfo *vinfo_template, int *nitems_return );
|
||||
/*@}*/
|
||||
|
||||
@@ -396,23 +415,23 @@ XGetVisualInfo( Display *display, long vinfo_mask,
|
||||
*/
|
||||
/*@{*/
|
||||
extern XVisualInfo*
|
||||
glXChooseVisual( Display *dpy, int screen, int *attribList );
|
||||
glXChooseVisual( MINI_Display *dpy, int screen, int *attribList );
|
||||
|
||||
extern int
|
||||
glXGetConfig( Display *dpy, XVisualInfo *vis, int attrib, int *value );
|
||||
glXGetConfig( MINI_Display *dpy, XVisualInfo *vis, int attrib, int *value );
|
||||
|
||||
extern GLXContext
|
||||
glXCreateContext( Display *dpy, XVisualInfo *vis,
|
||||
GLXContext shareList, Bool direct );
|
||||
glXCreateContext( MINI_Display *dpy, XVisualInfo *vis,
|
||||
GLXContext shareList, MINI_Bool direct );
|
||||
|
||||
extern void
|
||||
glXDestroyContext( Display *dpy, GLXContext ctx );
|
||||
glXDestroyContext( MINI_Display *dpy, GLXContext ctx );
|
||||
|
||||
extern Bool
|
||||
glXMakeCurrent( Display *dpy, GLXDrawable drawable, GLXContext ctx);
|
||||
extern MINI_Bool
|
||||
glXMakeCurrent( MINI_Display *dpy, GLXDrawable drawable, GLXContext ctx);
|
||||
|
||||
extern void
|
||||
glXSwapBuffers( Display *dpy, GLXDrawable drawable );
|
||||
glXSwapBuffers( MINI_Display *dpy, GLXDrawable drawable );
|
||||
|
||||
extern GLXContext
|
||||
glXGetCurrentContext( void );
|
||||
@@ -423,22 +442,35 @@ glXGetCurrentDrawable( void );
|
||||
extern void
|
||||
(*glXGetProcAddress(const GLubyte *procname))( void );
|
||||
|
||||
extern Bool
|
||||
glXQueryVersion( Display *dpy, int *major, int *minor );
|
||||
extern MINI_Bool
|
||||
glXQueryVersion( MINI_Display *dpy, int *major, int *minor );
|
||||
|
||||
/* Added in MiniGLX 1.1 */
|
||||
extern GLXPbuffer
|
||||
glXCreatePbuffer( Display *dpy, GLXFBConfig config, const int *attribList );
|
||||
glXCreatePbuffer( MINI_Display *dpy, GLXFBConfig config, const int *attribList );
|
||||
|
||||
extern void
|
||||
glXDestroyPbuffer( Display *dpy, GLXPbuffer pbuf );
|
||||
glXDestroyPbuffer( MINI_Display *dpy, GLXPbuffer pbuf );
|
||||
|
||||
extern GLXFBConfig *
|
||||
glXChooseFBConfig( Display *dpy, int screen, const int *attribList,
|
||||
glXChooseFBConfig( MINI_Display *dpy, int screen, const int *attribList,
|
||||
int *nitems );
|
||||
|
||||
extern XVisualInfo *
|
||||
glXGetVisualFromFBConfig( Display *dpy, GLXFBConfig config );
|
||||
glXGetVisualFromFBConfig( MINI_Display *dpy, GLXFBConfig config );
|
||||
|
||||
extern void *glXAllocateMemoryMESA(Display *dpy, int scrn,
|
||||
size_t size, float readFreq,
|
||||
float writeFreq, float priority);
|
||||
|
||||
extern void glXFreeMemoryMESA(Display *dpy, int scrn, void *pointer);
|
||||
|
||||
extern GLuint glXGetMemoryOffsetMESA( Display *dpy, int scrn,
|
||||
const void *pointer );
|
||||
/*@}*/
|
||||
|
||||
extern void
|
||||
__glXScrEnableExtension( void *, const char * name );
|
||||
|
||||
/*@}*/
|
||||
|
||||
|
274
include/GLES/egl.h
Normal file
274
include/GLES/egl.h
Normal file
@@ -0,0 +1,274 @@
|
||||
#ifndef _EGL_H
|
||||
#define _EGL_H
|
||||
|
||||
/*
|
||||
** License Applicability. Except to the extent portions of this file are
|
||||
** made subject to an alternative license as permitted in the SGI Free
|
||||
** Software License B, Version 1.0 (the "License"), the contents of this
|
||||
** file are subject only to the provisions of the License. You may not use
|
||||
** this file except in compliance with the License. You may obtain a copy
|
||||
** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600
|
||||
** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at:
|
||||
**
|
||||
** http://oss.sgi.com/projects/FreeB
|
||||
**
|
||||
** Note that, as provided in the License, the Software is distributed on an
|
||||
** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS
|
||||
** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND
|
||||
** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A
|
||||
** PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
|
||||
**
|
||||
** Original Code. The Original Code is: OpenGL Sample Implementation,
|
||||
** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics,
|
||||
** Inc. The Original Code is Copyright (c) 1991-2004 Silicon Graphics, Inc.
|
||||
** Copyright in any portions created by third parties is as indicated
|
||||
** elsewhere herein. All Rights Reserved.
|
||||
**
|
||||
** Additional Notice Provisions: The application programming interfaces
|
||||
** established by SGI in conjunction with the Original Code are The
|
||||
** OpenGL(R) Graphics System: A Specification (Version 1.2.1), released
|
||||
** April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version
|
||||
** 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X
|
||||
** Window System(R) (Version 1.3), released October 19, 1998. This software
|
||||
** was created using the OpenGL(R) version 1.2.1 Sample Implementation
|
||||
** published by SGI, but has not been independently verified as being
|
||||
** compliant with the OpenGL(R) version 1.2.1 Specification.
|
||||
*/
|
||||
|
||||
#if 0/*XXX TEMPORARY HACK*/
|
||||
#include <GLES/gl.h>
|
||||
#else
|
||||
#include <GL/gl.h>
|
||||
#endif
|
||||
#include <GLES/egltypes.h>
|
||||
|
||||
/* XXX should go in eglext.h */
|
||||
#define GL_OES_VERSION_1_0 1
|
||||
#define GL_OES_read_format 1
|
||||
#define GL_OES_compressed_paletted_texture 1
|
||||
#define GL_IMPLEMENTATION_COLOR_READ_TYPE_OES 0x8B9A
|
||||
#define GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES 0x8B9B
|
||||
#define GL_PALETTE4_RGB8_OES 0x8B90
|
||||
#define GL_PALETTE4_RGBA8_OES 0x8B91
|
||||
#define GL_PALETTE4_R5_G6_B5_OES 0x8B92
|
||||
#define GL_PALETTE4_RGBA4_OES 0x8B93
|
||||
#define GL_PALETTE4_RGB5_A1_OES 0x8B94
|
||||
#define GL_PALETTE8_RGB8_OES 0x8B95
|
||||
#define GL_PALETTE8_RGBA8_OES 0x8B96
|
||||
#define GL_PALETTE8_R5_G6_B5_OES 0x8B97
|
||||
#define GL_PALETTE8_RGBA4_OES 0x8B98
|
||||
#define GL_PALETTE8_RGB5_A1_OES 0x8B99
|
||||
/* XXX */
|
||||
|
||||
/*
|
||||
** Versioning and extensions
|
||||
*/
|
||||
#define EGL_VERSION_1_0 1
|
||||
#if 0
|
||||
#define EGL_VERSION_1_1 1
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Boolean
|
||||
*/
|
||||
#define EGL_FALSE 0
|
||||
#define EGL_TRUE 1
|
||||
|
||||
/*
|
||||
** Errors
|
||||
*/
|
||||
#define EGL_SUCCESS 0x3000
|
||||
#define EGL_NOT_INITIALIZED 0x3001
|
||||
#define EGL_BAD_ACCESS 0x3002
|
||||
#define EGL_BAD_ALLOC 0x3003
|
||||
#define EGL_BAD_ATTRIBUTE 0x3004
|
||||
#define EGL_BAD_CONFIG 0x3005
|
||||
#define EGL_BAD_CONTEXT 0x3006
|
||||
#define EGL_BAD_CURRENT_SURFACE 0x3007
|
||||
#define EGL_BAD_DISPLAY 0x3008
|
||||
#define EGL_BAD_MATCH 0x3009
|
||||
#define EGL_BAD_NATIVE_PIXMAP 0x300A
|
||||
#define EGL_BAD_NATIVE_WINDOW 0x300B
|
||||
#define EGL_BAD_PARAMETER 0x300C
|
||||
#define EGL_BAD_SURFACE 0x300D
|
||||
#define EGL_CONTEXT_LOST 0x300E
|
||||
/* 0x300F - 0x301F reserved for additional errors. */
|
||||
|
||||
/*
|
||||
** Config attributes
|
||||
*/
|
||||
#define EGL_BUFFER_SIZE 0x3020
|
||||
#define EGL_ALPHA_SIZE 0x3021
|
||||
#define EGL_BLUE_SIZE 0x3022
|
||||
#define EGL_GREEN_SIZE 0x3023
|
||||
#define EGL_RED_SIZE 0x3024
|
||||
#define EGL_DEPTH_SIZE 0x3025
|
||||
#define EGL_STENCIL_SIZE 0x3026
|
||||
#define EGL_CONFIG_CAVEAT 0x3027
|
||||
#define EGL_CONFIG_ID 0x3028
|
||||
#define EGL_LEVEL 0x3029
|
||||
#define EGL_MAX_PBUFFER_HEIGHT 0x302A
|
||||
#define EGL_MAX_PBUFFER_PIXELS 0x302B
|
||||
#define EGL_MAX_PBUFFER_WIDTH 0x302C
|
||||
#define EGL_NATIVE_RENDERABLE 0x302D
|
||||
#define EGL_NATIVE_VISUAL_ID 0x302E
|
||||
#define EGL_NATIVE_VISUAL_TYPE 0x302F
|
||||
/*#define EGL_PRESERVED_RESOURCES 0x3030*/
|
||||
#define EGL_SAMPLES 0x3031
|
||||
#define EGL_SAMPLE_BUFFERS 0x3032
|
||||
#define EGL_SURFACE_TYPE 0x3033
|
||||
#define EGL_TRANSPARENT_TYPE 0x3034
|
||||
#define EGL_TRANSPARENT_BLUE_VALUE 0x3035
|
||||
#define EGL_TRANSPARENT_GREEN_VALUE 0x3036
|
||||
#define EGL_TRANSPARENT_RED_VALUE 0x3037
|
||||
#define EGL_NONE 0x3038 /* Also a config value */
|
||||
#define EGL_BIND_TO_TEXTURE_RGB 0x3039
|
||||
#define EGL_BIND_TO_TEXTURE_RGBA 0x303A
|
||||
#define EGL_MIN_SWAP_INTERVAL 0x303B
|
||||
#define EGL_MAX_SWAP_INTERVAL 0x303C
|
||||
|
||||
/*
|
||||
** Config values
|
||||
*/
|
||||
#define EGL_DONT_CARE ((EGLint) -1)
|
||||
|
||||
#define EGL_SLOW_CONFIG 0x3050 /* EGL_CONFIG_CAVEAT value */
|
||||
#define EGL_NON_CONFORMANT_CONFIG 0x3051 /* " */
|
||||
#define EGL_TRANSPARENT_RGB 0x3052 /* EGL_TRANSPARENT_TYPE value */
|
||||
#define EGL_NO_TEXTURE 0x305C /* EGL_TEXTURE_FORMAT/TARGET value */
|
||||
#define EGL_TEXTURE_RGB 0x305D /* EGL_TEXTURE_FORMAT value */
|
||||
#define EGL_TEXTURE_RGBA 0x305E /* " */
|
||||
#define EGL_TEXTURE_2D 0x305F /* EGL_TEXTURE_TARGET value */
|
||||
|
||||
/*
|
||||
** Config attribute mask bits
|
||||
*/
|
||||
#define EGL_PBUFFER_BIT 0x01 /* EGL_SURFACE_TYPE mask bit */
|
||||
#define EGL_PIXMAP_BIT 0x02 /* " */
|
||||
#define EGL_WINDOW_BIT 0x04 /* " */
|
||||
|
||||
/*
|
||||
** String names
|
||||
*/
|
||||
#define EGL_VENDOR 0x3053 /* eglQueryString target */
|
||||
#define EGL_VERSION 0x3054 /* " */
|
||||
#define EGL_EXTENSIONS 0x3055 /* " */
|
||||
|
||||
/*
|
||||
** Surface attributes
|
||||
*/
|
||||
#define EGL_HEIGHT 0x3056
|
||||
#define EGL_WIDTH 0x3057
|
||||
#define EGL_LARGEST_PBUFFER 0x3058
|
||||
#define EGL_TEXTURE_FORMAT 0x3080 /* For pbuffers bound as textures */
|
||||
#define EGL_TEXTURE_TARGET 0x3081 /* " */
|
||||
#define EGL_MIPMAP_TEXTURE 0x3082 /* " */
|
||||
#define EGL_MIPMAP_LEVEL 0x3083 /* " */
|
||||
|
||||
/*
|
||||
** BindTexImage / ReleaseTexImage buffer target
|
||||
*/
|
||||
#define EGL_BACK_BUFFER 0x3084
|
||||
|
||||
/*
|
||||
** Current surfaces
|
||||
*/
|
||||
#define EGL_DRAW 0x3059
|
||||
#define EGL_READ 0x305A
|
||||
|
||||
/*
|
||||
** Engines
|
||||
*/
|
||||
#define EGL_CORE_NATIVE_ENGINE 0x305B
|
||||
|
||||
/* 0x305C-0x3FFFF reserved for future use */
|
||||
|
||||
/*
|
||||
** Functions
|
||||
*/
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
GLAPI EGLint APIENTRY eglGetError (void);
|
||||
|
||||
GLAPI EGLDisplay APIENTRY eglGetDisplay (NativeDisplayType display);
|
||||
GLAPI EGLBoolean APIENTRY eglInitialize (EGLDisplay dpy, EGLint *major, EGLint *minor);
|
||||
GLAPI EGLBoolean APIENTRY eglTerminate (EGLDisplay dpy);
|
||||
GLAPI const char * APIENTRY eglQueryString (EGLDisplay dpy, EGLint name);
|
||||
GLAPI void (* APIENTRY eglGetProcAddress (const char *procname))(void);
|
||||
|
||||
GLAPI EGLBoolean APIENTRY eglGetConfigs (EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config);
|
||||
GLAPI EGLBoolean APIENTRY eglChooseConfig (EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config);
|
||||
GLAPI EGLBoolean APIENTRY eglGetConfigAttrib (EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value);
|
||||
|
||||
GLAPI EGLSurface APIENTRY eglCreateWindowSurface (EGLDisplay dpy, EGLConfig config, NativeWindowType window, const EGLint *attrib_list);
|
||||
GLAPI EGLSurface APIENTRY eglCreatePixmapSurface (EGLDisplay dpy, EGLConfig config, NativePixmapType pixmap, const EGLint *attrib_list);
|
||||
GLAPI EGLSurface APIENTRY eglCreatePbufferSurface (EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list);
|
||||
GLAPI EGLBoolean APIENTRY eglDestroySurface (EGLDisplay dpy, EGLSurface surface);
|
||||
GLAPI EGLBoolean APIENTRY eglQuerySurface (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint *value);
|
||||
|
||||
/* EGL 1.1 render-to-texture APIs */
|
||||
GLAPI EGLBoolean APIENTRY eglSurfaceAttrib (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value);
|
||||
GLAPI EGLBoolean APIENTRY eglBindTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer);
|
||||
GLAPI EGLBoolean APIENTRY eglReleaseTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer);
|
||||
|
||||
/* EGL 1.1 swap control API */
|
||||
GLAPI EGLBoolean APIENTRY eglSwapInterval(EGLDisplay dpy, EGLint interval);
|
||||
|
||||
GLAPI EGLContext APIENTRY eglCreateContext (EGLDisplay dpy, EGLConfig config, EGLContext share_list, const EGLint *attrib_list);
|
||||
GLAPI EGLBoolean APIENTRY eglDestroyContext (EGLDisplay dpy, EGLContext ctx);
|
||||
GLAPI EGLBoolean APIENTRY eglMakeCurrent (EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx);
|
||||
GLAPI EGLContext APIENTRY eglGetCurrentContext (void);
|
||||
GLAPI EGLSurface APIENTRY eglGetCurrentSurface (EGLint readdraw);
|
||||
GLAPI EGLDisplay APIENTRY eglGetCurrentDisplay (void);
|
||||
GLAPI EGLBoolean APIENTRY eglQueryContext (EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint *value);
|
||||
|
||||
GLAPI EGLBoolean APIENTRY eglWaitGL (void);
|
||||
GLAPI EGLBoolean APIENTRY eglWaitNative (EGLint engine);
|
||||
GLAPI EGLBoolean APIENTRY eglSwapBuffers (EGLDisplay dpy, EGLSurface draw);
|
||||
GLAPI EGLBoolean APIENTRY eglCopyBuffers (EGLDisplay dpy, EGLSurface surface, NativePixmapType target);
|
||||
|
||||
|
||||
|
||||
/* EGL_MESA_screen extension >>> PRELIMINARY <<< */
|
||||
#ifndef EGL_MESA_screen_surface
|
||||
#define EGL_MESA_screen_surface 1
|
||||
|
||||
#define EGL_BAD_SCREEN_MESA 0x4000
|
||||
#define EGL_BAD_MODE_MESA 0x4001
|
||||
#define EGL_SCREEN_COUNT_MESA 0x4002
|
||||
#define EGL_SCREEN_POSITION_MESA 0x4003
|
||||
#define EGL_MODE_ID_MESA 0x4004
|
||||
#define EGL_REFRESH_RATE_MESA 0x4005
|
||||
#define EGL_OPTIMAL_MODE_MESA 0x4006
|
||||
#define EGL_SCREEN_BIT_MESA 0x08
|
||||
|
||||
GLAPI EGLBoolean APIENTRY eglChooseModeMESA(EGLDisplay dpy, EGLScreenMESA screen, const EGLint *attrib_list, EGLModeMESA *modes, EGLint modes_size, EGLint *num_modes);
|
||||
GLAPI EGLBoolean APIENTRY eglGetModesMESA(EGLDisplay dpy, EGLScreenMESA screen, EGLModeMESA *modes, EGLint modes_size, EGLint *num_modes);
|
||||
GLAPI EGLBoolean APIENTRY eglGetModeAttribMESA(EGLDisplay dpy, EGLModeMESA mode, EGLint attribute, EGLint *value);
|
||||
GLAPI EGLBoolean APIENTRY eglGetScreensMESA(EGLDisplay dpy, EGLScreenMESA *screens, EGLint max_screens, EGLint *num_screens);
|
||||
GLAPI EGLSurface APIENTRY eglCreateScreenSurfaceMESA(EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list);
|
||||
GLAPI EGLBoolean APIENTRY eglShowSurfaceMESA(EGLDisplay dpy, EGLint screen, EGLSurface surface, EGLModeMESA mode);
|
||||
GLAPI EGLBoolean APIENTRY eglScreenPositionMESA(EGLDisplay dpy, EGLScreenMESA screen, EGLint x, EGLint y);
|
||||
GLAPI EGLBoolean APIENTRY eglQueryScreenMESA(EGLDisplay dpy, EGLScreenMESA screen, EGLint attribute, EGLint *value);
|
||||
GLAPI EGLBoolean APIENTRY eglQueryScreenSurfaceMESA(EGLDisplay dpy, EGLScreenMESA screen, EGLSurface *surface);
|
||||
GLAPI EGLBoolean APIENTRY eglQueryScreenModeMESA(EGLDisplay dpy, EGLScreenMESA screen, EGLModeMESA *mode);
|
||||
GLAPI const char * APIENTRY eglQueryModeStringMESA(EGLDisplay dpy, EGLModeMESA mode);
|
||||
|
||||
#endif /* EGL_MESA_screen_surface */
|
||||
|
||||
|
||||
#ifndef EGL_MESA_copy_context
|
||||
#define EGL_MESA_copy_context 1
|
||||
|
||||
GLAPI EGLBoolean APIENTRY eglCopyContextMESA(EGLDisplay dpy, EGLContext source, EGLContext dest, EGLint mask);
|
||||
|
||||
#endif /* EGL_MESA_copy_context */
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* _EGL_H */
|
45
include/GLES/egltypes.h
Normal file
45
include/GLES/egltypes.h
Normal file
@@ -0,0 +1,45 @@
|
||||
/*
|
||||
** egltypes.h for Mesa
|
||||
**
|
||||
** ONLY egl.h SHOULD INCLUDE THIS FILE!
|
||||
**
|
||||
** See comments about egltypes.h in the standard egl.h file.
|
||||
*/
|
||||
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
|
||||
/*
|
||||
** These opaque EGL types are implemented as unsigned 32-bit integers:
|
||||
*/
|
||||
typedef u_int32_t EGLDisplay;
|
||||
typedef u_int32_t EGLConfig;
|
||||
typedef u_int32_t EGLSurface;
|
||||
typedef u_int32_t EGLContext;
|
||||
|
||||
/* EGL_MESA_screen_surface */
|
||||
typedef u_int32_t EGLModeMESA;
|
||||
typedef u_int32_t EGLScreenMESA;
|
||||
|
||||
|
||||
/*
|
||||
** Other basic EGL types:
|
||||
*/
|
||||
typedef u_int8_t EGLBoolean;
|
||||
typedef int32_t EGLint;
|
||||
|
||||
typedef void * NativeDisplayType;
|
||||
typedef int NativePixmapType;
|
||||
typedef int NativeWindowType;
|
||||
|
||||
/*
|
||||
** EGL and native handle null values:
|
||||
*/
|
||||
#define EGL_DEFAULT_DISPLAY ((NativeDisplayType) 0)
|
||||
#define EGL_NO_CONTEXT ((EGLContext) 0)
|
||||
#define EGL_NO_DISPLAY ((EGLDisplay) 0)
|
||||
#define EGL_NO_SURFACE ((EGLSurface) 0)
|
||||
|
||||
/* EGL_MESA_screen_surface */
|
||||
#define EGL_NO_MODE_MESA ((EGLModeMESA) 0)
|
@@ -36,7 +36,6 @@ PROGS = \
|
||||
morph3d \
|
||||
multiarb \
|
||||
occlude \
|
||||
osdemo \
|
||||
paltex \
|
||||
pixeltex \
|
||||
pointblast \
|
||||
@@ -110,21 +109,7 @@ shadowtex: shadowtex.o showbuffer.o
|
||||
shadowtex.o: shadowtex.c showbuffer.h
|
||||
$(CC) -c -I$(INCDIR) $(CFLAGS) shadowtex.c
|
||||
|
||||
# special case: need the -lOSMesa library:
|
||||
osdemo: osdemo.c
|
||||
$(CC) -I$(INCDIR) $(CFLAGS) osdemo.c $(OSMESA_LIBS) -o $@
|
||||
|
||||
# another special case: need the -lOSMesa16 library:
|
||||
osdemo16: osdemo16.c
|
||||
$(CC) -I$(INCDIR) $(CFLAGS) osdemo16.c $(OSMESA16_LIBS) -o $@
|
||||
|
||||
# another special case: need the -lOSMesa32 library:
|
||||
osdemo32: osdemo32.c
|
||||
$(CC) -I$(INCDIR) $(CFLAGS) osdemo32.c $(OSMESA32_LIBS) -o $@
|
||||
|
||||
|
||||
|
||||
clean:
|
||||
-rm -f $(PROGS)
|
||||
-rm -f *.o *~
|
||||
-rm -f readtex.[ch]
|
||||
-rm -f readtex.[ch] showbuffer.[ch]
|
||||
|
@@ -51,20 +51,16 @@ static void Redisplay( void )
|
||||
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
|
||||
|
||||
if (PixelLight) {
|
||||
#if defined(GL_ARB_fragment_program)
|
||||
glProgramLocalParameter4fvARB_func(GL_FRAGMENT_PROGRAM_ARB,
|
||||
LIGHTPOS, LightPos);
|
||||
glEnable(GL_FRAGMENT_PROGRAM_ARB);
|
||||
glEnable(GL_VERTEX_PROGRAM_ARB);
|
||||
#endif
|
||||
glDisable(GL_LIGHTING);
|
||||
}
|
||||
else {
|
||||
glLightfv(GL_LIGHT0, GL_POSITION, LightPos);
|
||||
#if defined(GL_ARB_fragment_program)
|
||||
glDisable(GL_FRAGMENT_PROGRAM_ARB);
|
||||
glDisable(GL_VERTEX_PROGRAM_ARB);
|
||||
#endif
|
||||
glEnable(GL_LIGHTING);
|
||||
}
|
||||
|
||||
@@ -302,7 +298,6 @@ static void Init( void )
|
||||
glDeleteProgramsARB_func = (PFNGLDELETEPROGRAMSARBPROC) glutGetProcAddress("glDeleteProgramsARB");
|
||||
assert(glDeleteProgramsARB_func);
|
||||
|
||||
#if defined(GL_ARB_fragment_program)
|
||||
/*
|
||||
* Fragment program
|
||||
*/
|
||||
@@ -354,7 +349,6 @@ static void Init( void )
|
||||
exit(0);
|
||||
}
|
||||
assert(glIsProgramARB_func(VertProg));
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Misc init
|
||||
@@ -371,11 +365,9 @@ static void Init( void )
|
||||
{
|
||||
/* Green-ish fog color */
|
||||
static const GLfloat fogColor[4] = {0.5, 1.0, 0.5, 0};
|
||||
glFogi(GL_FOG_MODE, GL_LINEAR);
|
||||
glFogfv(GL_FOG_COLOR, fogColor);
|
||||
glFogf(GL_FOG_START, 5.0);
|
||||
glFogf(GL_FOG_END, 25.0);
|
||||
glEnable(GL_FOG);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@@ -1,6 +1,6 @@
|
||||
# Makefile for GLUT-based demo programs for VMS
|
||||
# contributed by Jouk Jansen joukj@crys.chem.uva.nl
|
||||
|
||||
# contributed by Jouk Jansen joukj@hrem.stm.tudelft.nl
|
||||
# Last update : 20 May 2005
|
||||
|
||||
.first
|
||||
define gl [--.include.gl]
|
||||
@@ -22,7 +22,7 @@ LIB_DEP = [--.lib]$(GL_LIB) [--.lib]$(GLU_LIB) [--.lib]$(GLUT_LIB)
|
||||
|
||||
|
||||
PROGS = bounce.exe;,clearspd.exe;,drawpix.exe;,gamma.exe;,gears.exe;,\
|
||||
glinfo.exe;,glutfx.exe;,isosurf.exe;,morph3d.exe;,osdemo.exe;,\
|
||||
glinfo.exe;,glutfx.exe;,isosurf.exe;,morph3d.exe;,\
|
||||
paltex.exe;,pointblast.exe;,reflect.exe;,spectex.exe;,stex3d.exe;,\
|
||||
tessdemo.exe;,texcyl.exe;,texobj.exe;,trispd.exe;,winpos.exe;
|
||||
|
||||
@@ -53,7 +53,6 @@ glutfx.exe; : glutfx.obj $(LIB_DEP)
|
||||
isosurf.exe; : isosurf.obj $(LIB_DEP) [-.util]readtex.obj
|
||||
cxxlink $(MMS$TARGET_NAME),[-.util]readtex.obj,$(GL_LIBS)
|
||||
morph3d.exe; : morph3d.obj $(LIB_DEP)
|
||||
osdemo.exe; : osdemo.obj $(LIB_DEP)
|
||||
paltex.exe; : paltex.obj $(LIB_DEP)
|
||||
pointblast.exe; : pointblast.obj $(LIB_DEP)
|
||||
reflect.exe; : reflect.obj [-.util]readtex.obj [-.util]showbuffer.obj\
|
||||
@@ -79,7 +78,6 @@ glinfo.obj : glinfo.c
|
||||
glutfx.obj : glutfx.c
|
||||
isosurf.obj : isosurf.c
|
||||
morph3d.obj : morph3d.c
|
||||
osdemo.obj : osdemo.c
|
||||
paltex.obj : paltex.c
|
||||
pointblast.obj : pointblast.c
|
||||
reflect.obj : reflect.c
|
||||
|
@@ -71,7 +71,9 @@ static void Display( void )
|
||||
glDisable(GL_SCISSOR_TEST);
|
||||
glDisable(GL_FOG);
|
||||
|
||||
if (!DrawFront)
|
||||
if (DrawFront)
|
||||
glFinish();
|
||||
else
|
||||
glutSwapBuffers();
|
||||
}
|
||||
|
||||
|
@@ -304,7 +304,7 @@ printhelp(void)
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "Help");
|
||||
|
||||
glRasterPos2i(60, 390);
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "h - Togle Help");
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "h - Toggle Help");
|
||||
|
||||
glRasterPos2i(60, 360);
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "t - Increase particle size");
|
||||
@@ -317,9 +317,9 @@ printhelp(void)
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "R - Decrease emission radius");
|
||||
|
||||
glRasterPos2i(60, 240);
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "f - Togle Fog");
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "f - Toggle Fog");
|
||||
glRasterPos2i(60, 210);
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "s - Togle shadows");
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "s - Toggle shadows");
|
||||
glRasterPos2i(60, 180);
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "Arrow Keys - Rotate");
|
||||
glRasterPos2i(60, 150);
|
||||
@@ -330,7 +330,7 @@ printhelp(void)
|
||||
glRasterPos2i(60, 90);
|
||||
if (joyavailable)
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24,
|
||||
"j - Togle jostick control (Joystick control available)");
|
||||
"j - Toggle jostick control (Joystick control available)");
|
||||
else
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24,
|
||||
"(No Joystick control available)");
|
||||
|
@@ -26,6 +26,7 @@
|
||||
static GLint T0 = 0;
|
||||
static GLint Frames = 0;
|
||||
static GLint autoexit = 0;
|
||||
static GLint win = 0;
|
||||
|
||||
|
||||
/**
|
||||
@@ -163,6 +164,15 @@ static GLfloat view_rotx = 20.0, view_roty = 30.0, view_rotz = 0.0;
|
||||
static GLint gear1, gear2, gear3;
|
||||
static GLfloat angle = 0.0;
|
||||
|
||||
static void
|
||||
cleanup(void)
|
||||
{
|
||||
glDeleteLists(gear1, 1);
|
||||
glDeleteLists(gear2, 1);
|
||||
glDeleteLists(gear3, 1);
|
||||
glutDestroyWindow(win);
|
||||
}
|
||||
|
||||
static void
|
||||
draw(void)
|
||||
{
|
||||
@@ -198,16 +208,18 @@ draw(void)
|
||||
Frames++;
|
||||
|
||||
{
|
||||
GLint t = glutGet(GLUT_ELAPSED_TIME);
|
||||
if (t - T0 >= 5000) {
|
||||
GLfloat seconds = (t - T0) / 1000.0;
|
||||
GLfloat fps = Frames / seconds;
|
||||
printf("%d frames in %6.3f seconds = %6.3f FPS\n", Frames, seconds, fps);
|
||||
T0 = t;
|
||||
Frames = 0;
|
||||
if ((t >= 999.0 * autoexit) && (autoexit))
|
||||
exit(0);
|
||||
}
|
||||
GLint t = glutGet(GLUT_ELAPSED_TIME);
|
||||
if (t - T0 >= 5000) {
|
||||
GLfloat seconds = (t - T0) / 1000.0;
|
||||
GLfloat fps = Frames / seconds;
|
||||
printf("%d frames in %6.3f seconds = %6.3f FPS\n", Frames, seconds, fps);
|
||||
T0 = t;
|
||||
Frames = 0;
|
||||
if ((t >= 999.0 * autoexit) && (autoexit)) {
|
||||
cleanup();
|
||||
exit(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -222,7 +234,9 @@ idle(void)
|
||||
dt = t - t0;
|
||||
t0 = t;
|
||||
|
||||
angle += 70.0 * dt; /* 90 degrees per second */
|
||||
angle += 70.0 * dt; /* 70 degrees per second */
|
||||
angle = fmod(angle, 360.0); /* prevents eventual overflow */
|
||||
|
||||
glutPostRedisplay();
|
||||
}
|
||||
|
||||
@@ -239,6 +253,7 @@ key(unsigned char k, int x, int y)
|
||||
view_rotz -= 5.0;
|
||||
break;
|
||||
case 27: /* Escape */
|
||||
cleanup();
|
||||
exit(0);
|
||||
break;
|
||||
default:
|
||||
@@ -352,7 +367,7 @@ int main(int argc, char *argv[])
|
||||
|
||||
glutInitWindowPosition(0, 0);
|
||||
glutInitWindowSize(300, 300);
|
||||
glutCreateWindow("Gears");
|
||||
win = glutCreateWindow("Gears");
|
||||
init(argc, argv);
|
||||
|
||||
glutDisplayFunc(draw);
|
||||
|
@@ -146,10 +146,10 @@ static void printhelp(void)
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24,"Help");
|
||||
|
||||
glRasterPos2i(60,390);
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24,"h - Togle Help");
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24,"h - Toggle Help");
|
||||
|
||||
glRasterPos2i(60,360);
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24,"f - Togle Fog");
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24,"f - Toggle Fog");
|
||||
glRasterPos2i(60,330);
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24,"Arrow Keys - Rotate");
|
||||
glRasterPos2i(60,300);
|
||||
|
@@ -269,13 +269,13 @@ printhelp(void)
|
||||
printstring(GLUT_BITMAP_HELVETICA_18, "Help");
|
||||
|
||||
glRasterPos2i(60, 390);
|
||||
printstring(GLUT_BITMAP_HELVETICA_12, "h - Togle Help");
|
||||
printstring(GLUT_BITMAP_HELVETICA_12, "h - Toggle Help");
|
||||
glRasterPos2i(60, 370);
|
||||
printstring(GLUT_BITMAP_HELVETICA_12, "f - Togle Fog");
|
||||
printstring(GLUT_BITMAP_HELVETICA_12, "f - Toggle Fog");
|
||||
glRasterPos2i(60, 350);
|
||||
printstring(GLUT_BITMAP_HELVETICA_12, "b - Togle Back face culling");
|
||||
printstring(GLUT_BITMAP_HELVETICA_12, "b - Toggle Back face culling");
|
||||
glRasterPos2i(60, 330);
|
||||
printstring(GLUT_BITMAP_HELVETICA_12, "p - Togle Wire frame");
|
||||
printstring(GLUT_BITMAP_HELVETICA_12, "p - Toggle Wire frame");
|
||||
glRasterPos2i(60, 310);
|
||||
printstring(GLUT_BITMAP_HELVETICA_12, "Arrow Keys - Rotate");
|
||||
glRasterPos2i(60, 290);
|
||||
@@ -286,7 +286,7 @@ printhelp(void)
|
||||
glRasterPos2i(60, 250);
|
||||
if (joyavailable)
|
||||
printstring(GLUT_BITMAP_HELVETICA_12,
|
||||
"j - Togle jostick control (Joystick control available)");
|
||||
"j - Toggle jostick control (Joystick control available)");
|
||||
else
|
||||
printstring(GLUT_BITMAP_HELVETICA_12,
|
||||
"(No Joystick control available)");
|
||||
@@ -300,11 +300,11 @@ printhelp(void)
|
||||
|
||||
glRasterPos2i(60, 190);
|
||||
printstring(GLUT_BITMAP_HELVETICA_12,
|
||||
"1 - Togle the plane texture map window");
|
||||
"1 - Toggle the plane texture map window");
|
||||
|
||||
glRasterPos2i(60, 170);
|
||||
printstring(GLUT_BITMAP_HELVETICA_12,
|
||||
"2 - Togle the sphere texture map window");
|
||||
"2 - Toggle the sphere texture map window");
|
||||
}
|
||||
|
||||
static GLboolean
|
||||
|
@@ -39,6 +39,10 @@ static GLenum ReadType = GL_UNSIGNED_BYTE;
|
||||
#endif
|
||||
#if 0
|
||||
static GLenum ReadFormat = GL_RGB;
|
||||
static GLenum ReadType = GL_UNSIGNED_BYTE;
|
||||
#endif
|
||||
#if 0
|
||||
static GLenum ReadFormat = GL_RGB;
|
||||
static GLenum ReadType = GL_UNSIGNED_SHORT_5_6_5;
|
||||
#endif
|
||||
#if 0
|
||||
@@ -96,6 +100,45 @@ SetupPixelTransfer(GLboolean invert)
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Exercise Pixel Pack parameters by reading the image in four pieces.
|
||||
*/
|
||||
static void
|
||||
ComplexReadPixels(GLint x, GLint y, GLsizei width, GLsizei height,
|
||||
GLenum format, GLenum type, GLvoid *pixels)
|
||||
{
|
||||
const GLsizei width0 = width / 2;
|
||||
const GLsizei width1 = width - width0;
|
||||
const GLsizei height0 = height / 2;
|
||||
const GLsizei height1 = height - height0;
|
||||
|
||||
glPixelStorei(GL_PACK_ROW_LENGTH, width);
|
||||
|
||||
/* lower-left quadrant */
|
||||
glReadPixels(x, y, width0, height0, format, type, pixels);
|
||||
|
||||
/* lower-right quadrant */
|
||||
glPixelStorei(GL_PACK_SKIP_PIXELS, width0);
|
||||
glReadPixels(x + width0, y, width1, height0, format, type, pixels);
|
||||
|
||||
/* upper-left quadrant */
|
||||
glPixelStorei(GL_PACK_SKIP_PIXELS, 0);
|
||||
glPixelStorei(GL_PACK_SKIP_ROWS, height0);
|
||||
glReadPixels(x, y + height0, width0, height1, format, type, pixels);
|
||||
|
||||
/* upper-right quadrant */
|
||||
glPixelStorei(GL_PACK_SKIP_PIXELS, width0);
|
||||
glPixelStorei(GL_PACK_SKIP_ROWS, height0);
|
||||
glReadPixels(x + width0, y + height0, width1, height1, format, type, pixels);
|
||||
|
||||
/* restore defaults */
|
||||
glPixelStorei(GL_PACK_SKIP_PIXELS, 0);
|
||||
glPixelStorei(GL_PACK_SKIP_ROWS, 0);
|
||||
glPixelStorei(GL_PACK_ROW_LENGTH, ImgWidth);
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void
|
||||
Display( void )
|
||||
{
|
||||
@@ -111,8 +154,13 @@ Display( void )
|
||||
glRasterPos2i(APosX, APosY);
|
||||
glEnable(GL_DITHER);
|
||||
SetupPixelTransfer(GL_FALSE);
|
||||
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
|
||||
glDrawPixels(ImgWidth, ImgHeight, ImgFormat, GL_UNSIGNED_BYTE, Image);
|
||||
|
||||
/* might try alignment=4 here for testing */
|
||||
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
|
||||
glPixelStorei(GL_PACK_ALIGNMENT, 1);
|
||||
|
||||
/* do readpixels, drawpixels */
|
||||
glRasterPos2i(BPosX, 5);
|
||||
PrintString("Read/DrawPixels");
|
||||
@@ -138,8 +186,15 @@ Display( void )
|
||||
else {
|
||||
/* clear the temporary image to white (helpful for debugging */
|
||||
memset(TempImage, 255, ImgWidth * ImgHeight * 4);
|
||||
#if 1
|
||||
glReadPixels(APosX, APosY, ImgWidth, ImgHeight,
|
||||
ReadFormat, ReadType, TempImage);
|
||||
(void) ComplexReadPixels;
|
||||
#else
|
||||
/* you might use this when debugging */
|
||||
ComplexReadPixels(APosX, APosY, ImgWidth, ImgHeight,
|
||||
ReadFormat, ReadType, TempImage);
|
||||
#endif
|
||||
}
|
||||
glRasterPos2i(BPosX, BPosY);
|
||||
glDisable(GL_DITHER);
|
||||
@@ -253,14 +308,14 @@ Init( GLboolean ciMode )
|
||||
|
||||
printf("Loaded %d by %d image\n", ImgWidth, ImgHeight );
|
||||
|
||||
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
|
||||
glPixelStorei(GL_UNPACK_ROW_LENGTH, ImgWidth);
|
||||
glPixelStorei(GL_PACK_ALIGNMENT, 1);
|
||||
glPixelStorei(GL_PACK_ROW_LENGTH, ImgWidth);
|
||||
|
||||
Reset();
|
||||
|
||||
TempImage = (GLubyte *) malloc(ImgWidth * ImgHeight * 4 * sizeof(GLubyte));
|
||||
/* allocate an extra 1KB in case we're tinkering with pack alignment */
|
||||
TempImage = (GLubyte *) malloc(ImgWidth * ImgHeight * 4 * sizeof(GLubyte)
|
||||
+ 1000);
|
||||
assert(TempImage);
|
||||
}
|
||||
|
||||
|
@@ -389,7 +389,7 @@ static void SpecialKey( int key, int x, int y )
|
||||
int main( int argc, char *argv[] )
|
||||
{
|
||||
glutInit(&argc, argv);
|
||||
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH | GLUT_STENCIL);
|
||||
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH | GLUT_STENCIL | GLUT_ALPHA);
|
||||
glutInitWindowPosition( 0, 0 );
|
||||
glutInitWindowSize( Width, Height );
|
||||
glutCreateWindow(argv[0]);
|
||||
|
@@ -33,6 +33,7 @@ static GLint Mode = 4;
|
||||
static GLfloat Black[4] = {0.0, 0.0, 0.0, 1.0};
|
||||
static GLfloat White[4] = {1.0, 1.0, 1.0, 1.0};
|
||||
|
||||
static GLboolean smooth = 1;
|
||||
|
||||
static void
|
||||
Idle(void)
|
||||
@@ -143,9 +144,16 @@ static void Key( unsigned char key, int x, int y )
|
||||
(void) x;
|
||||
(void) y;
|
||||
switch (key) {
|
||||
case 27:
|
||||
exit(0);
|
||||
break;
|
||||
case 27:
|
||||
exit(0);
|
||||
break;
|
||||
case 's':
|
||||
smooth = !smooth;
|
||||
if (smooth)
|
||||
glShadeModel(GL_SMOOTH);
|
||||
else
|
||||
glShadeModel(GL_FLAT);
|
||||
break;
|
||||
}
|
||||
glutPostRedisplay();
|
||||
}
|
||||
@@ -175,6 +183,8 @@ static void Init( void )
|
||||
glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, 0);
|
||||
glLightModelfv(GL_LIGHT_MODEL_AMBIENT, Black);
|
||||
|
||||
glShadeModel(GL_SMOOTH);
|
||||
|
||||
glMaterialfv(GL_FRONT, GL_DIFFUSE, White);
|
||||
glMaterialfv(GL_FRONT, GL_SPECULAR, White);
|
||||
glMaterialf(GL_FRONT, GL_SHININESS, 20.0);
|
||||
|
@@ -250,13 +250,13 @@ static void printhelp(void)
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24,"Help");
|
||||
|
||||
glRasterPos2i(60,390);
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24,"h - Togle Help");
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24,"h - Toggle Help");
|
||||
glRasterPos2i(60,360);
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24,"t - Togle Textures");
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24,"t - Toggle Textures");
|
||||
glRasterPos2i(60,330);
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24,"f - Togle Fog");
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24,"f - Toggle Fog");
|
||||
glRasterPos2i(60,300);
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24,"b - Togle Back face culling");
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24,"b - Toggle Back face culling");
|
||||
glRasterPos2i(60,270);
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24,"Arrow Keys - Rotate");
|
||||
glRasterPos2i(60,240);
|
||||
@@ -266,7 +266,7 @@ static void printhelp(void)
|
||||
|
||||
glRasterPos2i(60,180);
|
||||
if(joyavailable)
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24,"j - Togle jostick control (Joystick control available)");
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24,"j - Toggle jostick control (Joystick control available)");
|
||||
else
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24,"(No Joystick control available)");
|
||||
}
|
||||
|
@@ -229,15 +229,15 @@ printhelp(void)
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "Help");
|
||||
|
||||
glRasterPos2i(60, 390);
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "h - Togle Help");
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "h - Toggle Help");
|
||||
glRasterPos2i(60, 360);
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "t - Togle Textures");
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "t - Toggle Textures");
|
||||
glRasterPos2i(60, 330);
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "f - Togle Fog");
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "f - Toggle Fog");
|
||||
glRasterPos2i(60, 300);
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "p - Wire frame");
|
||||
glRasterPos2i(60, 270);
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "b - Togle Back face culling");
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "b - Toggle Back face culling");
|
||||
glRasterPos2i(60, 240);
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "Arrow Keys - Rotate");
|
||||
glRasterPos2i(60, 210);
|
||||
@@ -248,7 +248,7 @@ printhelp(void)
|
||||
glRasterPos2i(60, 150);
|
||||
if (joyavailable)
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24,
|
||||
"j - Togle jostick control (Joystick control available)");
|
||||
"j - Toggle jostick control (Joystick control available)");
|
||||
else
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24,
|
||||
"(No Joystick control available)");
|
||||
|
@@ -47,7 +47,6 @@ static GLdouble DownloadRate = 0.0; /* texels/sec */
|
||||
static GLuint Mode = 0;
|
||||
|
||||
|
||||
#define NUM_FORMATS 4
|
||||
struct FormatRec {
|
||||
GLenum Format;
|
||||
GLenum Type;
|
||||
@@ -56,15 +55,20 @@ struct FormatRec {
|
||||
};
|
||||
|
||||
|
||||
static const struct FormatRec FormatTable[NUM_FORMATS] = {
|
||||
static const struct FormatRec FormatTable[] = {
|
||||
/* Format Type IntFormat TexelSize */
|
||||
{ GL_BGRA, GL_UNSIGNED_BYTE, GL_RGBA, 4 },
|
||||
{ GL_RGB, GL_UNSIGNED_BYTE, GL_RGB, 3 },
|
||||
{ GL_RGBA, GL_UNSIGNED_BYTE, GL_RGBA, 4 },
|
||||
{ GL_RGBA, GL_UNSIGNED_BYTE, GL_RGB, 4 },
|
||||
{ GL_RGB, GL_UNSIGNED_SHORT_5_6_5, GL_RGB, 2 },
|
||||
{ GL_LUMINANCE, GL_UNSIGNED_BYTE, GL_LUMINANCE, 1 },
|
||||
{ GL_LUMINANCE_ALPHA, GL_UNSIGNED_BYTE, GL_LUMINANCE_ALPHA, 2 },
|
||||
{ GL_ALPHA, GL_UNSIGNED_BYTE, GL_ALPHA, 1 },
|
||||
};
|
||||
static GLint Format;
|
||||
|
||||
#define NUM_FORMATS (sizeof(FormatTable)/sizeof(FormatTable[0]))
|
||||
|
||||
static int
|
||||
BytesPerTexel(GLint format)
|
||||
@@ -81,6 +85,14 @@ FormatStr(GLenum format)
|
||||
return "GL_RGB";
|
||||
case GL_RGBA:
|
||||
return "GL_RGBA";
|
||||
case GL_BGRA:
|
||||
return "GL_BGRA";
|
||||
case GL_LUMINANCE:
|
||||
return "GL_LUMINANCE";
|
||||
case GL_LUMINANCE_ALPHA:
|
||||
return "GL_LUMINANCE_ALPHA";
|
||||
case GL_ALPHA:
|
||||
return "GL_ALPHA";
|
||||
default:
|
||||
return "";
|
||||
}
|
||||
@@ -314,6 +326,11 @@ Key(unsigned char key, int x, int y)
|
||||
Format = (Format + 1) % NUM_FORMATS;
|
||||
Mode = 0;
|
||||
break;
|
||||
case 'F':
|
||||
/* change format */
|
||||
Format = (Format - 1) % NUM_FORMATS;
|
||||
Mode = 0;
|
||||
break;
|
||||
case 'p':
|
||||
/* toggle border */
|
||||
ScaleAndBias = !ScaleAndBias;
|
||||
|
@@ -300,15 +300,15 @@ printhelp(void)
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "Help");
|
||||
|
||||
glRasterPos2i(60, 390);
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "h - Togle Help");
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "h - Toggle Help");
|
||||
glRasterPos2i(60, 360);
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "t - Togle Textures");
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "t - Toggle Textures");
|
||||
glRasterPos2i(60, 330);
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "f - Togle Fog");
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "f - Toggle Fog");
|
||||
glRasterPos2i(60, 300);
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "m - Togle strips");
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "m - Toggle strips");
|
||||
glRasterPos2i(60, 270);
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "b - Togle Back face culling");
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "b - Toggle Back face culling");
|
||||
glRasterPos2i(60, 240);
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "Arrow Keys - Rotate");
|
||||
glRasterPos2i(60, 210);
|
||||
@@ -319,7 +319,7 @@ printhelp(void)
|
||||
glRasterPos2i(60, 150);
|
||||
if (joyavailable)
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24,
|
||||
"j - Togle jostick control (Joystick control available)");
|
||||
"j - Toggle jostick control (Joystick control available)");
|
||||
else
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24,
|
||||
"(No Joystick control available)");
|
||||
|
@@ -324,15 +324,15 @@ printhelp(void)
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "Help");
|
||||
|
||||
glRasterPos2i(60, 390);
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "h - Togle Help");
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "h - Toggle Help");
|
||||
glRasterPos2i(60, 360);
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "t - Togle Textures");
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "t - Toggle Textures");
|
||||
glRasterPos2i(60, 330);
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "f - Togle Fog");
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "f - Toggle Fog");
|
||||
glRasterPos2i(60, 300);
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "m - Togle strips");
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "m - Toggle strips");
|
||||
glRasterPos2i(60, 270);
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "b - Togle Back face culling");
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "b - Toggle Back face culling");
|
||||
glRasterPos2i(60, 240);
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24, "Arrow Keys - Rotate");
|
||||
glRasterPos2i(60, 210);
|
||||
@@ -343,7 +343,7 @@ printhelp(void)
|
||||
glRasterPos2i(60, 150);
|
||||
if (joyavailable)
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24,
|
||||
"j - Togle jostick control (Joystick control available)");
|
||||
"j - Toggle jostick control (Joystick control available)");
|
||||
else
|
||||
printstring(GLUT_BITMAP_TIMES_ROMAN_24,
|
||||
"(No Joystick control available)");
|
||||
|
65
progs/egl/Makefile
Normal file
65
progs/egl/Makefile
Normal file
@@ -0,0 +1,65 @@
|
||||
# progs/egl/Makefile
|
||||
|
||||
TOP = ../..
|
||||
include $(TOP)/configs/current
|
||||
|
||||
|
||||
INCLUDE_DIRS = -I$(TOP)/include
|
||||
|
||||
HEADERS = $(TOP)/include/GLES/egl.h
|
||||
|
||||
PROGRAMS = \
|
||||
demo1 \
|
||||
demo2 \
|
||||
demo3 \
|
||||
eglinfo \
|
||||
eglgears
|
||||
|
||||
|
||||
.c.o:
|
||||
$(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $< -o $@
|
||||
|
||||
|
||||
|
||||
default: $(PROGRAMS)
|
||||
|
||||
|
||||
demo1: demo1.o $(LIB_DIR)/libEGL.so
|
||||
$(CC) $(CFLAGS) demo1.o -L$(LIB_DIR) -lEGL $(LIBDRM_LIB) -o $@
|
||||
|
||||
demo1.o: demo1.c $(HEADERS)
|
||||
$(CC) -c $(CFLAGS) -I$(TOP)/include demo1.c
|
||||
|
||||
|
||||
demo2: demo2.o $(LIB_DIR)/libEGL.so
|
||||
$(CC) $(CFLAGS) demo2.o -L$(LIB_DIR) -lEGL $(LIBDRM_LIB) $(APP_LIB_DEPS) -o $@
|
||||
|
||||
demo2.o: demo2.c $(HEADERS)
|
||||
$(CC) -c $(CFLAGS) -I$(TOP)/include demo2.c
|
||||
|
||||
|
||||
demo3: demo3.o $(LIB_DIR)/libEGL.so
|
||||
$(CC) $(CFLAGS) demo3.o -L$(LIB_DIR) -lEGL $(LIBDRM_LIB) $(APP_LIB_DEPS) -o $@
|
||||
|
||||
demo3.o: demo3.c $(HEADERS)
|
||||
$(CC) -c $(CFLAGS) -I$(TOP)/include demo3.c
|
||||
|
||||
|
||||
eglinfo: eglinfo.o $(LIB_DIR)/libEGL.so
|
||||
$(CC) $(CFLAGS) eglinfo.o -L$(LIB_DIR) -lEGL $(LIBDRM_LIB) -o $@
|
||||
|
||||
eglinfo.o: eglinfo.c $(HEADERS)
|
||||
$(CC) -c $(CFLAGS) -I$(TOP)/include eglinfo.c
|
||||
|
||||
|
||||
eglgears: eglgears.o $(LIB_DIR)/libEGL.so
|
||||
$(CC) $(CFLAGS) eglgears.o -L$(LIB_DIR) -lEGL $(LIBDRM_LIB) $(APP_LIB_DEPS) -o $@
|
||||
|
||||
eglgears.o: eglgears.c $(HEADERS)
|
||||
$(CC) -c $(CFLAGS) -I$(TOP)/include eglgears.c
|
||||
|
||||
|
||||
clean:
|
||||
rm -f *.o *~
|
||||
rm -f *.so
|
||||
rm -f $(PROGRAMS)
|
145
progs/egl/demo1.c
Normal file
145
progs/egl/demo1.c
Normal file
@@ -0,0 +1,145 @@
|
||||
/*
|
||||
* Exercise EGL API functions
|
||||
*/
|
||||
|
||||
#include <GLES/egl.h>
|
||||
#include <assert.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
|
||||
/**
|
||||
* Test EGL_MESA_screen_surface functions
|
||||
*/
|
||||
static void
|
||||
TestScreens(EGLDisplay dpy)
|
||||
{
|
||||
#define MAX 8
|
||||
EGLScreenMESA screens[MAX];
|
||||
EGLint numScreens;
|
||||
EGLint i;
|
||||
|
||||
eglGetScreensMESA(dpy, screens, MAX, &numScreens);
|
||||
printf("Found %d screens\n", numScreens);
|
||||
for (i = 0; i < numScreens; i++) {
|
||||
printf(" Screen %d handle: %d\n", i, (int) screens[i]);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Print table of all available configurations.
|
||||
*/
|
||||
static void
|
||||
PrintConfigs(EGLDisplay d)
|
||||
{
|
||||
EGLConfig *configs;
|
||||
EGLint numConfigs, i;
|
||||
|
||||
eglGetConfigs(d, NULL, 0, &numConfigs);
|
||||
configs = malloc(sizeof(*configs) *numConfigs);
|
||||
eglGetConfigs(d, configs, numConfigs, &numConfigs);
|
||||
|
||||
printf("Configurations:\n");
|
||||
printf(" bf lv d st colorbuffer dp st supported \n");
|
||||
printf(" id sz l b ro r g b a th cl surfaces \n");
|
||||
printf("----------------------------------------------\n");
|
||||
for (i = 0; i < numConfigs; i++) {
|
||||
EGLint id, size, level;
|
||||
EGLint red, green, blue, alpha;
|
||||
EGLint depth, stencil;
|
||||
EGLint surfaces;
|
||||
EGLint doubleBuf = 1, stereo = 0;
|
||||
char surfString[100] = "";
|
||||
|
||||
eglGetConfigAttrib(d, configs[i], EGL_CONFIG_ID, &id);
|
||||
eglGetConfigAttrib(d, configs[i], EGL_BUFFER_SIZE, &size);
|
||||
eglGetConfigAttrib(d, configs[i], EGL_LEVEL, &level);
|
||||
|
||||
eglGetConfigAttrib(d, configs[i], EGL_RED_SIZE, &red);
|
||||
eglGetConfigAttrib(d, configs[i], EGL_GREEN_SIZE, &green);
|
||||
eglGetConfigAttrib(d, configs[i], EGL_BLUE_SIZE, &blue);
|
||||
eglGetConfigAttrib(d, configs[i], EGL_ALPHA_SIZE, &alpha);
|
||||
eglGetConfigAttrib(d, configs[i], EGL_DEPTH_SIZE, &depth);
|
||||
eglGetConfigAttrib(d, configs[i], EGL_STENCIL_SIZE, &stencil);
|
||||
eglGetConfigAttrib(d, configs[i], EGL_SURFACE_TYPE, &surfaces);
|
||||
|
||||
if (surfaces & EGL_WINDOW_BIT)
|
||||
strcat(surfString, "win,");
|
||||
if (surfaces & EGL_PBUFFER_BIT)
|
||||
strcat(surfString, "pb,");
|
||||
if (surfaces & EGL_PIXMAP_BIT)
|
||||
strcat(surfString, "pix,");
|
||||
if (strlen(surfString) > 0)
|
||||
surfString[strlen(surfString) - 1] = 0;
|
||||
|
||||
printf("0x%02x %2d %2d %c %c %2d %2d %2d %2d %2d %2d %-12s\n",
|
||||
id, size, level,
|
||||
doubleBuf ? 'y' : '.',
|
||||
stereo ? 'y' : '.',
|
||||
red, green, blue, alpha,
|
||||
depth, stencil, surfString);
|
||||
}
|
||||
free(configs);
|
||||
}
|
||||
|
||||
|
||||
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
int maj, min;
|
||||
EGLContext ctx;
|
||||
EGLSurface pbuffer;
|
||||
EGLConfig configs[10];
|
||||
EGLBoolean b;
|
||||
const EGLint pbufAttribs[] = {
|
||||
EGL_WIDTH, 500,
|
||||
EGL_HEIGHT, 500,
|
||||
EGL_NONE
|
||||
};
|
||||
|
||||
/*
|
||||
EGLDisplay d = eglGetDisplay(EGL_DEFAULT_DISPLAY);
|
||||
*/
|
||||
EGLDisplay d = eglGetDisplay("!fb_dri");
|
||||
assert(d);
|
||||
|
||||
if (!eglInitialize(d, &maj, &min)) {
|
||||
printf("demo: eglInitialize failed\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
printf("EGL version = %d.%d\n", maj, min);
|
||||
printf("EGL_VENDOR = %s\n", eglQueryString(d, EGL_VENDOR));
|
||||
|
||||
PrintConfigs(d);
|
||||
|
||||
ctx = eglCreateContext(d, configs[0], EGL_NO_CONTEXT, NULL);
|
||||
if (ctx == EGL_NO_CONTEXT) {
|
||||
printf("failed to create context\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
pbuffer = eglCreatePbufferSurface(d, configs[0], pbufAttribs);
|
||||
if (pbuffer == EGL_NO_SURFACE) {
|
||||
printf("failed to create pbuffer\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
b = eglMakeCurrent(d, pbuffer, pbuffer, ctx);
|
||||
if (!b) {
|
||||
printf("make current failed\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
b = eglMakeCurrent(d, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
|
||||
|
||||
TestScreens(d);
|
||||
|
||||
eglDestroySurface(d, pbuffer);
|
||||
eglDestroyContext(d, ctx);
|
||||
eglTerminate(d);
|
||||
|
||||
return 0;
|
||||
}
|
190
progs/egl/demo2.c
Normal file
190
progs/egl/demo2.c
Normal file
@@ -0,0 +1,190 @@
|
||||
/*
|
||||
* Exercise EGL API functions
|
||||
*/
|
||||
|
||||
#include <assert.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include <GLES/egl.h>
|
||||
|
||||
/*#define FRONTBUFFER*/
|
||||
|
||||
static void _subset_Rectf(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2)
|
||||
{
|
||||
glBegin( GL_QUADS );
|
||||
glVertex2f( x1, y1 );
|
||||
glVertex2f( x2, y1 );
|
||||
glVertex2f( x2, y2 );
|
||||
glVertex2f( x1, y2 );
|
||||
glEnd();
|
||||
}
|
||||
|
||||
|
||||
static void redraw(EGLDisplay dpy, EGLSurface surf, int rot)
|
||||
{
|
||||
printf("Redraw event\n");
|
||||
|
||||
#ifdef FRONTBUFFER
|
||||
glDrawBuffer( GL_FRONT );
|
||||
#else
|
||||
glDrawBuffer( GL_BACK );
|
||||
#endif
|
||||
|
||||
glClearColor( rand()/(float)RAND_MAX,
|
||||
rand()/(float)RAND_MAX,
|
||||
rand()/(float)RAND_MAX,
|
||||
1);
|
||||
|
||||
glClear( GL_COLOR_BUFFER_BIT );
|
||||
|
||||
glColor3f( rand()/(float)RAND_MAX,
|
||||
rand()/(float)RAND_MAX,
|
||||
rand()/(float)RAND_MAX );
|
||||
glPushMatrix();
|
||||
glRotatef(rot, 0, 0, 1);
|
||||
glScalef(.5, .5, .5);
|
||||
_subset_Rectf( -1, -1, 1, 1 );
|
||||
glPopMatrix();
|
||||
|
||||
#ifdef FRONTBUFFER
|
||||
glFlush();
|
||||
#else
|
||||
eglSwapBuffers( dpy, surf );
|
||||
#endif
|
||||
glFinish();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Test EGL_MESA_screen_surface functions
|
||||
*/
|
||||
static void
|
||||
TestScreens(EGLDisplay dpy)
|
||||
{
|
||||
#define MAX 8
|
||||
EGLScreenMESA screens[MAX];
|
||||
EGLint numScreens;
|
||||
EGLint i;
|
||||
|
||||
eglGetScreensMESA(dpy, screens, MAX, &numScreens);
|
||||
printf("Found %d screens\n", numScreens);
|
||||
for (i = 0; i < numScreens; i++) {
|
||||
printf(" Screen %d handle: %d\n", i, (int) screens[i]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
int maj, min;
|
||||
EGLContext ctx;
|
||||
EGLSurface pbuffer, screen_surf;
|
||||
EGLConfig configs[10];
|
||||
EGLint numConfigs, i;
|
||||
EGLBoolean b;
|
||||
const EGLint pbufAttribs[] = {
|
||||
EGL_WIDTH, 500,
|
||||
EGL_HEIGHT, 500,
|
||||
EGL_NONE
|
||||
};
|
||||
const EGLint screenAttribs[] = {
|
||||
EGL_WIDTH, 1024,
|
||||
EGL_HEIGHT, 768,
|
||||
EGL_NONE
|
||||
};
|
||||
EGLModeMESA mode;
|
||||
EGLScreenMESA screen;
|
||||
EGLint count;
|
||||
|
||||
/*
|
||||
EGLDisplay d = eglGetDisplay(EGL_DEFAULT_DISPLAY);
|
||||
*/
|
||||
EGLDisplay d = eglGetDisplay("!fb_dri");
|
||||
assert(d);
|
||||
|
||||
if (!eglInitialize(d, &maj, &min)) {
|
||||
printf("demo: eglInitialize failed\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
printf("EGL version = %d.%d\n", maj, min);
|
||||
printf("EGL_VENDOR = %s\n", eglQueryString(d, EGL_VENDOR));
|
||||
|
||||
eglGetConfigs(d, configs, 10, &numConfigs);
|
||||
printf("Got %d EGL configs:\n", numConfigs);
|
||||
for (i = 0; i < numConfigs; i++) {
|
||||
EGLint id, red, depth;
|
||||
eglGetConfigAttrib(d, configs[i], EGL_CONFIG_ID, &id);
|
||||
eglGetConfigAttrib(d, configs[i], EGL_RED_SIZE, &red);
|
||||
eglGetConfigAttrib(d, configs[i], EGL_DEPTH_SIZE, &depth);
|
||||
printf("%2d: Red Size = %d Depth Size = %d\n", id, red, depth);
|
||||
}
|
||||
|
||||
eglGetScreensMESA(d, &screen, 1, &count);
|
||||
eglGetModesMESA(d, screen, &mode, 1, &count);
|
||||
|
||||
ctx = eglCreateContext(d, configs[0], EGL_NO_CONTEXT, NULL);
|
||||
if (ctx == EGL_NO_CONTEXT) {
|
||||
printf("failed to create context\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
pbuffer = eglCreatePbufferSurface(d, configs[0], pbufAttribs);
|
||||
if (pbuffer == EGL_NO_SURFACE) {
|
||||
printf("failed to create pbuffer\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
b = eglMakeCurrent(d, pbuffer, pbuffer, ctx);
|
||||
if (!b) {
|
||||
printf("make current failed\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
b = eglMakeCurrent(d, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
|
||||
|
||||
screen_surf = eglCreateScreenSurfaceMESA(d, configs[0], screenAttribs);
|
||||
if (screen_surf == EGL_NO_SURFACE) {
|
||||
printf("failed to create screen surface\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
eglShowSurfaceMESA(d, screen, screen_surf, mode);
|
||||
|
||||
b = eglMakeCurrent(d, screen_surf, screen_surf, ctx);
|
||||
if (!b) {
|
||||
printf("make current failed\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
glViewport(0, 0, 1024, 768);
|
||||
glDrawBuffer( GL_FRONT );
|
||||
|
||||
glClearColor( 0,
|
||||
1.0,
|
||||
0,
|
||||
1);
|
||||
|
||||
glClear( GL_COLOR_BUFFER_BIT );
|
||||
|
||||
|
||||
TestScreens(d);
|
||||
|
||||
glShadeModel( GL_FLAT );
|
||||
|
||||
for (i = 0; i < 6; i++) {
|
||||
redraw(d, screen_surf, i*10 );
|
||||
|
||||
printf("sleep(1)\n");
|
||||
sleep(1);
|
||||
}
|
||||
|
||||
eglDestroySurface(d, pbuffer);
|
||||
eglDestroyContext(d, ctx);
|
||||
eglTerminate(d);
|
||||
|
||||
return 0;
|
||||
}
|
636
progs/egl/demo3.c
Normal file
636
progs/egl/demo3.c
Normal file
@@ -0,0 +1,636 @@
|
||||
/*
|
||||
* Exercise EGL API functions
|
||||
*/
|
||||
|
||||
#include <GLES/egl.h>
|
||||
#include <assert.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
|
||||
|
||||
#define PIXEL_CENTER(x) ((long)(x) + 0.5)
|
||||
|
||||
#define GAP 10
|
||||
#define ROWS 3
|
||||
#define COLS 4
|
||||
|
||||
#define OPENGL_WIDTH 48
|
||||
#define OPENGL_HEIGHT 13
|
||||
|
||||
|
||||
GLenum rgb, doubleBuffer, windType;
|
||||
GLint windW, windH;
|
||||
|
||||
GLenum mode1, mode2;
|
||||
GLint boxW, boxH;
|
||||
GLubyte OpenGL_bits[] = {
|
||||
0x00, 0x03, 0x00, 0x00, 0x00, 0x00,
|
||||
0x7f, 0xfb, 0xff, 0xff, 0xff, 0x01,
|
||||
0x7f, 0xfb, 0xff, 0xff, 0xff, 0x01,
|
||||
0x00, 0x03, 0x00, 0x00, 0x00, 0x00,
|
||||
0x3e, 0x8f, 0xb7, 0xf9, 0xfc, 0x01,
|
||||
0x63, 0xdb, 0xb0, 0x8d, 0x0d, 0x00,
|
||||
0x63, 0xdb, 0xb7, 0x8d, 0x0d, 0x00,
|
||||
0x63, 0xdb, 0xb6, 0x8d, 0x0d, 0x00,
|
||||
0x63, 0x8f, 0xf3, 0xcc, 0x0d, 0x00,
|
||||
0x63, 0x00, 0x00, 0x0c, 0x4c, 0x0a,
|
||||
0x63, 0x00, 0x00, 0x0c, 0x4c, 0x0e,
|
||||
0x63, 0x00, 0x00, 0x8c, 0xed, 0x0e,
|
||||
0x3e, 0x00, 0x00, 0xf8, 0x0c, 0x00,
|
||||
};
|
||||
|
||||
|
||||
static void Init(void)
|
||||
{
|
||||
|
||||
mode1 = GL_TRUE;
|
||||
mode2 = GL_TRUE;
|
||||
}
|
||||
|
||||
static void Reshape(int width, int height)
|
||||
{
|
||||
|
||||
windW = (GLint)width;
|
||||
windH = (GLint)height;
|
||||
}
|
||||
|
||||
#if 0
|
||||
static void RotateColorMask(void)
|
||||
{
|
||||
static GLint rotation = 0;
|
||||
|
||||
rotation = (rotation + 1) & 0x3;
|
||||
switch (rotation) {
|
||||
case 0:
|
||||
glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
|
||||
glIndexMask( 0xff );
|
||||
break;
|
||||
case 1:
|
||||
glColorMask(GL_FALSE, GL_TRUE, GL_TRUE, GL_TRUE);
|
||||
glIndexMask(0xFE);
|
||||
break;
|
||||
case 2:
|
||||
glColorMask(GL_TRUE, GL_FALSE, GL_TRUE, GL_TRUE);
|
||||
glIndexMask(0xFD);
|
||||
break;
|
||||
case 3:
|
||||
glColorMask(GL_TRUE, GL_TRUE, GL_FALSE, GL_TRUE);
|
||||
glIndexMask(0xFB);
|
||||
break;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
static void Viewport(GLint row, GLint column)
|
||||
{
|
||||
GLint x, y;
|
||||
|
||||
boxW = (windW - (COLS + 1) * GAP) / COLS;
|
||||
boxH = (windH - (ROWS + 1) * GAP) / ROWS;
|
||||
|
||||
x = GAP + column * (boxW + GAP);
|
||||
y = GAP + row * (boxH + GAP);
|
||||
|
||||
glViewport(x, y, boxW, boxH);
|
||||
|
||||
glMatrixMode(GL_PROJECTION);
|
||||
glLoadIdentity();
|
||||
glOrtho(-boxW/2, boxW/2, -boxH/2, boxH/2, 0.0, 1.0);
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
|
||||
glEnable(GL_SCISSOR_TEST);
|
||||
glScissor(x, y, boxW, boxH);
|
||||
}
|
||||
|
||||
enum {
|
||||
COLOR_BLACK = 0,
|
||||
COLOR_RED,
|
||||
COLOR_GREEN,
|
||||
COLOR_YELLOW,
|
||||
COLOR_BLUE,
|
||||
COLOR_MAGENTA,
|
||||
COLOR_CYAN,
|
||||
COLOR_WHITE
|
||||
};
|
||||
|
||||
static float RGBMap[9][3] = {
|
||||
{0, 0, 0},
|
||||
{1, 0, 0},
|
||||
{0, 1, 0},
|
||||
{1, 1, 0},
|
||||
{0, 0, 1},
|
||||
{1, 0, 1},
|
||||
{0, 1, 1},
|
||||
{1, 1, 1},
|
||||
{0.5, 0.5, 0.5}
|
||||
};
|
||||
|
||||
static void SetColor(int c)
|
||||
{
|
||||
glColor3fv(RGBMap[c]);
|
||||
}
|
||||
|
||||
static void Point(void)
|
||||
{
|
||||
GLint i;
|
||||
|
||||
glBegin(GL_POINTS);
|
||||
SetColor(COLOR_WHITE);
|
||||
glVertex2i(0, 0);
|
||||
for (i = 1; i < 8; i++) {
|
||||
GLint j = i * 2;
|
||||
SetColor(COLOR_BLACK+i);
|
||||
glVertex2i(-j, -j);
|
||||
glVertex2i(-j, 0);
|
||||
glVertex2i(-j, j);
|
||||
glVertex2i(0, j);
|
||||
glVertex2i(j, j);
|
||||
glVertex2i(j, 0);
|
||||
glVertex2i(j, -j);
|
||||
glVertex2i(0, -j);
|
||||
}
|
||||
glEnd();
|
||||
}
|
||||
|
||||
static void Lines(void)
|
||||
{
|
||||
GLint i;
|
||||
|
||||
glPushMatrix();
|
||||
|
||||
glTranslatef(-12, 0, 0);
|
||||
for (i = 1; i < 8; i++) {
|
||||
SetColor(COLOR_BLACK+i);
|
||||
glBegin(GL_LINES);
|
||||
glVertex2i(-boxW/4, -boxH/4);
|
||||
glVertex2i(boxW/4, boxH/4);
|
||||
glEnd();
|
||||
glTranslatef(4, 0, 0);
|
||||
}
|
||||
|
||||
glPopMatrix();
|
||||
|
||||
glBegin(GL_LINES);
|
||||
glVertex2i(0, 0);
|
||||
glEnd();
|
||||
}
|
||||
|
||||
static void LineStrip(void)
|
||||
{
|
||||
|
||||
glBegin(GL_LINE_STRIP);
|
||||
SetColor(COLOR_RED);
|
||||
glVertex2f(PIXEL_CENTER(-boxW/4), PIXEL_CENTER(-boxH/4));
|
||||
SetColor(COLOR_GREEN);
|
||||
glVertex2f(PIXEL_CENTER(-boxW/4), PIXEL_CENTER(boxH/4));
|
||||
SetColor(COLOR_BLUE);
|
||||
glVertex2f(PIXEL_CENTER(boxW/4), PIXEL_CENTER(boxH/4));
|
||||
SetColor(COLOR_WHITE);
|
||||
glVertex2f(PIXEL_CENTER(boxW/4), PIXEL_CENTER(-boxH/4));
|
||||
glEnd();
|
||||
|
||||
glBegin(GL_LINE_STRIP);
|
||||
glVertex2i(0, 0);
|
||||
glEnd();
|
||||
}
|
||||
|
||||
static void LineLoop(void)
|
||||
{
|
||||
|
||||
glBegin(GL_LINE_LOOP);
|
||||
SetColor(COLOR_RED);
|
||||
glVertex2f(PIXEL_CENTER(-boxW/4), PIXEL_CENTER(-boxH/4));
|
||||
SetColor(COLOR_GREEN);
|
||||
glVertex2f(PIXEL_CENTER(-boxW/4), PIXEL_CENTER(boxH/4));
|
||||
SetColor(COLOR_BLUE);
|
||||
glVertex2f(PIXEL_CENTER(boxW/4), PIXEL_CENTER(boxH/4));
|
||||
SetColor(COLOR_WHITE);
|
||||
glVertex2f(PIXEL_CENTER(boxW/4), PIXEL_CENTER(-boxH/4));
|
||||
glEnd();
|
||||
|
||||
glEnable(GL_LOGIC_OP);
|
||||
glLogicOp(GL_XOR);
|
||||
|
||||
glEnable(GL_BLEND);
|
||||
glBlendFunc(GL_ONE, GL_ONE);
|
||||
|
||||
SetColor(COLOR_MAGENTA);
|
||||
glBegin(GL_LINE_LOOP);
|
||||
glVertex2f(PIXEL_CENTER(-boxW/8), PIXEL_CENTER(-boxH/8));
|
||||
glVertex2f(PIXEL_CENTER(-boxW/8), PIXEL_CENTER(boxH/8));
|
||||
glEnd();
|
||||
glBegin(GL_LINE_LOOP);
|
||||
glVertex2f(PIXEL_CENTER(-boxW/8), PIXEL_CENTER(boxH/8+5));
|
||||
glVertex2f(PIXEL_CENTER(boxW/8), PIXEL_CENTER(boxH/8+5));
|
||||
glEnd();
|
||||
glDisable(GL_LOGIC_OP);
|
||||
glDisable(GL_BLEND);
|
||||
|
||||
SetColor(COLOR_GREEN);
|
||||
glBegin(GL_POINTS);
|
||||
glVertex2i(0, 0);
|
||||
glEnd();
|
||||
|
||||
glBegin(GL_LINE_LOOP);
|
||||
glVertex2i(0, 0);
|
||||
glEnd();
|
||||
}
|
||||
|
||||
static void Bitmap(void)
|
||||
{
|
||||
|
||||
glBegin(GL_LINES);
|
||||
SetColor(COLOR_GREEN);
|
||||
glVertex2i(-boxW/2, 0);
|
||||
glVertex2i(boxW/2, 0);
|
||||
glVertex2i(0, -boxH/2);
|
||||
glVertex2i(0, boxH/2);
|
||||
SetColor(COLOR_RED);
|
||||
glVertex2i(0, -3);
|
||||
glVertex2i(0, -3+OPENGL_HEIGHT);
|
||||
SetColor(COLOR_BLUE);
|
||||
glVertex2i(0, -3);
|
||||
glVertex2i(OPENGL_WIDTH, -3);
|
||||
glEnd();
|
||||
|
||||
SetColor(COLOR_GREEN);
|
||||
|
||||
glPixelStorei(GL_UNPACK_LSB_FIRST, GL_TRUE);
|
||||
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
|
||||
|
||||
glRasterPos2i(0, 0);
|
||||
glBitmap(OPENGL_WIDTH, OPENGL_HEIGHT, 0, 3, 0.0, 0.0, OpenGL_bits);
|
||||
}
|
||||
|
||||
static void Triangles(void)
|
||||
{
|
||||
|
||||
glBegin(GL_TRIANGLES);
|
||||
SetColor(COLOR_GREEN);
|
||||
glVertex2i(-boxW/4, -boxH/4);
|
||||
SetColor(COLOR_RED);
|
||||
glVertex2i(-boxW/8, -boxH/16);
|
||||
SetColor(COLOR_BLUE);
|
||||
glVertex2i(boxW/8, -boxH/16);
|
||||
|
||||
SetColor(COLOR_GREEN);
|
||||
glVertex2i(-boxW/4, boxH/4);
|
||||
SetColor(COLOR_RED);
|
||||
glVertex2i(-boxW/8, boxH/16);
|
||||
SetColor(COLOR_BLUE);
|
||||
glVertex2i(boxW/8, boxH/16);
|
||||
glEnd();
|
||||
|
||||
glBegin(GL_TRIANGLES);
|
||||
glVertex2i(0, 0);
|
||||
glVertex2i(-100, 100);
|
||||
glEnd();
|
||||
}
|
||||
|
||||
static void TriangleStrip(void)
|
||||
{
|
||||
|
||||
glBegin(GL_TRIANGLE_STRIP);
|
||||
SetColor(COLOR_GREEN);
|
||||
glVertex2i(-boxW/4, -boxH/4);
|
||||
SetColor(COLOR_RED);
|
||||
glVertex2i(-boxW/4, boxH/4);
|
||||
SetColor(COLOR_BLUE);
|
||||
glVertex2i(0, -boxH/4);
|
||||
SetColor(COLOR_WHITE);
|
||||
glVertex2i(0, boxH/4);
|
||||
SetColor(COLOR_CYAN);
|
||||
glVertex2i(boxW/4, -boxH/4);
|
||||
SetColor(COLOR_YELLOW);
|
||||
glVertex2i(boxW/4, boxH/4);
|
||||
glEnd();
|
||||
|
||||
glBegin(GL_TRIANGLE_STRIP);
|
||||
glVertex2i(0, 0);
|
||||
glVertex2i(-100, 100);
|
||||
glEnd();
|
||||
}
|
||||
|
||||
static void TriangleFan(void)
|
||||
{
|
||||
GLint vx[8][2];
|
||||
GLint x0, y0, x1, y1, x2, y2, x3, y3;
|
||||
GLint i;
|
||||
|
||||
y0 = -boxH/4;
|
||||
y1 = y0 + boxH/2/3;
|
||||
y2 = y1 + boxH/2/3;
|
||||
y3 = boxH/4;
|
||||
x0 = -boxW/4;
|
||||
x1 = x0 + boxW/2/3;
|
||||
x2 = x1 + boxW/2/3;
|
||||
x3 = boxW/4;
|
||||
|
||||
vx[0][0] = x0; vx[0][1] = y1;
|
||||
vx[1][0] = x0; vx[1][1] = y2;
|
||||
vx[2][0] = x1; vx[2][1] = y3;
|
||||
vx[3][0] = x2; vx[3][1] = y3;
|
||||
vx[4][0] = x3; vx[4][1] = y2;
|
||||
vx[5][0] = x3; vx[5][1] = y1;
|
||||
vx[6][0] = x2; vx[6][1] = y0;
|
||||
vx[7][0] = x1; vx[7][1] = y0;
|
||||
|
||||
glBegin(GL_TRIANGLE_FAN);
|
||||
SetColor(COLOR_WHITE);
|
||||
glVertex2i(0, 0);
|
||||
for (i = 0; i < 8; i++) {
|
||||
SetColor(COLOR_WHITE-i);
|
||||
glVertex2iv(vx[i]);
|
||||
}
|
||||
glEnd();
|
||||
|
||||
glBegin(GL_TRIANGLE_FAN);
|
||||
glVertex2i(0, 0);
|
||||
glVertex2i(-100, 100);
|
||||
glEnd();
|
||||
}
|
||||
|
||||
static void Rect(void)
|
||||
{
|
||||
|
||||
SetColor(COLOR_GREEN);
|
||||
glRecti(-boxW/4, -boxH/4, boxW/4, boxH/4);
|
||||
}
|
||||
|
||||
static void PolygonFunc(void)
|
||||
{
|
||||
GLint vx[8][2];
|
||||
GLint x0, y0, x1, y1, x2, y2, x3, y3;
|
||||
GLint i;
|
||||
|
||||
y0 = -boxH/4;
|
||||
y1 = y0 + boxH/2/3;
|
||||
y2 = y1 + boxH/2/3;
|
||||
y3 = boxH/4;
|
||||
x0 = -boxW/4;
|
||||
x1 = x0 + boxW/2/3;
|
||||
x2 = x1 + boxW/2/3;
|
||||
x3 = boxW/4;
|
||||
|
||||
vx[0][0] = x0; vx[0][1] = y1;
|
||||
vx[1][0] = x0; vx[1][1] = y2;
|
||||
vx[2][0] = x1; vx[2][1] = y3;
|
||||
vx[3][0] = x2; vx[3][1] = y3;
|
||||
vx[4][0] = x3; vx[4][1] = y2;
|
||||
vx[5][0] = x3; vx[5][1] = y1;
|
||||
vx[6][0] = x2; vx[6][1] = y0;
|
||||
vx[7][0] = x1; vx[7][1] = y0;
|
||||
|
||||
glBegin(GL_POLYGON);
|
||||
for (i = 0; i < 8; i++) {
|
||||
SetColor(COLOR_WHITE-i);
|
||||
glVertex2iv(vx[i]);
|
||||
}
|
||||
glEnd();
|
||||
|
||||
glBegin(GL_POLYGON);
|
||||
glVertex2i(0, 0);
|
||||
glVertex2i(100, 100);
|
||||
glEnd();
|
||||
}
|
||||
|
||||
static void Quads(void)
|
||||
{
|
||||
|
||||
glBegin(GL_QUADS);
|
||||
SetColor(COLOR_GREEN);
|
||||
glVertex2i(-boxW/4, -boxH/4);
|
||||
SetColor(COLOR_RED);
|
||||
glVertex2i(-boxW/8, -boxH/16);
|
||||
SetColor(COLOR_BLUE);
|
||||
glVertex2i(boxW/8, -boxH/16);
|
||||
SetColor(COLOR_WHITE);
|
||||
glVertex2i(boxW/4, -boxH/4);
|
||||
|
||||
SetColor(COLOR_GREEN);
|
||||
glVertex2i(-boxW/4, boxH/4);
|
||||
SetColor(COLOR_RED);
|
||||
glVertex2i(-boxW/8, boxH/16);
|
||||
SetColor(COLOR_BLUE);
|
||||
glVertex2i(boxW/8, boxH/16);
|
||||
SetColor(COLOR_WHITE);
|
||||
glVertex2i(boxW/4, boxH/4);
|
||||
glEnd();
|
||||
|
||||
glBegin(GL_QUADS);
|
||||
glVertex2i(0, 0);
|
||||
glVertex2i(100, 100);
|
||||
glVertex2i(-100, 100);
|
||||
glEnd();
|
||||
}
|
||||
|
||||
static void QuadStrip(void)
|
||||
{
|
||||
|
||||
glBegin(GL_QUAD_STRIP);
|
||||
SetColor(COLOR_GREEN);
|
||||
glVertex2i(-boxW/4, -boxH/4);
|
||||
SetColor(COLOR_RED);
|
||||
glVertex2i(-boxW/4, boxH/4);
|
||||
SetColor(COLOR_BLUE);
|
||||
glVertex2i(0, -boxH/4);
|
||||
SetColor(COLOR_WHITE);
|
||||
glVertex2i(0, boxH/4);
|
||||
SetColor(COLOR_CYAN);
|
||||
glVertex2i(boxW/4, -boxH/4);
|
||||
SetColor(COLOR_YELLOW);
|
||||
glVertex2i(boxW/4, boxH/4);
|
||||
glEnd();
|
||||
|
||||
glBegin(GL_QUAD_STRIP);
|
||||
glVertex2i(0, 0);
|
||||
glVertex2i(100, 100);
|
||||
glVertex2i(-100, 100);
|
||||
glEnd();
|
||||
}
|
||||
|
||||
static void Draw(EGLDisplay dpy, EGLSurface surf)
|
||||
{
|
||||
|
||||
glViewport(0, 0, windW, windH);
|
||||
glDisable(GL_SCISSOR_TEST);
|
||||
|
||||
glPushAttrib(GL_COLOR_BUFFER_BIT);
|
||||
|
||||
glColorMask(1, 1, 1, 1);
|
||||
glIndexMask(~0);
|
||||
|
||||
glClearColor(0.0, 0.0, 0.0, 0.0);
|
||||
glClear(GL_COLOR_BUFFER_BIT);
|
||||
|
||||
glPopAttrib();
|
||||
|
||||
if (mode1) {
|
||||
glShadeModel(GL_SMOOTH);
|
||||
} else {
|
||||
glShadeModel(GL_FLAT);
|
||||
}
|
||||
|
||||
if (mode2) {
|
||||
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
|
||||
} else {
|
||||
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
|
||||
}
|
||||
|
||||
Viewport(0, 0); Point();
|
||||
Viewport(0, 1); Lines();
|
||||
Viewport(0, 2); LineStrip();
|
||||
Viewport(0, 3); LineLoop();
|
||||
|
||||
Viewport(1, 0); Bitmap();
|
||||
|
||||
Viewport(1, 1); TriangleFan();
|
||||
Viewport(1, 2); Triangles();
|
||||
Viewport(1, 3); TriangleStrip();
|
||||
|
||||
Viewport(2, 0); Rect();
|
||||
Viewport(2, 1); PolygonFunc();
|
||||
Viewport(2, 2); Quads();
|
||||
Viewport(2, 3); QuadStrip();
|
||||
|
||||
glFlush();
|
||||
|
||||
if (doubleBuffer) {
|
||||
eglSwapBuffers(dpy, surf);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
write_ppm(const char *filename, const GLubyte *buffer, int width, int height)
|
||||
{
|
||||
const int binary = 0;
|
||||
FILE *f = fopen( filename, "w" );
|
||||
if (f) {
|
||||
int i, x, y;
|
||||
const GLubyte *ptr = buffer;
|
||||
if (binary) {
|
||||
fprintf(f,"P6\n");
|
||||
fprintf(f,"# ppm-file created by osdemo.c\n");
|
||||
fprintf(f,"%i %i\n", width,height);
|
||||
fprintf(f,"255\n");
|
||||
fclose(f);
|
||||
f = fopen( filename, "ab" ); /* reopen in binary append mode */
|
||||
for (y=height-1; y>=0; y--) {
|
||||
for (x=0; x<width; x++) {
|
||||
i = (y*width + x) * 4;
|
||||
fputc(ptr[i], f); /* write red */
|
||||
fputc(ptr[i+1], f); /* write green */
|
||||
fputc(ptr[i+2], f); /* write blue */
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
/*ASCII*/
|
||||
int counter = 0;
|
||||
fprintf(f,"P3\n");
|
||||
fprintf(f,"# ascii ppm file created by osdemo.c\n");
|
||||
fprintf(f,"%i %i\n", width, height);
|
||||
fprintf(f,"255\n");
|
||||
for (y=height-1; y>=0; y--) {
|
||||
for (x=0; x<width; x++) {
|
||||
i = (y*width + x) * 4;
|
||||
fprintf(f, " %3d %3d %3d", ptr[i], ptr[i+1], ptr[i+2]);
|
||||
counter++;
|
||||
if (counter % 5 == 0)
|
||||
fprintf(f, "\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
fclose(f);
|
||||
}
|
||||
}
|
||||
|
||||
#include "../src/egl/main/egldisplay.h"
|
||||
|
||||
typedef struct fb_display
|
||||
{
|
||||
_EGLDisplay Base; /* base class/object */
|
||||
void *pFB;
|
||||
} fbDisplay;
|
||||
|
||||
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
int maj, min;
|
||||
EGLContext ctx;
|
||||
EGLSurface screen_surf;
|
||||
EGLConfig configs[10];
|
||||
EGLScreenMESA screen;
|
||||
EGLModeMESA mode;
|
||||
EGLint numConfigs, count;
|
||||
EGLBoolean b;
|
||||
const EGLint screenAttribs[] = {
|
||||
EGL_WIDTH, 1024,
|
||||
EGL_HEIGHT, 768,
|
||||
EGL_NONE
|
||||
};
|
||||
|
||||
/*
|
||||
EGLDisplay d = eglGetDisplay(EGL_DEFAULT_DISPLAY);
|
||||
*/
|
||||
EGLDisplay d = eglGetDisplay(":0");
|
||||
assert(d);
|
||||
|
||||
if (!eglInitialize(d, &maj, &min)) {
|
||||
printf("demo: eglInitialize failed\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
printf("EGL version = %d.%d\n", maj, min);
|
||||
printf("EGL_VENDOR = %s\n", eglQueryString(d, EGL_VENDOR));
|
||||
|
||||
eglGetConfigs(d, configs, 10, &numConfigs);
|
||||
eglGetScreensMESA(d, &screen, 1, &count);
|
||||
eglGetModesMESA(d, screen, &mode, 1, &count);
|
||||
|
||||
ctx = eglCreateContext(d, configs[0], EGL_NO_CONTEXT, NULL);
|
||||
if (ctx == EGL_NO_CONTEXT) {
|
||||
printf("failed to create context\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
screen_surf = eglCreateScreenSurfaceMESA(d, configs[0], screenAttribs);
|
||||
if (screen_surf == EGL_NO_SURFACE) {
|
||||
printf("failed to create screen surface\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
eglShowSurfaceMESA(d, screen, screen_surf, mode);
|
||||
|
||||
b = eglMakeCurrent(d, screen_surf, screen_surf, ctx);
|
||||
if (!b) {
|
||||
printf("make current failed\n");
|
||||
return 0;
|
||||
}
|
||||
glViewport(0, 0, 1024, 768);
|
||||
|
||||
|
||||
Init();
|
||||
Reshape(1024, 768);
|
||||
|
||||
glDrawBuffer( GL_FRONT );
|
||||
glClearColor( 0, 1.0, 0, 1);
|
||||
|
||||
glClear( GL_COLOR_BUFFER_BIT );
|
||||
|
||||
doubleBuffer = 1;
|
||||
glDrawBuffer( GL_BACK );
|
||||
|
||||
Draw(d, screen_surf);
|
||||
|
||||
write_ppm("dump.ppm", ((struct fb_display *)_eglLookupDisplay(d))->pFB, 1024, 768);
|
||||
|
||||
eglDestroySurface(d, screen_surf);
|
||||
eglDestroyContext(d, ctx);
|
||||
eglTerminate(d);
|
||||
|
||||
return 0;
|
||||
}
|
448
progs/egl/eglgears.c
Normal file
448
progs/egl/eglgears.c
Normal file
@@ -0,0 +1,448 @@
|
||||
/*
|
||||
* Copyright (C) 1999-2001 Brian Paul All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
* to deal in the Software without restriction, including without limitation
|
||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
* and/or sell copies of the Software, and to permit persons to whom the
|
||||
* Software is 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 Software.
|
||||
*
|
||||
* THE SOFTWARE IS 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
|
||||
* BRIAN PAUL 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 SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
/*
|
||||
* This is a port of the infamous "glxgears" demo to straight EGL
|
||||
* Port by Dane Rushton 10 July 2005
|
||||
*
|
||||
* No command line options.
|
||||
* Program runs for 5 seconds then exits, outputing framerate to console
|
||||
*/
|
||||
|
||||
#include <math.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <GL/gl.h>
|
||||
#include <GLES/egl.h>
|
||||
#include <assert.h>
|
||||
|
||||
|
||||
#define BENCHMARK
|
||||
|
||||
#ifdef BENCHMARK
|
||||
|
||||
/* XXX this probably isn't very portable */
|
||||
|
||||
#include <sys/time.h>
|
||||
#include <unistd.h>
|
||||
|
||||
/* return current time (in seconds) */
|
||||
static double
|
||||
current_time(void)
|
||||
{
|
||||
struct timeval tv;
|
||||
#ifdef __VMS
|
||||
(void) gettimeofday(&tv, NULL );
|
||||
#else
|
||||
struct timezone tz;
|
||||
(void) gettimeofday(&tv, &tz);
|
||||
#endif
|
||||
return (double) tv.tv_sec + tv.tv_usec / 1000000.0;
|
||||
}
|
||||
|
||||
#else /*BENCHMARK*/
|
||||
|
||||
/* dummy */
|
||||
static double
|
||||
current_time(void)
|
||||
{
|
||||
/* update this function for other platforms! */
|
||||
static double t = 0.0;
|
||||
static int warn = 1;
|
||||
if (warn) {
|
||||
fprintf(stderr, "Warning: current_time() not implemented!!\n");
|
||||
warn = 0;
|
||||
}
|
||||
return t += 1.0;
|
||||
}
|
||||
|
||||
#endif /*BENCHMARK*/
|
||||
|
||||
|
||||
#ifndef M_PI
|
||||
#define M_PI 3.14159265
|
||||
#endif
|
||||
|
||||
|
||||
static GLfloat view_rotx = 20.0, view_roty = 30.0, view_rotz = 0.0;
|
||||
static GLint gear1, gear2, gear3;
|
||||
static GLfloat angle = 0.0;
|
||||
|
||||
//static GLfloat eyesep = 5.0; /* Eye separation. */
|
||||
//static GLfloat fix_point = 40.0; /* Fixation point distance. */
|
||||
//static GLfloat left, right, asp; /* Stereo frustum params. */
|
||||
|
||||
|
||||
/*
|
||||
*
|
||||
* Draw a gear wheel. You'll probably want to call this function when
|
||||
* building a display list since we do a lot of trig here.
|
||||
*
|
||||
* Input: inner_radius - radius of hole at center
|
||||
* outer_radius - radius at center of teeth
|
||||
* width - width of gear
|
||||
* teeth - number of teeth
|
||||
* tooth_depth - depth of tooth
|
||||
*/
|
||||
static void
|
||||
gear(GLfloat inner_radius, GLfloat outer_radius, GLfloat width,
|
||||
GLint teeth, GLfloat tooth_depth)
|
||||
{
|
||||
GLint i;
|
||||
GLfloat r0, r1, r2;
|
||||
GLfloat angle, da;
|
||||
GLfloat u, v, len;
|
||||
|
||||
r0 = inner_radius;
|
||||
r1 = outer_radius - tooth_depth / 2.0;
|
||||
r2 = outer_radius + tooth_depth / 2.0;
|
||||
|
||||
da = 2.0 * M_PI / teeth / 4.0;
|
||||
|
||||
glShadeModel(GL_FLAT);
|
||||
|
||||
glNormal3f(0.0, 0.0, 1.0);
|
||||
|
||||
/* draw front face */
|
||||
glBegin(GL_QUAD_STRIP);
|
||||
for (i = 0; i <= teeth; i++) {
|
||||
angle = i * 2.0 * M_PI / teeth;
|
||||
glVertex3f(r0 * cos(angle), r0 * sin(angle), width * 0.5);
|
||||
glVertex3f(r1 * cos(angle), r1 * sin(angle), width * 0.5);
|
||||
if (i < teeth) {
|
||||
glVertex3f(r0 * cos(angle), r0 * sin(angle), width * 0.5);
|
||||
glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da),
|
||||
width * 0.5);
|
||||
}
|
||||
}
|
||||
glEnd();
|
||||
|
||||
/* draw front sides of teeth */
|
||||
glBegin(GL_QUADS);
|
||||
da = 2.0 * M_PI / teeth / 4.0;
|
||||
for (i = 0; i < teeth; i++) {
|
||||
angle = i * 2.0 * M_PI / teeth;
|
||||
|
||||
glVertex3f(r1 * cos(angle), r1 * sin(angle), width * 0.5);
|
||||
glVertex3f(r2 * cos(angle + da), r2 * sin(angle + da), width * 0.5);
|
||||
glVertex3f(r2 * cos(angle + 2 * da), r2 * sin(angle + 2 * da),
|
||||
width * 0.5);
|
||||
glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da),
|
||||
width * 0.5);
|
||||
}
|
||||
glEnd();
|
||||
|
||||
glNormal3f(0.0, 0.0, -1.0);
|
||||
|
||||
/* draw back face */
|
||||
glBegin(GL_QUAD_STRIP);
|
||||
for (i = 0; i <= teeth; i++) {
|
||||
angle = i * 2.0 * M_PI / teeth;
|
||||
glVertex3f(r1 * cos(angle), r1 * sin(angle), -width * 0.5);
|
||||
glVertex3f(r0 * cos(angle), r0 * sin(angle), -width * 0.5);
|
||||
if (i < teeth) {
|
||||
glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da),
|
||||
-width * 0.5);
|
||||
glVertex3f(r0 * cos(angle), r0 * sin(angle), -width * 0.5);
|
||||
}
|
||||
}
|
||||
glEnd();
|
||||
|
||||
/* draw back sides of teeth */
|
||||
glBegin(GL_QUADS);
|
||||
da = 2.0 * M_PI / teeth / 4.0;
|
||||
for (i = 0; i < teeth; i++) {
|
||||
angle = i * 2.0 * M_PI / teeth;
|
||||
|
||||
glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da),
|
||||
-width * 0.5);
|
||||
glVertex3f(r2 * cos(angle + 2 * da), r2 * sin(angle + 2 * da),
|
||||
-width * 0.5);
|
||||
glVertex3f(r2 * cos(angle + da), r2 * sin(angle + da), -width * 0.5);
|
||||
glVertex3f(r1 * cos(angle), r1 * sin(angle), -width * 0.5);
|
||||
}
|
||||
glEnd();
|
||||
|
||||
/* draw outward faces of teeth */
|
||||
glBegin(GL_QUAD_STRIP);
|
||||
for (i = 0; i < teeth; i++) {
|
||||
angle = i * 2.0 * M_PI / teeth;
|
||||
|
||||
glVertex3f(r1 * cos(angle), r1 * sin(angle), width * 0.5);
|
||||
glVertex3f(r1 * cos(angle), r1 * sin(angle), -width * 0.5);
|
||||
u = r2 * cos(angle + da) - r1 * cos(angle);
|
||||
v = r2 * sin(angle + da) - r1 * sin(angle);
|
||||
len = sqrt(u * u + v * v);
|
||||
u /= len;
|
||||
v /= len;
|
||||
glNormal3f(v, -u, 0.0);
|
||||
glVertex3f(r2 * cos(angle + da), r2 * sin(angle + da), width * 0.5);
|
||||
glVertex3f(r2 * cos(angle + da), r2 * sin(angle + da), -width * 0.5);
|
||||
glNormal3f(cos(angle), sin(angle), 0.0);
|
||||
glVertex3f(r2 * cos(angle + 2 * da), r2 * sin(angle + 2 * da),
|
||||
width * 0.5);
|
||||
glVertex3f(r2 * cos(angle + 2 * da), r2 * sin(angle + 2 * da),
|
||||
-width * 0.5);
|
||||
u = r1 * cos(angle + 3 * da) - r2 * cos(angle + 2 * da);
|
||||
v = r1 * sin(angle + 3 * da) - r2 * sin(angle + 2 * da);
|
||||
glNormal3f(v, -u, 0.0);
|
||||
glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da),
|
||||
width * 0.5);
|
||||
glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da),
|
||||
-width * 0.5);
|
||||
glNormal3f(cos(angle), sin(angle), 0.0);
|
||||
}
|
||||
|
||||
glVertex3f(r1 * cos(0), r1 * sin(0), width * 0.5);
|
||||
glVertex3f(r1 * cos(0), r1 * sin(0), -width * 0.5);
|
||||
|
||||
glEnd();
|
||||
|
||||
glShadeModel(GL_SMOOTH);
|
||||
|
||||
/* draw inside radius cylinder */
|
||||
glBegin(GL_QUAD_STRIP);
|
||||
for (i = 0; i <= teeth; i++) {
|
||||
angle = i * 2.0 * M_PI / teeth;
|
||||
glNormal3f(-cos(angle), -sin(angle), 0.0);
|
||||
glVertex3f(r0 * cos(angle), r0 * sin(angle), -width * 0.5);
|
||||
glVertex3f(r0 * cos(angle), r0 * sin(angle), width * 0.5);
|
||||
}
|
||||
glEnd();
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
draw(void)
|
||||
{
|
||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||
|
||||
glPushMatrix();
|
||||
glRotatef(view_rotx, 1.0, 0.0, 0.0);
|
||||
glRotatef(view_roty, 0.0, 1.0, 0.0);
|
||||
glRotatef(view_rotz, 0.0, 0.0, 1.0);
|
||||
|
||||
glPushMatrix();
|
||||
glTranslatef(-3.0, -2.0, 0.0);
|
||||
glRotatef(angle, 0.0, 0.0, 1.0);
|
||||
glCallList(gear1);
|
||||
glPopMatrix();
|
||||
|
||||
glPushMatrix();
|
||||
glTranslatef(3.1, -2.0, 0.0);
|
||||
glRotatef(-2.0 * angle - 9.0, 0.0, 0.0, 1.0);
|
||||
glCallList(gear2);
|
||||
glPopMatrix();
|
||||
|
||||
glPushMatrix();
|
||||
glTranslatef(-3.1, 4.2, 0.0);
|
||||
glRotatef(-2.0 * angle - 25.0, 0.0, 0.0, 1.0);
|
||||
glCallList(gear3);
|
||||
glPopMatrix();
|
||||
|
||||
glPopMatrix();
|
||||
}
|
||||
|
||||
|
||||
/* new window size or exposure */
|
||||
static void
|
||||
reshape(int width, int height)
|
||||
{
|
||||
glViewport(0, 0, (GLint) width, (GLint) height);
|
||||
|
||||
GLfloat h = (GLfloat) height / (GLfloat) width;
|
||||
|
||||
glMatrixMode(GL_PROJECTION);
|
||||
glLoadIdentity();
|
||||
glFrustum(-1.0, 1.0, -h, h, 5.0, 60.0);
|
||||
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
glLoadIdentity();
|
||||
glTranslatef(0.0, 0.0, -40.0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void
|
||||
init(void)
|
||||
{
|
||||
static GLfloat pos[4] = { 5.0, 5.0, 10.0, 0.0 };
|
||||
static GLfloat red[4] = { 0.8, 0.1, 0.0, 1.0 };
|
||||
static GLfloat green[4] = { 0.0, 0.8, 0.2, 1.0 };
|
||||
static GLfloat blue[4] = { 0.2, 0.2, 1.0, 1.0 };
|
||||
|
||||
glLightfv(GL_LIGHT0, GL_POSITION, pos);
|
||||
glEnable(GL_CULL_FACE);
|
||||
glEnable(GL_LIGHTING);
|
||||
glEnable(GL_LIGHT0);
|
||||
glEnable(GL_DEPTH_TEST);
|
||||
|
||||
/* make the gears */
|
||||
gear1 = glGenLists(1);
|
||||
glNewList(gear1, GL_COMPILE);
|
||||
glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, red);
|
||||
gear(1.0, 4.0, 1.0, 20, 0.7);
|
||||
glEndList();
|
||||
|
||||
gear2 = glGenLists(1);
|
||||
glNewList(gear2, GL_COMPILE);
|
||||
glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, green);
|
||||
gear(0.5, 2.0, 2.0, 10, 0.7);
|
||||
glEndList();
|
||||
|
||||
gear3 = glGenLists(1);
|
||||
glNewList(gear3, GL_COMPILE);
|
||||
glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, blue);
|
||||
gear(1.3, 2.0, 0.5, 10, 0.7);
|
||||
glEndList();
|
||||
|
||||
glEnable(GL_NORMALIZE);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
static void run_gears(EGLDisplay dpy, EGLSurface surf, int ttr)
|
||||
{
|
||||
double st = current_time();
|
||||
double ct = st;
|
||||
int frames = 0;
|
||||
while (ct - st < ttr)
|
||||
{
|
||||
double tt = current_time();
|
||||
double dt = tt - ct;
|
||||
ct = tt;
|
||||
|
||||
/* advance rotation for next frame */
|
||||
angle += 70.0 * dt; /* 70 degrees per second */
|
||||
if (angle > 3600.0)
|
||||
angle -= 3600.0;
|
||||
|
||||
draw();
|
||||
|
||||
// DBR : Swap the Buffers
|
||||
eglSwapBuffers(dpy, surf);
|
||||
|
||||
|
||||
frames++;
|
||||
}
|
||||
|
||||
GLfloat seconds = ct - st;
|
||||
GLfloat fps = frames / seconds;
|
||||
printf("%d frames in %3.1f seconds = %6.3f FPS\n", frames, seconds, fps);
|
||||
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
int maj, min;
|
||||
EGLContext ctx;
|
||||
EGLSurface screen_surf;
|
||||
EGLConfig configs[10];
|
||||
EGLint numConfigs, i;
|
||||
EGLBoolean b;
|
||||
|
||||
const EGLint screenAttribs[] = {
|
||||
EGL_WIDTH, 1024,
|
||||
EGL_HEIGHT, 768,
|
||||
EGL_NONE
|
||||
};
|
||||
|
||||
EGLModeMESA mode;
|
||||
EGLScreenMESA screen;
|
||||
EGLint count;
|
||||
GLboolean printInfo = GL_FALSE;
|
||||
|
||||
for (i = 1; i < argc; i++)
|
||||
{
|
||||
if (strcmp(argv[i], "-info") == 0)
|
||||
{
|
||||
printInfo = GL_TRUE;
|
||||
}
|
||||
else
|
||||
printf("Warning: unknown parameter: %s\n", argv[i]);
|
||||
}
|
||||
|
||||
// DBR : Create EGL context/surface etc
|
||||
EGLDisplay d = eglGetDisplay(":0");
|
||||
assert(d);
|
||||
|
||||
if (!eglInitialize(d, &maj, &min)) {
|
||||
printf("demo: eglInitialize failed\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
printf("EGL version = %d.%d\n", maj, min);
|
||||
printf("EGL_VENDOR = %s\n", eglQueryString(d, EGL_VENDOR));
|
||||
|
||||
eglGetConfigs(d, configs, 10, &numConfigs);
|
||||
eglGetScreensMESA(d, &screen, 1, &count);
|
||||
eglGetModesMESA(d, screen, &mode, 1, &count);
|
||||
|
||||
ctx = eglCreateContext(d, configs[0], EGL_NO_CONTEXT, NULL);
|
||||
if (ctx == EGL_NO_CONTEXT) {
|
||||
printf("failed to create context\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
screen_surf = eglCreateScreenSurfaceMESA(d, configs[0], screenAttribs);
|
||||
if (screen_surf == EGL_NO_SURFACE) {
|
||||
printf("failed to create screen surface\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
eglShowSurfaceMESA(d, screen, screen_surf, mode);
|
||||
|
||||
b = eglMakeCurrent(d, screen_surf, screen_surf, ctx);
|
||||
if (!b) {
|
||||
printf("make current failed\n");
|
||||
return 0;
|
||||
}
|
||||
// DBR
|
||||
|
||||
if (printInfo)
|
||||
{
|
||||
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
|
||||
printf("GL_VERSION = %s\n", (char *) glGetString(GL_VERSION));
|
||||
printf("GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR));
|
||||
printf("GL_EXTENSIONS = %s\n", (char *) glGetString(GL_EXTENSIONS));
|
||||
}
|
||||
|
||||
init(); // Initialise the GL visual
|
||||
reshape(1024,768);
|
||||
|
||||
glDrawBuffer( GL_BACK );
|
||||
|
||||
// DBR : Run the simulation
|
||||
run_gears(d, screen_surf, 5.0);
|
||||
|
||||
|
||||
// DBR : Destroy EGL context/surface etc
|
||||
eglDestroySurface(d, screen_surf);
|
||||
eglDestroyContext(d, ctx);
|
||||
eglTerminate(d);
|
||||
// DBR
|
||||
|
||||
return 0;
|
||||
}
|
162
progs/egl/eglinfo.c
Normal file
162
progs/egl/eglinfo.c
Normal file
@@ -0,0 +1,162 @@
|
||||
/*
|
||||
* eglinfo - like glxinfo but for EGL
|
||||
*
|
||||
* Brian Paul
|
||||
* 11 March 2005
|
||||
*
|
||||
* Copyright (C) 2005 Brian Paul All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
* to deal in the Software without restriction, including without limitation
|
||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
* and/or sell copies of the Software, and to permit persons to whom the
|
||||
* Software is 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 Software.
|
||||
*
|
||||
* THE SOFTWARE IS 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
|
||||
* BRIAN PAUL 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 SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
#include <GLES/egl.h>
|
||||
#include <assert.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#define MAX_CONFIGS 1000
|
||||
#define MAX_MODES 1000
|
||||
#define MAX_SCREENS 10
|
||||
|
||||
|
||||
/**
|
||||
* Print table of all available configurations.
|
||||
*/
|
||||
static void
|
||||
PrintConfigs(EGLDisplay d)
|
||||
{
|
||||
EGLConfig configs[MAX_CONFIGS];
|
||||
EGLint numConfigs, i;
|
||||
|
||||
eglGetConfigs(d, configs, MAX_CONFIGS, &numConfigs);
|
||||
|
||||
printf("Configurations:\n");
|
||||
printf(" bf lv d st colorbuffer dp st supported \n");
|
||||
printf(" id sz l b ro r g b a th cl surfaces \n");
|
||||
printf("----------------------------------------------\n");
|
||||
for (i = 0; i < numConfigs; i++) {
|
||||
EGLint id, size, level;
|
||||
EGLint red, green, blue, alpha;
|
||||
EGLint depth, stencil;
|
||||
EGLint surfaces;
|
||||
EGLint doubleBuf = 1, stereo = 0;
|
||||
char surfString[100] = "";
|
||||
|
||||
eglGetConfigAttrib(d, configs[i], EGL_CONFIG_ID, &id);
|
||||
eglGetConfigAttrib(d, configs[i], EGL_BUFFER_SIZE, &size);
|
||||
eglGetConfigAttrib(d, configs[i], EGL_LEVEL, &level);
|
||||
|
||||
eglGetConfigAttrib(d, configs[i], EGL_RED_SIZE, &red);
|
||||
eglGetConfigAttrib(d, configs[i], EGL_GREEN_SIZE, &green);
|
||||
eglGetConfigAttrib(d, configs[i], EGL_BLUE_SIZE, &blue);
|
||||
eglGetConfigAttrib(d, configs[i], EGL_ALPHA_SIZE, &alpha);
|
||||
eglGetConfigAttrib(d, configs[i], EGL_DEPTH_SIZE, &depth);
|
||||
eglGetConfigAttrib(d, configs[i], EGL_STENCIL_SIZE, &stencil);
|
||||
eglGetConfigAttrib(d, configs[i], EGL_SURFACE_TYPE, &surfaces);
|
||||
|
||||
if (surfaces & EGL_WINDOW_BIT)
|
||||
strcat(surfString, "win,");
|
||||
if (surfaces & EGL_PBUFFER_BIT)
|
||||
strcat(surfString, "pb,");
|
||||
if (surfaces & EGL_PIXMAP_BIT)
|
||||
strcat(surfString, "pix,");
|
||||
if (strlen(surfString) > 0)
|
||||
surfString[strlen(surfString) - 1] = 0;
|
||||
|
||||
printf("0x%02x %2d %2d %c %c %2d %2d %2d %2d %2d %2d %-12s\n",
|
||||
id, size, level,
|
||||
doubleBuf ? 'y' : '.',
|
||||
stereo ? 'y' : '.',
|
||||
red, green, blue, alpha,
|
||||
depth, stencil, surfString);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Print table of all available configurations.
|
||||
*/
|
||||
static void
|
||||
PrintModes(EGLDisplay d)
|
||||
{
|
||||
#ifdef EGL_MESA_screen_surface
|
||||
const char *extensions = eglQueryString(d, EGL_EXTENSIONS);
|
||||
if (strstr(extensions, "EGL_MESA_screen_surface")) {
|
||||
EGLScreenMESA screens[MAX_SCREENS];
|
||||
EGLint numScreens = 1, scrn;
|
||||
EGLModeMESA modes[MAX_MODES];
|
||||
|
||||
eglGetScreensMESA(d, screens, MAX_SCREENS, &numScreens);
|
||||
printf("Number of Screens: %d\n\n", numScreens);
|
||||
|
||||
for (scrn = 0; scrn < numScreens; scrn++) {
|
||||
EGLint numModes, i;
|
||||
|
||||
eglGetModesMESA(d, screens[scrn], modes, MAX_MODES, &numModes);
|
||||
|
||||
printf("Screen %d Modes:\n", scrn);
|
||||
printf(" id width height refresh name\n");
|
||||
printf("-----------------------------------------\n");
|
||||
for (i = 0; i < numModes; i++) {
|
||||
EGLint id, w, h, r;
|
||||
const char *str;
|
||||
eglGetModeAttribMESA(d, modes[i], EGL_MODE_ID_MESA, &id);
|
||||
eglGetModeAttribMESA(d, modes[i], EGL_WIDTH, &w);
|
||||
eglGetModeAttribMESA(d, modes[i], EGL_HEIGHT, &h);
|
||||
eglGetModeAttribMESA(d, modes[i], EGL_REFRESH_RATE_MESA, &r);
|
||||
str = eglQueryModeStringMESA(d, modes[i]);
|
||||
printf("0x%02x %5d %5d %.3f %s\n", id, w, h, r / 1000.0, str);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
int maj, min;
|
||||
/*EGLDisplay d = eglGetDisplay(EGL_DEFAULT_DISPLAY);*/
|
||||
EGLDisplay d = eglGetDisplay("!r200_dri");
|
||||
|
||||
if (!eglInitialize(d, &maj, &min)) {
|
||||
printf("eglinfo: eglInitialize failed\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
printf("EGL API version: %d.%d\n", maj, min);
|
||||
printf("EGL vendor string: %s\n", eglQueryString(d, EGL_VENDOR));
|
||||
printf("EGL version string: %s\n", eglQueryString(d, EGL_VERSION));
|
||||
printf("EGL extensions string:\n");
|
||||
printf(" %s\n", eglQueryString(d, EGL_EXTENSIONS));
|
||||
printf("\n");
|
||||
|
||||
PrintConfigs(d);
|
||||
|
||||
printf("\n");
|
||||
|
||||
PrintModes(d);
|
||||
|
||||
eglTerminate(d);
|
||||
|
||||
return 0;
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user