Compare commits
1856 Commits
mesa-6.5.2
...
mesa-7.0.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
593de57fa2 | ||
|
|
04b0e43ea6 | ||
|
|
04eee290c8 | ||
|
|
121b4ac220 | ||
|
|
cdbd5db3af | ||
|
|
b2240f6ad4 | ||
|
|
33814a55f8 | ||
|
|
a57c5a417b | ||
|
|
ff1a28de17 | ||
|
|
772f57f99b | ||
|
|
dacee32b8b | ||
|
|
fa1a3eb06d | ||
|
|
bd4817ca54 | ||
|
|
d3a160e217 | ||
|
|
c5837f2791 | ||
|
|
490bd43f18 | ||
|
|
005eea249c | ||
|
|
9747de8ec6 | ||
|
|
849a9799d0 | ||
|
|
e32ae4fe33 | ||
|
|
4595389c4c | ||
|
|
e8ccc7cc49 | ||
|
|
673d21047a | ||
|
|
6186261589 | ||
|
|
45310e219c | ||
|
|
250f6b2c88 | ||
|
|
fdefc2bbda | ||
|
|
2079df8527 | ||
|
|
b53659452c | ||
|
|
46f1d6653e | ||
|
|
c1938a60f7 | ||
|
|
d65110f352 | ||
|
|
9fa3bbcb5a | ||
|
|
19e51ecbe6 | ||
|
|
99d62f2922 | ||
|
|
284743cafe | ||
|
|
08d7307b2a | ||
|
|
ef6a64abe6 | ||
|
|
18bfa52ef7 | ||
|
|
d62be2652c | ||
|
|
31f3433635 | ||
|
|
639eaceee7 | ||
|
|
ea53ff80af | ||
|
|
feeca1bcbc | ||
|
|
12e7278c08 | ||
|
|
45b5c44eb9 | ||
|
|
e3456c1028 | ||
|
|
327fb38573 | ||
|
|
1d25d9e15f | ||
|
|
cc7cee3f48 | ||
|
|
d7062710cd | ||
|
|
3e21f52796 | ||
|
|
9bfba734d8 | ||
|
|
0511d9a9d2 | ||
|
|
aaebf2f47e | ||
|
|
23f8d77b38 | ||
|
|
498b4dbba4 | ||
|
|
ecc42e79ae | ||
|
|
0bf8ed523d | ||
|
|
87d22ee0fe | ||
|
|
52e25f63d4 | ||
|
|
f3fb67972b | ||
|
|
6400756364 | ||
|
|
d71d04bf6f | ||
|
|
af90259e09 | ||
|
|
7c9762f698 | ||
|
|
b2e67fdb7c | ||
|
|
d59f0314bd | ||
|
|
131baefac3 | ||
|
|
a450078b67 | ||
|
|
f6b041bf6c | ||
|
|
4f340d181a | ||
|
|
74a11701f3 | ||
|
|
b58e38e936 | ||
|
|
8713cb48a8 | ||
|
|
277c5e57ed | ||
|
|
b3d62d5af5 | ||
|
|
9c0f0c8d81 | ||
|
|
18a0a2a7ac | ||
|
|
8b99d9e33c | ||
|
|
01e7e153e3 | ||
|
|
0ad4ca24d2 | ||
|
|
724a155552 | ||
|
|
e1b0715dd6 | ||
|
|
a5c6598966 | ||
|
|
d38b74a316 | ||
|
|
54cab4b47b | ||
|
|
c093666bc5 | ||
|
|
04972f6761 | ||
|
|
67f8234622 | ||
|
|
201d6dbd9c | ||
|
|
fbcac5aa83 | ||
|
|
2b72ab8f8f | ||
|
|
0ea97b9408 | ||
|
|
28683ac7c0 | ||
|
|
c72e3e210f | ||
|
|
b0fe0d8a55 | ||
|
|
c128c3ce8c | ||
|
|
6efdf648f5 | ||
|
|
6a587c0124 | ||
|
|
524c3336c4 | ||
|
|
0e7e211055 | ||
|
|
4e641bf3e9 | ||
|
|
2189ff5e51 | ||
|
|
33a73466ae | ||
|
|
13c0abd8a7 | ||
|
|
82de92c0fb | ||
|
|
e4b8481f39 | ||
|
|
b5990cec90 | ||
|
|
d93642251e | ||
|
|
c66fd808ac | ||
|
|
73449270bb | ||
|
|
6f56e68ee3 | ||
|
|
65fae19383 | ||
|
|
b78aec5767 | ||
|
|
6bae7d40f7 | ||
|
|
5f1f1f5704 | ||
|
|
93881edb46 | ||
|
|
56b99ace19 | ||
|
|
3aad47679e | ||
|
|
dac5303692 | ||
|
|
64b03f33ee | ||
|
|
b8b0dd1e20 | ||
|
|
93f9e61f43 | ||
|
|
f405fbb36d | ||
|
|
5a09ea01e0 | ||
|
|
98d25a5a28 | ||
|
|
0aa998b2ab | ||
|
|
b6087270a0 | ||
|
|
3f709f16ef | ||
|
|
67363327e5 | ||
|
|
bcaf8fc7b1 | ||
|
|
ef29d6af6c | ||
|
|
6a69bb5864 | ||
|
|
cbd29adbc8 | ||
|
|
c729e67321 | ||
|
|
5b23d36613 | ||
|
|
a87390504f | ||
|
|
cc358d861d | ||
|
|
749e093e33 | ||
|
|
eab6e16522 | ||
|
|
1b39be3790 | ||
|
|
69ff5a3dbc | ||
|
|
01ec508c7f | ||
|
|
d4e3b0b2c2 | ||
|
|
b63c70666f | ||
|
|
c33c00764c | ||
|
|
6c342ad859 | ||
|
|
86e4f52f3c | ||
|
|
f0707c789a | ||
|
|
aed53ba525 | ||
|
|
3dec7c57b0 | ||
|
|
544e441f53 | ||
|
|
fa546c367d | ||
|
|
64a6a50155 | ||
|
|
c103453d4f | ||
|
|
d7e3d1dc42 | ||
|
|
02e44e41c8 | ||
|
|
eed67a6e3e | ||
|
|
e856edb279 | ||
|
|
58239d2ae3 | ||
|
|
2f6a0840c4 | ||
|
|
c9e723e501 | ||
|
|
87a980a795 | ||
|
|
e282f89a38 | ||
|
|
e2e4b60c7d | ||
|
|
58dacc8df1 | ||
|
|
b470189378 | ||
|
|
574bf4d346 | ||
|
|
795ebb1a3b | ||
|
|
d0be8b959a | ||
|
|
672ecba175 | ||
|
|
0dcea4bf8e | ||
|
|
16c503f39a | ||
|
|
4d5d4e1f97 | ||
|
|
a9ab36b8f2 | ||
|
|
88288b614e | ||
|
|
a154706061 | ||
|
|
6fe41a4c01 | ||
|
|
f4a2b9f83d | ||
|
|
56c2f7bb42 | ||
|
|
df747eb354 | ||
|
|
ff7a41a159 | ||
|
|
01fdb34b39 | ||
|
|
3c9e5cb0bd | ||
|
|
a6aa1f8016 | ||
|
|
967c2d220d | ||
|
|
0e6b7eb9c0 | ||
|
|
ed42bd6e20 | ||
|
|
2db667290a | ||
|
|
cea0c2b144 | ||
|
|
2b5ef29a7b | ||
|
|
4ed59c6012 | ||
|
|
7e7b1f7c4d | ||
|
|
c48e4c6f09 | ||
|
|
4f20fe8a93 | ||
|
|
d28f6d9176 | ||
|
|
fe6a2c4295 | ||
|
|
faf47d9f84 | ||
|
|
f9828f5c4f | ||
|
|
7b165de5f8 | ||
|
|
62ef001de7 | ||
|
|
76d7b62cd2 | ||
|
|
901fc0de18 | ||
|
|
c970811dab | ||
|
|
bb97694fad | ||
|
|
516259d609 | ||
|
|
3e4302fe3b | ||
|
|
dcc8e5f4c1 | ||
|
|
32c8d002d0 | ||
|
|
a8c856d43c | ||
|
|
c9b87b8ad8 | ||
|
|
5d61cfd1fd | ||
|
|
93e957cc65 | ||
|
|
3eae496deb | ||
|
|
81c6516af1 | ||
|
|
9e91351826 | ||
|
|
328b307e2f | ||
|
|
d316b4dc22 | ||
|
|
f0126a76ac | ||
|
|
b8640db021 | ||
|
|
28b47110b6 | ||
|
|
fe2c58d2d5 | ||
|
|
4917955205 | ||
|
|
eca50a27e1 | ||
|
|
0950e9727e | ||
|
|
504fafe389 | ||
|
|
72608aedc3 | ||
|
|
be56660ba0 | ||
|
|
36c8bc6141 | ||
|
|
5c8296a6ab | ||
|
|
6665658a56 | ||
|
|
204bc4e441 | ||
|
|
e90ad3dbbb | ||
|
|
8d62afdb6a | ||
|
|
59494bafb4 | ||
|
|
33939fd29b | ||
|
|
4960af08ad | ||
|
|
f5b0cafbb1 | ||
|
|
c578354642 | ||
|
|
da37ac5ee7 | ||
|
|
ed2fddc98e | ||
|
|
58eaf0acca | ||
|
|
d132f7245d | ||
|
|
73bc8b63ac | ||
|
|
377ce9e074 | ||
|
|
f1d785188b | ||
|
|
313c4c2643 | ||
|
|
fbeae4f70c | ||
|
|
9301a6a325 | ||
|
|
6c036812be | ||
|
|
c6abbbfd02 | ||
|
|
8a7f474c69 | ||
|
|
47e33a27df | ||
|
|
401629c721 | ||
|
|
f1770c3210 | ||
|
|
8130a4fe98 | ||
|
|
8f1c63b263 | ||
|
|
857ebc6d47 | ||
|
|
660bdc616b | ||
|
|
88ae491bd2 | ||
|
|
8445960d9f | ||
|
|
74cae00c0e | ||
|
|
56d9663574 | ||
|
|
81d1a04e04 | ||
|
|
62cbe6c3f3 | ||
|
|
16cec9f767 | ||
|
|
5e2a66466d | ||
|
|
b3378f6cc5 | ||
|
|
91948f99dd | ||
|
|
ae5f67575d | ||
|
|
e75fbd3f91 | ||
|
|
a6dad578b5 | ||
|
|
c6443eb1a3 | ||
|
|
121533defb | ||
|
|
3cddba688d | ||
|
|
dc881e1909 | ||
|
|
2dfb03beb2 | ||
|
|
18cfe0c801 | ||
|
|
60d136f63c | ||
|
|
62da6a1b3e | ||
|
|
77e7535c0f | ||
|
|
5c1b53d58d | ||
|
|
b2f1d6422b | ||
|
|
99f24c8d17 | ||
|
|
04c401c91e | ||
|
|
03f201d935 | ||
|
|
594b5ad87d | ||
|
|
bfd5cf72c4 | ||
|
|
7559364027 | ||
|
|
65faf02367 | ||
|
|
1953cfc954 | ||
|
|
8e7bac950e | ||
|
|
c409dbcae3 | ||
|
|
cbf280dc26 | ||
|
|
af0ae93863 | ||
|
|
bcc3baadba | ||
|
|
4ca7c804db | ||
|
|
bfaf6156fb | ||
|
|
d741b10be6 | ||
|
|
e371a5f084 | ||
|
|
af846712fd | ||
|
|
c4615abb11 | ||
|
|
430e036413 | ||
|
|
502ebe90e8 | ||
|
|
02e958a1e4 | ||
|
|
cce5084941 | ||
|
|
4b1d1b7b18 | ||
|
|
7ff72a7659 | ||
|
|
c4b3b8dece | ||
|
|
65bab0dad8 | ||
|
|
74edc663a6 | ||
|
|
54d59cfb70 | ||
|
|
b7f5b8af65 | ||
|
|
4099531a0a | ||
|
|
1606f2c123 | ||
|
|
1dd7c00214 | ||
|
|
f42d4ab41e | ||
|
|
4a28548cbf | ||
|
|
5814922d25 | ||
|
|
3de20aead2 | ||
|
|
6d27194dff | ||
|
|
03cdacfb6a | ||
|
|
30f3c3dfad | ||
|
|
dee1b0d5bb | ||
|
|
c233aa2768 | ||
|
|
c93b2a1cb7 | ||
|
|
6f2b0fe463 | ||
|
|
0c69176498 | ||
|
|
4e7a0385b5 | ||
|
|
eca456b63d | ||
|
|
4003bde6ff | ||
|
|
ddcf819906 | ||
|
|
9ede048127 | ||
|
|
97693436a5 | ||
|
|
8a8a5bd104 | ||
|
|
3e5eda9ee9 | ||
|
|
f38dcc8a6a | ||
|
|
b1b154c498 | ||
|
|
286faac68e | ||
|
|
3b0bd0ce17 | ||
|
|
208ea84524 | ||
|
|
7868ab6617 | ||
|
|
47ad443c55 | ||
|
|
3db3dc58bc | ||
|
|
c27adc52ce | ||
|
|
afc132e7a9 | ||
|
|
335769a875 | ||
|
|
0bdf216dd0 | ||
|
|
4adbd94b10 | ||
|
|
d59e6f233b | ||
|
|
4a2905b645 | ||
|
|
0638c6b530 | ||
|
|
7dd35ce013 | ||
|
|
ad02042db2 | ||
|
|
c8629c3178 | ||
|
|
77ccf51cb3 | ||
|
|
01197f0c77 | ||
|
|
69c86ff4fd | ||
|
|
f793e90e82 | ||
|
|
112e1f2b5a | ||
|
|
e5cf37c178 | ||
|
|
9a42ffad81 | ||
|
|
0d8633bf8c | ||
|
|
b5e9b0e562 | ||
|
|
b1502588c4 | ||
|
|
d79e80a3d0 | ||
|
|
74afcabd85 | ||
|
|
b3ab925e91 | ||
|
|
2d2c6a622d | ||
|
|
fc3d6bd351 | ||
|
|
e261d66d81 | ||
|
|
cd3e39340f | ||
|
|
d890ebdd25 | ||
|
|
5ee9b3ce72 | ||
|
|
031b539a09 | ||
|
|
ad3cc95485 | ||
|
|
4e0a64675c | ||
|
|
d5e7234ba8 | ||
|
|
bc74cb4c0a | ||
|
|
257f799849 | ||
|
|
81c4fee160 | ||
|
|
1fbdd9d794 | ||
|
|
82839e8430 | ||
|
|
ced6f76404 | ||
|
|
4cc2674aee | ||
|
|
a7f7366d38 | ||
|
|
11e3f733ba | ||
|
|
98ef18909a | ||
|
|
f2346498aa | ||
|
|
4b7c6fc5a6 | ||
|
|
fe16b9f663 | ||
|
|
c9855a60f4 | ||
|
|
838a2a2633 | ||
|
|
e7e5279fc0 | ||
|
|
7fd3a6c521 | ||
|
|
720cf3aa13 | ||
|
|
5491c8194c | ||
|
|
e4e2068ac9 | ||
|
|
6346a753c6 | ||
|
|
4d944b502f | ||
|
|
6aa5668871 | ||
|
|
d60009bd6d | ||
|
|
535c37e85d | ||
|
|
ba3d384e94 | ||
|
|
8b5fce6bcc | ||
|
|
020cdb47cf | ||
|
|
121f2212cc | ||
|
|
24a93dd6a4 | ||
|
|
00da9afb84 | ||
|
|
4abcaf3949 | ||
|
|
6bde08815f | ||
|
|
8e6207396c | ||
|
|
5ca8d4ccf2 | ||
|
|
6b3027e291 | ||
|
|
8d370fb2ee | ||
|
|
36a6a59972 | ||
|
|
addd03da2e | ||
|
|
c93e883b20 | ||
|
|
274ac7a801 | ||
|
|
aaa57412c1 | ||
|
|
2a2f8d806f | ||
|
|
bac15c8db8 | ||
|
|
f3e8c32376 | ||
|
|
6d3d9c1c6d | ||
|
|
e57e752eee | ||
|
|
884af40864 | ||
|
|
30a79f76fc | ||
|
|
8598f55091 | ||
|
|
6d01f3f1ec | ||
|
|
e3caa5f891 | ||
|
|
d9443c2494 | ||
|
|
565cd49b5f | ||
|
|
a4b2b88337 | ||
|
|
04bda46739 | ||
|
|
d2d86a3f0b | ||
|
|
9cbcf7c696 | ||
|
|
468a33d19a | ||
|
|
893b368a82 | ||
|
|
41fc55dd81 | ||
|
|
1a9483c954 | ||
|
|
36949abec7 | ||
|
|
6459adf79b | ||
|
|
badc346206 | ||
|
|
4a7c45118d | ||
|
|
34ca2be769 | ||
|
|
5888010362 | ||
|
|
dfee7619d4 | ||
|
|
96e05da1c9 | ||
|
|
1560de2c3c | ||
|
|
921b008419 | ||
|
|
aa6992a296 | ||
|
|
4b3835dadf | ||
|
|
64e8088667 | ||
|
|
3dfcd48469 | ||
|
|
e812a2a484 | ||
|
|
da56df9d72 | ||
|
|
9519785e29 | ||
|
|
83ad64d94a | ||
|
|
fde15a2bae | ||
|
|
216eb81c53 | ||
|
|
4fc46a6c82 | ||
|
|
e19cfabb6e | ||
|
|
8d8a3cc398 | ||
|
|
fb1d22d23d | ||
|
|
3d59042afd | ||
|
|
967c1056d5 | ||
|
|
9f8373d5ca | ||
|
|
50aaabc248 | ||
|
|
30b6f11de1 | ||
|
|
f11604a30d | ||
|
|
99193e4f74 | ||
|
|
5b74fe0889 | ||
|
|
431d650f2b | ||
|
|
3c008a014f | ||
|
|
bf287356cf | ||
|
|
bce7043ebc | ||
|
|
70b0e123c4 | ||
|
|
f98f4f6d7a | ||
|
|
afc58f5f7e | ||
|
|
b61d74c575 | ||
|
|
9f66025f54 | ||
|
|
183d8e0620 | ||
|
|
b0bba03846 | ||
|
|
ba876be0c0 | ||
|
|
319ce38fa4 | ||
|
|
64700be4e1 | ||
|
|
159ecba4b3 | ||
|
|
e798d22556 | ||
|
|
0109b47106 | ||
|
|
7b2626f7d8 | ||
|
|
19121e2802 | ||
|
|
e0bbf46342 | ||
|
|
702c8f1e6c | ||
|
|
f9574c3f6b | ||
|
|
e8292d28e4 | ||
|
|
c96974f78c | ||
|
|
6461e91ac3 | ||
|
|
af807a4696 | ||
|
|
5c0c60a13c | ||
|
|
5dba996dba | ||
|
|
9612a3011f | ||
|
|
0d3d930912 | ||
|
|
d8bfc42bb7 | ||
|
|
ca7885f733 | ||
|
|
9176752172 | ||
|
|
79bf692420 | ||
|
|
f72e7fb1d6 | ||
|
|
4647f13c43 | ||
|
|
20ec486baf | ||
|
|
55000888b9 | ||
|
|
4f9d3a07bb | ||
|
|
84803279ca | ||
|
|
8d2d6e5194 | ||
|
|
e9c614a1af | ||
|
|
8f3fc5221c | ||
|
|
ae55d5322c | ||
|
|
92b7fa7b48 | ||
|
|
eb4a8b4bb5 | ||
|
|
663a3e9ba7 | ||
|
|
51a894e6eb | ||
|
|
ac32b644ee | ||
|
|
487f7a73cb | ||
|
|
aa1c79eaea | ||
|
|
885111518e | ||
|
|
0cae814f36 | ||
|
|
33c3739628 | ||
|
|
4d864b087e | ||
|
|
2f207dcf1e | ||
|
|
f9c01c33d3 | ||
|
|
d4dc57bb13 | ||
|
|
a28e648690 | ||
|
|
40ae3943f2 | ||
|
|
dba21ed913 | ||
|
|
66d336808d | ||
|
|
dccd9c4f4d | ||
|
|
3fe47d5c57 | ||
|
|
3fd88089c0 | ||
|
|
0683e4ce4b | ||
|
|
ec42af9263 | ||
|
|
00831b5b3b | ||
|
|
ec6c8f86f3 | ||
|
|
e608d92c5b | ||
|
|
57dadf71ca | ||
|
|
adb91c056f | ||
|
|
6f652c89d7 | ||
|
|
7439a36785 | ||
|
|
7eba12edce | ||
|
|
ba730e14ed | ||
|
|
1ba858591b | ||
|
|
f2f5d06853 | ||
|
|
b2ac30ac36 | ||
|
|
3b7f2f53a2 | ||
|
|
8128f7143d | ||
|
|
393a93ea32 | ||
|
|
3e7d43cd48 | ||
|
|
1bbd69251b | ||
|
|
f841b04601 | ||
|
|
b463d52143 | ||
|
|
7e4a7fdddd | ||
|
|
ee2f31e281 | ||
|
|
dad97b4688 | ||
|
|
a01616eed5 | ||
|
|
d750861dc2 | ||
|
|
59f7f6dbe9 | ||
|
|
20d85c609a | ||
|
|
ad766b5785 | ||
|
|
0420d8505a | ||
|
|
05e6fd8398 | ||
|
|
e5d00e8cf4 | ||
|
|
31dc7a3c89 | ||
|
|
17238f1ee5 | ||
|
|
f407cada8a | ||
|
|
e713ef66ef | ||
|
|
a0275b0d2c | ||
|
|
d6d6d20b13 | ||
|
|
1f1f582304 | ||
|
|
811c2e9a91 | ||
|
|
cda3236092 | ||
|
|
9b9e056615 | ||
|
|
ff65fa39e8 | ||
|
|
3e45db6729 | ||
|
|
3b8ab88131 | ||
|
|
32225d06b9 | ||
|
|
a835939222 | ||
|
|
98abd1bbc8 | ||
|
|
a9455bb9a7 | ||
|
|
63c57a14d3 | ||
|
|
25f21b5331 | ||
|
|
da82d86ea0 | ||
|
|
075d3d892f | ||
|
|
ae36cfc65e | ||
|
|
9878e8ff51 | ||
|
|
6583429f89 | ||
|
|
037c068460 | ||
|
|
c042a91b8b | ||
|
|
813a0e11f1 | ||
|
|
52cc32378c | ||
|
|
c3da0bd7dd | ||
|
|
e508155d16 | ||
|
|
0426d3c0c8 | ||
|
|
b53745ce91 | ||
|
|
768f7231ea | ||
|
|
680abf8a02 | ||
|
|
1170268088 | ||
|
|
38a1c2b495 | ||
|
|
b5d988dd19 | ||
|
|
b67d93111d | ||
|
|
22d9132081 | ||
|
|
d619cceea4 | ||
|
|
76f3b66e04 | ||
|
|
e71c34aaa1 | ||
|
|
b9fbedd601 | ||
|
|
8051c95a7e | ||
|
|
ee9bc897f8 | ||
|
|
42aaa548a1 | ||
|
|
6fda763989 | ||
|
|
a1ea7812b2 | ||
|
|
bb59d81d2d | ||
|
|
8a4546b561 | ||
|
|
9db583e7e4 | ||
|
|
7143c61283 | ||
|
|
1b354bb5e4 | ||
|
|
bb0393a0cd | ||
|
|
9fe342d1e6 | ||
|
|
cfdd07d7d3 | ||
|
|
1968444bed | ||
|
|
935f93f966 | ||
|
|
3493e867e9 | ||
|
|
49134e8e53 | ||
|
|
74ceaf545f | ||
|
|
f27991c916 | ||
|
|
0c3ae2ea7f | ||
|
|
0e71d08e8d | ||
|
|
b50b036ffb | ||
|
|
dc3015f157 | ||
|
|
b2bc563142 | ||
|
|
d4dd5a95a8 | ||
|
|
8f90822b72 | ||
|
|
ea3d11a3d8 | ||
|
|
44fb5156bb | ||
|
|
8e1c3bd0b4 | ||
|
|
8f9db0f81c | ||
|
|
d1934c2065 | ||
|
|
81767eead9 | ||
|
|
63556fa994 | ||
|
|
bf020d8d7f | ||
|
|
2bdac09d16 | ||
|
|
654a308439 | ||
|
|
ad76128204 | ||
|
|
fe20a619cf | ||
|
|
e6aeb24b23 | ||
|
|
0aad9e2627 | ||
|
|
12229f119d | ||
|
|
1bf81e3c5d | ||
|
|
1936b25ebd | ||
|
|
002762b13a | ||
|
|
1240eb2683 | ||
|
|
985a2eff82 | ||
|
|
2eb656ef4f | ||
|
|
01b7f2ab2e | ||
|
|
629ec2b06b | ||
|
|
2500d82d0d | ||
|
|
97c9b3ecc6 | ||
|
|
e02b989ff9 | ||
|
|
23d31efc16 | ||
|
|
180cc2f845 | ||
|
|
88db19a484 | ||
|
|
249b451d20 | ||
|
|
c5fe807e42 | ||
|
|
8ba06464ac | ||
|
|
4b5d6c0435 | ||
|
|
6cadebbb67 | ||
|
|
704cd61120 | ||
|
|
4bafc547df | ||
|
|
cbe38dc0ce | ||
|
|
cf4272d256 | ||
|
|
bec665d5b5 | ||
|
|
76444d042c | ||
|
|
ecb1a1c82f | ||
|
|
4185037af2 | ||
|
|
9622a634f6 | ||
|
|
61821a41c0 | ||
|
|
5a65478783 | ||
|
|
b3acba87d7 | ||
|
|
fdcbbeb55e | ||
|
|
826815a5d2 | ||
|
|
7b992d024b | ||
|
|
c4bf863f4c | ||
|
|
b645e8c96d | ||
|
|
ff6ab9b45b | ||
|
|
ec1a77c864 | ||
|
|
a8e65a010c | ||
|
|
7b430acd71 | ||
|
|
07db8c9115 | ||
|
|
9b42100c04 | ||
|
|
e01ee3da57 | ||
|
|
77544d7b7d | ||
|
|
c9e39aeaef | ||
|
|
07265280a9 | ||
|
|
c41d6ab6f0 | ||
|
|
441f038748 | ||
|
|
dd868b4100 | ||
|
|
1062106521 | ||
|
|
bcf4f4de76 | ||
|
|
bb02092d74 | ||
|
|
b6fe1bdd4d | ||
|
|
84081774e6 | ||
|
|
fd1b1fce3f | ||
|
|
cfe984dbd0 | ||
|
|
ee5b7f0574 | ||
|
|
38889f5221 | ||
|
|
6a9b0cd0b4 | ||
|
|
e5070bc3ca | ||
|
|
7573b58db6 | ||
|
|
d7049431a0 | ||
|
|
f04979ae48 | ||
|
|
a02870f4f6 | ||
|
|
e348016253 | ||
|
|
7ed292a4e9 | ||
|
|
95764262a7 | ||
|
|
0c25d9ab19 | ||
|
|
1195caa274 | ||
|
|
0e9ada1087 | ||
|
|
0d6d80ef3d | ||
|
|
51693b22cd | ||
|
|
b3a9a90cdf | ||
|
|
7f08dd3fc6 | ||
|
|
fc6b8f2d30 | ||
|
|
4e4ab2a62b | ||
|
|
4d2eb637a2 | ||
|
|
038e981cac | ||
|
|
90563d39cb | ||
|
|
0cfdf432e4 | ||
|
|
4a7fe4fcfa | ||
|
|
d63eef4b86 | ||
|
|
32d196820f | ||
|
|
b6adf336f4 | ||
|
|
62b4601e53 | ||
|
|
3049946fa7 | ||
|
|
46fe008778 | ||
|
|
47e0b606a8 | ||
|
|
565d097d8f | ||
|
|
2dc3e94470 | ||
|
|
b1a955b518 | ||
|
|
b01f146fd0 | ||
|
|
805b1cf482 | ||
|
|
52363954bf | ||
|
|
98650bdf89 | ||
|
|
5186529e57 | ||
|
|
fdf513e07a | ||
|
|
8d9db3dd03 | ||
|
|
fd08463dea | ||
|
|
c7b2cce418 | ||
|
|
000b2899b9 | ||
|
|
a49a865cf5 | ||
|
|
948c60badc | ||
|
|
a6cc9ab493 | ||
|
|
d8070889d7 | ||
|
|
c000843a14 | ||
|
|
da55430952 | ||
|
|
17ad1d12eb | ||
|
|
8b9842a256 | ||
|
|
37e6f760fd | ||
|
|
7265e6928e | ||
|
|
4c18d9056b | ||
|
|
14f0b7ea98 | ||
|
|
4110fac389 | ||
|
|
eb4db4c4ec | ||
|
|
19fbe9732c | ||
|
|
53f83b435c | ||
|
|
cd66604756 | ||
|
|
0c750ca98d | ||
|
|
b3a22d0ed6 | ||
|
|
708d836e6b | ||
|
|
8946d7f029 | ||
|
|
d2a6f43eaf | ||
|
|
17fb7821d7 | ||
|
|
c1a5447337 | ||
|
|
d0a3400f66 | ||
|
|
33ea9dccaf | ||
|
|
88501887e4 | ||
|
|
5a5b55943d | ||
|
|
3f7ef618b6 | ||
|
|
15aa7aaa93 | ||
|
|
ccb80d7ec4 | ||
|
|
1c09bcfdda | ||
|
|
61ec23cc63 | ||
|
|
69e57cf6ae | ||
|
|
e64166703a | ||
|
|
d23dd812ad | ||
|
|
7d39c1ae76 | ||
|
|
823c041fde | ||
|
|
10b5895597 | ||
|
|
1fcb4ecc07 | ||
|
|
c9872b80c8 | ||
|
|
38f7f81518 | ||
|
|
beffb4e88c | ||
|
|
97775f9904 | ||
|
|
ced8870a6a | ||
|
|
4f12b37a56 | ||
|
|
581a594033 | ||
|
|
df1c3ff3dd | ||
|
|
e61f674844 | ||
|
|
46bd63819e | ||
|
|
ff95925e70 | ||
|
|
30b914e2ca | ||
|
|
b9ea936150 | ||
|
|
6e0878becf | ||
|
|
bb0760ca4f | ||
|
|
2cf5fd48d1 | ||
|
|
9f44247acf | ||
|
|
36b4e25da3 | ||
|
|
b03e1712b2 | ||
|
|
81536789d2 | ||
|
|
f9f79c8d77 | ||
|
|
4d9901a1ca | ||
|
|
a706b0b8bd | ||
|
|
05b74e4ae4 | ||
|
|
2f35a17f38 | ||
|
|
5761a93bba | ||
|
|
3e0fbc7efc | ||
|
|
19a9050548 | ||
|
|
ee931f8d4d | ||
|
|
ec89aba7c6 | ||
|
|
cce4e50569 | ||
|
|
63772e2a2c | ||
|
|
b3dd49429b | ||
|
|
609306de17 | ||
|
|
c9f486c38f | ||
|
|
bf86ddaa20 | ||
|
|
de8172673e | ||
|
|
d85667950f | ||
|
|
6ff0a04f7c | ||
|
|
7e66cad998 | ||
|
|
79d59d0173 | ||
|
|
9637c963f5 | ||
|
|
fb3f0beb42 | ||
|
|
0aec2bb8f2 | ||
|
|
da899d190e | ||
|
|
1e055089a3 | ||
|
|
29bc4b8974 | ||
|
|
c3412e9a08 | ||
|
|
842c782cee | ||
|
|
faeea574af | ||
|
|
35d25c0ce4 | ||
|
|
5b5a80d011 | ||
|
|
ab673c8527 | ||
|
|
1dca089149 | ||
|
|
fb3410297b | ||
|
|
3efd0c7b8d | ||
|
|
f3da222839 | ||
|
|
9adf6e9d6c | ||
|
|
d25046b648 | ||
|
|
e61ec95deb | ||
|
|
cec81eef31 | ||
|
|
55821d021d | ||
|
|
2282d81536 | ||
|
|
6cb0aa12b8 | ||
|
|
0af1c6b5d1 | ||
|
|
e69da9d02e | ||
|
|
1a6baf092b | ||
|
|
955906aa64 | ||
|
|
37fd6be411 | ||
|
|
e10a1457e8 | ||
|
|
87c9ad6fd5 | ||
|
|
fa8961069c | ||
|
|
091be11190 | ||
|
|
28ab1125c2 | ||
|
|
c6d930a114 | ||
|
|
a510bc3ee1 | ||
|
|
593802c0b0 | ||
|
|
330d7e2080 | ||
|
|
c05b6f800a | ||
|
|
6f9b1afc86 | ||
|
|
1c70cde888 | ||
|
|
a783713432 | ||
|
|
540e1c70cc | ||
|
|
7ecdfb2f08 | ||
|
|
180c0d70c4 | ||
|
|
9557706404 | ||
|
|
0d2a68fc61 | ||
|
|
ad3f2107ed | ||
|
|
5cb01764f6 | ||
|
|
a8ba888a35 | ||
|
|
9fbb2e9e76 | ||
|
|
d592eaeb83 | ||
|
|
887d3c67cb | ||
|
|
03b9e16507 | ||
|
|
6a47e35065 | ||
|
|
38a88db1fc | ||
|
|
9f37be694e | ||
|
|
0609b6afa8 | ||
|
|
3c578455e1 | ||
|
|
edf676cc5a | ||
|
|
afa780c09d | ||
|
|
07e62084bb | ||
|
|
381b4b0c91 | ||
|
|
59e56ee3e5 | ||
|
|
f30e312763 | ||
|
|
0e1bd23025 | ||
|
|
2cf8d24131 | ||
|
|
fa4d036424 | ||
|
|
4f26a52908 | ||
|
|
553fe132d4 | ||
|
|
aa6f4241f8 | ||
|
|
e21096b07c | ||
|
|
b58ea057fe | ||
|
|
4b8d75e2e6 | ||
|
|
f446e58e45 | ||
|
|
6817407d49 | ||
|
|
365f8fb0dd | ||
|
|
ed0ae62ad7 | ||
|
|
ca279b80e6 | ||
|
|
c4ac5ac9d7 | ||
|
|
7f01ef171f | ||
|
|
e63c7e0893 | ||
|
|
25ea5ea27e | ||
|
|
928a70e435 | ||
|
|
f30e8a4bdf | ||
|
|
e6a9381f78 | ||
|
|
344c3f7379 | ||
|
|
1a72c8ed3f | ||
|
|
3528d61820 | ||
|
|
46d4880201 | ||
|
|
4e53ce81cf | ||
|
|
3c1c999226 | ||
|
|
313d50e903 | ||
|
|
b85d4d61a7 | ||
|
|
33eac56e4a | ||
|
|
6774f32adb | ||
|
|
21bcb2e1f6 | ||
|
|
cfd0011f2f | ||
|
|
8b34b7da41 | ||
|
|
085d7d59f0 | ||
|
|
12fd8faa5d | ||
|
|
29796b62bd | ||
|
|
e71a33bbf8 | ||
|
|
f68067e101 | ||
|
|
c080123998 | ||
|
|
9854a17f29 | ||
|
|
21625d729c | ||
|
|
675f7f627b | ||
|
|
9d8df47996 | ||
|
|
32fbbf38b4 | ||
|
|
a127537efb | ||
|
|
d9fb113e05 | ||
|
|
53170942e3 | ||
|
|
aeaad937b9 | ||
|
|
5cd30a2b20 | ||
|
|
fbc4929185 | ||
|
|
efcfdbd4d1 | ||
|
|
292a80466d | ||
|
|
5e80c62f31 | ||
|
|
197af3dc32 | ||
|
|
824dcd4399 | ||
|
|
761728afe8 | ||
|
|
f183a2d7ea | ||
|
|
a2786a97d7 | ||
|
|
f1390a3424 | ||
|
|
e80d901d98 | ||
|
|
6df328e84d | ||
|
|
3f8c5969ff | ||
|
|
064ae479a7 | ||
|
|
36a0ee199d | ||
|
|
15b3bd1689 | ||
|
|
cc6a08b2a0 | ||
|
|
fce8409cbb | ||
|
|
9fe3e2efc3 | ||
|
|
0020d1022f | ||
|
|
ef0cc9db54 | ||
|
|
aa9d22a1c0 | ||
|
|
99902198de | ||
|
|
5186ae9bbe | ||
|
|
308be21c2f | ||
|
|
c2a261f493 | ||
|
|
75d4ed968d | ||
|
|
c18c75b0b7 | ||
|
|
afbf7c7e6b | ||
|
|
d8d07b2a8a | ||
|
|
0cc9419631 | ||
|
|
059376c855 | ||
|
|
5e66843733 | ||
|
|
ff0cc92757 | ||
|
|
bc18ac45a3 | ||
|
|
da46353056 | ||
|
|
13e3b21b16 | ||
|
|
7aaefcbe48 | ||
|
|
f6803de739 | ||
|
|
e382efc85d | ||
|
|
6cfe2114f1 | ||
|
|
fd89396012 | ||
|
|
7c86e10193 | ||
|
|
740a8b0b66 | ||
|
|
ef64cda978 | ||
|
|
3ed1acd13c | ||
|
|
b7aeac0de1 | ||
|
|
79fb4527ca | ||
|
|
29925c6dcd | ||
|
|
e47c60443f | ||
|
|
11b9ef9454 | ||
|
|
2eeaae6cbc | ||
|
|
50040573d7 | ||
|
|
b618ac8c0b | ||
|
|
776bc9cf55 | ||
|
|
641c966e3d | ||
|
|
3f4826a358 | ||
|
|
6ec7484ae8 | ||
|
|
96abc6bf72 | ||
|
|
7b30053b26 | ||
|
|
53bcdedc32 | ||
|
|
29c471aafc | ||
|
|
4a1d7d6641 | ||
|
|
6d4cf6be4e | ||
|
|
5a2c1ad625 | ||
|
|
917a5086b3 | ||
|
|
5d89b027ee | ||
|
|
502c132738 | ||
|
|
f958aabdf3 | ||
|
|
78399d23dc | ||
|
|
f941892829 | ||
|
|
6531952b3c | ||
|
|
c3301d038d | ||
|
|
aa7ddbd0ff | ||
|
|
760c114b24 | ||
|
|
a4b344baa2 | ||
|
|
f0bcee5db0 | ||
|
|
10f42ddb9e | ||
|
|
361b60678e | ||
|
|
440759c2cd | ||
|
|
79870d100f | ||
|
|
102ad2e066 | ||
|
|
243c2dd746 | ||
|
|
48d65aabbc | ||
|
|
e33a9d6894 | ||
|
|
356bf9563e | ||
|
|
bfbc1de02e | ||
|
|
6f2bf34748 | ||
|
|
6b99cafd69 | ||
|
|
af64dd2ae0 | ||
|
|
d44027dbbd | ||
|
|
bd894c4705 | ||
|
|
18e9ca5fb0 | ||
|
|
906fd23e1d | ||
|
|
45b1f169b4 | ||
|
|
d2ffe4ca07 | ||
|
|
c226e44437 | ||
|
|
20e851bb9a | ||
|
|
174c555414 | ||
|
|
3d001b81c2 | ||
|
|
d2b06403c6 | ||
|
|
9449a4d894 | ||
|
|
61d31ae10d | ||
|
|
cc153541a2 | ||
|
|
501ee87180 | ||
|
|
43c6b2f67f | ||
|
|
7ae8f388cf | ||
|
|
515f495f4e | ||
|
|
c2e0570831 | ||
|
|
21f2f7f26b | ||
|
|
4cc4a753fa | ||
|
|
0fccb646e0 | ||
|
|
66d8e55184 | ||
|
|
f942dc5522 | ||
|
|
9131536f00 | ||
|
|
252d1de054 | ||
|
|
00647c39de | ||
|
|
c177191804 | ||
|
|
1c1a0a23d3 | ||
|
|
d15059b128 | ||
|
|
d30806b0c5 | ||
|
|
9ea2315d2d | ||
|
|
d003877c66 | ||
|
|
e4c772bead | ||
|
|
1e2b469635 | ||
|
|
7d8ed0f5f5 | ||
|
|
83cf4ce6e4 | ||
|
|
99dfca1e7f | ||
|
|
bc82b44db9 | ||
|
|
ed490e4643 | ||
|
|
1e6688742e | ||
|
|
ebcc9b5d12 | ||
|
|
ee5417bca8 | ||
|
|
3bacb68c70 | ||
|
|
5620392d67 | ||
|
|
942ee02590 | ||
|
|
383ecc0374 | ||
|
|
b3893baf80 | ||
|
|
3d479b9638 | ||
|
|
cf490a7f81 | ||
|
|
b2d30ca0cb | ||
|
|
fcccf89432 | ||
|
|
5e6908944b | ||
|
|
bd9615bbc5 | ||
|
|
c0a9f554be | ||
|
|
421ce180f5 | ||
|
|
54dac2c843 | ||
|
|
6cf892eeb6 | ||
|
|
6230ae7faf | ||
|
|
a1c2e87c4b | ||
|
|
fbf0f400b7 | ||
|
|
34af2b7194 | ||
|
|
c81aedeaec | ||
|
|
b768c48547 | ||
|
|
97125fb370 | ||
|
|
2c75ef62ea | ||
|
|
b35b4566c2 | ||
|
|
c5e6bf63e6 | ||
|
|
a7c2c7d6b2 | ||
|
|
4aa487e796 | ||
|
|
1f99a7514e | ||
|
|
f22ed0986a | ||
|
|
5f7d4668c4 | ||
|
|
7e73bc32f5 | ||
|
|
2043364516 | ||
|
|
f46c19d965 | ||
|
|
d434019633 | ||
|
|
2755c798f3 | ||
|
|
8608079647 | ||
|
|
8518ddda7b | ||
|
|
d9731b26e7 | ||
|
|
5e73284cee | ||
|
|
cf92c72797 | ||
|
|
5db088d70f | ||
|
|
17c13b406f | ||
|
|
01001d80e2 | ||
|
|
5b8a50572d | ||
|
|
d0b5c77c68 | ||
|
|
dd34fe8679 | ||
|
|
4b3679c6c5 | ||
|
|
eab92fcdc2 | ||
|
|
47bd759fc9 | ||
|
|
e7654b22aa | ||
|
|
3805ccf020 | ||
|
|
296eeb882f | ||
|
|
6356874586 | ||
|
|
93b975a1d9 | ||
|
|
5ee684cba9 | ||
|
|
82f53f45d9 | ||
|
|
f8ec7f1398 | ||
|
|
be85770f14 | ||
|
|
edf24e699e | ||
|
|
00d63aafc6 | ||
|
|
8e0c6fc0be | ||
|
|
68fc4ff1d7 | ||
|
|
49a17a45fb | ||
|
|
5aa997dafb | ||
|
|
cf4ccd5020 | ||
|
|
beffa17bb9 | ||
|
|
0afc2d37c3 | ||
|
|
de24b01b05 | ||
|
|
1c25561e30 | ||
|
|
2a441c488f | ||
|
|
f697308ae5 | ||
|
|
09e4df2c65 | ||
|
|
fee9bbe475 | ||
|
|
a90e4c3ddf | ||
|
|
1b3092e4bb | ||
|
|
bf823b6b77 | ||
|
|
670e900719 | ||
|
|
31d2a00192 | ||
|
|
b4f38a4d60 | ||
|
|
4bbef7a644 | ||
|
|
d9dbb3e154 | ||
|
|
e1b47b68ec | ||
|
|
1f9def3163 | ||
|
|
9cfee527f6 | ||
|
|
3f71282850 | ||
|
|
72c3672857 | ||
|
|
0d1cd6d41c | ||
|
|
1bc71e32ea | ||
|
|
fe45343df9 | ||
|
|
884fdfeb22 | ||
|
|
4a2ef4fd88 | ||
|
|
6c52dd3852 | ||
|
|
5c1763e7b5 | ||
|
|
f65091c947 | ||
|
|
7ace638da2 | ||
|
|
4f22bdf3e5 | ||
|
|
640afdf4f2 | ||
|
|
452217e29a | ||
|
|
11e92390f6 | ||
|
|
b94c14114f | ||
|
|
8d39610037 | ||
|
|
fa1fe5f6f3 | ||
|
|
1b24e2d5a7 | ||
|
|
5072fd3a64 | ||
|
|
8b60787e85 | ||
|
|
d79fd74871 | ||
|
|
a4f4ca7767 | ||
|
|
ccd3e7dcef | ||
|
|
650d46a107 | ||
|
|
d265bdf81a | ||
|
|
aa6866d63c | ||
|
|
b12b13f832 | ||
|
|
06daf74a71 | ||
|
|
70570d4199 | ||
|
|
5c21747783 | ||
|
|
2f5b3c9607 | ||
|
|
e53ec3a862 | ||
|
|
6147ccba63 | ||
|
|
531348e814 | ||
|
|
e4f976b8b9 | ||
|
|
9ab512ad8c | ||
|
|
462d8f5faf | ||
|
|
4e7fd7ad96 | ||
|
|
b59657ad96 | ||
|
|
2ddc8799a8 | ||
|
|
47d463e954 | ||
|
|
325196f548 | ||
|
|
51bfb8fc8c | ||
|
|
6b6760d6bc | ||
|
|
2dfb3a217f | ||
|
|
9742547245 | ||
|
|
8ebda479d9 | ||
|
|
abeca8d17d | ||
|
|
496aa47042 | ||
|
|
f3e507ef9f | ||
|
|
81ef03be65 | ||
|
|
8fa6f7363e | ||
|
|
3866558c98 | ||
|
|
f673b24017 | ||
|
|
af1d1e08e4 | ||
|
|
0930248bb1 | ||
|
|
5368ae5ec3 | ||
|
|
605d428d20 | ||
|
|
8628b382e4 | ||
|
|
bed026e7dd | ||
|
|
a2104dc6e1 | ||
|
|
d9d33b6fc8 | ||
|
|
b63c100677 | ||
|
|
309d5b6650 | ||
|
|
9d5853813f | ||
|
|
5893474c74 | ||
|
|
7162398778 | ||
|
|
893526b8a8 | ||
|
|
240641de0c | ||
|
|
48c638b671 | ||
|
|
876e372567 | ||
|
|
d2c62e6065 | ||
|
|
8811a9e38a | ||
|
|
fea6a8e1f1 | ||
|
|
8be177a694 | ||
|
|
832417f31e | ||
|
|
a4ddd64f36 | ||
|
|
f9345c7c4e | ||
|
|
d2c4d9ff9b | ||
|
|
ede8017d2c | ||
|
|
de0cf18b09 | ||
|
|
2d8b316109 | ||
|
|
7fbf8d3324 | ||
|
|
cafbc459f5 | ||
|
|
0c5b42a991 | ||
|
|
aa397fe472 | ||
|
|
c97540065c | ||
|
|
fc5a7ea5de | ||
|
|
7aece10039 | ||
|
|
f94e4f216f | ||
|
|
a06f929362 | ||
|
|
62e7c033c0 | ||
|
|
c7c0a6ddcd | ||
|
|
4de6fac4da | ||
|
|
602dc1a638 | ||
|
|
bbec2fdb3a | ||
|
|
b0e86b2dbd | ||
|
|
aacea52181 | ||
|
|
1879069eab | ||
|
|
513325fa32 | ||
|
|
d6772f157a | ||
|
|
ea55de3d65 | ||
|
|
04d60ea54c | ||
|
|
c00169fd25 | ||
|
|
d8df84aae1 | ||
|
|
1b62353dd8 | ||
|
|
0931e21eb6 | ||
|
|
99c9bc386f | ||
|
|
1d74e565db | ||
|
|
5a3d985395 | ||
|
|
869b8ad499 | ||
|
|
dbb54b234c | ||
|
|
507167d7e2 | ||
|
|
c9b33ecd7c | ||
|
|
c6c65e7b22 | ||
|
|
6aa62ba43f | ||
|
|
ea8b68e0f7 | ||
|
|
ff13f0ea4d | ||
|
|
38e9f8b6f2 | ||
|
|
5ef553da9a | ||
|
|
78b64d911b | ||
|
|
db79d7dea0 | ||
|
|
327462d901 | ||
|
|
5970400476 | ||
|
|
d5db167c2c | ||
|
|
86996dfe32 | ||
|
|
2d7687865e | ||
|
|
42bd32dad7 | ||
|
|
e713c21bd0 | ||
|
|
ff917003f6 | ||
|
|
ccea3ff8a9 | ||
|
|
0552abce0e | ||
|
|
07373512c7 | ||
|
|
844e5610de | ||
|
|
bdc5394d22 | ||
|
|
c920d201c2 | ||
|
|
6d4e561e39 | ||
|
|
223d7cb3c7 | ||
|
|
7e85b0a025 | ||
|
|
18d1fdebeb | ||
|
|
d46093b8d5 | ||
|
|
fe9fef2cec | ||
|
|
60c28739aa | ||
|
|
cf33bcf0b2 | ||
|
|
a8b9d13f74 | ||
|
|
ed69205684 | ||
|
|
50227f6fd2 | ||
|
|
c3ac270996 | ||
|
|
95fc270b06 | ||
|
|
ea441355d3 | ||
|
|
d1f0a55af4 | ||
|
|
bc5d480e2c | ||
|
|
3c0961d299 | ||
|
|
4f800c5bac | ||
|
|
029b81742a | ||
|
|
ee3d0617f9 | ||
|
|
9595d1935c | ||
|
|
059e901446 | ||
|
|
f116fcc328 | ||
|
|
1f208c3546 | ||
|
|
5ae49cf3ed | ||
|
|
a3e938b8da | ||
|
|
9f07ed00e4 | ||
|
|
3cec66512d | ||
|
|
eff9690351 | ||
|
|
dceae2829e | ||
|
|
203946e1f9 | ||
|
|
74b27674a8 | ||
|
|
a0092c51b1 | ||
|
|
8374ccb66f | ||
|
|
669fefd3da | ||
|
|
16183e6430 | ||
|
|
ce6640001d | ||
|
|
d70771752f | ||
|
|
d885ff470a | ||
|
|
e4e66476a9 | ||
|
|
3c59483ed7 | ||
|
|
f43eac3ed8 | ||
|
|
c171166987 | ||
|
|
62efc4ba3e | ||
|
|
feeed10dfd | ||
|
|
a3b4b11739 | ||
|
|
2cb3594af9 | ||
|
|
8a2368edce | ||
|
|
89a3bafe04 | ||
|
|
272622a2e0 | ||
|
|
2585b74e19 | ||
|
|
4864aaeb02 | ||
|
|
f4e345c1a8 | ||
|
|
eb0c478b17 | ||
|
|
3a3bb953b6 | ||
|
|
eabb7e66bd | ||
|
|
397b807ad5 | ||
|
|
bb53124fca | ||
|
|
0bad236cfb | ||
|
|
46a9241248 | ||
|
|
811f54fa75 | ||
|
|
3bfbe63806 | ||
|
|
747c9129c0 | ||
|
|
afba8f0d30 | ||
|
|
552a65e454 | ||
|
|
3596903068 | ||
|
|
271d504ed7 | ||
|
|
9d0ae967d4 | ||
|
|
f44ba11815 | ||
|
|
9b5dc1358a | ||
|
|
4f027a33b9 | ||
|
|
0f91310bf3 | ||
|
|
d90c655b05 | ||
|
|
99e788fe56 | ||
|
|
7c8f311e40 | ||
|
|
156e583a35 | ||
|
|
fea6e5a695 | ||
|
|
c53df49b8b | ||
|
|
3ad12fab45 | ||
|
|
6a3fdc3a1e | ||
|
|
0b412f8f15 | ||
|
|
5363e3331b | ||
|
|
0d55346156 | ||
|
|
2ccd264695 | ||
|
|
f6507157e2 | ||
|
|
c410994653 | ||
|
|
0a097675f1 | ||
|
|
82258b7af3 | ||
|
|
04ac15fd80 | ||
|
|
83d3ff590d | ||
|
|
a03fc82771 | ||
|
|
c807169888 | ||
|
|
a5bbe206a8 | ||
|
|
8de3dc1701 | ||
|
|
7520478eb0 | ||
|
|
4f5901b265 | ||
|
|
629fd78f79 | ||
|
|
584def75ad | ||
|
|
6ff9b48fe2 | ||
|
|
50f76b9d9b | ||
|
|
82152a2a8e | ||
|
|
5464cd0a60 | ||
|
|
2421b25dd7 | ||
|
|
1b7c24c33c | ||
|
|
4557dfe132 | ||
|
|
a38cb37913 | ||
|
|
4c7d36b688 | ||
|
|
16f35a3a22 | ||
|
|
634b4b3487 | ||
|
|
89f91d1804 | ||
|
|
e2295511f5 | ||
|
|
65e3d5e45e | ||
|
|
8d7e5651fb | ||
|
|
d57ce408b3 | ||
|
|
81bd826de8 | ||
|
|
eae7acac16 | ||
|
|
8aabd636f5 | ||
|
|
9a4e49aef2 | ||
|
|
6dd967e74f | ||
|
|
e7112be732 | ||
|
|
86f10c7144 | ||
|
|
faada2485a | ||
|
|
29484f24fb | ||
|
|
f1ad10b338 | ||
|
|
64414ea0e9 | ||
|
|
691ed5e54b | ||
|
|
5daa99d2a4 | ||
|
|
97c7937c65 | ||
|
|
fb5f359b93 | ||
|
|
308ef2dc32 | ||
|
|
ca75853f9d | ||
|
|
95a441112e | ||
|
|
063f3f7fc4 | ||
|
|
749ed66549 | ||
|
|
c8e148e38c | ||
|
|
b55f1ec9af | ||
|
|
c0c31024a3 | ||
|
|
88e2dbfd10 | ||
|
|
8a48f35574 | ||
|
|
ee11842bfc | ||
|
|
29bff4e12d | ||
|
|
88f7212312 | ||
|
|
01a91eb657 | ||
|
|
b7978af693 | ||
|
|
cc858bfa84 | ||
|
|
3209c3ed0d | ||
|
|
5e75db12d7 | ||
|
|
e8673143ea | ||
|
|
3dd243c59e | ||
|
|
048412473b | ||
|
|
21f99792a9 | ||
|
|
ae80d13f6d | ||
|
|
829da4c345 | ||
|
|
855ebb26d1 | ||
|
|
96c5db5f7a | ||
|
|
dfabf96607 | ||
|
|
92fb742065 | ||
|
|
20aec24ac7 | ||
|
|
41a4e828d9 | ||
|
|
8cad795a80 | ||
|
|
9a78ef980d | ||
|
|
85e0634b54 | ||
|
|
42153d7858 | ||
|
|
483ca39bca | ||
|
|
d3fe7398e3 | ||
|
|
27cc9068ce | ||
|
|
cf4d4342c9 | ||
|
|
a27d3e43fe | ||
|
|
d9dd9013a8 | ||
|
|
6a632de96d | ||
|
|
026939b008 | ||
|
|
92de58f001 | ||
|
|
62db3cc349 | ||
|
|
9311c29558 | ||
|
|
caf8010652 | ||
|
|
8c1cc5fd80 | ||
|
|
ef02f8be10 | ||
|
|
652ae2c376 | ||
|
|
4068e2d1b7 | ||
|
|
1b9f78195f | ||
|
|
e54ec49155 | ||
|
|
f1fbaf39ff | ||
|
|
ade39f53f6 | ||
|
|
113b0a7f2e | ||
|
|
c2b185cff8 | ||
|
|
5cf7326132 | ||
|
|
b2ab693d68 | ||
|
|
eef70ff79a | ||
|
|
288c5396e6 | ||
|
|
9805e76744 | ||
|
|
b530d96216 | ||
|
|
24cf67fc73 | ||
|
|
7da7404fdf | ||
|
|
16f0efca60 | ||
|
|
4cc90ee0b0 | ||
|
|
4428e8f20f | ||
|
|
64f78dd6a8 | ||
|
|
c9db223f90 | ||
|
|
7edd2ecb55 | ||
|
|
5ca107a4f2 | ||
|
|
6d29e1de73 | ||
|
|
92be800146 | ||
|
|
ff81f074fb | ||
|
|
de03fe4a3f | ||
|
|
7b4d10b4a3 | ||
|
|
e640300602 | ||
|
|
6a92d98d1a | ||
|
|
89dc48569a | ||
|
|
602045fd7b | ||
|
|
1d312ae013 | ||
|
|
439758353a | ||
|
|
8d287d0f5e | ||
|
|
bbfd963f49 | ||
|
|
254ce75ac3 | ||
|
|
b6becfae10 | ||
|
|
3943d7f8b1 | ||
|
|
8c180c72d5 | ||
|
|
9a20ae70ec | ||
|
|
1780fd4eee | ||
|
|
885a7cc38d | ||
|
|
2dd3753450 | ||
|
|
7b59a424b5 | ||
|
|
297a35eb69 | ||
|
|
f34cad0f97 | ||
|
|
adccb084df | ||
|
|
2dccca57e4 | ||
|
|
257e3d1d59 | ||
|
|
3fcb7d388d | ||
|
|
0b2b2de6cf | ||
|
|
c0a63d8e5e | ||
|
|
b8769f318f | ||
|
|
d79323bd42 | ||
|
|
f54c725497 | ||
|
|
cb6a400dcd | ||
|
|
ae8d8d1326 | ||
|
|
1dd6759c05 | ||
|
|
d8babcfc57 | ||
|
|
aa710c3e6b | ||
|
|
9b694589e9 | ||
|
|
01f2e7f62f | ||
|
|
392d9701e3 | ||
|
|
eb2a6d62f9 | ||
|
|
2905385744 | ||
|
|
58af54c767 | ||
|
|
c155ae1dfe | ||
|
|
a0d6b506cd | ||
|
|
356f8ea213 | ||
|
|
b766643e5c | ||
|
|
c73e07405c | ||
|
|
bb1bf8b3aa | ||
|
|
af0190bc6e | ||
|
|
a33532f5f4 | ||
|
|
1ff1e89ff4 | ||
|
|
cec316c9eb | ||
|
|
8d239a6880 | ||
|
|
2a62cbd24b | ||
|
|
3a8e2776a6 | ||
|
|
83ca3ff384 | ||
|
|
2cc7dba718 | ||
|
|
79a340bc15 | ||
|
|
f2923613a4 | ||
|
|
d881a9c136 | ||
|
|
9e4bae9cca | ||
|
|
65a18442e5 | ||
|
|
0bf5dbe002 | ||
|
|
5b01c5e9d2 | ||
|
|
46b06bdb26 | ||
|
|
e3358dea66 | ||
|
|
2e76f0a846 | ||
|
|
af1d46b68a | ||
|
|
bb8f7627f7 | ||
|
|
8473ae475f | ||
|
|
194bc5afbd | ||
|
|
8e20c417d4 | ||
|
|
d22079217c | ||
|
|
b50280e95f | ||
|
|
fbb71da2b9 | ||
|
|
1aee657b0f | ||
|
|
34ae99d604 | ||
|
|
ad2519ac6b | ||
|
|
962a9f2f9d | ||
|
|
ead0f46d5f | ||
|
|
53d40646bd | ||
|
|
0031ea7d85 | ||
|
|
f7159552ae | ||
|
|
3a2815370d | ||
|
|
3e1f4bc15b | ||
|
|
b456413d76 | ||
|
|
b497a0cb7c | ||
|
|
6ec4a03b9f | ||
|
|
6d982e53ee | ||
|
|
de947e8a5b | ||
|
|
a4be104887 | ||
|
|
cb7ccc4b14 | ||
|
|
f167d0e7d5 | ||
|
|
fa8059a89c | ||
|
|
9b00fa9ac2 | ||
|
|
bfc02dd30f | ||
|
|
6579245800 | ||
|
|
24a495fd77 | ||
|
|
c340dd7d84 | ||
|
|
4b4632f94c | ||
|
|
d6aff512fe | ||
|
|
464b9f4f6c | ||
|
|
9abf73b8cc | ||
|
|
a7e252026d | ||
|
|
60a7200c0d | ||
|
|
89f88058b9 | ||
|
|
e3b2668865 | ||
|
|
a7a582296b | ||
|
|
a90046f109 | ||
|
|
becb393d42 | ||
|
|
e55b771a1e | ||
|
|
39adc30250 | ||
|
|
c968d3d410 | ||
|
|
b78fb7abaf | ||
|
|
6232438acb | ||
|
|
885afd59ec | ||
|
|
2c1f975852 | ||
|
|
901c1bb402 | ||
|
|
0831ef5038 | ||
|
|
cc6a141dc1 | ||
|
|
464b82b1e6 | ||
|
|
0ae7404835 | ||
|
|
865f88afc0 | ||
|
|
49f82803cc | ||
|
|
60417b646d | ||
|
|
57d9531cd6 | ||
|
|
c0551f0a46 | ||
|
|
a7a89e362b | ||
|
|
0560d81ce9 | ||
|
|
00cdc0a472 | ||
|
|
5cc1292508 | ||
|
|
200736ebd8 | ||
|
|
cc0c8b2248 | ||
|
|
ef264c2971 | ||
|
|
d4f7e4cc01 | ||
|
|
b2a3a8554a | ||
|
|
e7e4181361 | ||
|
|
b56a5261fe | ||
|
|
fde908444a | ||
|
|
e0c9361a7c | ||
|
|
81855f22cd | ||
|
|
3416ef303a | ||
|
|
cc1afed671 | ||
|
|
5f8a3e586f | ||
|
|
4cb09df015 | ||
|
|
9c09259b8b | ||
|
|
78a6e05439 | ||
|
|
99878298da | ||
|
|
c95557f48b | ||
|
|
15c7e8896b | ||
|
|
2a9950dcb3 | ||
|
|
2956a0c8a8 | ||
|
|
2cbfbcd972 | ||
|
|
33ae886bbd | ||
|
|
aed4f2cc2c | ||
|
|
05dab5eaa2 | ||
|
|
1fbb1c8d78 | ||
|
|
a5011d9753 | ||
|
|
8dcfcad7a2 | ||
|
|
cefc983bec | ||
|
|
12ef1fbefc | ||
|
|
a328e469d3 | ||
|
|
fe1d01cb39 | ||
|
|
8627bf1452 | ||
|
|
77b862a849 | ||
|
|
aff8e204d2 | ||
|
|
ed7fbad206 | ||
|
|
4720cd0050 | ||
|
|
c9795c6ca2 | ||
|
|
bce82efe1f | ||
|
|
aeda4c589a | ||
|
|
696fe3f52e | ||
|
|
6c305c0831 | ||
|
|
73eee2402e | ||
|
|
c34d026eb0 | ||
|
|
5b35132b41 | ||
|
|
c180678d92 | ||
|
|
eed1a6de4b | ||
|
|
de90bbd0b7 | ||
|
|
d214138910 | ||
|
|
26626c0052 | ||
|
|
d71a5647a3 | ||
|
|
89433fef0d | ||
|
|
b4d9c0048f | ||
|
|
9a94dae4c2 | ||
|
|
183abbcd6b | ||
|
|
0536268267 | ||
|
|
d7b24fec24 | ||
|
|
aadcf1a9ff | ||
|
|
5c80270b91 | ||
|
|
65c54a685a | ||
|
|
c04c74bc5d | ||
|
|
fe91d00e33 | ||
|
|
046ece3a2d | ||
|
|
e62b2f9c2e | ||
|
|
f79360858d | ||
|
|
5449f5a975 | ||
|
|
bda66ac426 | ||
|
|
011377622f | ||
|
|
1d6f13986c | ||
|
|
4cfb762c3e | ||
|
|
7a10d66590 | ||
|
|
94136651c3 | ||
|
|
fcc54b5d34 | ||
|
|
7f82674a7e | ||
|
|
75e4cfd997 | ||
|
|
b46e359f58 | ||
|
|
14f92636b0 | ||
|
|
7daf301046 | ||
|
|
e8c5e0f0b4 | ||
|
|
eb9033c723 | ||
|
|
4a1976b224 | ||
|
|
492e406fec | ||
|
|
d43ccf61c2 | ||
|
|
464e36391f | ||
|
|
3867bc9780 | ||
|
|
f95fe81fff | ||
|
|
d88d895e5a | ||
|
|
b4dcb99cbc | ||
|
|
45b211f9d4 | ||
|
|
4f3ff14a06 | ||
|
|
98818f159b | ||
|
|
2f411b0a8b | ||
|
|
6ff3d2577e | ||
|
|
9c9e6abbf8 | ||
|
|
902b26a0d6 | ||
|
|
2911551727 | ||
|
|
78e5f414cb | ||
|
|
0faf23c26a | ||
|
|
7398748add | ||
|
|
3e4a5c0642 | ||
|
|
ac09b567a8 | ||
|
|
677666eb70 | ||
|
|
81ae0bd249 | ||
|
|
4ed78e20a4 | ||
|
|
b5e800068b | ||
|
|
a75440bcf0 | ||
|
|
fb65450704 | ||
|
|
0ea45b1ad8 | ||
|
|
a20cf73053 | ||
|
|
afb49fef90 | ||
|
|
dd60eaa6d9 | ||
|
|
50c85daf02 | ||
|
|
ac208c95cd | ||
|
|
4165a10972 | ||
|
|
fe2e6100ec | ||
|
|
a8d34992ea | ||
|
|
3613eba085 | ||
|
|
327e2c9220 | ||
|
|
a7139168d2 | ||
|
|
80a0ce37df | ||
|
|
a2a747704d | ||
|
|
b3fd1556f9 | ||
|
|
08a0946fcc | ||
|
|
82d0fd26d4 | ||
|
|
ae9c633a21 | ||
|
|
e722e3480f | ||
|
|
8532b6e0a5 | ||
|
|
08020927e8 | ||
|
|
10172f7485 | ||
|
|
9daf0812a1 | ||
|
|
0da68e2e6e | ||
|
|
9021df2d2a | ||
|
|
47695f0689 | ||
|
|
d5d00cf8c9 | ||
|
|
2af374716f | ||
|
|
b8e05366e1 | ||
|
|
6464787bfd | ||
|
|
d037c84c33 | ||
|
|
f65a4b8a8d | ||
|
|
4f61fd18b2 | ||
|
|
994ea9556f | ||
|
|
0850289d8c | ||
|
|
f82bc9110b | ||
|
|
20802a7b69 | ||
|
|
e2b4d9b317 | ||
|
|
188a4db49c | ||
|
|
c3da1501b8 | ||
|
|
25b2e50229 | ||
|
|
a93f4a7310 | ||
|
|
7e9c3684ef | ||
|
|
01e238e5d5 | ||
|
|
301acdf34a | ||
|
|
5a652f5957 | ||
|
|
6d104cb932 | ||
|
|
18d52f96bb | ||
|
|
9827dc8bea | ||
|
|
c22f8a7787 | ||
|
|
1ebe921228 | ||
|
|
2d2d617dbc | ||
|
|
2581ba7f1e | ||
|
|
35ee4affc5 | ||
|
|
851d15ef3a | ||
|
|
80c88304fc | ||
|
|
70dd0126bd | ||
|
|
1f07439fe8 | ||
|
|
f2eb6434ab | ||
|
|
a1a8a2c024 | ||
|
|
fd2756006a | ||
|
|
e8abd098b3 | ||
|
|
48f5deab94 | ||
|
|
99efde461d | ||
|
|
efef291dc7 | ||
|
|
a3c86828ed | ||
|
|
0a0fb5e0b3 | ||
|
|
72b68455eb | ||
|
|
b1f176039a | ||
|
|
fd12b37dba | ||
|
|
a05db7f505 | ||
|
|
7d907ef69c | ||
|
|
473a38622e | ||
|
|
c67f545520 | ||
|
|
e324c52237 | ||
|
|
908388b118 | ||
|
|
ae481e1560 | ||
|
|
ddaf3060fa | ||
|
|
cdd433b29b | ||
|
|
1961611247 | ||
|
|
7a968481a0 | ||
|
|
07d4c63ddc | ||
|
|
ad0f655376 | ||
|
|
6f0388ec71 | ||
|
|
179c1013d2 | ||
|
|
6d1f98da2b | ||
|
|
ac9d1ecec2 | ||
|
|
5411b96c5f | ||
|
|
13a2d6698f | ||
|
|
ddf936193a | ||
|
|
a7d8885768 | ||
|
|
b0c4cfed60 | ||
|
|
97d11ecd6c | ||
|
|
911ec211a5 | ||
|
|
4c850f346b | ||
|
|
576b3433da | ||
|
|
4b2d8b46c8 | ||
|
|
b7d4314fe1 | ||
|
|
199512968b | ||
|
|
5fd11335f6 | ||
|
|
f799745f50 | ||
|
|
1c0230b396 | ||
|
|
9ebde216cc | ||
|
|
2560e65a9a | ||
|
|
5569c2dfae | ||
|
|
98e1b13802 | ||
|
|
b9c4b7fc89 | ||
|
|
4af665a843 | ||
|
|
84a20832f1 | ||
|
|
0e7e80ae10 | ||
|
|
bb390133b5 | ||
|
|
0abf3937ce |
56
Makefile
56
Makefile
@@ -7,7 +7,9 @@ SUBDIRS = src progs
|
|||||||
|
|
||||||
default: $(TOP)/configs/current
|
default: $(TOP)/configs/current
|
||||||
@for dir in $(SUBDIRS) ; do \
|
@for dir in $(SUBDIRS) ; do \
|
||||||
(cd $$dir ; $(MAKE)) || exit 1 ; \
|
if [ -d $$dir ] ; then \
|
||||||
|
(cd $$dir && $(MAKE)) || exit 1 ; \
|
||||||
|
fi \
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
||||||
@@ -16,7 +18,9 @@ doxygen:
|
|||||||
|
|
||||||
clean:
|
clean:
|
||||||
@for dir in $(SUBDIRS) ; do \
|
@for dir in $(SUBDIRS) ; do \
|
||||||
(cd $$dir ; $(MAKE) clean) ; \
|
if [ -d $$dir ] ; then \
|
||||||
|
(cd $$dir && $(MAKE) clean) ; \
|
||||||
|
fi \
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
||||||
@@ -34,9 +38,12 @@ realclean:
|
|||||||
|
|
||||||
install:
|
install:
|
||||||
@for dir in $(SUBDIRS) ; do \
|
@for dir in $(SUBDIRS) ; do \
|
||||||
(cd $$dir ; $(MAKE) install) || exit 1 ; \
|
if [ -d $$dir ] ; then \
|
||||||
|
(cd $$dir && $(MAKE) install) || exit 1 ; \
|
||||||
|
fi \
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
||||||
# DirectFBGL module installation
|
# DirectFBGL module installation
|
||||||
linux-directfb-install:
|
linux-directfb-install:
|
||||||
cd src/mesa/drivers/directfb && $(MAKE) install
|
cd src/mesa/drivers/directfb && $(MAKE) install
|
||||||
@@ -92,6 +99,7 @@ linux-alpha-static \
|
|||||||
linux-debug \
|
linux-debug \
|
||||||
linux-directfb \
|
linux-directfb \
|
||||||
linux-dri \
|
linux-dri \
|
||||||
|
linux-dri-debug \
|
||||||
linux-dri-x86 \
|
linux-dri-x86 \
|
||||||
linux-dri-x86-64 \
|
linux-dri-x86-64 \
|
||||||
linux-dri-ppc \
|
linux-dri-ppc \
|
||||||
@@ -154,10 +162,10 @@ ultrix-gcc:
|
|||||||
|
|
||||||
# Rules for making release tarballs
|
# Rules for making release tarballs
|
||||||
|
|
||||||
DIRECTORY = Mesa-6.5.2
|
DIRECTORY = Mesa-7.0.1-rc2
|
||||||
LIB_NAME = MesaLib-6.5.2
|
LIB_NAME = MesaLib-7.0.1-rc2
|
||||||
DEMO_NAME = MesaDemos-6.5.2
|
DEMO_NAME = MesaDemos-7.0.1-rc2
|
||||||
GLUT_NAME = MesaGLUT-6.5.2
|
GLUT_NAME = MesaGLUT-7.0.1-rc2
|
||||||
|
|
||||||
MAIN_FILES = \
|
MAIN_FILES = \
|
||||||
$(DIRECTORY)/Makefile* \
|
$(DIRECTORY)/Makefile* \
|
||||||
@@ -208,9 +216,6 @@ MAIN_FILES = \
|
|||||||
$(DIRECTORY)/src/mesa/glapi/*.[chS] \
|
$(DIRECTORY)/src/mesa/glapi/*.[chS] \
|
||||||
$(DIRECTORY)/src/mesa/glapi/descrip.mms \
|
$(DIRECTORY)/src/mesa/glapi/descrip.mms \
|
||||||
$(DIRECTORY)/src/mesa/glapi/sources \
|
$(DIRECTORY)/src/mesa/glapi/sources \
|
||||||
$(DIRECTORY)/src/mesa/array_cache/*.[ch] \
|
|
||||||
$(DIRECTORY)/src/mesa/array_cache/descrip.mms \
|
|
||||||
$(DIRECTORY)/src/mesa/array_cache/sources \
|
|
||||||
$(DIRECTORY)/src/mesa/math/*.[ch] \
|
$(DIRECTORY)/src/mesa/math/*.[ch] \
|
||||||
$(DIRECTORY)/src/mesa/math/descrip.mms \
|
$(DIRECTORY)/src/mesa/math/descrip.mms \
|
||||||
$(DIRECTORY)/src/mesa/math/sources \
|
$(DIRECTORY)/src/mesa/math/sources \
|
||||||
@@ -224,12 +229,17 @@ MAIN_FILES = \
|
|||||||
$(DIRECTORY)/src/mesa/shader/slang/descrip.mms \
|
$(DIRECTORY)/src/mesa/shader/slang/descrip.mms \
|
||||||
$(DIRECTORY)/src/mesa/shader/slang/sources \
|
$(DIRECTORY)/src/mesa/shader/slang/sources \
|
||||||
$(DIRECTORY)/src/mesa/shader/slang/library/*.[ch] \
|
$(DIRECTORY)/src/mesa/shader/slang/library/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/mesa/shader/slang/library/*.gc \
|
||||||
|
$(DIRECTORY)/src/mesa/shader/slang/library/*.syn \
|
||||||
|
$(DIRECTORY)/src/mesa/shader/slang/library/Makefile \
|
||||||
$(DIRECTORY)/src/mesa/swrast/*.[ch] \
|
$(DIRECTORY)/src/mesa/swrast/*.[ch] \
|
||||||
$(DIRECTORY)/src/mesa/swrast/descrip.mms \
|
$(DIRECTORY)/src/mesa/swrast/descrip.mms \
|
||||||
$(DIRECTORY)/src/mesa/swrast/sources \
|
$(DIRECTORY)/src/mesa/swrast/sources \
|
||||||
$(DIRECTORY)/src/mesa/swrast_setup/*.[ch] \
|
$(DIRECTORY)/src/mesa/swrast_setup/*.[ch] \
|
||||||
$(DIRECTORY)/src/mesa/swrast_setup/descrip.mms \
|
$(DIRECTORY)/src/mesa/swrast_setup/descrip.mms \
|
||||||
$(DIRECTORY)/src/mesa/swrast_setup/sources \
|
$(DIRECTORY)/src/mesa/swrast_setup/sources \
|
||||||
|
$(DIRECTORY)/src/mesa/vbo/*.[chS] \
|
||||||
|
$(DIRECTORY)/src/mesa/vbo/descrip.mms \
|
||||||
$(DIRECTORY)/src/mesa/tnl/*.[chS] \
|
$(DIRECTORY)/src/mesa/tnl/*.[chS] \
|
||||||
$(DIRECTORY)/src/mesa/tnl/descrip.mms \
|
$(DIRECTORY)/src/mesa/tnl/descrip.mms \
|
||||||
$(DIRECTORY)/src/mesa/tnl/sources \
|
$(DIRECTORY)/src/mesa/tnl/sources \
|
||||||
@@ -278,17 +288,15 @@ MAIN_FILES = \
|
|||||||
$(DIRECTORY)/vms/analyze_map.com \
|
$(DIRECTORY)/vms/analyze_map.com \
|
||||||
$(DIRECTORY)/vms/xlib.opt \
|
$(DIRECTORY)/vms/xlib.opt \
|
||||||
$(DIRECTORY)/vms/xlib_share.opt \
|
$(DIRECTORY)/vms/xlib_share.opt \
|
||||||
$(DIRECTORY)/windows/VC6/mesa/gdi/gdi.dsp \
|
$(DIRECTORY)/windows/VC8/mesa/mesa.sln \
|
||||||
$(DIRECTORY)/windows/VC6/mesa/glu/*.txt \
|
$(DIRECTORY)/windows/VC8/mesa/gdi/gdi.vcproj \
|
||||||
$(DIRECTORY)/windows/VC6/mesa/glu/glu.dsp \
|
$(DIRECTORY)/windows/VC8/mesa/glu/glu.vcproj \
|
||||||
$(DIRECTORY)/windows/VC6/mesa/mesa.dsw \
|
$(DIRECTORY)/windows/VC8/mesa/mesa/mesa.vcproj \
|
||||||
$(DIRECTORY)/windows/VC6/mesa/mesa/mesa.dsp \
|
$(DIRECTORY)/windows/VC8/mesa/osmesa/osmesa.vcproj \
|
||||||
$(DIRECTORY)/windows/VC6/mesa/osmesa/osmesa.dsp \
|
$(DIRECTORY)/windows/VC8/progs/progs.sln \
|
||||||
$(DIRECTORY)/windows/VC7/mesa/gdi/gdi.vcproj \
|
$(DIRECTORY)/windows/VC8/progs/demos/gears.vcproj \
|
||||||
$(DIRECTORY)/windows/VC7/mesa/glu/glu.vcproj \
|
$(DIRECTORY)/windows/VC8/progs/glut/glut.vcproj
|
||||||
$(DIRECTORY)/windows/VC7/mesa/mesa.sln \
|
|
||||||
$(DIRECTORY)/windows/VC7/mesa/mesa/mesa.vcproj \
|
|
||||||
$(DIRECTORY)/windows/VC7/mesa/osmesa/osmesa.vcproj
|
|
||||||
|
|
||||||
DRI_FILES = \
|
DRI_FILES = \
|
||||||
$(DIRECTORY)/include/GL/internal/dri_interface.h \
|
$(DIRECTORY)/include/GL/internal/dri_interface.h \
|
||||||
@@ -309,6 +317,7 @@ SGI_GLU_FILES = \
|
|||||||
$(DIRECTORY)/src/glu/Makefile \
|
$(DIRECTORY)/src/glu/Makefile \
|
||||||
$(DIRECTORY)/src/glu/descrip.mms \
|
$(DIRECTORY)/src/glu/descrip.mms \
|
||||||
$(DIRECTORY)/src/glu/sgi/Makefile \
|
$(DIRECTORY)/src/glu/sgi/Makefile \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/Makefile.mgw \
|
||||||
$(DIRECTORY)/src/glu/sgi/Makefile.win \
|
$(DIRECTORY)/src/glu/sgi/Makefile.win \
|
||||||
$(DIRECTORY)/src/glu/sgi/Makefile.DJ \
|
$(DIRECTORY)/src/glu/sgi/Makefile.DJ \
|
||||||
$(DIRECTORY)/src/glu/sgi/glu.def \
|
$(DIRECTORY)/src/glu/sgi/glu.def \
|
||||||
@@ -353,6 +362,8 @@ DEMO_FILES = \
|
|||||||
$(DIRECTORY)/progs/demos/*.cxx \
|
$(DIRECTORY)/progs/demos/*.cxx \
|
||||||
$(DIRECTORY)/progs/demos/*.dat \
|
$(DIRECTORY)/progs/demos/*.dat \
|
||||||
$(DIRECTORY)/progs/demos/README \
|
$(DIRECTORY)/progs/demos/README \
|
||||||
|
$(DIRECTORY)/progs/fbdev/Makefile \
|
||||||
|
$(DIRECTORY)/progs/fbdev/glfbdevtest.c \
|
||||||
$(DIRECTORY)/progs/osdemos/Makefile \
|
$(DIRECTORY)/progs/osdemos/Makefile \
|
||||||
$(DIRECTORY)/progs/osdemos/*.c \
|
$(DIRECTORY)/progs/osdemos/*.c \
|
||||||
$(DIRECTORY)/progs/xdemos/Makefile* \
|
$(DIRECTORY)/progs/xdemos/Makefile* \
|
||||||
@@ -364,6 +375,9 @@ DEMO_FILES = \
|
|||||||
$(DIRECTORY)/progs/samples/Makefile* \
|
$(DIRECTORY)/progs/samples/Makefile* \
|
||||||
$(DIRECTORY)/progs/samples/README \
|
$(DIRECTORY)/progs/samples/README \
|
||||||
$(DIRECTORY)/progs/samples/*.c \
|
$(DIRECTORY)/progs/samples/*.c \
|
||||||
|
$(DIRECTORY)/progs/glsl/Makefile* \
|
||||||
|
$(DIRECTORY)/progs/glsl/*.c \
|
||||||
|
$(DIRECTORY)/progs/glsl/*.txt \
|
||||||
$(DIRECTORY)/progs/windml/Makefile.ugl \
|
$(DIRECTORY)/progs/windml/Makefile.ugl \
|
||||||
$(DIRECTORY)/progs/windml/*.c \
|
$(DIRECTORY)/progs/windml/*.c \
|
||||||
$(DIRECTORY)/progs/windml/*.bmp \
|
$(DIRECTORY)/progs/windml/*.bmp \
|
||||||
|
|||||||
28
Makefile.mgw
28
Makefile.mgw
@@ -51,37 +51,59 @@
|
|||||||
# realclean: remove all generated files
|
# realclean: remove all generated files
|
||||||
#
|
#
|
||||||
|
|
||||||
|
# MinGW core makefile updated for Mesa 7.0
|
||||||
|
#
|
||||||
|
# Updated : by Heromyth, on 2007-7-21
|
||||||
|
# Email : zxpmyth@yahoo.com.cn
|
||||||
|
# Bugs : 1) All the default settings work fine. But the setting X86=1 can't work.
|
||||||
|
# The others havn't been tested yet.
|
||||||
|
# 2) The generated DLLs are *not* compatible with the ones built
|
||||||
|
# with the other compilers like VC8, especially for GLUT.
|
||||||
|
# 3) MAlthough more tests are needed, it can be used individually!
|
||||||
|
|
||||||
|
|
||||||
.PHONY : all libgl clean realclean
|
.PHONY : all libgl clean realclean
|
||||||
|
|
||||||
ifeq ($(ICD),1)
|
ifeq ($(ICD),1)
|
||||||
# when -std=c99 mingw will not define WIN32
|
# when -std=c99 mingw will not define WIN32
|
||||||
CFLAGS = -Wall -W -Werror
|
CFLAGS = -Wall -Werror
|
||||||
else
|
else
|
||||||
# I love c89
|
# I love c89
|
||||||
CFLAGS = -Wall -W -pedantic
|
CFLAGS = -Wall -pedantic
|
||||||
endif
|
endif
|
||||||
CFLAGS += -O2 -ffast-math
|
CFLAGS += -O2 -ffast-math
|
||||||
|
|
||||||
export CFLAGS
|
export CFLAGS
|
||||||
|
|
||||||
|
|
||||||
ifeq ($(wildcard $(addsuffix /rm.exe,$(subst ;, ,$(PATH)))),)
|
ifeq ($(wildcard $(addsuffix /rm.exe,$(subst ;, ,$(PATH)))),)
|
||||||
UNLINK = del $(subst /,\,$(1))
|
UNLINK = del $(subst /,\,$(1))
|
||||||
else
|
else
|
||||||
UNLINK = $(RM) $(1)
|
UNLINK = $(RM) $(1)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
all: libgl
|
all: libgl libglu libglut example
|
||||||
|
|
||||||
libgl: lib
|
libgl: lib
|
||||||
$(MAKE) -f Makefile.mgw -C src/mesa
|
$(MAKE) -f Makefile.mgw -C src/mesa
|
||||||
|
|
||||||
|
libglu: libgl
|
||||||
|
$(MAKE) -f Makefile.mgw -C src/glu/sgi
|
||||||
|
|
||||||
|
libglut: libglu
|
||||||
|
$(MAKE) -f Makefile.mgw -C src/glut/glx
|
||||||
|
|
||||||
|
example: libglut
|
||||||
|
$(MAKE) -f Makefile.mgw star -C progs/samples
|
||||||
|
copy progs\samples\star.exe lib
|
||||||
|
|
||||||
lib:
|
lib:
|
||||||
mkdir lib
|
mkdir lib
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
$(MAKE) -f Makefile.mgw clean -C src/mesa
|
$(MAKE) -f Makefile.mgw clean -C src/mesa
|
||||||
|
$(MAKE) -f Makefile.mgw clean -C src/glu/sgi
|
||||||
|
$(MAKE) -f Makefile.mgw clean -C src/glut/glx
|
||||||
|
|
||||||
realclean: clean
|
realclean: clean
|
||||||
-$(call UNLINK,lib/*.a)
|
-$(call UNLINK,lib/*.a)
|
||||||
|
|||||||
453
Makefile.orig
453
Makefile.orig
@@ -1,453 +0,0 @@
|
|||||||
# Top-level Mesa makefile
|
|
||||||
|
|
||||||
TOP = .
|
|
||||||
|
|
||||||
SUBDIRS = src progs
|
|
||||||
|
|
||||||
|
|
||||||
default: $(TOP)/configs/current
|
|
||||||
@for dir in $(SUBDIRS) ; do \
|
|
||||||
(cd $$dir ; $(MAKE)) || exit 1 ; \
|
|
||||||
done
|
|
||||||
|
|
||||||
|
|
||||||
doxygen:
|
|
||||||
(cd doxygen ; make) ; \
|
|
||||||
|
|
||||||
clean:
|
|
||||||
@for dir in $(SUBDIRS) ; do \
|
|
||||||
(cd $$dir ; $(MAKE) clean) ; \
|
|
||||||
done
|
|
||||||
|
|
||||||
|
|
||||||
realclean:
|
|
||||||
touch $(TOP)/configs/current
|
|
||||||
$(MAKE) clean
|
|
||||||
-rm -rf lib*
|
|
||||||
-rm -f $(TOP)/configs/current
|
|
||||||
-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 $(DESTDIR)
|
|
||||||
|
|
||||||
# DirectFBGL module installation
|
|
||||||
linux-directfb-install:
|
|
||||||
cd src/mesa/drivers/directfb && $(MAKE) install
|
|
||||||
|
|
||||||
# If there's no current configuration file
|
|
||||||
$(TOP)/configs/current:
|
|
||||||
@echo
|
|
||||||
@echo
|
|
||||||
@echo "Please choose a configuration from the following list:"
|
|
||||||
@ls -1 $(TOP)/configs | grep -v "current\|default\|CVS"
|
|
||||||
@echo
|
|
||||||
@echo "Then type 'make <config>' (ex: 'make linux-x86')"
|
|
||||||
@echo "(ignore the following error message)"
|
|
||||||
@exit 1
|
|
||||||
|
|
||||||
|
|
||||||
# Rules to set/install a specific build configuration
|
|
||||||
aix \
|
|
||||||
aix-64 \
|
|
||||||
aix-gcc \
|
|
||||||
aix-static \
|
|
||||||
beos \
|
|
||||||
darwin \
|
|
||||||
darwin-static \
|
|
||||||
freebsd \
|
|
||||||
freebsd-dri \
|
|
||||||
freebsd-dri-amd64 \
|
|
||||||
freebsd-dri-x86 \
|
|
||||||
hpux10 \
|
|
||||||
hpux10-gcc \
|
|
||||||
hpux10-static \
|
|
||||||
hpux11-32 \
|
|
||||||
hpux11-32-static \
|
|
||||||
hpux11-32-static-nothreads \
|
|
||||||
hpux11-64 \
|
|
||||||
hpux11-64-static \
|
|
||||||
hpux9 \
|
|
||||||
hpux9-gcc \
|
|
||||||
irix6-64 \
|
|
||||||
irix6-64-static \
|
|
||||||
irix6-n32 \
|
|
||||||
irix6-n32-static \
|
|
||||||
irix6-o32 \
|
|
||||||
irix6-o32-static \
|
|
||||||
linux \
|
|
||||||
linux-alpha \
|
|
||||||
linux-alpha-static \
|
|
||||||
linux-debug \
|
|
||||||
linux-directfb \
|
|
||||||
linux-dri \
|
|
||||||
linux-dri-x86 \
|
|
||||||
linux-dri-x86-64 \
|
|
||||||
linux-dri-ppc \
|
|
||||||
linux-dri-xcb \
|
|
||||||
linux-indirect \
|
|
||||||
linux-fbdev \
|
|
||||||
linux-glide \
|
|
||||||
linux-icc \
|
|
||||||
linux-icc-static \
|
|
||||||
linux-osmesa16 \
|
|
||||||
linux-osmesa16-static \
|
|
||||||
linux-osmesa32 \
|
|
||||||
linux-ppc \
|
|
||||||
linux-ppc-static \
|
|
||||||
linux-solo \
|
|
||||||
linux-solo-x86 \
|
|
||||||
linux-solo-ia64 \
|
|
||||||
linux-sparc \
|
|
||||||
linux-sparc5 \
|
|
||||||
linux-static \
|
|
||||||
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-glide \
|
|
||||||
linux-x86-static \
|
|
||||||
netbsd \
|
|
||||||
openbsd \
|
|
||||||
osf1 \
|
|
||||||
solaris-x86 \
|
|
||||||
solaris-x86-gcc \
|
|
||||||
sunos4 \
|
|
||||||
sunos4-gcc \
|
|
||||||
sunos4-static \
|
|
||||||
sunos5 \
|
|
||||||
sunos5-gcc \
|
|
||||||
sunos5-64-gcc \
|
|
||||||
sunos5-smp \
|
|
||||||
ultrix-gcc:
|
|
||||||
(cd configs && rm -f current && ln -s $@ current)
|
|
||||||
$(MAKE) default
|
|
||||||
|
|
||||||
|
|
||||||
# Rules for making release tarballs
|
|
||||||
|
|
||||||
DIRECTORY = Mesa-6.5.1
|
|
||||||
LIB_NAME = MesaLib-6.5.1
|
|
||||||
DEMO_NAME = MesaDemos-6.5.1
|
|
||||||
GLUT_NAME = MesaGLUT-6.5.1
|
|
||||||
|
|
||||||
MAIN_FILES = \
|
|
||||||
$(DIRECTORY)/Makefile* \
|
|
||||||
$(DIRECTORY)/descrip.mms \
|
|
||||||
$(DIRECTORY)/mms-config. \
|
|
||||||
$(DIRECTORY)/bin/mklib \
|
|
||||||
$(DIRECTORY)/bin/installmesa \
|
|
||||||
$(DIRECTORY)/configs/[a-z]* \
|
|
||||||
$(DIRECTORY)/docs/*.html \
|
|
||||||
$(DIRECTORY)/docs/COPYING \
|
|
||||||
$(DIRECTORY)/docs/README.* \
|
|
||||||
$(DIRECTORY)/docs/RELNOTES* \
|
|
||||||
$(DIRECTORY)/docs/VERSIONS \
|
|
||||||
$(DIRECTORY)/docs/*.spec \
|
|
||||||
$(DIRECTORY)/include/GL/internal/glcore.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 \
|
|
||||||
$(DIRECTORY)/include/GL/glext.h \
|
|
||||||
$(DIRECTORY)/include/GL/gl_mangle.h \
|
|
||||||
$(DIRECTORY)/include/GL/glu.h \
|
|
||||||
$(DIRECTORY)/include/GL/glu_mangle.h \
|
|
||||||
$(DIRECTORY)/include/GL/glx.h \
|
|
||||||
$(DIRECTORY)/include/GL/glxext.h \
|
|
||||||
$(DIRECTORY)/include/GL/glx_mangle.h \
|
|
||||||
$(DIRECTORY)/include/GL/glfbdev.h \
|
|
||||||
$(DIRECTORY)/include/GL/mesa_wgl.h \
|
|
||||||
$(DIRECTORY)/include/GL/mglmesa.h \
|
|
||||||
$(DIRECTORY)/include/GL/osmesa.h \
|
|
||||||
$(DIRECTORY)/include/GL/svgamesa.h \
|
|
||||||
$(DIRECTORY)/include/GL/ugl*.h \
|
|
||||||
$(DIRECTORY)/include/GL/vms_x_fix.h \
|
|
||||||
$(DIRECTORY)/include/GL/wmesa.h \
|
|
||||||
$(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* \
|
|
||||||
$(DIRECTORY)/src/mesa/sources \
|
|
||||||
$(DIRECTORY)/src/mesa/descrip.mms \
|
|
||||||
$(DIRECTORY)/src/mesa/depend \
|
|
||||||
$(DIRECTORY)/src/mesa/main/*.[chS] \
|
|
||||||
$(DIRECTORY)/src/mesa/main/descrip.mms \
|
|
||||||
$(DIRECTORY)/src/mesa/glapi/*.[chS] \
|
|
||||||
$(DIRECTORY)/src/mesa/glapi/descrip.mms \
|
|
||||||
$(DIRECTORY)/src/mesa/array_cache/*.[ch] \
|
|
||||||
$(DIRECTORY)/src/mesa/array_cache/descrip.mms \
|
|
||||||
$(DIRECTORY)/src/mesa/math/*.[ch] \
|
|
||||||
$(DIRECTORY)/src/mesa/math/descrip.mms \
|
|
||||||
$(DIRECTORY)/src/mesa/shader/*.[ch] \
|
|
||||||
$(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/descrip.mms \
|
|
||||||
$(DIRECTORY)/src/mesa/swrast_setup/*.[ch] \
|
|
||||||
$(DIRECTORY)/src/mesa/swrast_setup/descrip.mms \
|
|
||||||
$(DIRECTORY)/src/mesa/tnl/*.[chS] \
|
|
||||||
$(DIRECTORY)/src/mesa/tnl/descrip.mms \
|
|
||||||
$(DIRECTORY)/src/mesa/tnl_dd/*.[ch] \
|
|
||||||
$(DIRECTORY)/src/mesa/tnl_dd/imm/*.[ch] \
|
|
||||||
$(DIRECTORY)/src/mesa/tnl_dd/imm/NOTES.imm \
|
|
||||||
$(DIRECTORY)/src/mesa/drivers/beos/*.cpp \
|
|
||||||
$(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/dos/*.[chS] \
|
|
||||||
$(DIRECTORY)/src/mesa/drivers/fbdev/glfbdev.c \
|
|
||||||
$(DIRECTORY)/src/mesa/drivers/glide/*.[ch] \
|
|
||||||
$(DIRECTORY)/src/mesa/drivers/ggi/*.[ch] \
|
|
||||||
$(DIRECTORY)/src/mesa/drivers/ggi/ggimesa.conf.in \
|
|
||||||
$(DIRECTORY)/src/mesa/drivers/ggi/default/*.c \
|
|
||||||
$(DIRECTORY)/src/mesa/drivers/ggi/default/genkgi.conf.in \
|
|
||||||
$(DIRECTORY)/src/mesa/drivers/ggi/display/*.c \
|
|
||||||
$(DIRECTORY)/src/mesa/drivers/ggi/display/fbdev.conf.in \
|
|
||||||
$(DIRECTORY)/src/mesa/drivers/ggi/include/ggi/mesa/*.h \
|
|
||||||
$(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/*.[ch] \
|
|
||||||
$(DIRECTORY)/src/mesa/drivers/svga/*.[ch] \
|
|
||||||
$(DIRECTORY)/src/mesa/drivers/windows/*/*.[ch] \
|
|
||||||
$(DIRECTORY)/src/mesa/drivers/windows/*/*.def \
|
|
||||||
$(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/*/*.[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/glu.def \
|
|
||||||
$(DIRECTORY)/src/glu/sgi/dummy.cc \
|
|
||||||
$(DIRECTORY)/src/glu/sgi/descrip.mms \
|
|
||||||
$(DIRECTORY)/src/glu/sgi/mesaglu.opt \
|
|
||||||
$(DIRECTORY)/src/glu/sgi/include/gluos.h \
|
|
||||||
$(DIRECTORY)/src/glu/sgi/libnurbs/interface/*.h \
|
|
||||||
$(DIRECTORY)/src/glu/sgi/libnurbs/interface/*.cc \
|
|
||||||
$(DIRECTORY)/src/glu/sgi/libnurbs/internals/*.h \
|
|
||||||
$(DIRECTORY)/src/glu/sgi/libnurbs/internals/*.cc \
|
|
||||||
$(DIRECTORY)/src/glu/sgi/libnurbs/nurbtess/*.h \
|
|
||||||
$(DIRECTORY)/src/glu/sgi/libnurbs/nurbtess/*.cc \
|
|
||||||
$(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]
|
|
||||||
|
|
||||||
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]
|
|
||||||
|
|
||||||
GLW_FILES = \
|
|
||||||
$(DIRECTORY)/src/glw/*.[ch] \
|
|
||||||
$(DIRECTORY)/src/glw/Makefile* \
|
|
||||||
$(DIRECTORY)/src/glw/README \
|
|
||||||
$(DIRECTORY)/src/glw/depend
|
|
||||||
|
|
||||||
DEMO_FILES = \
|
|
||||||
$(DIRECTORY)/progs/beos/*.cpp \
|
|
||||||
$(DIRECTORY)/progs/beos/Makefile \
|
|
||||||
$(DIRECTORY)/progs/images/*.rgb \
|
|
||||||
$(DIRECTORY)/progs/images/*.rgba \
|
|
||||||
$(DIRECTORY)/progs/demos/Makefile* \
|
|
||||||
$(DIRECTORY)/progs/demos/descrip.mms \
|
|
||||||
$(DIRECTORY)/progs/demos/*.[ch] \
|
|
||||||
$(DIRECTORY)/progs/demos/*.cxx \
|
|
||||||
$(DIRECTORY)/progs/demos/*.dat \
|
|
||||||
$(DIRECTORY)/progs/demos/README \
|
|
||||||
$(DIRECTORY)/progs/osdemos/Makefile \
|
|
||||||
$(DIRECTORY)/progs/osdemos/*.c \
|
|
||||||
$(DIRECTORY)/progs/xdemos/Makefile* \
|
|
||||||
$(DIRECTORY)/progs/xdemos/descrip.mms \
|
|
||||||
$(DIRECTORY)/progs/xdemos/*.[chf] \
|
|
||||||
$(DIRECTORY)/progs/redbook/Makefile* \
|
|
||||||
$(DIRECTORY)/progs/redbook/README \
|
|
||||||
$(DIRECTORY)/progs/redbook/*.[ch] \
|
|
||||||
$(DIRECTORY)/progs/samples/Makefile* \
|
|
||||||
$(DIRECTORY)/progs/samples/README \
|
|
||||||
$(DIRECTORY)/progs/samples/*.c \
|
|
||||||
$(DIRECTORY)/progs/windml/Makefile.ugl \
|
|
||||||
$(DIRECTORY)/progs/windml/*.c \
|
|
||||||
$(DIRECTORY)/progs/windml/*.bmp \
|
|
||||||
$(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
|
|
||||||
|
|
||||||
|
|
||||||
LIB_FILES = $(MAIN_FILES) $(DRI_FILES) $(SGI_GLU_FILES) $(GLW_FILES)
|
|
||||||
|
|
||||||
|
|
||||||
# Everything for new a Mesa release:
|
|
||||||
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 -cf $(LIB_NAME).tar $(LIB_FILES) ; \
|
|
||||||
gzip $(LIB_NAME).tar ; \
|
|
||||||
mv $(LIB_NAME).tar.gz $(DIRECTORY)
|
|
||||||
|
|
||||||
demo_gz:
|
|
||||||
cd .. ; \
|
|
||||||
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 -cf $(LIB_NAME).tar $(LIB_FILES) ; \
|
|
||||||
bzip2 $(LIB_NAME).tar ; \
|
|
||||||
mv $(LIB_NAME).tar.bz2 $(DIRECTORY)
|
|
||||||
|
|
||||||
demo_bz2:
|
|
||||||
cd .. ; \
|
|
||||||
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 -f $(LIB_NAME).zip ; \
|
|
||||||
cd .. ; \
|
|
||||||
zip -qr $(LIB_NAME).zip $(LIB_FILES) ; \
|
|
||||||
mv $(LIB_NAME).zip $(DIRECTORY)
|
|
||||||
|
|
||||||
demo_zip:
|
|
||||||
rm -f $(DEMO_NAME).zip ; \
|
|
||||||
cd .. ; \
|
|
||||||
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
|
|
||||||
@-md5sum $(LIB_NAME).zip
|
|
||||||
@-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
|
|
||||||
@@ -65,6 +65,7 @@ if [ $# -ge 2 ] ; then
|
|||||||
|
|
||||||
elif [ -f "$FILE" ] ; then
|
elif [ -f "$FILE" ] ; then
|
||||||
#echo "$FILE" is a regular file
|
#echo "$FILE" is a regular file
|
||||||
|
$RM "$DEST/`basename $FILE`"
|
||||||
cp "$FILE" "$DEST"
|
cp "$FILE" "$DEST"
|
||||||
if [ $MODE ] ; then
|
if [ $MODE ] ; then
|
||||||
FILE=`basename "$FILE"`
|
FILE=`basename "$FILE"`
|
||||||
|
|||||||
19
bin/mklib
19
bin/mklib
@@ -100,6 +100,14 @@ do
|
|||||||
-L*)
|
-L*)
|
||||||
DEPS="$DEPS $1"
|
DEPS="$DEPS $1"
|
||||||
;;
|
;;
|
||||||
|
-pthread)
|
||||||
|
# this is a special case (see bugzilla 10876)
|
||||||
|
DEPS="$DEPS $1"
|
||||||
|
;;
|
||||||
|
'-pthread')
|
||||||
|
# for FreeBSD
|
||||||
|
DEPS="$DEPS -pthread"
|
||||||
|
;;
|
||||||
'-cplusplus')
|
'-cplusplus')
|
||||||
CPLUSPLUS=1
|
CPLUSPLUS=1
|
||||||
;;
|
;;
|
||||||
@@ -212,15 +220,16 @@ case $ARCH in
|
|||||||
# finish up
|
# finish up
|
||||||
FINAL_LIBS="${LIBNAME}"
|
FINAL_LIBS="${LIBNAME}"
|
||||||
elif [ $STATIC = 1 ] ; then
|
elif [ $STATIC = 1 ] ; then
|
||||||
LIBNAME="lib${LIBNAME}" # prefix with "lib"
|
LIBNAME="lib${LIBNAME}.a" # prefix with "lib", suffix with ".a"
|
||||||
echo "mklib: Making" $ARCH "static library: " ${LIBNAME}.a
|
echo "mklib: Making" $ARCH "static library: " ${LIBNAME}
|
||||||
LINK="ar"
|
LINK="ar"
|
||||||
OPTS="-ru"
|
OPTS="-ru"
|
||||||
|
rm -f ${LIBNAME}
|
||||||
# make lib
|
# make lib
|
||||||
${LINK} ${OPTS} ${LIBNAME}.a ${OBJECTS}
|
${LINK} ${OPTS} ${LIBNAME} ${OBJECTS}
|
||||||
ranlib ${LIBNAME}.a
|
ranlib ${LIBNAME}
|
||||||
# finish up
|
# finish up
|
||||||
FINAL_LIBS=${LIBNAME}.a
|
FINAL_LIBS=${LIBNAME}
|
||||||
else
|
else
|
||||||
LIBNAME="lib${LIBNAME}" # prefix with "lib"
|
LIBNAME="lib${LIBNAME}" # prefix with "lib"
|
||||||
case $ARCH in 'Linux' | 'GNU' | GNU/*)
|
case $ARCH in 'Linux' | 'GNU' | GNU/*)
|
||||||
|
|||||||
42
configs/config.mgw
Normal file
42
configs/config.mgw
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
# MinGW config include file updated for Mesa 7.0
|
||||||
|
#
|
||||||
|
# Updated : by Heromyth, on 2007-7-21
|
||||||
|
# Email : zxpmyth@yahoo.com.cn
|
||||||
|
# Bugs : 1) All the default settings work fine. But the setting X86=1 can't work.
|
||||||
|
# The others havn't been tested yet.
|
||||||
|
# 2) The generated DLLs are *not* compatible with the ones built
|
||||||
|
# with the other compilers like VC8, especially for GLUT.
|
||||||
|
# 3) Although more tests are needed, it can be used individually!
|
||||||
|
|
||||||
|
# The generated DLLs by MingW with STDCALL are not totally compatible
|
||||||
|
# with the ones linked by Microsoft's compilers.
|
||||||
|
#
|
||||||
|
# xxx_USING_STDCALL = 1 Compiling MESA with __stdcall. This is default!
|
||||||
|
#
|
||||||
|
# xxx_USING_STDCALL = 0 Compiling MESA without __stdcall. I like this:)
|
||||||
|
#
|
||||||
|
|
||||||
|
# In fact, GL_USING_STDCALL and GLUT_USING_STDCALL can be
|
||||||
|
# different. For example:
|
||||||
|
#
|
||||||
|
# GL_USING_STDCALL = 0
|
||||||
|
# GLUT_USING_STDCALL = 1
|
||||||
|
#
|
||||||
|
# Suggested setting:
|
||||||
|
#
|
||||||
|
# ALL_USING_STDCALL = 1
|
||||||
|
#
|
||||||
|
# That's default!
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
ALL_USING_STDCALL = 1
|
||||||
|
|
||||||
|
|
||||||
|
ifeq ($(ALL_USING_STDCALL),1)
|
||||||
|
GL_USING_STDCALL = 1
|
||||||
|
GLUT_USING_STDCALL = 1
|
||||||
|
else
|
||||||
|
GL_USING_STDCALL = 0
|
||||||
|
GLUT_USING_STDCALL = 0
|
||||||
|
endif
|
||||||
7
configs/debian-indirect-default
Normal file
7
configs/debian-indirect-default
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
# Configuration defaults for building GLX-enabled libGL.
|
||||||
|
|
||||||
|
include $(TOP)/configs/debian-dri-default
|
||||||
|
|
||||||
|
CONFIG_NAME = debian-indirect-default
|
||||||
|
|
||||||
|
DRI_DIRS =
|
||||||
9
configs/debian-indirect-hurd-i386
Normal file
9
configs/debian-indirect-hurd-i386
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
# Configuration for building the DRI drivers on the build architecture.
|
||||||
|
|
||||||
|
include $(TOP)/configs/linux-indirect
|
||||||
|
include $(TOP)/configs/debian-indirect-default
|
||||||
|
|
||||||
|
CONFIG_NAME = debian-indirect-hurd-i386
|
||||||
|
|
||||||
|
# vim: ft=make
|
||||||
|
|
||||||
@@ -8,9 +8,9 @@
|
|||||||
CONFIG_NAME = default
|
CONFIG_NAME = default
|
||||||
|
|
||||||
# Version info
|
# Version info
|
||||||
MESA_MAJOR=6
|
MESA_MAJOR=7
|
||||||
MESA_MINOR=5
|
MESA_MINOR=0
|
||||||
MESA_TINY=2
|
MESA_TINY=1
|
||||||
|
|
||||||
# external projects. This should be useless now that we use libdrm.
|
# external projects. This should be useless now that we use libdrm.
|
||||||
DRM_SOURCE_PATH=$(TOP)/../drm
|
DRM_SOURCE_PATH=$(TOP)/../drm
|
||||||
@@ -63,7 +63,7 @@ SRC_DIRS = mesa glu glut/glx glw
|
|||||||
GLU_DIRS = sgi
|
GLU_DIRS = sgi
|
||||||
DRIVER_DIRS = x11 osmesa
|
DRIVER_DIRS = x11 osmesa
|
||||||
# Which subdirs under $(TOP)/progs/ to enter:
|
# Which subdirs under $(TOP)/progs/ to enter:
|
||||||
PROGRAM_DIRS = demos redbook samples xdemos
|
PROGRAM_DIRS = demos redbook samples glsl xdemos
|
||||||
|
|
||||||
|
|
||||||
# Library/program dependencies
|
# Library/program dependencies
|
||||||
|
|||||||
@@ -1,37 +0,0 @@
|
|||||||
? default-bp
|
|
||||||
? diffs
|
|
||||||
? linux-dri-bp
|
|
||||||
? linux-tcc
|
|
||||||
Index: linux-icc-static
|
|
||||||
===================================================================
|
|
||||||
RCS file: /cvs/mesa/Mesa/configs/linux-icc-static,v
|
|
||||||
retrieving revision 1.4
|
|
||||||
diff -r1.4 linux-icc-static
|
|
||||||
9c9
|
|
||||||
< CXX = g++
|
|
||||||
---
|
|
||||||
> CXX = icpc
|
|
||||||
11c11
|
|
||||||
< CXXFLAGS = -O3
|
|
||||||
---
|
|
||||||
> CXXFLAGS = -O3 -tpp6 -axK -DPTHREADS
|
|
||||||
22,25c22,24
|
|
||||||
< 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
|
|
||||||
< APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
|
|
||||||
< MKLIB_OPTIONS = -arch icc
|
|
||||||
---
|
|
||||||
> GL_LIB_DEPS =
|
|
||||||
> GLUT_LIB_DEPS =
|
|
||||||
> APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm -lpthread -lcxa -lunwind
|
|
||||||
29,30d27
|
|
||||||
<
|
|
||||||
<
|
|
||||||
Index: linux-x86-64-static
|
|
||||||
===================================================================
|
|
||||||
RCS file: /cvs/mesa/Mesa/configs/linux-x86-64-static,v
|
|
||||||
retrieving revision 1.6
|
|
||||||
diff -r1.6 linux-x86-64-static
|
|
||||||
21a22,23
|
|
||||||
> APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) \
|
|
||||||
> $(EXTRA_LIB_PATH) -lX11 -lXmu -lXt -lXi -lpthread -lstdc++ -lm
|
|
||||||
@@ -27,8 +27,9 @@ ASM_SOURCES =
|
|||||||
# Library/program dependencies
|
# Library/program dependencies
|
||||||
LIBDRM_CFLAGS = `pkg-config --cflags libdrm`
|
LIBDRM_CFLAGS = `pkg-config --cflags libdrm`
|
||||||
LIBDRM_LIB = `pkg-config --libs libdrm`
|
LIBDRM_LIB = `pkg-config --libs libdrm`
|
||||||
DRI_LIB_DEPS = -L/usr/local/lib -lm -lpthread -lexpat $(LIBDRM_LIB)
|
DRI_LIB_DEPS = -L/usr/local/lib -lm -pthread -lexpat $(LIBDRM_LIB)
|
||||||
GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lXxf86vm -lm -lpthread $(LIBDRM_LIB)
|
GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lXxf86vm -lXdamage -lXfixes \
|
||||||
|
-lm -pthread $(LIBDRM_LIB)
|
||||||
|
|
||||||
GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -L/usr/X11R6/lib -lGLU -lGL -lX11 -lXmu -lXt -lXi -lm
|
GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -L/usr/X11R6/lib -lGLU -lGL -lX11 -lXmu -lXt -lXi -lm
|
||||||
GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -L/usr/X11R6/lib -lGL -lXt -lX11
|
GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -L/usr/X11R6/lib -lGL -lXt -lX11
|
||||||
|
|||||||
@@ -41,7 +41,8 @@ EXTRA_LIB_PATH=-L/usr/X11R6/lib
|
|||||||
LIBDRM_CFLAGS = `pkg-config --cflags libdrm`
|
LIBDRM_CFLAGS = `pkg-config --cflags libdrm`
|
||||||
LIBDRM_LIB = `pkg-config --libs libdrm`
|
LIBDRM_LIB = `pkg-config --libs libdrm`
|
||||||
DRI_LIB_DEPS = $(EXTRA_LIB_PATH) -lm -lpthread -lexpat -ldl $(LIBDRM_LIB)
|
DRI_LIB_DEPS = $(EXTRA_LIB_PATH) -lm -lpthread -lexpat -ldl $(LIBDRM_LIB)
|
||||||
GL_LIB_DEPS = $(EXTRA_LIB_PATH) -lX11 -lXext -lXxf86vm -lm -lpthread -ldl \
|
GL_LIB_DEPS = $(EXTRA_LIB_PATH) -lX11 -lXext -lXxf86vm -lXdamage -lXfixes \
|
||||||
|
-lm -lpthread -ldl \
|
||||||
$(LIBDRM_LIB)
|
$(LIBDRM_LIB)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
16
configs/linux-dri-debug
Normal file
16
configs/linux-dri-debug
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
# -*-makefile-*-
|
||||||
|
# Configuration for linux-dri-debug: Linux DRI hardware drivers for XFree86 & others
|
||||||
|
|
||||||
|
include $(TOP)/configs/linux-dri
|
||||||
|
|
||||||
|
CONFIG_NAME = linux-dri-debug
|
||||||
|
OPT_FLAGS = -O0 -g
|
||||||
|
ARCH_FLAGS = -DDEBUG
|
||||||
|
|
||||||
|
# Helpful to reduce the amount of stuff that gets built sometimes:
|
||||||
|
#DRI_DIRS = i915tex i915
|
||||||
|
#DRI_DIRS = i965
|
||||||
|
#DRI_DIRS = radeon r200 r300
|
||||||
|
#DRI_DIRS = unichrome sis trident
|
||||||
|
#DRI_DIRS = i810 mga r128 tdfx
|
||||||
|
|
||||||
@@ -22,7 +22,8 @@ ARCH_FLAGS ?=
|
|||||||
DEFINES = -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE \
|
DEFINES = -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE \
|
||||||
-D_BSD_SOURCE -D_GNU_SOURCE \
|
-D_BSD_SOURCE -D_GNU_SOURCE \
|
||||||
-DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER \
|
-DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER \
|
||||||
-DGLX_DIRECT_RENDERING -DHAVE_ALIAS -DUSE_XCB -DHAVE_POSIX_MEMALIGN
|
-DGLX_DIRECT_RENDERING -DGLX_INDIRECT_RENDERING \
|
||||||
|
-DHAVE_ALIAS -DUSE_XCB -DHAVE_POSIX_MEMALIGN
|
||||||
|
|
||||||
X11_INCLUDES = `pkg-config --cflags-only-I x11` `pkg-config --cflags-only-I xcb` `pkg-config --cflags-only-I x11-xcb` `pkg-config --cflags-only-I xcb-glx`
|
X11_INCLUDES = `pkg-config --cflags-only-I x11` `pkg-config --cflags-only-I xcb` `pkg-config --cflags-only-I x11-xcb` `pkg-config --cflags-only-I xcb-glx`
|
||||||
|
|
||||||
@@ -65,4 +66,4 @@ WINDOW_SYSTEM=dri
|
|||||||
# 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.
|
# interface.
|
||||||
DRI_DIRS = i810 i915 mach64 mga r128 r200 r300 radeon s3v \
|
DRI_DIRS = i810 i915 mach64 mga r128 r200 r300 radeon s3v \
|
||||||
savage sis tdfx trident unichrome ffb
|
savage sis tdfx trident unichrome ffb nouveau
|
||||||
|
|||||||
@@ -15,6 +15,13 @@ PIC_FLAGS = -fPIC
|
|||||||
# Add '-DGLX_USE_TLS' to ARCH_FLAGS to enable TLS support.
|
# Add '-DGLX_USE_TLS' to ARCH_FLAGS to enable TLS support.
|
||||||
ARCH_FLAGS ?=
|
ARCH_FLAGS ?=
|
||||||
|
|
||||||
|
# DRM and pciaccess
|
||||||
|
LIBDRM_CFLAGS = `pkg-config --cflags libdrm`
|
||||||
|
LIBDRM_LIB = `pkg-config --libs libdrm`
|
||||||
|
PCIACCESS_CFLAGS = `pkg-config --cflags pciaccess`
|
||||||
|
PCIACCESS_LIB = `pkg-config --libs pciaccess`
|
||||||
|
|
||||||
|
|
||||||
DEFINES = -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE \
|
DEFINES = -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE \
|
||||||
-D_BSD_SOURCE -D_GNU_SOURCE -DHAVE_POSIX_MEMALIGN \
|
-D_BSD_SOURCE -D_GNU_SOURCE -DHAVE_POSIX_MEMALIGN \
|
||||||
-DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DDRM_USE_MALLOC -DIN_DRI_DRIVER
|
-DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DDRM_USE_MALLOC -DIN_DRI_DRIVER
|
||||||
@@ -28,7 +35,7 @@ CXXFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES)
|
|||||||
ASM_SOURCES =
|
ASM_SOURCES =
|
||||||
|
|
||||||
# Library/program dependencies
|
# Library/program dependencies
|
||||||
DRI_LIB_DEPS = -lm -lpthread -lexpat -ldl -L$(TOP)/$(LIB_DIR)
|
DRI_LIB_DEPS = -lm -lpthread -lexpat -ldl -L$(TOP)/$(LIB_DIR) $(PCIACCESS_LIB)
|
||||||
GL_LIB_DEPS = -lm -lpthread -ldl
|
GL_LIB_DEPS = -lm -lpthread -ldl
|
||||||
GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -lm
|
GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -lm
|
||||||
GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -lm
|
GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -lm
|
||||||
@@ -39,5 +46,5 @@ SRC_DIRS = glx/mini mesa glu glut/mini
|
|||||||
DRIVER_DIRS = dri
|
DRIVER_DIRS = dri
|
||||||
PROGRAM_DIRS = miniglx
|
PROGRAM_DIRS = miniglx
|
||||||
|
|
||||||
#DRI_DIRS = ffb gamma sis savage
|
#DRI_DIRS = ffb gamma sis savage tdfx unichrome fb
|
||||||
DRI_DIRS = i810 i915 mach64 mga r128 r200 radeon tdfx unichrome fb
|
DRI_DIRS = i810 i915tex i915 mach64 mga r128 r200 radeon
|
||||||
|
|||||||
72
debian/changelog
vendored
72
debian/changelog
vendored
@@ -1,3 +1,75 @@
|
|||||||
|
mesa (7.0.1~rc2-1) experimental; urgency=low
|
||||||
|
|
||||||
|
[ David Nusinow ]
|
||||||
|
* New upstream release candidate
|
||||||
|
* Bite the bullet and add myself to uploaders
|
||||||
|
|
||||||
|
[ Julien Cristau ]
|
||||||
|
* Modify the short descriptions of various packages so they fit in .changes
|
||||||
|
files without being cut off. Thanks, Marc 'HE' Brockschmidt!
|
||||||
|
* Add a shlibs file for libgl1-mesa-swx11-i686.
|
||||||
|
|
||||||
|
-- Julien Cristau <jcristau@debian.org> Fri, 27 Jul 2007 20:17:48 +0200
|
||||||
|
|
||||||
|
mesa (6.5.3-1) experimental; urgency=low
|
||||||
|
|
||||||
|
[ David Nusinow ]
|
||||||
|
* New upstream release
|
||||||
|
|
||||||
|
[ Julien Cristau ]
|
||||||
|
* Cherry-pick commit 65faf023679988f93da82b4c7ebdc689f2094459 by Michel
|
||||||
|
Dänzer to fix r300 crash.
|
||||||
|
|
||||||
|
-- Julien Cristau <jcristau@debian.org> Mon, 21 May 2007 11:34:51 +0200
|
||||||
|
|
||||||
|
mesa (6.5.3~rc3-1) experimental; urgency=low
|
||||||
|
|
||||||
|
[ Brice Goglin ]
|
||||||
|
* Split out libGLw libs and headers from libgl1-mesa-swx11 and ship both
|
||||||
|
static and shared libraries, creating libglw1-mesa and libglw1-mesa-dev
|
||||||
|
(closes: #374904).
|
||||||
|
|
||||||
|
[ Julien Cristau ]
|
||||||
|
* New upstream release candidate.
|
||||||
|
+ 06_fix_texture_data_corruption.patch,
|
||||||
|
07_call_radeonSetCliprects_from_radeonMakeCurrent.patch,
|
||||||
|
08_r300_update_window_state_when_bound_but_stamp_changed.patch,
|
||||||
|
09_i915_always_enable_pixel_fog.patch: remove, included upstream.
|
||||||
|
+ 01_fix-makefile.patch, 02_use-ieee-fp-on-s390-and-m68k.patch: refresh.
|
||||||
|
* Add build-dependencies on libxdamage-dev and libxfixes-dev.
|
||||||
|
* Resync debian/scripts/install-source.sh.
|
||||||
|
* Build mesa-swx11-source only in binary-indep.
|
||||||
|
* Update from upstream git (commit
|
||||||
|
dee1b0d5bbe91f83854813cbbcd3090327bcb5c2).
|
||||||
|
|
||||||
|
-- Julien Cristau <jcristau@debian.org> Wed, 25 Apr 2007 10:36:50 +0200
|
||||||
|
|
||||||
|
mesa (6.5.2-7) unstable; urgency=low
|
||||||
|
|
||||||
|
[ Brice Goglin ]
|
||||||
|
* libgl1-mesa-dev does not need to depend on libgl1-mesa-dri,
|
||||||
|
libgl1-mesa-glx is enough (since their split in 6.4.1-0.1);
|
||||||
|
closes: #432081. Thanks, Samuel Thibault!
|
||||||
|
|
||||||
|
[ Julien Cristau ]
|
||||||
|
* libgl1-mesa-dev Depends on libgl1-mesa-glx (>= ${source:Upstream-Version})
|
||||||
|
instead of >= ${Source-Version}. This way it's still installable on
|
||||||
|
architectures where mesa isn't built yet when a minor revision is
|
||||||
|
uploaded.
|
||||||
|
|
||||||
|
-- Julien Cristau <jcristau@debian.org> Wed, 11 Jul 2007 05:50:45 +0200
|
||||||
|
|
||||||
|
mesa (6.5.2-6) unstable; urgency=low
|
||||||
|
|
||||||
|
* libgl1-mesa-swx11 needs to depend on libosmesa6 (>= 6.5.2-1) because
|
||||||
|
it used to contain libOSMesa.so.6. This means that programs linked
|
||||||
|
against this lib got a dependency on -swx11 which was broken since
|
||||||
|
6.5.2-1.
|
||||||
|
* Fix build on hurd-i386 (build libgl1-mesa-glx without dri support and
|
||||||
|
don't build the dri drivers); closes: #420403. Thanks, Samuel Thibault!
|
||||||
|
|
||||||
|
-- Julien Cristau <jcristau@debian.org> Thu, 05 Jul 2007 00:56:35 +0200
|
||||||
|
|
||||||
mesa (6.5.2-5) unstable; urgency=low
|
mesa (6.5.2-5) unstable; urgency=low
|
||||||
|
|
||||||
[ Brice Goglin ]
|
[ Brice Goglin ]
|
||||||
|
|||||||
67
debian/control
vendored
67
debian/control
vendored
@@ -2,14 +2,14 @@ Source: mesa
|
|||||||
Section: graphics
|
Section: graphics
|
||||||
Priority: optional
|
Priority: optional
|
||||||
Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
|
Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
|
||||||
Uploaders: Thierry Reding <thierry@gilfi.de>, Julien Cristau <jcristau@debian.org>
|
Uploaders: Thierry Reding <thierry@gilfi.de>, Julien Cristau <jcristau@debian.org>, David Nusinow <dnusinow@debian.org>
|
||||||
Standards-Version: 3.7.2
|
Standards-Version: 3.7.2
|
||||||
Build-Depends: debhelper (>= 5), quilt (>= 0.40), pkg-config, libdrm-dev (>= 2.2.0) [!hurd-i386], libx11-dev, xutils-dev, x11proto-gl-dev (>= 1.4.8), libxxf86vm-dev, libexpat1-dev, lesstif2-dev, dpkg-dev (>= 1.13.19)
|
Build-Depends: debhelper (>= 5), quilt (>= 0.40), pkg-config, libdrm-dev (>= 2.2.0) [!hurd-i386], libx11-dev, xutils-dev, x11proto-gl-dev (>= 1.4.8), libxxf86vm-dev, libexpat1-dev, lesstif2-dev, dpkg-dev (>= 1.13.19), libxfixes-dev, libxdamage-dev
|
||||||
|
|
||||||
Package: libgl1-mesa-swx11
|
Package: libgl1-mesa-swx11
|
||||||
Section: libs
|
Section: libs
|
||||||
Architecture: any
|
Architecture: any
|
||||||
Depends: ${shlibs:Depends}
|
Depends: ${shlibs:Depends}, libosmesa6 (>= 6.5.2-1)
|
||||||
Conflicts: mesag3-glide, mesag3-glide2, mesag3+ggi, libgl1, nvidia-glx, mesag3, libgl1-mesa-swrast
|
Conflicts: mesag3-glide, mesag3-glide2, mesag3+ggi, libgl1, nvidia-glx, mesag3, libgl1-mesa-swrast
|
||||||
Provides: libgl1, mesag3, libgl1-mesa-swrast
|
Provides: libgl1, mesag3, libgl1-mesa-swrast
|
||||||
Replaces: libgl1, mesag3, libgl1-mesa-swrast
|
Replaces: libgl1, mesag3, libgl1-mesa-swrast
|
||||||
@@ -57,7 +57,7 @@ Section: libs
|
|||||||
Priority: extra
|
Priority: extra
|
||||||
Architecture: i386
|
Architecture: i386
|
||||||
Pre-Depends: libgl1-mesa-swx11
|
Pre-Depends: libgl1-mesa-swx11
|
||||||
Description: A free implementation of the OpenGL API -- runtime [i686 optimized]
|
Description: Mesa OpenGL runtime [i686 optimized]
|
||||||
Mesa is a 3-D graphics library with an API which is very similar to
|
Mesa is a 3-D graphics library with an API which is very similar to
|
||||||
that of OpenGL. To the extent that Mesa utilizes the OpenGL command
|
that of OpenGL. To the extent that Mesa utilizes the OpenGL command
|
||||||
syntax or state machine, it is being used with authorization from
|
syntax or state machine, it is being used with authorization from
|
||||||
@@ -80,19 +80,14 @@ Package: libgl1-mesa-swx11-dev
|
|||||||
Section: libdevel
|
Section: libdevel
|
||||||
Architecture: any
|
Architecture: any
|
||||||
Depends: libgl1-mesa-swx11 (= ${binary:Version}), libc6-dev, libx11-dev, libxext6, mesa-common-dev (= ${source:Version})
|
Depends: libgl1-mesa-swx11 (= ${binary:Version}), libc6-dev, libx11-dev, libxext6, mesa-common-dev (= ${source:Version})
|
||||||
Provides: libgl-dev, mesag3-widgets, mesag-widgets-dev, libglw-dev, mesag-dev, libgl1-mesa-swrast-dev
|
Provides: libgl-dev, mesag-dev, libgl1-mesa-swrast-dev
|
||||||
Conflicts: mesa-dev, libgl-dev, mesag3 (<< 3.1-1), nvidia-glx-dev, mesag-dev, libgl1-mesa-swrast-dev
|
Conflicts: mesa-dev, libgl-dev, mesag3 (<< 3.1-1), nvidia-glx-dev, mesag-dev, libgl1-mesa-swrast-dev
|
||||||
Replaces: libgl-dev, mesag-dev, libgl1-mesa-swrast-dev
|
Replaces: libgl-dev, mesag-dev, libgl1-mesa-swrast-dev
|
||||||
Description: A free implementation of the OpenGL API -- development support files
|
Description: A free implementation of the OpenGL API -- development files
|
||||||
This package provides the development environment required for
|
This package provides the development environment required for
|
||||||
compiling programs with Mesa. For a complete description of Mesa,
|
compiling programs with Mesa. For a complete description of Mesa,
|
||||||
please look at the libgl1-mesa-swx11 package.
|
please look at the libgl1-mesa-swx11 package.
|
||||||
.
|
.
|
||||||
This package also provides a simple widgets library, libGLw, which
|
|
||||||
allows Motif-based applications to embed an OpenGL drawing context.
|
|
||||||
The headers and static libraries for compiling programs that use this
|
|
||||||
library are included.
|
|
||||||
.
|
|
||||||
This library provides a pure software rasteriser; it does not provide
|
This library provides a pure software rasteriser; it does not provide
|
||||||
a direct rendering-capable library, or one which uses GLX. For that,
|
a direct rendering-capable library, or one which uses GLX. For that,
|
||||||
please see libgl1-mesa-dev.
|
please see libgl1-mesa-dev.
|
||||||
@@ -120,7 +115,7 @@ Section: libdevel
|
|||||||
Priority: extra
|
Priority: extra
|
||||||
Architecture: any
|
Architecture: any
|
||||||
Depends: libgl1-mesa-glx (= ${binary:Version})
|
Depends: libgl1-mesa-glx (= ${binary:Version})
|
||||||
Description: A free implementation of the OpenGL API -- GLX runtime -- debugging symbols
|
Description: Debugging symbols for the Mesa GLX runtime
|
||||||
This version of Mesa provides GLX and DRI capabilities: it is capable of
|
This version of Mesa provides GLX and DRI capabilities: it is capable of
|
||||||
both direct and indirect rendering. For direct rendering, it can use DRI
|
both direct and indirect rendering. For direct rendering, it can use DRI
|
||||||
modules from the libgl1-mesa-dri package to accelerate drawing.
|
modules from the libgl1-mesa-dri package to accelerate drawing.
|
||||||
@@ -158,7 +153,7 @@ Description: A free implementation of the OpenGL API -- GLX runtime -- debugging
|
|||||||
Package: libgl1-mesa-dri
|
Package: libgl1-mesa-dri
|
||||||
Section: libs
|
Section: libs
|
||||||
Priority: optional
|
Priority: optional
|
||||||
Architecture: any
|
Architecture: alpha amd64 arm armeb armel hppa i386 ia64 kfreebsd-i386 kfreebsd-amd64 m68k mips mipsel powerpc s390 sparc
|
||||||
Depends: ${shlibs:Depends}, libgl1-mesa-glx (= ${binary:Version})
|
Depends: ${shlibs:Depends}, libgl1-mesa-glx (= ${binary:Version})
|
||||||
Suggests: libglide3
|
Suggests: libglide3
|
||||||
Conflicts: xlibmesa-dri (<< 1:7.0.0)
|
Conflicts: xlibmesa-dri (<< 1:7.0.0)
|
||||||
@@ -179,9 +174,9 @@ Description: A free implementation of the OpenGL API -- DRI modules
|
|||||||
Package: libgl1-mesa-dri-dbg
|
Package: libgl1-mesa-dri-dbg
|
||||||
Section: libdevel
|
Section: libdevel
|
||||||
Priority: extra
|
Priority: extra
|
||||||
Architecture: any
|
Architecture: alpha amd64 arm armeb armel hppa i386 ia64 kfreebsd-i386 kfreebsd-amd64 m68k mips mipsel powerpc s390 sparc
|
||||||
Depends: libgl1-mesa-dri (= ${binary:Version})
|
Depends: libgl1-mesa-dri (= ${binary:Version})
|
||||||
Description: A free implementation of the OpenGL API -- DRI modules -- debugging symbols
|
Description: Debugging symbols for the Mesa DRI modules
|
||||||
This version of Mesa provides GLX and DRI capabilities: it is capable of
|
This version of Mesa provides GLX and DRI capabilities: it is capable of
|
||||||
both direct and indirect rendering. For direct rendering, it can use DRI
|
both direct and indirect rendering. For direct rendering, it can use DRI
|
||||||
modules from the libgl1-mesa-dri package to accelerate drawing.
|
modules from the libgl1-mesa-dri package to accelerate drawing.
|
||||||
@@ -218,11 +213,11 @@ Description: A free implementation of the OpenGL API -- DRI modules -- debugging
|
|||||||
Package: libgl1-mesa-dev
|
Package: libgl1-mesa-dev
|
||||||
Section: libdevel
|
Section: libdevel
|
||||||
Architecture: all
|
Architecture: all
|
||||||
Depends: libc6-dev, mesa-common-dev (= ${source:Version}), libgl1-mesa-glx (>= ${Source-Version}), libgl1-mesa-dri (>= ${Source-Version})
|
Depends: libc6-dev, mesa-common-dev (= ${source:Version}), libgl1-mesa-glx (>= ${source:Upstream-Version})
|
||||||
Conflicts: libgl-dev, libgl1-mesa-dri-dev
|
Conflicts: libgl-dev, libgl1-mesa-dri-dev
|
||||||
Replaces: libgl-dev, libgl1-mesa-dri-dev
|
Replaces: libgl-dev, libgl1-mesa-dri-dev
|
||||||
Provides: libgl-dev, libgl1-mesa-dri-dev
|
Provides: libgl-dev, libgl1-mesa-dri-dev
|
||||||
Description: A free implementation of the OpenGL API -- GLX development support files
|
Description: A free implementation of the OpenGL API -- GLX development files
|
||||||
This version of Mesa provides GLX and DRI capabilities: it is capable of
|
This version of Mesa provides GLX and DRI capabilities: it is capable of
|
||||||
both direct and indirect rendering. For direct rendering, it can use DRI
|
both direct and indirect rendering. For direct rendering, it can use DRI
|
||||||
modules from the libgl1-mesa-dri package to accelerate drawing.
|
modules from the libgl1-mesa-dri package to accelerate drawing.
|
||||||
@@ -263,7 +258,7 @@ Depends: libosmesa6 (= ${binary:Version}), mesa-common-dev (= ${source:Version})
|
|||||||
Conflicts: xlibosmesa-dev, libosmesa4-dev, libosmesa-dev
|
Conflicts: xlibosmesa-dev, libosmesa4-dev, libosmesa-dev
|
||||||
Replaces: xlibosmesa-dev, libosmesa-dev, libgl1-mesa-swx11-dev (<< 6.5.2), mesa-common-dev (<< 6.5.2)
|
Replaces: xlibosmesa-dev, libosmesa-dev, libgl1-mesa-swx11-dev (<< 6.5.2), mesa-common-dev (<< 6.5.2)
|
||||||
Provides: xlibosmesa-dev, libosmesa-dev
|
Provides: xlibosmesa-dev, libosmesa-dev
|
||||||
Description: Mesa Off-screen rendering extension -- development support files
|
Description: Mesa Off-screen rendering extension -- development files
|
||||||
This package provides the required environment for developing programs
|
This package provides the required environment for developing programs
|
||||||
that use the off-screen rendering extension of Mesa.
|
that use the off-screen rendering extension of Mesa.
|
||||||
.
|
.
|
||||||
@@ -297,16 +292,48 @@ Depends: libglu1-mesa (= ${binary:Version}), libgl1-mesa-dev | libgl-dev
|
|||||||
Provides: libglu-dev, xlibmesa-glu-dev
|
Provides: libglu-dev, xlibmesa-glu-dev
|
||||||
Conflicts: mesag-dev (<< 5.0.0-1), mesa-glide2-dev (<< 5.0.0-1), mesag3+ggi-dev (<< 5.0.0-1), xlibmesa-dev
|
Conflicts: mesag-dev (<< 5.0.0-1), mesa-glide2-dev (<< 5.0.0-1), mesag3+ggi-dev (<< 5.0.0-1), xlibmesa-dev
|
||||||
Replaces: libglu-dev
|
Replaces: libglu-dev
|
||||||
Description: The OpenGL utility library -- development support files
|
Description: The OpenGL utility library -- development files
|
||||||
Includes headers and static libraries for compiling programs with GLU.
|
Includes headers and static libraries for compiling programs with GLU.
|
||||||
.
|
.
|
||||||
For a complete description of GLU, please look at the libglu1-mesa
|
For a complete description of GLU, please look at the libglu1-mesa
|
||||||
package.
|
package.
|
||||||
|
|
||||||
|
Package: libglw1-mesa
|
||||||
|
Section: libs
|
||||||
|
Architecture: any
|
||||||
|
Depends: ${shlibs:Depends}
|
||||||
|
Provides: libglw1
|
||||||
|
Description: A free implementation of the OpenGL API -- runtime
|
||||||
|
Mesa is a 3-D graphics library with an API which is very similar to
|
||||||
|
that of OpenGL. To the extent that Mesa utilizes the OpenGL command
|
||||||
|
syntax or state machine, it is being used with authorization from
|
||||||
|
Silicon Graphics, Inc. However, the author makes no claim that Mesa
|
||||||
|
is in any way a compatible replacement for OpenGL or associated with
|
||||||
|
Silicon Graphics, Inc.
|
||||||
|
.
|
||||||
|
This package provides a simple widgets library, libGLw, which
|
||||||
|
allows Motif-based applications to embed an OpenGL drawing context.
|
||||||
|
.
|
||||||
|
On Linux, this library is also known as libGLw or libGLw.so.1.
|
||||||
|
|
||||||
|
Package: libglw1-mesa-dev
|
||||||
|
Section: libdevel
|
||||||
|
Architecture: any
|
||||||
|
Depends: libglw1-mesa (= ${binary:Version}), libc6-dev, libx11-dev, libxext6, mesa-common-dev (= ${source:Version})
|
||||||
|
Provides: mesag3-widgets, mesag-widgets-dev, libglw-dev
|
||||||
|
Conflicts: libglw-dev, libgl1-mesa-swx11-dev (<< 6.5.2-4)
|
||||||
|
Replaces: libglw-dev
|
||||||
|
Description: A free implementation of the OpenGL API -- development files
|
||||||
|
This package provides the development environment required for
|
||||||
|
compiling programs with the Mesa widgets library, libGLw, which
|
||||||
|
allows Motif-based applications to embed an OpenGL drawing context.
|
||||||
|
The headers and static libraries for compiling programs that use this
|
||||||
|
library are included.
|
||||||
|
|
||||||
Package: mesa-swx11-source
|
Package: mesa-swx11-source
|
||||||
Section: libdevel
|
Section: libdevel
|
||||||
Architecture: all
|
Architecture: all
|
||||||
Description: Mesa software rasteriser source -- development support files
|
Description: Mesa software rasteriser source -- development files
|
||||||
This package contains the source to the Mesa software rasteriser, which
|
This package contains the source to the Mesa software rasteriser, which
|
||||||
implements all of Mesa's GL support in software. It powers the X11 and
|
implements all of Mesa's GL support in software. It powers the X11 and
|
||||||
X server backends (assuming unaccelerated indirect). This package is
|
X server backends (assuming unaccelerated indirect). This package is
|
||||||
|
|||||||
2
debian/libgl1-mesa-swx11-dev.install
vendored
2
debian/libgl1-mesa-swx11-dev.install
vendored
@@ -1,4 +1,2 @@
|
|||||||
usr/include/GL/GLw*A.h
|
|
||||||
usr/lib/libGL.a
|
usr/lib/libGL.a
|
||||||
usr/lib/libGL.so
|
usr/lib/libGL.so
|
||||||
usr/lib/libGLw.a
|
|
||||||
|
|||||||
1
debian/libgl1-mesa-swx11-i686.shlibs
vendored
Normal file
1
debian/libgl1-mesa-swx11-i686.shlibs
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
libGL 1 libgl1-mesa-glx | libgl1
|
||||||
3
debian/libglw1-mesa-dev.install
vendored
Normal file
3
debian/libglw1-mesa-dev.install
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
usr/include/GL/GLw*A.h
|
||||||
|
usr/lib/libGLw.a
|
||||||
|
usr/lib/libGLw.so
|
||||||
1
debian/libglw1-mesa.install
vendored
Normal file
1
debian/libglw1-mesa.install
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
usr/lib/libGLw.so.*
|
||||||
8
debian/patches/01_fix-makefile.patch
vendored
8
debian/patches/01_fix-makefile.patch
vendored
@@ -3,9 +3,11 @@ OSMesa in a separate package.
|
|||||||
|
|
||||||
This patch by Thierry Reding.
|
This patch by Thierry Reding.
|
||||||
|
|
||||||
--- a/src/mesa/Makefile
|
Index: mesa/src/mesa/Makefile
|
||||||
+++ b/src/mesa/Makefile
|
===================================================================
|
||||||
@@ -107,7 +107,7 @@
|
--- mesa.orig/src/mesa/Makefile 2007-04-25 01:44:31.000000000 +0200
|
||||||
|
+++ mesa/src/mesa/Makefile 2007-04-25 01:44:58.000000000 +0200
|
||||||
|
@@ -105,7 +105,7 @@
|
||||||
$(OSMESA_DRIVER_OBJECTS)
|
$(OSMESA_DRIVER_OBJECTS)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,9 +2,11 @@ Patch that fixes Debian bug #349437.
|
|||||||
|
|
||||||
This patch by David Nusinow.
|
This patch by David Nusinow.
|
||||||
|
|
||||||
--- a/src/mesa/main/imports.h
|
Index: mesa/src/mesa/main/imports.h
|
||||||
+++ b/src/mesa/main/imports.h
|
===================================================================
|
||||||
@@ -155,8 +155,9 @@
|
--- mesa.orig/src/mesa/main/imports.h 2007-04-25 01:44:31.000000000 +0200
|
||||||
|
+++ mesa/src/mesa/main/imports.h 2007-04-25 01:45:04.000000000 +0200
|
||||||
|
@@ -158,8 +158,9 @@
|
||||||
*** USE_IEEE: Determine if we're using IEEE floating point
|
*** USE_IEEE: Determine if we're using IEEE floating point
|
||||||
***/
|
***/
|
||||||
#if defined(__i386__) || defined(__386__) || defined(__sparc__) || \
|
#if defined(__i386__) || defined(__386__) || defined(__sparc__) || \
|
||||||
|
|||||||
@@ -1,23 +0,0 @@
|
|||||||
From: Michel Dänzer <michel@tungstengraphics.com>
|
|
||||||
Date: Thu, 14 Dec 2006 09:01:43 +0000 (+0100)
|
|
||||||
Subject: _mesa_swizzle_ubyte_image: Only use single swizzle_copy call when strides match.
|
|
||||||
X-Git-Url: http://gitweb.freedesktop.org/?p=mesa/mesa.git;a=commitdiff;h=9c09259b8bef8f120cc6f4bb1a44f0eae37d71b3
|
|
||||||
|
|
||||||
_mesa_swizzle_ubyte_image: Only use single swizzle_copy call when strides match.
|
|
||||||
|
|
||||||
This fixes texture data corruption with glTexSubimage (and probably glTexImage
|
|
||||||
under some circumstances) with the texstore swizzle path.
|
|
||||||
---
|
|
||||||
|
|
||||||
--- a/src/mesa/main/texstore.c
|
|
||||||
+++ b/src/mesa/main/texstore.c
|
|
||||||
@@ -808,7 +808,8 @@ _mesa_swizzle_ubyte_image(GLcontext *ctx
|
|
||||||
|
|
||||||
/* _mesa_printf("map %d %d %d %d\n", map[0], map[1], map[2], map[3]); */
|
|
||||||
|
|
||||||
- if (srcRowStride == srcWidth * srcComponents &&
|
|
||||||
+ if (srcRowStride == dstRowStride &&
|
|
||||||
+ srcRowStride == srcWidth * srcComponents &&
|
|
||||||
dimensions < 3) {
|
|
||||||
/* 1 and 2D images only */
|
|
||||||
GLubyte *dstImage = (GLubyte *) dstAddr
|
|
||||||
@@ -1,56 +0,0 @@
|
|||||||
From: Michel Dänzer <michel@tungstengraphics.com>
|
|
||||||
Date: Tue, 6 Mar 2007 12:22:35 +0000 (+0100)
|
|
||||||
Subject: r300: Call radeonSetCliprects from radeonMakeCurrent.
|
|
||||||
X-Git-Url: http://gitweb.freedesktop.org/?p=mesa/mesa.git;a=commitdiff;h=6f9b1afc862851532e4820705c412388b497ad58
|
|
||||||
|
|
||||||
r300: Call radeonSetCliprects from radeonMakeCurrent.
|
|
||||||
|
|
||||||
Based on a patch by Panagiotis Papadakos.
|
|
||||||
|
|
||||||
Among other things, this makes sure the framebuffer object associated with the
|
|
||||||
drawable has the correct size when _mesa_make_current is called, so the default
|
|
||||||
viewport is set up correctly.
|
|
||||||
|
|
||||||
Also update radeon->lastStamp in radeonSetCliprects.
|
|
||||||
---
|
|
||||||
|
|
||||||
--- a/src/mesa/drivers/dri/r300/radeon_context.c
|
|
||||||
+++ b/src/mesa/drivers/dri/r300/radeon_context.c
|
|
||||||
@@ -51,6 +51,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DE
|
|
||||||
#include "radeon_macros.h"
|
|
||||||
#include "radeon_reg.h"
|
|
||||||
|
|
||||||
+#include "radeon_state.h"
|
|
||||||
#include "r300_state.h"
|
|
||||||
|
|
||||||
#include "utils.h"
|
|
||||||
@@ -279,6 +280,8 @@ GLboolean radeonMakeCurrent(__DRIcontext
|
|
||||||
|
|
||||||
r300UpdateWindow(radeon->glCtx);
|
|
||||||
r300UpdateViewportOffset(radeon->glCtx);
|
|
||||||
+
|
|
||||||
+ radeonSetCliprects(radeon);
|
|
||||||
}
|
|
||||||
|
|
||||||
_mesa_make_current(radeon->glCtx,
|
|
||||||
--- a/src/mesa/drivers/dri/r300/radeon_lock.c
|
|
||||||
+++ b/src/mesa/drivers/dri/r300/radeon_lock.c
|
|
||||||
@@ -90,7 +90,6 @@ static void r300RegainedLock(radeonConte
|
|
||||||
#else
|
|
||||||
radeonUpdateScissor(radeon->glCtx);
|
|
||||||
#endif
|
|
||||||
- radeon->lastStamp = drawable->lastStamp;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sarea->ctx_owner != radeon->dri.hwContext) {
|
|
||||||
--- a/src/mesa/drivers/dri/r300/radeon_state.c
|
|
||||||
+++ b/src/mesa/drivers/dri/r300/radeon_state.c
|
|
||||||
@@ -185,6 +185,8 @@ void radeonSetCliprects(radeonContextPtr
|
|
||||||
|
|
||||||
if (radeon->state.scissor.enabled)
|
|
||||||
radeonRecalcScissorRects(radeon);
|
|
||||||
+
|
|
||||||
+ radeon->lastStamp = drawable->lastStamp;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
From: Michel Dänzer <michel@tungstengraphics.com>
|
|
||||||
Date: Fri, 9 Mar 2007 08:43:17 +0000 (+0100)
|
|
||||||
Subject: r300: Also update window state when it's already bound but its stamp changed.
|
|
||||||
X-Git-Url: http://gitweb.freedesktop.org/?p=mesa/mesa.git;a=commitdiff;h=4d9901a1cab8e0d55b1b2309cf3ffec235e53149
|
|
||||||
|
|
||||||
r300: Also update window state when it's already bound but its stamp changed.
|
|
||||||
|
|
||||||
And set new cliprects before deriving other state from them. This ensures
|
|
||||||
cliprects aren't accessed after having been freed.
|
|
||||||
|
|
||||||
Thanks to Panagiotis Papadakos for testing various iterations of this.
|
|
||||||
---
|
|
||||||
|
|
||||||
--- a/src/mesa/drivers/dri/r300/radeon_context.c
|
|
||||||
+++ b/src/mesa/drivers/dri/r300/radeon_context.c
|
|
||||||
@@ -273,15 +273,15 @@ GLboolean radeonMakeCurrent(__DRIcontext
|
|
||||||
&radeon->vbl_seq);
|
|
||||||
}
|
|
||||||
|
|
||||||
+ radeon->dri.readable = driReadPriv;
|
|
||||||
+
|
|
||||||
if (radeon->dri.drawable != driDrawPriv ||
|
|
||||||
- radeon->dri.readable != driReadPriv) {
|
|
||||||
+ radeon->lastStamp != driDrawPriv->lastStamp) {
|
|
||||||
radeon->dri.drawable = driDrawPriv;
|
|
||||||
- radeon->dri.readable = driReadPriv;
|
|
||||||
|
|
||||||
+ radeonSetCliprects(radeon);
|
|
||||||
r300UpdateWindow(radeon->glCtx);
|
|
||||||
r300UpdateViewportOffset(radeon->glCtx);
|
|
||||||
-
|
|
||||||
- radeonSetCliprects(radeon);
|
|
||||||
}
|
|
||||||
|
|
||||||
_mesa_make_current(radeon->glCtx,
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
From: Zou Nan hai <nanhai.zou@intel.com>
|
|
||||||
Date: Fri, 2 Feb 2007 01:35:17 +0000 (+0800)
|
|
||||||
Subject: Fix fd.o #9686, when fall into vertex fog,
|
|
||||||
X-Git-Url: http://gitweb.freedesktop.org/?p=mesa/mesa.git;a=commitdiff;h=2dfb3a217f730d6783fb2ac8b73248dc682f923c
|
|
||||||
|
|
||||||
Fix fd.o #9686, when fall into vertex fog,
|
|
||||||
fog factors are precomputed in t_vb_fog.c compute_fog_blend_factors,
|
|
||||||
which is incompatible with appended fragment fog code.
|
|
||||||
That will make GoogleEarth display abnormally.
|
|
||||||
always use pixel fog.
|
|
||||||
---
|
|
||||||
|
|
||||||
--- a/src/mesa/drivers/dri/i915/i915_state.c
|
|
||||||
+++ b/src/mesa/drivers/dri/i915/i915_state.c
|
|
||||||
@@ -611,10 +611,12 @@ void i915_update_fog( GLcontext *ctx )
|
|
||||||
i915->state.Ctx[I915_CTXREG_LIS5] &= ~S5_FOG_ENABLE;
|
|
||||||
}
|
|
||||||
|
|
||||||
- if (enabled) {
|
|
||||||
- _tnl_allow_vertex_fog( ctx, (i915->vertex_fog == I915_FOG_VERTEX) );
|
|
||||||
- _tnl_allow_pixel_fog( ctx, (i915->vertex_fog != I915_FOG_VERTEX) );
|
|
||||||
- }
|
|
||||||
+ /* always enbale pixel fog
|
|
||||||
+ * vertex fog use precaculted fog coord will conflict with appended
|
|
||||||
+ * fog program
|
|
||||||
+ */
|
|
||||||
+ _tnl_allow_vertex_fog( ctx, 0 );
|
|
||||||
+ _tnl_allow_pixel_fog( ctx, 1 );
|
|
||||||
}
|
|
||||||
|
|
||||||
static void i915Fogfv(GLcontext *ctx, GLenum pname, const GLfloat *param)
|
|
||||||
4
debian/patches/series
vendored
4
debian/patches/series
vendored
@@ -4,7 +4,3 @@
|
|||||||
03_optional-progs-and-install.patch
|
03_optional-progs-and-install.patch
|
||||||
04_cleanup-osmesa-configs.patch
|
04_cleanup-osmesa-configs.patch
|
||||||
05_static-nonpic.patch
|
05_static-nonpic.patch
|
||||||
06_fix_texture_data_corruption.patch
|
|
||||||
07_call_radeonSetCliprects_from_radeonMakeCurrent.patch
|
|
||||||
08_r300_update_window_state_when_bound_but_stamp_changed.patch
|
|
||||||
09_i915_always_enable_pixel_fog.patch
|
|
||||||
|
|||||||
12
debian/rules
vendored
12
debian/rules
vendored
@@ -44,8 +44,8 @@ CONFIGS = $(SWX11_GLU_CONFIGS) \
|
|||||||
|
|
||||||
STAMP = $(STAMP_DIR)/$(DEB_BUILD_GNU_TYPE)
|
STAMP = $(STAMP_DIR)/$(DEB_BUILD_GNU_TYPE)
|
||||||
BUILD_STAMPS = $(addprefix $(STAMP)-build-, $(CONFIGS))
|
BUILD_STAMPS = $(addprefix $(STAMP)-build-, $(CONFIGS))
|
||||||
INSTALL_STAMPS = $(addprefix $(STAMP)-install-, $(CONFIGS)) \
|
ARCH_INSTALL_STAMPS = $(addprefix $(STAMP)-install-, $(CONFIGS))
|
||||||
$(STAMP_DIR)/install-source
|
INDEP_INSTALL_STAMPS = $(STAMP_DIR)/install-source
|
||||||
|
|
||||||
# list the configurations that will built
|
# list the configurations that will built
|
||||||
configs:
|
configs:
|
||||||
@@ -72,17 +72,17 @@ $(STAMP)-build-%: patch
|
|||||||
pre-install:
|
pre-install:
|
||||||
dh_testdir
|
dh_testdir
|
||||||
dh_testroot
|
dh_testroot
|
||||||
dh_clean -k --exclude ./Makefile.orig --exclude configs/CVS/Root.bak
|
dh_clean -k
|
||||||
rm -rf $(INSTALL_STAMPS)
|
rm -rf $(INSTALL_STAMPS)
|
||||||
|
|
||||||
install: pre-install $(INSTALL_STAMPS)
|
install: pre-install $(ARCH_INSTALL_STAMPS)
|
||||||
|
|
||||||
$(STAMP)-install-%: $(STAMP)-build-%
|
$(STAMP)-install-%: $(STAMP)-build-%
|
||||||
# Add here commands to install the package into debian/tmp
|
# Add here commands to install the package into debian/tmp
|
||||||
cd $(DEB_BUILD_DIR)/$* && $(MAKE) install DESTDIR=$(CURDIR)/debian/tmp
|
cd $(DEB_BUILD_DIR)/$* && $(MAKE) install DESTDIR=$(CURDIR)/debian/tmp
|
||||||
touch $@
|
touch $@
|
||||||
|
|
||||||
$(STAMP_DIR)/install-source:
|
$(STAMP_DIR)/install-source: pre-install
|
||||||
# install Mesa source for mesa-swx11-source package
|
# install Mesa source for mesa-swx11-source package
|
||||||
chmod a+x debian/scripts/install-source.sh
|
chmod a+x debian/scripts/install-source.sh
|
||||||
debian/scripts/install-source.sh
|
debian/scripts/install-source.sh
|
||||||
@@ -95,7 +95,7 @@ clean: unpatch
|
|||||||
rm -rf $(DEB_BUILD_DIR) $(STAMP_DIR)
|
rm -rf $(DEB_BUILD_DIR) $(STAMP_DIR)
|
||||||
|
|
||||||
# Build architecture-independent files here.
|
# Build architecture-independent files here.
|
||||||
binary-indep: build install
|
binary-indep: build install $(INDEP_INSTALL_STAMPS)
|
||||||
dh_testdir
|
dh_testdir
|
||||||
dh_testroot
|
dh_testroot
|
||||||
dh_installchangelogs -i
|
dh_installchangelogs -i
|
||||||
|
|||||||
8
debian/scripts/choose-configs
vendored
8
debian/scripts/choose-configs
vendored
@@ -22,10 +22,14 @@ else
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
# and for the GLX/DRI-enabled libGL
|
# and for the GLX/DRI-enabled libGL
|
||||||
ifneq ($(wildcard configs/debian-dri-$(DEB_BUILD_ARCH)),)
|
ifneq ($(wildcard configs/debian-indirect-$(DEB_BUILD_ARCH)),)
|
||||||
DRI_CONFIGS := debian-dri-$(DEB_BUILD_ARCH)
|
DRI_CONFIGS := debian-indirect-$(DEB_BUILD_ARCH)
|
||||||
else
|
else
|
||||||
|
ifneq ($(wildcard configs/debian-dri-$(DEB_BUILD_ARCH)),)
|
||||||
|
DRI_CONFIGS := debian-dri-$(DEB_BUILD_ARCH)
|
||||||
|
else
|
||||||
DRI_CONFIGS := debian-dri-any
|
DRI_CONFIGS := debian-dri-any
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|||||||
2
debian/scripts/install-source.sh
vendored
2
debian/scripts/install-source.sh
vendored
@@ -9,7 +9,6 @@ fi
|
|||||||
SOURCE_DIRS='
|
SOURCE_DIRS='
|
||||||
include/GL/internal
|
include/GL/internal
|
||||||
src/glx/x11
|
src/glx/x11
|
||||||
src/mesa/array_cache
|
|
||||||
src/mesa/drivers/common
|
src/mesa/drivers/common
|
||||||
src/mesa/drivers/dri/common
|
src/mesa/drivers/dri/common
|
||||||
src/mesa/drivers/dri/glcore
|
src/mesa/drivers/dri/glcore
|
||||||
@@ -24,6 +23,7 @@ SOURCE_DIRS='
|
|||||||
src/mesa/swrast
|
src/mesa/swrast
|
||||||
src/mesa/tnl_dd
|
src/mesa/tnl_dd
|
||||||
src/mesa/tnl
|
src/mesa/tnl
|
||||||
|
src/mesa/vbo
|
||||||
src/mesa/x86-64
|
src/mesa/x86-64
|
||||||
src/mesa/x86
|
src/mesa/x86
|
||||||
'
|
'
|
||||||
|
|||||||
@@ -88,19 +88,6 @@ driver (such as <code>radeon_dri.so</code>) at runtime. The
|
|||||||
environment variable <code>LIBGL_DRIVERS_PATH</code> should name the
|
environment variable <code>LIBGL_DRIVERS_PATH</code> should name the
|
||||||
directory where these modules are located.<br>
|
directory where these modules are located.<br>
|
||||||
<br>
|
<br>
|
||||||
Prior to running a MiniGXL application, the following kernel modules
|
|
||||||
must be installed:<br>
|
|
||||||
<br>
|
|
||||||
<div style="margin-left: 40px;"> agpgart.o<br>
|
|
||||||
radeonfb.o (assuming Radeon hardware)<br>
|
|
||||||
radeon.o (assuming Radeon hardware)<br>
|
|
||||||
</div>
|
|
||||||
<code></code> <br>
|
|
||||||
Finally, MiniGLX reads a configuration file (by default,<code>
|
|
||||||
/etc/miniglx.conf</code>) to determine basic configuration information.
|
|
||||||
The configuration file may also be located in the directory
|
|
||||||
specified by the <code>MINIGLX_CONF</code> environment variable).<br>
|
|
||||||
<br>
|
|
||||||
The remainder of this section describes the MiniGLX API functions.<br>
|
The remainder of this section describes the MiniGLX API functions.<br>
|
||||||
<br>
|
<br>
|
||||||
<h2>3.1 Initialization</h2>
|
<h2>3.1 Initialization</h2>
|
||||||
|
|||||||
@@ -88,3 +88,66 @@ Running the Build:
|
|||||||
|
|
||||||
Paul G. <pgarceau@users.sourceforge.net>
|
Paul G. <pgarceau@users.sourceforge.net>
|
||||||
Daniel Borca <dborca@users.sourceforge.net>
|
Daniel Borca <dborca@users.sourceforge.net>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
******This section is added by Heromyth <zxpmyth@yahoo.com.cn>*************
|
||||||
|
|
||||||
|
====================
|
||||||
|
Updated on 2007-7-21
|
||||||
|
====================
|
||||||
|
|
||||||
|
Notice:
|
||||||
|
1) The generated DLLs are *not* compatible with the ones built
|
||||||
|
with the other compilers like VC8, especially for GLUT.
|
||||||
|
|
||||||
|
2) Although more tests are needed, it can be used individually!
|
||||||
|
|
||||||
|
3) You can set the options about whether using STDCALL to build MESA. The
|
||||||
|
config file is <Mesa3D-root>\configs\config.mgw. The default setting is that:
|
||||||
|
ALL_USING_STDCALL = 1
|
||||||
|
, which means using STDCALL to build MESA.
|
||||||
|
|
||||||
|
4) Of course, you can MESA without using STDCALL,I like this:)
|
||||||
|
The setting is :
|
||||||
|
ALL_USING_STDCALL = 0
|
||||||
|
To do this, however, you must modify wingdi.h which is in MingW's include dir.
|
||||||
|
For example, run:
|
||||||
|
notepad C:\MingW\include\wingdi.h
|
||||||
|
, and delete all the lines where all the wgl*() functions are. Because they would
|
||||||
|
be conflicted with the ones in <Mesa3D-root>\include\GL\mesa_wgl.h.
|
||||||
|
|
||||||
|
>>>>>>>>>> Conflicted Functions List >>>>>>>>>>
|
||||||
|
WINGDIAPI BOOL WINAPI wglCopyContext(HGLRC,HGLRC,UINT);
|
||||||
|
WINGDIAPI HGLRC WINAPI wglCreateContext(HDC);
|
||||||
|
WINGDIAPI HGLRC WINAPI wglCreateLayerContext(HDC,int);
|
||||||
|
WINGDIAPI BOOL WINAPI wglDeleteContext(HGLRC);
|
||||||
|
WINGDIAPI BOOL WINAPI wglDescribeLayerPlane(HDC,int,int,UINT,LPLAYERPLANEDESCRIPTOR);
|
||||||
|
WINGDIAPI HGLRC WINAPI wglGetCurrentContext(void);
|
||||||
|
WINGDIAPI HDC WINAPI wglGetCurrentDC(void);
|
||||||
|
WINGDIAPI int WINAPI wglGetLayerPaletteEntries(HDC,int,int,int,COLORREF*);
|
||||||
|
WINGDIAPI PROC WINAPI wglGetProcAddress(LPCSTR);
|
||||||
|
WINGDIAPI BOOL WINAPI wglMakeCurrent(HDC,HGLRC);
|
||||||
|
WINGDIAPI BOOL WINAPI wglRealizeLayerPalette(HDC,int,BOOL);
|
||||||
|
WINGDIAPI int WINAPI wglSetLayerPaletteEntries(HDC,int,int,int,const COLORREF*);
|
||||||
|
WINGDIAPI BOOL WINAPI wglShareLists(HGLRC,HGLRC);
|
||||||
|
WINGDIAPI BOOL WINAPI wglSwapLayerBuffers(HDC,UINT);
|
||||||
|
WINGDIAPI BOOL WINAPI wglUseFontBitmapsA(HDC,DWORD,DWORD,DWORD);
|
||||||
|
WINGDIAPI BOOL WINAPI wglUseFontBitmapsW(HDC,DWORD,DWORD,DWORD);
|
||||||
|
WINGDIAPI BOOL WINAPI wglUseFontOutlinesA(HDC,DWORD,DWORD,DWORD,FLOAT,FLOAT,int,LPGLYPHMETRICSFLOAT);
|
||||||
|
WINGDIAPI BOOL WINAPI wglUseFontOutlinesW(HDC,DWORD,DWORD,DWORD,FLOAT,FLOAT,int,LPGLYPHMETRICSFLOAT);
|
||||||
|
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
|
||||||
|
|
||||||
|
====================
|
||||||
|
Updated on 2007-7-22
|
||||||
|
====================
|
||||||
|
I havn't thought that I would find a better way to solve my problems so soon.
|
||||||
|
I changed the method in which the import-libs and DLLs are made. After this update,
|
||||||
|
the DLLs of MESA are more optimized and more compatible.
|
||||||
|
It seems that there is no need to keep the building way of 'NO-STDCALL'.The
|
||||||
|
way of USING_STDCALL is so nice! The file <Mesa3D-root>\configs\config.mgw is
|
||||||
|
also not needed, and can be deleted safely!
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*********************************************************************************
|
||||||
@@ -1,155 +1,163 @@
|
|||||||
File: docs/README.WIN32
|
File: docs/README.WIN32
|
||||||
|
|
||||||
Last updated: Mar 31, 2006 - Karl Schultz - kschultz@users.sourceforge.net
|
Last updated: Apr 25, 2007 - Karl Schultz - kschultz@users.sourceforge.net
|
||||||
|
|
||||||
Quick Start
|
Quick Start
|
||||||
----- -----
|
----- -----
|
||||||
|
|
||||||
Unzip the MesaLib, MesaGLUT, and MesaDemos ZIP files into the same
|
Unzip the MesaLib, MesaGLUT, and MesaDemos ZIP files into the same
|
||||||
directory. The libs and demos build separately, so if you do not care
|
directory. The libs and demos build separately, so if you do not care
|
||||||
about the demos or GLUT, you only need to unzip MesaLib. If you unzip
|
about the demos or GLUT, you only need to unzip MesaLib. If you unzip
|
||||||
more than one ZIP file, they all need to be unzipped into the same
|
more than one ZIP file, they all need to be unzipped into the same
|
||||||
directory. Don't worry, you will not overwrite anything.
|
directory. Don't worry, you will not overwrite anything.
|
||||||
|
|
||||||
The Windows build system uses Microsoft Visual Studio. Project files
|
The Windows build system uses Microsoft Visual Studio. Project files
|
||||||
for a specific version of Visual Studio are in their own directory in
|
for a specific version of Visual Studio are in their own directory in
|
||||||
the top-level "windows" directory. For example, Visual Studio 6 files
|
the top-level "windows" directory. For example, Visual Studio 8 files
|
||||||
are in windows/VC6. If a directory does not exist for your version of
|
are in windows/VC8.
|
||||||
Visual Studio, you can try importing the project files from an earlier
|
|
||||||
version of Visual Studio. At this time, project files exist for
|
Support has been dropped for versions of Visual Studio prior to 8. The
|
||||||
Version 6 and Version 7. The code has been built with a beta version
|
main reason is because Microsoft now provides a free compiler and
|
||||||
of Version 8 and it runs on 64-bit Windows. If you want to try this,
|
developer environment. Visual Studio Express can be found at
|
||||||
start by importing the VC7 files and create the 64-bit targets in the
|
|
||||||
configuration manager.
|
http://msdn.microsoft.com/vstudio/express/visualc/default.aspx
|
||||||
|
|
||||||
It is likely that the new and free Visual Studio Express can be used
|
You'll also need the Platform SDK. Instructions for obtaining and
|
||||||
to build Mesa, but it hasn't been tried yet. Start with the VC7
|
using the SDK with Visual Studio Express can be found at
|
||||||
project files.
|
|
||||||
|
http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/
|
||||||
The project files to build the core Mesa library, Windows Mesa
|
|
||||||
drivers, OSMesa, and GLU are in the mesa directory. The project files
|
If you are stuck using VC6 or VC7, you may start with these project
|
||||||
to build GLUT and some demo programs are in the progs directory.
|
files, but you may need to modify them to reflect changes in the
|
||||||
|
Mesa source code tree. If you sucessfully update the project files,
|
||||||
Makefiles are no longer shipped or supported, but can be generated
|
please submit them to the author of this document so that they may
|
||||||
from the projects using Visual Studio.
|
be included in the next distribution.
|
||||||
|
|
||||||
|
The project files to build the core Mesa library, Windows Mesa
|
||||||
Windows Drivers
|
drivers, OSMesa, and GLU are in the mesa directory. The project files
|
||||||
------- -------
|
to build GLUT and some demo programs are in the progs directory.
|
||||||
|
|
||||||
At this time, only the GDI driver is known to work. Most of the demos
|
Makefiles are no longer shipped or supported, but can be generated
|
||||||
in progs/demos should work with this driver.
|
from the projects using Visual Studio.
|
||||||
|
|
||||||
Source code also exists in the tree for other drivers in
|
|
||||||
src/mesa/drivers/windows, but the status of this code is unknown.
|
Windows Drivers
|
||||||
|
------- -------
|
||||||
The GDI driver operates basically by writing pixel spans into a DIB
|
|
||||||
section and then blitting the DIB to the window. The driver was
|
At this time, only the GDI driver is known to work. Most of the demos
|
||||||
recently cleaned up and rewitten and so may have bugs or may be
|
in progs/demos should work with this driver.
|
||||||
missing some functionality. The older versions of the CVS source may
|
|
||||||
be useful in figuring out any problems, or report them to me.
|
Source code also exists in the tree for other drivers in
|
||||||
|
src/mesa/drivers/windows, but the status of this code is unknown.
|
||||||
To build Mesa with the GDI driver, build the mesa, gdi, and glu
|
|
||||||
projects in the Visual Studio workspace found at
|
The GDI driver operates basically by writing pixel spans into a DIB
|
||||||
|
section and then blitting the DIB to the window. The driver was
|
||||||
windows/VC6/mesa/mesa.dsw
|
recently cleaned up and rewitten and so may have bugs or may be
|
||||||
or
|
missing some functionality. The older versions of the CVS source may
|
||||||
windows/VC7/mesa/mesa.sln
|
be useful in figuring out any problems, or report them to me.
|
||||||
|
|
||||||
The osmesa DLL can also be built with the osmesa project.
|
To build Mesa with the GDI driver, build the mesa, gdi, and glu
|
||||||
|
projects in the Visual Studio workspace found at
|
||||||
The build system creates a lib top-level directory and copies
|
|
||||||
resulting LIB and DLL files to this lib directory. The files are:
|
windows/VC8/mesa/mesa.sln
|
||||||
|
|
||||||
OPENGL32.LIB, GLU32.LIB, OSMESA32.LIB
|
The osmesa DLL can also be built with the osmesa project.
|
||||||
OPENGL32.DLL, GLU32.DLL, OSMESA32.DLL
|
|
||||||
|
The build system creates a lib top-level directory and copies
|
||||||
If the MesaDemos ZIP file was extracted, the DLL files are also copied
|
resulting LIB and DLL files to this lib directory. The files are:
|
||||||
to the demos directory. This facilitates running the demos as described
|
|
||||||
below.
|
OPENGL32.LIB, GLU32.LIB, OSMESA32.LIB
|
||||||
|
OPENGL32.DLL, GLU32.DLL, OSMESA32.DLL
|
||||||
|
|
||||||
GLUT and Demos
|
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.
|
||||||
A Visual Studio workspace can be found at
|
|
||||||
|
|
||||||
windows/VC6/progs/progs.dsw
|
GLUT and Demos
|
||||||
or
|
---- --- -----
|
||||||
windows/VC7/progs/progs.sln
|
|
||||||
|
A Visual Studio workspace can be found at
|
||||||
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.
|
windows/VC8/progs/progs.sln
|
||||||
|
|
||||||
The demo build system expects to find the LIB files in the top level
|
It can be used to build GLUT and a few demos. The GLUT lib and DLL
|
||||||
lib directory, so you must build the Mesa libs first. The demo
|
are copied to the top-level lib directory, along with the Mesa libs.
|
||||||
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
|
The demo build system expects to find the LIB files in the top level
|
||||||
there by the Mesa lib build process. Therefore, you should be able to
|
lib directory, so you must build the Mesa libs first. The demo
|
||||||
simply run the demo executables from the demo directory.
|
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
|
||||||
If you want to run the demos from the Visual Studio, you may have to
|
there by the Mesa lib build process. Therefore, you should be able to
|
||||||
change the startup directory and explicitly state where the executables are.
|
simply run the demo executables from the demo directory.
|
||||||
|
|
||||||
You may also build all the demo programs by using a makefile. Go to
|
If you want to run the demos from the Visual Studio, you may have to
|
||||||
the progs/demos directory and make sure you have executed VCVARS32.BAT
|
change the startup directory and explicitly state where the executables are.
|
||||||
or whatever setup script is appropriate for your compiler. Then,
|
|
||||||
|
You may also build all the demo programs by using a makefile. Go to
|
||||||
nmake -f Makefile.win
|
the progs/demos directory and make sure you have executed VCVARS32.BAT
|
||||||
|
or whatever setup script is appropriate for your compiler. Then,
|
||||||
should build all the demos.
|
|
||||||
|
nmake -f Makefile.win
|
||||||
|
|
||||||
Build System Notes
|
should build all the demos.
|
||||||
----- ------ -----
|
|
||||||
|
|
||||||
VC6
|
Build System Notes
|
||||||
---
|
----- ------ -----
|
||||||
|
|
||||||
Visual Studio 6 does not recognize files with the .cc extension as C++
|
VC6 (not actively supported)
|
||||||
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.
|
Visual Studio 6 does not recognize files with the .cc extension as C++
|
||||||
|
language files, without a lot of unnatural tweaking. So, the VC6
|
||||||
Two additional configurations are provided, Debug x86 and Release x86
|
build process uses custom build steps to compile these files in the
|
||||||
that activate the shader code compilation by defining SLANG_86. It is
|
GLU library.
|
||||||
unknown if and how this works.
|
|
||||||
|
Two additional configurations are provided, Debug x86 and Release x86
|
||||||
VC7
|
that activate the shader code compilation by defining SLANG_86. It is
|
||||||
---
|
unknown if and how this works.
|
||||||
|
|
||||||
The above-mentioned .cc problem does not exist in this version.
|
VC7 (not actively supported)
|
||||||
|
---
|
||||||
|
|
||||||
General
|
The above-mentioned .cc problem does not exist in this version.
|
||||||
-------
|
|
||||||
|
VC8
|
||||||
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
|
No notes.
|
||||||
executable(s). Be careful about accidentially overwriting files of
|
|
||||||
the same name in the SYSTEM32 directory.
|
|
||||||
|
General
|
||||||
The DLL files are built so that the external entry points use the
|
-------
|
||||||
stdcall calling convention.
|
|
||||||
|
After building, you can copy the above DLL files to a place in your
|
||||||
Static LIB files are not built. The LIB files that are built with are
|
PATH such as $SystemRoot/SYSTEM32. If you don't like putting things
|
||||||
the linker import files associated with the DLL files.
|
in a system directory, place them in the same directory as the
|
||||||
|
executable(s). Be careful about accidentially overwriting files of
|
||||||
The si-glu sources are used to build the GLU libs. This was done
|
the same name in the SYSTEM32 directory.
|
||||||
mainly to get the better tessellator code.
|
|
||||||
|
The DLL files are built so that the external entry points use the
|
||||||
To build "mangled" Mesa, add the preprocessor define USE_MGL_NAMESPACE
|
stdcall calling convention.
|
||||||
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
|
Static LIB files are not built. The LIB files that are built with are
|
||||||
global replace operation in a text editor, no additional mangled
|
the linker import files associated with the DLL files.
|
||||||
version of mesa.def is maintained or shipped.
|
|
||||||
|
The si-glu sources are used to build the GLU libs. This was done
|
||||||
If you have a Windows-related build problem or question, it is
|
mainly to get the better tessellator code.
|
||||||
probably better to direct it to me (kschultz@users.sourceforge.net),
|
|
||||||
rather than directly to the other Mesa developers. I will help you as
|
To build "mangled" Mesa, add the preprocessor define USE_MGL_NAMESPACE
|
||||||
much as I can. I also monitor the Mesa mailing lists and will answer
|
to the project settings. You will also need to edit src/mesa.def to
|
||||||
questions in this area there as well.
|
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.
|
||||||
Karl Schultz
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
|
||||||
|
Karl Schultz
|
||||||
|
|||||||
@@ -1,47 +0,0 @@
|
|||||||
|
|
||||||
Mesa 6.4.1 Release Notes
|
|
||||||
|
|
||||||
|
|
||||||
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.1 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.1,v 3.1 2006/02/03 17:21:54 brianp Exp $
|
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
|
|
||||||
Mesa 6.4.2 Release Notes
|
|
||||||
|
|
||||||
|
|
||||||
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.2 is a minor 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.2,v 3.1 2006/02/03 17:21:54 brianp Exp $
|
|
||||||
@@ -1,97 +0,0 @@
|
|||||||
|
|
||||||
Mesa 6.5 Release Notes
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Introduction
|
|
||||||
------------
|
|
||||||
|
|
||||||
Mesa uses an even/odd version number scheme like the Linux kernel.
|
|
||||||
Odd numbered versions (such as 6.5) designate new developmental releases.
|
|
||||||
Even numbered versions (such as 6.4) designate stable releases.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
New Features
|
|
||||||
------------
|
|
||||||
|
|
||||||
OpenGL Shading language support
|
|
||||||
This includes the GL_ARB_shader_objects, GL_ARB_shading_language_100,
|
|
||||||
GL_ARB_vertex_shader and GL_ARB_fragment_shader extensions. Most of
|
|
||||||
the work was done by Michal Krol.
|
|
||||||
There's probably a fair number of bugs since this is a pretty large,
|
|
||||||
complicated body of code.
|
|
||||||
|
|
||||||
The OpenGL 2.0 interface to these features will be implemented in a
|
|
||||||
future version of Mesa,
|
|
||||||
|
|
||||||
GL_EXT_timer_query
|
|
||||||
Used to measure the time of OpenGL operations at high precision.
|
|
||||||
Only supported in the software/Xlib driver at this time.
|
|
||||||
|
|
||||||
GL_EXT_packed_depth_stencil
|
|
||||||
Defines a new GL_DEPTH_STENCIL_EXT pixel format.
|
|
||||||
|
|
||||||
GL_EXT_framebuffer_blit
|
|
||||||
A simplified glCopyPixels-like feature for copying pixel rectangles.
|
|
||||||
|
|
||||||
GL_ARB_half_float_pixel
|
|
||||||
Adds a new half-precision floating point format for image transfers,
|
|
||||||
such as for glDrawPixels, glReadPixels, glTexImage, etc.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Removed Extensions
|
|
||||||
------------------
|
|
||||||
|
|
||||||
The following extensions have been removed:
|
|
||||||
|
|
||||||
GL_HP_occlusion_test - this is superceded by GL_ARB_occlusion_query.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Known Issues
|
|
||||||
------------
|
|
||||||
|
|
||||||
Rendering to depth textures will not work. Rendering to GL_DEPTH_STENCIL
|
|
||||||
textures should work.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Driver Interface Changes
|
|
||||||
------------------------
|
|
||||||
|
|
||||||
Stencil: The Driver.StencilOp/Func/Mask() functions have been replaced by
|
|
||||||
the two-sided versions: Driver.Stencil*Separate().
|
|
||||||
|
|
||||||
Render-to-texture: The functions for rendering to textures have changed.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
To Do (someday) items
|
|
||||||
---------------------
|
|
||||||
Switch to freeglut
|
|
||||||
Increase MAX_DRAWBUFFERS
|
|
||||||
Fix linux-glide target/driver.
|
|
||||||
Fix lambda calculation for frag progs.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Driver Status
|
|
||||||
---------------------- ----------------------
|
|
||||||
DRI drivers varies with the driver
|
|
||||||
XMesa/GLX (on 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.5,v 3.4 2006/03/29 04:53:02 brianp Exp $
|
|
||||||
@@ -1,60 +0,0 @@
|
|||||||
|
|
||||||
Mesa 6.5.1 Release Notes
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Introduction
|
|
||||||
------------
|
|
||||||
|
|
||||||
Mesa uses an even/odd version number scheme like the Linux kernel.
|
|
||||||
Odd numbered versions (such as 6.5) designate new developmental releases.
|
|
||||||
Even numbered versions (such as 6.4) designate stable releases.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Mesa 6.5.1 is a 6.5 follow-on development release mostly consisting of
|
|
||||||
bug fixes (see the VERSIONS file).
|
|
||||||
|
|
||||||
|
|
||||||
New Features
|
|
||||||
------------
|
|
||||||
|
|
||||||
Intel i965 "broadwater" DRI driver
|
|
||||||
|
|
||||||
GL_APPLE_vertex_array_object - allows encapsulation of a set of vertex
|
|
||||||
arrays in an object.
|
|
||||||
|
|
||||||
GL_EXT_texture_sRGB - non-linearly mapped texture formats
|
|
||||||
|
|
||||||
GL_EXT_gpu_program_parameters - addes a few new functions for setting
|
|
||||||
multiple vertex/fragment program parameters with one call.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
To Do (someday) items
|
|
||||||
---------------------
|
|
||||||
Switch to freeglut
|
|
||||||
Increase MAX_DRAWBUFFERS
|
|
||||||
Fix linux-glide target/driver.
|
|
||||||
Fix lambda calculation for frag progs.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Driver Status
|
|
||||||
---------------------- ----------------------
|
|
||||||
DRI drivers varies with the driver
|
|
||||||
XMesa/GLX (on 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.5.1,v 1.2 2006/08/18 20:24:54 brianp Exp $
|
|
||||||
@@ -25,6 +25,7 @@ a:visited {
|
|||||||
<ul>
|
<ul>
|
||||||
<li><a href="intro.html" target="MainFrame">Introduction</a>
|
<li><a href="intro.html" target="MainFrame">Introduction</a>
|
||||||
<li><a href="news.html" target="MainFrame">News</a>
|
<li><a href="news.html" target="MainFrame">News</a>
|
||||||
|
<LI><A HREF="developers.html" target="MainFrame">Developers</A>
|
||||||
<li><a href="systems.html" target="MainFrame">Platforms and Drivers</a>
|
<li><a href="systems.html" target="MainFrame">Platforms and Drivers</a>
|
||||||
<li><a href="license.html" target="MainFrame">License & Copyright</a>
|
<li><a href="license.html" target="MainFrame">License & Copyright</a>
|
||||||
<li><a href="faq.html" target="MainFrame">FAQ</a>
|
<li><a href="faq.html" target="MainFrame">FAQ</a>
|
||||||
@@ -63,16 +64,16 @@ a:visited {
|
|||||||
<b>Developer Topics</b>
|
<b>Developer Topics</b>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="http://sourceforge.net/projects/mesa3d" target="_parent">SourceForge homepage</a>
|
<li><a href="http://sourceforge.net/projects/mesa3d" target="_parent">SourceForge homepage</a>
|
||||||
<li><a href="cvs_access.html" target="MainFrame">CVS Access</a>
|
<li><a href="repository.html" target="MainFrame">Source Code Repository</a>
|
||||||
<li><a href="cvs_branches.html" target="MainFrame">CVS Branch Info</a>
|
<li><a href="memory.html" target="MainFrame">DRI Memory Management</a>
|
||||||
|
<li><a href="shading.html" target="MainFrame">Shading Language</a>
|
||||||
<li><a href="utilities.html" target="MainFrame">Utilities</a>
|
<li><a href="utilities.html" target="MainFrame">Utilities</a>
|
||||||
<li><a href="helpwanted.html" target="MainFrame">Help Wanted</a>
|
<li><a href="helpwanted.html" target="MainFrame">Help Wanted</a>
|
||||||
<li><a href="devinfo.html" target="MainFrame">Development Notes</a>
|
<li><a href="devinfo.html" target="MainFrame">Development Notes</a>
|
||||||
<li><a href="sourcedocs.html" target="MainFrame">Source Documentation</a>
|
<li><a href="sourcedocs.html" target="MainFrame">Source Documentation</a>
|
||||||
<li><a href="subset.html" target="MainFrame">Subset Information</a>
|
|
||||||
<li><a href="fbdev-dri.html" target="MainFrame">fbdev/DRI Environment</a>
|
<li><a href="fbdev-dri.html" target="MainFrame">fbdev/DRI Environment</a>
|
||||||
|
<li><a href="subset.html" target="MainFrame">Mesa Subset Driver</a>
|
||||||
<li><a href="glfbdev-driver.html" target="MainFrame">glFBDev Driver</a>
|
<li><a href="glfbdev-driver.html" target="MainFrame">glFBDev Driver</a>
|
||||||
<LI><A HREF="custom.html" target="MainFrame">Custom Development</A>
|
|
||||||
<LI><A HREF="dispatch.html" target="MainFrame">GL Dispatch</A>
|
<LI><A HREF="dispatch.html" target="MainFrame">GL Dispatch</A>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|||||||
@@ -1,27 +0,0 @@
|
|||||||
<HTML>
|
|
||||||
|
|
||||||
<TITLE>Custom Development</TITLE>
|
|
||||||
|
|
||||||
<link rel="stylesheet" type="text/css" href="mesa.css"></head>
|
|
||||||
|
|
||||||
<BODY>
|
|
||||||
|
|
||||||
<H1>Custom Development</H1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Mesa is primarily developed and maintained on a volunteer basis.
|
|
||||||
Some Mesa development work has been done in conjuction with contracted
|
|
||||||
projects, such as the XFree86/DRI drivers.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<pre>[Begin shameless plug]</pre>
|
|
||||||
If you have a need for specific or custom Mesa development work,
|
|
||||||
<a href="http://www.tungstengraphics.com/" target="_parent">
|
|
||||||
Tungsten Graphics, Inc.</a> may be able to help you.
|
|
||||||
<pre>[End shameless plug]</pre>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,106 +0,0 @@
|
|||||||
<HTML>
|
|
||||||
|
|
||||||
<TITLE>CVS Access</TITLE>
|
|
||||||
|
|
||||||
<link rel="stylesheet" type="text/css" href="mesa.css"></head>
|
|
||||||
|
|
||||||
<BODY>
|
|
||||||
|
|
||||||
<h1>CVS Access</h1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Mesa's CVS repository (code management system) is hosted on
|
|
||||||
<a href="http://www.freedesktop.org" target="_parent">freedesktop.org</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
You may access the repository either as an
|
|
||||||
<a href="#anonymous">anonymous user</a> (read-only) or as a
|
|
||||||
<a href="#developer">developer</a>
|
|
||||||
(read/write).
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
You may also
|
|
||||||
<a href="http://freedesktop.org/cgi-bin/viewcvs.cgi/mesa/Mesa/"
|
|
||||||
target="_parent">browse the CVS repository</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<a name="anonymous">
|
|
||||||
<H2>Anonymous CVS Access</H2>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Anonymous, public, read-only access to the CVS repository is available.
|
|
||||||
Here are the basic instructions for Unix systems:
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<ol>
|
|
||||||
<li>Install CVS client software on your computer if needed.
|
|
||||||
Version 1.9.28 is known to work.
|
|
||||||
<li>Login as an anonymous user:
|
|
||||||
<pre>
|
|
||||||
cvs -d:pserver:anonymous@anoncvs.freedesktop.org:/cvs/mesa login
|
|
||||||
</pre>
|
|
||||||
Just press Enter/Return when prompted for a password.
|
|
||||||
<br>
|
|
||||||
<br>
|
|
||||||
<li>Check out the code:
|
|
||||||
<pre>
|
|
||||||
cvs -d:pserver:anonymous@anoncvs.freedesktop.org:/cvs/mesa co Mesa
|
|
||||||
</pre>
|
|
||||||
</ol>
|
|
||||||
|
|
||||||
|
|
||||||
<p>To update your Mesa CVS source to the latest CVS source:</p>
|
|
||||||
|
|
||||||
<ol>
|
|
||||||
<li><code>cd Mesa</code>
|
|
||||||
<li><code>cvs -z3 -d:pserver:anonymous@anoncvs.freedesktop.org:/cvs/mesa update</code>
|
|
||||||
</ol>
|
|
||||||
|
|
||||||
|
|
||||||
<a name="developer">
|
|
||||||
<H2>Developer CVS Access</H2>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
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>.
|
|
||||||
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>
|
|
||||||
Once your account is established, you can check out the Mesa CVS tree
|
|
||||||
with:
|
|
||||||
<pre>
|
|
||||||
setenv CVS_RSH ssh (if using a csh-like shell)
|
|
||||||
</pre>
|
|
||||||
<em>OR</em>
|
|
||||||
<pre>
|
|
||||||
export CVS_RSH=rsh (if using a bash-like shell)
|
|
||||||
</pre>
|
|
||||||
followed by:
|
|
||||||
<pre>
|
|
||||||
cvs -d:ext:yourusername@cvs.freedesktop.org:/cvs/mesa co Mesa
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Of course, replace <em>yourusername</em> with your actual login name.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Subsequent updates should only require:
|
|
||||||
</p>
|
|
||||||
<pre>
|
|
||||||
cvs update
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,80 +0,0 @@
|
|||||||
<HTML>
|
|
||||||
|
|
||||||
<TITLE>CVS Branches</TITLE>
|
|
||||||
|
|
||||||
<link rel="stylesheet" type="text/css" href="mesa.css"></head>
|
|
||||||
|
|
||||||
<BODY>
|
|
||||||
|
|
||||||
<H1>CVS Branch Information</H1>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
At any given time, there may be several active branches in Mesa's
|
|
||||||
CVS repository.
|
|
||||||
|
|
||||||
Generally, the CVS trunk contains the latest development (unstable)
|
|
||||||
code while a CVS branch has the latest stable code.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Currently (Oct 2004), the trunk is the Mesa 6.3 development code
|
|
||||||
while the mesa_6_2_branch branch has the stable Mesa 6.2.x code.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Mesa releases use an even/odd numbering scheme to represent stable/development
|
|
||||||
releases.
|
|
||||||
|
|
||||||
For example, Mesa 6.2 (0 is considered even) is a stable release while
|
|
||||||
Mesa 6.3 is a development release.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
To checkout a specific CVS branch pass <code>-r</code> and
|
|
||||||
the branch tag after your CVS command.
|
|
||||||
|
|
||||||
For example <code>cvs checkout -r mesa_6_2_branch Mesa</code> will
|
|
||||||
checkout the 6.2 branch and <code>cvs update -r
|
|
||||||
mesa_6_2_branch</code> will convert your current CVS tree to the 6.2
|
|
||||||
branch.
|
|
||||||
|
|
||||||
Consult <a href="http://www.durak.org/cvswebsites/doc/cvs_5.php3#SEC54"
|
|
||||||
target="_parent">http://www.durak.org/cvswebsites/doc/cvs_5.php3#SEC54</a>
|
|
||||||
for more on branching in CVS.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
To see a list of all the CVS branches run <code>cvs log README</code> (or any
|
|
||||||
other file) and look for the section labeled <code>symbolic names</code>.
|
|
||||||
You'll see something like this:
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<pre> symbolic names:
|
|
||||||
mesa_4_0: 1.3
|
|
||||||
mesa_4_0_branch: 1.3.0.6
|
|
||||||
mesa_3_5: 1.3
|
|
||||||
mesa_3_4_2: 1.3
|
|
||||||
mesa_3_4_1: 1.3
|
|
||||||
mesa_3_4: 1.3
|
|
||||||
mesa_3_4_branch: 1.3.0.4
|
|
||||||
mesa_3_3: 1.3
|
|
||||||
mesa_3_2_1: 1.1.1.1
|
|
||||||
mesa_3_3_texture_env_combine2: 1.3.0.2
|
|
||||||
mesa_3_2: 1.1.1.1
|
|
||||||
mesa_3_2_beta_1: 1.1.1.1
|
|
||||||
mesa_3_1: 1.1.1.1
|
|
||||||
mesa_3_2_dev: 1.1.1.1.0.2
|
|
||||||
mesa_3_1_beta_3: 1.1.1.1
|
|
||||||
start: 1.1.1.1
|
|
||||||
mesa: 1.1.1
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Most will be obsolete branches. Generally, the newer branches are at
|
|
||||||
the top. Ask on the mesa3d-dev mailing list to learn which branches
|
|
||||||
are active.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
51
docs/developers.html
Normal file
51
docs/developers.html
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
<HTML>
|
||||||
|
|
||||||
|
<TITLE>Developers</TITLE>
|
||||||
|
|
||||||
|
<link rel="stylesheet" type="text/css" href="mesa.css"></head>
|
||||||
|
|
||||||
|
<BODY>
|
||||||
|
|
||||||
|
<H1>Developers</H1>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Both professional and volunteer developers contribute to Mesa.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<a href="http://www.tungstengraphics.com/" target="_parent">Tungsten Graphics</a>
|
||||||
|
employs several of the main Mesa developers including Brian Paul
|
||||||
|
and Keith Whitwell.
|
||||||
|
Much of the on-going work in Mesa is done through Tungsten Graphics engineering
|
||||||
|
contracts.
|
||||||
|
Prominent examples of this work includes:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>DRI drivers for Intel i965, i945, i915 and other chips
|
||||||
|
<li>Advanced memory manager and framebuffer object support
|
||||||
|
<li>Shading language compiler and OpenGL 2.0 support
|
||||||
|
<li>MiniGLX environment
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Other companies including
|
||||||
|
<a href="http://www.intellinuxgraphics.org/index.html" target="_parent">Intel</a>
|
||||||
|
and IBM also actively contribute to the project.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Volunteers have made significant contributions to all parts of Mesa, including
|
||||||
|
complete device drivers.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
<H1>Custom Development</H1>
|
||||||
|
<p>
|
||||||
|
Contact <a href="http://www.tungstengraphics.com/" target="_parent">
|
||||||
|
Tungsten Graphics</a>
|
||||||
|
for information about custom development in Mesa, OpenGL, X and other
|
||||||
|
graphics technologies.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -9,11 +9,7 @@
|
|||||||
<H1>Downloading</H1>
|
<H1>Downloading</H1>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Last development release: <b>6.5.1</b>
|
Last stable release: <b>7.0</b>
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Last stable release: <b>6.4.2</b>
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
|
|||||||
@@ -12,161 +12,77 @@
|
|||||||
<H1>1. Introduction</H1>
|
<H1>1. Introduction</H1>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
The fbdev/DRI sub-project within Mesa brings hardware accelerated OpenGL
|
The fbdev/DRI environment supports hardware-accelerated 3D rendering without
|
||||||
rendering to the Linux fbdev environment.
|
the X window system. This is typically used for embedded applications.
|
||||||
The X Window System / XFree86 is not needed.
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Basically, the <a href="http://dri.sf.net/">DRI</a> drivers for hardware
|
Contributors to this project include Jon Smirl, Keith Whitwell and Dave Airlie.
|
||||||
accelerated OpenGL for XFree86 have been ported to fbdev so that X is
|
|
||||||
not needed.
|
|
||||||
This means fbdev/DRI works in full-screen mode only.
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
DRI driver writers may find this simplified environment easier to work in,
|
Applications in the fbdev/DRI environment use
|
||||||
compared to the full XFree86/DRI environment.
|
the <a href="MiniGXL.html"> MiniGLX</a> interface to choose pixel
|
||||||
|
formats, create rendering contexts, etc. It's a subset of the GLX and
|
||||||
|
Xlib interfaces allowing some degree of application portability between
|
||||||
|
the X and X-less environments.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
|
||||||
Much of the work for this project has been done by Jon Smirl and
|
|
||||||
Keith Whitwell.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
To use fbdev/DRI, you'll need a Linux 2.4 or 2.6 kernel.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h3>Background Info</h3>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
The Mesa-based DRI drivers used to be hosted in the DRI tree (which is
|
|
||||||
basically a copy of the XFree86 tree).
|
|
||||||
Since the Mesa-based DRI drivers are moreso "Mesa drivers" than "XFree86
|
|
||||||
drivers" and the fact that with some work, the drivers could be used
|
|
||||||
without X, the driver code was moved into the Mesa tree.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
So now the DRI drivers can be compiled for two different environments:
|
|
||||||
fbdev and XFree86.
|
|
||||||
To build the drivers for XFree86, one has to download/build the DRI
|
|
||||||
source tree.
|
|
||||||
Eventually, we'd like to be able to build the drivers for XFree86 outside
|
|
||||||
of the XFree86/DRI trees.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h1>2. Compilation</h1>
|
<h1>2. Compilation</h1>
|
||||||
|
|
||||||
<h2>2.1 Compiling the DRM modules</h2>
|
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
First, you'll need the DRM (Direct Rendering Manager) kernel module sources.
|
You'll need the DRM and pciaccess libraries. Check with:
|
||||||
They're found in a module of the DRI CVS tree.
|
|
||||||
To obtain the code do the following:
|
|
||||||
</p>
|
</p>
|
||||||
<pre>
|
<pre>
|
||||||
cvs -d:pserver:anonymous@anoncvs.freedesktop.org:/cvs/dri login
|
pkg-config --modversion libdrm
|
||||||
</pre>
|
pkg-config --modversion pciaccess
|
||||||
<p>
|
|
||||||
Press Enter/Return when prompted for a password. Then,
|
|
||||||
</p>
|
|
||||||
<pre>
|
|
||||||
cvs -d:pserver:anonymous@anoncvs.freedesktop.org:/cvs/dri co drm
|
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Compile the DRM kernel modules:
|
You can get them from the git repository with:
|
||||||
</p>
|
</p>
|
||||||
<pre>
|
<pre>
|
||||||
cd drm/linux
|
git clone git://anongit.freedesktop.org/git/mesa/drm
|
||||||
make
|
git clone git://anongit.freedesktop.org/git/xorg/lib/libpciaccess
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Note: you may need to be root in order to make a few symlinks.
|
See the README files in those projects for build/install instructions.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
When compilation is done, you should have at least the following
|
You'll need fbdev header files. Check with:
|
||||||
kernel modules:
|
|
||||||
</p>
|
</p>
|
||||||
<pre>
|
<pre>
|
||||||
gamma.o
|
ls -l /usr/include/linux/fb.h
|
||||||
i810.o
|
|
||||||
i830.o
|
|
||||||
mach64.o
|
|
||||||
mga.o
|
|
||||||
r128.o
|
|
||||||
radeon.o
|
|
||||||
savage.o
|
|
||||||
sis.o
|
|
||||||
tdfx.o
|
|
||||||
via.o
|
|
||||||
</pre>
|
</pre>
|
||||||
<p>
|
|
||||||
You'll probably want to copy/move them into your kernel module directory
|
|
||||||
(for example: <code>/lib/modules/2.4.18-14/kernel/drivers/char/drm/</code>).
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h2>2.2 Compiling the Mesa drivers</h2>
|
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Begin by editing the <code>Mesa/configs/default</code> file to set
|
Compile Mesa with the 'linux-solo' configuration:
|
||||||
the <code>DRM_SOURCE_PATH</code> variable.
|
|
||||||
Set it to the location where the DRM module sources are located.
|
|
||||||
For example, if your current directory in step 2.1 was <code>/home/fred/</code>
|
|
||||||
set DRM_SOURCE_PATH to <code>/home/fred/drm</code>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Next, assuming you're starting with a fresh Mesa CVS checkout,
|
|
||||||
do the following:
|
|
||||||
</p>
|
</p>
|
||||||
<pre>
|
<pre>
|
||||||
make linux-solo
|
make linux-solo
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
If you previously built the source tree, run <code>make realclean</code>
|
When complete you should have the following:
|
||||||
first to remove the old object files.
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
|
||||||
When this is finished, check the <code>Mesa/lib/</code> directory
|
|
||||||
to verify that the following files were made:
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li><code>libGL.so.1.2</code> - the client-side OpenGL library
|
<li>lib/libGL.so - the GL library which applications link with
|
||||||
(and a few symlinks to it).
|
<li>lib/*_dri_so - DRI drivers
|
||||||
<li><code>libGLU.so.1.1</code> - the GLU library (and a few symlinks to it).
|
<li>lib/miniglx.conf - sample MiniGLX config file
|
||||||
<li><code>libglut.so.3.7</code> - the GLUT library (and a few symlinks to it).
|
<li>progs/miniglx/* - several MiniGLX sample programs
|
||||||
<li><code>mga_dri.so</code> - DRI driver for Matrox G200/G400 cards.
|
|
||||||
<li><code>r128_dri.so</code> - DRI driver for ATI Rage 128 cards.
|
|
||||||
<li><code>r200_dri.so</code> - DRI driver for ATI R200 Radeon cards.
|
|
||||||
<li><code>radeon_dri.so</code> - DRI driver for original ATI Radeon cards.
|
|
||||||
<li><code>i810_dri.so</code> - DRI driver for Intel i810/i815 chips.
|
|
||||||
<li><code>i830_dri.so</code> - DRI driver for Intel i830/i845 chips.
|
|
||||||
<li><code>mga_dri.so</code> - DRI driver for Matrox G200/G400 cards.
|
|
||||||
<li><code>sis_dri.so</code> - DRI driver for SIS cards.
|
|
||||||
<li><code>tdfx_dri.so</code> - DRI driver for 3dfx Voodoo 3/4/5 cards.
|
|
||||||
<li><code>gamma_dri.so</code> - DRI driver for 3Dlabs gamma cards.
|
|
||||||
<li><code>fb_dri.so</code> - software-only fbdev driver.
|
|
||||||
<li><code>miniglx.conf</code> - configuration file for the MiniGLX interface
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h1>3. Using fbdev/DRI</h1>
|
<h1>3. Using fbdev/DRI</h1>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
If XFree86 is currently running, exit/stop the X server so you're
|
If an X server currently running, exit/stop it so you're working from
|
||||||
working from the console.
|
the console.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
@@ -175,12 +91,23 @@ working from the console.
|
|||||||
<p>
|
<p>
|
||||||
You'll need to load the kernel modules specific to your graphics hardware.
|
You'll need to load the kernel modules specific to your graphics hardware.
|
||||||
Typically, this consists of the agpgart module, an fbdev driver module
|
Typically, this consists of the agpgart module, an fbdev driver module
|
||||||
and the DRM kernel module (from step 2.1).
|
and the DRM kernel module.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
As root, the kernel modules can be loaded as follows:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
If you have Intel i915/i945 hardware:
|
||||||
|
</p>
|
||||||
|
<pre>
|
||||||
|
modprobe agpgart # the AGP GART module
|
||||||
|
modprobe intelfb # the Intel fbdev driver
|
||||||
|
modprobe i915 # the i915/945 DRI kernel module
|
||||||
|
</pre>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
If you have ATI Radeon/R200 hardware, run as root:
|
If you have ATI Radeon/R200 hardware:
|
||||||
</p>
|
</p>
|
||||||
<pre>
|
<pre>
|
||||||
modprobe agpgart # the AGP GART module
|
modprobe agpgart # the AGP GART module
|
||||||
@@ -189,7 +116,7 @@ If you have ATI Radeon/R200 hardware, run as root:
|
|||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
If you have ATI Rage 128 hardware, run as root:
|
If you have ATI Rage 128 hardware:
|
||||||
</p>
|
</p>
|
||||||
<pre>
|
<pre>
|
||||||
modprobe agpgart # the AGP GART module
|
modprobe agpgart # the AGP GART module
|
||||||
@@ -198,7 +125,7 @@ If you have ATI Rage 128 hardware, run as root:
|
|||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
If you have Matrox G200/G400 hardware, run as root:
|
If you have Matrox G200/G400 hardware:
|
||||||
</p>
|
</p>
|
||||||
<pre>
|
<pre>
|
||||||
modprobe agpgart # the AGP GART module
|
modprobe agpgart # the AGP GART module
|
||||||
@@ -207,37 +134,46 @@ If you have Matrox G200/G400 hardware, run as root:
|
|||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Then run <code>lsmod</code> to be sure the modules are loaded.
|
To verify that the agpgart, fbdev and drm modules are loaded:
|
||||||
For a Radeon card, you should see something like this:
|
|
||||||
</p>
|
</p>
|
||||||
<pre>
|
<pre>
|
||||||
Module Size Used by Not tainted
|
ls -l /dev/agpgart /dev/fb* /dev/dri
|
||||||
radeon 110308 0 (unused)
|
|
||||||
radeonfb 21900 0 (unused)
|
|
||||||
agpgart 43072 1
|
|
||||||
</pre>
|
</pre>
|
||||||
|
<p>
|
||||||
|
Alternately, use lsmod to inspect the currently installed modules.
|
||||||
|
If you have problems, look at the output of dmesg.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<h2>3.2 Configuration File</h2>
|
<h2>3.2 Configuration File</h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
The <code>Mesa/lib/miniglx.conf</code> file should be installed
|
Copy the sample miniglx.conf to /etc/miniglx.conf and review/edit its contents.
|
||||||
in <code>/etc/</code>.
|
Alternately, the MINIGLX_CONF environment variable can be used to
|
||||||
|
indicate the location of miniglx.conf
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
To determine the pciBusID value, run lspci and examine the output.
|
||||||
Edit <code>/etc/miniglx.conf</code> to be sure it's set up correctly
|
For example:
|
||||||
for your hardware.
|
|
||||||
Comments in the file explain the options.
|
|
||||||
</p>
|
</p>
|
||||||
|
<pre>
|
||||||
|
/sbin/lspci:
|
||||||
|
00:02.0 VGA compatible controller: Intel Corporation 82915G/GV/910GL Express Chipset Family Graphics Controller (rev 04)
|
||||||
|
</pre>
|
||||||
|
<p>
|
||||||
|
00:02.0 indicates that pciBusID should be PCI:0:2:0
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h2>3.3 Running fbdev/DRI Programs</h2>
|
<h2>3.3 Running fbdev/DRI Programs</h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Make sure your LD_LIBRARY_PATH environment variable is set to the
|
Make sure your LD_LIBRARY_PATH environment variable is set to the
|
||||||
<code>Mesa/lib/</code> directory.
|
location of the libGL.so library. You may need to append other paths
|
||||||
|
to LD_LIBRARY_PATH if libpciaccess.so is in a non-standard location,
|
||||||
|
for example.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
@@ -245,7 +181,7 @@ Change to the <code>Mesa/progs/miniglx/</code> directory and
|
|||||||
start the sample_server program in the background:
|
start the sample_server program in the background:
|
||||||
</p>
|
</p>
|
||||||
<pre>
|
<pre>
|
||||||
./sample_server &
|
./sample_server &
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
@@ -268,27 +204,24 @@ them from a remote shell so that you can stop them with ctrl-C.
|
|||||||
|
|
||||||
<h1>4.0 Troubleshooting</h1>
|
<h1>4.0 Troubleshooting</h1>
|
||||||
|
|
||||||
<p>
|
<ol>
|
||||||
|
<li>
|
||||||
If you try to run miniglxtest and get the following:
|
If you try to run miniglxtest and get the following:
|
||||||
</p>
|
<br>
|
||||||
<pre>
|
<pre>
|
||||||
[miniglx] failed to probe chipset
|
[miniglx] failed to probe chipset
|
||||||
connect: Connection refused
|
connect: Connection refused
|
||||||
server connection lost
|
server connection lost
|
||||||
</pre>
|
</pre>
|
||||||
<p>
|
|
||||||
It means that the sample_server process is not running.
|
It means that the sample_server process is not running.
|
||||||
</p>
|
<br>
|
||||||
|
<br>
|
||||||
|
</li>
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
|
||||||
<h1>5.0 Programming Information</h1>
|
<h1>5.0 Programming Information</h1>
|
||||||
|
|
||||||
<p>
|
|
||||||
The full OpenGL API is available with fbdev/DRI.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
OpenGL/Mesa is interfaced to fbdev via the <a href="MiniGLX.html">MiniGLX</a>
|
OpenGL/Mesa is interfaced to fbdev via the <a href="MiniGLX.html">MiniGLX</a>
|
||||||
interface.
|
interface.
|
||||||
|
|||||||
BIN
docs/gears.png
BIN
docs/gears.png
Binary file not shown.
|
Before Width: | Height: | Size: 1.6 KiB |
@@ -9,35 +9,31 @@
|
|||||||
<H1>Introduction</H1>
|
<H1>Introduction</H1>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Mesa is a 3-D graphics library with an API which is very similar to
|
Mesa is an open-source implementation of the
|
||||||
that of <a href="http://www.opengl.org/" target="_parent">OpenGL</a>.*
|
<a href="http://www.opengl.org/" target="_parent">OpenGL</a> specification -
|
||||||
To the extent that Mesa utilizes the OpenGL command syntax or state
|
a system for rendering interactive 3D graphics.
|
||||||
machine, it is being used with authorization from <a
|
|
||||||
href="http://www.sgi.com/" target="_parent">Silicon Graphics,
|
|
||||||
Inc.</a>(SGI). However, the author does not possess an OpenGL license
|
|
||||||
from SGI, and makes no claim that Mesa is in any way a compatible
|
|
||||||
replacement for OpenGL or associated with SGI. Those who want a
|
|
||||||
licensed implementation of OpenGL should contact a licensed
|
|
||||||
vendor.
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Please do not refer to the library as <em>MesaGL</em> (for legal
|
A variety of device drivers allows Mesa to be used in many different
|
||||||
reasons). It's just <em>Mesa</em> or <em>The Mesa 3-D graphics
|
environments ranging from software emulation to complete hardware acceleration
|
||||||
library</em>. <br>
|
for modern GPUs.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
* OpenGL is a trademark of <a href="http://www.sgi.com/"
|
Mesa ties into several other open-source projects: the
|
||||||
target="_parent">Silicon Graphics Incorporated</a>.
|
<a href="http://dri.sf.net/" target="_parent">Direct Rendering Infrastructure</a>
|
||||||
|
and <a href="http://x.org" target="_parent">X.org</a> to provide OpenGL
|
||||||
|
support to users of X on Linux, FreeBSD and other operating systems.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<H1>Project History</H1>
|
<H1>Project History</H1>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
The Mesa project was founded by me, Brian Paul. Here's a short history
|
The Mesa project was originally started by Brian Paul.
|
||||||
of the project.
|
Here's a short history of the project.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
@@ -132,10 +128,15 @@ specification as well as the GL_ARB_vertex_program and
|
|||||||
GL_ARB_fragment_program extensions.
|
GL_ARB_fragment_program extensions.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
June 2007: Mesa 7.0 is released, implementing the OpenGL 2.1 specification
|
||||||
|
and OpenGL Shading Language.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Ongoing: Mesa is used as the core of many hardware OpenGL drivers for
|
Ongoing: Mesa is used as the core of many hardware OpenGL drivers for
|
||||||
the XFree86 X.org X servers within the
|
the XFree86 and X.org X servers within the
|
||||||
<A href="http://dri.freedesktop.org/" target="_parent">DRI project</A>.
|
<A href="http://dri.freedesktop.org/" target="_parent">DRI project</A>.
|
||||||
I continue to enhance Mesa with new extensions and features.
|
I continue to enhance Mesa with new extensions and features.
|
||||||
</p>
|
</p>
|
||||||
@@ -145,9 +146,16 @@ I continue to enhance Mesa with new extensions and features.
|
|||||||
<H1>Major Versions</H1>
|
<H1>Major Versions</H1>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
This is a summary of the major versions of Mesa. Note that Mesa's major
|
This is a summary of the major versions of Mesa.
|
||||||
version number tracks OpenGL's minor version number (+1).
|
Mesa's major version number has been incremented whenever a new version
|
||||||
Work is underway to implement the OpenGL 2.0 specification.
|
of the OpenGL specification is implemented.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
<H2>Version 7.x features</H2>
|
||||||
|
<p>
|
||||||
|
Version 7.x of Mesa implements the OpenGL 2.1 API. The main feature
|
||||||
|
of OpenGL 2.x is the OpenGL Shading Language.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -6,6 +6,34 @@
|
|||||||
|
|
||||||
<BODY>
|
<BODY>
|
||||||
|
|
||||||
|
<H1>Disclaimer</H1>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Mesa is a 3-D graphics library with an API which is very similar to
|
||||||
|
that of <a href="http://www.opengl.org/" target="_parent">OpenGL</a>.*
|
||||||
|
To the extent that Mesa utilizes the OpenGL command syntax or state
|
||||||
|
machine, it is being used with authorization from <a
|
||||||
|
href="http://www.sgi.com/" target="_parent">Silicon Graphics,
|
||||||
|
Inc.</a>(SGI). However, the author does not possess an OpenGL license
|
||||||
|
from SGI, and makes no claim that Mesa is in any way a compatible
|
||||||
|
replacement for OpenGL or associated with SGI. Those who want a
|
||||||
|
licensed implementation of OpenGL should contact a licensed
|
||||||
|
vendor.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Please do not refer to the library as <em>MesaGL</em> (for legal
|
||||||
|
reasons). It's just <em>Mesa</em> or <em>The Mesa 3-D graphics
|
||||||
|
library</em>. <br>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
* OpenGL is a trademark of <a href="http://www.sgi.com/"
|
||||||
|
target="_parent">Silicon Graphics Incorporated</a>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<H1>License / Copyright Information</H1>
|
<H1>License / Copyright Information</H1>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
@@ -24,7 +52,7 @@ The default Mesa license is as follows:
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
Copyright (C) 1999-2005 Brian Paul All Rights Reserved.
|
Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a
|
Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
copy of this software and associated documentation files (the "Software"),
|
copy of this software and associated documentation files (the "Software"),
|
||||||
|
|||||||
@@ -9,47 +9,58 @@
|
|||||||
<H1>Mailing Lists</H1>
|
<H1>Mailing Lists</H1>
|
||||||
|
|
||||||
|
|
||||||
<p>There are four Mesa mailing lists:</p>
|
<p>There are four Mesa mailing lists:
|
||||||
<ul>
|
|
||||||
<li><b>mesa3d-users</b> - intended for users of the Mesa library.
|
|
||||||
Newbie questions are appropriate, but please try reading the Mesa documentation first.
|
|
||||||
</li><li><b>mesa3d-dev</b> - intended for developers of the Mesa library.
|
|
||||||
This is not for beginners.
|
|
||||||
</li><li><b>mesa3d-cvs</b> - CVS check-in messages are sent to this list.
|
|
||||||
This is useful for tracking ongoing development changes.
|
|
||||||
</li><li><b>mesa3d-announce</b> - announcements of new Mesa versions are sent to this list.
|
|
||||||
</li></ul>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
To subscribe or unsubscribe, go to the
|
|
||||||
<a href="http://www.sourceforge.net/mail/?group_id=3" target="_parent">
|
|
||||||
SourceForge lists page.</a>
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>The mailing lists are managed by SourceForge. If you're having trouble
|
<ul>
|
||||||
with the mailing lists please contact the SourceForge administrators for help.</p>
|
<li><a href="https://lists.sourceforge.net/lists/listinfo/mesa3d-announce"
|
||||||
|
target="_parent">mesa3d-announce</a> - announcements of new Mesa
|
||||||
|
versions are sent to this list.
|
||||||
|
</li>
|
||||||
|
<br>
|
||||||
|
<li><a href="https://lists.sourceforge.net/lists/listinfo/mesa3d-users"
|
||||||
|
target="_parent">mesa3d-users</a> - intended for users of the Mesa library.
|
||||||
|
Newbie questions are appropriate, but please try the general OpenGL
|
||||||
|
resources and Mesa documentation first.
|
||||||
|
</li>
|
||||||
|
<br>
|
||||||
|
<li><a href="https://lists.sourceforge.net/lists/listinfo/mesa3d-dev"
|
||||||
|
target="_parent">mesa3d-dev</a> - for discussion of Mesa development.
|
||||||
|
Not for beginners.
|
||||||
|
</li>
|
||||||
|
<br>
|
||||||
|
<li><a href="http://lists.freedesktop.org/mailman/listinfo/mesa-commit"
|
||||||
|
target="_parent">mesa-commit</a> - relays git check-in messages
|
||||||
|
(for developers).
|
||||||
|
<br>
|
||||||
|
Note: the old mesa3d-cvs list is no longer in use.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
<p>Archives of the old Mesa mailing list which was hosted by unicamp.br
|
<p>
|
||||||
are available <a href="http://groups.yahoo.com/group/mesa/messages/"
|
<b>Notice</b>: non-member posts to any of these lists will be automatically
|
||||||
target="_parent">here</a>.</p>
|
rejected.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<H1>OpenGL Forums</H1>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Here are some other OpenGL-related forums you might find useful:
|
Here are some other OpenGL-related forums you might find useful:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
|
||||||
Usenet newsgroups:
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>comp.graphics.algorithms
|
<li><a href="http://www.opengl.org/cgi-bin/ubb/ultimatebb.cgi"
|
||||||
<li>comp.graphics.api.opengl
|
target="_parent">OpenGL discussion forums</A> at www.opengl.org</li>
|
||||||
<li>comp.os.linux.x
|
<li>Usenet newsgroups:
|
||||||
|
<ul>
|
||||||
|
<li>comp.graphics.algorithms</li>
|
||||||
|
<li>comp.graphics.api.opengl</li>
|
||||||
|
<li>comp.os.linux.x</li>
|
||||||
|
</ul>
|
||||||
</ul>
|
</ul>
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<a href="http://www.opengl.org/" target="_parent">OpenGL discussion forums</A>
|
|
||||||
at www.opengl.org
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</HTML>
|
</HTML>
|
||||||
</BODY>
|
</BODY>
|
||||||
|
|||||||
@@ -11,6 +11,47 @@
|
|||||||
<H1>News</H1>
|
<H1>News</H1>
|
||||||
|
|
||||||
|
|
||||||
|
<h2>June 22, 2007</h2>
|
||||||
|
<p>
|
||||||
|
<a href="relnotes-7.0.html">Mesa 7.0</a> is released.
|
||||||
|
This is a stable release featuring OpenGL 2.1 support.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
<h2>April 27, 2007</h2>
|
||||||
|
<p>
|
||||||
|
<a href="relnotes-6.5.3.html">Mesa 6.5.3</a> is released.
|
||||||
|
This is a development release which will lead up to the Mesa 7.0 release
|
||||||
|
(which will advertise OpenGL 2.1 API support).
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
<h2>March 26, 2007</h2>
|
||||||
|
<p>
|
||||||
|
The new Shading Language compiler branch has been merged into the git
|
||||||
|
master branch. This is a step toward hardware support for the OpenGL
|
||||||
|
2.0 Shading Language and will be included in the next Mesa release.
|
||||||
|
In conjunction, <a href="http://glean.sf.net" target="_parent">Glean
|
||||||
|
</a> has been updated with a new test that does over 130 tests of the
|
||||||
|
shading language and built-in functions.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>April 2007</h2>
|
||||||
|
<p>
|
||||||
|
Thomas Hellström of
|
||||||
|
<a href="http://www.tungstengraphics.com" target="_parent">
|
||||||
|
Tungsten Graphics</a> has written a whitepaper describing the new
|
||||||
|
<a href="http://www.tungstengraphics.com/mm.pdf">DRI memory management
|
||||||
|
system</a>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>December 5, 2006</h2>
|
||||||
|
<p>
|
||||||
|
Mesa is now using git as its source code management system.
|
||||||
|
The previous CVS repository should no longer be used.
|
||||||
|
See the <a href="repository.html">repository page</a> for more information.
|
||||||
|
</p>
|
||||||
|
|
||||||
<h2>December 2, 2006</h2>
|
<h2>December 2, 2006</h2>
|
||||||
<p>
|
<p>
|
||||||
<a href="relnotes-6.5.2.html">Mesa 6.5.2</a> has been released.
|
<a href="relnotes-6.5.2.html">Mesa 6.5.2</a> has been released.
|
||||||
|
|||||||
@@ -18,7 +18,15 @@ but mostly consisting of bug fixes.
|
|||||||
|
|
||||||
<h2>MD5 checksums</h2>
|
<h2>MD5 checksums</h2>
|
||||||
<pre>
|
<pre>
|
||||||
TBD
|
11a033b078e090b3caaeb467234fe299 MesaLib-6.5.2.tar.gz
|
||||||
|
e4d894181f1859651658b3704633e10d MesaLib-6.5.2.tar.bz2
|
||||||
|
63bf1d444fa738cca52ce1043e284021 MesaLib-6.5.2.zip
|
||||||
|
2b8f1375d16bda5f5a2304174cd5bcf7 MesaDemos-6.5.2.tar.gz
|
||||||
|
e870efe98d3a50be01ab211b9b2e25d9 MesaDemos-6.5.2.tar.bz2
|
||||||
|
d92cc6f5fee5ca75af0be04f9f4908f0 MesaDemos-6.5.2.zip
|
||||||
|
8d4d77e3a7132f4217bbc7c1ab157030 MesaGLUT-6.5.2.tar.gz
|
||||||
|
e84edbb11c69c8e408dfadd2ed08e95b MesaGLUT-6.5.2.tar.bz2
|
||||||
|
c6d7134843ed5faf11f6686ecb5d2a2e MesaGLUT-6.5.2.zip
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
119
docs/relnotes-6.5.3.html
Normal file
119
docs/relnotes-6.5.3.html
Normal file
@@ -0,0 +1,119 @@
|
|||||||
|
<HTML>
|
||||||
|
|
||||||
|
<TITLE>Mesa Release Notes</TITLE>
|
||||||
|
|
||||||
|
<head><link rel="stylesheet" type="text/css" href="mesa.css"></head>
|
||||||
|
|
||||||
|
<BODY>
|
||||||
|
|
||||||
|
<body bgcolor="#eeeeee">
|
||||||
|
|
||||||
|
<H1>Mesa 6.5.3 Release Notes / April 27, 2007</H1>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Mesa 6.5.3 is a development release with many changes and new features.
|
||||||
|
Mesa 7.0 is expected to follow shortly.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
<h2>MD5 checksums</h2>
|
||||||
|
<pre>
|
||||||
|
39f33ea64e34e2d5b20640b008b57649 MesaLib-6.5.3.tar.gz
|
||||||
|
46359457147c469745f24b5074a186f0 MesaLib-6.5.3.tar.bz2
|
||||||
|
a8946fa861634ce15971396f47992c41 MesaLib-6.5.3.zip
|
||||||
|
08e26948d57eaca74d02a530b2d8106e MesaDemos-6.5.3.tar.gz
|
||||||
|
8af91773ab2653fe537499676b05f2e8 MesaDemos-6.5.3.tar.bz2
|
||||||
|
783f81b171bf89b0929abc894efd25a6 MesaDemos-6.5.3.zip
|
||||||
|
9467d415388fe1ad82991fb20704b812 MesaGLUT-6.5.3.tar.gz
|
||||||
|
360843e46b7ebb6909290b023f9b26fa MesaGLUT-6.5.3.tar.bz2
|
||||||
|
7686065e5c15a30de08a1610860b6840 MesaGLUT-6.5.3.zip
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
|
||||||
|
<h2>Shared library numbering</h2>
|
||||||
|
<p>
|
||||||
|
Mesa 6.5.3 supports the OpenGL 2.0/2.1 API. However, the (unix)
|
||||||
|
shared library version is still 1.5 (i.e. libGL.so.1.5.xxxxxx).
|
||||||
|
Bumping the shared library version to 2.x would cause linking problems
|
||||||
|
with existing OpenGL applications. Since OpenGL 2.x is backward
|
||||||
|
compatible with OpenGL 1.x the shared library version number doesn't
|
||||||
|
have to be incremented (which would indicate an incompatible ABI).
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Other OpenGL vendors name their OpenGL 2.x libraries libGL.so.1.0.xxxxx
|
||||||
|
for the same reason.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h2>New features</h2>
|
||||||
|
<ul>
|
||||||
|
<li>OpenGL 2.0 and 2.1 API support.
|
||||||
|
<li>Entirely new Shading Language code generator. See the
|
||||||
|
<a href="shading.html">Shading Language</a> page for more information.
|
||||||
|
<li>Much faster software execution of vertex, fragment shaders.
|
||||||
|
<li>New vertex buffer object (vbo) infrastructure
|
||||||
|
<li>Updated glext.h file (version 39)
|
||||||
|
<li>Updated glxext.h file (version 19)
|
||||||
|
<li>GL_MAX_DRAWBUFFERS is now 4 (software rendering) so
|
||||||
|
"multiple render targets" are really supported.
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2>Bug fixes</h2>
|
||||||
|
<ul>
|
||||||
|
<li>Fog was errantly applied when a fragment shader was enabled (bug 9346)
|
||||||
|
<li>glPush/PopClientAttrib didn't handle VBO bindings correctly (bug 9445)
|
||||||
|
<li>With 32-bit Z buffer, the fragment Z of lines and points was sometimes wrong.
|
||||||
|
<li>GL_POST_CONVOLUTION_ALPHA_BIAS/SCALE was broken.
|
||||||
|
<li>1D convolution state could effect 2D image transfers
|
||||||
|
<li>Overlapping glCopyPixels with negative Y zoom didn't work (bug 10521)
|
||||||
|
<li>Fixed a number of framebuffer/renderbuffer reference counting bugs
|
||||||
|
<li>Fixed a few bugs in software-emulated alpha planes
|
||||||
|
<li>Assorted minor bug fixes in glCopy/DrawPixels, glPixelZoom, etc.
|
||||||
|
<li>Assorted DRI driver bug fixes.
|
||||||
|
<li>Fixed a number of bugs that prevented "depth-peeling" rendering from working.
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h2>Internal code changes</h2>
|
||||||
|
<ul>
|
||||||
|
<li>Old array_cache module replaced by new vbo module. All geometry
|
||||||
|
rendering is now cast in the form of vertex buffer objects.
|
||||||
|
<li>Massive changes to the Shading Language compiler and related state.
|
||||||
|
<li>Vertex/fragment shaders are compiled into GPU instructions and
|
||||||
|
programs very similar to GL_ARB_vertex/fragment_program.
|
||||||
|
<li>Vertex and fragment programs are executed with the same code now.
|
||||||
|
<li>The SSE-optimized vertex program path has been removed since it didn't
|
||||||
|
support more than 12 temp registers, didn't support branching/looping, etc.
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h2>To Do (someday) items</h2>
|
||||||
|
<ul>
|
||||||
|
<li>Switch to freeglut
|
||||||
|
<li>Fix linux-glide target/driver.
|
||||||
|
<li>Improved lambda and derivative calculation for frag progs.
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h2>Driver Status</h2>
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
Driver Status
|
||||||
|
---------------------- ----------------------
|
||||||
|
DRI drivers varies with the driver
|
||||||
|
XMesa/GLX (on Xlib) implements OpenGL 2.1
|
||||||
|
OSMesa (off-screen) implements OpenGL 2.1
|
||||||
|
Windows/Win32 implements OpenGL 2.1
|
||||||
|
Glide (3dfx Voodoo1/2) implements OpenGL 1.3
|
||||||
|
SVGA unsupported
|
||||||
|
Wind River UGL unsupported
|
||||||
|
DJGPP unsupported
|
||||||
|
GGI unsupported
|
||||||
|
BeOS unsupported
|
||||||
|
Allegro unsupported
|
||||||
|
D3D unsupported
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
88
docs/relnotes-7.0.1.html
Normal file
88
docs/relnotes-7.0.1.html
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
<HTML>
|
||||||
|
|
||||||
|
<TITLE>Mesa Release Notes</TITLE>
|
||||||
|
|
||||||
|
<head><link rel="stylesheet" type="text/css" href="mesa.css"></head>
|
||||||
|
|
||||||
|
<BODY>
|
||||||
|
|
||||||
|
<body bgcolor="#eeeeee">
|
||||||
|
|
||||||
|
<H1>Mesa 7.0.1 Release Notes / (date), 2007</H1>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Mesa 7.0.1 is a stable release with bug fixes since version 7.0.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
<h2>MD5 checksums</h2>
|
||||||
|
<pre>
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
|
||||||
|
<h2>New features</h2>
|
||||||
|
<ul>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2>Bug fixes</h2>
|
||||||
|
<ul>
|
||||||
|
<li>Fixed some MingW build issues
|
||||||
|
<li>Added a few missing OpenGL 2.0 API entrypoints:
|
||||||
|
<ul>
|
||||||
|
<li>glVertexAttrib4bv
|
||||||
|
<li>glVertexAttrib4iv
|
||||||
|
<li>glVertexAttrib4ubv
|
||||||
|
<li>glVertexAttrib4uiv
|
||||||
|
<li>glVertexAttrib4usv
|
||||||
|
</ul>
|
||||||
|
<li>Fixed glDrawPixels(GL_STENCIL_INDEX) pixel transfer bug 11457
|
||||||
|
<li>GLSL bug fix: added vec2(vec4) constructor
|
||||||
|
<li>GLSL bug fix: .strq and .rgba writemasks didn't always work
|
||||||
|
<li>Stencil pixel map didn't always work for glDrawPixels (bug 11475)
|
||||||
|
<li>Fixed polygon stipple bug in i915 driver
|
||||||
|
<li>Binding a zero-sized texture didn't disable texturing (bug 11309)
|
||||||
|
<li>Queries of GL_INFO_LOG_LENGTH, GL_SHADER_SOURCE_LENGTH didn't include
|
||||||
|
the terminating zero (bug 11588)
|
||||||
|
<li>glXChooseFBConfig() in Xlib driver didn't handle GLX_STEREO flag properly
|
||||||
|
<li>Fixed a GLSL function call bug (#11731)
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h2>Change</h2>
|
||||||
|
<ul>
|
||||||
|
<li>The libOSMesa library version has been reverted to 6.5.3 (soname=6)
|
||||||
|
in order to avoid application linking issues. Otherwise, applications
|
||||||
|
previously linked with libOSMesa.so.6 would no longer link with libOSMesa.so.7
|
||||||
|
<li>Dropped obsolete, unmaintained Windows project files for VC6 and VC7.
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h2>To Do (someday) items</h2>
|
||||||
|
<ul>
|
||||||
|
<li>Switch to freeglut
|
||||||
|
<li>Fix linux-glide target/driver.
|
||||||
|
<li>Improved lambda and derivative calculation for frag progs.
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h2>Driver Status</h2>
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
Driver Status
|
||||||
|
---------------------- ----------------------
|
||||||
|
DRI drivers varies with the driver
|
||||||
|
XMesa/GLX (on Xlib) implements OpenGL 2.1
|
||||||
|
OSMesa (off-screen) implements OpenGL 2.1
|
||||||
|
Windows/Win32 implements OpenGL 2.1
|
||||||
|
Glide (3dfx Voodoo1/2) implements OpenGL 1.3
|
||||||
|
SVGA unsupported
|
||||||
|
Wind River UGL unsupported
|
||||||
|
DJGPP unsupported
|
||||||
|
GGI unsupported
|
||||||
|
BeOS unsupported
|
||||||
|
Allegro unsupported
|
||||||
|
D3D unsupported
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
93
docs/relnotes-7.0.html
Normal file
93
docs/relnotes-7.0.html
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
<HTML>
|
||||||
|
|
||||||
|
<TITLE>Mesa Release Notes</TITLE>
|
||||||
|
|
||||||
|
<head><link rel="stylesheet" type="text/css" href="mesa.css"></head>
|
||||||
|
|
||||||
|
<BODY>
|
||||||
|
|
||||||
|
<body bgcolor="#eeeeee">
|
||||||
|
|
||||||
|
<H1>Mesa 7.0 Release Notes / June 22, 2007</H1>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Mesa 7.0 is a stable release, featuring OpenGL 2.1 API support.
|
||||||
|
A number of bugs have been fixed since the 6.5.3 release.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
<h2>MD5 checksums</h2>
|
||||||
|
<pre>
|
||||||
|
35a1698986f7ac8dc435624ee9256cda MesaLib-7.0.tar.gz
|
||||||
|
50c371455fa7532c04aa0a970f9bc51f MesaLib-7.0.tar.bz2
|
||||||
|
bcedb6f43c97c1bc49e5cc7f12835722 MesaLib-7.0.zip
|
||||||
|
9bad332c7b74f59be96556135212ca9e MesaDemos-7.0.tar.gz
|
||||||
|
fada2bc1f29da513e015fda1e3abd0c0 MesaDemos-7.0.tar.bz2
|
||||||
|
84e3bbe470d983ae32f1f0c779faf99e MesaDemos-7.0.zip
|
||||||
|
76c7bb54f9850c689eba844f6daed332 MesaGLUT-7.0.tar.gz
|
||||||
|
4af28296e02772ef1de00e4e79bf3d12 MesaGLUT-7.0.tar.bz2
|
||||||
|
9043cb0b54cc03d1874728d74b12188c MesaGLUT-7.0.zip
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
|
||||||
|
<h2>New features</h2>
|
||||||
|
<ul>
|
||||||
|
<li>OpenGL 2.0 and 2.1 API support.
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2>Bug fixes</h2>
|
||||||
|
<ul>
|
||||||
|
<li>Fixed a few fog-related bugs.
|
||||||
|
<li>Fixed broken GLSL mix() function.
|
||||||
|
<li>Fixed broken GLSL exp() functions.
|
||||||
|
<li>Fixed GLSL mod4(vec4, vec4) bug.
|
||||||
|
<li>Implemented GLSL asin(), acos(), atan() functions.
|
||||||
|
<li>Fixed an R300 driver bug that caused Xorg composite manager to crash
|
||||||
|
<li>Fixed R300 vertex program/matrix bug (10848)
|
||||||
|
<li>GLSL dFdx() and dFdy() work for fragment program inputs now (texcoords)
|
||||||
|
<li>Specifying an invalid texture unit as a sampler could lead to a crash
|
||||||
|
<li>The GLX protocol request for glXDestroyPBuffer() was incorrect (bug 10983)
|
||||||
|
<li>ARB vp state.light[n].half value was incorrect (bug 10987)
|
||||||
|
<li>Fixed a positional light source bug (bug 11009)
|
||||||
|
<li>Fixed point size attenuation problem (bug 11042)
|
||||||
|
<li>glPopAttrib didn't restore texture object's LOD bias (bug 11049)
|
||||||
|
<li>Fixed a TLS / TEXTREL problem (bug 7459)
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h2>Internal code changes</h2>
|
||||||
|
<ul>
|
||||||
|
<li>Some texture code consolidation and simplifiction (Ian Romanick)
|
||||||
|
<li>R300 driver clean-ups.
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h2>To Do (someday) items</h2>
|
||||||
|
<ul>
|
||||||
|
<li>Switch to freeglut
|
||||||
|
<li>Fix linux-glide target/driver.
|
||||||
|
<li>Improved lambda and derivative calculation for frag progs.
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h2>Driver Status</h2>
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
Driver Status
|
||||||
|
---------------------- ----------------------
|
||||||
|
DRI drivers varies with the driver
|
||||||
|
XMesa/GLX (on Xlib) implements OpenGL 2.1
|
||||||
|
OSMesa (off-screen) implements OpenGL 2.1
|
||||||
|
Windows/Win32 implements OpenGL 2.1
|
||||||
|
Glide (3dfx Voodoo1/2) implements OpenGL 1.3
|
||||||
|
SVGA unsupported
|
||||||
|
Wind River UGL unsupported
|
||||||
|
DJGPP unsupported
|
||||||
|
GGI unsupported
|
||||||
|
BeOS unsupported
|
||||||
|
Allegro unsupported
|
||||||
|
D3D unsupported
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -20,6 +20,9 @@ The release notes summarize what's new or changed in each Mesa release.
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<UL>
|
<UL>
|
||||||
|
<LI><A HREF="relnotes-7.0.1.html">7.0.1 release notes</A>
|
||||||
|
<LI><A HREF="relnotes-7.0.html">7.0 release notes</A>
|
||||||
|
<LI><A HREF="relnotes-6.5.3.html">6.5.3 release notes</A>
|
||||||
<LI><A HREF="relnotes-6.5.2.html">6.5.2 release notes</A>
|
<LI><A HREF="relnotes-6.5.2.html">6.5.2 release notes</A>
|
||||||
<LI><A HREF="relnotes-6.5.1.html">6.5.1 release notes</A>
|
<LI><A HREF="relnotes-6.5.1.html">6.5.1 release notes</A>
|
||||||
<LI><A HREF="relnotes-6.5.html">6.5 release notes</A>
|
<LI><A HREF="relnotes-6.5.html">6.5 release notes</A>
|
||||||
|
|||||||
111
docs/repository.html
Normal file
111
docs/repository.html
Normal file
@@ -0,0 +1,111 @@
|
|||||||
|
<HTML>
|
||||||
|
|
||||||
|
<TITLE>Cocd Repository</TITLE>
|
||||||
|
|
||||||
|
<link rel="stylesheet" type="text/css" href="mesa.css"></head>
|
||||||
|
|
||||||
|
<BODY>
|
||||||
|
|
||||||
|
<h1>Code Repository</h1>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
As of December 5, 2006, Mesa is using
|
||||||
|
<a href="http://git.or.cz/"target="_parent">git</a>
|
||||||
|
as its source code management system.
|
||||||
|
CVS was used previously.
|
||||||
|
The old CVS repository should no longer be used.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
The master git repository is hosted on
|
||||||
|
<a href="http://www.freedesktop.org" target="_parent">freedesktop.org</a>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
You may access the repository either as an
|
||||||
|
<a href="#anonymous">anonymous user</a> (read-only) or as a
|
||||||
|
<a href="#developer">developer</a>
|
||||||
|
(read/write).
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
You may also
|
||||||
|
<a href="http://gitweb.freedesktop.org/?p=mesa/mesa.git"
|
||||||
|
target="_parent">browse the git repository</a>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
<a name="anonymous">
|
||||||
|
<H2>Anonymous git Access</H2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
To get the Mesa sources anonymously (read-only):
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ol>
|
||||||
|
<li>Install the git software on your computer if needed.<br><br>
|
||||||
|
<li>Get an initial, local copy of the repository with:
|
||||||
|
<pre>
|
||||||
|
git clone git://anongit.freedesktop.org/git/mesa/mesa
|
||||||
|
</pre>
|
||||||
|
<li>Later, you can update your tree from the master repository with:
|
||||||
|
<pre>
|
||||||
|
git pull origin
|
||||||
|
</pre>
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
|
||||||
|
<a name="developer">
|
||||||
|
<H2>Developer git Access</H2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Mesa developers need to first have an account on
|
||||||
|
<a href="http://www.freedesktop.org" target="_parent">freedesktop.org</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>
|
||||||
|
Once your account is established:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ol>
|
||||||
|
<li>Install the git software on your computer if needed.<br><br>
|
||||||
|
<li>Get an initial, local copy of the repository with:
|
||||||
|
<pre>
|
||||||
|
git clone git+ssh://username@git.freedesktop.org/git/mesa/mesa
|
||||||
|
</pre>
|
||||||
|
Replace <em>username</em> with your actual login name.<br><br>
|
||||||
|
<li>Later, you can update your tree from the master repository with:
|
||||||
|
<pre>
|
||||||
|
git pull origin
|
||||||
|
</pre>
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
|
||||||
|
<a name="developer">
|
||||||
|
<H2>Development Branches</H2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
At any given time, there may be several active branches in Mesa's
|
||||||
|
repository.
|
||||||
|
Generally, the trunk contains the latest development (unstable)
|
||||||
|
code while a branch has the latest stable code.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
The command <code>git-branch</code> will list all available branches.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Questions about branch status/activity should be posted to the
|
||||||
|
mesa3d-dev mailing list.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
||||||
|
|
||||||
312
docs/shading.html
Normal file
312
docs/shading.html
Normal file
@@ -0,0 +1,312 @@
|
|||||||
|
<HTML>
|
||||||
|
|
||||||
|
<TITLE>Shading Language Support</TITLE>
|
||||||
|
|
||||||
|
<link rel="stylesheet" type="text/css" href="mesa.css"></head>
|
||||||
|
|
||||||
|
<BODY>
|
||||||
|
|
||||||
|
<H1>Shading Language Support</H1>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
This page describes the features and status of Mesa's support for the
|
||||||
|
<a href="http://opengl.org/documentation/glsl/" target="_parent">
|
||||||
|
OpenGL Shading Language</a>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Last updated on 28 March 2007.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Contents
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li><a href="#unsup">Unsupported Features</a>
|
||||||
|
<li><a href="#notes">Implementation Notes</a>
|
||||||
|
<li><a href="#hints">Programming Hints</a>
|
||||||
|
<li><a href="#standalone">Stand-alone Compiler</a>
|
||||||
|
<li><a href="#implementation">Compiler Implementation</a>
|
||||||
|
<li><a href="#validation">Compiler Validation</a>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<a name="unsup">
|
||||||
|
<h2>Unsupported Features</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
The following features of the shading language are not yet supported
|
||||||
|
in Mesa:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>Dereferencing arrays with non-constant indexes
|
||||||
|
<li>Comparison of user-defined structs
|
||||||
|
<li>Linking of multiple shaders is not supported
|
||||||
|
<li>gl_ClipVertex
|
||||||
|
<li>The derivative functions such as dFdx() are not implemented
|
||||||
|
<li>The inverse trig functions asin(), acos(), and atan() are not implemented
|
||||||
|
<li>The gl_Color and gl_SecondaryColor varying vars are interpolated
|
||||||
|
without perspective correction
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
All other major features of the shading language should function.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
<a name="notes">
|
||||||
|
<h2>Implementation Notes</h2>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>Shading language programs are compiled into low-level programs
|
||||||
|
very similar to those of GL_ARB_vertex/fragment_program.
|
||||||
|
<li>All vector types (vec2, vec3, vec4, bvec2, etc) currently occupy full
|
||||||
|
float[4] registers.
|
||||||
|
<li>Float constants and variables are packed so that up to four floats
|
||||||
|
can occupy one program parameter/register.
|
||||||
|
<li>All function calls are inlined.
|
||||||
|
<li>Shaders which use too many registers will not compile.
|
||||||
|
<li>The quality of generated code is pretty good, register usage is fair.
|
||||||
|
<li>Shader error detection and reporting of errors (InfoLog) is not
|
||||||
|
very good yet.
|
||||||
|
<li>The ftransform() function doesn't necessarily match the results of
|
||||||
|
fixed-function transformation.
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
These issues will be addressed/resolved in the future.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
<a name="hints">
|
||||||
|
<h2>Programming Hints</h2>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>Declare <em>in</em> function parameters as <em>const</em> whenever possible.
|
||||||
|
This improves the efficiency of function inlining.
|
||||||
|
</li>
|
||||||
|
<br>
|
||||||
|
<li>To reduce register usage, declare variables within smaller scopes.
|
||||||
|
For example, the following code:
|
||||||
|
<pre>
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
vec4 a1, a2, b1, b2;
|
||||||
|
gl_Position = expression using a1, a2.
|
||||||
|
gl_Color = expression using b1, b2;
|
||||||
|
}
|
||||||
|
</pre>
|
||||||
|
Can be rewritten as follows to use half as many registers:
|
||||||
|
<pre>
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
{
|
||||||
|
vec4 a1, a2;
|
||||||
|
gl_Position = expression using a1, a2.
|
||||||
|
}
|
||||||
|
{
|
||||||
|
vec4 b1, b2;
|
||||||
|
gl_Color = expression using b1, b2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</pre>
|
||||||
|
Alternately, rather than using several float variables, use
|
||||||
|
a vec4 instead. Use swizzling and writemasks to access the
|
||||||
|
components of the vec4 as floats.
|
||||||
|
</li>
|
||||||
|
<br>
|
||||||
|
<li>Use the built-in library functions whenever possible.
|
||||||
|
For example, instead of writing this:
|
||||||
|
<pre>
|
||||||
|
float x = 1.0 / sqrt(y);
|
||||||
|
</pre>
|
||||||
|
Write this:
|
||||||
|
<pre>
|
||||||
|
float x = inversesqrt(y);
|
||||||
|
</pre>
|
||||||
|
<li>
|
||||||
|
Use ++i when possible as it's more efficient than i++
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<a name="standalone">
|
||||||
|
<h2>Stand-alone Compiler</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
A unique stand-alone GLSL compiler driver has been added to Mesa.
|
||||||
|
<p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
The stand-alone compiler (like a conventional command-line compiler)
|
||||||
|
is a tool that accepts Shading Language programs and emits low-level
|
||||||
|
GPU programs.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
This tool is useful for:
|
||||||
|
<p>
|
||||||
|
<ul>
|
||||||
|
<li>Inspecting GPU code to gain insight into compilation
|
||||||
|
<li>Generating initial GPU code for subsequent hand-tuning
|
||||||
|
<li>Debugging the GLSL compiler itself
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
To build the glslcompiler program (this will be improved someday):
|
||||||
|
</p>
|
||||||
|
<pre>
|
||||||
|
cd src/mesa
|
||||||
|
make libmesa.a
|
||||||
|
cd drivers/glslcompiler
|
||||||
|
make
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Here's an example of using the compiler to compile a vertex shader and
|
||||||
|
emit GL_ARB_vertex_program-style instructions:
|
||||||
|
</p>
|
||||||
|
<pre>
|
||||||
|
glslcompiler --arb --linenumbers --vs vertshader.txt
|
||||||
|
</pre>
|
||||||
|
<p>
|
||||||
|
The output may look similar to this:
|
||||||
|
</p>
|
||||||
|
<pre>
|
||||||
|
!!ARBvp1.0
|
||||||
|
0: MOV result.texcoord[0], vertex.texcoord[0];
|
||||||
|
1: DP4 temp0.x, state.matrix.mvp.row[0], vertex.position;
|
||||||
|
2: DP4 temp0.y, state.matrix.mvp.row[1], vertex.position;
|
||||||
|
3: DP4 temp0.z, state.matrix.mvp.row[2], vertex.position;
|
||||||
|
4: DP4 temp0.w, state.matrix.mvp.row[3], vertex.position;
|
||||||
|
5: MOV result.position, temp0;
|
||||||
|
6: END
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Note that some shading language constructs (such as uniform and varying
|
||||||
|
variables) aren't expressible in ARB or NV-style programs.
|
||||||
|
Therefore, the resulting output is not always legal by definition of
|
||||||
|
those program languages.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Also note that this compiler driver is still under development.
|
||||||
|
Over time, the correctness of the GPU programs, with respect to the ARB
|
||||||
|
and NV languagues, should improve.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="implementation">
|
||||||
|
<h2>Compiler Implementation</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
The source code for Mesa's shading language compiler is in the
|
||||||
|
<code>src/mesa/shader/slang/</code> directory.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
The compiler follows a fairly standard design and basically works as follows:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>The input string is tokenized (see grammar.c) and parsed
|
||||||
|
(see slang_compiler_*.c) to produce an Abstract Syntax Tree (AST).
|
||||||
|
The nodes in this tree are slang_operation structures
|
||||||
|
(see slang_compile_operation.h).
|
||||||
|
The nodes are decorated with symbol table, scoping and datatype information.
|
||||||
|
<li>The AST is converted into an Intermediate representation (IR) tree
|
||||||
|
(see the slang_codegen.c file).
|
||||||
|
The IR nodes represent basic GPU instructions, like add, dot product,
|
||||||
|
move, etc.
|
||||||
|
The IR tree is mostly a binary tree, but a few nodes have three or four
|
||||||
|
children.
|
||||||
|
In principle, the IR tree could be executed by doing an in-order traversal.
|
||||||
|
<li>The IR tree is traversed in-order to emit code (see slang_emit.c).
|
||||||
|
This is also when registers are allocated to store variables and temps.
|
||||||
|
<li>In the future, a pattern-matching code generator-generator may be
|
||||||
|
used for code generation.
|
||||||
|
Programs such as L-BURG (Bottom-Up Rewrite Generator) and Twig look for
|
||||||
|
patterns in IR trees, compute weights for subtrees and use the weights
|
||||||
|
to select the best instructions to represent the sub-tree.
|
||||||
|
<li>The emitted GPU instructions (see prog_instruction.h) are stored in a
|
||||||
|
gl_program object (see mtypes.h).
|
||||||
|
<li>When a fragment shader and vertex shader are linked (see slang_link.c)
|
||||||
|
the varying vars are matched up, uniforms are merged, and vertex
|
||||||
|
attributes are resolved (rewriting instructions as needed).
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
The final vertex and fragment programs may be interpreted in software
|
||||||
|
(see prog_execute.c) or translated into a specific hardware architecture
|
||||||
|
(see drivers/dri/i915/i915_fragprog.c for example).
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3>Code Generation Options</h3>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Internally, there are several options that control the compiler's code
|
||||||
|
generation and instruction selection.
|
||||||
|
These options are seen in the gl_shader_state struct and may be set
|
||||||
|
by the device driver to indicate its preferences:
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
struct gl_shader_state
|
||||||
|
{
|
||||||
|
...
|
||||||
|
/** Driver-selectable options: */
|
||||||
|
GLboolean EmitHighLevelInstructions;
|
||||||
|
GLboolean EmitCondCodes;
|
||||||
|
GLboolean EmitComments;
|
||||||
|
};
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>EmitHighLevelInstructions
|
||||||
|
<br>
|
||||||
|
This option controls instruction selection for loops and conditionals.
|
||||||
|
If the option is set high-level IF/ELSE/ENDIF, LOOP/ENDLOOP, CONT/BRK
|
||||||
|
instructions will be emitted.
|
||||||
|
Otherwise, those constructs will be implemented with BRA instructions.
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>EmitCondCodes
|
||||||
|
<br>
|
||||||
|
If set, condition codes (ala GL_NV_fragment_program) will be used for
|
||||||
|
branching and looping.
|
||||||
|
Otherwise, ordinary registers will be used (the IF instruction will
|
||||||
|
examine the first operand's X component and do the if-part if non-zero).
|
||||||
|
This option is only relevant if EmitHighLevelInstructions is set.
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>EmitComments
|
||||||
|
<br>
|
||||||
|
If set, instructions will be annoted with comments to help with debugging.
|
||||||
|
Extra NOP instructions will also be inserted.
|
||||||
|
</br>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<a name="validation">
|
||||||
|
<h2>Compiler Validation</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
A new <a href="http://glean.sf.net" target="_parent">Glean</a> test has
|
||||||
|
been create to exercise the GLSL compiler.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
The <em>glsl1</em> test runs over 150 sub-tests to check that the language
|
||||||
|
features and built-in functions work properly.
|
||||||
|
This test should be run frequently while working on the compiler to catch
|
||||||
|
regressions.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
The test coverage is reasonably broad and complete but additional tests
|
||||||
|
should be added.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
</BODY>
|
||||||
|
</HTML>
|
||||||
@@ -1,17 +1,18 @@
|
|||||||
<HTML>
|
<HTML>
|
||||||
|
|
||||||
<TITLE>Mesa Subset</TITLE>
|
<TITLE>Mesa Subset Driver</TITLE>
|
||||||
|
|
||||||
<link rel="stylesheet" type="text/css" href="mesa.css"></head>
|
<link rel="stylesheet" type="text/css" href="mesa.css"></head>
|
||||||
|
|
||||||
<BODY>
|
<BODY>
|
||||||
|
|
||||||
<H1>Mesa Subset</H1>
|
<H1>Mesa Subset Driver</H1>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
In 2002/2003 Tungsten Graphics was contracted to develop a subset Mesa/Radeon
|
In 2002/2003 Tungsten Graphics was contracted to develop a subset Mesa/Radeon
|
||||||
driver for an embedded environment. The result is a reduced-size DRI driver
|
driver for an embedded environment. The result is a reduced-size DRI driver
|
||||||
for the ATI R200 chip, for use with Linux fbdev rather than XFree86.
|
for the ATI R200 chip, for use with
|
||||||
|
<a href="fbdev-dri.html">fbdev/DRI environment</a>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
@@ -19,15 +20,5 @@ The specification for this subset can be found
|
|||||||
<a href="subset-A.html">here</a>.
|
<a href="subset-A.html">here</a>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
|
||||||
The <a href="MiniGLX.html">MiniGLX specification</a> describes the
|
|
||||||
interface between fbdev and Mesa.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
More info to come...
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
</BODY>
|
</BODY>
|
||||||
</HTML>
|
</HTML>
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ WIDTH="88" HEIGHT="31" ALIGN="BOTTOM" ALT="Sourceforge.net" BORDER="0"></A>
|
|||||||
<br>
|
<br>
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
<li>The Mesa CVS repository is hosted by
|
<li>The Mesa git repository is hosted by
|
||||||
<a href="http://freedesktop.org/" target="_parent">freedesktop.org</a>.
|
<a href="http://freedesktop.org/" target="_parent">freedesktop.org</a>.
|
||||||
<br>
|
<br>
|
||||||
<br>
|
<br>
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
/*
|
/*
|
||||||
* Mesa 3-D graphics library
|
* Mesa 3-D graphics library
|
||||||
* Version: 6.5.1
|
* Version: 7.0
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999-2006 Brian Paul All Rights Reserved.
|
* Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
* copy of this software and associated documentation files (the "Software"),
|
||||||
@@ -84,7 +84,8 @@
|
|||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(_WIN32) && !defined(_WINGDI_) && !defined(_GNU_H_WINDOWS32_DEFINES) && !defined(OPENSTEP) && !defined(__CYGWIN__)
|
#if defined(_WIN32) && !defined(_WINGDI_) && !defined(_GNU_H_WINDOWS32_DEFINES) \
|
||||||
|
&& !defined(OPENSTEP) && !defined(__CYGWIN__) || defined(__MINGW32__)
|
||||||
#include <GL/mesa_wgl.h>
|
#include <GL/mesa_wgl.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -2161,11 +2162,11 @@ typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLsh
|
|||||||
#define GL_DEBUG_PRINT_MESA 0x875A
|
#define GL_DEBUG_PRINT_MESA 0x875A
|
||||||
#define GL_DEBUG_ASSERT_MESA 0x875B
|
#define GL_DEBUG_ASSERT_MESA 0x875B
|
||||||
|
|
||||||
GLAPI GLhandleARB APIENTRY glCreateDebugObjectMESA (void);
|
GLAPI GLhandleARB GLAPIENTRY glCreateDebugObjectMESA (void);
|
||||||
GLAPI void APIENTRY glClearDebugLogMESA (GLhandleARB obj, GLenum logType, GLenum shaderType);
|
GLAPI void GLAPIENTRY glClearDebugLogMESA (GLhandleARB obj, GLenum logType, GLenum shaderType);
|
||||||
GLAPI void APIENTRY glGetDebugLogMESA (GLhandleARB obj, GLenum logType, GLenum shaderType, GLsizei maxLength,
|
GLAPI void GLAPIENTRY glGetDebugLogMESA (GLhandleARB obj, GLenum logType, GLenum shaderType, GLsizei maxLength,
|
||||||
GLsizei *length, GLcharARB *debugLog);
|
GLsizei *length, GLcharARB *debugLog);
|
||||||
GLAPI GLsizei APIENTRY glGetDebugLogLengthMESA (GLhandleARB obj, GLenum logType, GLenum shaderType);
|
GLAPI GLsizei GLAPIENTRY glGetDebugLogLengthMESA (GLhandleARB obj, GLenum logType, GLenum shaderType);
|
||||||
|
|
||||||
#endif /* GL_MESA_shader_debug */
|
#endif /* GL_MESA_shader_debug */
|
||||||
|
|
||||||
|
|||||||
@@ -27,16 +27,13 @@
|
|||||||
#define MANGLE(x) mgl##x
|
#define MANGLE(x) mgl##x
|
||||||
#endif /*MANGLE*/
|
#endif /*MANGLE*/
|
||||||
|
|
||||||
/* Internal symbols which may collide with other OpenGL implementations. */
|
|
||||||
#define __glCoreCreateContext __mglCoreCreateContext
|
|
||||||
#define __glCoreNopDispatch __mglCoreNopDispatch
|
|
||||||
|
|
||||||
/*REGENERATE_TO_END-----------ALL LINES BELOW HERE GET REPLACED ON REGENERATION */
|
/*REGENERATE_TO_END-----------ALL LINES BELOW HERE GET REPLACED ON REGENERATION */
|
||||||
|
|
||||||
#define glAccum MANGLE(Accum)
|
#define glAccum MANGLE(Accum)
|
||||||
#define glActiveStencilFaceEXT MANGLE(ActiveStencilFaceEXT)
|
#define glActiveStencilFaceEXT MANGLE(ActiveStencilFaceEXT)
|
||||||
#define glActiveTextureARB MANGLE(ActiveTextureARB)
|
#define glActiveTextureARB MANGLE(ActiveTextureARB)
|
||||||
#define glActiveTexture MANGLE(ActiveTexture)
|
#define glActiveTexture MANGLE(ActiveTexture)
|
||||||
|
#define glActiveVaryingNV MANGLE(ActiveVaryingNV)
|
||||||
#define glAlphaFragmentOp1ATI MANGLE(AlphaFragmentOp1ATI)
|
#define glAlphaFragmentOp1ATI MANGLE(AlphaFragmentOp1ATI)
|
||||||
#define glAlphaFragmentOp2ATI MANGLE(AlphaFragmentOp2ATI)
|
#define glAlphaFragmentOp2ATI MANGLE(AlphaFragmentOp2ATI)
|
||||||
#define glAlphaFragmentOp3ATI MANGLE(AlphaFragmentOp3ATI)
|
#define glAlphaFragmentOp3ATI MANGLE(AlphaFragmentOp3ATI)
|
||||||
@@ -56,11 +53,16 @@
|
|||||||
#define glBeginOcclusionQueryNV MANGLE(BeginOcclusionQueryNV)
|
#define glBeginOcclusionQueryNV MANGLE(BeginOcclusionQueryNV)
|
||||||
#define glBeginQueryARB MANGLE(BeginQueryARB)
|
#define glBeginQueryARB MANGLE(BeginQueryARB)
|
||||||
#define glBeginQuery MANGLE(BeginQuery)
|
#define glBeginQuery MANGLE(BeginQuery)
|
||||||
|
#define glBeginTransformFeedbackNV MANGLE(BeginTransformFeedbackNV)
|
||||||
#define glBeginVertexShaderEXT MANGLE(BeginVertexShaderEXT)
|
#define glBeginVertexShaderEXT MANGLE(BeginVertexShaderEXT)
|
||||||
#define glBindAttribLocationARB MANGLE(BindAttribLocationARB)
|
#define glBindAttribLocationARB MANGLE(BindAttribLocationARB)
|
||||||
#define glBindAttribLocation MANGLE(BindAttribLocation)
|
#define glBindAttribLocation MANGLE(BindAttribLocation)
|
||||||
#define glBindBufferARB MANGLE(BindBufferARB)
|
#define glBindBufferARB MANGLE(BindBufferARB)
|
||||||
|
#define glBindBufferBaseNV MANGLE(BindBufferBaseNV)
|
||||||
#define glBindBuffer MANGLE(BindBuffer)
|
#define glBindBuffer MANGLE(BindBuffer)
|
||||||
|
#define glBindBufferOffsetNV MANGLE(BindBufferOffsetNV)
|
||||||
|
#define glBindBufferRangeNV MANGLE(BindBufferRangeNV)
|
||||||
|
#define glBindFragDataLocationEXT MANGLE(BindFragDataLocationEXT)
|
||||||
#define glBindFragmentShaderATI MANGLE(BindFragmentShaderATI)
|
#define glBindFragmentShaderATI MANGLE(BindFragmentShaderATI)
|
||||||
#define glBindFramebufferEXT MANGLE(BindFramebufferEXT)
|
#define glBindFramebufferEXT MANGLE(BindFramebufferEXT)
|
||||||
#define glBindLightParameterEXT MANGLE(BindLightParameterEXT)
|
#define glBindLightParameterEXT MANGLE(BindLightParameterEXT)
|
||||||
@@ -101,6 +103,7 @@
|
|||||||
#define glBlitFramebufferEXT MANGLE(BlitFramebufferEXT)
|
#define glBlitFramebufferEXT MANGLE(BlitFramebufferEXT)
|
||||||
#define glBufferDataARB MANGLE(BufferDataARB)
|
#define glBufferDataARB MANGLE(BufferDataARB)
|
||||||
#define glBufferData MANGLE(BufferData)
|
#define glBufferData MANGLE(BufferData)
|
||||||
|
#define glBufferParameteriAPPLE MANGLE(BufferParameteriAPPLE)
|
||||||
#define glBufferSubDataARB MANGLE(BufferSubDataARB)
|
#define glBufferSubDataARB MANGLE(BufferSubDataARB)
|
||||||
#define glBufferSubData MANGLE(BufferSubData)
|
#define glBufferSubData MANGLE(BufferSubData)
|
||||||
#define glCallList MANGLE(CallList)
|
#define glCallList MANGLE(CallList)
|
||||||
@@ -108,8 +111,11 @@
|
|||||||
#define glCheckFramebufferStatusEXT MANGLE(CheckFramebufferStatusEXT)
|
#define glCheckFramebufferStatusEXT MANGLE(CheckFramebufferStatusEXT)
|
||||||
#define glClampColorARB MANGLE(ClampColorARB)
|
#define glClampColorARB MANGLE(ClampColorARB)
|
||||||
#define glClearAccum MANGLE(ClearAccum)
|
#define glClearAccum MANGLE(ClearAccum)
|
||||||
|
#define glClearColorIiEXT MANGLE(ClearColorIiEXT)
|
||||||
|
#define glClearColorIuiEXT MANGLE(ClearColorIuiEXT)
|
||||||
#define glClearColor MANGLE(ClearColor)
|
#define glClearColor MANGLE(ClearColor)
|
||||||
#define glClearDebugLogMESA MANGLE(ClearDebugLogMESA)
|
#define glClearDebugLogMESA MANGLE(ClearDebugLogMESA)
|
||||||
|
#define glClearDepthdNV MANGLE(ClearDepthdNV)
|
||||||
#define glClearDepth MANGLE(ClearDepth)
|
#define glClearDepth MANGLE(ClearDepth)
|
||||||
#define glClearIndex MANGLE(ClearIndex)
|
#define glClearIndex MANGLE(ClearIndex)
|
||||||
#define glClear MANGLE(Clear)
|
#define glClear MANGLE(Clear)
|
||||||
@@ -165,6 +171,7 @@
|
|||||||
#define glColorFragmentOp1ATI MANGLE(ColorFragmentOp1ATI)
|
#define glColorFragmentOp1ATI MANGLE(ColorFragmentOp1ATI)
|
||||||
#define glColorFragmentOp2ATI MANGLE(ColorFragmentOp2ATI)
|
#define glColorFragmentOp2ATI MANGLE(ColorFragmentOp2ATI)
|
||||||
#define glColorFragmentOp3ATI MANGLE(ColorFragmentOp3ATI)
|
#define glColorFragmentOp3ATI MANGLE(ColorFragmentOp3ATI)
|
||||||
|
#define glColorMaskIndexedEXT MANGLE(ColorMaskIndexedEXT)
|
||||||
#define glColorMask MANGLE(ColorMask)
|
#define glColorMask MANGLE(ColorMask)
|
||||||
#define glColorMaterial MANGLE(ColorMaterial)
|
#define glColorMaterial MANGLE(ColorMaterial)
|
||||||
#define glColorPointerEXT MANGLE(ColorPointerEXT)
|
#define glColorPointerEXT MANGLE(ColorPointerEXT)
|
||||||
@@ -265,19 +272,23 @@
|
|||||||
#define glDeleteTextures MANGLE(DeleteTextures)
|
#define glDeleteTextures MANGLE(DeleteTextures)
|
||||||
#define glDeleteVertexArraysAPPLE MANGLE(DeleteVertexArraysAPPLE)
|
#define glDeleteVertexArraysAPPLE MANGLE(DeleteVertexArraysAPPLE)
|
||||||
#define glDeleteVertexShaderEXT MANGLE(DeleteVertexShaderEXT)
|
#define glDeleteVertexShaderEXT MANGLE(DeleteVertexShaderEXT)
|
||||||
|
#define glDepthBoundsdNV MANGLE(DepthBoundsdNV)
|
||||||
#define glDepthBoundsEXT MANGLE(DepthBoundsEXT)
|
#define glDepthBoundsEXT MANGLE(DepthBoundsEXT)
|
||||||
#define glDepthFunc MANGLE(DepthFunc)
|
#define glDepthFunc MANGLE(DepthFunc)
|
||||||
#define glDepthMask MANGLE(DepthMask)
|
#define glDepthMask MANGLE(DepthMask)
|
||||||
|
#define glDepthRangedNV MANGLE(DepthRangedNV)
|
||||||
#define glDepthRange MANGLE(DepthRange)
|
#define glDepthRange MANGLE(DepthRange)
|
||||||
#define glDetachObjectARB MANGLE(DetachObjectARB)
|
#define glDetachObjectARB MANGLE(DetachObjectARB)
|
||||||
#define glDetachShader MANGLE(DetachShader)
|
#define glDetachShader MANGLE(DetachShader)
|
||||||
#define glDetailTexFuncSGIS MANGLE(DetailTexFuncSGIS)
|
#define glDetailTexFuncSGIS MANGLE(DetailTexFuncSGIS)
|
||||||
#define glDisableClientState MANGLE(DisableClientState)
|
#define glDisableClientState MANGLE(DisableClientState)
|
||||||
|
#define glDisableIndexedEXT MANGLE(DisableIndexedEXT)
|
||||||
#define glDisable MANGLE(Disable)
|
#define glDisable MANGLE(Disable)
|
||||||
#define glDisableVariantClientStateEXT MANGLE(DisableVariantClientStateEXT)
|
#define glDisableVariantClientStateEXT MANGLE(DisableVariantClientStateEXT)
|
||||||
#define glDisableVertexAttribArrayARB MANGLE(DisableVertexAttribArrayARB)
|
#define glDisableVertexAttribArrayARB MANGLE(DisableVertexAttribArrayARB)
|
||||||
#define glDisableVertexAttribArray MANGLE(DisableVertexAttribArray)
|
#define glDisableVertexAttribArray MANGLE(DisableVertexAttribArray)
|
||||||
#define glDrawArraysEXT MANGLE(DrawArraysEXT)
|
#define glDrawArraysEXT MANGLE(DrawArraysEXT)
|
||||||
|
#define glDrawArraysInstancedEXT MANGLE(DrawArraysInstancedEXT)
|
||||||
#define glDrawArrays MANGLE(DrawArrays)
|
#define glDrawArrays MANGLE(DrawArrays)
|
||||||
#define glDrawBuffer MANGLE(DrawBuffer)
|
#define glDrawBuffer MANGLE(DrawBuffer)
|
||||||
#define glDrawBuffersARB MANGLE(DrawBuffersARB)
|
#define glDrawBuffersARB MANGLE(DrawBuffersARB)
|
||||||
@@ -285,6 +296,7 @@
|
|||||||
#define glDrawBuffers MANGLE(DrawBuffers)
|
#define glDrawBuffers MANGLE(DrawBuffers)
|
||||||
#define glDrawElementArrayAPPLE MANGLE(DrawElementArrayAPPLE)
|
#define glDrawElementArrayAPPLE MANGLE(DrawElementArrayAPPLE)
|
||||||
#define glDrawElementArrayATI MANGLE(DrawElementArrayATI)
|
#define glDrawElementArrayATI MANGLE(DrawElementArrayATI)
|
||||||
|
#define glDrawElementsInstancedEXT MANGLE(DrawElementsInstancedEXT)
|
||||||
#define glDrawElements MANGLE(DrawElements)
|
#define glDrawElements MANGLE(DrawElements)
|
||||||
#define glDrawMeshArraysSUN MANGLE(DrawMeshArraysSUN)
|
#define glDrawMeshArraysSUN MANGLE(DrawMeshArraysSUN)
|
||||||
#define glDrawPixels MANGLE(DrawPixels)
|
#define glDrawPixels MANGLE(DrawPixels)
|
||||||
@@ -300,6 +312,7 @@
|
|||||||
#define glElementPointerAPPLE MANGLE(ElementPointerAPPLE)
|
#define glElementPointerAPPLE MANGLE(ElementPointerAPPLE)
|
||||||
#define glElementPointerATI MANGLE(ElementPointerATI)
|
#define glElementPointerATI MANGLE(ElementPointerATI)
|
||||||
#define glEnableClientState MANGLE(EnableClientState)
|
#define glEnableClientState MANGLE(EnableClientState)
|
||||||
|
#define glEnableIndexedEXT MANGLE(EnableIndexedEXT)
|
||||||
#define glEnable MANGLE(Enable)
|
#define glEnable MANGLE(Enable)
|
||||||
#define glEnableVariantClientStateEXT MANGLE(EnableVariantClientStateEXT)
|
#define glEnableVariantClientStateEXT MANGLE(EnableVariantClientStateEXT)
|
||||||
#define glEnableVertexAttribArrayARB MANGLE(EnableVertexAttribArrayARB)
|
#define glEnableVertexAttribArrayARB MANGLE(EnableVertexAttribArrayARB)
|
||||||
@@ -310,6 +323,7 @@
|
|||||||
#define glEndOcclusionQueryNV MANGLE(EndOcclusionQueryNV)
|
#define glEndOcclusionQueryNV MANGLE(EndOcclusionQueryNV)
|
||||||
#define glEndQueryARB MANGLE(EndQueryARB)
|
#define glEndQueryARB MANGLE(EndQueryARB)
|
||||||
#define glEndQuery MANGLE(EndQuery)
|
#define glEndQuery MANGLE(EndQuery)
|
||||||
|
#define glEndTransformFeedbackNV MANGLE(EndTransformFeedbackNV)
|
||||||
#define glEndVertexShaderEXT MANGLE(EndVertexShaderEXT)
|
#define glEndVertexShaderEXT MANGLE(EndVertexShaderEXT)
|
||||||
#define glEvalCoord1d MANGLE(EvalCoord1d)
|
#define glEvalCoord1d MANGLE(EvalCoord1d)
|
||||||
#define glEvalCoord1dv MANGLE(EvalCoord1dv)
|
#define glEvalCoord1dv MANGLE(EvalCoord1dv)
|
||||||
@@ -335,6 +349,7 @@
|
|||||||
#define glFinishObjectAPPLE MANGLE(FinishObjectAPPLE)
|
#define glFinishObjectAPPLE MANGLE(FinishObjectAPPLE)
|
||||||
#define glFinishTextureSUNX MANGLE(FinishTextureSUNX)
|
#define glFinishTextureSUNX MANGLE(FinishTextureSUNX)
|
||||||
#define glFlush MANGLE(Flush)
|
#define glFlush MANGLE(Flush)
|
||||||
|
#define glFlushMappedBufferRangeAPPLE MANGLE(FlushMappedBufferRangeAPPLE)
|
||||||
#define glFlushPixelDataRangeNV MANGLE(FlushPixelDataRangeNV)
|
#define glFlushPixelDataRangeNV MANGLE(FlushPixelDataRangeNV)
|
||||||
#define glFlushRasterSGIX MANGLE(FlushRasterSGIX)
|
#define glFlushRasterSGIX MANGLE(FlushRasterSGIX)
|
||||||
#define glFlushVertexArrayRangeAPPLE MANGLE(FlushVertexArrayRangeAPPLE)
|
#define glFlushVertexArrayRangeAPPLE MANGLE(FlushVertexArrayRangeAPPLE)
|
||||||
@@ -374,6 +389,9 @@
|
|||||||
#define glFramebufferTexture1DEXT MANGLE(FramebufferTexture1DEXT)
|
#define glFramebufferTexture1DEXT MANGLE(FramebufferTexture1DEXT)
|
||||||
#define glFramebufferTexture2DEXT MANGLE(FramebufferTexture2DEXT)
|
#define glFramebufferTexture2DEXT MANGLE(FramebufferTexture2DEXT)
|
||||||
#define glFramebufferTexture3DEXT MANGLE(FramebufferTexture3DEXT)
|
#define glFramebufferTexture3DEXT MANGLE(FramebufferTexture3DEXT)
|
||||||
|
#define glFramebufferTextureEXT MANGLE(FramebufferTextureEXT)
|
||||||
|
#define glFramebufferTextureFaceEXT MANGLE(FramebufferTextureFaceEXT)
|
||||||
|
#define glFramebufferTextureLayerEXT MANGLE(FramebufferTextureLayerEXT)
|
||||||
#define glFrameZoomSGIX MANGLE(FrameZoomSGIX)
|
#define glFrameZoomSGIX MANGLE(FrameZoomSGIX)
|
||||||
#define glFreeObjectBufferATI MANGLE(FreeObjectBufferATI)
|
#define glFreeObjectBufferATI MANGLE(FreeObjectBufferATI)
|
||||||
#define glFrontFace MANGLE(FrontFace)
|
#define glFrontFace MANGLE(FrontFace)
|
||||||
@@ -402,12 +420,14 @@
|
|||||||
#define glGetActiveAttrib MANGLE(GetActiveAttrib)
|
#define glGetActiveAttrib MANGLE(GetActiveAttrib)
|
||||||
#define glGetActiveUniformARB MANGLE(GetActiveUniformARB)
|
#define glGetActiveUniformARB MANGLE(GetActiveUniformARB)
|
||||||
#define glGetActiveUniform MANGLE(GetActiveUniform)
|
#define glGetActiveUniform MANGLE(GetActiveUniform)
|
||||||
|
#define glGetActiveVaryingNV MANGLE(GetActiveVaryingNV)
|
||||||
#define glGetArrayObjectfvATI MANGLE(GetArrayObjectfvATI)
|
#define glGetArrayObjectfvATI MANGLE(GetArrayObjectfvATI)
|
||||||
#define glGetArrayObjectivATI MANGLE(GetArrayObjectivATI)
|
#define glGetArrayObjectivATI MANGLE(GetArrayObjectivATI)
|
||||||
#define glGetAttachedObjectsARB MANGLE(GetAttachedObjectsARB)
|
#define glGetAttachedObjectsARB MANGLE(GetAttachedObjectsARB)
|
||||||
#define glGetAttachedShaders MANGLE(GetAttachedShaders)
|
#define glGetAttachedShaders MANGLE(GetAttachedShaders)
|
||||||
#define glGetAttribLocationARB MANGLE(GetAttribLocationARB)
|
#define glGetAttribLocationARB MANGLE(GetAttribLocationARB)
|
||||||
#define glGetAttribLocation MANGLE(GetAttribLocation)
|
#define glGetAttribLocation MANGLE(GetAttribLocation)
|
||||||
|
#define glGetBooleanIndexedvEXT MANGLE(GetBooleanIndexedvEXT)
|
||||||
#define glGetBooleanv MANGLE(GetBooleanv)
|
#define glGetBooleanv MANGLE(GetBooleanv)
|
||||||
#define glGetBufferParameterivARB MANGLE(GetBufferParameterivARB)
|
#define glGetBufferParameterivARB MANGLE(GetBufferParameterivARB)
|
||||||
#define glGetBufferParameteriv MANGLE(GetBufferParameteriv)
|
#define glGetBufferParameteriv MANGLE(GetBufferParameteriv)
|
||||||
@@ -448,6 +468,7 @@
|
|||||||
#define glGetFinalCombinerInputParameterivNV MANGLE(GetFinalCombinerInputParameterivNV)
|
#define glGetFinalCombinerInputParameterivNV MANGLE(GetFinalCombinerInputParameterivNV)
|
||||||
#define glGetFloatv MANGLE(GetFloatv)
|
#define glGetFloatv MANGLE(GetFloatv)
|
||||||
#define glGetFogFuncSGIS MANGLE(GetFogFuncSGIS)
|
#define glGetFogFuncSGIS MANGLE(GetFogFuncSGIS)
|
||||||
|
#define glGetFragDataLocationEXT MANGLE(GetFragDataLocationEXT)
|
||||||
#define glGetFragmentLightfvSGIX MANGLE(GetFragmentLightfvSGIX)
|
#define glGetFragmentLightfvSGIX MANGLE(GetFragmentLightfvSGIX)
|
||||||
#define glGetFragmentLightivSGIX MANGLE(GetFragmentLightivSGIX)
|
#define glGetFragmentLightivSGIX MANGLE(GetFragmentLightivSGIX)
|
||||||
#define glGetFragmentMaterialfvSGIX MANGLE(GetFragmentMaterialfvSGIX)
|
#define glGetFragmentMaterialfvSGIX MANGLE(GetFragmentMaterialfvSGIX)
|
||||||
@@ -464,6 +485,7 @@
|
|||||||
#define glGetImageTransformParameterivHP MANGLE(GetImageTransformParameterivHP)
|
#define glGetImageTransformParameterivHP MANGLE(GetImageTransformParameterivHP)
|
||||||
#define glGetInfoLogARB MANGLE(GetInfoLogARB)
|
#define glGetInfoLogARB MANGLE(GetInfoLogARB)
|
||||||
#define glGetInstrumentsSGIX MANGLE(GetInstrumentsSGIX)
|
#define glGetInstrumentsSGIX MANGLE(GetInstrumentsSGIX)
|
||||||
|
#define glGetIntegerIndexedvEXT MANGLE(GetIntegerIndexedvEXT)
|
||||||
#define glGetIntegerv MANGLE(GetIntegerv)
|
#define glGetIntegerv MANGLE(GetIntegerv)
|
||||||
#define glGetInvariantBooleanvEXT MANGLE(GetInvariantBooleanvEXT)
|
#define glGetInvariantBooleanvEXT MANGLE(GetInvariantBooleanvEXT)
|
||||||
#define glGetInvariantFloatvEXT MANGLE(GetInvariantFloatvEXT)
|
#define glGetInvariantFloatvEXT MANGLE(GetInvariantFloatvEXT)
|
||||||
@@ -507,12 +529,16 @@
|
|||||||
#define glGetPolygonStipple MANGLE(GetPolygonStipple)
|
#define glGetPolygonStipple MANGLE(GetPolygonStipple)
|
||||||
#define glGetProgramEnvParameterdvARB MANGLE(GetProgramEnvParameterdvARB)
|
#define glGetProgramEnvParameterdvARB MANGLE(GetProgramEnvParameterdvARB)
|
||||||
#define glGetProgramEnvParameterfvARB MANGLE(GetProgramEnvParameterfvARB)
|
#define glGetProgramEnvParameterfvARB MANGLE(GetProgramEnvParameterfvARB)
|
||||||
|
#define glGetProgramEnvParameterIivNV MANGLE(GetProgramEnvParameterIivNV)
|
||||||
|
#define glGetProgramEnvParameterIuivNV MANGLE(GetProgramEnvParameterIuivNV)
|
||||||
#define glGetProgramInfoLog MANGLE(GetProgramInfoLog)
|
#define glGetProgramInfoLog MANGLE(GetProgramInfoLog)
|
||||||
#define glGetProgramivARB MANGLE(GetProgramivARB)
|
#define glGetProgramivARB MANGLE(GetProgramivARB)
|
||||||
#define glGetProgramiv MANGLE(GetProgramiv)
|
#define glGetProgramiv MANGLE(GetProgramiv)
|
||||||
#define glGetProgramivNV MANGLE(GetProgramivNV)
|
#define glGetProgramivNV MANGLE(GetProgramivNV)
|
||||||
#define glGetProgramLocalParameterdvARB MANGLE(GetProgramLocalParameterdvARB)
|
#define glGetProgramLocalParameterdvARB MANGLE(GetProgramLocalParameterdvARB)
|
||||||
#define glGetProgramLocalParameterfvARB MANGLE(GetProgramLocalParameterfvARB)
|
#define glGetProgramLocalParameterfvARB MANGLE(GetProgramLocalParameterfvARB)
|
||||||
|
#define glGetProgramLocalParameterIivNV MANGLE(GetProgramLocalParameterIivNV)
|
||||||
|
#define glGetProgramLocalParameterIuivNV MANGLE(GetProgramLocalParameterIuivNV)
|
||||||
#define glGetProgramNamedParameterdvNV MANGLE(GetProgramNamedParameterdvNV)
|
#define glGetProgramNamedParameterdvNV MANGLE(GetProgramNamedParameterdvNV)
|
||||||
#define glGetProgramNamedParameterfvNV MANGLE(GetProgramNamedParameterfvNV)
|
#define glGetProgramNamedParameterfvNV MANGLE(GetProgramNamedParameterfvNV)
|
||||||
#define glGetProgramParameterdvNV MANGLE(GetProgramParameterdvNV)
|
#define glGetProgramParameterdvNV MANGLE(GetProgramParameterdvNV)
|
||||||
@@ -549,20 +575,27 @@
|
|||||||
#define glGetTexLevelParameterfv MANGLE(GetTexLevelParameterfv)
|
#define glGetTexLevelParameterfv MANGLE(GetTexLevelParameterfv)
|
||||||
#define glGetTexLevelParameteriv MANGLE(GetTexLevelParameteriv)
|
#define glGetTexLevelParameteriv MANGLE(GetTexLevelParameteriv)
|
||||||
#define glGetTexParameterfv MANGLE(GetTexParameterfv)
|
#define glGetTexParameterfv MANGLE(GetTexParameterfv)
|
||||||
|
#define glGetTexParameterIivEXT MANGLE(GetTexParameterIivEXT)
|
||||||
|
#define glGetTexParameterIuivEXT MANGLE(GetTexParameterIuivEXT)
|
||||||
#define glGetTexParameteriv MANGLE(GetTexParameteriv)
|
#define glGetTexParameteriv MANGLE(GetTexParameteriv)
|
||||||
#define glGetTrackMatrixivNV MANGLE(GetTrackMatrixivNV)
|
#define glGetTrackMatrixivNV MANGLE(GetTrackMatrixivNV)
|
||||||
|
#define glGetTransformFeedbackVaryingNV MANGLE(GetTransformFeedbackVaryingNV)
|
||||||
|
#define glGetUniformBufferSizeEXT MANGLE(GetUniformBufferSizeEXT)
|
||||||
#define glGetUniformfvARB MANGLE(GetUniformfvARB)
|
#define glGetUniformfvARB MANGLE(GetUniformfvARB)
|
||||||
#define glGetUniformfv MANGLE(GetUniformfv)
|
#define glGetUniformfv MANGLE(GetUniformfv)
|
||||||
#define glGetUniformivARB MANGLE(GetUniformivARB)
|
#define glGetUniformivARB MANGLE(GetUniformivARB)
|
||||||
#define glGetUniformiv MANGLE(GetUniformiv)
|
#define glGetUniformiv MANGLE(GetUniformiv)
|
||||||
#define glGetUniformLocationARB MANGLE(GetUniformLocationARB)
|
#define glGetUniformLocationARB MANGLE(GetUniformLocationARB)
|
||||||
#define glGetUniformLocation MANGLE(GetUniformLocation)
|
#define glGetUniformLocation MANGLE(GetUniformLocation)
|
||||||
|
#define glGetUniformOffsetEXT MANGLE(GetUniformOffsetEXT)
|
||||||
|
#define glGetUniformuivEXT MANGLE(GetUniformuivEXT)
|
||||||
#define glGetVariantArrayObjectfvATI MANGLE(GetVariantArrayObjectfvATI)
|
#define glGetVariantArrayObjectfvATI MANGLE(GetVariantArrayObjectfvATI)
|
||||||
#define glGetVariantArrayObjectivATI MANGLE(GetVariantArrayObjectivATI)
|
#define glGetVariantArrayObjectivATI MANGLE(GetVariantArrayObjectivATI)
|
||||||
#define glGetVariantBooleanvEXT MANGLE(GetVariantBooleanvEXT)
|
#define glGetVariantBooleanvEXT MANGLE(GetVariantBooleanvEXT)
|
||||||
#define glGetVariantFloatvEXT MANGLE(GetVariantFloatvEXT)
|
#define glGetVariantFloatvEXT MANGLE(GetVariantFloatvEXT)
|
||||||
#define glGetVariantIntegervEXT MANGLE(GetVariantIntegervEXT)
|
#define glGetVariantIntegervEXT MANGLE(GetVariantIntegervEXT)
|
||||||
#define glGetVariantPointervEXT MANGLE(GetVariantPointervEXT)
|
#define glGetVariantPointervEXT MANGLE(GetVariantPointervEXT)
|
||||||
|
#define glGetVaryingLocationNV MANGLE(GetVaryingLocationNV)
|
||||||
#define glGetVertexAttribArrayObjectfvATI MANGLE(GetVertexAttribArrayObjectfvATI)
|
#define glGetVertexAttribArrayObjectfvATI MANGLE(GetVertexAttribArrayObjectfvATI)
|
||||||
#define glGetVertexAttribArrayObjectivATI MANGLE(GetVertexAttribArrayObjectivATI)
|
#define glGetVertexAttribArrayObjectivATI MANGLE(GetVertexAttribArrayObjectivATI)
|
||||||
#define glGetVertexAttribdvARB MANGLE(GetVertexAttribdvARB)
|
#define glGetVertexAttribdvARB MANGLE(GetVertexAttribdvARB)
|
||||||
@@ -571,6 +604,8 @@
|
|||||||
#define glGetVertexAttribfvARB MANGLE(GetVertexAttribfvARB)
|
#define glGetVertexAttribfvARB MANGLE(GetVertexAttribfvARB)
|
||||||
#define glGetVertexAttribfv MANGLE(GetVertexAttribfv)
|
#define glGetVertexAttribfv MANGLE(GetVertexAttribfv)
|
||||||
#define glGetVertexAttribfvNV MANGLE(GetVertexAttribfvNV)
|
#define glGetVertexAttribfvNV MANGLE(GetVertexAttribfvNV)
|
||||||
|
#define glGetVertexAttribIivEXT MANGLE(GetVertexAttribIivEXT)
|
||||||
|
#define glGetVertexAttribIuivEXT MANGLE(GetVertexAttribIuivEXT)
|
||||||
#define glGetVertexAttribivARB MANGLE(GetVertexAttribivARB)
|
#define glGetVertexAttribivARB MANGLE(GetVertexAttribivARB)
|
||||||
#define glGetVertexAttribiv MANGLE(GetVertexAttribiv)
|
#define glGetVertexAttribiv MANGLE(GetVertexAttribiv)
|
||||||
#define glGetVertexAttribivNV MANGLE(GetVertexAttribivNV)
|
#define glGetVertexAttribivNV MANGLE(GetVertexAttribivNV)
|
||||||
@@ -617,6 +652,7 @@
|
|||||||
#define glIsAsyncMarkerSGIX MANGLE(IsAsyncMarkerSGIX)
|
#define glIsAsyncMarkerSGIX MANGLE(IsAsyncMarkerSGIX)
|
||||||
#define glIsBufferARB MANGLE(IsBufferARB)
|
#define glIsBufferARB MANGLE(IsBufferARB)
|
||||||
#define glIsBuffer MANGLE(IsBuffer)
|
#define glIsBuffer MANGLE(IsBuffer)
|
||||||
|
#define glIsEnabledIndexedEXT MANGLE(IsEnabledIndexedEXT)
|
||||||
#define glIsEnabled MANGLE(IsEnabled)
|
#define glIsEnabled MANGLE(IsEnabled)
|
||||||
#define glIsFenceAPPLE MANGLE(IsFenceAPPLE)
|
#define glIsFenceAPPLE MANGLE(IsFenceAPPLE)
|
||||||
#define glIsFenceNV MANGLE(IsFenceNV)
|
#define glIsFenceNV MANGLE(IsFenceNV)
|
||||||
@@ -856,17 +892,32 @@
|
|||||||
#define glPrimitiveRestartNV MANGLE(PrimitiveRestartNV)
|
#define glPrimitiveRestartNV MANGLE(PrimitiveRestartNV)
|
||||||
#define glPrioritizeTexturesEXT MANGLE(PrioritizeTexturesEXT)
|
#define glPrioritizeTexturesEXT MANGLE(PrioritizeTexturesEXT)
|
||||||
#define glPrioritizeTextures MANGLE(PrioritizeTextures)
|
#define glPrioritizeTextures MANGLE(PrioritizeTextures)
|
||||||
|
#define glProgramBufferParametersfvNV MANGLE(ProgramBufferParametersfvNV)
|
||||||
|
#define glProgramBufferParametersIivNV MANGLE(ProgramBufferParametersIivNV)
|
||||||
|
#define glProgramBufferParametersIuivNV MANGLE(ProgramBufferParametersIuivNV)
|
||||||
#define glProgramCallbackMESA MANGLE(ProgramCallbackMESA)
|
#define glProgramCallbackMESA MANGLE(ProgramCallbackMESA)
|
||||||
#define glProgramEnvParameter4dARB MANGLE(ProgramEnvParameter4dARB)
|
#define glProgramEnvParameter4dARB MANGLE(ProgramEnvParameter4dARB)
|
||||||
#define glProgramEnvParameter4dvARB MANGLE(ProgramEnvParameter4dvARB)
|
#define glProgramEnvParameter4dvARB MANGLE(ProgramEnvParameter4dvARB)
|
||||||
#define glProgramEnvParameter4fARB MANGLE(ProgramEnvParameter4fARB)
|
#define glProgramEnvParameter4fARB MANGLE(ProgramEnvParameter4fARB)
|
||||||
#define glProgramEnvParameter4fvARB MANGLE(ProgramEnvParameter4fvARB)
|
#define glProgramEnvParameter4fvARB MANGLE(ProgramEnvParameter4fvARB)
|
||||||
|
#define glProgramEnvParameterI4iNV MANGLE(ProgramEnvParameterI4iNV)
|
||||||
|
#define glProgramEnvParameterI4ivNV MANGLE(ProgramEnvParameterI4ivNV)
|
||||||
|
#define glProgramEnvParameterI4uiNV MANGLE(ProgramEnvParameterI4uiNV)
|
||||||
|
#define glProgramEnvParameterI4uivNV MANGLE(ProgramEnvParameterI4uivNV)
|
||||||
#define glProgramEnvParameters4fvEXT MANGLE(ProgramEnvParameters4fvEXT)
|
#define glProgramEnvParameters4fvEXT MANGLE(ProgramEnvParameters4fvEXT)
|
||||||
|
#define glProgramEnvParametersI4ivNV MANGLE(ProgramEnvParametersI4ivNV)
|
||||||
|
#define glProgramEnvParametersI4uivNV MANGLE(ProgramEnvParametersI4uivNV)
|
||||||
#define glProgramLocalParameter4dARB MANGLE(ProgramLocalParameter4dARB)
|
#define glProgramLocalParameter4dARB MANGLE(ProgramLocalParameter4dARB)
|
||||||
#define glProgramLocalParameter4dvARB MANGLE(ProgramLocalParameter4dvARB)
|
#define glProgramLocalParameter4dvARB MANGLE(ProgramLocalParameter4dvARB)
|
||||||
#define glProgramLocalParameter4fARB MANGLE(ProgramLocalParameter4fARB)
|
#define glProgramLocalParameter4fARB MANGLE(ProgramLocalParameter4fARB)
|
||||||
#define glProgramLocalParameter4fvARB MANGLE(ProgramLocalParameter4fvARB)
|
#define glProgramLocalParameter4fvARB MANGLE(ProgramLocalParameter4fvARB)
|
||||||
|
#define glProgramLocalParameterI4iNV MANGLE(ProgramLocalParameterI4iNV)
|
||||||
|
#define glProgramLocalParameterI4ivNV MANGLE(ProgramLocalParameterI4ivNV)
|
||||||
|
#define glProgramLocalParameterI4uiNV MANGLE(ProgramLocalParameterI4uiNV)
|
||||||
|
#define glProgramLocalParameterI4uivNV MANGLE(ProgramLocalParameterI4uivNV)
|
||||||
#define glProgramLocalParameters4fvEXT MANGLE(ProgramLocalParameters4fvEXT)
|
#define glProgramLocalParameters4fvEXT MANGLE(ProgramLocalParameters4fvEXT)
|
||||||
|
#define glProgramLocalParametersI4ivNV MANGLE(ProgramLocalParametersI4ivNV)
|
||||||
|
#define glProgramLocalParametersI4uivNV MANGLE(ProgramLocalParametersI4uivNV)
|
||||||
#define glProgramNamedParameter4dNV MANGLE(ProgramNamedParameter4dNV)
|
#define glProgramNamedParameter4dNV MANGLE(ProgramNamedParameter4dNV)
|
||||||
#define glProgramNamedParameter4dvNV MANGLE(ProgramNamedParameter4dvNV)
|
#define glProgramNamedParameter4dvNV MANGLE(ProgramNamedParameter4dvNV)
|
||||||
#define glProgramNamedParameter4fNV MANGLE(ProgramNamedParameter4fNV)
|
#define glProgramNamedParameter4fNV MANGLE(ProgramNamedParameter4fNV)
|
||||||
@@ -875,9 +926,11 @@
|
|||||||
#define glProgramParameter4dvNV MANGLE(ProgramParameter4dvNV)
|
#define glProgramParameter4dvNV MANGLE(ProgramParameter4dvNV)
|
||||||
#define glProgramParameter4fNV MANGLE(ProgramParameter4fNV)
|
#define glProgramParameter4fNV MANGLE(ProgramParameter4fNV)
|
||||||
#define glProgramParameter4fvNV MANGLE(ProgramParameter4fvNV)
|
#define glProgramParameter4fvNV MANGLE(ProgramParameter4fvNV)
|
||||||
|
#define glProgramParameteriEXT MANGLE(ProgramParameteriEXT)
|
||||||
#define glProgramParameters4dvNV MANGLE(ProgramParameters4dvNV)
|
#define glProgramParameters4dvNV MANGLE(ProgramParameters4dvNV)
|
||||||
#define glProgramParameters4fvNV MANGLE(ProgramParameters4fvNV)
|
#define glProgramParameters4fvNV MANGLE(ProgramParameters4fvNV)
|
||||||
#define glProgramStringARB MANGLE(ProgramStringARB)
|
#define glProgramStringARB MANGLE(ProgramStringARB)
|
||||||
|
#define glProgramVertexLimitNV MANGLE(ProgramVertexLimitNV)
|
||||||
#define glPushAttrib MANGLE(PushAttrib)
|
#define glPushAttrib MANGLE(PushAttrib)
|
||||||
#define glPushClientAttrib MANGLE(PushClientAttrib)
|
#define glPushClientAttrib MANGLE(PushClientAttrib)
|
||||||
#define glPushMatrix MANGLE(PushMatrix)
|
#define glPushMatrix MANGLE(PushMatrix)
|
||||||
@@ -919,6 +972,7 @@
|
|||||||
#define glRectsv MANGLE(Rectsv)
|
#define glRectsv MANGLE(Rectsv)
|
||||||
#define glReferencePlaneSGIX MANGLE(ReferencePlaneSGIX)
|
#define glReferencePlaneSGIX MANGLE(ReferencePlaneSGIX)
|
||||||
#define glRenderbufferStorageEXT MANGLE(RenderbufferStorageEXT)
|
#define glRenderbufferStorageEXT MANGLE(RenderbufferStorageEXT)
|
||||||
|
#define glRenderbufferStorageMultisampleCoverageNV MANGLE(RenderbufferStorageMultisampleCoverageNV)
|
||||||
#define glRenderbufferStorageMultisampleEXT MANGLE(RenderbufferStorageMultisampleEXT)
|
#define glRenderbufferStorageMultisampleEXT MANGLE(RenderbufferStorageMultisampleEXT)
|
||||||
#define glRenderMode MANGLE(RenderMode)
|
#define glRenderMode MANGLE(RenderMode)
|
||||||
#define glReplacementCodePointerSUN MANGLE(ReplacementCodePointerSUN)
|
#define glReplacementCodePointerSUN MANGLE(ReplacementCodePointerSUN)
|
||||||
@@ -1047,6 +1101,7 @@
|
|||||||
#define glTestFenceAPPLE MANGLE(TestFenceAPPLE)
|
#define glTestFenceAPPLE MANGLE(TestFenceAPPLE)
|
||||||
#define glTestFenceNV MANGLE(TestFenceNV)
|
#define glTestFenceNV MANGLE(TestFenceNV)
|
||||||
#define glTestObjectAPPLE MANGLE(TestObjectAPPLE)
|
#define glTestObjectAPPLE MANGLE(TestObjectAPPLE)
|
||||||
|
#define glTexBufferEXT MANGLE(TexBufferEXT)
|
||||||
#define glTexBumpParameterfvATI MANGLE(TexBumpParameterfvATI)
|
#define glTexBumpParameterfvATI MANGLE(TexBumpParameterfvATI)
|
||||||
#define glTexBumpParameterivATI MANGLE(TexBumpParameterivATI)
|
#define glTexBumpParameterivATI MANGLE(TexBumpParameterivATI)
|
||||||
#define glTexCoord1d MANGLE(TexCoord1d)
|
#define glTexCoord1d MANGLE(TexCoord1d)
|
||||||
@@ -1125,7 +1180,9 @@
|
|||||||
#define glTexImage4DSGIS MANGLE(TexImage4DSGIS)
|
#define glTexImage4DSGIS MANGLE(TexImage4DSGIS)
|
||||||
#define glTexParameterf MANGLE(TexParameterf)
|
#define glTexParameterf MANGLE(TexParameterf)
|
||||||
#define glTexParameterfv MANGLE(TexParameterfv)
|
#define glTexParameterfv MANGLE(TexParameterfv)
|
||||||
|
#define glTexParameterIivEXT MANGLE(TexParameterIivEXT)
|
||||||
#define glTexParameteri MANGLE(TexParameteri)
|
#define glTexParameteri MANGLE(TexParameteri)
|
||||||
|
#define glTexParameterIuivEXT MANGLE(TexParameterIuivEXT)
|
||||||
#define glTexParameteriv MANGLE(TexParameteriv)
|
#define glTexParameteriv MANGLE(TexParameteriv)
|
||||||
#define glTexSubImage1DEXT MANGLE(TexSubImage1DEXT)
|
#define glTexSubImage1DEXT MANGLE(TexSubImage1DEXT)
|
||||||
#define glTexSubImage1D MANGLE(TexSubImage1D)
|
#define glTexSubImage1D MANGLE(TexSubImage1D)
|
||||||
@@ -1139,6 +1196,8 @@
|
|||||||
#define glTextureMaterialEXT MANGLE(TextureMaterialEXT)
|
#define glTextureMaterialEXT MANGLE(TextureMaterialEXT)
|
||||||
#define glTextureNormalEXT MANGLE(TextureNormalEXT)
|
#define glTextureNormalEXT MANGLE(TextureNormalEXT)
|
||||||
#define glTrackMatrixNV MANGLE(TrackMatrixNV)
|
#define glTrackMatrixNV MANGLE(TrackMatrixNV)
|
||||||
|
#define glTransformFeedbackAttribsNV MANGLE(TransformFeedbackAttribsNV)
|
||||||
|
#define glTransformFeedbackVaryingsNV MANGLE(TransformFeedbackVaryingsNV)
|
||||||
#define glTranslated MANGLE(Translated)
|
#define glTranslated MANGLE(Translated)
|
||||||
#define glTranslatef MANGLE(Translatef)
|
#define glTranslatef MANGLE(Translatef)
|
||||||
#define glUniform1fARB MANGLE(Uniform1fARB)
|
#define glUniform1fARB MANGLE(Uniform1fARB)
|
||||||
@@ -1149,6 +1208,8 @@
|
|||||||
#define glUniform1i MANGLE(Uniform1i)
|
#define glUniform1i MANGLE(Uniform1i)
|
||||||
#define glUniform1ivARB MANGLE(Uniform1ivARB)
|
#define glUniform1ivARB MANGLE(Uniform1ivARB)
|
||||||
#define glUniform1iv MANGLE(Uniform1iv)
|
#define glUniform1iv MANGLE(Uniform1iv)
|
||||||
|
#define glUniform1uiEXT MANGLE(Uniform1uiEXT)
|
||||||
|
#define glUniform1uivEXT MANGLE(Uniform1uivEXT)
|
||||||
#define glUniform2fARB MANGLE(Uniform2fARB)
|
#define glUniform2fARB MANGLE(Uniform2fARB)
|
||||||
#define glUniform2f MANGLE(Uniform2f)
|
#define glUniform2f MANGLE(Uniform2f)
|
||||||
#define glUniform2fvARB MANGLE(Uniform2fvARB)
|
#define glUniform2fvARB MANGLE(Uniform2fvARB)
|
||||||
@@ -1157,6 +1218,8 @@
|
|||||||
#define glUniform2i MANGLE(Uniform2i)
|
#define glUniform2i MANGLE(Uniform2i)
|
||||||
#define glUniform2ivARB MANGLE(Uniform2ivARB)
|
#define glUniform2ivARB MANGLE(Uniform2ivARB)
|
||||||
#define glUniform2iv MANGLE(Uniform2iv)
|
#define glUniform2iv MANGLE(Uniform2iv)
|
||||||
|
#define glUniform2uiEXT MANGLE(Uniform2uiEXT)
|
||||||
|
#define glUniform2uivEXT MANGLE(Uniform2uivEXT)
|
||||||
#define glUniform3fARB MANGLE(Uniform3fARB)
|
#define glUniform3fARB MANGLE(Uniform3fARB)
|
||||||
#define glUniform3f MANGLE(Uniform3f)
|
#define glUniform3f MANGLE(Uniform3f)
|
||||||
#define glUniform3fvARB MANGLE(Uniform3fvARB)
|
#define glUniform3fvARB MANGLE(Uniform3fvARB)
|
||||||
@@ -1165,6 +1228,8 @@
|
|||||||
#define glUniform3i MANGLE(Uniform3i)
|
#define glUniform3i MANGLE(Uniform3i)
|
||||||
#define glUniform3ivARB MANGLE(Uniform3ivARB)
|
#define glUniform3ivARB MANGLE(Uniform3ivARB)
|
||||||
#define glUniform3iv MANGLE(Uniform3iv)
|
#define glUniform3iv MANGLE(Uniform3iv)
|
||||||
|
#define glUniform3uiEXT MANGLE(Uniform3uiEXT)
|
||||||
|
#define glUniform3uivEXT MANGLE(Uniform3uivEXT)
|
||||||
#define glUniform4fARB MANGLE(Uniform4fARB)
|
#define glUniform4fARB MANGLE(Uniform4fARB)
|
||||||
#define glUniform4f MANGLE(Uniform4f)
|
#define glUniform4f MANGLE(Uniform4f)
|
||||||
#define glUniform4fvARB MANGLE(Uniform4fvARB)
|
#define glUniform4fvARB MANGLE(Uniform4fvARB)
|
||||||
@@ -1173,6 +1238,9 @@
|
|||||||
#define glUniform4i MANGLE(Uniform4i)
|
#define glUniform4i MANGLE(Uniform4i)
|
||||||
#define glUniform4ivARB MANGLE(Uniform4ivARB)
|
#define glUniform4ivARB MANGLE(Uniform4ivARB)
|
||||||
#define glUniform4iv MANGLE(Uniform4iv)
|
#define glUniform4iv MANGLE(Uniform4iv)
|
||||||
|
#define glUniform4uiEXT MANGLE(Uniform4uiEXT)
|
||||||
|
#define glUniform4uivEXT MANGLE(Uniform4uivEXT)
|
||||||
|
#define glUniformBufferEXT MANGLE(UniformBufferEXT)
|
||||||
#define glUniformMatrix2fvARB MANGLE(UniformMatrix2fvARB)
|
#define glUniformMatrix2fvARB MANGLE(UniformMatrix2fvARB)
|
||||||
#define glUniformMatrix2fv MANGLE(UniformMatrix2fv)
|
#define glUniformMatrix2fv MANGLE(UniformMatrix2fv)
|
||||||
#define glUniformMatrix2x3fv MANGLE(UniformMatrix2x3fv)
|
#define glUniformMatrix2x3fv MANGLE(UniformMatrix2x3fv)
|
||||||
@@ -1344,6 +1412,27 @@
|
|||||||
#define glVertexAttrib4usvARB MANGLE(VertexAttrib4usvARB)
|
#define glVertexAttrib4usvARB MANGLE(VertexAttrib4usvARB)
|
||||||
#define glVertexAttrib4usv MANGLE(VertexAttrib4usv)
|
#define glVertexAttrib4usv MANGLE(VertexAttrib4usv)
|
||||||
#define glVertexAttribArrayObjectATI MANGLE(VertexAttribArrayObjectATI)
|
#define glVertexAttribArrayObjectATI MANGLE(VertexAttribArrayObjectATI)
|
||||||
|
#define glVertexAttribI1iEXT MANGLE(VertexAttribI1iEXT)
|
||||||
|
#define glVertexAttribI1ivEXT MANGLE(VertexAttribI1ivEXT)
|
||||||
|
#define glVertexAttribI1uiEXT MANGLE(VertexAttribI1uiEXT)
|
||||||
|
#define glVertexAttribI1uivEXT MANGLE(VertexAttribI1uivEXT)
|
||||||
|
#define glVertexAttribI2iEXT MANGLE(VertexAttribI2iEXT)
|
||||||
|
#define glVertexAttribI2ivEXT MANGLE(VertexAttribI2ivEXT)
|
||||||
|
#define glVertexAttribI2uiEXT MANGLE(VertexAttribI2uiEXT)
|
||||||
|
#define glVertexAttribI2uivEXT MANGLE(VertexAttribI2uivEXT)
|
||||||
|
#define glVertexAttribI3iEXT MANGLE(VertexAttribI3iEXT)
|
||||||
|
#define glVertexAttribI3ivEXT MANGLE(VertexAttribI3ivEXT)
|
||||||
|
#define glVertexAttribI3uiEXT MANGLE(VertexAttribI3uiEXT)
|
||||||
|
#define glVertexAttribI3uivEXT MANGLE(VertexAttribI3uivEXT)
|
||||||
|
#define glVertexAttribI4bvEXT MANGLE(VertexAttribI4bvEXT)
|
||||||
|
#define glVertexAttribI4iEXT MANGLE(VertexAttribI4iEXT)
|
||||||
|
#define glVertexAttribI4ivEXT MANGLE(VertexAttribI4ivEXT)
|
||||||
|
#define glVertexAttribI4svEXT MANGLE(VertexAttribI4svEXT)
|
||||||
|
#define glVertexAttribI4ubvEXT MANGLE(VertexAttribI4ubvEXT)
|
||||||
|
#define glVertexAttribI4uiEXT MANGLE(VertexAttribI4uiEXT)
|
||||||
|
#define glVertexAttribI4uivEXT MANGLE(VertexAttribI4uivEXT)
|
||||||
|
#define glVertexAttribI4usvEXT MANGLE(VertexAttribI4usvEXT)
|
||||||
|
#define glVertexAttribIPointerEXT MANGLE(VertexAttribIPointerEXT)
|
||||||
#define glVertexAttribPointerARB MANGLE(VertexAttribPointerARB)
|
#define glVertexAttribPointerARB MANGLE(VertexAttribPointerARB)
|
||||||
#define glVertexAttribPointer MANGLE(VertexAttribPointer)
|
#define glVertexAttribPointer MANGLE(VertexAttribPointer)
|
||||||
#define glVertexAttribPointerNV MANGLE(VertexAttribPointerNV)
|
#define glVertexAttribPointerNV MANGLE(VertexAttribPointerNV)
|
||||||
|
|||||||
@@ -6,32 +6,26 @@ extern "C" {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** License Applicability. Except to the extent portions of this file are
|
** Copyright (c) 2007 The Khronos Group Inc.
|
||||||
** made subject to an alternative license as permitted in the SGI Free
|
|
||||||
** Software License B, Version 1.1 (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
|
** Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
** copy of this software and/or associated documentation files (the
|
||||||
|
** "Materials"), to deal in the Materials without restriction, including
|
||||||
|
** without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
** distribute, sublicense, and/or sell copies of the Materials, and to
|
||||||
|
** permit persons to whom the Materials are furnished to do so, subject to
|
||||||
|
** the following conditions:
|
||||||
**
|
**
|
||||||
** Note that, as provided in the License, the Software is distributed on an
|
** The above copyright notice and this permission notice shall be included
|
||||||
** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS
|
** in all copies or substantial portions of the Materials.
|
||||||
** 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,
|
** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics,
|
** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
** Inc. The Original Code is Copyright (c) 1991-2004 Silicon Graphics, Inc.
|
** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||||
** Copyright in any portions created by third parties is as indicated
|
** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||||
** elsewhere herein. All Rights Reserved.
|
** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||||
**
|
** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||||
** Additional Notice Provisions: This software was created using the
|
** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
||||||
** 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 defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__)
|
#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__)
|
||||||
@@ -52,9 +46,9 @@ extern "C" {
|
|||||||
/*************************************************************/
|
/*************************************************************/
|
||||||
|
|
||||||
/* Header file version number, required by OpenGL ABI for Linux */
|
/* Header file version number, required by OpenGL ABI for Linux */
|
||||||
/* glext.h last updated 2006/08/30 */
|
/* glext.h last updated 2007/02/12 */
|
||||||
/* Current version at http://www.opengl.org/registry/ */
|
/* Current version at http://www.opengl.org/registry/ */
|
||||||
#define GL_GLEXT_VERSION 34
|
#define GL_GLEXT_VERSION 39
|
||||||
|
|
||||||
#ifndef GL_VERSION_1_2
|
#ifndef GL_VERSION_1_2
|
||||||
#define GL_UNSIGNED_BYTE_3_3_2 0x8032
|
#define GL_UNSIGNED_BYTE_3_3_2 0x8032
|
||||||
@@ -3019,7 +3013,6 @@ extern "C" {
|
|||||||
#define GL_FRAMEBUFFER_COMPLETE_EXT 0x8CD5
|
#define GL_FRAMEBUFFER_COMPLETE_EXT 0x8CD5
|
||||||
#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT 0x8CD6
|
#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT 0x8CD6
|
||||||
#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT 0x8CD7
|
#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_DIMENSIONS_EXT 0x8CD9
|
||||||
#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT 0x8CDA
|
#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT 0x8CDA
|
||||||
#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT 0x8CDB
|
#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT 0x8CDB
|
||||||
@@ -3104,6 +3097,8 @@ extern "C" {
|
|||||||
|
|
||||||
#ifndef GL_EXT_framebuffer_multisample
|
#ifndef GL_EXT_framebuffer_multisample
|
||||||
#define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB
|
#define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB
|
||||||
|
#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56
|
||||||
|
#define GL_MAX_SAMPLES_EXT 0x8D57
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef GL_MESAX_texture_stack
|
#ifndef GL_MESAX_texture_stack
|
||||||
@@ -3122,6 +3117,268 @@ extern "C" {
|
|||||||
#ifndef GL_EXT_gpu_program_parameters
|
#ifndef GL_EXT_gpu_program_parameters
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef GL_APPLE_flush_buffer_range
|
||||||
|
#define GL_BUFFER_SERIALIZED_MODIFY_APPLE 0x8A12
|
||||||
|
#define GL_BUFFER_FLUSHING_UNMAP_APPLE 0x8A13
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GL_NV_gpu_program4
|
||||||
|
#define GL_MIN_PROGRAM_TEXEL_OFFSET_NV 0x8904
|
||||||
|
#define GL_MAX_PROGRAM_TEXEL_OFFSET_NV 0x8905
|
||||||
|
#define GL_PROGRAM_ATTRIB_COMPONENTS_NV 0x8906
|
||||||
|
#define GL_PROGRAM_RESULT_COMPONENTS_NV 0x8907
|
||||||
|
#define GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV 0x8908
|
||||||
|
#define GL_MAX_PROGRAM_RESULT_COMPONENTS_NV 0x8909
|
||||||
|
#define GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV 0x8DA5
|
||||||
|
#define GL_MAX_PROGRAM_GENERIC_RESULTS_NV 0x8DA6
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GL_NV_geometry_program4
|
||||||
|
#define GL_LINES_ADJACENCY_EXT 0x000A
|
||||||
|
#define GL_LINE_STRIP_ADJACENCY_EXT 0x000B
|
||||||
|
#define GL_TRIANGLES_ADJACENCY_EXT 0x000C
|
||||||
|
#define GL_TRIANGLE_STRIP_ADJACENCY_EXT 0x000D
|
||||||
|
#define GL_GEOMETRY_PROGRAM_NV 0x8C26
|
||||||
|
#define GL_MAX_PROGRAM_OUTPUT_VERTICES_NV 0x8C27
|
||||||
|
#define GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV 0x8C28
|
||||||
|
#define GL_GEOMETRY_VERTICES_OUT_EXT 0x8DDA
|
||||||
|
#define GL_GEOMETRY_INPUT_TYPE_EXT 0x8DDB
|
||||||
|
#define GL_GEOMETRY_OUTPUT_TYPE_EXT 0x8DDC
|
||||||
|
#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29
|
||||||
|
#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7
|
||||||
|
#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8
|
||||||
|
#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT 0x8DA9
|
||||||
|
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT 0x8CD4
|
||||||
|
#define GL_PROGRAM_POINT_SIZE_EXT 0x8642
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GL_EXT_geometry_shader4
|
||||||
|
#define GL_GEOMETRY_SHADER_EXT 0x8DD9
|
||||||
|
/* reuse GL_GEOMETRY_VERTICES_OUT_EXT */
|
||||||
|
/* reuse GL_GEOMETRY_INPUT_TYPE_EXT */
|
||||||
|
/* reuse GL_GEOMETRY_OUTPUT_TYPE_EXT */
|
||||||
|
/* reuse GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT */
|
||||||
|
#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT 0x8DDD
|
||||||
|
#define GL_MAX_VERTEX_VARYING_COMPONENTS_EXT 0x8DDE
|
||||||
|
#define GL_MAX_VARYING_COMPONENTS_EXT 0x8B4B
|
||||||
|
#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF
|
||||||
|
#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0
|
||||||
|
#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1
|
||||||
|
/* reuse GL_LINES_ADJACENCY_EXT */
|
||||||
|
/* reuse GL_LINE_STRIP_ADJACENCY_EXT */
|
||||||
|
/* reuse GL_TRIANGLES_ADJACENCY_EXT */
|
||||||
|
/* reuse GL_TRIANGLE_STRIP_ADJACENCY_EXT */
|
||||||
|
/* reuse GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT */
|
||||||
|
/* reuse GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT */
|
||||||
|
/* reuse GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT */
|
||||||
|
/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT */
|
||||||
|
/* reuse GL_PROGRAM_POINT_SIZE_EXT */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GL_NV_vertex_program4
|
||||||
|
#define GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV 0x88FD
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GL_EXT_gpu_shader4
|
||||||
|
#define GL_SAMPLER_1D_ARRAY_EXT 0x8DC0
|
||||||
|
#define GL_SAMPLER_2D_ARRAY_EXT 0x8DC1
|
||||||
|
#define GL_SAMPLER_BUFFER_EXT 0x8DC2
|
||||||
|
#define GL_SAMPLER_1D_ARRAY_SHADOW_EXT 0x8DC3
|
||||||
|
#define GL_SAMPLER_2D_ARRAY_SHADOW_EXT 0x8DC4
|
||||||
|
#define GL_SAMPLER_CUBE_SHADOW_EXT 0x8DC5
|
||||||
|
#define GL_UNSIGNED_INT_VEC2_EXT 0x8DC6
|
||||||
|
#define GL_UNSIGNED_INT_VEC3_EXT 0x8DC7
|
||||||
|
#define GL_UNSIGNED_INT_VEC4_EXT 0x8DC8
|
||||||
|
#define GL_INT_SAMPLER_1D_EXT 0x8DC9
|
||||||
|
#define GL_INT_SAMPLER_2D_EXT 0x8DCA
|
||||||
|
#define GL_INT_SAMPLER_3D_EXT 0x8DCB
|
||||||
|
#define GL_INT_SAMPLER_CUBE_EXT 0x8DCC
|
||||||
|
#define GL_INT_SAMPLER_2D_RECT_EXT 0x8DCD
|
||||||
|
#define GL_INT_SAMPLER_1D_ARRAY_EXT 0x8DCE
|
||||||
|
#define GL_INT_SAMPLER_2D_ARRAY_EXT 0x8DCF
|
||||||
|
#define GL_INT_SAMPLER_BUFFER_EXT 0x8DD0
|
||||||
|
#define GL_UNSIGNED_INT_SAMPLER_1D_EXT 0x8DD1
|
||||||
|
#define GL_UNSIGNED_INT_SAMPLER_2D_EXT 0x8DD2
|
||||||
|
#define GL_UNSIGNED_INT_SAMPLER_3D_EXT 0x8DD3
|
||||||
|
#define GL_UNSIGNED_INT_SAMPLER_CUBE_EXT 0x8DD4
|
||||||
|
#define GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT 0x8DD5
|
||||||
|
#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT 0x8DD6
|
||||||
|
#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT 0x8DD7
|
||||||
|
#define GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT 0x8DD8
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GL_EXT_draw_instanced
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GL_EXT_packed_float
|
||||||
|
#define GL_R11F_G11F_B10F_EXT 0x8C3A
|
||||||
|
#define GL_UNSIGNED_INT_10F_11F_11F_REV_EXT 0x8C3B
|
||||||
|
#define GL_RGBA_SIGNED_COMPONENTS_EXT 0x8C3C
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GL_EXT_texture_array
|
||||||
|
#define GL_TEXTURE_1D_ARRAY_EXT 0x8C18
|
||||||
|
#define GL_PROXY_TEXTURE_1D_ARRAY_EXT 0x8C19
|
||||||
|
#define GL_TEXTURE_2D_ARRAY_EXT 0x8C1A
|
||||||
|
#define GL_PROXY_TEXTURE_2D_ARRAY_EXT 0x8C1B
|
||||||
|
#define GL_TEXTURE_BINDING_1D_ARRAY_EXT 0x8C1C
|
||||||
|
#define GL_TEXTURE_BINDING_2D_ARRAY_EXT 0x8C1D
|
||||||
|
#define GL_MAX_ARRAY_TEXTURE_LAYERS_EXT 0x88FF
|
||||||
|
#define GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT 0x884E
|
||||||
|
/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GL_EXT_texture_buffer_object
|
||||||
|
#define GL_TEXTURE_BUFFER_EXT 0x8C2A
|
||||||
|
#define GL_MAX_TEXTURE_BUFFER_SIZE_EXT 0x8C2B
|
||||||
|
#define GL_TEXTURE_BINDING_BUFFER_EXT 0x8C2C
|
||||||
|
#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT 0x8C2D
|
||||||
|
#define GL_TEXTURE_BUFFER_FORMAT_EXT 0x8C2E
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GL_EXT_texture_compression_latc
|
||||||
|
#define GL_COMPRESSED_LUMINANCE_LATC1_EXT 0x8C70
|
||||||
|
#define GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT 0x8C71
|
||||||
|
#define GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT 0x8C72
|
||||||
|
#define GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT 0x8C73
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GL_EXT_texture_compression_rgtc
|
||||||
|
#define GL_COMPRESSED_RED_RGTC1_EXT 0x8DBB
|
||||||
|
#define GL_COMPRESSED_SIGNED_RED_RGTC1_EXT 0x8DBC
|
||||||
|
#define GL_COMPRESSED_RED_GREEN_RGTC2_EXT 0x8DBD
|
||||||
|
#define GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT 0x8DBE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GL_EXT_texture_shared_exponent
|
||||||
|
#define GL_RGB9_E5_EXT 0x8C3D
|
||||||
|
#define GL_UNSIGNED_INT_5_9_9_9_REV_EXT 0x8C3E
|
||||||
|
#define GL_TEXTURE_SHARED_SIZE_EXT 0x8C3F
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GL_NV_depth_buffer_float
|
||||||
|
#define GL_DEPTH_COMPONENT32F_NV 0x8DAB
|
||||||
|
#define GL_DEPTH32F_STENCIL8_NV 0x8DAC
|
||||||
|
#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV 0x8DAD
|
||||||
|
#define GL_DEPTH_BUFFER_FLOAT_MODE_NV 0x8DAF
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GL_NV_fragment_program4
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GL_NV_framebuffer_multisample_coverage
|
||||||
|
#define GL_RENDERBUFFER_COVERAGE_SAMPLES_NV 0x8CAB
|
||||||
|
#define GL_RENDERBUFFER_COLOR_SAMPLES_NV 0x8E10
|
||||||
|
#define GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV 0x8E11
|
||||||
|
#define GL_MULTISAMPLE_COVERAGE_MODES_NV 0x8E12
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GL_EXT_framebuffer_sRGB
|
||||||
|
#define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9
|
||||||
|
#define GL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x8DBA
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GL_NV_geometry_shader4
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GL_NV_parameter_buffer_object
|
||||||
|
#define GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV 0x8DA0
|
||||||
|
#define GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV 0x8DA1
|
||||||
|
#define GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV 0x8DA2
|
||||||
|
#define GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV 0x8DA3
|
||||||
|
#define GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV 0x8DA4
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GL_EXT_draw_buffers2
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GL_NV_transform_feedback
|
||||||
|
#define GL_BACK_PRIMARY_COLOR_NV 0x8C77
|
||||||
|
#define GL_BACK_SECONDARY_COLOR_NV 0x8C78
|
||||||
|
#define GL_TEXTURE_COORD_NV 0x8C79
|
||||||
|
#define GL_CLIP_DISTANCE_NV 0x8C7A
|
||||||
|
#define GL_VERTEX_ID_NV 0x8C7B
|
||||||
|
#define GL_PRIMITIVE_ID_NV 0x8C7C
|
||||||
|
#define GL_GENERIC_ATTRIB_NV 0x8C7D
|
||||||
|
#define GL_TRANSFORM_FEEDBACK_ATTRIBS_NV 0x8C7E
|
||||||
|
#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV 0x8C7F
|
||||||
|
#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV 0x8C80
|
||||||
|
#define GL_ACTIVE_VARYINGS_NV 0x8C81
|
||||||
|
#define GL_ACTIVE_VARYING_MAX_LENGTH_NV 0x8C82
|
||||||
|
#define GL_TRANSFORM_FEEDBACK_VARYINGS_NV 0x8C83
|
||||||
|
#define GL_TRANSFORM_FEEDBACK_BUFFER_START_NV 0x8C84
|
||||||
|
#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV 0x8C85
|
||||||
|
#define GL_TRANSFORM_FEEDBACK_RECORD_NV 0x8C86
|
||||||
|
#define GL_PRIMITIVES_GENERATED_NV 0x8C87
|
||||||
|
#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV 0x8C88
|
||||||
|
#define GL_RASTERIZER_DISCARD_NV 0x8C89
|
||||||
|
#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_ATTRIBS_NV 0x8C8A
|
||||||
|
#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV 0x8C8B
|
||||||
|
#define GL_INTERLEAVED_ATTRIBS_NV 0x8C8C
|
||||||
|
#define GL_SEPARATE_ATTRIBS_NV 0x8C8D
|
||||||
|
#define GL_TRANSFORM_FEEDBACK_BUFFER_NV 0x8C8E
|
||||||
|
#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV 0x8C8F
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GL_EXT_bindable_uniform
|
||||||
|
#define GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT 0x8DE2
|
||||||
|
#define GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT 0x8DE3
|
||||||
|
#define GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT 0x8DE4
|
||||||
|
#define GL_MAX_BINDABLE_UNIFORM_SIZE_EXT 0x8DED
|
||||||
|
#define GL_UNIFORM_BUFFER_EXT 0x8DEE
|
||||||
|
#define GL_UNIFORM_BUFFER_BINDING_EXT 0x8DEF
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GL_EXT_texture_integer
|
||||||
|
#define GL_RGBA32UI_EXT 0x8D70
|
||||||
|
#define GL_RGB32UI_EXT 0x8D71
|
||||||
|
#define GL_ALPHA32UI_EXT 0x8D72
|
||||||
|
#define GL_INTENSITY32UI_EXT 0x8D73
|
||||||
|
#define GL_LUMINANCE32UI_EXT 0x8D74
|
||||||
|
#define GL_LUMINANCE_ALPHA32UI_EXT 0x8D75
|
||||||
|
#define GL_RGBA16UI_EXT 0x8D76
|
||||||
|
#define GL_RGB16UI_EXT 0x8D77
|
||||||
|
#define GL_ALPHA16UI_EXT 0x8D78
|
||||||
|
#define GL_INTENSITY16UI_EXT 0x8D79
|
||||||
|
#define GL_LUMINANCE16UI_EXT 0x8D7A
|
||||||
|
#define GL_LUMINANCE_ALPHA16UI_EXT 0x8D7B
|
||||||
|
#define GL_RGBA8UI_EXT 0x8D7C
|
||||||
|
#define GL_RGB8UI_EXT 0x8D7D
|
||||||
|
#define GL_ALPHA8UI_EXT 0x8D7E
|
||||||
|
#define GL_INTENSITY8UI_EXT 0x8D7F
|
||||||
|
#define GL_LUMINANCE8UI_EXT 0x8D80
|
||||||
|
#define GL_LUMINANCE_ALPHA8UI_EXT 0x8D81
|
||||||
|
#define GL_RGBA32I_EXT 0x8D82
|
||||||
|
#define GL_RGB32I_EXT 0x8D83
|
||||||
|
#define GL_ALPHA32I_EXT 0x8D84
|
||||||
|
#define GL_INTENSITY32I_EXT 0x8D85
|
||||||
|
#define GL_LUMINANCE32I_EXT 0x8D86
|
||||||
|
#define GL_LUMINANCE_ALPHA32I_EXT 0x8D87
|
||||||
|
#define GL_RGBA16I_EXT 0x8D88
|
||||||
|
#define GL_RGB16I_EXT 0x8D89
|
||||||
|
#define GL_ALPHA16I_EXT 0x8D8A
|
||||||
|
#define GL_INTENSITY16I_EXT 0x8D8B
|
||||||
|
#define GL_LUMINANCE16I_EXT 0x8D8C
|
||||||
|
#define GL_LUMINANCE_ALPHA16I_EXT 0x8D8D
|
||||||
|
#define GL_RGBA8I_EXT 0x8D8E
|
||||||
|
#define GL_RGB8I_EXT 0x8D8F
|
||||||
|
#define GL_ALPHA8I_EXT 0x8D90
|
||||||
|
#define GL_INTENSITY8I_EXT 0x8D91
|
||||||
|
#define GL_LUMINANCE8I_EXT 0x8D92
|
||||||
|
#define GL_LUMINANCE_ALPHA8I_EXT 0x8D93
|
||||||
|
#define GL_RED_INTEGER_EXT 0x8D94
|
||||||
|
#define GL_GREEN_INTEGER_EXT 0x8D95
|
||||||
|
#define GL_BLUE_INTEGER_EXT 0x8D96
|
||||||
|
#define GL_ALPHA_INTEGER_EXT 0x8D97
|
||||||
|
#define GL_RGB_INTEGER_EXT 0x8D98
|
||||||
|
#define GL_RGBA_INTEGER_EXT 0x8D99
|
||||||
|
#define GL_BGR_INTEGER_EXT 0x8D9A
|
||||||
|
#define GL_BGRA_INTEGER_EXT 0x8D9B
|
||||||
|
#define GL_LUMINANCE_INTEGER_EXT 0x8D9C
|
||||||
|
#define GL_LUMINANCE_ALPHA_INTEGER_EXT 0x8D9D
|
||||||
|
#define GL_RGBA_INTEGER_MODE_EXT 0x8D9E
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************/
|
/*************************************************************/
|
||||||
|
|
||||||
@@ -3162,7 +3419,7 @@ typedef unsigned short GLhalfNV;
|
|||||||
/* This code block is duplicated in glext.h, so must be protected */
|
/* This code block is duplicated in glext.h, so must be protected */
|
||||||
#define GLEXT_64_TYPES_DEFINED
|
#define GLEXT_64_TYPES_DEFINED
|
||||||
/* Define int32_t, int64_t, and uint64_t types for UST/MSC */
|
/* Define int32_t, int64_t, and uint64_t types for UST/MSC */
|
||||||
/* (as used in the GLX_OML_sync_control extension). */
|
/* (as used in the GL_EXT_timer_query extension). */
|
||||||
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
|
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
|
||||||
#include <inttypes.h>
|
#include <inttypes.h>
|
||||||
#elif defined(__sun__)
|
#elif defined(__sun__)
|
||||||
@@ -3184,12 +3441,12 @@ typedef unsigned long long int uint64_t;
|
|||||||
typedef long int int32_t;
|
typedef long int int32_t;
|
||||||
typedef long long int int64_t;
|
typedef long long int int64_t;
|
||||||
typedef unsigned long long int uint64_t;
|
typedef unsigned long long int uint64_t;
|
||||||
#elif defined(WIN32) && defined(_MSC_VER)
|
#elif defined(_WIN32) && defined(__GNUC__)
|
||||||
typedef long int int32_t;
|
#include <stdint.h>
|
||||||
|
#elif defined(_WIN32)
|
||||||
|
typedef __int32 int32_t;
|
||||||
typedef __int64 int64_t;
|
typedef __int64 int64_t;
|
||||||
typedef unsigned __int64 uint64_t;
|
typedef unsigned __int64 uint64_t;
|
||||||
#elif defined(WIN32) && defined(__GNUC__)
|
|
||||||
#include <stdint.h>
|
|
||||||
#else
|
#else
|
||||||
#include <inttypes.h> /* Fallback option */
|
#include <inttypes.h> /* Fallback option */
|
||||||
#endif
|
#endif
|
||||||
@@ -6687,6 +6944,314 @@ typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERS4FVEXTPROC) (GLenum target, GLu
|
|||||||
typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat *params);
|
typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat *params);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef GL_APPLE_flush_buffer_range
|
||||||
|
#define GL_APPLE_flush_buffer_range 1
|
||||||
|
#ifdef GL_GLEXT_PROTOTYPES
|
||||||
|
GLAPI void APIENTRY glBufferParameteriAPPLE (GLenum, GLenum, GLint);
|
||||||
|
GLAPI void APIENTRY glFlushMappedBufferRangeAPPLE (GLenum, GLintptr, GLsizeiptr);
|
||||||
|
#endif /* GL_GLEXT_PROTOTYPES */
|
||||||
|
typedef void (APIENTRYP PFNGLBUFFERPARAMETERIAPPLEPROC) (GLenum target, GLenum pname, GLint param);
|
||||||
|
typedef void (APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC) (GLenum target, GLintptr offset, GLsizeiptr size);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GL_NV_gpu_program4
|
||||||
|
#define GL_NV_gpu_program4 1
|
||||||
|
#ifdef GL_GLEXT_PROTOTYPES
|
||||||
|
GLAPI void APIENTRY glProgramLocalParameterI4iNV (GLenum, GLuint, GLint, GLint, GLint, GLint);
|
||||||
|
GLAPI void APIENTRY glProgramLocalParameterI4ivNV (GLenum, GLuint, const GLint *);
|
||||||
|
GLAPI void APIENTRY glProgramLocalParametersI4ivNV (GLenum, GLuint, GLsizei, const GLint *);
|
||||||
|
GLAPI void APIENTRY glProgramLocalParameterI4uiNV (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint);
|
||||||
|
GLAPI void APIENTRY glProgramLocalParameterI4uivNV (GLenum, GLuint, const GLuint *);
|
||||||
|
GLAPI void APIENTRY glProgramLocalParametersI4uivNV (GLenum, GLuint, GLsizei, const GLuint *);
|
||||||
|
GLAPI void APIENTRY glProgramEnvParameterI4iNV (GLenum, GLuint, GLint, GLint, GLint, GLint);
|
||||||
|
GLAPI void APIENTRY glProgramEnvParameterI4ivNV (GLenum, GLuint, const GLint *);
|
||||||
|
GLAPI void APIENTRY glProgramEnvParametersI4ivNV (GLenum, GLuint, GLsizei, const GLint *);
|
||||||
|
GLAPI void APIENTRY glProgramEnvParameterI4uiNV (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint);
|
||||||
|
GLAPI void APIENTRY glProgramEnvParameterI4uivNV (GLenum, GLuint, const GLuint *);
|
||||||
|
GLAPI void APIENTRY glProgramEnvParametersI4uivNV (GLenum, GLuint, GLsizei, const GLuint *);
|
||||||
|
GLAPI void APIENTRY glGetProgramLocalParameterIivNV (GLenum, GLuint, GLint *);
|
||||||
|
GLAPI void APIENTRY glGetProgramLocalParameterIuivNV (GLenum, GLuint, GLuint *);
|
||||||
|
GLAPI void APIENTRY glGetProgramEnvParameterIivNV (GLenum, GLuint, GLint *);
|
||||||
|
GLAPI void APIENTRY glGetProgramEnvParameterIuivNV (GLenum, GLuint, GLuint *);
|
||||||
|
#endif /* GL_GLEXT_PROTOTYPES */
|
||||||
|
typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w);
|
||||||
|
typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params);
|
||||||
|
typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params);
|
||||||
|
typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
|
||||||
|
typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params);
|
||||||
|
typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params);
|
||||||
|
typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w);
|
||||||
|
typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params);
|
||||||
|
typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params);
|
||||||
|
typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
|
||||||
|
typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params);
|
||||||
|
typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params);
|
||||||
|
typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERIIVNVPROC) (GLenum target, GLuint index, GLint *params);
|
||||||
|
typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERIUIVNVPROC) (GLenum target, GLuint index, GLuint *params);
|
||||||
|
typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERIIVNVPROC) (GLenum target, GLuint index, GLint *params);
|
||||||
|
typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERIUIVNVPROC) (GLenum target, GLuint index, GLuint *params);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GL_NV_geometry_program4
|
||||||
|
#define GL_NV_geometry_program4 1
|
||||||
|
#ifdef GL_GLEXT_PROTOTYPES
|
||||||
|
GLAPI void APIENTRY glProgramVertexLimitNV (GLenum, GLint);
|
||||||
|
GLAPI void APIENTRY glFramebufferTextureEXT (GLenum, GLenum, GLuint, GLint);
|
||||||
|
GLAPI void APIENTRY glFramebufferTextureLayerEXT (GLenum, GLenum, GLuint, GLint, GLint);
|
||||||
|
GLAPI void APIENTRY glFramebufferTextureFaceEXT (GLenum, GLenum, GLuint, GLint, GLenum);
|
||||||
|
#endif /* GL_GLEXT_PROTOTYPES */
|
||||||
|
typedef void (APIENTRYP PFNGLPROGRAMVERTEXLIMITNVPROC) (GLenum target, GLint limit);
|
||||||
|
typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level);
|
||||||
|
typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
|
||||||
|
typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GL_EXT_geometry_shader4
|
||||||
|
#define GL_EXT_geometry_shader4 1
|
||||||
|
#ifdef GL_GLEXT_PROTOTYPES
|
||||||
|
GLAPI void APIENTRY glProgramParameteriEXT (GLuint, GLenum, GLint);
|
||||||
|
#endif /* GL_GLEXT_PROTOTYPES */
|
||||||
|
typedef void (APIENTRYP PFNGLPROGRAMPARAMETERIEXTPROC) (GLuint program, GLenum pname, GLint value);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GL_NV_vertex_program4
|
||||||
|
#define GL_NV_vertex_program4 1
|
||||||
|
#ifdef GL_GLEXT_PROTOTYPES
|
||||||
|
GLAPI void APIENTRY glVertexAttribI1iEXT (GLuint, GLint);
|
||||||
|
GLAPI void APIENTRY glVertexAttribI2iEXT (GLuint, GLint, GLint);
|
||||||
|
GLAPI void APIENTRY glVertexAttribI3iEXT (GLuint, GLint, GLint, GLint);
|
||||||
|
GLAPI void APIENTRY glVertexAttribI4iEXT (GLuint, GLint, GLint, GLint, GLint);
|
||||||
|
GLAPI void APIENTRY glVertexAttribI1uiEXT (GLuint, GLuint);
|
||||||
|
GLAPI void APIENTRY glVertexAttribI2uiEXT (GLuint, GLuint, GLuint);
|
||||||
|
GLAPI void APIENTRY glVertexAttribI3uiEXT (GLuint, GLuint, GLuint, GLuint);
|
||||||
|
GLAPI void APIENTRY glVertexAttribI4uiEXT (GLuint, GLuint, GLuint, GLuint, GLuint);
|
||||||
|
GLAPI void APIENTRY glVertexAttribI1ivEXT (GLuint, const GLint *);
|
||||||
|
GLAPI void APIENTRY glVertexAttribI2ivEXT (GLuint, const GLint *);
|
||||||
|
GLAPI void APIENTRY glVertexAttribI3ivEXT (GLuint, const GLint *);
|
||||||
|
GLAPI void APIENTRY glVertexAttribI4ivEXT (GLuint, const GLint *);
|
||||||
|
GLAPI void APIENTRY glVertexAttribI1uivEXT (GLuint, const GLuint *);
|
||||||
|
GLAPI void APIENTRY glVertexAttribI2uivEXT (GLuint, const GLuint *);
|
||||||
|
GLAPI void APIENTRY glVertexAttribI3uivEXT (GLuint, const GLuint *);
|
||||||
|
GLAPI void APIENTRY glVertexAttribI4uivEXT (GLuint, const GLuint *);
|
||||||
|
GLAPI void APIENTRY glVertexAttribI4bvEXT (GLuint, const GLbyte *);
|
||||||
|
GLAPI void APIENTRY glVertexAttribI4svEXT (GLuint, const GLshort *);
|
||||||
|
GLAPI void APIENTRY glVertexAttribI4ubvEXT (GLuint, const GLubyte *);
|
||||||
|
GLAPI void APIENTRY glVertexAttribI4usvEXT (GLuint, const GLushort *);
|
||||||
|
GLAPI void APIENTRY glVertexAttribIPointerEXT (GLuint, GLint, GLenum, GLsizei, const GLvoid *);
|
||||||
|
GLAPI void APIENTRY glGetVertexAttribIivEXT (GLuint, GLenum, GLint *);
|
||||||
|
GLAPI void APIENTRY glGetVertexAttribIuivEXT (GLuint, GLenum, GLuint *);
|
||||||
|
#endif /* GL_GLEXT_PROTOTYPES */
|
||||||
|
typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IEXTPROC) (GLuint index, GLint x);
|
||||||
|
typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IEXTPROC) (GLuint index, GLint x, GLint y);
|
||||||
|
typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IEXTPROC) (GLuint index, GLint x, GLint y, GLint z);
|
||||||
|
typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IEXTPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w);
|
||||||
|
typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIEXTPROC) (GLuint index, GLuint x);
|
||||||
|
typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIEXTPROC) (GLuint index, GLuint x, GLuint y);
|
||||||
|
typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z);
|
||||||
|
typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
|
||||||
|
typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IVEXTPROC) (GLuint index, const GLint *v);
|
||||||
|
typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IVEXTPROC) (GLuint index, const GLint *v);
|
||||||
|
typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IVEXTPROC) (GLuint index, const GLint *v);
|
||||||
|
typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IVEXTPROC) (GLuint index, const GLint *v);
|
||||||
|
typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIVEXTPROC) (GLuint index, const GLuint *v);
|
||||||
|
typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIVEXTPROC) (GLuint index, const GLuint *v);
|
||||||
|
typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIVEXTPROC) (GLuint index, const GLuint *v);
|
||||||
|
typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIVEXTPROC) (GLuint index, const GLuint *v);
|
||||||
|
typedef void (APIENTRYP PFNGLVERTEXATTRIBI4BVEXTPROC) (GLuint index, const GLbyte *v);
|
||||||
|
typedef void (APIENTRYP PFNGLVERTEXATTRIBI4SVEXTPROC) (GLuint index, const GLshort *v);
|
||||||
|
typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UBVEXTPROC) (GLuint index, const GLubyte *v);
|
||||||
|
typedef void (APIENTRYP PFNGLVERTEXATTRIBI4USVEXTPROC) (GLuint index, const GLushort *v);
|
||||||
|
typedef void (APIENTRYP PFNGLVERTEXATTRIBIPOINTEREXTPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
|
||||||
|
typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIIVEXTPROC) (GLuint index, GLenum pname, GLint *params);
|
||||||
|
typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIUIVEXTPROC) (GLuint index, GLenum pname, GLuint *params);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GL_EXT_gpu_shader4
|
||||||
|
#define GL_EXT_gpu_shader4 1
|
||||||
|
#ifdef GL_GLEXT_PROTOTYPES
|
||||||
|
GLAPI void APIENTRY glGetUniformuivEXT (GLuint, GLint, GLuint *);
|
||||||
|
GLAPI void APIENTRY glBindFragDataLocationEXT (GLuint, GLuint, const GLchar *);
|
||||||
|
GLAPI GLint APIENTRY glGetFragDataLocationEXT (GLuint, const GLchar *);
|
||||||
|
GLAPI void APIENTRY glUniform1uiEXT (GLint, GLuint);
|
||||||
|
GLAPI void APIENTRY glUniform2uiEXT (GLint, GLuint, GLuint);
|
||||||
|
GLAPI void APIENTRY glUniform3uiEXT (GLint, GLuint, GLuint, GLuint);
|
||||||
|
GLAPI void APIENTRY glUniform4uiEXT (GLint, GLuint, GLuint, GLuint, GLuint);
|
||||||
|
GLAPI void APIENTRY glUniform1uivEXT (GLint, GLsizei, const GLuint *);
|
||||||
|
GLAPI void APIENTRY glUniform2uivEXT (GLint, GLsizei, const GLuint *);
|
||||||
|
GLAPI void APIENTRY glUniform3uivEXT (GLint, GLsizei, const GLuint *);
|
||||||
|
GLAPI void APIENTRY glUniform4uivEXT (GLint, GLsizei, const GLuint *);
|
||||||
|
#endif /* GL_GLEXT_PROTOTYPES */
|
||||||
|
typedef void (APIENTRYP PFNGLGETUNIFORMUIVEXTPROC) (GLuint program, GLint location, GLuint *params);
|
||||||
|
typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONEXTPROC) (GLuint program, GLuint color, const GLchar *name);
|
||||||
|
typedef GLint (APIENTRYP PFNGLGETFRAGDATALOCATIONEXTPROC) (GLuint program, const GLchar *name);
|
||||||
|
typedef void (APIENTRYP PFNGLUNIFORM1UIEXTPROC) (GLint location, GLuint v0);
|
||||||
|
typedef void (APIENTRYP PFNGLUNIFORM2UIEXTPROC) (GLint location, GLuint v0, GLuint v1);
|
||||||
|
typedef void (APIENTRYP PFNGLUNIFORM3UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2);
|
||||||
|
typedef void (APIENTRYP PFNGLUNIFORM4UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
|
||||||
|
typedef void (APIENTRYP PFNGLUNIFORM1UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value);
|
||||||
|
typedef void (APIENTRYP PFNGLUNIFORM2UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value);
|
||||||
|
typedef void (APIENTRYP PFNGLUNIFORM3UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value);
|
||||||
|
typedef void (APIENTRYP PFNGLUNIFORM4UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GL_EXT_draw_instanced
|
||||||
|
#define GL_EXT_draw_instanced 1
|
||||||
|
#ifdef GL_GLEXT_PROTOTYPES
|
||||||
|
GLAPI void APIENTRY glDrawArraysInstancedEXT (GLenum, GLint, GLsizei, GLsizei);
|
||||||
|
GLAPI void APIENTRY glDrawElementsInstancedEXT (GLenum, GLsizei, GLenum, const GLvoid *, GLsizei);
|
||||||
|
#endif /* GL_GLEXT_PROTOTYPES */
|
||||||
|
typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDEXTPROC) (GLenum mode, GLint start, GLsizei count, GLsizei primcount);
|
||||||
|
typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDEXTPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GL_EXT_packed_float
|
||||||
|
#define GL_EXT_packed_float 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GL_EXT_texture_array
|
||||||
|
#define GL_EXT_texture_array 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GL_EXT_texture_buffer_object
|
||||||
|
#define GL_EXT_texture_buffer_object 1
|
||||||
|
#ifdef GL_GLEXT_PROTOTYPES
|
||||||
|
GLAPI void APIENTRY glTexBufferEXT (GLenum, GLenum, GLuint);
|
||||||
|
#endif /* GL_GLEXT_PROTOTYPES */
|
||||||
|
typedef void (APIENTRYP PFNGLTEXBUFFEREXTPROC) (GLenum target, GLenum internalformat, GLuint buffer);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GL_EXT_texture_compression_latc
|
||||||
|
#define GL_EXT_texture_compression_latc 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GL_EXT_texture_compression_rgtc
|
||||||
|
#define GL_EXT_texture_compression_rgtc 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GL_EXT_texture_shared_exponent
|
||||||
|
#define GL_EXT_texture_shared_exponent 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GL_NV_depth_buffer_float
|
||||||
|
#define GL_NV_depth_buffer_float 1
|
||||||
|
#ifdef GL_GLEXT_PROTOTYPES
|
||||||
|
GLAPI void APIENTRY glDepthRangedNV (GLdouble, GLdouble);
|
||||||
|
GLAPI void APIENTRY glClearDepthdNV (GLdouble);
|
||||||
|
GLAPI void APIENTRY glDepthBoundsdNV (GLdouble, GLdouble);
|
||||||
|
#endif /* GL_GLEXT_PROTOTYPES */
|
||||||
|
typedef void (APIENTRYP PFNGLDEPTHRANGEDNVPROC) (GLdouble zNear, GLdouble zFar);
|
||||||
|
typedef void (APIENTRYP PFNGLCLEARDEPTHDNVPROC) (GLdouble depth);
|
||||||
|
typedef void (APIENTRYP PFNGLDEPTHBOUNDSDNVPROC) (GLdouble zmin, GLdouble zmax);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GL_NV_fragment_program4
|
||||||
|
#define GL_NV_fragment_program4 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GL_NV_framebuffer_multisample_coverage
|
||||||
|
#define GL_NV_framebuffer_multisample_coverage 1
|
||||||
|
#ifdef GL_GLEXT_PROTOTYPES
|
||||||
|
GLAPI void APIENTRY glRenderbufferStorageMultisampleCoverageNV (GLenum, GLsizei, GLsizei, GLenum, GLsizei, GLsizei);
|
||||||
|
#endif /* GL_GLEXT_PROTOTYPES */
|
||||||
|
typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GL_EXT_framebuffer_sRGB
|
||||||
|
#define GL_EXT_framebuffer_sRGB 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GL_NV_geometry_shader4
|
||||||
|
#define GL_NV_geometry_shader4 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GL_NV_parameter_buffer_object
|
||||||
|
#define GL_NV_parameter_buffer_object 1
|
||||||
|
#ifdef GL_GLEXT_PROTOTYPES
|
||||||
|
GLAPI void APIENTRY glProgramBufferParametersfvNV (GLenum, GLuint, GLuint, GLsizei, const GLfloat *);
|
||||||
|
GLAPI void APIENTRY glProgramBufferParametersIivNV (GLenum, GLuint, GLuint, GLsizei, const GLint *);
|
||||||
|
GLAPI void APIENTRY glProgramBufferParametersIuivNV (GLenum, GLuint, GLuint, GLsizei, const GLuint *);
|
||||||
|
#endif /* GL_GLEXT_PROTOTYPES */
|
||||||
|
typedef void (APIENTRYP PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLfloat *params);
|
||||||
|
typedef void (APIENTRYP PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLint *params);
|
||||||
|
typedef void (APIENTRYP PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLuint *params);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GL_EXT_draw_buffers2
|
||||||
|
#define GL_EXT_draw_buffers2 1
|
||||||
|
#ifdef GL_GLEXT_PROTOTYPES
|
||||||
|
GLAPI void APIENTRY glColorMaskIndexedEXT (GLuint, GLboolean, GLboolean, GLboolean, GLboolean);
|
||||||
|
GLAPI void APIENTRY glGetBooleanIndexedvEXT (GLenum, GLuint, GLboolean *);
|
||||||
|
GLAPI void APIENTRY glGetIntegerIndexedvEXT (GLenum, GLuint, GLint *);
|
||||||
|
GLAPI void APIENTRY glEnableIndexedEXT (GLenum, GLuint);
|
||||||
|
GLAPI void APIENTRY glDisableIndexedEXT (GLenum, GLuint);
|
||||||
|
GLAPI GLboolean APIENTRY glIsEnabledIndexedEXT (GLenum, GLuint);
|
||||||
|
#endif /* GL_GLEXT_PROTOTYPES */
|
||||||
|
typedef void (APIENTRYP PFNGLCOLORMASKINDEXEDEXTPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
|
||||||
|
typedef void (APIENTRYP PFNGLGETBOOLEANINDEXEDVEXTPROC) (GLenum target, GLuint index, GLboolean *data);
|
||||||
|
typedef void (APIENTRYP PFNGLGETINTEGERINDEXEDVEXTPROC) (GLenum target, GLuint index, GLint *data);
|
||||||
|
typedef void (APIENTRYP PFNGLENABLEINDEXEDEXTPROC) (GLenum target, GLuint index);
|
||||||
|
typedef void (APIENTRYP PFNGLDISABLEINDEXEDEXTPROC) (GLenum target, GLuint index);
|
||||||
|
typedef GLboolean (APIENTRYP PFNGLISENABLEDINDEXEDEXTPROC) (GLenum target, GLuint index);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GL_NV_transform_feedback
|
||||||
|
#define GL_NV_transform_feedback 1
|
||||||
|
#ifdef GL_GLEXT_PROTOTYPES
|
||||||
|
GLAPI void APIENTRY glBeginTransformFeedbackNV (GLenum);
|
||||||
|
GLAPI void APIENTRY glEndTransformFeedbackNV (void);
|
||||||
|
GLAPI void APIENTRY glTransformFeedbackAttribsNV (GLuint, const GLint *, GLenum);
|
||||||
|
GLAPI void APIENTRY glBindBufferRangeNV (GLenum, GLuint, GLuint, GLintptr, GLsizeiptr);
|
||||||
|
GLAPI void APIENTRY glBindBufferOffsetNV (GLenum, GLuint, GLuint, GLintptr);
|
||||||
|
GLAPI void APIENTRY glBindBufferBaseNV (GLenum, GLuint, GLuint);
|
||||||
|
GLAPI void APIENTRY glTransformFeedbackVaryingsNV (GLuint, GLsizei, const GLint *, GLenum);
|
||||||
|
GLAPI void APIENTRY glActiveVaryingNV (GLuint, const GLchar *);
|
||||||
|
GLAPI GLint APIENTRY glGetVaryingLocationNV (GLuint, const GLchar *);
|
||||||
|
GLAPI void APIENTRY glGetActiveVaryingNV (GLuint, GLuint, GLsizei, GLsizei *, GLsizei *, GLenum *, GLchar *);
|
||||||
|
GLAPI void APIENTRY glGetTransformFeedbackVaryingNV (GLuint, GLuint, GLint *);
|
||||||
|
#endif /* GL_GLEXT_PROTOTYPES */
|
||||||
|
typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKNVPROC) (GLenum primitiveMode);
|
||||||
|
typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKNVPROC) (void);
|
||||||
|
typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC) (GLuint count, const GLint *attribs, GLenum bufferMode);
|
||||||
|
typedef void (APIENTRYP PFNGLBINDBUFFERRANGENVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
|
||||||
|
typedef void (APIENTRYP PFNGLBINDBUFFEROFFSETNVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset);
|
||||||
|
typedef void (APIENTRYP PFNGLBINDBUFFERBASENVPROC) (GLenum target, GLuint index, GLuint buffer);
|
||||||
|
typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC) (GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode);
|
||||||
|
typedef void (APIENTRYP PFNGLACTIVEVARYINGNVPROC) (GLuint program, const GLchar *name);
|
||||||
|
typedef GLint (APIENTRYP PFNGLGETVARYINGLOCATIONNVPROC) (GLuint program, const GLchar *name);
|
||||||
|
typedef void (APIENTRYP PFNGLGETACTIVEVARYINGNVPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
|
||||||
|
typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC) (GLuint program, GLuint index, GLint *location);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GL_EXT_bindable_uniform
|
||||||
|
#define GL_EXT_bindable_uniform 1
|
||||||
|
#ifdef GL_GLEXT_PROTOTYPES
|
||||||
|
GLAPI void APIENTRY glUniformBufferEXT (GLuint, GLint, GLuint);
|
||||||
|
GLAPI GLint APIENTRY glGetUniformBufferSizeEXT (GLuint, GLint);
|
||||||
|
GLAPI GLintptr APIENTRY glGetUniformOffsetEXT (GLuint, GLint);
|
||||||
|
#endif /* GL_GLEXT_PROTOTYPES */
|
||||||
|
typedef void (APIENTRYP PFNGLUNIFORMBUFFEREXTPROC) (GLuint program, GLint location, GLuint buffer);
|
||||||
|
typedef GLint (APIENTRYP PFNGLGETUNIFORMBUFFERSIZEEXTPROC) (GLuint program, GLint location);
|
||||||
|
typedef GLintptr (APIENTRYP PFNGLGETUNIFORMOFFSETEXTPROC) (GLuint program, GLint location);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GL_EXT_texture_integer
|
||||||
|
#define GL_EXT_texture_integer 1
|
||||||
|
#ifdef GL_GLEXT_PROTOTYPES
|
||||||
|
GLAPI void APIENTRY glTexParameterIivEXT (GLenum, GLenum, const GLint *);
|
||||||
|
GLAPI void APIENTRY glTexParameterIuivEXT (GLenum, GLenum, const GLuint *);
|
||||||
|
GLAPI void APIENTRY glGetTexParameterIivEXT (GLenum, GLenum, GLint *);
|
||||||
|
GLAPI void APIENTRY glGetTexParameterIuivEXT (GLenum, GLenum, GLuint *);
|
||||||
|
GLAPI void APIENTRY glClearColorIiEXT (GLint, GLint, GLint, GLint);
|
||||||
|
GLAPI void APIENTRY glClearColorIuiEXT (GLuint, GLuint, GLuint, GLuint);
|
||||||
|
#endif /* GL_GLEXT_PROTOTYPES */
|
||||||
|
typedef void (APIENTRYP PFNGLTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, const GLint *params);
|
||||||
|
typedef void (APIENTRYP PFNGLTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, const GLuint *params);
|
||||||
|
typedef void (APIENTRYP PFNGLGETTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
|
||||||
|
typedef void (APIENTRYP PFNGLGETTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, GLuint *params);
|
||||||
|
typedef void (APIENTRYP PFNGLCLEARCOLORIIEXTPROC) (GLint red, GLint green, GLint blue, GLint alpha);
|
||||||
|
typedef void (APIENTRYP PFNGLCLEARCOLORIUIEXTPROC) (GLuint red, GLuint green, GLuint blue, GLuint alpha);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,6 +44,19 @@
|
|||||||
#define GLAPIENTRYP GLAPIENTRY *
|
#define GLAPIENTRYP GLAPIENTRY *
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef GLAPI
|
||||||
|
#undef GLAPI
|
||||||
|
#endif
|
||||||
|
|
||||||
|
# if (defined(_MSC_VER) || defined(__MINGW32__)) && defined(BUILD_GLU32)
|
||||||
|
# define GLAPI __declspec(dllexport)
|
||||||
|
# elif (defined(_MSC_VER) || defined(__MINGW32__)) && defined(_DLL) /* tag specifying we're building for DLL runtime support */
|
||||||
|
# define GLAPI __declspec(dllimport)
|
||||||
|
# else /* for use with static link lib build of Win32 edition only */
|
||||||
|
# define GLAPI extern
|
||||||
|
# endif /* _STATIC_MESA support */
|
||||||
|
|
||||||
|
|
||||||
#ifndef GLAPI
|
#ifndef GLAPI
|
||||||
#define GLAPI
|
#define GLAPI
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -10,6 +10,10 @@
|
|||||||
#include <GL/gl.h>
|
#include <GL/gl.h>
|
||||||
#include <GL/glu.h>
|
#include <GL/glu.h>
|
||||||
|
|
||||||
|
#if defined(__MINGW32__)
|
||||||
|
#include <GL/mesa_wgl.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
@@ -115,7 +119,7 @@ extern _CRTIMP void __cdecl exit(int);
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* GLUT API entry point declarations for Win32. */
|
/* GLUT API entry point declarations for Win32. */
|
||||||
#if defined(GLUT_BUILDING_LIB) && defined(_DLL)
|
#if (defined(BUILD_GLUT32) || defined(GLUT_BUILDING_LIB)) && defined(_DLL)
|
||||||
# define GLUTAPI __declspec(dllexport)
|
# define GLUTAPI __declspec(dllexport)
|
||||||
#elif defined(_DLL)
|
#elif defined(_DLL)
|
||||||
# define GLUTAPI __declspec(dllimport)
|
# define GLUTAPI __declspec(dllimport)
|
||||||
@@ -130,9 +134,12 @@ extern _CRTIMP void __cdecl exit(int);
|
|||||||
# pragma message( "----: being multiply defined you should include WINDOWS.H priot to gl/glut.h" )
|
# pragma message( "----: being multiply defined you should include WINDOWS.H priot to gl/glut.h" )
|
||||||
# endif
|
# endif
|
||||||
# define CALLBACK __stdcall
|
# define CALLBACK __stdcall
|
||||||
typedef int (GLUTAPIENTRY *PROC)();
|
|
||||||
typedef void *HGLRC;
|
#if !defined(__MINGW32__)
|
||||||
typedef void *HDC;
|
typedef int (GLUTAPIENTRY *PROC)();
|
||||||
|
typedef void *HGLRC;
|
||||||
|
typedef void *HDC;
|
||||||
|
#endif
|
||||||
typedef unsigned long COLORREF;
|
typedef unsigned long COLORREF;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -6,32 +6,26 @@ extern "C" {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** License Applicability. Except to the extent portions of this file are
|
** Copyright (c) 2007 The Khronos Group Inc.
|
||||||
** made subject to an alternative license as permitted in the SGI Free
|
|
||||||
** Software License B, Version 1.1 (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
|
** Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
** copy of this software and/or associated documentation files (the
|
||||||
|
** "Materials"), to deal in the Materials without restriction, including
|
||||||
|
** without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
** distribute, sublicense, and/or sell copies of the Materials, and to
|
||||||
|
** permit persons to whom the Materials are furnished to do so, subject to
|
||||||
|
** the following conditions:
|
||||||
**
|
**
|
||||||
** Note that, as provided in the License, the Software is distributed on an
|
** The above copyright notice and this permission notice shall be included
|
||||||
** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS
|
** in all copies or substantial portions of the Materials.
|
||||||
** 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,
|
** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics,
|
** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
** Inc. The Original Code is Copyright (c) 1991-2004 Silicon Graphics, Inc.
|
** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||||
** Copyright in any portions created by third parties is as indicated
|
** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||||
** elsewhere herein. All Rights Reserved.
|
** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||||
**
|
** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||||
** Additional Notice Provisions: This software was created using the
|
** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
||||||
** 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 defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__)
|
#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__)
|
||||||
@@ -52,9 +46,9 @@ extern "C" {
|
|||||||
/*************************************************************/
|
/*************************************************************/
|
||||||
|
|
||||||
/* Header file version number, required by OpenGL ABI for Linux */
|
/* Header file version number, required by OpenGL ABI for Linux */
|
||||||
/* glxext.h last updated 2006/08/30 */
|
/* glxext.h last updated 2007/04/21 */
|
||||||
/* Current version at http://www.opengl.org/registry/ */
|
/* Current version at http://www.opengl.org/registry/ */
|
||||||
#define GLX_GLXEXT_VERSION 14
|
#define GLX_GLXEXT_VERSION 19
|
||||||
|
|
||||||
#ifndef GLX_VERSION_1_3
|
#ifndef GLX_VERSION_1_3
|
||||||
#define GLX_WINDOW_BIT 0x00000001
|
#define GLX_WINDOW_BIT 0x00000001
|
||||||
@@ -307,6 +301,51 @@ extern "C" {
|
|||||||
#ifndef GLX_MESA_agp_offset
|
#ifndef GLX_MESA_agp_offset
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef GLX_EXT_fbconfig_packed_float
|
||||||
|
#define GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT 0x20B1
|
||||||
|
#define GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT 0x00000008
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GLX_EXT_framebuffer_sRGB
|
||||||
|
#define GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20B2
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GLX_EXT_texture_from_pixmap
|
||||||
|
#define GLX_TEXTURE_1D_BIT_EXT 0x00000001
|
||||||
|
#define GLX_TEXTURE_2D_BIT_EXT 0x00000002
|
||||||
|
#define GLX_TEXTURE_RECTANGLE_BIT_EXT 0x00000004
|
||||||
|
#define GLX_BIND_TO_TEXTURE_RGB_EXT 0x20D0
|
||||||
|
#define GLX_BIND_TO_TEXTURE_RGBA_EXT 0x20D1
|
||||||
|
#define GLX_BIND_TO_MIPMAP_TEXTURE_EXT 0x20D2
|
||||||
|
#define GLX_BIND_TO_TEXTURE_TARGETS_EXT 0x20D3
|
||||||
|
#define GLX_Y_INVERTED_EXT 0x20D4
|
||||||
|
#define GLX_TEXTURE_FORMAT_EXT 0x20D5
|
||||||
|
#define GLX_TEXTURE_TARGET_EXT 0x20D6
|
||||||
|
#define GLX_MIPMAP_TEXTURE_EXT 0x20D7
|
||||||
|
#define GLX_TEXTURE_FORMAT_NONE_EXT 0x20D8
|
||||||
|
#define GLX_TEXTURE_FORMAT_RGB_EXT 0x20D9
|
||||||
|
#define GLX_TEXTURE_FORMAT_RGBA_EXT 0x20DA
|
||||||
|
#define GLX_TEXTURE_1D_EXT 0x20DB
|
||||||
|
#define GLX_TEXTURE_2D_EXT 0x20DC
|
||||||
|
#define GLX_TEXTURE_RECTANGLE_EXT 0x20DD
|
||||||
|
#define GLX_FRONT_LEFT_EXT 0x20DE
|
||||||
|
#define GLX_FRONT_RIGHT_EXT 0x20DF
|
||||||
|
#define GLX_BACK_LEFT_EXT 0x20E0
|
||||||
|
#define GLX_BACK_RIGHT_EXT 0x20E1
|
||||||
|
#define GLX_FRONT_EXT GLX_FRONT_LEFT_EXT
|
||||||
|
#define GLX_BACK_EXT GLX_BACK_LEFT_EXT
|
||||||
|
#define GLX_AUX0_EXT 0x20E2
|
||||||
|
#define GLX_AUX1_EXT 0x20E3
|
||||||
|
#define GLX_AUX2_EXT 0x20E4
|
||||||
|
#define GLX_AUX3_EXT 0x20E5
|
||||||
|
#define GLX_AUX4_EXT 0x20E6
|
||||||
|
#define GLX_AUX5_EXT 0x20E7
|
||||||
|
#define GLX_AUX6_EXT 0x20E8
|
||||||
|
#define GLX_AUX7_EXT 0x20E9
|
||||||
|
#define GLX_AUX8_EXT 0x20EA
|
||||||
|
#define GLX_AUX9_EXT 0x20EB
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************/
|
/*************************************************************/
|
||||||
|
|
||||||
@@ -347,7 +386,7 @@ typedef struct {
|
|||||||
/* (as used in the GLX_OML_sync_control extension). */
|
/* (as used in the GLX_OML_sync_control extension). */
|
||||||
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
|
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
|
||||||
#include <inttypes.h>
|
#include <inttypes.h>
|
||||||
#elif defined(__sun__)
|
#elif defined(__sun__) || defined(__digital__)
|
||||||
#include <inttypes.h>
|
#include <inttypes.h>
|
||||||
#if defined(__STDC__)
|
#if defined(__STDC__)
|
||||||
#if defined(__arch64__)
|
#if defined(__arch64__)
|
||||||
@@ -366,8 +405,12 @@ typedef unsigned long long int uint64_t;
|
|||||||
typedef long int int32_t;
|
typedef long int int32_t;
|
||||||
typedef long long int int64_t;
|
typedef long long int int64_t;
|
||||||
typedef unsigned long long int uint64_t;
|
typedef unsigned long long int uint64_t;
|
||||||
#elif defined(WIN32) && defined(__GNUC__)
|
#elif defined(_WIN32) && defined(__GNUC__)
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
#elif defined(_WIN32)
|
||||||
|
typedef __int32 int32_t;
|
||||||
|
typedef __int64 int64_t;
|
||||||
|
typedef unsigned __int64 uint64_t;
|
||||||
#else
|
#else
|
||||||
#include <inttypes.h> /* Fallback option */
|
#include <inttypes.h> /* Fallback option */
|
||||||
#endif
|
#endif
|
||||||
@@ -716,6 +759,24 @@ extern unsigned int glXGetAGPOffsetMESA (const void *);
|
|||||||
typedef unsigned int ( * PFNGLXGETAGPOFFSETMESAPROC) (const void *pointer);
|
typedef unsigned int ( * PFNGLXGETAGPOFFSETMESAPROC) (const void *pointer);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef GLX_EXT_fbconfig_packed_float
|
||||||
|
#define GLX_EXT_fbconfig_packed_float 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GLX_EXT_framebuffer_sRGB
|
||||||
|
#define GLX_EXT_framebuffer_sRGB 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GLX_EXT_texture_from_pixmap
|
||||||
|
#define GLX_EXT_texture_from_pixmap 1
|
||||||
|
#ifdef GLX_GLXEXT_PROTOTYPES
|
||||||
|
extern void glXBindTexImageEXT (Display *, GLXDrawable, int, const int *);
|
||||||
|
extern void glXReleaseTexImageEXT (Display *, GLXDrawable, int);
|
||||||
|
#endif /* GLX_GLXEXT_PROTOTYPES */
|
||||||
|
typedef void ( * PFNGLXBINDTEXIMAGEEXTPROC) (Display *dpy, GLXDrawable drawable, int buffer, const int *attrib_list);
|
||||||
|
typedef void ( * PFNGLXRELEASETEXIMAGEEXTPROC) (Display *dpy, GLXDrawable drawable, int buffer);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -237,6 +237,26 @@ struct __DRIinterfaceMethodsRec {
|
|||||||
GLboolean (*getMSCRate)(__DRInativeDisplay * dpy, __DRIid drawable,
|
GLboolean (*getMSCRate)(__DRInativeDisplay * dpy, __DRIid drawable,
|
||||||
int32_t * numerator, int32_t * denominator);
|
int32_t * numerator, int32_t * denominator);
|
||||||
/*@}*/
|
/*@}*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reports areas of the given drawable which have been modified by the
|
||||||
|
* driver.
|
||||||
|
*
|
||||||
|
* \param drawable which the drawing was done to.
|
||||||
|
* \param rects rectangles affected, with the drawable origin as the
|
||||||
|
* origin.
|
||||||
|
* \param x X offset of the drawable within the screen (used in the
|
||||||
|
* front_buffer case)
|
||||||
|
* \param y Y offset of the drawable within the screen.
|
||||||
|
* \param front_buffer boolean flag for whether the drawing to the
|
||||||
|
* drawable was actually done directly to the front buffer (instead
|
||||||
|
* of backing storage, for example)
|
||||||
|
*/
|
||||||
|
void (*reportDamage)(__DRInativeDisplay * dpy, int screen,
|
||||||
|
__DRIid drawable,
|
||||||
|
int x, int y,
|
||||||
|
drm_clip_rect_t *rects, int num_rects,
|
||||||
|
int front_buffer);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -38,17 +38,11 @@
|
|||||||
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
|
||||||
#ifdef CAPI
|
|
||||||
#undef CAPI
|
|
||||||
#endif
|
|
||||||
#define CAPI
|
|
||||||
|
|
||||||
#define GL_CORE_SGI 1
|
#define GL_CORE_SGI 1
|
||||||
#define GL_CORE_MESA 2
|
#define GL_CORE_MESA 2
|
||||||
#define GL_CORE_APPLE 4
|
#define GL_CORE_APPLE 4
|
||||||
|
|
||||||
typedef struct __GLcontextRec __GLcontext;
|
typedef struct __GLcontextRec __GLcontext;
|
||||||
typedef struct __GLinterfaceRec __GLinterface;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** This file defines the interface between the GL core and the surrounding
|
** This file defines the interface between the GL core and the surrounding
|
||||||
@@ -186,334 +180,4 @@ typedef struct __GLcontextModesRec {
|
|||||||
#define GLX_TEXTURE_2D_BIT_EXT 0x00000002
|
#define GLX_TEXTURE_2D_BIT_EXT 0x00000002
|
||||||
#define GLX_TEXTURE_RECTANGLE_BIT_EXT 0x00000004
|
#define GLX_TEXTURE_RECTANGLE_BIT_EXT 0x00000004
|
||||||
|
|
||||||
|
|
||||||
/************************************************************************/
|
|
||||||
|
|
||||||
/*
|
|
||||||
** Structure used for allocating and freeing drawable private memory.
|
|
||||||
** (like software buffers, for example).
|
|
||||||
**
|
|
||||||
** The memory allocation routines are provided by the surrounding
|
|
||||||
** "operating system" code, and they are to be used for allocating
|
|
||||||
** software buffers and things which are associated with the drawable,
|
|
||||||
** and used by any context which draws to that drawable. There are
|
|
||||||
** separate memory allocation functions for drawables and contexts
|
|
||||||
** since drawables and contexts can be created and destroyed independently
|
|
||||||
** of one another, and the "operating system" may want to use separate
|
|
||||||
** allocation arenas for each.
|
|
||||||
**
|
|
||||||
** The freePrivate function is filled in by the core routines when they
|
|
||||||
** allocates software buffers, and stick them in "private". The freePrivate
|
|
||||||
** function will destroy anything allocated to this drawable (to be called
|
|
||||||
** when the drawable is destroyed).
|
|
||||||
*/
|
|
||||||
typedef struct __GLdrawableRegionRec __GLdrawableRegion;
|
|
||||||
typedef struct __GLdrawableBufferRec __GLdrawableBuffer;
|
|
||||||
typedef struct __GLdrawablePrivateRec __GLdrawablePrivate;
|
|
||||||
|
|
||||||
typedef struct __GLregionRectRec {
|
|
||||||
/* lower left (inside the rectangle) */
|
|
||||||
GLint x0, y0;
|
|
||||||
/* upper right (outside the rectangle) */
|
|
||||||
GLint x1, y1;
|
|
||||||
} __GLregionRect;
|
|
||||||
|
|
||||||
struct __GLdrawableRegionRec {
|
|
||||||
GLint numRects;
|
|
||||||
__GLregionRect *rects;
|
|
||||||
__GLregionRect boundingRect;
|
|
||||||
};
|
|
||||||
|
|
||||||
/************************************************************************/
|
|
||||||
|
|
||||||
/* masks for the buffers */
|
|
||||||
#define __GL_FRONT_BUFFER_MASK 0x00000001
|
|
||||||
#define __GL_FRONT_LEFT_BUFFER_MASK 0x00000001
|
|
||||||
#define __GL_FRONT_RIGHT_BUFFER_MASK 0x00000002
|
|
||||||
#define __GL_BACK_BUFFER_MASK 0x00000004
|
|
||||||
#define __GL_BACK_LEFT_BUFFER_MASK 0x00000004
|
|
||||||
#define __GL_BACK_RIGHT_BUFFER_MASK 0x00000008
|
|
||||||
#define __GL_ACCUM_BUFFER_MASK 0x00000010
|
|
||||||
#define __GL_DEPTH_BUFFER_MASK 0x00000020
|
|
||||||
#define __GL_STENCIL_BUFFER_MASK 0x00000040
|
|
||||||
#define __GL_AUX_BUFFER_MASK(i) (0x0000080 << (i))
|
|
||||||
|
|
||||||
#define __GL_ALL_BUFFER_MASK 0xffffffff
|
|
||||||
|
|
||||||
/* what Resize routines return if resize resorted to fallback case */
|
|
||||||
#define __GL_BUFFER_FALLBACK 0x10
|
|
||||||
|
|
||||||
typedef void (*__GLbufFallbackInitFn)(__GLdrawableBuffer *buf,
|
|
||||||
__GLdrawablePrivate *glPriv, GLint bits);
|
|
||||||
typedef void (*__GLbufMainInitFn)(__GLdrawableBuffer *buf,
|
|
||||||
__GLdrawablePrivate *glPriv, GLint bits,
|
|
||||||
__GLbufFallbackInitFn back);
|
|
||||||
|
|
||||||
/*
|
|
||||||
** A drawable buffer
|
|
||||||
**
|
|
||||||
** This data structure describes the context side of a drawable.
|
|
||||||
**
|
|
||||||
** According to the spec there could be multiple contexts bound to the same
|
|
||||||
** drawable at the same time (from different threads). In order to avoid
|
|
||||||
** multiple-access conflicts, locks are used to serialize access. When a
|
|
||||||
** thread needs to access (read or write) a member of the drawable, it takes
|
|
||||||
** a lock first. Some of the entries in the drawable are treated "mostly
|
|
||||||
** constant", so we take the freedom of allowing access to them without
|
|
||||||
** taking a lock (for optimization reasons).
|
|
||||||
**
|
|
||||||
** For more details regarding locking, see buffers.h in the GL core
|
|
||||||
*/
|
|
||||||
struct __GLdrawableBufferRec {
|
|
||||||
/*
|
|
||||||
** Buffer dimensions
|
|
||||||
*/
|
|
||||||
GLint width, height, depth;
|
|
||||||
|
|
||||||
/*
|
|
||||||
** Framebuffer base address
|
|
||||||
*/
|
|
||||||
void *base;
|
|
||||||
|
|
||||||
/*
|
|
||||||
** Framebuffer size (in bytes)
|
|
||||||
*/
|
|
||||||
GLuint size;
|
|
||||||
|
|
||||||
/*
|
|
||||||
** Size (in bytes) of each element in the framebuffer
|
|
||||||
*/
|
|
||||||
GLuint elementSize;
|
|
||||||
GLuint elementSizeLog2;
|
|
||||||
|
|
||||||
/*
|
|
||||||
** Element skip from one scanline to the next.
|
|
||||||
** If the buffer is part of another buffer (for example, fullscreen
|
|
||||||
** front buffer), outerWidth is the width of that buffer.
|
|
||||||
*/
|
|
||||||
GLint outerWidth;
|
|
||||||
|
|
||||||
/*
|
|
||||||
** outerWidth * elementSize
|
|
||||||
*/
|
|
||||||
GLint byteWidth;
|
|
||||||
|
|
||||||
/*
|
|
||||||
** Allocation/deallocation is done based on this handle. A handle
|
|
||||||
** is conceptually different from the framebuffer 'base'.
|
|
||||||
*/
|
|
||||||
void *handle;
|
|
||||||
|
|
||||||
/* imported */
|
|
||||||
GLboolean (*resize)(__GLdrawableBuffer *buf,
|
|
||||||
GLint x, GLint y, GLuint width, GLuint height,
|
|
||||||
__GLdrawablePrivate *glPriv, GLuint bufferMask);
|
|
||||||
void (*lock)(__GLdrawableBuffer *buf, __GLdrawablePrivate *glPriv);
|
|
||||||
void (*unlock)(__GLdrawableBuffer *buf, __GLdrawablePrivate *glPriv);
|
|
||||||
void (*fill)(__GLdrawableBuffer *buf, __GLdrawablePrivate *glPriv,
|
|
||||||
GLuint val, GLint x, GLint y, GLint w, GLint h);
|
|
||||||
void (*free)(__GLdrawableBuffer *buf, __GLdrawablePrivate *glPriv);
|
|
||||||
|
|
||||||
/* exported */
|
|
||||||
void (*freePrivate)(__GLdrawableBuffer *buf, __GLdrawablePrivate *glPriv);
|
|
||||||
#ifdef __cplusplus
|
|
||||||
void *privatePtr;
|
|
||||||
#else
|
|
||||||
void *private;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* private */
|
|
||||||
void *other; /* implementation private data */
|
|
||||||
__GLbufMainInitFn mainInit;
|
|
||||||
__GLbufFallbackInitFn fallbackInit;
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
** The context side of the drawable private
|
|
||||||
*/
|
|
||||||
struct __GLdrawablePrivateRec {
|
|
||||||
/*
|
|
||||||
** Drawable Modes
|
|
||||||
*/
|
|
||||||
__GLcontextModes *modes;
|
|
||||||
|
|
||||||
/*
|
|
||||||
** Drawable size
|
|
||||||
*/
|
|
||||||
GLuint width, height;
|
|
||||||
|
|
||||||
/*
|
|
||||||
** Origin in screen coordinates of the drawable
|
|
||||||
*/
|
|
||||||
GLint xOrigin, yOrigin;
|
|
||||||
#ifdef __GL_ALIGNED_BUFFERS
|
|
||||||
/*
|
|
||||||
** Drawable offset from screen origin
|
|
||||||
*/
|
|
||||||
GLint xOffset, yOffset;
|
|
||||||
|
|
||||||
/*
|
|
||||||
** Alignment restriction
|
|
||||||
*/
|
|
||||||
GLint xAlignment, yAlignment;
|
|
||||||
#endif
|
|
||||||
/*
|
|
||||||
** Should we invert the y axis?
|
|
||||||
*/
|
|
||||||
GLint yInverted;
|
|
||||||
|
|
||||||
/*
|
|
||||||
** Mask specifying which buffers are renderable by the hw
|
|
||||||
*/
|
|
||||||
GLuint accelBufferMask;
|
|
||||||
|
|
||||||
/*
|
|
||||||
** the buffers themselves
|
|
||||||
*/
|
|
||||||
__GLdrawableBuffer frontBuffer;
|
|
||||||
__GLdrawableBuffer backBuffer;
|
|
||||||
__GLdrawableBuffer accumBuffer;
|
|
||||||
__GLdrawableBuffer depthBuffer;
|
|
||||||
__GLdrawableBuffer stencilBuffer;
|
|
||||||
#if defined(__GL_NUMBER_OF_AUX_BUFFERS) && (__GL_NUMBER_OF_AUX_BUFFERS > 0)
|
|
||||||
__GLdrawableBuffer *auxBuffer;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
__GLdrawableRegion ownershipRegion;
|
|
||||||
|
|
||||||
/*
|
|
||||||
** Lock for the drawable private structure
|
|
||||||
*/
|
|
||||||
void *lock;
|
|
||||||
#ifdef DEBUG
|
|
||||||
/* lock debugging info */
|
|
||||||
int lockRefCount;
|
|
||||||
int lockLine[10];
|
|
||||||
char *lockFile[10];
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* imported */
|
|
||||||
void *(*malloc)(size_t size);
|
|
||||||
void *(*calloc)(size_t numElem, size_t elemSize);
|
|
||||||
void *(*realloc)(void *oldAddr, size_t newSize);
|
|
||||||
void (*free)(void *addr);
|
|
||||||
|
|
||||||
GLboolean (*addSwapRect)(__GLdrawablePrivate *glPriv,
|
|
||||||
GLint x, GLint y, GLsizei width, GLsizei height);
|
|
||||||
void (*setClipRect)(__GLdrawablePrivate *glPriv,
|
|
||||||
GLint x, GLint y, GLsizei width, GLsizei height);
|
|
||||||
void (*updateClipRegion)(__GLdrawablePrivate *glPriv);
|
|
||||||
GLboolean (*resize)(__GLdrawablePrivate *glPriv);
|
|
||||||
void (*getDrawableSize)(__GLdrawablePrivate *glPriv,
|
|
||||||
GLint *x, GLint *y, GLuint *width, GLuint *height);
|
|
||||||
|
|
||||||
void (*lockDP)(__GLdrawablePrivate *glPriv, __GLcontext *gc);
|
|
||||||
void (*unlockDP)(__GLdrawablePrivate *glPriv);
|
|
||||||
|
|
||||||
/* exported */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
void *privatePtr;
|
|
||||||
#else
|
|
||||||
void *private;
|
|
||||||
#endif
|
|
||||||
void (*freePrivate)(__GLdrawablePrivate *);
|
|
||||||
|
|
||||||
/* client data */
|
|
||||||
void *other;
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
** Macros to lock/unlock the drawable private
|
|
||||||
*/
|
|
||||||
#if defined(DEBUG)
|
|
||||||
#define __GL_LOCK_DP(glPriv,gc) \
|
|
||||||
(*(glPriv)->lockDP)(glPriv,gc); \
|
|
||||||
(glPriv)->lockLine[(glPriv)->lockRefCount] = __LINE__; \
|
|
||||||
(glPriv)->lockFile[(glPriv)->lockRefCount] = __FILE__; \
|
|
||||||
(glPriv)->lockRefCount++
|
|
||||||
#define __GL_UNLOCK_DP(glPriv) \
|
|
||||||
(glPriv)->lockRefCount--; \
|
|
||||||
(glPriv)->lockLine[(glPriv)->lockRefCount] = 0; \
|
|
||||||
(glPriv)->lockFile[(glPriv)->lockRefCount] = NULL; \
|
|
||||||
(*(glPriv)->unlockDP)(glPriv)
|
|
||||||
#else /* DEBUG */
|
|
||||||
#define __GL_LOCK_DP(glPriv,gc) (*(glPriv)->lockDP)(glPriv,gc)
|
|
||||||
#define __GL_UNLOCK_DP(glPriv) (*(glPriv)->unlockDP)(glPriv)
|
|
||||||
#endif /* DEBUG */
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
** Procedures which are imported by the GL from the surrounding
|
|
||||||
** "operating system". Math functions are not considered part of the
|
|
||||||
** "operating system".
|
|
||||||
*/
|
|
||||||
typedef struct __GLimportsRec {
|
|
||||||
/* Memory management */
|
|
||||||
void * (*malloc)(__GLcontext *gc, size_t size);
|
|
||||||
void *(*calloc)(__GLcontext *gc, size_t numElem, size_t elemSize);
|
|
||||||
void *(*realloc)(__GLcontext *gc, void *oldAddr, size_t newSize);
|
|
||||||
void (*free)(__GLcontext *gc, void *addr);
|
|
||||||
|
|
||||||
/* Error handling */
|
|
||||||
void (*warning)(__GLcontext *gc, char *fmt);
|
|
||||||
void (*fatal)(__GLcontext *gc, char *fmt);
|
|
||||||
|
|
||||||
/* other system calls */
|
|
||||||
char *(CAPI *getenv)(__GLcontext *gc, const char *var);
|
|
||||||
int (CAPI *atoi)(__GLcontext *gc, const char *str);
|
|
||||||
int (CAPI *sprintf)(__GLcontext *gc, char *str, const char *fmt, ...);
|
|
||||||
void *(CAPI *fopen)(__GLcontext *gc, const char *path, const char *mode);
|
|
||||||
int (CAPI *fclose)(__GLcontext *gc, void *stream);
|
|
||||||
int (CAPI *fprintf)(__GLcontext *gc, void *stream, const char *fmt, ...);
|
|
||||||
|
|
||||||
/* Drawing surface management */
|
|
||||||
__GLdrawablePrivate *(*getDrawablePrivate)(__GLcontext *gc);
|
|
||||||
__GLdrawablePrivate *(*getReadablePrivate)(__GLcontext *gc);
|
|
||||||
|
|
||||||
/* Operating system dependent data goes here */
|
|
||||||
void *other;
|
|
||||||
} __GLimports;
|
|
||||||
|
|
||||||
/************************************************************************/
|
|
||||||
|
|
||||||
/*
|
|
||||||
** Procedures which are exported by the GL to the surrounding "operating
|
|
||||||
** system" so that it can manage multiple GL context's.
|
|
||||||
*/
|
|
||||||
typedef struct __GLexportsRec {
|
|
||||||
/* Context management (return GL_FALSE on failure) */
|
|
||||||
GLboolean (*destroyContext)(__GLcontext *gc);
|
|
||||||
GLboolean (*loseCurrent)(__GLcontext *gc);
|
|
||||||
/* oldglPriv isn't used anymore, kept for backwards compatibility */
|
|
||||||
GLboolean (*makeCurrent)(__GLcontext *gc);
|
|
||||||
GLboolean (*shareContext)(__GLcontext *gc, __GLcontext *gcShare);
|
|
||||||
GLboolean (*copyContext)(__GLcontext *dst, const __GLcontext *src, GLuint mask);
|
|
||||||
GLboolean (*forceCurrent)(__GLcontext *gc);
|
|
||||||
|
|
||||||
/* Drawing surface notification callbacks */
|
|
||||||
GLboolean (*notifyResize)(__GLcontext *gc);
|
|
||||||
void (*notifyDestroy)(__GLcontext *gc);
|
|
||||||
void (*notifySwapBuffers)(__GLcontext *gc);
|
|
||||||
|
|
||||||
/* Dispatch table override control for external agents like libGLS */
|
|
||||||
struct __GLdispatchStateRec* (*dispatchExec)(__GLcontext *gc);
|
|
||||||
void (*beginDispatchOverride)(__GLcontext *gc);
|
|
||||||
void (*endDispatchOverride)(__GLcontext *gc);
|
|
||||||
} __GLexports;
|
|
||||||
|
|
||||||
/************************************************************************/
|
|
||||||
|
|
||||||
/*
|
|
||||||
** This must be the first member of a __GLcontext structure. This is the
|
|
||||||
** only part of a context that is exposed to the outside world; everything
|
|
||||||
** else is opaque.
|
|
||||||
*/
|
|
||||||
struct __GLinterfaceRec {
|
|
||||||
__GLimports imports;
|
|
||||||
__GLexports exports;
|
|
||||||
};
|
|
||||||
|
|
||||||
extern __GLcontext *__glCoreCreateContext(__GLimports *, __GLcontextModes *);
|
|
||||||
extern void __glCoreNopDispatch(void);
|
|
||||||
|
|
||||||
#endif /* __gl_core_h_ */
|
#endif /* __gl_core_h_ */
|
||||||
|
|||||||
@@ -26,11 +26,12 @@
|
|||||||
/* prototypes for the Mesa WGL functions */
|
/* prototypes for the Mesa WGL functions */
|
||||||
/* relocated here so that I could make GLUT get them properly */
|
/* relocated here so that I could make GLUT get them properly */
|
||||||
|
|
||||||
#define _mesa_wgl_h_
|
|
||||||
|
|
||||||
#ifndef _mesa_wgl_h_
|
#ifndef _mesa_wgl_h_
|
||||||
#define _mesa_wgl_h_
|
#define _mesa_wgl_h_
|
||||||
|
|
||||||
|
#if defined(__MINGW32__)
|
||||||
|
# define __W32API_USE_DLLIMPORT__
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <GL/gl.h>
|
#include <GL/gl.h>
|
||||||
|
|
||||||
@@ -39,23 +40,16 @@ extern "C" {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#if !defined(OPENSTEP) && (defined(__WIN32__) || defined(__CYGWIN32__))
|
#ifndef WGLAPI
|
||||||
# if (defined(_MSC_VER) || defined(__MINGW32__)) && defined(BUILD_GL32) /* tag specify we're building mesa as a DLL */
|
#define WGLAPI GLAPI
|
||||||
# define GLAPI __declspec(dllexport)
|
#endif
|
||||||
# define WGLAPI __declspec(dllexport)
|
|
||||||
# elif (defined(_MSC_VER) || defined(__MINGW32__)) && defined(_DLL) /* tag specifying we're building for DLL runtime support */
|
#if defined(__MINGW32__)
|
||||||
# define GLAPI __declspec(dllimport)
|
# ifndef WIN32_LEAN_AND_MEAN
|
||||||
# define WGLAPI __declspec(dllimport)
|
# define WIN32_LEAN_AND_MEAN 1
|
||||||
# else /* for use with static link lib build of Win32 edition only */
|
# endif
|
||||||
# define GLAPI extern
|
# include <windows.h>
|
||||||
# define WGLAPI __declspec(dllimport)
|
#endif
|
||||||
# endif /* _STATIC_MESA support */
|
|
||||||
# define GLAPIENTRY __stdcall
|
|
||||||
#else
|
|
||||||
/* non-Windows compilation */
|
|
||||||
# define GLAPI extern
|
|
||||||
# define GLAPIENTRY
|
|
||||||
#endif /* WIN32 / CYGWIN32 bracket */
|
|
||||||
|
|
||||||
|
|
||||||
#if defined(_WIN32) && !defined(_WINGDI_) && !defined(_GNU_H_WINDOWS32_DEFINES) && !defined(OPENSTEP)
|
#if defined(_WIN32) && !defined(_WINGDI_) && !defined(_GNU_H_WINDOWS32_DEFINES) && !defined(OPENSTEP)
|
||||||
@@ -80,23 +74,23 @@ typedef struct tagPIXELFORMATDESCRIPTOR PIXELFORMATDESCRIPTOR, *PPIXELFORMATDESC
|
|||||||
# pragma warning( disable : 4273 ) /* 'function' : inconsistent DLL linkage. dllexport assumed. */
|
# pragma warning( disable : 4273 ) /* 'function' : inconsistent DLL linkage. dllexport assumed. */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
WGLAPI int GLAPIENTRY wglDeleteContext(HGLRC);
|
|
||||||
WGLAPI int GLAPIENTRY wglMakeCurrent(HDC,HGLRC);
|
|
||||||
WGLAPI int GLAPIENTRY wglSetPixelFormat(HDC, int, const PIXELFORMATDESCRIPTOR *);
|
WGLAPI int GLAPIENTRY wglSetPixelFormat(HDC, int, const PIXELFORMATDESCRIPTOR *);
|
||||||
WGLAPI int GLAPIENTRY wglSwapBuffers(HDC hdc);
|
WGLAPI int GLAPIENTRY wglSwapBuffers(HDC hdc);
|
||||||
WGLAPI HDC GLAPIENTRY wglGetCurrentDC(void);
|
WGLAPI int GLAPIENTRY wglChoosePixelFormat(HDC, const PIXELFORMATDESCRIPTOR *);
|
||||||
|
WGLAPI int GLAPIENTRY wglDescribePixelFormat(HDC,int, unsigned int, LPPIXELFORMATDESCRIPTOR);
|
||||||
|
WGLAPI int GLAPIENTRY wglGetPixelFormat(HDC hdc);
|
||||||
|
|
||||||
|
WGLAPI int GLAPIENTRY wglCopyContext(HGLRC, HGLRC, unsigned int);
|
||||||
WGLAPI HGLRC GLAPIENTRY wglCreateContext(HDC);
|
WGLAPI HGLRC GLAPIENTRY wglCreateContext(HDC);
|
||||||
WGLAPI HGLRC GLAPIENTRY wglCreateLayerContext(HDC,int);
|
WGLAPI HGLRC GLAPIENTRY wglCreateLayerContext(HDC,int);
|
||||||
WGLAPI HGLRC GLAPIENTRY wglGetCurrentContext(void);
|
|
||||||
WGLAPI PROC GLAPIENTRY wglGetProcAddress(const char*);
|
|
||||||
WGLAPI int GLAPIENTRY wglChoosePixelFormat(HDC, const PIXELFORMATDESCRIPTOR *);
|
|
||||||
WGLAPI int GLAPIENTRY wglCopyContext(HGLRC, HGLRC, unsigned int);
|
|
||||||
WGLAPI int GLAPIENTRY wglDeleteContext(HGLRC);
|
WGLAPI int GLAPIENTRY wglDeleteContext(HGLRC);
|
||||||
WGLAPI int GLAPIENTRY wglDescribeLayerPlane(HDC, int, int, unsigned int,LPLAYERPLANEDESCRIPTOR);
|
WGLAPI int GLAPIENTRY wglDescribeLayerPlane(HDC, int, int, unsigned int,LPLAYERPLANEDESCRIPTOR);
|
||||||
WGLAPI int GLAPIENTRY wglDescribePixelFormat(HDC,int, unsigned int, LPPIXELFORMATDESCRIPTOR);
|
WGLAPI HGLRC GLAPIENTRY wglGetCurrentContext(void);
|
||||||
|
WGLAPI HDC GLAPIENTRY wglGetCurrentDC(void);
|
||||||
WGLAPI int GLAPIENTRY wglGetLayerPaletteEntries(HDC, int, int, int,COLORREF *);
|
WGLAPI int GLAPIENTRY wglGetLayerPaletteEntries(HDC, int, int, int,COLORREF *);
|
||||||
WGLAPI int GLAPIENTRY wglGetPixelFormat(HDC hdc);
|
WGLAPI PROC GLAPIENTRY wglGetProcAddress(const char*);
|
||||||
WGLAPI int GLAPIENTRY wglMakeCurrent(HDC, HGLRC);
|
WGLAPI int GLAPIENTRY wglMakeCurrent(HDC,HGLRC);
|
||||||
WGLAPI int GLAPIENTRY wglRealizeLayerPalette(HDC, int, int);
|
WGLAPI int GLAPIENTRY wglRealizeLayerPalette(HDC, int, int);
|
||||||
WGLAPI int GLAPIENTRY wglSetLayerPaletteEntries(HDC, int, int, int,const COLORREF *);
|
WGLAPI int GLAPIENTRY wglSetLayerPaletteEntries(HDC, int, int, int,const COLORREF *);
|
||||||
WGLAPI int GLAPIENTRY wglShareLists(HGLRC, HGLRC);
|
WGLAPI int GLAPIENTRY wglShareLists(HGLRC, HGLRC);
|
||||||
@@ -105,12 +99,14 @@ WGLAPI int GLAPIENTRY wglUseFontBitmapsA(HDC, unsigned long, unsigned long, un
|
|||||||
WGLAPI int GLAPIENTRY wglUseFontBitmapsW(HDC, unsigned long, unsigned long, unsigned long);
|
WGLAPI int GLAPIENTRY wglUseFontBitmapsW(HDC, unsigned long, unsigned long, unsigned long);
|
||||||
WGLAPI int GLAPIENTRY wglUseFontOutlinesA(HDC, unsigned long, unsigned long, unsigned long, float,float, int, LPGLYPHMETRICSFLOAT);
|
WGLAPI int GLAPIENTRY wglUseFontOutlinesA(HDC, unsigned long, unsigned long, unsigned long, float,float, int, LPGLYPHMETRICSFLOAT);
|
||||||
WGLAPI int GLAPIENTRY wglUseFontOutlinesW(HDC, unsigned long, unsigned long, unsigned long, float,float, int, LPGLYPHMETRICSFLOAT);
|
WGLAPI int GLAPIENTRY wglUseFontOutlinesW(HDC, unsigned long, unsigned long, unsigned long, float,float, int, LPGLYPHMETRICSFLOAT);
|
||||||
|
|
||||||
|
#ifndef __MINGW32__
|
||||||
WGLAPI int GLAPIENTRY SwapBuffers(HDC);
|
WGLAPI int GLAPIENTRY SwapBuffers(HDC);
|
||||||
WGLAPI int GLAPIENTRY ChoosePixelFormat(HDC,const PIXELFORMATDESCRIPTOR *);
|
WGLAPI int GLAPIENTRY ChoosePixelFormat(HDC,const PIXELFORMATDESCRIPTOR *);
|
||||||
WGLAPI int GLAPIENTRY DescribePixelFormat(HDC,int,unsigned int,LPPIXELFORMATDESCRIPTOR);
|
WGLAPI int GLAPIENTRY DescribePixelFormat(HDC,int,unsigned int,LPPIXELFORMATDESCRIPTOR);
|
||||||
WGLAPI int GLAPIENTRY GetPixelFormat(HDC);
|
WGLAPI int GLAPIENTRY GetPixelFormat(HDC);
|
||||||
WGLAPI int GLAPIENTRY SetPixelFormat(HDC,int,const PIXELFORMATDESCRIPTOR *);
|
WGLAPI int GLAPIENTRY SetPixelFormat(HDC,int,const PIXELFORMATDESCRIPTOR *);
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef WGL_ARB_extensions_string
|
#ifndef WGL_ARB_extensions_string
|
||||||
#define WGL_ARB_extensions_string 1
|
#define WGL_ARB_extensions_string 1
|
||||||
|
|||||||
@@ -180,6 +180,21 @@ extern XMesaContext XMesaCreateContext( XMesaVisual v,
|
|||||||
extern void XMesaDestroyContext( XMesaContext c );
|
extern void XMesaDestroyContext( XMesaContext c );
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef XFree86Server
|
||||||
|
/*
|
||||||
|
* These are the extra routines required for integration with XFree86.
|
||||||
|
* None of these routines should be user visible. -KEM
|
||||||
|
*/
|
||||||
|
extern GLboolean XMesaForceCurrent( XMesaContext c );
|
||||||
|
|
||||||
|
extern GLboolean XMesaLoseCurrent( XMesaContext c );
|
||||||
|
|
||||||
|
extern GLboolean XMesaCopyContext( XMesaContext src,
|
||||||
|
XMesaContext dst,
|
||||||
|
GLuint mask );
|
||||||
|
#endif /* XFree86Server */
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Create an XMesaBuffer from an X window.
|
* Create an XMesaBuffer from an X window.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||||||
|
|
||||||
#include "scrnintstr.h"
|
#include "scrnintstr.h"
|
||||||
#include "pixmapstr.h"
|
#include "pixmapstr.h"
|
||||||
|
#include "gcstruct.h"
|
||||||
|
|
||||||
typedef struct _XMesaImageRec XMesaImage;
|
typedef struct _XMesaImageRec XMesaImage;
|
||||||
|
|
||||||
@@ -123,8 +124,7 @@ do { \
|
|||||||
do { \
|
do { \
|
||||||
/* Assumes: Images are always in ZPixmap format */ \
|
/* Assumes: Images are always in ZPixmap format */ \
|
||||||
(void) __d; \
|
(void) __d; \
|
||||||
if (__sx || __sy) /* The non-trivial case */ \
|
ASSERT(!__sx && !__sy); /* The SubImage case */ \
|
||||||
XMesaPutImageHelper(__d,__b,__gc,__i,__sx,__sy,__x,__y,__w,__h); \
|
|
||||||
ValidateGC(__b, __gc); \
|
ValidateGC(__b, __gc); \
|
||||||
(*__gc->ops->PutImage)(__b, __gc, ((XMesaDrawable)(__b))->depth, \
|
(*__gc->ops->PutImage)(__b, __gc, ((XMesaDrawable)(__b))->depth, \
|
||||||
__x, __y, __w, __h, 0, ZPixmap, \
|
__x, __y, __w, __h, 0, ZPixmap, \
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ message:
|
|||||||
subdirs:
|
subdirs:
|
||||||
@for dir in $(SUBDIRS) ; do \
|
@for dir in $(SUBDIRS) ; do \
|
||||||
if [ -d $$dir ] ; then \
|
if [ -d $$dir ] ; then \
|
||||||
(cd $$dir ; $(MAKE)) || exit 1 ; \
|
(cd $$dir && $(MAKE)) || exit 1 ; \
|
||||||
fi \
|
fi \
|
||||||
done
|
done
|
||||||
|
|
||||||
@@ -27,6 +27,6 @@ install:
|
|||||||
clean:
|
clean:
|
||||||
@for dir in $(SUBDIRS) tests ; do \
|
@for dir in $(SUBDIRS) tests ; do \
|
||||||
if [ -d $$dir ] ; then \
|
if [ -d $$dir ] ; then \
|
||||||
(cd $$dir ; $(MAKE) clean) ; \
|
(cd $$dir && $(MAKE) clean) ; \
|
||||||
fi \
|
fi \
|
||||||
done
|
done
|
||||||
|
|||||||
@@ -1,48 +0,0 @@
|
|||||||
.cvsignore
|
|
||||||
arbfplight
|
|
||||||
arbocclude
|
|
||||||
bounce
|
|
||||||
clearspd
|
|
||||||
cubemap
|
|
||||||
drawpix
|
|
||||||
fire
|
|
||||||
fplight
|
|
||||||
gamma
|
|
||||||
gears
|
|
||||||
geartrain
|
|
||||||
glinfo
|
|
||||||
gloss
|
|
||||||
gltestperf
|
|
||||||
glutfx
|
|
||||||
ipers
|
|
||||||
isosurf
|
|
||||||
lodbias
|
|
||||||
morph3d
|
|
||||||
multiarb
|
|
||||||
occlude
|
|
||||||
osdemo
|
|
||||||
paltex
|
|
||||||
pixeltex
|
|
||||||
pointblast
|
|
||||||
ray
|
|
||||||
readpix
|
|
||||||
readtex.c
|
|
||||||
readtex.h
|
|
||||||
reflect
|
|
||||||
renormal
|
|
||||||
shadowtex
|
|
||||||
showbuffer.c
|
|
||||||
showbuffer.h
|
|
||||||
spectex
|
|
||||||
stex3d
|
|
||||||
teapot
|
|
||||||
terrain
|
|
||||||
tessdemo
|
|
||||||
texcyl
|
|
||||||
texdown
|
|
||||||
texenv
|
|
||||||
texobj
|
|
||||||
trispd
|
|
||||||
tunnel
|
|
||||||
tunnel2
|
|
||||||
winpos
|
|
||||||
@@ -113,34 +113,46 @@ trackball.o: trackball.c trackball.h
|
|||||||
$(CC) -c -I$(INCDIR) $(CFLAGS) trackball.c
|
$(CC) -c -I$(INCDIR) $(CFLAGS) trackball.c
|
||||||
|
|
||||||
|
|
||||||
|
extfuncs.h: $(TOP)/progs/util/extfuncs.h
|
||||||
|
cp $< .
|
||||||
|
|
||||||
|
|
||||||
reflect: reflect.o showbuffer.o readtex.o
|
reflect: reflect.o showbuffer.o readtex.o
|
||||||
$(CC) -I$(INCDIR) $(CFLAGS) reflect.o showbuffer.o readtex.o $(APP_LIB_DEPS) -o $@
|
$(CC) reflect.o showbuffer.o readtex.o $(APP_LIB_DEPS) -o $@
|
||||||
|
|
||||||
reflect.o: reflect.c showbuffer.h
|
reflect.o: reflect.c showbuffer.h
|
||||||
$(CC) -c -I$(INCDIR) $(CFLAGS) reflect.c
|
$(CC) -c -I$(INCDIR) $(CFLAGS) reflect.c
|
||||||
|
|
||||||
|
|
||||||
shadowtex: shadowtex.o showbuffer.o
|
shadowtex: shadowtex.o showbuffer.o
|
||||||
$(CC) -I$(INCDIR) $(CFLAGS) shadowtex.o showbuffer.o $(APP_LIB_DEPS) -o $@
|
$(CC) shadowtex.o showbuffer.o $(APP_LIB_DEPS) -o $@
|
||||||
|
|
||||||
shadowtex.o: shadowtex.c showbuffer.h
|
shadowtex.o: shadowtex.c showbuffer.h
|
||||||
$(CC) -c -I$(INCDIR) $(CFLAGS) shadowtex.c
|
$(CC) -c -I$(INCDIR) $(CFLAGS) shadowtex.c
|
||||||
|
|
||||||
|
|
||||||
gloss: gloss.o trackball.o readtex.o
|
gloss: gloss.o trackball.o readtex.o
|
||||||
$(CC) -I$(INCDIR) $(CFLAGS) gloss.o trackball.o readtex.o $(APP_LIB_DEPS) -o $@
|
$(CC) gloss.o trackball.o readtex.o $(APP_LIB_DEPS) -o $@
|
||||||
|
|
||||||
gloss.o: gloss.c trackball.h
|
gloss.o: gloss.c trackball.h
|
||||||
$(CC) -c -I$(INCDIR) $(CFLAGS) gloss.c
|
$(CC) -c -I$(INCDIR) $(CFLAGS) gloss.c
|
||||||
|
|
||||||
|
|
||||||
engine: engine.o trackball.o readtex.o
|
engine: engine.o trackball.o readtex.o
|
||||||
$(CC) -I$(INCDIR) $(CFLAGS) engine.o trackball.o readtex.o $(APP_LIB_DEPS) -o $@
|
$(CC) engine.o trackball.o readtex.o $(APP_LIB_DEPS) -o $@
|
||||||
|
|
||||||
engine.o: engine.c trackball.h
|
engine.o: engine.c trackball.h
|
||||||
$(CC) -c -I$(INCDIR) $(CFLAGS) engine.c
|
$(CC) -c -I$(INCDIR) $(CFLAGS) engine.c
|
||||||
|
|
||||||
|
|
||||||
|
fslight: fslight.o
|
||||||
|
$(CC) fslight.o $(APP_LIB_DEPS) -o $@
|
||||||
|
|
||||||
|
fslight.o: fslight.c extfuncs.h
|
||||||
|
$(CC) -c -I$(INCDIR) $(CFLAGS) fslight.c
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
-rm -f $(PROGS)
|
-rm -f $(PROGS)
|
||||||
-rm -f *.o *~
|
-rm -f *.o *~
|
||||||
|
|||||||
@@ -22,9 +22,11 @@ LIBS = GLUT32.LIB OPENGL32.LIB
|
|||||||
|
|
||||||
all: OPENGL32.DLL GLU32.DLL GLUT32.DLL \
|
all: OPENGL32.DLL GLU32.DLL GLUT32.DLL \
|
||||||
readtex.h readtex.c showbuffer.h showbuffer.c \
|
readtex.h readtex.c showbuffer.h showbuffer.c \
|
||||||
|
extfuncs.h trackball.h trackball.c \
|
||||||
arbfplight.exe arbfslight.exe arbocclude.exe bounce.exe \
|
arbfplight.exe arbfslight.exe arbocclude.exe bounce.exe \
|
||||||
clearspd.exe cubemap.exe drawpix.exe fire.exe fogcoord.exe \
|
clearspd.exe cubemap.exe drawpix.exe engine.exe \
|
||||||
fplight.exe gamma.exe gearbox.exe \
|
fire.exe fogcoord.exe \
|
||||||
|
fplight.exe fslight.exe gamma.exe gearbox.exe \
|
||||||
gears.exe geartrain.exe gloss.exe \
|
gears.exe geartrain.exe gloss.exe \
|
||||||
glinfo.exe glslnoise.exe \
|
glinfo.exe glslnoise.exe \
|
||||||
gltestperf.exe glutfx.exe ipers.exe isosurf.exe lodbias.exe \
|
gltestperf.exe glutfx.exe ipers.exe isosurf.exe lodbias.exe \
|
||||||
@@ -42,14 +44,16 @@ bounce.exe: bounce.obj
|
|||||||
clearspd.exe: clearspd.obj
|
clearspd.exe: clearspd.obj
|
||||||
cubemap.exe: cubemap.obj readtex.obj
|
cubemap.exe: cubemap.obj readtex.obj
|
||||||
drawpix.exe: drawpix.obj readtex.obj
|
drawpix.exe: drawpix.obj readtex.obj
|
||||||
|
engine.exe: engine.obj readtex.obj trackball.obj
|
||||||
fire.exe: fire.obj readtex.obj
|
fire.exe: fire.obj readtex.obj
|
||||||
fogcoord.exe: fogcoord.obj readtex.obj
|
fogcoord.exe: fogcoord.obj readtex.obj
|
||||||
fplight.exe: fplight.obj
|
fplight.exe: fplight.obj
|
||||||
|
fslight.exe: fslight.obj
|
||||||
gamma.exe: gamma.obj
|
gamma.exe: gamma.obj
|
||||||
gearbox.exe: gearbox.obj
|
gearbox.exe: gearbox.obj
|
||||||
gears.exe: gears.obj
|
gears.exe: gears.obj
|
||||||
geartrain.exe: geartrain.obj
|
geartrain.exe: geartrain.obj
|
||||||
gloss.exe: gloss.obj readtex.obj
|
gloss.exe: gloss.obj readtex.obj trackball.obj
|
||||||
glinfo.exe: glinfo.obj
|
glinfo.exe: glinfo.obj
|
||||||
glslnoise.exe: glslnoise.obj
|
glslnoise.exe: glslnoise.obj
|
||||||
gltestperf.exe: gltestperf.obj
|
gltestperf.exe: gltestperf.obj
|
||||||
@@ -105,14 +109,23 @@ showbuffer.c: $(TOP)\progs\util\showbuffer.c
|
|||||||
showbuffer.h: $(TOP)\progs\util\showbuffer.h
|
showbuffer.h: $(TOP)\progs\util\showbuffer.h
|
||||||
copy $** .
|
copy $** .
|
||||||
|
|
||||||
|
trackball.c: $(TOP)\progs\util\trackball.c
|
||||||
|
copy $** .
|
||||||
|
|
||||||
|
trackball.h: $(TOP)\progs\util\trackball.h
|
||||||
|
copy $** .
|
||||||
|
|
||||||
|
extfuncs.h: $(TOP)\progs\util\extfuncs.h
|
||||||
|
copy $** .
|
||||||
|
|
||||||
.obj.exe:
|
.obj.exe:
|
||||||
$(link) $(ldebug) -out:$@ $** /LIBPATH:$(LIBDIR) $(LIBS)
|
$(link) $(ldebug) -out:$@ $** /LIBPATH:$(LIBDIR) $(LIBS)
|
||||||
|
|
||||||
.c.obj:
|
.c.obj:
|
||||||
$(cc) $(cdebug) $(cflags) $(cvars) /I$(INCDIR) $*.c
|
$(cc) $(cdebug) $(cflags) $(cvars) -D_USE_MATH_DEFINES /I$(INCDIR) $*.c
|
||||||
|
|
||||||
clean::
|
clean::
|
||||||
del *.obj *.exe readtex.* showbuffer.*
|
del *.obj *.exe readtex.* showbuffer.* trackball.*
|
||||||
|
|
||||||
clobber::
|
clobber::
|
||||||
|
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ static GLuint VertProg;
|
|||||||
static GLboolean Anim = GL_TRUE;
|
static GLboolean Anim = GL_TRUE;
|
||||||
static GLboolean Wire = GL_FALSE;
|
static GLboolean Wire = GL_FALSE;
|
||||||
static GLboolean PixelLight = GL_TRUE;
|
static GLboolean PixelLight = GL_TRUE;
|
||||||
|
static GLint Win;
|
||||||
|
|
||||||
static GLint T0 = 0;
|
static GLint T0 = 0;
|
||||||
static GLint Frames = 0;
|
static GLint Frames = 0;
|
||||||
@@ -148,6 +149,7 @@ static void Key( unsigned char key, int x, int y )
|
|||||||
case 27:
|
case 27:
|
||||||
glDeleteProgramsARB_func(1, &VertProg);
|
glDeleteProgramsARB_func(1, &VertProg);
|
||||||
glDeleteProgramsARB_func(1, &FragProg);
|
glDeleteProgramsARB_func(1, &FragProg);
|
||||||
|
glutDestroyWindow(Win);
|
||||||
exit(0);
|
exit(0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -382,7 +384,7 @@ int main( int argc, char *argv[] )
|
|||||||
glutInitWindowPosition( 0, 0 );
|
glutInitWindowPosition( 0, 0 );
|
||||||
glutInitWindowSize( 200, 200 );
|
glutInitWindowSize( 200, 200 );
|
||||||
glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH );
|
glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH );
|
||||||
glutCreateWindow(argv[0]);
|
Win = glutCreateWindow(argv[0]);
|
||||||
glutReshapeFunc( Reshape );
|
glutReshapeFunc( Reshape );
|
||||||
glutKeyboardFunc( Key );
|
glutKeyboardFunc( Key );
|
||||||
glutSpecialFunc( SpecialKey );
|
glutSpecialFunc( SpecialKey );
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ static PFNGLUNIFORM3FVARBPROC glUniform4fvARB = NULL;
|
|||||||
|
|
||||||
static void normalize (GLfloat *dst, const GLfloat *src)
|
static void normalize (GLfloat *dst, const GLfloat *src)
|
||||||
{
|
{
|
||||||
GLfloat len = sqrtf (src[0] * src[0] + src[1] * src[1] + src[2] * src[2]);
|
GLfloat len = sqrt (src[0] * src[0] + src[1] * src[1] + src[2] * src[2]);
|
||||||
dst[0] = src[0] / len;
|
dst[0] = src[0] / len;
|
||||||
dst[1] = src[1] / len;
|
dst[1] = src[1] / len;
|
||||||
dst[2] = src[2] / len;
|
dst[2] = src[2] / len;
|
||||||
|
|||||||
@@ -7,151 +7,136 @@
|
|||||||
* Daniel Borca
|
* Daniel Borca
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#define GL_GLEXT_PROTOTYPES
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <GL/glut.h>
|
#include <GL/glut.h>
|
||||||
|
|
||||||
#include "readtex.h"
|
#define DEPTH 5.0f
|
||||||
|
|
||||||
#define TEXTURE_FILE "../images/bw.rgb"
|
static PFNGLFOGCOORDFEXTPROC glFogCoordf_ext;
|
||||||
|
static PFNGLFOGCOORDPOINTEREXTPROC glFogCoordPointer_ext;
|
||||||
|
|
||||||
#define ARRAYS 0 /* use glDrawElements */
|
|
||||||
|
|
||||||
#define VERBOSE 1 /* tell me what happens */
|
|
||||||
|
|
||||||
#define DEPTH 15.0f
|
|
||||||
|
|
||||||
#if !defined(GLAPIENTRYP)
|
|
||||||
# define GLAPIENTRYP *
|
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef void (GLAPIENTRYP GLFOGCOORDFEXTPROC) (GLfloat f);
|
|
||||||
typedef void (GLAPIENTRYP GLFOGCOORDPOINTEREXTPROC) (GLenum, GLsizei, const GLvoid *);
|
|
||||||
|
|
||||||
static GLFOGCOORDFEXTPROC glFogCoordf_ext;
|
|
||||||
#if ARRAYS
|
|
||||||
static GLFOGCOORDPOINTEREXTPROC glFogCoordPointer_ext;
|
|
||||||
#endif
|
|
||||||
static GLboolean have_fog_coord;
|
static GLboolean have_fog_coord;
|
||||||
|
|
||||||
static GLfloat camz;
|
static GLfloat camz;
|
||||||
static GLuint texture[1];
|
|
||||||
|
|
||||||
static GLint fogMode;
|
static GLint fogMode;
|
||||||
static GLboolean fogCoord;
|
static GLboolean fogCoord;
|
||||||
static GLfloat fogDensity = 0.75;
|
static GLfloat fogDensity = 0.75;
|
||||||
static GLfloat fogStart = 1.0, fogEnd = 40.0;
|
static GLfloat fogStart = 1.0, fogEnd = DEPTH;
|
||||||
static GLfloat fogColor[4] = {0.6f, 0.3f, 0.0f, 1.0f};
|
static GLfloat fogColor[4] = {0.6f, 0.3f, 0.0f, 1.0f};
|
||||||
|
static const char *ModeStr = NULL;
|
||||||
|
static GLboolean Arrays = GL_FALSE;
|
||||||
|
static GLboolean Texture = GL_TRUE;
|
||||||
|
|
||||||
|
|
||||||
static void APIENTRY glFogCoordf_nop (GLfloat f)
|
static void
|
||||||
|
Reset(void)
|
||||||
|
{
|
||||||
|
fogMode = 1;
|
||||||
|
fogCoord = 1;
|
||||||
|
fogDensity = 0.75;
|
||||||
|
fogStart = 1.0;
|
||||||
|
fogEnd = DEPTH;
|
||||||
|
Arrays = GL_FALSE;
|
||||||
|
Texture = GL_TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void APIENTRY
|
||||||
|
glFogCoordf_nop (GLfloat f)
|
||||||
{
|
{
|
||||||
(void)f;
|
(void)f;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static int BuildTexture (const char *filename, GLuint texid[])
|
static void
|
||||||
|
PrintString(const char *s)
|
||||||
{
|
{
|
||||||
GLubyte *tex_data;
|
while (*s) {
|
||||||
GLenum tex_format;
|
glutBitmapCharacter(GLUT_BITMAP_8_BY_13, (int) *s);
|
||||||
GLint tex_width, tex_height;
|
s++;
|
||||||
|
|
||||||
tex_data = LoadRGBImage(filename, &tex_width, &tex_height, &tex_format);
|
|
||||||
if (tex_data == NULL) {
|
|
||||||
return -1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
|
||||||
GLint tex_max;
|
|
||||||
glGetIntegerv(GL_MAX_TEXTURE_SIZE, &tex_max);
|
|
||||||
if ((tex_width > tex_max) || (tex_height > tex_max)) {
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
glGenTextures(1, texid);
|
|
||||||
|
|
||||||
glBindTexture(GL_TEXTURE_2D, texid[0]);
|
|
||||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
|
|
||||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
|
|
||||||
|
|
||||||
glTexImage2D(GL_TEXTURE_2D, 0, tex_format, tex_width, tex_height, 0,
|
|
||||||
tex_format, GL_UNSIGNED_BYTE, tex_data);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static int SetFogMode (GLint fogMode)
|
static void
|
||||||
|
PrintInfo(void)
|
||||||
|
{
|
||||||
|
char s[100];
|
||||||
|
|
||||||
|
glDisable(GL_FOG);
|
||||||
|
glColor3f(0, 1, 1);
|
||||||
|
|
||||||
|
sprintf(s, "Mode(m): %s Start(s/S): %g End(e/E): %g Density(d/D): %g",
|
||||||
|
ModeStr, fogStart, fogEnd, fogDensity);
|
||||||
|
glWindowPos2iARB(5, 20);
|
||||||
|
PrintString(s);
|
||||||
|
|
||||||
|
sprintf(s, "Arrays(a): %s glFogCoord(c): %s EyeZ(z/z): %g",
|
||||||
|
(Arrays ? "Yes" : "No"),
|
||||||
|
(fogCoord ? "Yes" : "No"),
|
||||||
|
camz);
|
||||||
|
glWindowPos2iARB(5, 5);
|
||||||
|
PrintString(s);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int
|
||||||
|
SetFogMode(GLint fogMode)
|
||||||
{
|
{
|
||||||
fogMode &= 3;
|
fogMode &= 3;
|
||||||
switch (fogMode) {
|
switch (fogMode) {
|
||||||
case 0:
|
case 0:
|
||||||
|
ModeStr = "Off";
|
||||||
glDisable(GL_FOG);
|
glDisable(GL_FOG);
|
||||||
#if VERBOSE
|
|
||||||
printf("fog(disable)\n");
|
|
||||||
#endif
|
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
|
ModeStr = "GL_LINEAR";
|
||||||
glEnable(GL_FOG);
|
glEnable(GL_FOG);
|
||||||
glFogi(GL_FOG_MODE, GL_LINEAR);
|
glFogi(GL_FOG_MODE, GL_LINEAR);
|
||||||
glFogf(GL_FOG_START, fogStart);
|
glFogf(GL_FOG_START, fogStart);
|
||||||
glFogf(GL_FOG_END, fogEnd);
|
glFogf(GL_FOG_END, fogEnd);
|
||||||
#if VERBOSE
|
|
||||||
printf("fog(GL_LINEAR, %.2f, %.2f)\n", fogStart, fogEnd);
|
|
||||||
#endif
|
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
|
ModeStr = "GL_EXP";
|
||||||
glEnable(GL_FOG);
|
glEnable(GL_FOG);
|
||||||
glFogi(GL_FOG_MODE, GL_EXP);
|
glFogi(GL_FOG_MODE, GL_EXP);
|
||||||
glFogf(GL_FOG_DENSITY, fogDensity);
|
glFogf(GL_FOG_DENSITY, fogDensity);
|
||||||
#if VERBOSE
|
|
||||||
printf("fog(GL_EXP, %.2f)\n", fogDensity);
|
|
||||||
#endif
|
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
|
ModeStr = "GL_EXP2";
|
||||||
glEnable(GL_FOG);
|
glEnable(GL_FOG);
|
||||||
glFogi(GL_FOG_MODE, GL_EXP2);
|
glFogi(GL_FOG_MODE, GL_EXP2);
|
||||||
glFogf(GL_FOG_DENSITY, fogDensity);
|
glFogf(GL_FOG_DENSITY, fogDensity);
|
||||||
#if VERBOSE
|
|
||||||
printf("fog(GL_EXP2, %.2f)\n", fogDensity);
|
|
||||||
#endif
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return fogMode;
|
return fogMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static GLboolean SetFogCoord (GLboolean fogCoord)
|
static GLboolean
|
||||||
|
SetFogCoord(GLboolean fogCoord)
|
||||||
{
|
{
|
||||||
glFogCoordf_ext = glFogCoordf_nop;
|
glFogCoordf_ext = glFogCoordf_nop;
|
||||||
|
|
||||||
if (!have_fog_coord) {
|
if (!have_fog_coord) {
|
||||||
#if VERBOSE
|
|
||||||
printf("fog(GL_FRAGMENT_DEPTH_EXT)%s\n", fogCoord ? " EXT_fog_coord not available!" : "");
|
|
||||||
#endif
|
|
||||||
return GL_FALSE;
|
return GL_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fogCoord) {
|
if (fogCoord) {
|
||||||
glFogCoordf_ext = (GLFOGCOORDFEXTPROC)glutGetProcAddress("glFogCoordfEXT");
|
glFogCoordf_ext = (PFNGLFOGCOORDFEXTPROC)glutGetProcAddress("glFogCoordfEXT");
|
||||||
glFogi(GL_FOG_COORDINATE_SOURCE_EXT, GL_FOG_COORDINATE_EXT);
|
glFogi(GL_FOG_COORDINATE_SOURCE_EXT, GL_FOG_COORDINATE_EXT);
|
||||||
#if VERBOSE
|
}
|
||||||
printf("fog(GL_FOG_COORDINATE_EXT)\n");
|
else {
|
||||||
#endif
|
|
||||||
} else {
|
|
||||||
glFogi(GL_FOG_COORDINATE_SOURCE_EXT, GL_FRAGMENT_DEPTH_EXT);
|
glFogi(GL_FOG_COORDINATE_SOURCE_EXT, GL_FRAGMENT_DEPTH_EXT);
|
||||||
#if VERBOSE
|
|
||||||
printf("fog(GL_FRAGMENT_DEPTH_EXT)\n");
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
return fogCoord;
|
return fogCoord;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#if ARRAYS
|
|
||||||
/* could reuse vertices */
|
/* could reuse vertices */
|
||||||
static GLuint vertex_index[] = {
|
static GLuint vertex_index[] = {
|
||||||
/* Back */
|
/* Back */
|
||||||
@@ -172,19 +157,19 @@ static GLuint vertex_index[] = {
|
|||||||
|
|
||||||
static GLfloat vertex_pointer[][3] = {
|
static GLfloat vertex_pointer[][3] = {
|
||||||
/* Back */
|
/* Back */
|
||||||
{-2.5f,-2.5f,-DEPTH}, { 2.5f,-2.5f,-DEPTH}, { 2.5f, 2.5f,-DEPTH}, {-2.5f, 2.5f,-DEPTH},
|
{-1.0f,-1.0f,-DEPTH}, { 1.0f,-1.0f,-DEPTH}, { 1.0f, 1.0f,-DEPTH}, {-1.0f, 1.0f,-DEPTH},
|
||||||
|
|
||||||
/* Floor */
|
/* Floor */
|
||||||
{-2.5f,-2.5f,-DEPTH}, { 2.5f,-2.5f,-DEPTH}, { 2.5f,-2.5f, DEPTH}, {-2.5f,-2.5f, DEPTH},
|
{-1.0f,-1.0f,-DEPTH}, { 1.0f,-1.0f,-DEPTH}, { 1.0f,-1.0f, 0.0}, {-1.0f,-1.0f, 0.0},
|
||||||
|
|
||||||
/* Roof */
|
/* Roof */
|
||||||
{-2.5f, 2.5f,-DEPTH}, { 2.5f, 2.5f,-DEPTH}, { 2.5f, 2.5f, DEPTH}, {-2.5f, 2.5f, DEPTH},
|
{-1.0f, 1.0f,-DEPTH}, { 1.0f, 1.0f,-DEPTH}, { 1.0f, 1.0f, 0.0}, {-1.0f, 1.0f, 0.0},
|
||||||
|
|
||||||
/* Right */
|
/* Right */
|
||||||
{ 2.5f,-2.5f, DEPTH}, { 2.5f, 2.5f, DEPTH}, { 2.5f, 2.5f,-DEPTH}, { 2.5f,-2.5f,-DEPTH},
|
{ 1.0f,-1.0f, 0.0}, { 1.0f, 1.0f, 0.0}, { 1.0f, 1.0f,-DEPTH}, { 1.0f,-1.0f,-DEPTH},
|
||||||
|
|
||||||
/* Left */
|
/* Left */
|
||||||
{-2.5f,-2.5f, DEPTH}, {-2.5f, 2.5f, DEPTH}, {-2.5f, 2.5f,-DEPTH}, {-2.5f,-2.5f,-DEPTH}
|
{-1.0f,-1.0f, 0.0}, {-1.0f, 1.0f, 0.0}, {-1.0f, 1.0f,-DEPTH}, {-1.0f,-1.0f,-DEPTH}
|
||||||
};
|
};
|
||||||
|
|
||||||
static GLfloat texcoord_pointer[][2] = {
|
static GLfloat texcoord_pointer[][2] = {
|
||||||
@@ -192,118 +177,139 @@ static GLfloat texcoord_pointer[][2] = {
|
|||||||
{0.0f, 0.0f}, {1.0f, 0.0f}, {1.0f, 1.0f}, {0.0f, 1.0f},
|
{0.0f, 0.0f}, {1.0f, 0.0f}, {1.0f, 1.0f}, {0.0f, 1.0f},
|
||||||
|
|
||||||
/* Floor */
|
/* Floor */
|
||||||
{0.0f, 0.0f}, {1.0f, 0.0f}, {1.0f, 1.0f}, {0.0f, 1.0f},
|
{0.0f, 0.0f}, {1.0f, 0.0f}, {1.0f, DEPTH}, {0.0f, DEPTH},
|
||||||
|
|
||||||
/* Roof */
|
/* Roof */
|
||||||
{0.0f, 0.0f}, {1.0f, 0.0f}, {1.0f, 1.0f}, {0.0f, 1.0f},
|
{1.0f, 0.0f}, {0.0f, 0.0f}, {0.0f, DEPTH}, {1.0f, DEPTH},
|
||||||
|
|
||||||
/* Right */
|
/* Right */
|
||||||
{0.0f, 0.0f}, {0.0f, 1.0f}, {1.0f, 1.0f}, {1.0f, 0.0f},
|
{0.0f, 1.0f}, {0.0f, 0.0f}, {DEPTH, 0.0f}, {DEPTH, 1.0f},
|
||||||
|
|
||||||
/* Left */
|
/* Left */
|
||||||
{0.0f, 0.0f}, {0.0f, 1.0f}, {1.0f, 1.0f}, {1.0f, 0.0f}
|
{0.0f, 0.0f}, {0.0f, 1.0f}, {DEPTH, 1.0f}, {DEPTH, 0.0f}
|
||||||
};
|
};
|
||||||
|
|
||||||
static GLfloat fogcoord_pointer[][1] = {
|
static GLfloat fogcoord_pointer[] = {
|
||||||
/* Back */
|
/* Back */
|
||||||
{1.0f}, {1.0f}, {1.0f}, {1.0f},
|
DEPTH, DEPTH, DEPTH, DEPTH,
|
||||||
|
|
||||||
/* Floor */
|
/* Floor */
|
||||||
{1.0f}, {1.0f}, {0.0f}, {0.0f},
|
DEPTH, DEPTH, 0.0, 0.0,
|
||||||
|
|
||||||
/* Roof */
|
/* Roof */
|
||||||
{1.0f}, {1.0f}, {0.0f}, {0.0f},
|
DEPTH, DEPTH, 0.0, 0.0,
|
||||||
|
|
||||||
/* Right */
|
/* Right */
|
||||||
{0.0f}, {0.0f}, {1.0f}, {1.0f},
|
0.0, 0.0, DEPTH, DEPTH,
|
||||||
|
|
||||||
/* Left */
|
/* Left */
|
||||||
{0.0f}, {0.0f}, {1.0f}, {1.0f}
|
0.0, 0.0, DEPTH, DEPTH
|
||||||
};
|
};
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
static void Display( void )
|
static void
|
||||||
|
Display( void )
|
||||||
{
|
{
|
||||||
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||||
glLoadIdentity ();
|
glLoadIdentity ();
|
||||||
|
|
||||||
glTranslatef(0.0f, 0.0f, camz);
|
glTranslatef(0.0f, 0.0f, -camz);
|
||||||
|
|
||||||
#if ARRAYS
|
SetFogMode(fogMode);
|
||||||
glDrawElements(GL_QUADS, sizeof(vertex_index) / sizeof(vertex_index[0]), GL_UNSIGNED_INT, vertex_index);
|
|
||||||
#else
|
|
||||||
/* Back */
|
|
||||||
glBegin(GL_QUADS);
|
|
||||||
glFogCoordf_ext(1.0f); glTexCoord2f(0.0f, 0.0f); glVertex3f(-2.5f,-2.5f,-DEPTH);
|
|
||||||
glFogCoordf_ext(1.0f); glTexCoord2f(1.0f, 0.0f); glVertex3f( 2.5f,-2.5f,-DEPTH);
|
|
||||||
glFogCoordf_ext(1.0f); glTexCoord2f(1.0f, 1.0f); glVertex3f( 2.5f, 2.5f,-DEPTH);
|
|
||||||
glFogCoordf_ext(1.0f); glTexCoord2f(0.0f, 1.0f); glVertex3f(-2.5f, 2.5f,-DEPTH);
|
|
||||||
glEnd();
|
|
||||||
|
|
||||||
/* Floor */
|
glColor3f(1, 1, 1);
|
||||||
glBegin(GL_QUADS);
|
|
||||||
glFogCoordf_ext(1.0f); glTexCoord2f(0.0f, 0.0f); glVertex3f(-2.5f,-2.5f,-DEPTH);
|
|
||||||
glFogCoordf_ext(1.0f); glTexCoord2f(1.0f, 0.0f); glVertex3f( 2.5f,-2.5f,-DEPTH);
|
|
||||||
glFogCoordf_ext(0.0f); glTexCoord2f(1.0f, 1.0f); glVertex3f( 2.5f,-2.5f, DEPTH);
|
|
||||||
glFogCoordf_ext(0.0f); glTexCoord2f(0.0f, 1.0f); glVertex3f(-2.5f,-2.5f, DEPTH);
|
|
||||||
glEnd();
|
|
||||||
|
|
||||||
/* Roof */
|
if (Texture)
|
||||||
glBegin(GL_QUADS);
|
glEnable(GL_TEXTURE_2D);
|
||||||
glFogCoordf_ext(1.0f); glTexCoord2f(0.0f, 0.0f); glVertex3f(-2.5f, 2.5f,-DEPTH);
|
|
||||||
glFogCoordf_ext(1.0f); glTexCoord2f(1.0f, 0.0f); glVertex3f( 2.5f, 2.5f,-DEPTH);
|
|
||||||
glFogCoordf_ext(0.0f); glTexCoord2f(1.0f, 1.0f); glVertex3f( 2.5f, 2.5f, DEPTH);
|
|
||||||
glFogCoordf_ext(0.0f); glTexCoord2f(0.0f, 1.0f); glVertex3f(-2.5f, 2.5f, DEPTH);
|
|
||||||
glEnd();
|
|
||||||
|
|
||||||
/* Right */
|
if (Arrays) {
|
||||||
glBegin(GL_QUADS);
|
glEnableClientState(GL_VERTEX_ARRAY);
|
||||||
glFogCoordf_ext(0.0f); glTexCoord2f(0.0f, 0.0f); glVertex3f( 2.5f,-2.5f, DEPTH);
|
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
|
||||||
glFogCoordf_ext(0.0f); glTexCoord2f(0.0f, 1.0f); glVertex3f( 2.5f, 2.5f, DEPTH);
|
glDrawElements(GL_QUADS, sizeof(vertex_index) / sizeof(vertex_index[0]),
|
||||||
glFogCoordf_ext(1.0f); glTexCoord2f(1.0f, 1.0f); glVertex3f( 2.5f, 2.5f,-DEPTH);
|
GL_UNSIGNED_INT, vertex_index);
|
||||||
glFogCoordf_ext(1.0f); glTexCoord2f(1.0f, 0.0f); glVertex3f( 2.5f,-2.5f,-DEPTH);
|
glDisableClientState(GL_VERTEX_ARRAY);
|
||||||
glEnd();
|
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
/* Back */
|
||||||
|
glBegin(GL_QUADS);
|
||||||
|
glFogCoordf_ext(DEPTH); glTexCoord2f(0.0f, 0.0f); glVertex3f(-1.0f,-1.0f,-DEPTH);
|
||||||
|
glFogCoordf_ext(DEPTH); glTexCoord2f(1.0f, 0.0f); glVertex3f( 1.0f,-1.0f,-DEPTH);
|
||||||
|
glFogCoordf_ext(DEPTH); glTexCoord2f(1.0f, 1.0f); glVertex3f( 1.0f, 1.0f,-DEPTH);
|
||||||
|
glFogCoordf_ext(DEPTH); glTexCoord2f(0.0f, 1.0f); glVertex3f(-1.0f, 1.0f,-DEPTH);
|
||||||
|
glEnd();
|
||||||
|
|
||||||
/* Left */
|
/* Floor */
|
||||||
glBegin(GL_QUADS);
|
glBegin(GL_QUADS);
|
||||||
glFogCoordf_ext(0.0f); glTexCoord2f(0.0f, 0.0f); glVertex3f(-2.5f,-2.5f, DEPTH);
|
glFogCoordf_ext(DEPTH); glTexCoord2f(0.0f, 0.0f); glVertex3f(-1.0f,-1.0f,-DEPTH);
|
||||||
glFogCoordf_ext(0.0f); glTexCoord2f(0.0f, 1.0f); glVertex3f(-2.5f, 2.5f, DEPTH);
|
glFogCoordf_ext(DEPTH); glTexCoord2f(1.0f, 0.0f); glVertex3f( 1.0f,-1.0f,-DEPTH);
|
||||||
glFogCoordf_ext(1.0f); glTexCoord2f(1.0f, 1.0f); glVertex3f(-2.5f, 2.5f,-DEPTH);
|
glFogCoordf_ext(0.0f); glTexCoord2f(1.0f, DEPTH); glVertex3f( 1.0f,-1.0f,0.0);
|
||||||
glFogCoordf_ext(1.0f); glTexCoord2f(1.0f, 0.0f); glVertex3f(-2.5f,-2.5f,-DEPTH);
|
glFogCoordf_ext(0.0f); glTexCoord2f(0.0f, DEPTH); glVertex3f(-1.0f,-1.0f,0.0);
|
||||||
glEnd();
|
glEnd();
|
||||||
#endif
|
|
||||||
|
/* Roof */
|
||||||
|
glBegin(GL_QUADS);
|
||||||
|
glFogCoordf_ext(DEPTH); glTexCoord2f(1.0f, 0.0f); glVertex3f(-1.0f, 1.0f,-DEPTH);
|
||||||
|
glFogCoordf_ext(DEPTH); glTexCoord2f(0.0f, 0.0f); glVertex3f( 1.0f, 1.0f,-DEPTH);
|
||||||
|
glFogCoordf_ext(0.0f); glTexCoord2f(0.0f, DEPTH); glVertex3f( 1.0f, 1.0f,0.0);
|
||||||
|
glFogCoordf_ext(0.0f); glTexCoord2f(1.0f, DEPTH); glVertex3f(-1.0f, 1.0f,0.0);
|
||||||
|
glEnd();
|
||||||
|
|
||||||
|
/* Right */
|
||||||
|
glBegin(GL_QUADS);
|
||||||
|
glFogCoordf_ext(0.0f); glTexCoord2f(0.0f, 1.0f); glVertex3f( 1.0f,-1.0f,0.0);
|
||||||
|
glFogCoordf_ext(0.0f); glTexCoord2f(0.0f, 0.0f); glVertex3f( 1.0f, 1.0f,0.0);
|
||||||
|
glFogCoordf_ext(DEPTH); glTexCoord2f(DEPTH, 0.0f); glVertex3f( 1.0f, 1.0f,-DEPTH);
|
||||||
|
glFogCoordf_ext(DEPTH); glTexCoord2f(DEPTH, 1.0f); glVertex3f( 1.0f,-1.0f,-DEPTH);
|
||||||
|
glEnd();
|
||||||
|
|
||||||
|
/* Left */
|
||||||
|
glBegin(GL_QUADS);
|
||||||
|
glFogCoordf_ext(0.0f); glTexCoord2f(0.0f, 0.0f); glVertex3f(-1.0f,-1.0f,0.0);
|
||||||
|
glFogCoordf_ext(0.0f); glTexCoord2f(0.0f, 1.0f); glVertex3f(-1.0f, 1.0f,0.0);
|
||||||
|
glFogCoordf_ext(DEPTH); glTexCoord2f(DEPTH, 1.0f); glVertex3f(-1.0f, 1.0f,-DEPTH);
|
||||||
|
glFogCoordf_ext(DEPTH); glTexCoord2f(DEPTH, 0.0f); glVertex3f(-1.0f,-1.0f,-DEPTH);
|
||||||
|
glEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
glDisable(GL_TEXTURE_2D);
|
||||||
|
|
||||||
|
PrintInfo();
|
||||||
|
|
||||||
glutSwapBuffers();
|
glutSwapBuffers();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void Reshape( int width, int height )
|
static void
|
||||||
|
Reshape( int width, int height )
|
||||||
{
|
{
|
||||||
glViewport(0, 0, width, height);
|
glViewport(0, 0, width, height);
|
||||||
glMatrixMode(GL_PROJECTION);
|
glMatrixMode(GL_PROJECTION);
|
||||||
glLoadIdentity();
|
glLoadIdentity();
|
||||||
gluPerspective(45.0f, (GLfloat)(width)/(GLfloat)(height), 0.1f, 100.0f);
|
glFrustum(-1, 1, -1, 1, 1.0, 100);
|
||||||
glMatrixMode(GL_MODELVIEW);
|
glMatrixMode(GL_MODELVIEW);
|
||||||
glLoadIdentity();
|
glLoadIdentity();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void Key( unsigned char key, int x, int y )
|
static void
|
||||||
|
Key( unsigned char key, int x, int y )
|
||||||
{
|
{
|
||||||
(void) x;
|
(void) x;
|
||||||
(void) y;
|
(void) y;
|
||||||
switch (key) {
|
switch (key) {
|
||||||
|
case 'a':
|
||||||
|
Arrays = !Arrays;
|
||||||
|
break;
|
||||||
case 'f':
|
case 'f':
|
||||||
|
case 'm':
|
||||||
fogMode = SetFogMode(fogMode + 1);
|
fogMode = SetFogMode(fogMode + 1);
|
||||||
break;
|
break;
|
||||||
case '+':
|
case 'D':
|
||||||
if (fogDensity < 1.0) {
|
fogDensity += 0.05;
|
||||||
fogDensity += 0.05;
|
|
||||||
}
|
|
||||||
SetFogMode(fogMode);
|
SetFogMode(fogMode);
|
||||||
break;
|
break;
|
||||||
case '-':
|
case 'd':
|
||||||
if (fogDensity > 0.0) {
|
if (fogDensity > 0.0) {
|
||||||
fogDensity -= 0.05;
|
fogDensity -= 0.05;
|
||||||
}
|
}
|
||||||
@@ -311,31 +317,43 @@ static void Key( unsigned char key, int x, int y )
|
|||||||
break;
|
break;
|
||||||
case 's':
|
case 's':
|
||||||
if (fogStart > 0.0) {
|
if (fogStart > 0.0) {
|
||||||
fogStart -= 1.0;
|
fogStart -= 0.25;
|
||||||
}
|
}
|
||||||
SetFogMode(fogMode);
|
SetFogMode(fogMode);
|
||||||
break;
|
break;
|
||||||
case 'S':
|
case 'S':
|
||||||
if (fogStart < fogEnd) {
|
if (fogStart < 100.0) {
|
||||||
fogStart += 1.0;
|
fogStart += 0.25;
|
||||||
}
|
}
|
||||||
SetFogMode(fogMode);
|
SetFogMode(fogMode);
|
||||||
break;
|
break;
|
||||||
case 'e':
|
case 'e':
|
||||||
if (fogEnd > fogStart) {
|
if (fogEnd > 0.0) {
|
||||||
fogEnd -= 1.0;
|
fogEnd -= 0.25;
|
||||||
}
|
}
|
||||||
SetFogMode(fogMode);
|
SetFogMode(fogMode);
|
||||||
break;
|
break;
|
||||||
case 'E':
|
case 'E':
|
||||||
if (fogEnd < 100.0) {
|
if (fogEnd < 100.0) {
|
||||||
fogEnd += 1.0;
|
fogEnd += 0.25;
|
||||||
}
|
}
|
||||||
SetFogMode(fogMode);
|
SetFogMode(fogMode);
|
||||||
break;
|
break;
|
||||||
case 'c':
|
case 'c':
|
||||||
fogCoord = SetFogCoord(fogCoord ^ GL_TRUE);
|
fogCoord = SetFogCoord(fogCoord ^ GL_TRUE);
|
||||||
break;
|
break;
|
||||||
|
case 't':
|
||||||
|
Texture = !Texture;
|
||||||
|
break;
|
||||||
|
case 'z':
|
||||||
|
camz -= 0.1;
|
||||||
|
break;
|
||||||
|
case 'Z':
|
||||||
|
camz += 0.1;
|
||||||
|
break;
|
||||||
|
case 'r':
|
||||||
|
Reset();
|
||||||
|
break;
|
||||||
case 27:
|
case 27:
|
||||||
exit(0);
|
exit(0);
|
||||||
break;
|
break;
|
||||||
@@ -344,37 +362,28 @@ static void Key( unsigned char key, int x, int y )
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void SpecialKey( int key, int x, int y )
|
static void
|
||||||
|
Init(void)
|
||||||
{
|
{
|
||||||
(void) x;
|
static const GLubyte teximage[2][2][4] = {
|
||||||
(void) y;
|
{ { 255, 255, 255, 255}, { 128, 128, 128, 255} },
|
||||||
switch (key) {
|
{ { 128, 128, 128, 255}, { 255, 255, 255, 255} }
|
||||||
case GLUT_KEY_UP:
|
};
|
||||||
if (camz < (DEPTH - 1.0)) {
|
|
||||||
camz += 1.0f;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case GLUT_KEY_DOWN:
|
|
||||||
if (camz > -19.0) {
|
|
||||||
camz -= 1.0f;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
glutPostRedisplay();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
|
||||||
|
|
||||||
static void Init( void )
|
|
||||||
{
|
|
||||||
have_fog_coord = glutExtensionSupported("GL_EXT_fog_coord");
|
have_fog_coord = glutExtensionSupported("GL_EXT_fog_coord");
|
||||||
|
if (!have_fog_coord) {
|
||||||
if (BuildTexture(TEXTURE_FILE, texture) == -1) {
|
printf("GL_EXT_fog_coord not supported!\n");
|
||||||
exit(1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
glEnable(GL_TEXTURE_2D);
|
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 2, 2, 0,
|
||||||
glClearColor(0.0f, 0.0f, 0.0f, 0.5f);
|
GL_RGBA, GL_UNSIGNED_BYTE, teximage);
|
||||||
glClearDepth(1.0f);
|
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
|
||||||
|
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
|
||||||
|
|
||||||
|
glClearColor(0.1f, 0.1f, 0.1f, 0.0f);
|
||||||
|
|
||||||
glDepthFunc(GL_LEQUAL);
|
glDepthFunc(GL_LEQUAL);
|
||||||
glEnable(GL_DEPTH_TEST);
|
glEnable(GL_DEPTH_TEST);
|
||||||
glShadeModel(GL_SMOOTH);
|
glShadeModel(GL_SMOOTH);
|
||||||
@@ -383,11 +392,8 @@ static void Init( void )
|
|||||||
glFogfv(GL_FOG_COLOR, fogColor);
|
glFogfv(GL_FOG_COLOR, fogColor);
|
||||||
glHint(GL_FOG_HINT, GL_NICEST);
|
glHint(GL_FOG_HINT, GL_NICEST);
|
||||||
fogCoord = SetFogCoord(GL_TRUE); /* try to enable fog_coord */
|
fogCoord = SetFogCoord(GL_TRUE); /* try to enable fog_coord */
|
||||||
fogMode = SetFogMode(2); /* GL_EXP */
|
fogMode = SetFogMode(1);
|
||||||
|
|
||||||
camz = -19.0f;
|
|
||||||
|
|
||||||
#if ARRAYS
|
|
||||||
glEnableClientState(GL_VERTEX_ARRAY);
|
glEnableClientState(GL_VERTEX_ARRAY);
|
||||||
glVertexPointer(3, GL_FLOAT, 0, vertex_pointer);
|
glVertexPointer(3, GL_FLOAT, 0, vertex_pointer);
|
||||||
|
|
||||||
@@ -395,24 +401,24 @@ static void Init( void )
|
|||||||
glTexCoordPointer(2, GL_FLOAT, 0, texcoord_pointer);
|
glTexCoordPointer(2, GL_FLOAT, 0, texcoord_pointer);
|
||||||
|
|
||||||
if (have_fog_coord) {
|
if (have_fog_coord) {
|
||||||
glFogCoordPointer_ext = (GLFOGCOORDPOINTEREXTPROC)glutGetProcAddress("glFogCoordPointerEXT");
|
glFogCoordPointer_ext = (PFNGLFOGCOORDPOINTEREXTPROC)glutGetProcAddress("glFogCoordPointerEXT");
|
||||||
glEnableClientState(GL_FOG_COORDINATE_ARRAY_EXT);
|
glEnableClientState(GL_FOG_COORDINATE_ARRAY_EXT);
|
||||||
glFogCoordPointer_ext(GL_FLOAT, 0, fogcoord_pointer);
|
glFogCoordPointer_ext(GL_FLOAT, 0, fogcoord_pointer);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
Reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int main( int argc, char *argv[] )
|
int
|
||||||
|
main( int argc, char *argv[] )
|
||||||
{
|
{
|
||||||
glutInit( &argc, argv );
|
glutInit( &argc, argv );
|
||||||
glutInitWindowPosition( 0, 0 );
|
glutInitWindowSize( 600, 600 );
|
||||||
glutInitWindowSize( 640, 480 );
|
|
||||||
glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH );
|
glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH );
|
||||||
glutCreateWindow(argv[0]);
|
glutCreateWindow(argv[0]);
|
||||||
glutReshapeFunc( Reshape );
|
glutReshapeFunc( Reshape );
|
||||||
glutKeyboardFunc( Key );
|
glutKeyboardFunc( Key );
|
||||||
glutSpecialFunc( SpecialKey );
|
|
||||||
glutDisplayFunc( Display );
|
glutDisplayFunc( Display );
|
||||||
Init();
|
Init();
|
||||||
glutMainLoop();
|
glutMainLoop();
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ static GLuint VertProg;
|
|||||||
static GLboolean Anim = GL_TRUE;
|
static GLboolean Anim = GL_TRUE;
|
||||||
static GLboolean Wire = GL_FALSE;
|
static GLboolean Wire = GL_FALSE;
|
||||||
static GLboolean PixelLight = GL_TRUE;
|
static GLboolean PixelLight = GL_TRUE;
|
||||||
|
static GLint Win;
|
||||||
static GLfloat Xrot = 0, Yrot = 0;
|
static GLfloat Xrot = 0, Yrot = 0;
|
||||||
|
|
||||||
|
|
||||||
@@ -136,8 +136,8 @@ static void Key( unsigned char key, int x, int y )
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 27:
|
case 27:
|
||||||
|
glutDestroyWindow(Win);
|
||||||
exit(0);
|
exit(0);
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
glutPostRedisplay();
|
glutPostRedisplay();
|
||||||
}
|
}
|
||||||
@@ -272,7 +272,7 @@ int main( int argc, char *argv[] )
|
|||||||
glutInitWindowPosition( 0, 0 );
|
glutInitWindowPosition( 0, 0 );
|
||||||
glutInitWindowSize( 200, 200 );
|
glutInitWindowSize( 200, 200 );
|
||||||
glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH );
|
glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH );
|
||||||
glutCreateWindow(argv[0]);
|
Win = glutCreateWindow(argv[0]);
|
||||||
glutReshapeFunc( Reshape );
|
glutReshapeFunc( Reshape );
|
||||||
glutKeyboardFunc( Key );
|
glutKeyboardFunc( Key );
|
||||||
glutSpecialFunc( SpecialKey );
|
glutSpecialFunc( SpecialKey );
|
||||||
|
|||||||
@@ -20,20 +20,30 @@
|
|||||||
#include <GL/gl.h>
|
#include <GL/gl.h>
|
||||||
#include <GL/glut.h>
|
#include <GL/glut.h>
|
||||||
#include <GL/glext.h>
|
#include <GL/glext.h>
|
||||||
|
#include "extfuncs.h"
|
||||||
|
|
||||||
|
|
||||||
|
#define TEXTURE 0
|
||||||
|
|
||||||
|
static GLint CoordAttrib = 0;
|
||||||
|
|
||||||
|
static char *FragProgFile = NULL;
|
||||||
|
static char *VertProgFile = NULL;
|
||||||
|
|
||||||
static GLfloat diffuse[4] = { 0.5f, 0.5f, 1.0f, 1.0f };
|
static GLfloat diffuse[4] = { 0.5f, 0.5f, 1.0f, 1.0f };
|
||||||
static GLfloat specular[4] = { 0.8f, 0.8f, 0.8f, 1.0f };
|
static GLfloat specular[4] = { 0.8f, 0.8f, 0.8f, 1.0f };
|
||||||
static GLfloat lightPos[4] = { 0.0f, 10.0f, 20.0f, 1.0f };
|
static GLfloat lightPos[4] = { 0.0f, 10.0f, 20.0f, 0.0f };
|
||||||
static GLfloat delta = 1.0f;
|
static GLfloat delta = 1.0f;
|
||||||
|
|
||||||
static GLuint fragShader;
|
static GLuint fragShader;
|
||||||
static GLuint vertShader;
|
static GLuint vertShader;
|
||||||
static GLuint program;
|
static GLuint program;
|
||||||
|
|
||||||
static GLint uLightPos;
|
|
||||||
static GLint uDiffuse;
|
static GLint uDiffuse;
|
||||||
static GLint uSpecular;
|
static GLint uSpecular;
|
||||||
|
static GLint uTexture;
|
||||||
|
|
||||||
|
static GLuint SphereList, RectList, CurList;
|
||||||
static GLint win = 0;
|
static GLint win = 0;
|
||||||
static GLboolean anim = GL_TRUE;
|
static GLboolean anim = GL_TRUE;
|
||||||
static GLboolean wire = GL_FALSE;
|
static GLboolean wire = GL_FALSE;
|
||||||
@@ -42,58 +52,47 @@ static GLboolean pixelLight = GL_TRUE;
|
|||||||
static GLint t0 = 0;
|
static GLint t0 = 0;
|
||||||
static GLint frames = 0;
|
static GLint frames = 0;
|
||||||
|
|
||||||
static GLfloat xRot = 0.0f, yRot = 0.0f;
|
static GLfloat xRot = 90.0f, yRot = 0.0f;
|
||||||
|
|
||||||
static PFNGLCREATESHADERPROC glCreateShader_func = NULL;
|
|
||||||
static PFNGLSHADERSOURCEPROC glShaderSource_func = NULL;
|
|
||||||
static PFNGLGETSHADERSOURCEPROC glGetShaderSource_func = NULL;
|
|
||||||
static PFNGLCOMPILESHADERPROC glCompileShader_func = NULL;
|
|
||||||
static PFNGLCREATEPROGRAMPROC glCreateProgram_func = NULL;
|
|
||||||
static PFNGLDELETEPROGRAMPROC glDeleteProgram_func = NULL;
|
|
||||||
static PFNGLDELETESHADERPROC glDeleteShader_func = NULL;
|
|
||||||
static PFNGLATTACHSHADERPROC glAttachShader_func = NULL;
|
|
||||||
static PFNGLLINKPROGRAMPROC glLinkProgram_func = NULL;
|
|
||||||
static PFNGLUSEPROGRAMPROC glUseProgram_func = NULL;
|
|
||||||
static PFNGLGETUNIFORMLOCATIONPROC glGetUniformLocation_func = NULL;
|
|
||||||
static PFNGLISPROGRAMPROC glIsProgram_func = NULL;
|
|
||||||
static PFNGLISSHADERPROC glIsShader_func = NULL;
|
|
||||||
static PFNGLUNIFORM3FVPROC glUniform3fv_func = NULL;
|
|
||||||
static PFNGLUNIFORM3FVPROC glUniform4fv_func = NULL;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
normalize(GLfloat *dst, const GLfloat *src)
|
normalize(GLfloat *dst, const GLfloat *src)
|
||||||
{
|
{
|
||||||
GLfloat len = sqrtf(src[0] * src[0] + src[1] * src[1] + src[2] * src[2]);
|
GLfloat len = sqrt(src[0] * src[0] + src[1] * src[1] + src[2] * src[2]);
|
||||||
dst[0] = src[0] / len;
|
dst[0] = src[0] / len;
|
||||||
dst[1] = src[1] / len;
|
dst[1] = src[1] / len;
|
||||||
dst[2] = src[2] / len;
|
dst[2] = src[2] / len;
|
||||||
|
dst[3] = src[3];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
Redisplay(void)
|
Redisplay(void)
|
||||||
{
|
{
|
||||||
|
GLfloat vec[4];
|
||||||
|
|
||||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||||
|
|
||||||
|
/* update light position */
|
||||||
|
normalize(vec, lightPos);
|
||||||
|
glLightfv(GL_LIGHT0, GL_POSITION, vec);
|
||||||
|
|
||||||
if (pixelLight) {
|
if (pixelLight) {
|
||||||
GLfloat vec[3];
|
|
||||||
glUseProgram_func(program);
|
glUseProgram_func(program);
|
||||||
normalize(vec, lightPos);
|
|
||||||
glUniform3fv_func(uLightPos, 1, vec);
|
|
||||||
glDisable(GL_LIGHTING);
|
glDisable(GL_LIGHTING);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
glUseProgram_func(0);
|
glUseProgram_func(0);
|
||||||
glLightfv(GL_LIGHT0, GL_POSITION, lightPos);
|
|
||||||
glEnable(GL_LIGHTING);
|
glEnable(GL_LIGHTING);
|
||||||
}
|
}
|
||||||
|
|
||||||
glPushMatrix();
|
glPushMatrix();
|
||||||
glRotatef(xRot, 1.0f, 0.0f, 0.0f);
|
glRotatef(xRot, 1.0f, 0.0f, 0.0f);
|
||||||
glRotatef(yRot, 0.0f, 1.0f, 0.0f);
|
glRotatef(yRot, 0.0f, 1.0f, 0.0f);
|
||||||
|
/*
|
||||||
glutSolidSphere(2.0, 10, 5);
|
glutSolidSphere(2.0, 10, 5);
|
||||||
|
*/
|
||||||
|
glCallList(CurList);
|
||||||
glPopMatrix();
|
glPopMatrix();
|
||||||
|
|
||||||
glutSwapBuffers();
|
glutSwapBuffers();
|
||||||
@@ -174,6 +173,12 @@ Key(unsigned char key, int x, int y)
|
|||||||
else
|
else
|
||||||
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
|
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
|
||||||
break;
|
break;
|
||||||
|
case 'o':
|
||||||
|
if (CurList == SphereList)
|
||||||
|
CurList = RectList;
|
||||||
|
else
|
||||||
|
CurList = SphereList;
|
||||||
|
break;
|
||||||
case 'p':
|
case 'p':
|
||||||
pixelLight = !pixelLight;
|
pixelLight = !pixelLight;
|
||||||
if (pixelLight)
|
if (pixelLight)
|
||||||
@@ -216,17 +221,249 @@ SpecialKey(int key, int x, int y)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
TestFunctions(void)
|
||||||
|
{
|
||||||
|
printf("Error 0x%x at line %d\n", glGetError(), __LINE__);
|
||||||
|
{
|
||||||
|
GLfloat pos[3];
|
||||||
|
printf("Error 0x%x at line %d\n", glGetError(), __LINE__);
|
||||||
|
printf("Light pos %g %g %g\n", pos[0], pos[1], pos[2]);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
{
|
||||||
|
GLfloat m[16], result[16];
|
||||||
|
GLint mPos;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
for (i = 0; i < 16; i++)
|
||||||
|
m[i] = (float) i;
|
||||||
|
|
||||||
|
mPos = glGetUniformLocation_func(program, "m");
|
||||||
|
printf("Error 0x%x at line %d\n", glGetError(), __LINE__);
|
||||||
|
glUniformMatrix4fv_func(mPos, 1, GL_FALSE, m);
|
||||||
|
printf("Error 0x%x at line %d\n", glGetError(), __LINE__);
|
||||||
|
|
||||||
|
glGetUniformfv_func(program, mPos, result);
|
||||||
|
printf("Error 0x%x at line %d\n", glGetError(), __LINE__);
|
||||||
|
|
||||||
|
for (i = 0; i < 16; i++) {
|
||||||
|
printf("%8g %8g\n", m[i], result[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
assert(glIsProgram_func(program));
|
||||||
|
assert(glIsShader_func(fragShader));
|
||||||
|
assert(glIsShader_func(vertShader));
|
||||||
|
|
||||||
|
/* attached shaders */
|
||||||
|
{
|
||||||
|
GLuint shaders[20];
|
||||||
|
GLsizei count;
|
||||||
|
int i;
|
||||||
|
glGetAttachedShaders_func(program, 20, &count, shaders);
|
||||||
|
for (i = 0; i < count; i++) {
|
||||||
|
printf("Attached: %u\n", shaders[i]);
|
||||||
|
assert(shaders[i] == fragShader ||
|
||||||
|
shaders[i] == vertShader);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
GLchar log[1000];
|
||||||
|
GLsizei len;
|
||||||
|
glGetShaderInfoLog_func(vertShader, 1000, &len, log);
|
||||||
|
printf("Vert Shader Info Log: %s\n", log);
|
||||||
|
glGetShaderInfoLog_func(fragShader, 1000, &len, log);
|
||||||
|
printf("Frag Shader Info Log: %s\n", log);
|
||||||
|
glGetProgramInfoLog_func(program, 1000, &len, log);
|
||||||
|
printf("Program Info Log: %s\n", log);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#if TEXTURE
|
||||||
|
static void
|
||||||
|
MakeTexture(void)
|
||||||
|
{
|
||||||
|
#define SZ0 64
|
||||||
|
#define SZ1 32
|
||||||
|
GLubyte image0[SZ0][SZ0][SZ0][4];
|
||||||
|
GLubyte image1[SZ1][SZ1][SZ1][4];
|
||||||
|
GLuint i, j, k;
|
||||||
|
|
||||||
|
/* level 0: two-tone gray checkboard */
|
||||||
|
for (i = 0; i < SZ0; i++) {
|
||||||
|
for (j = 0; j < SZ0; j++) {
|
||||||
|
for (k = 0; k < SZ0; k++) {
|
||||||
|
if ((i/8 + j/8 + k/8) & 1) {
|
||||||
|
image0[i][j][k][0] =
|
||||||
|
image0[i][j][k][1] =
|
||||||
|
image0[i][j][k][2] = 200;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
image0[i][j][k][0] =
|
||||||
|
image0[i][j][k][1] =
|
||||||
|
image0[i][j][k][2] = 100;
|
||||||
|
}
|
||||||
|
image0[i][j][k][3] = 255;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* level 1: two-tone green checkboard */
|
||||||
|
for (i = 0; i < SZ1; i++) {
|
||||||
|
for (j = 0; j < SZ1; j++) {
|
||||||
|
for (k = 0; k < SZ1; k++) {
|
||||||
|
if ((i/8 + j/8 + k/8) & 1) {
|
||||||
|
image1[i][j][k][0] = 0;
|
||||||
|
image1[i][j][k][1] = 250;
|
||||||
|
image1[i][j][k][2] = 0;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
image1[i][j][k][0] = 0;
|
||||||
|
image1[i][j][k][1] = 200;
|
||||||
|
image1[i][j][k][2] = 0;
|
||||||
|
}
|
||||||
|
image1[i][j][k][3] = 255;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
glActiveTexture(GL_TEXTURE2); /* unit 2 */
|
||||||
|
glBindTexture(GL_TEXTURE_2D, 42);
|
||||||
|
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, SZ0, SZ0, 0,
|
||||||
|
GL_RGBA, GL_UNSIGNED_BYTE, image0);
|
||||||
|
glTexImage2D(GL_TEXTURE_2D, 1, GL_RGBA, SZ1, SZ1, 0,
|
||||||
|
GL_RGBA, GL_UNSIGNED_BYTE, image1);
|
||||||
|
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, 1);
|
||||||
|
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
|
||||||
|
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
|
||||||
|
|
||||||
|
glActiveTexture(GL_TEXTURE4); /* unit 4 */
|
||||||
|
glBindTexture(GL_TEXTURE_3D, 43);
|
||||||
|
glTexImage3D(GL_TEXTURE_3D, 0, GL_RGBA, SZ0, SZ0, SZ0, 0,
|
||||||
|
GL_RGBA, GL_UNSIGNED_BYTE, image0);
|
||||||
|
glTexImage3D(GL_TEXTURE_3D, 1, GL_RGBA, SZ1, SZ1, SZ1, 0,
|
||||||
|
GL_RGBA, GL_UNSIGNED_BYTE, image1);
|
||||||
|
glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_MAX_LEVEL, 1);
|
||||||
|
glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
|
||||||
|
glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
MakeSphere(void)
|
||||||
|
{
|
||||||
|
GLUquadricObj *obj = gluNewQuadric();
|
||||||
|
SphereList = glGenLists(1);
|
||||||
|
gluQuadricTexture(obj, GL_TRUE);
|
||||||
|
glNewList(SphereList, GL_COMPILE);
|
||||||
|
gluSphere(obj, 2.0f, 10, 5);
|
||||||
|
glEndList();
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
VertAttrib(GLint index, float x, float y)
|
||||||
|
{
|
||||||
|
#if 1
|
||||||
|
glVertexAttrib2f_func(index, x, y);
|
||||||
|
#else
|
||||||
|
glTexCoord2f(x, y);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
MakeRect(void)
|
||||||
|
{
|
||||||
|
RectList = glGenLists(1);
|
||||||
|
glNewList(RectList, GL_COMPILE);
|
||||||
|
glNormal3f(0, 0, 1);
|
||||||
|
glBegin(GL_POLYGON);
|
||||||
|
VertAttrib(CoordAttrib, 0, 0); glVertex2f(-2, -2);
|
||||||
|
VertAttrib(CoordAttrib, 1, 0); glVertex2f( 2, -2);
|
||||||
|
VertAttrib(CoordAttrib, 1, 1); glVertex2f( 2, 2);
|
||||||
|
VertAttrib(CoordAttrib, 0, 1); glVertex2f(-2, 2);
|
||||||
|
glEnd(); /* XXX omit this and crash! */
|
||||||
|
glEndList();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
LoadAndCompileShader(GLuint shader, const char *text)
|
||||||
|
{
|
||||||
|
GLint stat;
|
||||||
|
|
||||||
|
glShaderSource_func(shader, 1, (const GLchar **) &text, NULL);
|
||||||
|
|
||||||
|
glCompileShader_func(shader);
|
||||||
|
|
||||||
|
glGetShaderiv_func(shader, GL_COMPILE_STATUS, &stat);
|
||||||
|
if (!stat) {
|
||||||
|
GLchar log[1000];
|
||||||
|
GLsizei len;
|
||||||
|
glGetShaderInfoLog_func(shader, 1000, &len, log);
|
||||||
|
fprintf(stderr, "fslight: problem compiling shader:\n%s\n", log);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Read a shader from a file.
|
||||||
|
*/
|
||||||
|
static void
|
||||||
|
ReadShader(GLuint shader, const char *filename)
|
||||||
|
{
|
||||||
|
const int max = 100*1000;
|
||||||
|
int n;
|
||||||
|
char *buffer = (char*) malloc(max);
|
||||||
|
FILE *f = fopen(filename, "r");
|
||||||
|
if (!f) {
|
||||||
|
fprintf(stderr, "fslight: Unable to open shader file %s\n", filename);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
n = fread(buffer, 1, max, f);
|
||||||
|
printf("fslight: read %d bytes from shader file %s\n", n, filename);
|
||||||
|
if (n > 0) {
|
||||||
|
buffer[n] = 0;
|
||||||
|
LoadAndCompileShader(shader, buffer);
|
||||||
|
}
|
||||||
|
|
||||||
|
fclose(f);
|
||||||
|
free(buffer);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
CheckLink(GLuint prog)
|
||||||
|
{
|
||||||
|
GLint stat;
|
||||||
|
glGetProgramiv_func(prog, GL_LINK_STATUS, &stat);
|
||||||
|
if (!stat) {
|
||||||
|
GLchar log[1000];
|
||||||
|
GLsizei len;
|
||||||
|
glGetProgramInfoLog_func(prog, 1000, &len, log);
|
||||||
|
fprintf(stderr, "Linker error:\n%s\n", log);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
Init(void)
|
Init(void)
|
||||||
{
|
{
|
||||||
static const char *fragShaderText =
|
static const char *fragShaderText =
|
||||||
"uniform vec3 lightPos;\n"
|
|
||||||
"uniform vec4 diffuse;\n"
|
"uniform vec4 diffuse;\n"
|
||||||
"uniform vec4 specular;\n"
|
"uniform vec4 specular;\n"
|
||||||
"varying vec3 normal;\n"
|
"varying vec3 normal;\n"
|
||||||
"void main() {\n"
|
"void main() {\n"
|
||||||
" // Compute dot product of light direction and normal vector\n"
|
" // Compute dot product of light direction and normal vector\n"
|
||||||
" float dotProd = max(dot(lightPos, normalize(normal)), 0.0);\n"
|
" float dotProd = max(dot(gl_LightSource[0].position.xyz, \n"
|
||||||
|
" normalize(normal)), 0.0);\n"
|
||||||
" // Compute diffuse and specular contributions\n"
|
" // Compute diffuse and specular contributions\n"
|
||||||
" gl_FragColor = diffuse * dotProd + specular * pow(dotProd, 20.0);\n"
|
" gl_FragColor = diffuse * dotProd + specular * pow(dotProd, 20.0);\n"
|
||||||
"}\n";
|
"}\n";
|
||||||
@@ -236,53 +473,63 @@ Init(void)
|
|||||||
" gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;\n"
|
" gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;\n"
|
||||||
" normal = gl_NormalMatrix * gl_Normal;\n"
|
" normal = gl_NormalMatrix * gl_Normal;\n"
|
||||||
"}\n";
|
"}\n";
|
||||||
|
|
||||||
|
|
||||||
const char *version;
|
const char *version;
|
||||||
|
|
||||||
version = (const char *) glGetString(GL_VERSION);
|
version = (const char *) glGetString(GL_VERSION);
|
||||||
if (version[0] != '2' || version[1] != '.') {
|
if (version[0] != '2' || version[1] != '.') {
|
||||||
printf("Warning: this program expects OpenGL 2.0\n");
|
printf("This program requires OpenGL 2.x, found %s\n", version);
|
||||||
/*exit(1);*/
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GetExtensionFuncs();
|
||||||
glCreateShader_func = (PFNGLCREATESHADERPROC) glutGetProcAddress("glCreateShader");
|
|
||||||
glDeleteShader_func = (PFNGLDELETESHADERPROC) glutGetProcAddress("glDeleteShader");
|
|
||||||
glDeleteProgram_func = (PFNGLDELETEPROGRAMPROC) glutGetProcAddress("glDeleteProgram");
|
|
||||||
glShaderSource_func = (PFNGLSHADERSOURCEPROC) glutGetProcAddress("glShaderSource");
|
|
||||||
glGetShaderSource_func = (PFNGLGETSHADERSOURCEPROC) glutGetProcAddress("glGetShaderSource");
|
|
||||||
glCompileShader_func = (PFNGLCOMPILESHADERPROC) glutGetProcAddress("glCompileShader");
|
|
||||||
glCreateProgram_func = (PFNGLCREATEPROGRAMPROC) glutGetProcAddress("glCreateProgram");
|
|
||||||
glAttachShader_func = (PFNGLATTACHSHADERPROC) glutGetProcAddress("glAttachShader");
|
|
||||||
glLinkProgram_func = (PFNGLLINKPROGRAMPROC) glutGetProcAddress("glLinkProgram");
|
|
||||||
glUseProgram_func = (PFNGLUSEPROGRAMPROC) glutGetProcAddress("glUseProgram");
|
|
||||||
glGetUniformLocation_func = (PFNGLGETUNIFORMLOCATIONPROC) glutGetProcAddress("glGetUniformLocation");
|
|
||||||
glIsProgram_func = (PFNGLISPROGRAMPROC) glutGetProcAddress("glIsProgram");
|
|
||||||
glIsShader_func = (PFNGLISSHADERPROC) glutGetProcAddress("glIsShader");
|
|
||||||
glUniform3fv_func = (PFNGLUNIFORM3FVPROC) glutGetProcAddress("glUniform3fv");
|
|
||||||
glUniform4fv_func = (PFNGLUNIFORM3FVPROC) glutGetProcAddress("glUniform4fv");
|
|
||||||
|
|
||||||
fragShader = glCreateShader_func(GL_FRAGMENT_SHADER);
|
fragShader = glCreateShader_func(GL_FRAGMENT_SHADER);
|
||||||
glShaderSource_func(fragShader, 1, &fragShaderText, NULL);
|
if (FragProgFile)
|
||||||
glCompileShader_func(fragShader);
|
ReadShader(fragShader, FragProgFile);
|
||||||
|
else
|
||||||
|
LoadAndCompileShader(fragShader, fragShaderText);
|
||||||
|
|
||||||
|
|
||||||
vertShader = glCreateShader_func(GL_VERTEX_SHADER);
|
vertShader = glCreateShader_func(GL_VERTEX_SHADER);
|
||||||
glShaderSource_func(vertShader, 1, &vertShaderText, NULL);
|
if (VertProgFile)
|
||||||
glCompileShader_func(vertShader);
|
ReadShader(vertShader, VertProgFile);
|
||||||
|
else
|
||||||
|
LoadAndCompileShader(vertShader, vertShaderText);
|
||||||
|
|
||||||
program = glCreateProgram_func();
|
program = glCreateProgram_func();
|
||||||
glAttachShader_func(program, fragShader);
|
glAttachShader_func(program, fragShader);
|
||||||
glAttachShader_func(program, vertShader);
|
glAttachShader_func(program, vertShader);
|
||||||
glLinkProgram_func(program);
|
glLinkProgram_func(program);
|
||||||
|
CheckLink(program);
|
||||||
glUseProgram_func(program);
|
glUseProgram_func(program);
|
||||||
|
|
||||||
uLightPos = glGetUniformLocation_func(program, "lightPos");
|
|
||||||
uDiffuse = glGetUniformLocation_func(program, "diffuse");
|
uDiffuse = glGetUniformLocation_func(program, "diffuse");
|
||||||
uSpecular = glGetUniformLocation_func(program, "specular");
|
uSpecular = glGetUniformLocation_func(program, "specular");
|
||||||
|
uTexture = glGetUniformLocation_func(program, "texture");
|
||||||
|
printf("DiffusePos %d SpecularPos %d TexturePos %d\n",
|
||||||
|
uDiffuse, uSpecular, uTexture);
|
||||||
|
|
||||||
glUniform4fv_func(uDiffuse, 1, diffuse);
|
glUniform4fv_func(uDiffuse, 1, diffuse);
|
||||||
glUniform4fv_func(uSpecular, 1, specular);
|
glUniform4fv_func(uSpecular, 1, specular);
|
||||||
|
/* assert(glGetError() == 0);*/
|
||||||
|
glUniform1i_func(uTexture, 2); /* use texture unit 2 */
|
||||||
|
/*assert(glGetError() == 0);*/
|
||||||
|
|
||||||
|
if (CoordAttrib) {
|
||||||
|
int i;
|
||||||
|
glBindAttribLocation_func(program, CoordAttrib, "coord");
|
||||||
|
i = glGetAttribLocation_func(program, "coord");
|
||||||
|
assert(i >= 0);
|
||||||
|
if (i != CoordAttrib) {
|
||||||
|
printf("Hmmm, NVIDIA bug?\n");
|
||||||
|
CoordAttrib = i;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
printf("Mesa bind attrib: coord = %d\n", i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*assert(glGetError() == 0);*/
|
||||||
|
|
||||||
glClearColor(0.3f, 0.3f, 0.3f, 0.0f);
|
glClearColor(0.3f, 0.3f, 0.3f, 0.0f);
|
||||||
glEnable(GL_DEPTH_TEST);
|
glEnable(GL_DEPTH_TEST);
|
||||||
@@ -292,11 +539,20 @@ Init(void)
|
|||||||
glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, specular);
|
glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, specular);
|
||||||
glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, 20.0f);
|
glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, 20.0f);
|
||||||
|
|
||||||
|
MakeSphere();
|
||||||
|
MakeRect();
|
||||||
|
|
||||||
|
CurList = SphereList;
|
||||||
|
|
||||||
|
#if TEXTURE
|
||||||
|
MakeTexture();
|
||||||
|
#endif
|
||||||
|
|
||||||
printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER));
|
printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER));
|
||||||
printf("Press p to toggle between per-pixel and per-vertex lighting\n");
|
printf("Press p to toggle between per-pixel and per-vertex lighting\n");
|
||||||
|
|
||||||
/* test glGetShaderSource() */
|
/* test glGetShaderSource() */
|
||||||
{
|
if (0) {
|
||||||
GLsizei len = strlen(fragShaderText) + 1;
|
GLsizei len = strlen(fragShaderText) + 1;
|
||||||
GLsizei lenOut;
|
GLsizei lenOut;
|
||||||
GLchar *src =(GLchar *) malloc(len * sizeof(GLchar));
|
GLchar *src =(GLchar *) malloc(len * sizeof(GLchar));
|
||||||
@@ -310,6 +566,37 @@ Init(void)
|
|||||||
assert(glIsProgram_func(program));
|
assert(glIsProgram_func(program));
|
||||||
assert(glIsShader_func(fragShader));
|
assert(glIsShader_func(fragShader));
|
||||||
assert(glIsShader_func(vertShader));
|
assert(glIsShader_func(vertShader));
|
||||||
|
|
||||||
|
glColor3f(1, 0, 0);
|
||||||
|
|
||||||
|
/* for testing state vars */
|
||||||
|
{
|
||||||
|
static GLfloat fc[4] = { 1, 1, 0, 0 };
|
||||||
|
static GLfloat amb[4] = { 1, 0, 1, 0 };
|
||||||
|
glFogfv(GL_FOG_COLOR, fc);
|
||||||
|
glLightfv(GL_LIGHT1, GL_AMBIENT, amb);
|
||||||
|
}
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
TestFunctions();
|
||||||
|
#else
|
||||||
|
(void) TestFunctions;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
ParseOptions(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
for (i = 1; i < argc; i++) {
|
||||||
|
if (strcmp(argv[i], "-fs") == 0) {
|
||||||
|
FragProgFile = argv[i+1];
|
||||||
|
}
|
||||||
|
else if (strcmp(argv[i], "-vs") == 0) {
|
||||||
|
VertProgFile = argv[i+1];
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -327,8 +614,10 @@ main(int argc, char *argv[])
|
|||||||
glutDisplayFunc(Redisplay);
|
glutDisplayFunc(Redisplay);
|
||||||
if (anim)
|
if (anim)
|
||||||
glutIdleFunc(Idle);
|
glutIdleFunc(Idle);
|
||||||
|
ParseOptions(argc, argv);
|
||||||
Init();
|
Init();
|
||||||
glutMainLoop();
|
glutMainLoop();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1053,6 +1053,7 @@ main (int argc, char *argv[])
|
|||||||
else
|
else
|
||||||
file = argv[1];
|
file = argv[1];
|
||||||
|
|
||||||
|
glutInit(&argc, argv);
|
||||||
glutInitWindowPosition (0, 0);
|
glutInitWindowPosition (0, 0);
|
||||||
glutInitWindowSize(640,480);
|
glutInitWindowSize(640,480);
|
||||||
glutInitDisplayMode (GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE );
|
glutInitDisplayMode (GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE );
|
||||||
|
|||||||
@@ -569,6 +569,7 @@ main(int ac, char **av)
|
|||||||
if (ac == 2)
|
if (ac == 2)
|
||||||
frontbuffer = 0;
|
frontbuffer = 0;
|
||||||
|
|
||||||
|
glutInit(&ac, av);
|
||||||
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
|
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
|
||||||
glutInitWindowPosition(0, 0);
|
glutInitWindowPosition(0, 0);
|
||||||
glutInitWindowSize(640, 480);
|
glutInitWindowSize(640, 480);
|
||||||
|
|||||||
@@ -1042,6 +1042,7 @@ int main(int argc, char **argv)
|
|||||||
|
|
||||||
read_surface( "isosurf.dat" );
|
read_surface( "isosurf.dat" );
|
||||||
|
|
||||||
|
glutInit( &argc, argv);
|
||||||
glutInitWindowPosition(0, 0);
|
glutInitWindowPosition(0, 0);
|
||||||
glutInitWindowSize(400, 400);
|
glutInitWindowSize(400, 400);
|
||||||
|
|
||||||
|
|||||||
@@ -826,7 +826,7 @@ static void pinit(void)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void INIT(void)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
printf("Morph 3D - Shows morphing platonic polyhedra\n");
|
printf("Morph 3D - Shows morphing platonic polyhedra\n");
|
||||||
printf("Author: Marcelo Fernandes Vianna (vianna@cat.cbpf.br)\n\n");
|
printf("Author: Marcelo Fernandes Vianna (vianna@cat.cbpf.br)\n\n");
|
||||||
@@ -841,6 +841,7 @@ static void INIT(void)
|
|||||||
|
|
||||||
object=1;
|
object=1;
|
||||||
|
|
||||||
|
glutInit(&argc, argv);
|
||||||
glutInitWindowPosition(0,0);
|
glutInitWindowPosition(0,0);
|
||||||
glutInitWindowSize(640,480);
|
glutInitWindowSize(640,480);
|
||||||
|
|
||||||
@@ -888,9 +889,3 @@ static void INIT(void)
|
|||||||
glutMainLoop();
|
glutMainLoop();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
INIT();
|
|
||||||
return(0);
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -296,14 +296,27 @@ RenderShadowMap(void)
|
|||||||
0, 1, 0); /* up */
|
0, 1, 0); /* up */
|
||||||
|
|
||||||
if (UseFBO) {
|
if (UseFBO) {
|
||||||
|
GLenum fbo_status;
|
||||||
|
|
||||||
glTexImage2D(GL_TEXTURE_2D, 0, depthFormat,
|
glTexImage2D(GL_TEXTURE_2D, 0, depthFormat,
|
||||||
ShadowTexWidth, ShadowTexHeight, 0,
|
ShadowTexWidth, ShadowTexHeight, 0,
|
||||||
depthFormat, depthType, NULL);
|
depthFormat, depthType, NULL);
|
||||||
|
|
||||||
|
/* Set the filter mode so that the texture is texture-complete.
|
||||||
|
* Otherwise it will cause the framebuffer to fail the framebuffer
|
||||||
|
* completeness test.
|
||||||
|
*/
|
||||||
|
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
|
||||||
|
|
||||||
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, ShadowFBO);
|
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, ShadowFBO);
|
||||||
glDrawBuffer(GL_NONE);
|
glDrawBuffer(GL_NONE);
|
||||||
glReadBuffer(GL_NONE);
|
glReadBuffer(GL_NONE);
|
||||||
assert(glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT)
|
|
||||||
== GL_FRAMEBUFFER_COMPLETE_EXT);
|
fbo_status = glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT);
|
||||||
|
if (fbo_status != GL_FRAMEBUFFER_COMPLETE_EXT) {
|
||||||
|
fprintf(stderr, "FBO not complete! status = 0x%04x\n", fbo_status);
|
||||||
|
assert(fbo_status == GL_FRAMEBUFFER_COMPLETE_EXT);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
assert(!glIsEnabled(GL_TEXTURE_1D));
|
assert(!glIsEnabled(GL_TEXTURE_1D));
|
||||||
|
|||||||
@@ -4,10 +4,10 @@
|
|||||||
* Updated for GLU 1.3 tessellation by Gareth Hughes <gareth@valinux.com>
|
* Updated for GLU 1.3 tessellation by Gareth Hughes <gareth@valinux.com>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <GL/glut.h>
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#include <GL/glut.h>
|
||||||
|
|
||||||
#define MAX_POINTS 256
|
#define MAX_POINTS 256
|
||||||
#define MAX_CONTOURS 32
|
#define MAX_CONTOURS 32
|
||||||
|
|||||||
@@ -149,7 +149,7 @@ TypeStr(GLenum type)
|
|||||||
*/
|
*/
|
||||||
#define ALIGN (1<<12)
|
#define ALIGN (1<<12)
|
||||||
|
|
||||||
static unsigned align(unsigned value, unsigned a)
|
static unsigned long align(unsigned long value, unsigned long a)
|
||||||
{
|
{
|
||||||
return (value + a - 1) & ~(a-1);
|
return (value + a - 1) & ~(a-1);
|
||||||
}
|
}
|
||||||
@@ -186,10 +186,10 @@ MeasureDownloadRate(void)
|
|||||||
|
|
||||||
printf("alloc %p %p\n", orig_texImage, orig_getImage);
|
printf("alloc %p %p\n", orig_texImage, orig_getImage);
|
||||||
|
|
||||||
texImage = (GLubyte *)align((unsigned)orig_texImage, ALIGN);
|
texImage = (GLubyte *)align((unsigned long)orig_texImage, ALIGN);
|
||||||
getImage = (GLubyte *)align((unsigned)orig_getImage, ALIGN);
|
getImage = (GLubyte *)align((unsigned long)orig_getImage, ALIGN);
|
||||||
|
|
||||||
for (i = 1; !(((unsigned)texImage) & i); i<<=1)
|
for (i = 1; !(((unsigned long)texImage) & i); i<<=1)
|
||||||
;
|
;
|
||||||
printf("texture image alignment: %d bytes (%p)\n", i, texImage);
|
printf("texture image alignment: %d bytes (%p)\n", i, texImage);
|
||||||
|
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ static void init( void )
|
|||||||
WindowPosFunc = &glWindowPos2fARB;
|
WindowPosFunc = &glWindowPos2fARB;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
#elif defined(GL_ARB_window_pos)
|
#elif defined(GL_MESA_window_pos)
|
||||||
if (glutExtensionSupported("GL_MESA_window_pos")) {
|
if (glutExtensionSupported("GL_MESA_window_pos")) {
|
||||||
printf("Using GL_MESA_window_pos\n");
|
printf("Using GL_MESA_window_pos\n");
|
||||||
WindowPosFunc = &glWindowPos2fMESA;
|
WindowPosFunc = &glWindowPos2fMESA;
|
||||||
@@ -100,6 +100,7 @@ static void init( void )
|
|||||||
|
|
||||||
int main( int argc, char *argv[] )
|
int main( int argc, char *argv[] )
|
||||||
{
|
{
|
||||||
|
glutInit(&argc, argv);
|
||||||
glutInitWindowPosition(0, 0);
|
glutInitWindowPosition(0, 0);
|
||||||
glutInitWindowSize(500, 500);
|
glutInitWindowSize(500, 500);
|
||||||
glutInitDisplayMode( GLUT_RGB );
|
glutInitDisplayMode( GLUT_RGB );
|
||||||
|
|||||||
36
progs/glsl/CH06-brick.frag.txt
Normal file
36
progs/glsl/CH06-brick.frag.txt
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
//
|
||||||
|
// Fragment shader for procedural bricks
|
||||||
|
//
|
||||||
|
// Authors: Dave Baldwin, Steve Koren, Randi Rost
|
||||||
|
// based on a shader by Darwyn Peachey
|
||||||
|
//
|
||||||
|
// Copyright (c) 2002-2006 3Dlabs Inc. Ltd.
|
||||||
|
//
|
||||||
|
// See 3Dlabs-License.txt for license information
|
||||||
|
//
|
||||||
|
|
||||||
|
uniform vec3 BrickColor, MortarColor;
|
||||||
|
uniform vec2 BrickSize;
|
||||||
|
uniform vec2 BrickPct;
|
||||||
|
|
||||||
|
varying vec2 MCposition;
|
||||||
|
varying float LightIntensity;
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
vec3 color;
|
||||||
|
vec2 position, useBrick;
|
||||||
|
|
||||||
|
position = MCposition / BrickSize;
|
||||||
|
|
||||||
|
if (fract(position.y * 0.5) > 0.5)
|
||||||
|
position.x += 0.5;
|
||||||
|
|
||||||
|
position = fract(position);
|
||||||
|
|
||||||
|
useBrick = step(position, BrickPct);
|
||||||
|
|
||||||
|
color = mix(MortarColor, BrickColor, useBrick.x * useBrick.y);
|
||||||
|
color *= LightIntensity;
|
||||||
|
gl_FragColor = vec4(color, 1.0);
|
||||||
|
}
|
||||||
41
progs/glsl/CH06-brick.vert.txt
Normal file
41
progs/glsl/CH06-brick.vert.txt
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
//
|
||||||
|
// Vertex shader for procedural bricks
|
||||||
|
//
|
||||||
|
// Authors: Dave Baldwin, Steve Koren, Randi Rost
|
||||||
|
// based on a shader by Darwyn Peachey
|
||||||
|
//
|
||||||
|
// Copyright (c) 2002-2006 3Dlabs Inc. Ltd.
|
||||||
|
//
|
||||||
|
// See 3Dlabs-License.txt for license information
|
||||||
|
//
|
||||||
|
|
||||||
|
uniform vec3 LightPosition;
|
||||||
|
|
||||||
|
const float SpecularContribution = 0.3;
|
||||||
|
const float DiffuseContribution = 1.0 - SpecularContribution;
|
||||||
|
|
||||||
|
varying float LightIntensity;
|
||||||
|
varying vec2 MCposition;
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
vec3 ecPosition = vec3(gl_ModelViewMatrix * gl_Vertex);
|
||||||
|
vec3 tnorm = normalize(gl_NormalMatrix * gl_Normal);
|
||||||
|
vec3 lightVec = normalize(LightPosition - ecPosition);
|
||||||
|
vec3 reflectVec = reflect(-lightVec, tnorm);
|
||||||
|
vec3 viewVec = normalize(-ecPosition);
|
||||||
|
float diffuse = max(dot(lightVec, tnorm), 0.0);
|
||||||
|
float spec = 0.0;
|
||||||
|
|
||||||
|
if (diffuse > 0.0)
|
||||||
|
{
|
||||||
|
spec = max(dot(reflectVec, viewVec), 0.0);
|
||||||
|
spec = pow(spec, 16.0);
|
||||||
|
}
|
||||||
|
|
||||||
|
LightIntensity = DiffuseContribution * diffuse +
|
||||||
|
SpecularContribution * spec;
|
||||||
|
|
||||||
|
MCposition = gl_Vertex.xy;
|
||||||
|
gl_Position = ftransform();
|
||||||
|
}
|
||||||
41
progs/glsl/CH11-bumpmap.frag.txt
Normal file
41
progs/glsl/CH11-bumpmap.frag.txt
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
//
|
||||||
|
// Fragment shader for procedural bumps
|
||||||
|
//
|
||||||
|
// Authors: John Kessenich, Randi Rost
|
||||||
|
//
|
||||||
|
// Copyright (c) 2002-2006 3Dlabs Inc. Ltd.
|
||||||
|
//
|
||||||
|
// See 3Dlabs-License.txt for license information
|
||||||
|
//
|
||||||
|
|
||||||
|
varying vec3 LightDir;
|
||||||
|
varying vec3 EyeDir;
|
||||||
|
|
||||||
|
uniform vec3 SurfaceColor; // = (0.7, 0.6, 0.18)
|
||||||
|
uniform float BumpDensity; // = 16.0
|
||||||
|
uniform float BumpSize; // = 0.15
|
||||||
|
uniform float SpecularFactor; // = 0.5
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
vec3 litColor;
|
||||||
|
vec2 c = BumpDensity * gl_TexCoord[0].st;
|
||||||
|
vec2 p = fract(c) - vec2(0.5);
|
||||||
|
|
||||||
|
float d, f;
|
||||||
|
d = p.x * p.x + p.y * p.y;
|
||||||
|
f = 1.0 / sqrt(d + 1.0);
|
||||||
|
|
||||||
|
if (d >= BumpSize)
|
||||||
|
{ p = vec2(0.0); f = 1.0; }
|
||||||
|
|
||||||
|
vec3 normDelta = vec3(p.x, p.y, 1.0) * f;
|
||||||
|
litColor = SurfaceColor * max(dot(normDelta, LightDir), 0.0);
|
||||||
|
vec3 reflectDir = reflect(LightDir, normDelta);
|
||||||
|
|
||||||
|
float spec = max(dot(EyeDir, reflectDir), 0.0);
|
||||||
|
spec *= SpecularFactor;
|
||||||
|
litColor = min(litColor + spec, vec3(1.0));
|
||||||
|
|
||||||
|
gl_FragColor = vec4(litColor, 1.0);
|
||||||
|
}
|
||||||
38
progs/glsl/CH11-bumpmap.vert.txt
Normal file
38
progs/glsl/CH11-bumpmap.vert.txt
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
//
|
||||||
|
// Vertex shader for procedural bumps
|
||||||
|
//
|
||||||
|
// Authors: Randi Rost, John Kessenich
|
||||||
|
//
|
||||||
|
// Copyright (c) 2002-2006 3Dlabs Inc. Ltd.
|
||||||
|
//
|
||||||
|
// See 3Dlabs-License.txt for license information
|
||||||
|
//
|
||||||
|
|
||||||
|
varying vec3 LightDir;
|
||||||
|
varying vec3 EyeDir;
|
||||||
|
|
||||||
|
uniform vec3 LightPosition;
|
||||||
|
|
||||||
|
attribute vec3 Tangent;
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
EyeDir = vec3(gl_ModelViewMatrix * gl_Vertex);
|
||||||
|
gl_Position = ftransform();
|
||||||
|
gl_TexCoord[0] = gl_MultiTexCoord0;
|
||||||
|
|
||||||
|
vec3 n = normalize(gl_NormalMatrix * gl_Normal);
|
||||||
|
vec3 t = normalize(gl_NormalMatrix * Tangent);
|
||||||
|
vec3 b = cross(n, t);
|
||||||
|
|
||||||
|
vec3 v;
|
||||||
|
v.x = dot(LightPosition, t);
|
||||||
|
v.y = dot(LightPosition, b);
|
||||||
|
v.z = dot(LightPosition, n);
|
||||||
|
LightDir = normalize(v);
|
||||||
|
|
||||||
|
v.x = dot(EyeDir, t);
|
||||||
|
v.y = dot(EyeDir, b);
|
||||||
|
v.z = dot(EyeDir, n);
|
||||||
|
EyeDir = normalize(v);
|
||||||
|
}
|
||||||
75
progs/glsl/CH11-toyball.frag.txt
Normal file
75
progs/glsl/CH11-toyball.frag.txt
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
//
|
||||||
|
// Fragment shader for procedurally generated toy ball
|
||||||
|
//
|
||||||
|
// Author: Bill Licea-Kane
|
||||||
|
//
|
||||||
|
// Copyright (c) 2002-2003 ATI Research
|
||||||
|
//
|
||||||
|
// See ATI-License.txt for license information
|
||||||
|
//
|
||||||
|
|
||||||
|
varying vec4 ECposition; // surface position in eye coordinates
|
||||||
|
varying vec4 ECballCenter; // ball center in eye coordinates
|
||||||
|
|
||||||
|
uniform vec4 LightDir; // light direction, should be normalized
|
||||||
|
uniform vec4 HVector; // reflection vector for infinite light source
|
||||||
|
uniform vec4 SpecularColor;
|
||||||
|
uniform vec4 Red, Yellow, Blue;
|
||||||
|
|
||||||
|
uniform vec4 HalfSpace0; // half-spaces used to define star pattern
|
||||||
|
uniform vec4 HalfSpace1;
|
||||||
|
uniform vec4 HalfSpace2;
|
||||||
|
uniform vec4 HalfSpace3;
|
||||||
|
uniform vec4 HalfSpace4;
|
||||||
|
|
||||||
|
uniform float InOrOutInit; // = -3
|
||||||
|
uniform float StripeWidth; // = 0.3
|
||||||
|
uniform float FWidth; // = 0.005
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
vec4 normal; // Analytically computed normal
|
||||||
|
vec4 p; // Point in shader space
|
||||||
|
vec4 surfColor; // Computed color of the surface
|
||||||
|
float intensity; // Computed light intensity
|
||||||
|
vec4 distance; // Computed distance values
|
||||||
|
float inorout; // Counter for computing star pattern
|
||||||
|
|
||||||
|
p.xyz = normalize(ECposition.xyz - ECballCenter.xyz); // Calculate p
|
||||||
|
p.w = 1.0;
|
||||||
|
|
||||||
|
inorout = InOrOutInit; // initialize inorout to -3
|
||||||
|
|
||||||
|
distance[0] = dot(p, HalfSpace0);
|
||||||
|
distance[1] = dot(p, HalfSpace1);
|
||||||
|
distance[2] = dot(p, HalfSpace2);
|
||||||
|
distance[3] = dot(p, HalfSpace3);
|
||||||
|
|
||||||
|
distance = smoothstep(-FWidth, FWidth, distance);
|
||||||
|
inorout += dot(distance, vec4(1.0));
|
||||||
|
|
||||||
|
distance.x = dot(p, HalfSpace4);
|
||||||
|
distance.y = StripeWidth - abs(p.z);
|
||||||
|
distance = smoothstep(-FWidth, FWidth, distance);
|
||||||
|
inorout += distance.x;
|
||||||
|
|
||||||
|
inorout = clamp(inorout, 0.0, 1.0);
|
||||||
|
|
||||||
|
surfColor = mix(Yellow, Red, inorout);
|
||||||
|
surfColor = mix(surfColor, Blue, distance.y);
|
||||||
|
|
||||||
|
// normal = point on surface for sphere at (0,0,0)
|
||||||
|
normal = p;
|
||||||
|
|
||||||
|
// Per fragment diffuse lighting
|
||||||
|
intensity = 0.2; // ambient
|
||||||
|
intensity += 0.8 * clamp(dot(LightDir, normal), 0.0, 1.0);
|
||||||
|
surfColor *= intensity;
|
||||||
|
|
||||||
|
// Per fragment specular lighting
|
||||||
|
intensity = clamp(dot(HVector, normal), 0.0, 1.0);
|
||||||
|
intensity = pow(intensity, SpecularColor.a);
|
||||||
|
surfColor += SpecularColor * intensity;
|
||||||
|
|
||||||
|
gl_FragColor = surfColor;
|
||||||
|
}
|
||||||
24
progs/glsl/CH11-toyball.vert.txt
Normal file
24
progs/glsl/CH11-toyball.vert.txt
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
//
|
||||||
|
// Fragment shader for procedurally generated toy ball
|
||||||
|
//
|
||||||
|
// Author: Bill Licea-Kane
|
||||||
|
//
|
||||||
|
// Copyright (c) 2002-2003 ATI Research
|
||||||
|
//
|
||||||
|
// See ATI-License.txt for license information
|
||||||
|
//
|
||||||
|
|
||||||
|
varying vec4 ECposition; // surface position in eye coordinates
|
||||||
|
varying vec4 ECballCenter; // ball center in eye coordinates
|
||||||
|
uniform vec4 BallCenter; // ball center in modelling coordinates
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
//orig: ECposition = gl_ModelViewMatrix * gl_Vertex;
|
||||||
|
|
||||||
|
ECposition = gl_TextureMatrix[0] * gl_Vertex;
|
||||||
|
ECposition = gl_ModelViewMatrix * ECposition;
|
||||||
|
|
||||||
|
ECballCenter = gl_ModelViewMatrix * BallCenter;
|
||||||
|
gl_Position = ftransform();
|
||||||
|
}
|
||||||
55
progs/glsl/CH18-mandel.frag.txt
Normal file
55
progs/glsl/CH18-mandel.frag.txt
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
//
|
||||||
|
// Fragment shader for drawing the Mandelbrot set
|
||||||
|
//
|
||||||
|
// Authors: Dave Baldwin, Steve Koren, Randi Rost
|
||||||
|
// based on a shader by Michael Rivero
|
||||||
|
//
|
||||||
|
// Copyright (c) 2002-2005: 3Dlabs, Inc.
|
||||||
|
//
|
||||||
|
// See 3Dlabs-License.txt for license information
|
||||||
|
//
|
||||||
|
|
||||||
|
varying vec3 Position;
|
||||||
|
varying float LightIntensity;
|
||||||
|
|
||||||
|
uniform float MaxIterations;
|
||||||
|
uniform float Zoom;
|
||||||
|
uniform float Xcenter;
|
||||||
|
uniform float Ycenter;
|
||||||
|
uniform vec3 InnerColor;
|
||||||
|
uniform vec3 OuterColor1;
|
||||||
|
uniform vec3 OuterColor2;
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
float real = Position.x * Zoom + Xcenter;
|
||||||
|
float imag = Position.y * Zoom + Ycenter;
|
||||||
|
float Creal = real; // Change this line...
|
||||||
|
float Cimag = imag; // ...and this one to get a Julia set
|
||||||
|
|
||||||
|
float r2 = 0.0;
|
||||||
|
float iter;
|
||||||
|
|
||||||
|
// for (iter = 0.0; iter < MaxIterations && r2 < 4.0; ++iter)
|
||||||
|
for (iter = 0.0; iter < 12 && r2 < 4.0; ++iter)
|
||||||
|
{
|
||||||
|
float tempreal = real;
|
||||||
|
|
||||||
|
real = (tempreal * tempreal) - (imag * imag) + Creal;
|
||||||
|
imag = 2.0 * tempreal * imag + Cimag;
|
||||||
|
r2 = (real * real) + (imag * imag);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Base the color on the number of iterations
|
||||||
|
|
||||||
|
vec3 color;
|
||||||
|
|
||||||
|
if (r2 < 4.0)
|
||||||
|
color = InnerColor;
|
||||||
|
else
|
||||||
|
color = mix(OuterColor1, OuterColor2, fract(iter * 0.05));
|
||||||
|
|
||||||
|
color *= LightIntensity;
|
||||||
|
|
||||||
|
gl_FragColor = vec4(color, 1.0);
|
||||||
|
}
|
||||||
35
progs/glsl/CH18-mandel.vert.txt
Normal file
35
progs/glsl/CH18-mandel.vert.txt
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
//
|
||||||
|
// Vertex shader for drawing the Mandelbrot set
|
||||||
|
//
|
||||||
|
// Authors: Dave Baldwin, Steve Koren, Randi Rost
|
||||||
|
// based on a shader by Michael Rivero
|
||||||
|
//
|
||||||
|
// Copyright (c) 2002-2005: 3Dlabs, Inc.
|
||||||
|
//
|
||||||
|
// See 3Dlabs-License.txt for license information
|
||||||
|
//
|
||||||
|
|
||||||
|
uniform vec3 LightPosition;
|
||||||
|
uniform float SpecularContribution;
|
||||||
|
uniform float DiffuseContribution;
|
||||||
|
uniform float Shininess;
|
||||||
|
|
||||||
|
varying float LightIntensity;
|
||||||
|
varying vec3 Position;
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
vec3 ecPosition = vec3(gl_ModelViewMatrix * gl_Vertex);
|
||||||
|
vec3 tnorm = normalize(gl_NormalMatrix * gl_Normal);
|
||||||
|
vec3 lightVec = normalize(LightPosition - ecPosition);
|
||||||
|
vec3 reflectVec = reflect(-lightVec, tnorm);
|
||||||
|
vec3 viewVec = normalize(-ecPosition);
|
||||||
|
float spec = max(dot(reflectVec, viewVec), 0.0);
|
||||||
|
spec = pow(spec, Shininess);
|
||||||
|
LightIntensity = DiffuseContribution *
|
||||||
|
max(dot(lightVec, tnorm), 0.0) +
|
||||||
|
SpecularContribution * spec;
|
||||||
|
Position = vec3(gl_MultiTexCoord0 - 0.5) * 5.0;
|
||||||
|
gl_Position = ftransform();
|
||||||
|
|
||||||
|
}
|
||||||
69
progs/glsl/Makefile
Normal file
69
progs/glsl/Makefile
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
# progs/demos/Makefile
|
||||||
|
|
||||||
|
TOP = ../..
|
||||||
|
include $(TOP)/configs/current
|
||||||
|
|
||||||
|
INCDIR = $(TOP)/include
|
||||||
|
|
||||||
|
LIB_DEP = $(TOP)/$(LIB_DIR)/$(GL_LIB_NAME) $(TOP)/$(LIB_DIR)/$(GLU_LIB_NAME) $(TOP)/$(LIB_DIR)/$(GLUT_LIB_NAME)
|
||||||
|
|
||||||
|
PROGS = \
|
||||||
|
brick \
|
||||||
|
bump \
|
||||||
|
deriv \
|
||||||
|
mandelbrot \
|
||||||
|
noise \
|
||||||
|
toyball \
|
||||||
|
texdemo1
|
||||||
|
|
||||||
|
|
||||||
|
##### RULES #####
|
||||||
|
|
||||||
|
.SUFFIXES:
|
||||||
|
.SUFFIXES: .c
|
||||||
|
|
||||||
|
|
||||||
|
# make executable from .c file:
|
||||||
|
.c: $(LIB_DEP)
|
||||||
|
$(CC) -I$(INCDIR) $(CFLAGS) $< $(APP_LIB_DEPS) -o $@
|
||||||
|
|
||||||
|
|
||||||
|
##### TARGETS #####
|
||||||
|
|
||||||
|
default: $(PROGS)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### Extra dependencies
|
||||||
|
|
||||||
|
extfuncs.h: $(TOP)/progs/util/extfuncs.h
|
||||||
|
cp $< .
|
||||||
|
|
||||||
|
readtex.c: $(TOP)/progs/util/readtex.c
|
||||||
|
cp $< .
|
||||||
|
|
||||||
|
readtex.h: $(TOP)/progs/util/readtex.h
|
||||||
|
cp $< .
|
||||||
|
|
||||||
|
readtex.o: readtex.c readtex.h
|
||||||
|
$(CC) -c -I$(INCDIR) $(CFLAGS) readtex.c
|
||||||
|
|
||||||
|
brick.c: extfuncs.h
|
||||||
|
|
||||||
|
bump.c: extfuncs.h
|
||||||
|
|
||||||
|
mandelbrot.c: extfuncs.h
|
||||||
|
|
||||||
|
toyball.c: extfuncs.h
|
||||||
|
|
||||||
|
texdemo1: texdemo1.o readtex.o
|
||||||
|
$(CC) -I$(INCDIR) $(CFLAGS) texdemo1.o readtex.o $(APP_LIB_DEPS) -o $@
|
||||||
|
|
||||||
|
texdemo1.o: texdemo1.c readtex.h extfuncs.h
|
||||||
|
$(CC) -c -I$(INCDIR) $(CFLAGS) texdemo1.c
|
||||||
|
|
||||||
|
|
||||||
|
clean:
|
||||||
|
-rm -f $(PROGS)
|
||||||
|
-rm -f *.o *~
|
||||||
|
-rm -f extfuncs.h
|
||||||
311
progs/glsl/brick.c
Normal file
311
progs/glsl/brick.c
Normal file
@@ -0,0 +1,311 @@
|
|||||||
|
/**
|
||||||
|
* "Brick" shader demo. Uses the example shaders from chapter 6 of
|
||||||
|
* the OpenGL Shading Language "orange" book.
|
||||||
|
* 10 Jan 2007
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <assert.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <math.h>
|
||||||
|
#include <GL/gl.h>
|
||||||
|
#include <GL/glut.h>
|
||||||
|
#include <GL/glext.h>
|
||||||
|
#include "extfuncs.h"
|
||||||
|
|
||||||
|
|
||||||
|
static char *FragProgFile = "CH06-brick.frag.txt";
|
||||||
|
static char *VertProgFile = "CH06-brick.vert.txt";
|
||||||
|
|
||||||
|
/* program/shader objects */
|
||||||
|
static GLuint fragShader;
|
||||||
|
static GLuint vertShader;
|
||||||
|
static GLuint program;
|
||||||
|
|
||||||
|
|
||||||
|
struct uniform_info {
|
||||||
|
const char *name;
|
||||||
|
GLuint size;
|
||||||
|
GLint location;
|
||||||
|
GLfloat value[4];
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct uniform_info Uniforms[] = {
|
||||||
|
/* vert */
|
||||||
|
{ "LightPosition", 3, -1, { 0.1, 0.1, 9.0, 0} },
|
||||||
|
/* frag */
|
||||||
|
{ "BrickColor", 3, -1, { 0.8, 0.2, 0.2, 0 } },
|
||||||
|
{ "MortarColor", 3, -1, { 0.6, 0.6, 0.6, 0 } },
|
||||||
|
{ "BrickSize", 2, -1, { 1.0, 0.3, 0, 0 } },
|
||||||
|
{ "BrickPct", 2, -1, { 0.9, 0.8, 0, 0 } },
|
||||||
|
{ NULL, 0, 0, { 0, 0, 0, 0 } }
|
||||||
|
};
|
||||||
|
|
||||||
|
static GLint win = 0;
|
||||||
|
|
||||||
|
|
||||||
|
static GLfloat xRot = 0.0f, yRot = 0.0f, zRot = 0.0f;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
Redisplay(void)
|
||||||
|
{
|
||||||
|
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||||
|
|
||||||
|
glPushMatrix();
|
||||||
|
glRotatef(xRot, 1.0f, 0.0f, 0.0f);
|
||||||
|
glRotatef(yRot, 0.0f, 1.0f, 0.0f);
|
||||||
|
glRotatef(zRot, 0.0f, 0.0f, 1.0f);
|
||||||
|
|
||||||
|
glBegin(GL_POLYGON);
|
||||||
|
glTexCoord2f(0, 0); glVertex2f(-2, -2);
|
||||||
|
glTexCoord2f(1, 0); glVertex2f( 2, -2);
|
||||||
|
glTexCoord2f(1, 1); glVertex2f( 2, 2);
|
||||||
|
glTexCoord2f(0, 1); glVertex2f(-2, 2);
|
||||||
|
glEnd();
|
||||||
|
|
||||||
|
glPopMatrix();
|
||||||
|
|
||||||
|
glutSwapBuffers();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
Reshape(int width, int height)
|
||||||
|
{
|
||||||
|
glViewport(0, 0, width, height);
|
||||||
|
glMatrixMode(GL_PROJECTION);
|
||||||
|
glLoadIdentity();
|
||||||
|
glFrustum(-1.0, 1.0, -1.0, 1.0, 5.0, 25.0);
|
||||||
|
glMatrixMode(GL_MODELVIEW);
|
||||||
|
glLoadIdentity();
|
||||||
|
glTranslatef(0.0f, 0.0f, -15.0f);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
CleanUp(void)
|
||||||
|
{
|
||||||
|
glDeleteShader_func(fragShader);
|
||||||
|
glDeleteShader_func(vertShader);
|
||||||
|
glDeleteProgram_func(program);
|
||||||
|
glutDestroyWindow(win);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
Key(unsigned char key, int x, int y)
|
||||||
|
{
|
||||||
|
(void) x;
|
||||||
|
(void) y;
|
||||||
|
|
||||||
|
switch(key) {
|
||||||
|
case 'z':
|
||||||
|
zRot -= 1.0;
|
||||||
|
break;
|
||||||
|
case 'Z':
|
||||||
|
zRot += 1.0;
|
||||||
|
break;
|
||||||
|
case 27:
|
||||||
|
CleanUp();
|
||||||
|
exit(0);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
glutPostRedisplay();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
SpecialKey(int key, int x, int y)
|
||||||
|
{
|
||||||
|
const GLfloat step = 3.0f;
|
||||||
|
|
||||||
|
(void) x;
|
||||||
|
(void) y;
|
||||||
|
|
||||||
|
switch(key) {
|
||||||
|
case GLUT_KEY_UP:
|
||||||
|
xRot -= step;
|
||||||
|
break;
|
||||||
|
case GLUT_KEY_DOWN:
|
||||||
|
xRot += step;
|
||||||
|
break;
|
||||||
|
case GLUT_KEY_LEFT:
|
||||||
|
yRot -= step;
|
||||||
|
break;
|
||||||
|
case GLUT_KEY_RIGHT:
|
||||||
|
yRot += step;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
glutPostRedisplay();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
LoadAndCompileShader(GLuint shader, const char *text)
|
||||||
|
{
|
||||||
|
GLint stat;
|
||||||
|
|
||||||
|
glShaderSource_func(shader, 1, (const GLchar **) &text, NULL);
|
||||||
|
|
||||||
|
glCompileShader_func(shader);
|
||||||
|
|
||||||
|
glGetShaderiv_func(shader, GL_COMPILE_STATUS, &stat);
|
||||||
|
if (!stat) {
|
||||||
|
GLchar log[1000];
|
||||||
|
GLsizei len;
|
||||||
|
glGetShaderInfoLog_func(shader, 1000, &len, log);
|
||||||
|
fprintf(stderr, "brick: problem compiling shader: %s\n", log);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
printf("Shader compiled OK\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Read a shader from a file.
|
||||||
|
*/
|
||||||
|
static void
|
||||||
|
ReadShader(GLuint shader, const char *filename)
|
||||||
|
{
|
||||||
|
const int max = 100*1000;
|
||||||
|
int n;
|
||||||
|
char *buffer = (char*) malloc(max);
|
||||||
|
FILE *f = fopen(filename, "r");
|
||||||
|
if (!f) {
|
||||||
|
fprintf(stderr, "brick: Unable to open shader file %s\n", filename);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
n = fread(buffer, 1, max, f);
|
||||||
|
printf("brick: read %d bytes from shader file %s\n", n, filename);
|
||||||
|
if (n > 0) {
|
||||||
|
buffer[n] = 0;
|
||||||
|
LoadAndCompileShader(shader, buffer);
|
||||||
|
}
|
||||||
|
|
||||||
|
fclose(f);
|
||||||
|
free(buffer);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
CheckLink(GLuint prog)
|
||||||
|
{
|
||||||
|
GLint stat;
|
||||||
|
glGetProgramiv_func(prog, GL_LINK_STATUS, &stat);
|
||||||
|
if (!stat) {
|
||||||
|
GLchar log[1000];
|
||||||
|
GLsizei len;
|
||||||
|
glGetProgramInfoLog_func(prog, 1000, &len, log);
|
||||||
|
fprintf(stderr, "Linker error:\n%s\n", log);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
fprintf(stderr, "Link success!\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
Init(void)
|
||||||
|
{
|
||||||
|
const char *version;
|
||||||
|
GLint i;
|
||||||
|
|
||||||
|
version = (const char *) glGetString(GL_VERSION);
|
||||||
|
if (version[0] != '2' || version[1] != '.') {
|
||||||
|
printf("Warning: this program expects OpenGL 2.0\n");
|
||||||
|
/*exit(1);*/
|
||||||
|
}
|
||||||
|
|
||||||
|
GetExtensionFuncs();
|
||||||
|
|
||||||
|
vertShader = glCreateShader_func(GL_VERTEX_SHADER);
|
||||||
|
ReadShader(vertShader, VertProgFile);
|
||||||
|
|
||||||
|
fragShader = glCreateShader_func(GL_FRAGMENT_SHADER);
|
||||||
|
ReadShader(fragShader, FragProgFile);
|
||||||
|
|
||||||
|
program = glCreateProgram_func();
|
||||||
|
glAttachShader_func(program, fragShader);
|
||||||
|
glAttachShader_func(program, vertShader);
|
||||||
|
glLinkProgram_func(program);
|
||||||
|
CheckLink(program);
|
||||||
|
glUseProgram_func(program);
|
||||||
|
|
||||||
|
for (i = 0; Uniforms[i].name; i++) {
|
||||||
|
Uniforms[i].location
|
||||||
|
= glGetUniformLocation_func(program, Uniforms[i].name);
|
||||||
|
printf("Uniform %s location: %d\n", Uniforms[i].name,
|
||||||
|
Uniforms[i].location);
|
||||||
|
switch (Uniforms[i].size) {
|
||||||
|
case 1:
|
||||||
|
glUniform1fv_func(Uniforms[i].location, 1, Uniforms[i].value);
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
glUniform2fv_func(Uniforms[i].location, 1, Uniforms[i].value);
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
glUniform3fv_func(Uniforms[i].location, 1, Uniforms[i].value);
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
glUniform4fv_func(Uniforms[i].location, 1, Uniforms[i].value);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
abort();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
assert(glGetError() == 0);
|
||||||
|
|
||||||
|
glClearColor(0.4f, 0.4f, 0.8f, 0.0f);
|
||||||
|
|
||||||
|
printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER));
|
||||||
|
|
||||||
|
assert(glIsProgram_func(program));
|
||||||
|
assert(glIsShader_func(fragShader));
|
||||||
|
assert(glIsShader_func(vertShader));
|
||||||
|
|
||||||
|
glColor3f(1, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
ParseOptions(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
for (i = 1; i < argc; i++) {
|
||||||
|
if (strcmp(argv[i], "-fs") == 0) {
|
||||||
|
FragProgFile = argv[i+1];
|
||||||
|
}
|
||||||
|
else if (strcmp(argv[i], "-vs") == 0) {
|
||||||
|
VertProgFile = argv[i+1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int
|
||||||
|
main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
glutInit(&argc, argv);
|
||||||
|
glutInitWindowPosition( 0, 0);
|
||||||
|
glutInitWindowSize(400, 400);
|
||||||
|
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
|
||||||
|
win = glutCreateWindow(argv[0]);
|
||||||
|
glutReshapeFunc(Reshape);
|
||||||
|
glutKeyboardFunc(Key);
|
||||||
|
glutSpecialFunc(SpecialKey);
|
||||||
|
glutDisplayFunc(Redisplay);
|
||||||
|
ParseOptions(argc, argv);
|
||||||
|
Init();
|
||||||
|
glutMainLoop();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
411
progs/glsl/bump.c
Normal file
411
progs/glsl/bump.c
Normal file
@@ -0,0 +1,411 @@
|
|||||||
|
/**
|
||||||
|
* Procedural Bump Mapping demo. Uses the example shaders from
|
||||||
|
* chapter 11 of the OpenGL Shading Language "orange" book.
|
||||||
|
* 16 Jan 2007
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <assert.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <math.h>
|
||||||
|
#include <GL/glut.h>
|
||||||
|
#include <GL/glu.h>
|
||||||
|
#include <GL/glext.h>
|
||||||
|
#include "extfuncs.h"
|
||||||
|
|
||||||
|
|
||||||
|
static char *FragProgFile = "CH11-bumpmap.frag.txt";
|
||||||
|
static char *VertProgFile = "CH11-bumpmap.vert.txt";
|
||||||
|
|
||||||
|
/* program/shader objects */
|
||||||
|
static GLuint fragShader;
|
||||||
|
static GLuint vertShader;
|
||||||
|
static GLuint program;
|
||||||
|
|
||||||
|
|
||||||
|
struct uniform_info {
|
||||||
|
const char *name;
|
||||||
|
GLuint size;
|
||||||
|
GLint location;
|
||||||
|
GLfloat value[4];
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct uniform_info Uniforms[] = {
|
||||||
|
{ "LightPosition", 3, -1, { 0.57737, 0.57735, 0.57735, 0.0 } },
|
||||||
|
{ "SurfaceColor", 3, -1, { 0.8, 0.8, 0.2, 0 } },
|
||||||
|
{ "BumpDensity", 1, -1, { 10.0, 0, 0, 0 } },
|
||||||
|
{ "BumpSize", 1, -1, { 0.125, 0, 0, 0 } },
|
||||||
|
{ "SpecularFactor", 1, -1, { 0.5, 0, 0, 0 } },
|
||||||
|
{ NULL, 0, 0, { 0, 0, 0, 0 } }
|
||||||
|
};
|
||||||
|
|
||||||
|
static GLint win = 0;
|
||||||
|
|
||||||
|
static GLfloat xRot = 20.0f, yRot = 0.0f, zRot = 0.0f;
|
||||||
|
|
||||||
|
static GLuint tangentAttrib;
|
||||||
|
|
||||||
|
static GLboolean Anim = GL_FALSE;
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
CheckError(int line)
|
||||||
|
{
|
||||||
|
GLenum err = glGetError();
|
||||||
|
if (err) {
|
||||||
|
printf("GL Error %s (0x%x) at line %d\n",
|
||||||
|
gluErrorString(err), (int) err, line);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Draw a square, specifying normal and tangent vectors.
|
||||||
|
*/
|
||||||
|
static void
|
||||||
|
Square(GLfloat size)
|
||||||
|
{
|
||||||
|
glNormal3f(0, 0, 1);
|
||||||
|
glVertexAttrib3f_func(tangentAttrib, 1, 0, 0);
|
||||||
|
glBegin(GL_POLYGON);
|
||||||
|
glTexCoord2f(0, 0); glVertex2f(-size, -size);
|
||||||
|
glTexCoord2f(1, 0); glVertex2f( size, -size);
|
||||||
|
glTexCoord2f(1, 1); glVertex2f( size, size);
|
||||||
|
glTexCoord2f(0, 1); glVertex2f(-size, size);
|
||||||
|
glEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
Cube(GLfloat size)
|
||||||
|
{
|
||||||
|
/* +X */
|
||||||
|
glPushMatrix();
|
||||||
|
glRotatef(90, 0, 1, 0);
|
||||||
|
glTranslatef(0, 0, size);
|
||||||
|
Square(size);
|
||||||
|
glPopMatrix();
|
||||||
|
|
||||||
|
/* -X */
|
||||||
|
glPushMatrix();
|
||||||
|
glRotatef(-90, 0, 1, 0);
|
||||||
|
glTranslatef(0, 0, size);
|
||||||
|
Square(size);
|
||||||
|
glPopMatrix();
|
||||||
|
|
||||||
|
/* +Y */
|
||||||
|
glPushMatrix();
|
||||||
|
glRotatef(90, 1, 0, 0);
|
||||||
|
glTranslatef(0, 0, size);
|
||||||
|
Square(size);
|
||||||
|
glPopMatrix();
|
||||||
|
|
||||||
|
/* -Y */
|
||||||
|
glPushMatrix();
|
||||||
|
glRotatef(-90, 1, 0, 0);
|
||||||
|
glTranslatef(0, 0, size);
|
||||||
|
Square(size);
|
||||||
|
glPopMatrix();
|
||||||
|
|
||||||
|
|
||||||
|
/* +Z */
|
||||||
|
glPushMatrix();
|
||||||
|
glTranslatef(0, 0, size);
|
||||||
|
Square(size);
|
||||||
|
glPopMatrix();
|
||||||
|
|
||||||
|
/* -Z */
|
||||||
|
glPushMatrix();
|
||||||
|
glRotatef(180, 0, 1, 0);
|
||||||
|
glTranslatef(0, 0, size);
|
||||||
|
Square(size);
|
||||||
|
glPopMatrix();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
Idle(void)
|
||||||
|
{
|
||||||
|
GLint t = glutGet(GLUT_ELAPSED_TIME);
|
||||||
|
yRot = t * 0.05;
|
||||||
|
glutPostRedisplay();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
Redisplay(void)
|
||||||
|
{
|
||||||
|
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||||
|
|
||||||
|
glPushMatrix();
|
||||||
|
glRotatef(xRot, 1.0f, 0.0f, 0.0f);
|
||||||
|
glRotatef(yRot, 0.0f, 1.0f, 0.0f);
|
||||||
|
glRotatef(zRot, 0.0f, 0.0f, 1.0f);
|
||||||
|
|
||||||
|
Cube(1.5);
|
||||||
|
|
||||||
|
glPopMatrix();
|
||||||
|
|
||||||
|
glFinish();
|
||||||
|
glFlush();
|
||||||
|
|
||||||
|
CheckError(__LINE__);
|
||||||
|
|
||||||
|
glutSwapBuffers();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
Reshape(int width, int height)
|
||||||
|
{
|
||||||
|
glViewport(0, 0, width, height);
|
||||||
|
glMatrixMode(GL_PROJECTION);
|
||||||
|
glLoadIdentity();
|
||||||
|
glFrustum(-1.0, 1.0, -1.0, 1.0, 5.0, 25.0);
|
||||||
|
glMatrixMode(GL_MODELVIEW);
|
||||||
|
glLoadIdentity();
|
||||||
|
glTranslatef(0.0f, 0.0f, -15.0f);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
CleanUp(void)
|
||||||
|
{
|
||||||
|
glDeleteShader_func(fragShader);
|
||||||
|
glDeleteShader_func(vertShader);
|
||||||
|
glDeleteProgram_func(program);
|
||||||
|
glutDestroyWindow(win);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
Key(unsigned char key, int x, int y)
|
||||||
|
{
|
||||||
|
const GLfloat step = 2.0;
|
||||||
|
(void) x;
|
||||||
|
(void) y;
|
||||||
|
|
||||||
|
switch(key) {
|
||||||
|
case 'a':
|
||||||
|
Anim = !Anim;
|
||||||
|
glutIdleFunc(Anim ? Idle : NULL);
|
||||||
|
break;
|
||||||
|
case 'z':
|
||||||
|
zRot += step;
|
||||||
|
break;
|
||||||
|
case 'Z':
|
||||||
|
zRot -= step;
|
||||||
|
break;
|
||||||
|
case 27:
|
||||||
|
CleanUp();
|
||||||
|
exit(0);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
glutPostRedisplay();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
SpecialKey(int key, int x, int y)
|
||||||
|
{
|
||||||
|
const GLfloat step = 2.0;
|
||||||
|
|
||||||
|
(void) x;
|
||||||
|
(void) y;
|
||||||
|
|
||||||
|
switch(key) {
|
||||||
|
case GLUT_KEY_UP:
|
||||||
|
xRot += step;
|
||||||
|
break;
|
||||||
|
case GLUT_KEY_DOWN:
|
||||||
|
xRot -= step;
|
||||||
|
break;
|
||||||
|
case GLUT_KEY_LEFT:
|
||||||
|
yRot -= step;
|
||||||
|
break;
|
||||||
|
case GLUT_KEY_RIGHT:
|
||||||
|
yRot += step;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
glutPostRedisplay();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
LoadAndCompileShader(GLuint shader, const char *text)
|
||||||
|
{
|
||||||
|
GLint stat;
|
||||||
|
|
||||||
|
glShaderSource_func(shader, 1, (const GLchar **) &text, NULL);
|
||||||
|
|
||||||
|
glCompileShader_func(shader);
|
||||||
|
|
||||||
|
glGetShaderiv_func(shader, GL_COMPILE_STATUS, &stat);
|
||||||
|
if (!stat) {
|
||||||
|
GLchar log[1000];
|
||||||
|
GLsizei len;
|
||||||
|
glGetShaderInfoLog_func(shader, 1000, &len, log);
|
||||||
|
fprintf(stderr, "brick: problem compiling shader: %s\n", log);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
printf("Shader compiled OK\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Read a shader from a file.
|
||||||
|
*/
|
||||||
|
static void
|
||||||
|
ReadShader(GLuint shader, const char *filename)
|
||||||
|
{
|
||||||
|
const int max = 100*1000;
|
||||||
|
int n;
|
||||||
|
char *buffer = (char*) malloc(max);
|
||||||
|
FILE *f = fopen(filename, "r");
|
||||||
|
if (!f) {
|
||||||
|
fprintf(stderr, "brick: Unable to open shader file %s\n", filename);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
n = fread(buffer, 1, max, f);
|
||||||
|
printf("brick: read %d bytes from shader file %s\n", n, filename);
|
||||||
|
if (n > 0) {
|
||||||
|
buffer[n] = 0;
|
||||||
|
LoadAndCompileShader(shader, buffer);
|
||||||
|
}
|
||||||
|
|
||||||
|
fclose(f);
|
||||||
|
free(buffer);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
CheckLink(GLuint prog)
|
||||||
|
{
|
||||||
|
GLint stat;
|
||||||
|
glGetProgramiv_func(prog, GL_LINK_STATUS, &stat);
|
||||||
|
if (!stat) {
|
||||||
|
GLchar log[1000];
|
||||||
|
GLsizei len;
|
||||||
|
glGetProgramInfoLog_func(prog, 1000, &len, log);
|
||||||
|
fprintf(stderr, "Linker error:\n%s\n", log);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
fprintf(stderr, "Link success!\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
Init(void)
|
||||||
|
{
|
||||||
|
const char *version;
|
||||||
|
GLint i;
|
||||||
|
|
||||||
|
version = (const char *) glGetString(GL_VERSION);
|
||||||
|
if (version[0] != '2' || version[1] != '.') {
|
||||||
|
printf("Warning: this program expects OpenGL 2.0\n");
|
||||||
|
/*exit(1);*/
|
||||||
|
}
|
||||||
|
printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER));
|
||||||
|
|
||||||
|
GetExtensionFuncs();
|
||||||
|
|
||||||
|
vertShader = glCreateShader_func(GL_VERTEX_SHADER);
|
||||||
|
ReadShader(vertShader, VertProgFile);
|
||||||
|
|
||||||
|
fragShader = glCreateShader_func(GL_FRAGMENT_SHADER);
|
||||||
|
ReadShader(fragShader, FragProgFile);
|
||||||
|
|
||||||
|
program = glCreateProgram_func();
|
||||||
|
glAttachShader_func(program, fragShader);
|
||||||
|
glAttachShader_func(program, vertShader);
|
||||||
|
glLinkProgram_func(program);
|
||||||
|
CheckLink(program);
|
||||||
|
glUseProgram_func(program);
|
||||||
|
|
||||||
|
assert(glIsProgram_func(program));
|
||||||
|
assert(glIsShader_func(fragShader));
|
||||||
|
assert(glIsShader_func(vertShader));
|
||||||
|
|
||||||
|
assert(glGetError() == 0);
|
||||||
|
|
||||||
|
CheckError(__LINE__);
|
||||||
|
|
||||||
|
for (i = 0; Uniforms[i].name; i++) {
|
||||||
|
Uniforms[i].location
|
||||||
|
= glGetUniformLocation_func(program, Uniforms[i].name);
|
||||||
|
printf("Uniform %s location: %d\n", Uniforms[i].name,
|
||||||
|
Uniforms[i].location);
|
||||||
|
switch (Uniforms[i].size) {
|
||||||
|
case 1:
|
||||||
|
glUniform1fv_func(Uniforms[i].location, 1, Uniforms[i].value);
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
glUniform2fv_func(Uniforms[i].location, 1, Uniforms[i].value);
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
glUniform3fv_func(Uniforms[i].location, 1, Uniforms[i].value);
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
glUniform4fv_func(Uniforms[i].location, 1, Uniforms[i].value);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
abort();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
CheckError(__LINE__);
|
||||||
|
|
||||||
|
tangentAttrib = glGetAttribLocation_func(program, "Tangent");
|
||||||
|
printf("Tangent Attrib: %d\n", tangentAttrib);
|
||||||
|
|
||||||
|
assert(tangentAttrib >= 0);
|
||||||
|
|
||||||
|
CheckError(__LINE__);
|
||||||
|
|
||||||
|
glClearColor(0.4f, 0.4f, 0.8f, 0.0f);
|
||||||
|
|
||||||
|
glEnable(GL_DEPTH_TEST);
|
||||||
|
|
||||||
|
glColor3f(1, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
ParseOptions(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
for (i = 1; i < argc; i++) {
|
||||||
|
if (strcmp(argv[i], "-fs") == 0) {
|
||||||
|
FragProgFile = argv[i+1];
|
||||||
|
}
|
||||||
|
else if (strcmp(argv[i], "-vs") == 0) {
|
||||||
|
VertProgFile = argv[i+1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int
|
||||||
|
main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
glutInit(&argc, argv);
|
||||||
|
glutInitWindowPosition( 0, 0);
|
||||||
|
glutInitWindowSize(400, 400);
|
||||||
|
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
|
||||||
|
win = glutCreateWindow(argv[0]);
|
||||||
|
glutReshapeFunc(Reshape);
|
||||||
|
glutKeyboardFunc(Key);
|
||||||
|
glutSpecialFunc(SpecialKey);
|
||||||
|
glutDisplayFunc(Redisplay);
|
||||||
|
ParseOptions(argc, argv);
|
||||||
|
Init();
|
||||||
|
glutMainLoop();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
18
progs/glsl/cubemap.frag.txt
Normal file
18
progs/glsl/cubemap.frag.txt
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
// Fragment shader for cube-texture reflection mapping
|
||||||
|
// Brian Paul
|
||||||
|
|
||||||
|
|
||||||
|
uniform samplerCube cubeTex;
|
||||||
|
varying vec3 normal;
|
||||||
|
uniform vec3 lightPos;
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
// simple diffuse, specular lighting:
|
||||||
|
vec3 lp = normalize(lightPos);
|
||||||
|
float dp = dot(lp, normalize(normal));
|
||||||
|
float spec = pow(dp, 5.0);
|
||||||
|
|
||||||
|
// final color:
|
||||||
|
gl_FragColor = dp * textureCube(cubeTex, gl_TexCoord[0].xyz, 0.0) + spec;
|
||||||
|
}
|
||||||
319
progs/glsl/deriv.c
Normal file
319
progs/glsl/deriv.c
Normal file
@@ -0,0 +1,319 @@
|
|||||||
|
/**
|
||||||
|
* Test OpenGL 2.0 dx/dy functions for texcoords.
|
||||||
|
* Brian Paul
|
||||||
|
* 2 May 2007
|
||||||
|
*
|
||||||
|
* NOTE: resize the window to observe how the partial derivatives of
|
||||||
|
* the texcoords change.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include <assert.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <math.h>
|
||||||
|
#include <GL/gl.h>
|
||||||
|
#include <GL/glut.h>
|
||||||
|
#include <GL/glext.h>
|
||||||
|
#include "extfuncs.h"
|
||||||
|
|
||||||
|
|
||||||
|
static char *FragProgFile = NULL;
|
||||||
|
static char *VertProgFile = NULL;
|
||||||
|
static GLuint fragShader;
|
||||||
|
static GLuint vertShader;
|
||||||
|
static GLuint program;
|
||||||
|
static GLuint SphereList, RectList, CurList;
|
||||||
|
static GLint win = 0;
|
||||||
|
static GLboolean anim = GL_TRUE;
|
||||||
|
static GLfloat xRot = 0.0f, yRot = 0.0f;
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
Redisplay(void)
|
||||||
|
{
|
||||||
|
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||||
|
|
||||||
|
glPushMatrix();
|
||||||
|
glRotatef(xRot, 1.0f, 0.0f, 0.0f);
|
||||||
|
glRotatef(yRot, 0.0f, 1.0f, 0.0f);
|
||||||
|
glCallList(CurList);
|
||||||
|
glPopMatrix();
|
||||||
|
|
||||||
|
glutSwapBuffers();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
Idle(void)
|
||||||
|
{
|
||||||
|
yRot = glutGet(GLUT_ELAPSED_TIME) * 0.1;
|
||||||
|
glutPostRedisplay();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
Reshape(int width, int height)
|
||||||
|
{
|
||||||
|
glViewport(0, 0, width, height);
|
||||||
|
glMatrixMode(GL_PROJECTION);
|
||||||
|
glLoadIdentity();
|
||||||
|
glFrustum(-1.0, 1.0, -1.0, 1.0, 5.0, 25.0);
|
||||||
|
glMatrixMode(GL_MODELVIEW);
|
||||||
|
glLoadIdentity();
|
||||||
|
glTranslatef(0.0f, 0.0f, -15.0f);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
CleanUp(void)
|
||||||
|
{
|
||||||
|
glDeleteShader_func(fragShader);
|
||||||
|
glDeleteShader_func(vertShader);
|
||||||
|
glDeleteProgram_func(program);
|
||||||
|
glutDestroyWindow(win);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
Key(unsigned char key, int x, int y)
|
||||||
|
{
|
||||||
|
(void) x;
|
||||||
|
(void) y;
|
||||||
|
|
||||||
|
switch(key) {
|
||||||
|
case ' ':
|
||||||
|
case 'a':
|
||||||
|
anim = !anim;
|
||||||
|
if (anim)
|
||||||
|
glutIdleFunc(Idle);
|
||||||
|
else
|
||||||
|
glutIdleFunc(NULL);
|
||||||
|
break;
|
||||||
|
case 'o':
|
||||||
|
if (CurList == SphereList)
|
||||||
|
CurList = RectList;
|
||||||
|
else
|
||||||
|
CurList = SphereList;
|
||||||
|
break;
|
||||||
|
case 27:
|
||||||
|
CleanUp();
|
||||||
|
exit(0);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
glutPostRedisplay();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
SpecialKey(int key, int x, int y)
|
||||||
|
{
|
||||||
|
const GLfloat step = 3.0f;
|
||||||
|
|
||||||
|
(void) x;
|
||||||
|
(void) y;
|
||||||
|
|
||||||
|
switch(key) {
|
||||||
|
case GLUT_KEY_UP:
|
||||||
|
xRot -= step;
|
||||||
|
break;
|
||||||
|
case GLUT_KEY_DOWN:
|
||||||
|
xRot += step;
|
||||||
|
break;
|
||||||
|
case GLUT_KEY_LEFT:
|
||||||
|
yRot -= step;
|
||||||
|
break;
|
||||||
|
case GLUT_KEY_RIGHT:
|
||||||
|
yRot += step;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
glutPostRedisplay();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
MakeSphere(void)
|
||||||
|
{
|
||||||
|
GLUquadricObj *obj = gluNewQuadric();
|
||||||
|
SphereList = glGenLists(1);
|
||||||
|
gluQuadricTexture(obj, GL_TRUE);
|
||||||
|
glNewList(SphereList, GL_COMPILE);
|
||||||
|
gluSphere(obj, 2.0f, 30, 15);
|
||||||
|
glEndList();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
MakeRect(void)
|
||||||
|
{
|
||||||
|
RectList = glGenLists(1);
|
||||||
|
glNewList(RectList, GL_COMPILE);
|
||||||
|
glBegin(GL_POLYGON);
|
||||||
|
glTexCoord2f(0, 0); glVertex2f(-2, -2);
|
||||||
|
glTexCoord2f(1, 0); glVertex2f( 2, -2);
|
||||||
|
glTexCoord2f(1, 1); glVertex2f( 2, 2);
|
||||||
|
glTexCoord2f(0, 1); glVertex2f(-2, 2);
|
||||||
|
glEnd();
|
||||||
|
glEndList();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
LoadAndCompileShader(GLuint shader, const char *text)
|
||||||
|
{
|
||||||
|
GLint stat;
|
||||||
|
|
||||||
|
glShaderSource_func(shader, 1, (const GLchar **) &text, NULL);
|
||||||
|
|
||||||
|
glCompileShader_func(shader);
|
||||||
|
|
||||||
|
glGetShaderiv_func(shader, GL_COMPILE_STATUS, &stat);
|
||||||
|
if (!stat) {
|
||||||
|
GLchar log[1000];
|
||||||
|
GLsizei len;
|
||||||
|
glGetShaderInfoLog_func(shader, 1000, &len, log);
|
||||||
|
fprintf(stderr, "fslight: problem compiling shader:\n%s\n", log);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Read a shader from a file.
|
||||||
|
*/
|
||||||
|
static void
|
||||||
|
ReadShader(GLuint shader, const char *filename)
|
||||||
|
{
|
||||||
|
const int max = 100*1000;
|
||||||
|
int n;
|
||||||
|
char *buffer = (char*) malloc(max);
|
||||||
|
FILE *f = fopen(filename, "r");
|
||||||
|
if (!f) {
|
||||||
|
fprintf(stderr, "fslight: Unable to open shader file %s\n", filename);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
n = fread(buffer, 1, max, f);
|
||||||
|
printf("fslight: read %d bytes from shader file %s\n", n, filename);
|
||||||
|
if (n > 0) {
|
||||||
|
buffer[n] = 0;
|
||||||
|
LoadAndCompileShader(shader, buffer);
|
||||||
|
}
|
||||||
|
|
||||||
|
fclose(f);
|
||||||
|
free(buffer);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
CheckLink(GLuint prog)
|
||||||
|
{
|
||||||
|
GLint stat;
|
||||||
|
glGetProgramiv_func(prog, GL_LINK_STATUS, &stat);
|
||||||
|
if (!stat) {
|
||||||
|
GLchar log[1000];
|
||||||
|
GLsizei len;
|
||||||
|
glGetProgramInfoLog_func(prog, 1000, &len, log);
|
||||||
|
fprintf(stderr, "Linker error:\n%s\n", log);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
Init(void)
|
||||||
|
{
|
||||||
|
static const char *fragShaderText =
|
||||||
|
"void main() {\n"
|
||||||
|
" gl_FragColor = abs(dFdy(gl_TexCoord[0])) * 50.0;\n"
|
||||||
|
" // gl_FragColor = gl_TexCoord[0];\n"
|
||||||
|
"}\n";
|
||||||
|
static const char *vertShaderText =
|
||||||
|
"void main() {\n"
|
||||||
|
" gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;\n"
|
||||||
|
" gl_TexCoord[0] = gl_MultiTexCoord0;\n"
|
||||||
|
"}\n";
|
||||||
|
const char *version;
|
||||||
|
|
||||||
|
version = (const char *) glGetString(GL_VERSION);
|
||||||
|
if (version[0] != '2' || version[1] != '.') {
|
||||||
|
printf("This program requires OpenGL 2.x, found %s\n", version);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
GetExtensionFuncs();
|
||||||
|
|
||||||
|
fragShader = glCreateShader_func(GL_FRAGMENT_SHADER);
|
||||||
|
if (FragProgFile)
|
||||||
|
ReadShader(fragShader, FragProgFile);
|
||||||
|
else
|
||||||
|
LoadAndCompileShader(fragShader, fragShaderText);
|
||||||
|
|
||||||
|
vertShader = glCreateShader_func(GL_VERTEX_SHADER);
|
||||||
|
if (VertProgFile)
|
||||||
|
ReadShader(vertShader, VertProgFile);
|
||||||
|
else
|
||||||
|
LoadAndCompileShader(vertShader, vertShaderText);
|
||||||
|
|
||||||
|
program = glCreateProgram_func();
|
||||||
|
glAttachShader_func(program, fragShader);
|
||||||
|
glAttachShader_func(program, vertShader);
|
||||||
|
glLinkProgram_func(program);
|
||||||
|
CheckLink(program);
|
||||||
|
glUseProgram_func(program);
|
||||||
|
|
||||||
|
/*assert(glGetError() == 0);*/
|
||||||
|
|
||||||
|
glClearColor(0.3f, 0.3f, 0.3f, 0.0f);
|
||||||
|
glEnable(GL_DEPTH_TEST);
|
||||||
|
|
||||||
|
MakeSphere();
|
||||||
|
MakeRect();
|
||||||
|
|
||||||
|
CurList = SphereList;
|
||||||
|
|
||||||
|
printf("GL_RENDERER = %s\n",(const char *) glGetString(GL_RENDERER));
|
||||||
|
|
||||||
|
assert(glIsProgram_func(program));
|
||||||
|
assert(glIsShader_func(fragShader));
|
||||||
|
assert(glIsShader_func(vertShader));
|
||||||
|
|
||||||
|
glColor3f(1, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
ParseOptions(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
for (i = 1; i < argc; i++) {
|
||||||
|
if (strcmp(argv[i], "-fs") == 0) {
|
||||||
|
FragProgFile = argv[i+1];
|
||||||
|
}
|
||||||
|
else if (strcmp(argv[i], "-vs") == 0) {
|
||||||
|
VertProgFile = argv[i+1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int
|
||||||
|
main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
glutInit(&argc, argv);
|
||||||
|
glutInitWindowPosition( 0, 0);
|
||||||
|
glutInitWindowSize(200, 200);
|
||||||
|
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
|
||||||
|
win = glutCreateWindow(argv[0]);
|
||||||
|
glutReshapeFunc(Reshape);
|
||||||
|
glutKeyboardFunc(Key);
|
||||||
|
glutSpecialFunc(SpecialKey);
|
||||||
|
glutDisplayFunc(Redisplay);
|
||||||
|
if (anim)
|
||||||
|
glutIdleFunc(Idle);
|
||||||
|
ParseOptions(argc, argv);
|
||||||
|
Init();
|
||||||
|
glutMainLoop();
|
||||||
|
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