Compare commits
717 Commits
mesa_4_0_4
...
mesa_5_0
Author | SHA1 | Date | |
---|---|---|---|
|
33c0b3e233 | ||
|
658145bd82 | ||
|
1b260aee24 | ||
|
9c799cdc49 | ||
|
b4497c5843 | ||
|
cdf2da368d | ||
|
36723b6538 | ||
|
e21a79bfdd | ||
|
4d7a1289ed | ||
|
9d88c7d8f4 | ||
|
21709b354b | ||
|
62d821786c | ||
|
101b16cf41 | ||
|
069ad023b5 | ||
|
43cb96cbf6 | ||
|
1e9d43f56c | ||
|
7069a7e3d6 | ||
|
d5cbe1e924 | ||
|
d8c6273cf6 | ||
|
68b1d5c315 | ||
|
f104619b8f | ||
|
04cf6f4958 | ||
|
ad8cd6111e | ||
|
e307931314 | ||
|
2dee6187e4 | ||
|
b6d90e50ea | ||
|
aa80f05484 | ||
|
af76b4280c | ||
|
456bc69ac4 | ||
|
872c9baf00 | ||
|
0b0245c160 | ||
|
2c9e7ae38b | ||
|
7a4a6a3c4c | ||
|
d1efbf0456 | ||
|
6e40539490 | ||
|
7348df5937 | ||
|
c542351085 | ||
|
1cfae1adb2 | ||
|
42ace1c150 | ||
|
cf1c860a34 | ||
|
8bfc9d71aa | ||
|
36b9b0e9d1 | ||
|
f48216ad0f | ||
|
0d88328c7e | ||
|
66ab727101 | ||
|
25af66a67f | ||
|
aca31cf6de | ||
|
c4b40cc404 | ||
|
aa3029bce1 | ||
|
8a738db519 | ||
|
4b01eb6e08 | ||
|
7d4d41a984 | ||
|
8115e29ddc | ||
|
df45a985ed | ||
|
d2e39bb050 | ||
|
969e1ac233 | ||
|
772752449d | ||
|
a85fae9cb0 | ||
|
034e8641bb | ||
|
026b40f416 | ||
|
561e6723cf | ||
|
e89f0792eb | ||
|
e0e6bd7ae1 | ||
|
36481524ba | ||
|
07624e347b | ||
|
9627ed0631 | ||
|
8d43976858 | ||
|
9167d04dea | ||
|
2ad5921cf3 | ||
|
e1e867c3b2 | ||
|
4663bd50f1 | ||
|
68a7ee5cbb | ||
|
36b518a7ca | ||
|
f16a66e97d | ||
|
6ec6b845fd | ||
|
9dc11a3e38 | ||
|
c5934054f3 | ||
|
3160edec33 | ||
|
b2289a944e | ||
|
42649700e2 | ||
|
ebe0b30c3e | ||
|
9bd8f97ea4 | ||
|
46b3f97654 | ||
|
05a4b37707 | ||
|
fd062077c6 | ||
|
153f15497c | ||
|
dec2a4d4b7 | ||
|
d3975341e7 | ||
|
5f1651ddc5 | ||
|
367d308b82 | ||
|
e781aec85d | ||
|
a4f0b6884c | ||
|
92c195211a | ||
|
c2836e9ac6 | ||
|
46458ba213 | ||
|
3c63452e64 | ||
|
d0add7cf1a | ||
|
cca4dedbfd | ||
|
4fbdedc0d5 | ||
|
47fe2fc105 | ||
|
8e6926f7c3 | ||
|
e9283774dc | ||
|
cf46208624 | ||
|
e6962b183d | ||
|
60b003e197 | ||
|
c7a219ec6f | ||
|
ac9a65b1dd | ||
|
ef31f60b12 | ||
|
53d30c56eb | ||
|
2ce0654eba | ||
|
8eaa290216 | ||
|
6ac04f2fc6 | ||
|
6e1ceff48b | ||
|
e716549618 | ||
|
8c2a1f0e4d | ||
|
798d83cf67 | ||
|
6afdc0bec2 | ||
|
3e2fa3fd5c | ||
|
bc36ee25d8 | ||
|
944ea204a8 | ||
|
10d343f407 | ||
|
673077c613 | ||
|
8dfc5b9863 | ||
|
e32b909054 | ||
|
2efb3029f0 | ||
|
10882b17c9 | ||
|
0977fa67b8 | ||
|
f7657d037e | ||
|
d2ec14c4aa | ||
|
d4ffbe4cca | ||
|
dfedb8b78e | ||
|
9d00b68482 | ||
|
7c5282d2a8 | ||
|
f2e21e1026 | ||
|
11fd2d7558 | ||
|
60b6e4fd7e | ||
|
795ae30787 | ||
|
45c569860c | ||
|
cb4253a546 | ||
|
2871f57bcf | ||
|
32d0d5aec4 | ||
|
f58826db57 | ||
|
8ad1076dc2 | ||
|
9e84910749 | ||
|
b110ca34f0 | ||
|
d54d4633fd | ||
|
813c96f458 | ||
|
fbc236b401 | ||
|
23cdcede5d | ||
|
71072be182 | ||
|
0670eb259d | ||
|
433a084130 | ||
|
008a5dd7bb | ||
|
85678e0399 | ||
|
c20579d651 | ||
|
f2c5296dd7 | ||
|
59c5cf35c9 | ||
|
614301faca | ||
|
ece3e63c98 | ||
|
5fd1cc2e0e | ||
|
d3f6b0559f | ||
|
b5974db277 | ||
|
8455203bc7 | ||
|
f72a3da697 | ||
|
cf69eeb1aa | ||
|
73029c5d75 | ||
|
5687740762 | ||
|
21666e3db4 | ||
|
e4656003ca | ||
|
fa647e8336 | ||
|
3265fe5f8e | ||
|
f42d366bb6 | ||
|
4b334b2db6 | ||
|
6640bc3bfa | ||
|
248b3cf727 | ||
|
072edaf126 | ||
|
fc80ad6e62 | ||
|
f782b8189e | ||
|
f8acbed50d | ||
|
a42e7c9172 | ||
|
be99e845bd | ||
|
0adce5d0ed | ||
|
641b2307ec | ||
|
8420ad94f2 | ||
|
d8419c730e | ||
|
54f3aab0c7 | ||
|
a329d68903 | ||
|
89fb06fcc1 | ||
|
1a0bfdc8c1 | ||
|
681b8c9d1b | ||
|
b7808884bb | ||
|
551b65f137 | ||
|
c5b9950660 | ||
|
c62aeed003 | ||
|
f022463aa6 | ||
|
5b18bb6a60 | ||
|
ca6647b307 | ||
|
473e51f2fb | ||
|
cbc1fb0a9a | ||
|
b6e04ee7c8 | ||
|
a9be374f82 | ||
|
e1cb2fb571 | ||
|
d5bbbd41c4 | ||
|
8cd2d0e782 | ||
|
c84e84a734 | ||
|
57aca2bf6e | ||
|
99683bd830 | ||
|
4991d0f9f3 | ||
|
3ce6dc7f1d | ||
|
6c25e3a111 | ||
|
3f25b1a358 | ||
|
57df24a86c | ||
|
28bc6cb479 | ||
|
2f7ef5fae8 | ||
|
e41c57758d | ||
|
7d7ec0ea91 | ||
|
6a1e1623fd | ||
|
fdaa72bc43 | ||
|
5f60a0b50a | ||
|
a2ae6faf1a | ||
|
e14c151f0a | ||
|
530d4611eb | ||
|
3a03211aee | ||
|
e7abc078ab | ||
|
0a7fc572a7 | ||
|
7e35cc53ce | ||
|
528afb5ff4 | ||
|
05ed911aca | ||
|
b9f75444e6 | ||
|
ba88dd0d92 | ||
|
ed00b2ef33 | ||
|
391876e5e6 | ||
|
53880a85b6 | ||
|
41771982c4 | ||
|
fb657ef91d | ||
|
8fefafa220 | ||
|
2188d002df | ||
|
62166908a9 | ||
|
1e0241d3c6 | ||
|
713800a495 | ||
|
2b930072b3 | ||
|
b79e99ad60 | ||
|
3ac01f5e47 | ||
|
34713c1a3c | ||
|
5117a8214d | ||
|
f569dc447a | ||
|
9f7011b88b | ||
|
af3265fabd | ||
|
6bf6cd3418 | ||
|
7ae671446a | ||
|
46a035f76d | ||
|
10730663a1 | ||
|
1972ac661c | ||
|
3efe5beefc | ||
|
352c13f783 | ||
|
ebe671cfad | ||
|
ea53a5b5ab | ||
|
946ad2720a | ||
|
2a1abe3b46 | ||
|
fb8ca95dff | ||
|
a4ac844979 | ||
|
e968686133 | ||
|
77df88727c | ||
|
2353e96c32 | ||
|
971df9b389 | ||
|
c2656d588b | ||
|
f1dee4fe8f | ||
|
54572c1b93 | ||
|
c712425d0d | ||
|
5c711e3671 | ||
|
e237491493 | ||
|
f02a5f6cc5 | ||
|
902d2faadf | ||
|
8eaffa2a1c | ||
|
55c82c596e | ||
|
3b4fbbc129 | ||
|
b4338e5887 | ||
|
89f9cf8add | ||
|
c2fa38d5ae | ||
|
4336c28c84 | ||
|
e201bef913 | ||
|
3c342ebd78 | ||
|
e8ed14d0c2 | ||
|
2525bc7d30 | ||
|
1074d8c361 | ||
|
487047c060 | ||
|
4e9676fb13 | ||
|
f1ad551604 | ||
|
058f319f60 | ||
|
7082420653 | ||
|
07bb9884a5 | ||
|
82d9f3c034 | ||
|
0c3f820bf0 | ||
|
4db3c48a13 | ||
|
581cc2025f | ||
|
8e7bd03760 | ||
|
2abbb660a2 | ||
|
d65e0beb68 | ||
|
455d262c55 | ||
|
837bf6e2df | ||
|
775669f6ef | ||
|
02c03ef6b4 | ||
|
f922986238 | ||
|
10d7f540ff | ||
|
85d816028a | ||
|
d373819b8c | ||
|
83b820aa98 | ||
|
1043a6498a | ||
|
d834e8da88 | ||
|
8816c70a61 | ||
|
d66ca10c53 | ||
|
e514cfea74 | ||
|
4e99da15eb | ||
|
9c0babf24f | ||
|
e769cda1eb | ||
|
bfa168e3fc | ||
|
8afe7de8de | ||
|
8bdd0dc8d0 | ||
|
9d47f3d6b8 | ||
|
4753d60dd0 | ||
|
5e54ddc3a6 | ||
|
f8035450bb | ||
|
4c4663747c | ||
|
d09a1d8b29 | ||
|
2f35d5e9d5 | ||
|
9a33a11d71 | ||
|
1013e46504 | ||
|
35883ceb93 | ||
|
4fe2f3f1a0 | ||
|
b58c5ad7b0 | ||
|
dd41748f63 | ||
|
3f058cd2c5 | ||
|
9800adaed2 | ||
|
112f7cdeab | ||
|
f21a4872e8 | ||
|
e0107e87a7 | ||
|
241afd837c | ||
|
af2a1c1d67 | ||
|
28b03c6acb | ||
|
f5a0781975 | ||
|
91d6f12b4a | ||
|
60f1a3c288 | ||
|
1d155c1dd8 | ||
|
4290dbac4d | ||
|
a078d75a27 | ||
|
1c40d50014 | ||
|
f105bc4095 | ||
|
6c408b4667 | ||
|
23d8ef3937 | ||
|
22538b23b4 | ||
|
ee29d3b42a | ||
|
02e0de263e | ||
|
002483e009 | ||
|
9228a9362c | ||
|
79cfdebbe0 | ||
|
30ec9dbaed | ||
|
a5cdf99951 | ||
|
056b35874b | ||
|
f595212336 | ||
|
c450d57991 | ||
|
18385b0f4e | ||
|
57c35b162e | ||
|
df7bd4bf11 | ||
|
fb68919362 | ||
|
dc2270b461 | ||
|
e694a8765a | ||
|
62c36a2ff3 | ||
|
dec0131a29 | ||
|
fdd631a941 | ||
|
62954c8c30 | ||
|
bcc5d46b08 | ||
|
f55b303fc2 | ||
|
61bac6014a | ||
|
28c61d5b49 | ||
|
12bab63f09 | ||
|
f3781eaafa | ||
|
b7752724d9 | ||
|
1113e3266f | ||
|
04df3bbe8e | ||
|
3fe2bb8933 | ||
|
4fa66fa85c | ||
|
bf80e1ed62 | ||
|
05be7ae125 | ||
|
0c527ab054 | ||
|
533e88824a | ||
|
68c48df2bf | ||
|
26e2fb062a | ||
|
4c5f8a8207 | ||
|
7322cccfb9 | ||
|
6c5b7029b3 | ||
|
a670c1280b | ||
|
db07de057f | ||
|
36c3df78f4 | ||
|
55d9ee83b4 | ||
|
9ff3e9d992 | ||
|
ef65c60d88 | ||
|
4c1f79264e | ||
|
620735af45 | ||
|
d60bb2fbc8 | ||
|
cffb351a62 | ||
|
8c598cfd82 | ||
|
cb445412fc | ||
|
d23de4d334 | ||
|
b7f5e92f17 | ||
|
9add9a21d8 | ||
|
0cd8a1ea13 | ||
|
306d3fcdba | ||
|
e503d8b56f | ||
|
0a79baf1bf | ||
|
851de7ded1 | ||
|
c030a18ea6 | ||
|
17642eddf4 | ||
|
ebe4e3237c | ||
|
14209028b6 | ||
|
4d030ba651 | ||
|
db0944b08a | ||
|
42f916de5c | ||
|
01dc182ee8 | ||
|
486734a5d5 | ||
|
09784e1e15 | ||
|
d5c94ef40d | ||
|
543381510d | ||
|
1d84421b7e | ||
|
6b50a004ff | ||
|
02ee456248 | ||
|
db30cc8d00 | ||
|
99aab34199 | ||
|
b63e8556fa | ||
|
31fe0ade35 | ||
|
9de4782e49 | ||
|
f9e75c31e8 | ||
|
17b7cc4cae | ||
|
01bcd83def | ||
|
1537b63fce | ||
|
86a7cc6f2c | ||
|
6c921af034 | ||
|
a97d216adb | ||
|
103bc0f75c | ||
|
23d319fc7d | ||
|
a68b8dfd76 | ||
|
f66de79365 | ||
|
934bee04f2 | ||
|
7c8b5399f0 | ||
|
c028617784 | ||
|
e6f2b4174b | ||
|
2161b8cf03 | ||
|
3c70f6f2ac | ||
|
636b2801d9 | ||
|
25b85bf02a | ||
|
4544bd22fd | ||
|
252250ae64 | ||
|
e69bfe74d7 | ||
|
6211144e05 | ||
|
7de02fef5b | ||
|
819505ad2a | ||
|
8334c89e70 | ||
|
e3af5354a6 | ||
|
491e573c38 | ||
|
80ac8d171c | ||
|
aeb4434563 | ||
|
d0570646bd | ||
|
f7c830e35c | ||
|
ac5bbe4c4a | ||
|
31f12f504e | ||
|
bc6b60c4ff | ||
|
93c132a058 | ||
|
18a285a5e2 | ||
|
8d687e7e58 | ||
|
1d822ea8cf | ||
|
a72edf01ba | ||
|
8843d52af1 | ||
|
612fc01293 | ||
|
d488af5b34 | ||
|
9a888bdc2a | ||
|
f9708e45ac | ||
|
1d01794e6e | ||
|
5033f21d05 | ||
|
1c91fe2e3f | ||
|
a3e44f4531 | ||
|
b43a828ad4 | ||
|
7fd50afbbf | ||
|
2b9ba3f84f | ||
|
5104b4d9df | ||
|
0b2fa873c6 | ||
|
c5a76cbed4 | ||
|
09a0cb464d | ||
|
aa24e9171a | ||
|
e0193a9425 | ||
|
c7a3356746 | ||
|
d0271502f8 | ||
|
ad7306b23c | ||
|
9ff74a0f15 | ||
|
711e27fda2 | ||
|
983bc3e018 | ||
|
4f252bd980 | ||
|
c14a5a6c62 | ||
|
8baae48fb7 | ||
|
f204c9d2bb | ||
|
9ac7182ec4 | ||
|
026c036be0 | ||
|
78a21f96b5 | ||
|
2e47ff7b9c | ||
|
9a3061715c | ||
|
4182cf60d9 | ||
|
c9ceef41fe | ||
|
a8f2efd147 | ||
|
70b8d304bb | ||
|
4ba35633d6 | ||
|
c4c4213b69 | ||
|
ce57201825 | ||
|
09700ee358 | ||
|
a048da0767 | ||
|
3ff07d2062 | ||
|
ca7596e834 | ||
|
95e2c72fd5 | ||
|
d4e02d6026 | ||
|
cbd9a0254e | ||
|
0cb28418d0 | ||
|
12a1024d9d | ||
|
38d042a4ad | ||
|
69d4ae7bb3 | ||
|
db41d2ea8c | ||
|
cc27365d77 | ||
|
bcb148de92 | ||
|
2784dadafc | ||
|
c4afba36c3 | ||
|
79c2f53491 | ||
|
ac8c241e64 | ||
|
b37a084357 | ||
|
733a4b602b | ||
|
ceb39f4f8d | ||
|
e79de014c5 | ||
|
e0bafefd7a | ||
|
1cefc83a88 | ||
|
eae38ca1b2 | ||
|
6e1666437e | ||
|
7956292a76 | ||
|
f1e2369878 | ||
|
2a182a9897 | ||
|
6a731f343e | ||
|
ad7e727024 | ||
|
6ee7a02852 | ||
|
8bd13de4cc | ||
|
4c8fadc6d9 | ||
|
9b681dcc17 | ||
|
2bc668d092 | ||
|
ac9aa22174 | ||
|
2ef866d1fc | ||
|
674012f083 | ||
|
9958ace401 | ||
|
658702df97 | ||
|
028fe46fc5 | ||
|
72574b959c | ||
|
78940758e9 | ||
|
b311950dde | ||
|
4197c0ea9b | ||
|
43df32e438 | ||
|
40fac75370 | ||
|
3d587f6432 | ||
|
164ce12202 | ||
|
83356781e1 | ||
|
858b694b64 | ||
|
25c5f1b448 | ||
|
2ff30b21bc | ||
|
e19f5d7cb7 | ||
|
47507f4464 | ||
|
f2e5c19a2f | ||
|
807aea838b | ||
|
24f7c0c944 | ||
|
03c0c2e8aa | ||
|
fe9f62ff18 | ||
|
7fc487d38b | ||
|
1bb17ed0f2 | ||
|
21cb88911a | ||
|
3e276d43a2 | ||
|
166718f749 | ||
|
c6755aa6d5 | ||
|
8e6d305c89 | ||
|
2edd1807f8 | ||
|
9927f1978d | ||
|
2e99cbd953 | ||
|
26c878ac16 | ||
|
0c5c1392ab | ||
|
a701a1445c | ||
|
35e5e89f56 | ||
|
8927fbe9c5 | ||
|
fd1727bd10 | ||
|
d599190575 | ||
|
97291208cb | ||
|
571a1ac6ee | ||
|
363049160d | ||
|
e2053d1690 | ||
|
bc42c19f22 | ||
|
bd1a9dacf6 | ||
|
ca209ae1f9 | ||
|
cab83b8aa9 | ||
|
f48bfd66da | ||
|
714cdd88a4 | ||
|
5e1a4fdc3c | ||
|
8d0499b75e | ||
|
735d92029c | ||
|
78c2aa0b51 | ||
|
efe2baadb8 | ||
|
a0f923d286 | ||
|
1fb0a43c16 | ||
|
1a6f488908 | ||
|
2391f4cec6 | ||
|
fc00cbe8d1 | ||
|
1643203a93 | ||
|
a359d3488a | ||
|
3f9be68dc4 | ||
|
fa6b2fba7a | ||
|
f47efb5ab3 | ||
|
c6a14906c6 | ||
|
530da27edb | ||
|
30f51ae067 | ||
|
645ced2955 | ||
|
aea09490f5 | ||
|
3ade8af7ff | ||
|
10f30eb438 | ||
|
57d6e1aebf | ||
|
c843a1a039 | ||
|
54772892bd | ||
|
c11120270c | ||
|
9cb3947c56 | ||
|
e3a0f39824 | ||
|
56790ced1a | ||
|
b15a3b4d13 | ||
|
d2237d48ec | ||
|
c3d90f3211 | ||
|
36c77a81ad | ||
|
9745d47991 | ||
|
5cbd179121 | ||
|
92512085d5 | ||
|
16e2d94cc7 | ||
|
c589af2fe2 | ||
|
7c8db694cc | ||
|
1668d4bab8 | ||
|
eaf0eac7d3 | ||
|
b70f5c21e7 | ||
|
15d4a2327d | ||
|
a19d7c35cd | ||
|
1d1635d27b | ||
|
b638c34381 | ||
|
797ea81d63 | ||
|
86b842790b | ||
|
680522f74c | ||
|
faaa88fc48 | ||
|
d313068dc8 | ||
|
d9331ae71e | ||
|
59235bd5da | ||
|
c3209d45ad | ||
|
5246b6c9d1 | ||
|
59e5b90452 | ||
|
09fc9324f6 | ||
|
74df2ef732 | ||
|
ef4f5b391e | ||
|
aecfb51c30 | ||
|
014ec1ac5e | ||
|
471a774f43 | ||
|
c34cb25bdd | ||
|
aa46094ca6 | ||
|
4ea18fc2dc | ||
|
a8b25ada45 | ||
|
3a825a85f1 | ||
|
bfd2ae6e99 | ||
|
e6373ba6d7 | ||
|
3ac348c17a | ||
|
fcc0abe6cf | ||
|
bce1689d5b | ||
|
7b2a146d3a | ||
|
209e1348bd | ||
|
8ff271548a | ||
|
9c8cbe6950 | ||
|
4e6c835210 | ||
|
d8af040f5e | ||
|
e4eba73060 | ||
|
253270dfcc | ||
|
2f3d620398 | ||
|
70c05e6781 | ||
|
20517ce040 | ||
|
1b2976f79b | ||
|
f660ec6ff8 | ||
|
358ed73e1d | ||
|
3183af39d0 | ||
|
cbf9731119 | ||
|
d4ece7b2f4 | ||
|
d3be982783 | ||
|
3f766b7a89 | ||
|
71340e861e | ||
|
71515b9175 | ||
|
6d9b899342 | ||
|
50c31d6861 | ||
|
5b7dab2e4c | ||
|
17fe22d3bf | ||
|
a6fdefa322 | ||
|
94dd6b8927 | ||
|
a6a997c234 | ||
|
b5fd886ee1 | ||
|
4fe0f9d2a9 | ||
|
6c0d72f9c0 | ||
|
199b931c07 | ||
|
0ee6a5604d | ||
|
1b37d6c305 | ||
|
cd060fc3b4 | ||
|
c32fe22168 | ||
|
853a4abab2 | ||
|
fe9b705a2c | ||
|
4b7ccad682 | ||
|
87c964d388 | ||
|
85e7d7c1d8 | ||
|
dc31d67c0e | ||
|
acf0c0a1e1 | ||
|
52ef4cc59a | ||
|
9baad8e1ff | ||
|
b10f995edf | ||
|
a4b42200e9 |
111
Make-config
111
Make-config
@@ -1,8 +1,8 @@
|
||||
# $Id: Make-config,v 1.50.2.11 2002/09/03 17:50:19 brianp Exp $
|
||||
# $Id: Make-config,v 1.67 2002/11/12 02:49:14 brianp Exp $
|
||||
|
||||
MESA_MAJOR=4
|
||||
MESA_MAJOR=5
|
||||
MESA_MINOR=0
|
||||
MESA_TINY=4
|
||||
MESA_TINY=0
|
||||
VERSION=$(MESA_MAJOR).$(MESA_MINOR)
|
||||
|
||||
# Mesa 3-D graphics library
|
||||
@@ -155,7 +155,7 @@ cygnus:
|
||||
"CFLAGS = -I. -DWIN32 -D__WIN32__ -D_WINDOWS \
|
||||
-O2 -funroll-loops \
|
||||
-fexpensive-optimizations -fomit-frame-pointer -ffast-math \
|
||||
-malign-loops=2 -malign-jumps=2 -malign-functions=2" \
|
||||
-malign-loops=2 -malign-functions=2" \
|
||||
"CCFLAGS = $(CFLAGS)" \
|
||||
"MAKELIB = ../bin/mklib.ar-ruv" \
|
||||
"WLIBS = ../lib/wing32.a -lkernel32 -luser32 -lgdi32"
|
||||
@@ -174,7 +174,7 @@ cygnus-linux:
|
||||
"CFLAGS = -I. -DWIN32 -D__WIN32__ -D_WINDOWS \
|
||||
-O2 -funroll-loops \
|
||||
-fexpensive-optimizations -fomit-frame-pointer -ffast-math \
|
||||
-malign-loops=2 -malign-jumps=2 -malign-functions=2" \
|
||||
-malign-loops=2 -malign-functions=2" \
|
||||
"MAKELIB = ../bin/mklib.cygnus-linux" \
|
||||
"WLIBS = ../lib/wing32.a -lkernel32 -luser32 -lgdi32"
|
||||
|
||||
@@ -308,6 +308,7 @@ hpux9-gcc-sl:
|
||||
"MAKELIB = ../bin/mklib.hpux" \
|
||||
"APP_LIB_DEPS = -L/usr/lib/X11R5 -lXext -lXmu -lXi -lX11 -lm"
|
||||
|
||||
# The hpux10 configs should work for hpux11 as well.
|
||||
hpux10:
|
||||
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
|
||||
"GL_LIB = libGL.a" \
|
||||
@@ -316,19 +317,23 @@ hpux10:
|
||||
"GLW_LIB = libGLw.a" \
|
||||
"OSMESA_LIB = libOSMesa.a" \
|
||||
"CC = cc" \
|
||||
"CPLUSPLUS = aCC" \
|
||||
"CFLAGS = +O3 +DAportable -Aa -D_HPUX_SOURCE -I/usr/include/X11R6 -I/usr/contrib/X11R6/include -DUSE_XSHM" \
|
||||
"CCFLAGS = +O3 +DAportable -Aa -D_HPUX_SOURCE -I/usr/include/X11R6 -I/usr/contrib/X11R6/include -DUSE_XSHM" \
|
||||
"MAKELIB = ../bin/mklib.ar-ruv" \
|
||||
"APP_LIB_DEPS = -L/usr/lib/X11R6 -L/usr/contrib/X11R6/lib -lXext -lXmu -lXi -lX11 -lm"
|
||||
"APP_LIB_DEPS = -L/usr/lib/X11R6 -L/usr/contrib/X11R6/lib -lXext -lXmu -lXi -lX11 -lm -L/usr/lib -lCsup"
|
||||
|
||||
hpux10-sl:
|
||||
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
|
||||
"GL_LIB = libGL" \
|
||||
"GLU_LIB = libGLU" \
|
||||
"GLUT_LIB = libglut" \
|
||||
"GLW_LIB = libGLw.a" \
|
||||
"OSMESA_LIB = libOSMesa.a" \
|
||||
"GLW_LIB = libGLw" \
|
||||
"OSMESA_LIB = libOSMesa" \
|
||||
"CC = cc" \
|
||||
"CFLAGS = +z -Ae +O2 +Onolimit +Oaggressive -D_HPUX_SOURCE -I/usr/include/X11R6 -I/usr/contrib/X11R6/include -DUSE_XSHM" \
|
||||
"CPLUSPLUS = aCC" \
|
||||
"CFLAGS = +O3 +DAportable +z -Aa -D_HPUX_SOURCE -I/usr/include/X11R6 -I/usr/contrib/X11R6/include -DUSE_XSHM" \
|
||||
"CCFLAGS = +O3 +DAportable +Z -Aa -D_HPUX_SOURCE -I/usr/include/X11R6 -I/usr/contrib/X11R6/include -DUSE_XSHM" \
|
||||
"MAKELIB = ../bin/mklib.hpux" \
|
||||
"APP_LIB_DEPS = -L/usr/lib/X11R6 -L/usr/contrib/X11R6/lib -lXext -lXmu -lXi -lX11 -lm"
|
||||
|
||||
@@ -597,14 +602,14 @@ linux-x86:
|
||||
"APP_LIB_DEPS = -lm" \
|
||||
"ASM_SOURCES = X86/common_x86_asm.S X86/glapi_x86.S \
|
||||
X86/x86_xform2.S X86/x86_xform3.S X86/x86_xform4.S \
|
||||
X86/x86_cliptest.S X86/x86_vertex.S \
|
||||
X86/x86_cliptest.S \
|
||||
X86/mmx_blend.S \
|
||||
X86/3dnow_xform1.S X86/3dnow_xform2.S \
|
||||
X86/3dnow_xform3.S X86/3dnow_xform4.S \
|
||||
X86/3dnow_normal.S X86/3dnow_vertex.S \
|
||||
X86/3dnow_normal.S \
|
||||
X86/sse_xform1.S X86/sse_xform2.S \
|
||||
X86/sse_xform3.S X86/sse_xform4.S \
|
||||
X86/sse_normal.S X86/sse_vertex.S"
|
||||
X86/sse_normal.S"
|
||||
|
||||
linux-icc:
|
||||
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
|
||||
@@ -615,7 +620,7 @@ linux-icc:
|
||||
"OSMESA_LIB = libOSMesa.so" \
|
||||
"CC = icc" \
|
||||
"CPLUSPLUS = g++" \
|
||||
"CFLAGS = -O3 -tpp6 -KPIC -D_GCC_LIMITS_H_ -D__GNUC__ -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -DPTHREADS -I/usr/X11R6/include" \
|
||||
"CFLAGS = -O3 -tpp6 -axK -KPIC -D_GCC_LIMITS_H_ -D__GNUC__ -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -DPTHREADS -I/usr/X11R6/include" \
|
||||
"MAKELIB = ../bin/mklib.linux" \
|
||||
"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lm -lpthread" \
|
||||
"GLU_LIB_DEPS = -L../lib -lGL -lm" \
|
||||
@@ -623,14 +628,14 @@ linux-icc:
|
||||
"APP_LIB_DEPS = -lm" \
|
||||
"ASM_SOURCES = X86/common_x86_asm.S X86/glapi_x86.S \
|
||||
X86/x86_xform2.S X86/x86_xform3.S X86/x86_xform4.S \
|
||||
X86/x86_cliptest.S X86/x86_vertex.S \
|
||||
X86/x86_cliptest.S \
|
||||
X86/mmx_blend.S \
|
||||
X86/3dnow_xform1.S X86/3dnow_xform2.S \
|
||||
X86/3dnow_xform3.S X86/3dnow_xform4.S \
|
||||
X86/3dnow_normal.S X86/3dnow_vertex.S \
|
||||
X86/3dnow_normal.S \
|
||||
X86/sse_xform1.S X86/sse_xform2.S \
|
||||
X86/sse_xform3.S X86/sse_xform4.S \
|
||||
X86/sse_normal.S X86/sse_vertex.S"
|
||||
X86/sse_normal.S"
|
||||
|
||||
linux-x86-static:
|
||||
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
|
||||
@@ -641,7 +646,7 @@ linux-x86-static:
|
||||
"OSMESA_LIB = libOSMesa.a" \
|
||||
"CC = gcc" \
|
||||
"CPLUSPLUS = g++" \
|
||||
"CFLAGS = -Wall -O3 -ansi -pedantic -fPIC -ffast-math -funroll-loops -fomit-frame-pointer -malign-loops=2 -malign-jumps=2 -malign-functions=2 -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -DPTHREADS -I/usr/X11R6/include" \
|
||||
"CFLAGS = -Wall -O3 -ansi -pedantic -fPIC -ffast-math -funroll-loops -fomit-frame-pointer -malign-loops=2 -malign-functions=2 -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -DPTHREADS -I/usr/X11R6/include" \
|
||||
"MAKELIB = ../bin/mklib.ar-ruv" \
|
||||
"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lm -lpthread" \
|
||||
"GLU_LIB_DEPS = -L../lib -lGL -lm" \
|
||||
@@ -649,14 +654,14 @@ linux-x86-static:
|
||||
"APP_LIB_DEPS = -lm" \
|
||||
"ASM_SOURCES = X86/common_x86_asm.S X86/glapi_x86.S \
|
||||
X86/x86_xform2.S X86/x86_xform3.S X86/x86_xform4.S \
|
||||
X86/x86_cliptest.S X86/x86_vertex.S \
|
||||
X86/x86_cliptest.S \
|
||||
X86/mmx_blend.S \
|
||||
X86/3dnow_xform1.S X86/3dnow_xform2.S \
|
||||
X86/3dnow_xform3.S X86/3dnow_xform4.S \
|
||||
X86/3dnow_normal.S X86/3dnow_vertex.S \
|
||||
X86/3dnow_normal.S \
|
||||
X86/sse_xform1.S X86/sse_xform2.S \
|
||||
X86/sse_xform3.S X86/sse_xform4.S \
|
||||
X86/sse_normal.S X86/sse_vertex.S"
|
||||
X86/sse_normal.S"
|
||||
|
||||
# Contributed by Uwe_Maurer@t-online.de
|
||||
linux-ggi:
|
||||
@@ -689,7 +694,7 @@ linux-386-ggi:
|
||||
"APP_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lggi -lm" \
|
||||
"ASM_SOURCES = X86/common_x86_asm.S X86/glapi_x86.S \
|
||||
X86/x86_xform2.S X86/x86_xform3.S X86/x86_xform4.S \
|
||||
X86/x86_cliptest.S X86/x86_vertex.S"
|
||||
X86/x86_cliptest.S"
|
||||
|
||||
linux-glide:
|
||||
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
|
||||
@@ -723,10 +728,10 @@ linux-386-glide:
|
||||
"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -L/usr/local/glide/lib -lglide2x -lm -lpthread" \
|
||||
"GLU_LIB_DEPS = -L../lib -lGL -lm" \
|
||||
"GLUT_LIB_DEPS = -L../lib -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm" \
|
||||
"APP_LIB_DEPS = -L/usr/local/glide/lib -lglide2x -lglut -lGLU -lGL -lm" \
|
||||
"APP_LIB_DEPS = -L/usr/local/glide/lib -lglide2x -lglut -lGLU -lGL" \
|
||||
"ASM_SOURCES = X86/common_x86_asm.S X86/glapi_x86.S \
|
||||
X86/x86_xform2.S X86/x86_xform3.S X86/x86_xform4.S \
|
||||
X86/x86_cliptest.S X86/x86_vertex.S"
|
||||
X86/x86_cliptest.S"
|
||||
|
||||
linux-386-opt-glide:
|
||||
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
|
||||
@@ -737,16 +742,16 @@ linux-386-opt-glide:
|
||||
"OSMESA_LIB = libOSMesa.so" \
|
||||
"CC = gcc" \
|
||||
"CPLUSPLUS = g++" \
|
||||
"CFLAGS = -O3 -m486 -fomit-frame-pointer -pipe -ansi -pedantic -ffast-math -fexpensive-optimizations -malign-loops=2 -malign-jumps=2 -malign-functions=2 -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DFX -DUSE_X86_ASM -DPTHREADS -I/usr/X11R6/include -I/usr/include/glide -I/usr/local/glide/include" \
|
||||
"CFLAGS = -O3 -m486 -fomit-frame-pointer -pipe -ansi -pedantic -ffast-math -fexpensive-optimizations -malign-loops=2 -malign-functions=2 -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DFX -DUSE_X86_ASM -DPTHREADS -I/usr/X11R6/include -I/usr/include/glide -I/usr/local/glide/include" \
|
||||
"CCFLAGS = $(CFLAGS)" \
|
||||
"MAKELIB = ../bin/mklib.linux" \
|
||||
"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -L/usr/local/glide/lib -lglide2x -lm -lpthread" \
|
||||
"GLU_LIB_DEPS = -L../lib -lGL -lm" \
|
||||
"GLUT_LIB_DEPS = -L../lib -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm" \
|
||||
"APP_LIB_DEPS = -L/usr/local/glide/lib -lglide2x -lglut -lGLU -lGL -lm" \
|
||||
"APP_LIB_DEPS = -lm" \
|
||||
"ASM_SOURCES = X86/common_x86_asm.S X86/glapi_x86.S \
|
||||
X86/x86_xform2.S X86/x86_xform3.S X86/x86_xform4.S \
|
||||
X86/x86_cliptest.S X86/x86_vertex.S"
|
||||
X86/x86_cliptest.S"
|
||||
|
||||
linux-x86-glide:
|
||||
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
|
||||
@@ -757,23 +762,23 @@ linux-x86-glide:
|
||||
"OSMESA_LIB = libOSMesa.so" \
|
||||
"CC = gcc" \
|
||||
"CPLUSPLUS = g++" \
|
||||
"CFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -funroll-loops -fomit-frame-pointer -malign-loops=2 -malign-jumps=2 -malign-functions=2 -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -DUSE_XSHM -DFX -DPTHREADS -I/usr/X11R6/include -I/usr/include/glide -I/usr/local/glide/include -I/usr/src/mesa-glx/src/FX/X86" \
|
||||
"CFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -funroll-loops -fomit-frame-pointer -malign-loops=2 -malign-functions=2 -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -DUSE_XSHM -DFX -DPTHREADS -I/usr/X11R6/include -I/usr/include/glide -I/usr/local/glide/include -I/usr/src/mesa-glx/src/FX/X86" \
|
||||
"MAKELIB = ../bin/mklib.linux" \
|
||||
"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -L/usr/local/glide/lib -lglide2x -lm -lpthread" \
|
||||
"GLU_LIB_DEPS = -L../lib -lGL -lm" \
|
||||
"GLUT_LIB_DEPS = -L../lib -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm" \
|
||||
"APP_LIB_DEPS = -L/usr/local/glide/lib -lglide2x -lglut -lGLU -lGL -lm" \
|
||||
"APP_LIB_DEPS = -lm" \
|
||||
"ASM_SOURCES = X86/common_x86_asm.S X86/glapi_x86.S \
|
||||
X86/x86_xform2.S X86/x86_xform3.S X86/x86_xform4.S \
|
||||
X86/x86_cliptest.S X86/x86_vertex.S \
|
||||
X86/x86_cliptest.S \
|
||||
X86/mmx_blend.S \
|
||||
X86/3dnow_xform1.S X86/3dnow_xform2.S \
|
||||
X86/3dnow_xform3.S X86/3dnow_xform4.S \
|
||||
X86/3dnow_normal.S X86/3dnow_vertex.S \
|
||||
X86/3dnow_normal.S \
|
||||
FX/X86/fx_3dnow_fastpath.S \
|
||||
X86/sse_xform1.S X86/sse_xform2.S \
|
||||
X86/sse_xform3.S X86/sse_xform4.S \
|
||||
X86/sse_normal.S X86/sse_vertex.S"
|
||||
X86/sse_normal.S "
|
||||
|
||||
linux-alpha:
|
||||
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
|
||||
@@ -914,7 +919,7 @@ linux-osmesa32:
|
||||
# May want to add these CFLAGS for better performance under LynxOS and GCC:
|
||||
# -fPIC -O2 -ansi -pedantic -mieee-fp -DUSE_XSHM -funroll-loops
|
||||
# -fexpensive-optimizations -fomit-frame-pointer -ffast-math
|
||||
# and -malign-loops=2 -malign-jumps=2 -malign-functions=2 for Pentium
|
||||
# and -malign-loops=2 -malign-functions=2 for Pentium
|
||||
lynxos:
|
||||
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
|
||||
"GL_LIB = libGL.a" \
|
||||
@@ -1043,7 +1048,7 @@ os2-x11:
|
||||
"APP_LIB_DEPS = -Zmt -Zcrtdll -Zexe -L$(X11ROOT)/XFree86/lib -lXt -lX11 -lm" \
|
||||
"ASM_SOURCES = X86/common_x86_asm.S X86/glapi_x86.S \
|
||||
X86/x86_xform2.S X86/x86_xform3.S X86/x86_xform4.S \
|
||||
X86/x86_cliptest.S X86/x86_vertex.S"
|
||||
X86/x86_cliptest.S"
|
||||
|
||||
osf1:
|
||||
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
|
||||
@@ -1517,7 +1522,7 @@ linux-debug:
|
||||
"OSMESA_LIB = libOSMesa.so" \
|
||||
"CC = gcc" \
|
||||
"CPLUSPLUS = g++" \
|
||||
"CFLAGS = -g -ansi -pedantic -Wall -Wmissing-prototypes -Wundef -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DUSE_XSHM -DPTHREADS -DDEBUG -DMESA_DEBUG -DSVGA_foo -I/usr/include/glide -DFX_foo -DMESA_TRACE" \
|
||||
"CFLAGS = -g -ansi -pedantic -Wall -Wmissing-prototypes -Wundef -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DUSE_XSHM -DPTHREADS -DDEBUG -DMESA_DEBUG" \
|
||||
"CCFLAGS = $(CFLAGS)" \
|
||||
"MAKELIB = ../bin/mklib.linux" \
|
||||
"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread" \
|
||||
@@ -1525,24 +1530,6 @@ linux-debug:
|
||||
"GLUT_LIB_DEPS = -L../lib -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm" \
|
||||
"APP_LIB_DEPS = -lglut -lGLU -lGL"
|
||||
|
||||
linux-x11-debug:
|
||||
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
|
||||
"GL_LIB = libGL.so" \
|
||||
"GLU_LIB = libGLU.so" \
|
||||
"GLUT_LIB = libglut.so" \
|
||||
"GLW_LIB = libGLw.so" \
|
||||
"OSMESA_LIB = libOSMesa.so" \
|
||||
"CC = gcc" \
|
||||
"CPLUSPLUS = g++" \
|
||||
"CFLAGS = -g -ansi -pedantic -Wall -Wmissing-prototypes -Wundef -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DUSE_XSHM -DPTHREADS -DDEBUG -DMESA_DEBUG -DMESA_TRACE" \
|
||||
"CCFLAGS = $(CFLAGS)" \
|
||||
"MAKELIB = ../bin/mklib.linux" \
|
||||
"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread" \
|
||||
"GLU_LIB_DEPS = -L../lib -lGL -lm" \
|
||||
"GLUT_LIB_DEPS = -L../lib -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm" \
|
||||
"APP_LIB_DEPS = -lglut -lGLU -lGL"
|
||||
|
||||
|
||||
linux-static-debug:
|
||||
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
|
||||
"GL_LIB = libGL.a" \
|
||||
@@ -1566,7 +1553,7 @@ linux-x86-debug:
|
||||
"OSMESA_LIB = libOSMesa.so" \
|
||||
"CC = gcc" \
|
||||
"CPLUSPLUS = g++" \
|
||||
"CFLAGS = -O2 -g -ansi -pedantic -Wall -Wmissing-prototypes -fPIC -ffast-math -malign-loops=2 -malign-jumps=2 -malign-functions=2 -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -DPTHREADS -I/usr/X11R6/include -DDEBUG -DMESA_DEBUG" \
|
||||
"CFLAGS = -O2 -g -ansi -pedantic -Wall -Wmissing-prototypes -fPIC -ffast-math -malign-loops=2 -malign-functions=2 -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -DPTHREADS -I/usr/X11R6/include -DDEBUG -DMESA_DEBUG" \
|
||||
"MAKELIB = ../bin/mklib.linux" \
|
||||
"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lm -lpthread" \
|
||||
"GLU_LIB_DEPS = -L../lib -lGL -lm" \
|
||||
@@ -1574,14 +1561,14 @@ linux-x86-debug:
|
||||
"APP_LIB_DEPS = -lm" \
|
||||
"ASM_SOURCES = X86/common_x86_asm.S X86/glapi_x86.S \
|
||||
X86/x86_xform2.S X86/x86_xform3.S X86/x86_xform4.S \
|
||||
X86/x86_cliptest.S X86/x86_vertex.S \
|
||||
X86/x86_cliptest.S \
|
||||
X86/mmx_blend.S \
|
||||
X86/3dnow_xform1.S X86/3dnow_xform2.S \
|
||||
X86/3dnow_xform3.S X86/3dnow_xform4.S \
|
||||
X86/3dnow_normal.S X86/3dnow_vertex.S \
|
||||
X86/3dnow_normal.S \
|
||||
X86/sse_xform1.S X86/sse_xform2.S \
|
||||
X86/sse_xform3.S X86/sse_xform4.S \
|
||||
X86/sse_normal.S X86/sse_vertex.S"
|
||||
X86/sse_normal.S"
|
||||
|
||||
linux-glide-debug:
|
||||
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
|
||||
@@ -1613,15 +1600,15 @@ linux-prof:
|
||||
"APP_LIB_DEPS = -L/usr/X11/lib -lX11 -lXext -lXmu -lXt -lXi -lSM -lICE -lm" \
|
||||
"ASM_SOURCES = X86/common_x86_asm.S X86/glapi_x86.S \
|
||||
X86/x86_xform2.S X86/x86_xform3.S X86/x86_xform4.S \
|
||||
X86/x86_cliptest.S X86/x86_vertex.S \
|
||||
X86/x86_cliptest.S \
|
||||
X86/mmx_blend.S \
|
||||
X86/3dnow_xform1.S X86/3dnow_xform2.S \
|
||||
X86/3dnow_xform3.S X86/3dnow_xform4.S \
|
||||
X86/3dnow_normal.S X86/3dnow_vertex.S \
|
||||
X86/3dnow_normal.S \
|
||||
FX/X86/fx_3dnow_fastpath.S \
|
||||
X86/sse_xform1.S X86/sse_xform2.S \
|
||||
X86/sse_xform3.S X86/sse_xform4.S \
|
||||
X86/sse_normal.S X86/sse_vertex.S"
|
||||
X86/sse_normal.S "
|
||||
|
||||
linux-glide-prof:
|
||||
$(MAKE) $(MFLAGS) -f Makefile.X11 targets \
|
||||
@@ -1638,12 +1625,12 @@ linux-glide-prof:
|
||||
"APP_LIB_DEPS = -L/usr/local/glide/lib -lglide2x -L/usr/X11/lib -lX11 -lXext -lXmu -lXt -lXi -lSM -lICE -lm" \
|
||||
"ASM_SOURCES = X86/common_x86_asm.S X86/glapi_x86.S \
|
||||
X86/x86_xform2.S X86/x86_xform3.S X86/x86_xform4.S \
|
||||
X86/x86_cliptest.S X86/x86_vertex.S \
|
||||
X86/x86_cliptest.S \
|
||||
X86/mmx_blend.S \
|
||||
X86/3dnow_xform1.S X86/3dnow_xform2.S \
|
||||
X86/3dnow_xform3.S X86/3dnow_xform4.S \
|
||||
X86/3dnow_normal.S X86/3dnow_vertex.S \
|
||||
X86/3dnow_normal.S \
|
||||
FX/X86/fx_3dnow_fastpath.S \
|
||||
X86/sse_xform1.S X86/sse_xform2.S \
|
||||
X86/sse_xform3.S X86/sse_xform4.S \
|
||||
X86/sse_normal.S X86/sse_vertex.S"
|
||||
X86/sse_normal.S"
|
||||
|
27
Makefile.X11
27
Makefile.X11
@@ -1,7 +1,7 @@
|
||||
# $Id: Makefile.X11,v 1.56.2.13 2002/09/19 16:36:35 brianp Exp $
|
||||
# $Id: Makefile.X11,v 1.69 2002/11/13 15:33:51 brianp Exp $
|
||||
|
||||
# Mesa 3-D graphics library
|
||||
# Version: 4.0.4
|
||||
# Version: 5.0
|
||||
#
|
||||
# Copyright (C) 1999-2002 Brian Paul All Rights Reserved.
|
||||
#
|
||||
@@ -51,8 +51,8 @@ default:
|
||||
@echo " make hpux9-sl for HP systems with HPUX 9.x, make shared libs"
|
||||
@echo " make hpux9-gcc for HP systems with HPUX 9.x using GCC"
|
||||
@echo " make hpux9-gcc-sl for HP systems with HPUX 9.x, GCC, make shared libs"
|
||||
@echo " make hpux10 for HP systems with HPUX 10.x"
|
||||
@echo " make hpux10-sl for HP systems with HPUX 10.x, shared libs"
|
||||
@echo " make hpux10 for HP systems with HPUX 10.x and 11.x"
|
||||
@echo " make hpux10-sl for HP systems with HPUX 10.x and 11.x, shared libs"
|
||||
@echo " make hpux10-gcc for HP systems with HPUX 10.x w/ GCC"
|
||||
@echo " make hpux10-gcc-sl for HP systems with HPUX 10.x w/ GCC, shared libs"
|
||||
@echo " make irix4 for SGI systems with IRIX 4.x"
|
||||
@@ -143,7 +143,7 @@ aix aix-sl amix bsdos bsdos4 darwin dgux freebsd freebsd-386 gcc \
|
||||
hpux9 hpux9-sl hpux9-gcc hpux9-gcc-sl \
|
||||
hpux10 hpux10-sl hpux10-gcc hpux10-gcc-sl \
|
||||
irix4 irix5 irix5-gcc irix5-dso \
|
||||
linux linux-static linux-debug linux-x11-debug linux-static-debug linux-prof \
|
||||
linux linux-static linux-debug linux-static-debug linux-prof \
|
||||
linux-x86 linux-icc linux-x86-static linux-x86-debug \
|
||||
linux-glide linux-386-glide linux-386-opt-glide \
|
||||
linux-x86-glide linux-glide-debug linux-glide-prof \
|
||||
@@ -300,6 +300,7 @@ linux-osmesa16 linux-osmesa32:
|
||||
-mkdir lib
|
||||
if [ -d src ] ; then touch src/depend ; fi
|
||||
if [ -d src ] ; then cd src ; $(MAKE) -f Makefile.OSMesa16 $@ ; fi
|
||||
|
||||
|
||||
# Remove .o files, emacs backup files, etc.
|
||||
clean:
|
||||
@@ -329,11 +330,10 @@ realclean: clean
|
||||
cd samples && $(MAKE) -f Makefile.X11 realclean || true
|
||||
|
||||
|
||||
|
||||
DIRECTORY = Mesa-4.0.4
|
||||
LIB_NAME = MesaLib-4.0.4
|
||||
DEMO_NAME = MesaDemos-4.0.4
|
||||
GLU_NAME = MesaGLU-4.0.4
|
||||
DIRECTORY = Mesa-5.0
|
||||
LIB_NAME = MesaLib-5.0
|
||||
DEMO_NAME = MesaDemos-5.0
|
||||
GLU_NAME = MesaGLU-5.0
|
||||
GLUT_NAME = GLUT-3.7
|
||||
|
||||
|
||||
@@ -350,17 +350,14 @@ LIB_FILES = \
|
||||
$(DIRECTORY)/configure \
|
||||
$(DIRECTORY)/configure.in \
|
||||
$(DIRECTORY)/install-sh \
|
||||
$(DIRECTORY)/ltconfig \
|
||||
$(DIRECTORY)/ltmain.sh \
|
||||
$(DIRECTORY)/missing \
|
||||
$(DIRECTORY)/mkinstalldirs \
|
||||
$(DIRECTORY)/stamp-h.in \
|
||||
$(DIRECTORY)/docs/CONFIG \
|
||||
$(DIRECTORY)/docs/CONFORM \
|
||||
$(DIRECTORY)/docs/COPYING \
|
||||
$(DIRECTORY)/docs/COPYRIGHT \
|
||||
$(DIRECTORY)/docs/DEVINFO \
|
||||
$(DIRECTORY)/docs/IAFA-PACKAGE \
|
||||
$(DIRECTORY)/docs/INSTALL \
|
||||
$(DIRECTORY)/docs/INSTALL.GNU \
|
||||
$(DIRECTORY)/docs/README \
|
||||
@@ -401,7 +398,6 @@ LIB_FILES = \
|
||||
$(DIRECTORY)/include/GL/xmesa_x.h \
|
||||
$(DIRECTORY)/include/GL/xmesa_xf86.h \
|
||||
$(DIRECTORY)/include/GLView.h \
|
||||
$(DIRECTORY)/include/dmesadxe.h \
|
||||
$(DIRECTORY)/include/Makefile.in \
|
||||
$(DIRECTORY)/include/Makefile.am \
|
||||
$(DIRECTORY)/src/Makefile* \
|
||||
@@ -434,7 +430,6 @@ LIB_FILES = \
|
||||
$(DIRECTORY)/src/windml/man3/*.html \
|
||||
$(DIRECTORY)/src/DOS/*.[chS] \
|
||||
$(DIRECTORY)/src/DOS/vesa/*.[ch] \
|
||||
$(DIRECTORY)/src/BeOS/*.h \
|
||||
$(DIRECTORY)/src/BeOS/*.cpp \
|
||||
$(DIRECTORY)/src/FX/Makefile.am \
|
||||
$(DIRECTORY)/src/FX/Makefile.in \
|
||||
@@ -627,7 +622,7 @@ DEMO_FILES = \
|
||||
$(DIRECTORY)/demos/README \
|
||||
$(DIRECTORY)/xdemos/Makefile* \
|
||||
$(DIRECTORY)/xdemos/descrip.mms \
|
||||
$(DIRECTORY)/xdemos/*.[cf] \
|
||||
$(DIRECTORY)/xdemos/*.[chf] \
|
||||
$(DIRECTORY)/book/Makefile* \
|
||||
$(DIRECTORY)/book/README \
|
||||
$(DIRECTORY)/book/*.[ch] \
|
||||
|
@@ -15,11 +15,11 @@ Contact
|
||||
|
||||
Status
|
||||
|
||||
OBSOLETE - NEVER SHIPPED (use GL_NV_packed_depth_stencil)
|
||||
Not yet shipping.
|
||||
|
||||
Version
|
||||
|
||||
$Id: MESA_packed_depth_stencil.spec,v 1.1.2.1 2002/09/20 19:14:11 brianp Exp $
|
||||
$Id: MESA_packed_depth_stencil.spec,v 1.1 2000/11/03 14:58:45 brianp Exp $
|
||||
|
||||
Number
|
||||
|
||||
|
@@ -14,11 +14,11 @@ Contact
|
||||
|
||||
Status
|
||||
|
||||
OBSOLETE - NEVER SHIPPED (use GL_NV_point_sprite)
|
||||
Not yet shipping.
|
||||
|
||||
Version
|
||||
|
||||
$Id: MESA_sprite_point.spec,v 1.1.2.1 2002/09/20 19:14:11 brianp Exp $
|
||||
$Id: MESA_sprite_point.spec,v 1.1 2000/12/08 00:21:02 brianp Exp $
|
||||
|
||||
Number
|
||||
|
||||
|
@@ -1,10 +1,25 @@
|
||||
|
||||
3Dfx Glide device driver for Mesa 3.3
|
||||
(see below for FAQ)
|
||||
3Dfx Glide device driver
|
||||
|
||||
|
||||
Warning: this document is rather out of date, but most of the information
|
||||
should still apply.
|
||||
|
||||
Info for Mesa 4.1
|
||||
-----------------
|
||||
|
||||
The 3dfx Glide driver in Mesa is disabled by default. Not too many people
|
||||
use this driver anymore and at some point down the road it will be dropped.
|
||||
|
||||
To use/enable the Glide driver either do this:
|
||||
|
||||
'./configure --with-glide=DIR' Where DIR is the location of Glide, like
|
||||
/usr/ or /usr/local
|
||||
|
||||
OR
|
||||
|
||||
'make linux-x86-glide' If using the old-style Makefile system.
|
||||
|
||||
The rest of this file hasn't changed since Mesa 3.3. Some of it's out of
|
||||
date, but some is still valid.
|
||||
|
||||
|
||||
|
||||
@@ -17,8 +32,6 @@ What do you need ?
|
||||
under Linux (more information in the "Useful Glide Environment
|
||||
Variables");
|
||||
|
||||
- Mesa 3.1;
|
||||
|
||||
- The 3Dfx Glide library 2.3 or later for your OS (the 2.4 works fine).
|
||||
The Voodoo2 requires the Glide library 2.51. The Glide 3.1 is not
|
||||
compatible with the Glide 2.x so it doesn't work with the current
|
||||
@@ -27,8 +40,6 @@ What do you need ?
|
||||
- A compiler supported by the Glide library (Micro$oft VC++ (tested),
|
||||
Watcom (tested), GCC for Linux (tested), etc.);
|
||||
|
||||
- A lot of patience, this is an alpha release.
|
||||
|
||||
- It's nice to have two monitors - one for your normal graphics
|
||||
card and one for your 3Dfx card. If something goes wrong with
|
||||
an application using the 3Dfx hardware you can still see your
|
||||
|
153
docs/README.BEOS
153
docs/README.BEOS
@@ -1,65 +1,114 @@
|
||||
Mesa-4.0.3 BeOS R5 driver patch
|
||||
Version alpha v0.3
|
||||
|
||||
HOW TO BUILD:
|
||||
Mesa / BeOS Information
|
||||
|
||||
1) You need gcc 2.95.3 to be installed:
|
||||
http://www.bebits.com/app/2157
|
||||
Check your installed gcc version by running this command from a Terminal:
|
||||
gcc -v
|
||||
|
||||
2) Download Mesa-4.0.3 sources
|
||||
http://prdownloads.sourceforge.net/mesa3d/MesaLib-4.0.3.tar.gz?download
|
||||
|
||||
3) Extract official 4.0.3 sources code somewhere
|
||||
* Introduction
|
||||
|
||||
4) Then, extract the BeOS driver patch at same place. This will
|
||||
overwrite modified sources and add BeOS-specific ones.
|
||||
Mesa 4.1 features a driver for the BeOS. The driver implements
|
||||
a clone of the BGLView class. This class, derived from BView, allows
|
||||
OpenGL rendering into a BeOS window.
|
||||
The 4.1 BeOS driver is an update of Brian Paul's BeOS driver released in Mesa 3.1.
|
||||
|
||||
5) Open a new Terminal window:
|
||||
$ cd /path/to/Mesa-4.0.3/src
|
||||
$ make -f Makefile.BeOS-R5
|
||||
Any application which uses the BGLView should be able to use Mesa
|
||||
instead of Be's OpenGL without changing any code.
|
||||
|
||||
6) Take a cup of coffee!
|
||||
Since Be's OpenGL implementation (as of R5) is basically just the
|
||||
SGI sample implementation, it's pretty slow. You'll see that Mesa
|
||||
is considerably faster.
|
||||
|
||||
7) When done, you should find a obj.x86/libGL.so
|
||||
|
||||
8) To test this library as a Be Inc's one:
|
||||
- rename /boot/beos/system/lib/libGL.so into libGL.so.r5
|
||||
- put/copy obj.x86/libGL.so file into /boot/home/config/lib directory
|
||||
- run GLTeapot...
|
||||
|
||||
To see more information, run your(s) GL app(s) from Terminal:
|
||||
$ export MESA_INFO=1
|
||||
$ export MESA_DEBUG=1
|
||||
$ myGLapp
|
||||
MMX cpu detected.
|
||||
Not testing OS support for SSE, leaving enabled.
|
||||
SSE cpu detected.
|
||||
Mesa GL_VERSION = 1.2 Mesa 4.0.3
|
||||
Mesa GL_RENDERER = BGLView
|
||||
Mesa GL_VENDOR = Brian Paul
|
||||
Mesa GL_EXTENSIONS = GL_ARB_imaging GL_ARB_multitexture
|
||||
[...]
|
||||
GL_SGIX_shadow GL_SGIX_shadow_ambient
|
||||
Mesa thread-safe: NO
|
||||
Mesa x86-optimized: YES
|
||||
Mesa sparc-optimized: NO
|
||||
* Source Code
|
||||
|
||||
BUILD ISSUES:
|
||||
- If the build stop on math/m_*.c files, you're not using gcc 2.95.3.
|
||||
- The Makefile.BeOS-R5 is set currently to build a non-debug x86/mmx/sse/3dnow optimized libGL.so.
|
||||
It's a modified BeOS standard makefile, so editing it to follow your needs should be easy...
|
||||
- NASM support instead of built-in gcc assembler (GAS) is not supported yet...
|
||||
- "Mesa thread-safe: NO" is correct: the Mesa multithread support don't allow to share a gl context
|
||||
between any thread, only give you one thread <-> one context, which is inaccurate under BeOS...
|
||||
The source code for the driver is in Mesa-4.1/src/BeOS/ directory.
|
||||
It's not 100% finished at this time but many GLUT-based demos are
|
||||
working. No optimizations have been made at this time.
|
||||
|
||||
KNOWN LIMITATIONS & BUGS:
|
||||
- BeOS driver only support software rendition ATM
|
||||
- No BDirectWindow support yet, too. GLLife will not work for this reason.
|
||||
- 3dnow support untested
|
||||
- GLTeapot: object mouse control don't work
|
||||
- GLTeapot: window resizing don't work
|
||||
- many others: ALPHA VERSION, remember.
|
||||
|
||||
philippe.houdoin@free.fr
|
||||
|
||||
* Compiling
|
||||
|
||||
Requirements:
|
||||
- gcc version 2.95.3 for BeOS
|
||||
You can find it here: http://www.bebits.com/app/2157
|
||||
|
||||
Move to the Mesa-4.x src sub-directory and then type "make -f Makefile.BeOS-R5".
|
||||
When it finishes the Mesa based libGL.so library for
|
||||
BeOS will be in the Mesa-4.x/src/obj.{x86|ppc}/ directory.
|
||||
|
||||
To install it as Be's default libGL.so replacement, put it in your
|
||||
/boot/home/config/lib/ directory. All your GL/GLUTapps will use
|
||||
the Mesa based then.
|
||||
|
||||
By default, it build a non-debug version library.
|
||||
The x86 (MMX, SSE and 3DNOW) optimizations are also supported for x86 target.
|
||||
Sorry, Mesa don't have ppc (Altivec) optimizations yet.
|
||||
|
||||
|
||||
* Example Programs
|
||||
|
||||
Look in the Mesa-4.x/BeOS/ directory for one or two BGLView demo
|
||||
programs. They should have been compiled along with the Mesa
|
||||
library.
|
||||
|
||||
|
||||
* GLUT
|
||||
|
||||
A beta version of GLUT 3.7 port for BeOS can be found at
|
||||
http://anobject.com/jehamby/Code/Glut-3.7-x86.zip.
|
||||
|
||||
There's is a 2.5 version in src-glut.beos/, too.
|
||||
The original distribution can be obtained from
|
||||
http://home.beoscentral.com/jehamby/Glut-3.5-x86.zip
|
||||
|
||||
They are special version of GLUT adapted for the BeOS. I don't
|
||||
believe Mark Kilgard's normal GLUT distribution includes BeOS
|
||||
support.
|
||||
|
||||
|
||||
* Special Features
|
||||
|
||||
Mesa's implementation of the BGLView class has an extra member
|
||||
function: CopySubBufferMESA(). It basically works like SwapBuffers()
|
||||
but it only copies a sub region from the back buffer to the front
|
||||
buffer. This is a useful optimization for some applications.
|
||||
If you use this method in your code be sure that you check at runtime
|
||||
that you're actually using Mesa (with glGetString) so you don't
|
||||
cause a fatal error when running with Be's OpenGL.
|
||||
|
||||
|
||||
|
||||
* Work Left To Do
|
||||
|
||||
BDirectWindow single buffering support is not implemented yet.
|
||||
|
||||
Color index mode is not implemented yet.
|
||||
|
||||
Reading pixels from the front buffer not implemented yet.
|
||||
|
||||
There is also a BGLScreen class in BeOS for full-screen OpenGL
|
||||
rendering. This should also be implemented for Mesa.
|
||||
|
||||
|
||||
|
||||
* Old BeOS Driver
|
||||
|
||||
Mesa 2.6 had an earlier BeOS driver. It was based on Mesa's Off-screen
|
||||
rendering interface, not BGLView. If you're interested in the older
|
||||
driver you should get Mesa 2.6.
|
||||
|
||||
|
||||
|
||||
* BeOS and Glide
|
||||
|
||||
Mesa 3.0 supported the 3Dfx/Glide library on Beos. Download Mesa 3.0
|
||||
if interested. Ideally, the 3Dfx/Glide support should be updated to
|
||||
work with the new Mesa 3.1 BGLView implementation.
|
||||
|
||||
The Glide library hasn't been updated for BeOS R4, to my knowledge, as
|
||||
of February, 1999.
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
$Id: README.BEOS,v 1.7 2002/09/19 16:19:44 brianp Exp $
|
||||
|
@@ -1,4 +1,4 @@
|
||||
Mesa 4.0 DOS/DJGPP Port v1.1
|
||||
Mesa 4.1 DOS/DJGPP Port v1.2
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
Description:
|
||||
~~~~~~~~~~~~
|
||||
|
||||
Well, guess what... this is the DOS port of Mesa 4.0.4, for DJGPP fans... Whoa!
|
||||
Well, guess what... this is the DOS port of Mesa 4.1, for DJGPP fans... Whoa!
|
||||
The driver has its origins in ddsample.c, written by Brian Paul and found by me
|
||||
in Mesa 3.4.2.
|
||||
|
||||
@@ -66,7 +66,7 @@ Tested on:
|
||||
CPU: K6-2 (CXT) @500(412.5) MHz
|
||||
Mainboard: ViA Apollo VP2/97 w/ 128 MB SDRAM
|
||||
Video card: PowerColor Evil King3 (Voodoo3 3000) w/ 16384 kB SDRAM
|
||||
DJGPP: djdev 2.03 + gcc v3.1 + make v3.79.1
|
||||
DJGPP: djdev 2.04 + gcc v3.2 + make v3.79.1
|
||||
|
||||
|
||||
|
||||
@@ -86,33 +86,27 @@ FAQ:
|
||||
A) You must have the DXE2 package (available on SimTel.Net, courtesy of
|
||||
Andrew Zabolotny) installed in order to build the dynamic modules.
|
||||
|
||||
Q) I have DXE2, but I couln'd build the `dxe2gen.exe'.
|
||||
Q) I have DXE2, but I couldn't build the `dxe2gen.exe'.
|
||||
Q) I built `dxe2gen.exe', but it doesn't do the job right.
|
||||
A) There is a patched version on my web page.
|
||||
|
||||
Q) DXE2 modules give me headaches...
|
||||
A) The DXE2 modules are not compulsory. The static libraries are still built
|
||||
and you can use them in the old-fashioned, classic way. For example:
|
||||
and you can use them in the old-fashioned, classic way... and learn to
|
||||
live with your ~2MB executable size. For example:
|
||||
gcc -o OUT.exe IN.c -lglut -lglu -lgl
|
||||
|
||||
Q) Okay, DXE2 modules are built. How can I use them?
|
||||
A) Usage of the dynamic modules requires three things:
|
||||
- include DMESADXE.H in one of the sources, so references inside
|
||||
dynamic modules will get resolved (or use `-include' directive).
|
||||
- link against import libraries (libI*.a) and LIBDL.A, which will do
|
||||
the dynamic linkage job for you
|
||||
- put the DXEs somewhere along the library path (LD_LIBRARY_PATH) or
|
||||
in the current directory
|
||||
A) Build your export object file; then link it with your application.
|
||||
For example:
|
||||
gcc -o OUT.exe -include dmesadxe.h IN.c -ligl -liglu -liglut -ldl
|
||||
dxe2res -o dmesadxe.c gl.dxe glu.dxe glut.dxe
|
||||
gcc -o dmesadxe.o dmesadxe.c
|
||||
gcc -o OUT.exe dmesadxe.o IN.c -liglut -liglu -ligl -ldl
|
||||
|
||||
Q) The application dies with "Abort!" due to unresolved symbols.
|
||||
A) This is bad! Extract the unresolved symbol list from this module. For
|
||||
example:
|
||||
dxe2gen --show-unres gl.dxe > u
|
||||
Check DMESADXE.H; the symbols in `u' must either be present here or be
|
||||
exported from another module that has to be loaded before your faulting
|
||||
one. Then recompile.
|
||||
Q) What is that `dxe2res.exe' thing?
|
||||
A) That is an utility that generates the export file for a given set of
|
||||
modules. If you can't find it in the DXE2 package, you must be looking at
|
||||
the wrong archive :)
|
||||
|
||||
3. Using Mesa for DJGPP
|
||||
|
||||
@@ -138,7 +132,7 @@ FAQ:
|
||||
GLUT took this into account for _WIN32 DLL's only; I don't want to modify
|
||||
his headers. The only workaround is to link GLUT the old way :-(
|
||||
|
||||
Q) The DJGPP port of Mesa is so SLOOOW! The Win32 OpenGL performs so much
|
||||
Q) DMesa is so SLOOOW! The Win32 OpenGL performs so much
|
||||
better...
|
||||
A) Is that a question? If you have a Voodoo3/Banshee card, you're lucky. The
|
||||
Glide port is on my web page. If you haven't, sorry; everything is done
|
||||
@@ -196,11 +190,15 @@ History:
|
||||
~~~~~~~~
|
||||
|
||||
v1.0 mar-2002 initial release
|
||||
|
||||
v1.1 sep-2002 + added 3dfx Glide3 support
|
||||
+ added refresh rate control
|
||||
+ added fonts in glut
|
||||
* lots of minor changes
|
||||
|
||||
v1.2 nov-2002 * synced w/ Mesa-4.1
|
||||
- removed dmesadxe.h
|
||||
|
||||
|
||||
|
||||
Contact:
|
||||
|
@@ -1,9 +1,13 @@
|
||||
File: docs/README.WIN32
|
||||
|
||||
Last updated: Aug 15, 2002 - Karl Schultz - kschultz@users.sourceforge.net
|
||||
Last updated: Nov 08, 2002 - Karl Schultz - kschultz@users.sourceforge.net
|
||||
|
||||
Quick Start
|
||||
|
||||
Unzip both ZIP files (MesaLib and MesaDemos) into the same directory.
|
||||
This is important because the current makefiles in MesaLib assume that
|
||||
the directories in MesaDemos are present.
|
||||
|
||||
If you have Microsoft Visual C++ 6.0 installed, simply go to the top directory
|
||||
of the Mesa distribution and type 'nmake -f Makefile.win NODEBUG=1' for
|
||||
an optimized build. Note that you may have to run ...VC98/BIN/VCVARS32.BAT
|
||||
@@ -16,6 +20,8 @@ Details and Notes
|
||||
si-glu MesaGLU.dll, MesaGLU.lib
|
||||
src-glut glut32.dll, glut32.lib
|
||||
demos a handful of demo executables.
|
||||
book more examples
|
||||
samples more examples
|
||||
|
||||
- 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
|
||||
|
@@ -1,5 +1,5 @@
|
||||
|
||||
Mesa 4.0.4 Unix/X11 Information
|
||||
Mesa Unix/X11 Information
|
||||
|
||||
|
||||
|
||||
@@ -18,21 +18,15 @@ There are two ways to compile Mesa on Unix/X11 systems:
|
||||
the top-level Makefile and Make-config files. There are instructions in
|
||||
each file.
|
||||
|
||||
When finished, the Mesa libraries will be in the Mesa-x.y/lib/ directory.
|
||||
|
||||
|
||||
2. The new way:
|
||||
Type './configure' and then 'make'. This uses GNU autoconfig.
|
||||
Run 'make check' to build the demos.
|
||||
See docs/INSTALL for more details.
|
||||
|
||||
|
||||
The top-level makefile will execute the makefiles in a number of sub-
|
||||
directories. When finished, the Mesa libraries will be in the Mesa-4.0.4/lib/
|
||||
directory. A few GLUT demos in the demos/ directory should be ready to run.
|
||||
|
||||
If you also downloaded and unpacked the demos there should be executables
|
||||
in the "xdemos/", "samples/", and "book/" directories for you to try out.
|
||||
|
||||
If you have compilation problems you should try to fix them and return the
|
||||
patches to the author.
|
||||
When finished, the Mesa libraries will be in the Mesa-x.y/src/.libs/,
|
||||
Mesa-x.y/si-glu/.libs, etc directories.
|
||||
|
||||
|
||||
Notes on assembly language optimizations:
|
||||
@@ -323,4 +317,4 @@ Summary of X-related environment variables:
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
$Id: README.X11,v 3.8.2.4 2002/09/03 17:50:21 brianp Exp $
|
||||
$Id: README.X11,v 3.9 2002/10/29 23:42:48 brianp Exp $
|
||||
|
@@ -19,4 +19,4 @@ see the VERSIONS file.
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
$Id: RELNOTES-3.4,v 1.1.4.1 2002/03/23 02:36:52 brianp Exp $
|
||||
$Id: RELNOTES-3.4,v 1.2 2002/03/23 02:37:17 brianp Exp $
|
||||
|
@@ -19,4 +19,4 @@ Mesa 4.0.1 only contains bug fixes since version 4.0.
|
||||
See the docs/VERSIONS file for the list of bug fixes.
|
||||
|
||||
----------------------------------------------------------------------
|
||||
$Id: RELNOTES-4.0.1,v 1.1.2.2 2001/12/17 19:43:38 brianp Exp $
|
||||
$Id: RELNOTES-4.0.1,v 1.2 2001/12/18 14:08:23 brianp Exp $
|
||||
|
@@ -1,7 +1,7 @@
|
||||
|
||||
Mesa 4.0.2 release notes
|
||||
|
||||
April 2, 2002
|
||||
March 25, 2002
|
||||
|
||||
PLEASE READ!!!!
|
||||
|
||||
@@ -47,4 +47,4 @@ D3D needs updating
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
$Id: RELNOTES-4.0.2,v 1.1.2.3 2002/04/01 16:54:11 brianp Exp $
|
||||
$Id: RELNOTES-4.0.2,v 1.2 2002/03/23 02:38:39 brianp Exp $
|
||||
|
@@ -49,4 +49,4 @@ D3D needs updating
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
$Id: RELNOTES-4.0.3,v 1.1.2.3 2002/06/24 20:44:58 brianp Exp $
|
||||
$Id: RELNOTES-4.0.3,v 1.2 2002/06/26 02:36:34 brianp Exp $
|
||||
|
@@ -1,9 +1,9 @@
|
||||
|
||||
Mesa 4.1 release notes
|
||||
|
||||
<month>, <day>, <year>
|
||||
October 29, 2002
|
||||
|
||||
PLEASE READ!!!!
|
||||
PLEASE READ!!!!
|
||||
|
||||
|
||||
|
||||
@@ -11,18 +11,298 @@ Introduction
|
||||
------------
|
||||
|
||||
Mesa uses an even/odd version number scheme like the Linux kernel.
|
||||
Odd numbered versions (such as 4.1) designate new developmental releases.
|
||||
Even numbered versions (such as 4.0) designate stable releases.
|
||||
Odd numbered versions (such as 4.1) designate new developmental releases.
|
||||
|
||||
|
||||
New Features in Mesa 4.1
|
||||
------------------------
|
||||
|
||||
<to be determined>
|
||||
New extensions. Docs at http://oss.sgi.com/projects/ogl-sample/registry/
|
||||
|
||||
GL_NV_vertex_program
|
||||
|
||||
NVIDIA's vertex programming extension
|
||||
|
||||
GL_NV_vertex_program1_1
|
||||
|
||||
A few features built on top of GL_NV_vertex_program
|
||||
|
||||
GL_ARB_window_pos
|
||||
|
||||
This is the ARB-approved version of GL_MESA_window_pos
|
||||
|
||||
GL_ARB_depth_texture
|
||||
|
||||
This is the ARB-approved version of GL_SGIX_depth_texture.
|
||||
It allows depth (Z buffer) data to be stored in textures.
|
||||
This is used by GL_ARB_shadow
|
||||
|
||||
GL_ARB_shadow
|
||||
|
||||
Shadow mapping with depth textures.
|
||||
This is the ARB-approved version of GL_SGIX_shadow.
|
||||
|
||||
GL_ARB_shadow_ambient
|
||||
|
||||
Allows one to specify the luminance of shadowed pixels.
|
||||
This is the ARB-approved version of GL_SGIX_shadow_ambient.
|
||||
|
||||
GL_EXT_shadow_funcs
|
||||
|
||||
Extends the set of GL_ARB_shadow texture comparision functions to
|
||||
include all eight of standard OpenGL dept-test functions.
|
||||
|
||||
GL_ARB_point_parameters
|
||||
|
||||
This is basically the same as GL_EXT_point_parameters.
|
||||
|
||||
GL_ARB_texture_env_crossbar
|
||||
|
||||
Allows any texture combine stage to reference any texture source unit.
|
||||
|
||||
GL_NV_point_sprite
|
||||
|
||||
For rendering points as textured quads. Useful for particle effects.
|
||||
|
||||
GL_NV_texture_rectangle (new in 4.0.4 actually)
|
||||
|
||||
Allows one to use textures with sizes that are not powers of two.
|
||||
Note that mipmapping and several texture wrap modes are not allowed.
|
||||
|
||||
GL_EXT_multi_draw_arrays
|
||||
|
||||
Allows arrays of vertex arrays to be rendered with one call.
|
||||
|
||||
GL_EXT_stencil_two_side
|
||||
|
||||
Separate stencil modes for front and back-facing polygons.
|
||||
|
||||
GLX_SGIX_fbconfig & GLX_SGIX_pbuffer
|
||||
|
||||
Off-screen rendering support.
|
||||
|
||||
GL_ATI_texture_mirror_once
|
||||
|
||||
Adds two new texture wrap modes: GL_MIRROR_CLAMP_ATI and
|
||||
GL_MIRROR_CLAMP_TO_EDGE_ATI.
|
||||
|
||||
|
||||
|
||||
Device Driver Status
|
||||
--------------------
|
||||
|
||||
A number of Mesa's software drivers haven't been actively maintained for
|
||||
some time. We rely on volunteers to maintain many of these drivers.
|
||||
Here's the current status of all included drivers:
|
||||
|
||||
|
||||
Driver Status
|
||||
---------------------- ---------------------
|
||||
XMesa (Xlib) implements OpenGL 1.3
|
||||
OSMesa (off-screen) implements OpenGL 1.3
|
||||
FX (3dfx Voodoo1/2) implements OpenGL 1.3
|
||||
SVGA implements OpenGL 1.3
|
||||
Wind River UGL implements OpenGL 1.3
|
||||
Windows/Win32 implements OpenGL 1.3
|
||||
DOS/DJGPP implements OpenGL 1.3
|
||||
GGI implements OpenGL 1.3
|
||||
BeOS needs updating (underway)
|
||||
Allegro needs updating
|
||||
D3D needs updating
|
||||
DOS needs updating
|
||||
|
||||
|
||||
|
||||
New features in GLUT
|
||||
--------------------
|
||||
|
||||
1. Frames per second printing
|
||||
|
||||
GLUT now looks for an environment variable called "GLUT_FPS". If it's
|
||||
set, GLUT will print out a frames/second statistic to stderr when
|
||||
glutSwapBuffers() is called. By default, frames/second is computed
|
||||
and displayed once every 5 seconds. You can specify a different
|
||||
interval (in milliseconds) when you set the env var. For example
|
||||
'export GLUT_FPS=1000' or 'setenv GLUT_FPS 1000' will set the interval
|
||||
to one second.
|
||||
|
||||
NOTE: the demo or application must call the glutInit() function for
|
||||
this to work. Otherwise, the env var will be ignored.
|
||||
|
||||
Finally, this feature may not be reliable in multi-window programs.
|
||||
|
||||
|
||||
2. glutGetProcAddress() function
|
||||
|
||||
The new function:
|
||||
|
||||
void *glutGetProcAddress(const char *procName)
|
||||
|
||||
is a wrapper for glXGetProcAddressARB() and wglGetProcAddress(). It
|
||||
lets you dynamically get the address of an OpenGL function at runtime.
|
||||
The GLUT_API_VERSION has been bumped to 5, but I haven't bumped the
|
||||
GLUT version number from 3.7 since that's probably Mark Kilgard's role.
|
||||
|
||||
This function should probably also be able to return the address of
|
||||
GLUT functions themselves, but it doesn't do that yet.
|
||||
|
||||
|
||||
|
||||
XXX Things To Do Yet XXXX
|
||||
-------------------------
|
||||
|
||||
isosurf with vertex program exhibits some missing triangles (probably
|
||||
when recycling the vertex buffer for long prims).
|
||||
|
||||
|
||||
|
||||
Porting Info
|
||||
------------
|
||||
|
||||
If you're porting a DRI or other driver from Mesa 4.0.x to Mesa 4.1 here
|
||||
are some things to change:
|
||||
|
||||
1. ctx->Texture._ReallyEnabled is obsolete.
|
||||
|
||||
Since there are now 5 texture targets (1D, 2D, 3D, cube and rect) that
|
||||
left room for only 6 units (6*5 < 32) in this field.
|
||||
This field is being replaced by ctx->Texture._EnabledUnits which has one
|
||||
bit per texture unit. If the bit k of _EnabledUnits is set, that means
|
||||
ctx->Texture.Unit[k]._ReallyEnabled is non-zero. You'll have to look at
|
||||
ctx->Texture.Unit[k]._ReallyEnabled to learn if the 1D, 2D, 3D, cube or
|
||||
rect texture is enabled for unit k.
|
||||
|
||||
This also means that the constants TEXTURE1_*, TEXTURE2_*, etc are
|
||||
obsolete.
|
||||
|
||||
The tokens TEXTURE0_* have been replaced as well (since there's no
|
||||
significance to the "0" part:
|
||||
|
||||
old token new token
|
||||
TEXTURE0_1D TEXTURE_1D_BIT
|
||||
TEXTURE0_2D TEXTURE_2D_BIT
|
||||
TEXTURE0_3D TEXTURE_3D_BIT
|
||||
TEXTURE0_CUBE TEXTURE_CUBE_BIT
|
||||
<none> TEXTURE_RECT_BIT
|
||||
|
||||
These tokens are only used for the ctx->Texture.Unit[i].Enabled and
|
||||
ctx->Texture.Unit[i]._ReallyEnabled fields. Exactly 0 or 1 bits will
|
||||
be set in _ReallyEnabled at any time!
|
||||
|
||||
Q: "What's the purpose of Unit[i].Enabled vs Unit[i]._ReallyEnabled?"
|
||||
A: The user can enable GL_TEXTURE_1D, GL_TEXTURE_2D, etc for any
|
||||
texure unit all at once (an unusual thing to do).
|
||||
OpenGL defines priorities that basically say GL_TEXTURE_2D has
|
||||
higher priority than GL_TEXTURE_1D, etc. Also, just because a
|
||||
texture target is enabled by the user doesn't mean we'll actually
|
||||
use that texture! If a texture object is incomplete (missing mip-
|
||||
map levels, etc) it's as if texturing is disabled for that target.
|
||||
The _ReallyEnabled field will have a bit set ONLY if the texture
|
||||
target is enabled and complete. This spares the driver writer from
|
||||
examining a _lot_ of GL state to determine which texture target is
|
||||
to be used.
|
||||
|
||||
|
||||
2. Tnl tokens changes
|
||||
|
||||
During the implementation of GL_NV_vertex_program some of the vertex
|
||||
buffer code was changed. Specifically, the VERT_* bits defined in
|
||||
tnl/t_context.h have been renamed to better match the conventions of
|
||||
GL_NV_vertex_program. The old names are still present but obsolete.
|
||||
Drivers should use the newer names.
|
||||
|
||||
For example: VERT_RGBA is now VERT_BIT_COLOR0 and
|
||||
VERT_SPEC_RGB is now VERT_BIT_COLOR1.
|
||||
|
||||
|
||||
|
||||
3. Read/Draw Buffer changes
|
||||
|
||||
The business of setting the current read/draw buffers in Mesa 4.0.x
|
||||
was complicated. It's much simpler now in Mesa 4.1.
|
||||
|
||||
Here are the changes:
|
||||
|
||||
- Renamed ctx->Color.DrawDestMask to ctx->Color._DrawDestMask
|
||||
- Removed ctx->Color.DriverDrawBuffer
|
||||
- Removed ctx->Pixel.DriverReadBuffer
|
||||
- Removed ctx->Color.MultiDrawBuffer
|
||||
- Removed ctx->Driver.SetDrawBuffer()
|
||||
- Removed swrast->Driver.SetReadBuffer().
|
||||
- Added ctx->Color._DrawDestMask - a bitmask of FRONT/BACK_LEFT/RIGHT_BIT
|
||||
values to indicate the current draw buffers.
|
||||
- Added ctx->Pixel._ReadSrcMask to indicate the source for pixel reading.
|
||||
The value is _one_ of the FRONT/BACK_LEFT/RIGHT_BIT values.
|
||||
- Added ctx->Driver.DrawBuffer() and ctx->Driver.ReadBuffer().
|
||||
These functions exactly correspond to glDrawBuffer and glReadBuffer calls.
|
||||
Many drivers will set ctx->Driver.DrawBuffer = _swrast_DrawBuffer and
|
||||
leave ctx->Draw.ReadBuffer NULL.
|
||||
DRI drivers should implement their own function for ctx->Driver.DrawBuffer
|
||||
and use it to set the current hardware drawing buffer. You'll probably
|
||||
also want to check for GL_FRONT_AND_BACK mode and fall back to software.
|
||||
Call _swrast_DrawBuffer() too, to update the swrast state.
|
||||
- Added swrast->Driver.SetBuffer().
|
||||
This function should be implemented by all device drivers that use swrast.
|
||||
Mesa will call it to specify the buffer to use for span reading AND
|
||||
writing and point/line/triangle rendering.
|
||||
There should be no confusion between current read or draw buffer anymore.
|
||||
- Added swrast->CurrentBuffer to indicate which color buffer to read/draw.
|
||||
Will be FRONT_LEFT_BIT, BACK_LEFT_BIT, FRONT_RIGHT_BIT or BACK_RIGHT_BIT.
|
||||
This value is usually passed to swrast->Driver.SetBuffer().
|
||||
|
||||
|
||||
4. _mesa_create_context() changes. This function now takes a pointer to
|
||||
a __GLimports object. The __GLimports structure contains function
|
||||
pointers to system functions like fprintf(), malloc(), etc.
|
||||
The _mesa_init_default_imports() function can be used to initialize
|
||||
a __GLimports object. Most device drivers (like the DRI drivers)
|
||||
should use this.
|
||||
|
||||
|
||||
5. In tnl's struct vertex_buffer, the field "ProjectedClipCoords"
|
||||
has been replaced by "NdcPtr" to better match the OpenGL spec's
|
||||
terminology.
|
||||
|
||||
|
||||
6. Since GL_EXT_stencil_two_side has been implemented, many of the
|
||||
ctx->Stencil fields are now 2-element arrays. For example,
|
||||
"GLenum Ref" is now "GLenum Ref[2]" The [0] elements are the front-face
|
||||
values and the [1] elements are the back-face values.
|
||||
ctx->Stencil.ActiveFace is 0 or 1 to indicate the current face for
|
||||
the glStencilOp/Func/Mask() functions.
|
||||
ctx->Stencil.TestTwoSide controls whether or not 1 or 2-sided stenciling
|
||||
is enabled.
|
||||
|
||||
|
||||
7. Removed ctx->Polygon._OffsetAny. Removed ctx->Polygon.OffsetMRD.
|
||||
|
||||
|
||||
8. GLfloat / GLchan changes:
|
||||
|
||||
- Changed ctx->Driver.ClearColor() to take GLfloat[4] instead of GLchan[4].
|
||||
ctx->Color.ClearColor is now GLfloat[4] too.
|
||||
- Changed ctx->Driver.AlphaRef() to take GLfloat instead of GLchan.
|
||||
- ctx->Color.AlphaRef is now GLfloat.
|
||||
- texObj->BorderColor is now GLfloat[4]. texObj->_BorderChan is GLchan[4].
|
||||
|
||||
This is part of an effort to remove all GLchan types from core Mesa so
|
||||
that someday we can support 8, 16 and 32-bit color channels dynamically
|
||||
at runtime, instead of at compile-time.
|
||||
|
||||
|
||||
9. GLboolean ctx->Tranform.ClipEnabled[MAX_CLIP_PLANES] has been replaced
|
||||
by GLuint ctx->Transform.ClipPlanesEnabled. The later is a bitfield.
|
||||
|
||||
|
||||
10. There's a new matrix_stack type in mtypes.h used for the Modelview,
|
||||
Projection, Color and Texcoord matrix stacks.
|
||||
|
||||
|
||||
11. The ctx->Current.* fields have changed a lot. Now, there's a
|
||||
ctx->Current.Attrib[] array for all vertex attributes which matches
|
||||
the NV vertex program conventions.
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
$Id: RELNOTES-4.1,v 1.1 2001/10/22 22:57:23 brianp Exp $
|
||||
$Id: RELNOTES-4.1,v 1.22 2002/10/29 15:06:37 brianp Exp $
|
||||
|
85
docs/RELNOTES-5.0
Normal file
85
docs/RELNOTES-5.0
Normal file
@@ -0,0 +1,85 @@
|
||||
|
||||
Mesa 5.0 release notes
|
||||
|
||||
November 13, 2002
|
||||
|
||||
PLEASE READ!!!!
|
||||
|
||||
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
Mesa uses an even/odd version number scheme like the Linux kernel.
|
||||
Even-numbered versions (such as 5.0) designate stable releases.
|
||||
Odd-numbered versions (such as 4.1) designate new developmental releases.
|
||||
|
||||
Mesa 5.0 is basically just a stabilization of Mesa 4.1. To see a list of
|
||||
bug fixes, etc. see the VERSIONS file.
|
||||
|
||||
|
||||
|
||||
New Features in Mesa 5.0
|
||||
------------------------
|
||||
|
||||
Mesa 5.0 supports OpenGL 1.4. Note Mesa's versioning convention:
|
||||
|
||||
OpenGL Version Mesa Version
|
||||
------------------------------
|
||||
1.0 1.x
|
||||
1.1 2.x
|
||||
1.2 3.x
|
||||
1.3 4.x
|
||||
1.4 5.x
|
||||
|
||||
OpenGL 1.4 (and Mesa 5.0) incorporates the following OpenGL extensions as
|
||||
standard features:
|
||||
|
||||
GL_ARB_depth_texture
|
||||
GL_ARB_shadow
|
||||
GL_ARB_texture_env_crossbar
|
||||
GL_ARB_texture_mirror_repeat
|
||||
GL_ARB_window_pos
|
||||
GL_EXT_blend_color
|
||||
GL_EXT_blend_func_separate
|
||||
GL_EXT_blend_logic_op
|
||||
GL_EXT_blend_minmax
|
||||
GL_EXT_blend_subtract
|
||||
GL_EXT_fog_coord
|
||||
GL_EXT_multi_draw_arrays
|
||||
GL_EXT_point_parameters
|
||||
GL_EXT_secondary_color
|
||||
GL_EXT_stencil_wrap
|
||||
GL_SGIS_generate_mipmap
|
||||
|
||||
|
||||
|
||||
Device Driver Status
|
||||
--------------------
|
||||
|
||||
A number of Mesa's software drivers haven't been actively maintained for
|
||||
some time. We rely on volunteers to maintain many of these drivers.
|
||||
Here's the current status of all included drivers:
|
||||
|
||||
|
||||
Driver Status
|
||||
---------------------- ---------------------
|
||||
XMesa (Xlib) implements OpenGL 1.4
|
||||
OSMesa (off-screen) implements OpenGL 1.4
|
||||
FX (3dfx Voodoo1/2) implements OpenGL 1.3
|
||||
SVGA implements OpenGL 1.3
|
||||
Wind River UGL implements OpenGL 1.3
|
||||
Windows/Win32 implements OpenGL 1.4
|
||||
DOS/DJGPP implements OpenGL 1.3
|
||||
GGI implements OpenGL 1.3
|
||||
DOS implements OpenGL 1.4
|
||||
BeOS needs updating (underway)
|
||||
Allegro needs updating
|
||||
D3D needs updating
|
||||
|
||||
Note: supporting OpenGL 1.4 (vs. 1.3 or 1.2) usually only requires that the
|
||||
driver call the _mesa_enable_1_4_extensions() function.
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
$Id: RELNOTES-5.0,v 3.2 2002/11/13 15:33:51 brianp Exp $
|
@@ -1,4 +1,4 @@
|
||||
$Id: VERSIONS,v 1.73.2.41 2002/10/02 17:36:59 brianp Exp $
|
||||
$Id: VERSIONS,v 1.118 2002/11/13 15:33:50 brianp Exp $
|
||||
|
||||
|
||||
Mesa Version History
|
||||
@@ -899,7 +899,7 @@ Mesa Version History
|
||||
- fixed 3DNow! code to not read past end of arrays (Andrew Lewycky)
|
||||
|
||||
|
||||
4.0.1 December 17, 2001
|
||||
4.0.1 December 17, 2001
|
||||
New:
|
||||
- better sub-pixel sample positions for AA triangles (Ray Tice)
|
||||
- slightly faster blending for (GL_ZERO, GL_ONE) and (GL_ONE, GL_ZERO)
|
||||
@@ -1010,3 +1010,73 @@ Mesa Version History
|
||||
Changes:
|
||||
- max texture units reduced to six to accomodate texture rectangles
|
||||
- removed unfinished GL_MESA_sprite_point extension code
|
||||
|
||||
|
||||
4.1 October 29, 2002
|
||||
New:
|
||||
- GL_NV_vertex_program extension
|
||||
- GL_NV_vertex_program1_1 extension
|
||||
- GL_ARB_window_pos extension
|
||||
- GL_ARB_depth_texture extension
|
||||
- GL_ARB_shadow extension
|
||||
- GL_ARB_shadow_ambient extension
|
||||
- GL_EXT_shadow_funcs extension
|
||||
- GL_ARB_point_parameters extension
|
||||
- GL_ARB_texture_env_crossbar
|
||||
- GL_NV_point_sprite extension
|
||||
- GL_NV_texture_rectangle extension
|
||||
- GL_EXT_multi_draw_arrays extension
|
||||
- GL_EXT_stencil_two_side extension
|
||||
- GLX_SGIX_fbconfig and GLX_SGIX_pbuffer extensions
|
||||
- GL_ATI_texture_mirror_once extension (Ian Romanick)
|
||||
- massive overhaul/simplification of software rasterizer module,
|
||||
many contributions from Klaus Niederkrueger
|
||||
- faster software texturing in some cases (i.e. trilinear filtering)
|
||||
- new OSMesaGetProcAddress() function
|
||||
- more blend modes implemented with MMX code (Jose Fonseca)
|
||||
- added glutGetProcAddress() to GLUT
|
||||
- added GLUT_FPS env var to compute frames/second in glutSwapBuffers()
|
||||
- pbinfo and pbdemo PBuffer programs
|
||||
- glxinfo -v prints transprent pixel info (Gerd Sussner)
|
||||
Bug fixes:
|
||||
- better mipmap LOD computation (prevents excessive blurriness)
|
||||
- OSMesaMakeCurrent() didn't recognize buffer size changes
|
||||
- assorted conformance fixes for 16-bit/channel rendering
|
||||
- texcombine alpha subtraction mode was broken
|
||||
- fixed some blend problems when GLchan==GLfloat (Gerk Huisma)
|
||||
- clamp colors to [0,inf] in OSMesa if GLchan==GLfloat (Gerk Huisma)
|
||||
- fixed divide by zero error in NURBS tessellator (Jon Perry)
|
||||
- fixed GL_LINEAR fog bug by adding clamping
|
||||
- fixed FP exceptions found using Alpha CPU
|
||||
- 3dfx/glide driver render-to-window feature was broken
|
||||
- added missing GLX_TRANSPARENT_RGB token to glx.h
|
||||
- fixed error checking related to paletted textures
|
||||
- fixed reference count error in glDeleteTextures (Randy Fayan)
|
||||
Changes:
|
||||
- New spec file and Python code to generate some GL dispatch files
|
||||
- Glide driver defaults to "no" with autoconf/automake
|
||||
- updated demos/stex3d with new options
|
||||
|
||||
|
||||
5.0 November 13, 2002
|
||||
New:
|
||||
- OpenGL 1.4 support (glGetString(GL_VERSION) returns "1.4")
|
||||
- removed some overlooked debugging code
|
||||
- glxinfo updated to support GLX_ARB_multisample
|
||||
- GLUT now support GLX_ARB_multisample
|
||||
- updated DOS driver (Daniel Borca)
|
||||
Bug fixes:
|
||||
- GL_POINT and GL_LINE-mode polygons didn't obey cull state
|
||||
- fixed potential bug in _mesa_align_malloc/calloc()
|
||||
- fixed missing triangle bug when running vertex programs
|
||||
- fixed a few HPUX compilation problems
|
||||
- FX (Glide) driver didn't compile
|
||||
- setting GL_TEXTURE_BORDER_COLOR with glTexParameteriv() didn't work
|
||||
- a few EXT functions, like glGenTexturesEXT, were no-ops
|
||||
- a few OpenGL 1.4 functions like glFogCoord*, glBlendFuncSeparate,
|
||||
glMultiDrawArrays and glMultiDrawElements were missing
|
||||
- glGet*(GL_ACTIVE_STENCIL_FACE_EXT) was broken
|
||||
- Pentium 4 Mobile was mistakenly identified as having 3DNow!
|
||||
- fixed one-bit error in point/line fragment Z calculation
|
||||
- fixed potential segfault in fakeglx code
|
||||
- fixed color overflow problem in DOT3 texture env mode
|
||||
|
90
docs/index.html
Normal file
90
docs/index.html
Normal file
@@ -0,0 +1,90 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Index to Mesa Documentation</TITLE>
|
||||
</HEAD>
|
||||
|
||||
<BODY>
|
||||
|
||||
<H1>Main Documentation</H1>
|
||||
<UL>
|
||||
<LI><A HREF="README">README</A> - general, top-level documentation
|
||||
<LI><A HREF="INSTALL">INSTALL</A> - compilation/installation instructions
|
||||
<LI><A HREF="VERSIONS">VERSIONS</A> - version history / change log
|
||||
<LI><A HREF="COPYRIGHT">COPYRIGHT</A> - copyright and license information
|
||||
<LI><A HREF="COPYING">COPYING</A> - some parts of Mesa are GPL'd
|
||||
<LI><A HREF="CONFORM">CONFORM</A>
|
||||
- results of running the OpenGL conformance tests
|
||||
<LI><A HREF="DEVINFO">DEVINFO</A> - information for Mesa developers
|
||||
<LI><A HREF="http://www.mesa3d.org/">www.mesa3d.org</A> - Mesa website
|
||||
</UL>
|
||||
|
||||
<H1>Platform and Driver Information</H1>
|
||||
<P>
|
||||
Be warned, some of these files may be very out of date.
|
||||
</P>
|
||||
<UL>
|
||||
<LI><A HREF="README.X11">README.X11</A> - X Window System / Unix / Linux
|
||||
<LI><A HREF="README.WIN32">README.WIN32</A> - Microsoft Windows
|
||||
<LI><A HREF="README.VMS">README.VMS</A> - DEC VMS
|
||||
<LI><A HREF="README.GGI">README.GGI</A> - GGI
|
||||
<LI><A HREF="README.3DFX">README.3DFX</A> - 3Dfx/Glide driver
|
||||
<LI><A HREF="README.AMIWIN">README.AMIWIN</A> - Amiga Amiwin
|
||||
<LI><A HREF="README.BEOS">README.BEOS</A> - BeOS
|
||||
<LI><A HREF="README.D3D">README.D3D</A> - Direct3D driver
|
||||
<LI><A HREF="README.DJ">README.DJ</A> - DJGPP
|
||||
<LI><A HREF="README.LYNXOS">README.LYNXOS</A> - LynxOS
|
||||
<LI><A HREF="README.MINGW32">README.MINGW32</A> - Mingw32
|
||||
<LI><A HREF="README.NeXT">README.NeXT</A> - NeXT
|
||||
<LI><A HREF="README.OpenStep">README.OpenStep</A> - OpenStep
|
||||
<LI><A HREF="README.OS2">README.OS2</A> - OS/2
|
||||
<LI><A HREF="README.WINDML">README.WINDML</A> - WindML
|
||||
</UL>
|
||||
|
||||
<H1>Release Notes</H1>
|
||||
<UL>
|
||||
<LI><A HREF="RELNOTES-5.0">RELNOTES-5.0</A>
|
||||
<LI><A HREF="RELNOTES-4.1">RELNOTES-4.1</A>
|
||||
<LI><A HREF="RELNOTES-4.0.3">RELNOTES-4.0.3</A>
|
||||
<LI><A HREF="RELNOTES-4.0.2">RELNOTES-4.0.2</A>
|
||||
<LI><A HREF="RELNOTES-4.0.1">RELNOTES-4.0.1</A>
|
||||
<LI><A HREF="RELNOTES-4.0">RELNOTES-4.0</A>
|
||||
<LI><A HREF="RELNOTES-3.5">RELNOTES-3.5</A>
|
||||
<LI><A HREF="RELNOTES-3.4.2">RELNOTES-3.4.2</A>
|
||||
<LI><A HREF="RELNOTES-3.4.1">RELNOTES-3.4.1</A>
|
||||
<LI><A HREF="RELNOTES-3.4">RELNOTES-3.4</A>
|
||||
<LI><A HREF="RELNOTES-3.3">RELNOTES-3.3</A>
|
||||
<LI><A HREF="RELNOTES-3.2.1">RELNOTES-3.2.1</A>
|
||||
<LI><A HREF="RELNOTES-3.2">RELNOTES-3.2</A>
|
||||
<LI><A HREF="RELNOTES-3.1">RELNOTES-3.1</A>
|
||||
</UL>
|
||||
|
||||
<H1>Mesa Extension Specifications</H1>
|
||||
<UL>
|
||||
<LI><A HREF="MESA_agp_offset.spec">MESA_agp_offset.spec</A>
|
||||
<LI><A HREF="MESA_copy_sub_buffer.spec">MESA_copy_sub_buffer.spec</A>
|
||||
<LI><A HREF="MESA_packed_depth_stencil.spec">MESA_packed_depth_stencil.spec</A>
|
||||
<LI><A HREF="MESA_pack_invert.spec">MESA_pack_invert.spec</A>
|
||||
<LI><A HREF="MESA_pixmap_colormap.spec">MESA_pixmap_colormap.spec</A>
|
||||
<LI><A HREF="MESA_release_buffers.spec">MESA_release_buffers.spec</A>
|
||||
<LI><A HREF="MESA_resize_buffers.spec">MESA_resize_buffers.spec</A>
|
||||
<LI><A HREF="MESA_set_3dfx_mode.spec">MESA_set_3dfx_mode.spec</A>
|
||||
<LI><A HREF="MESA_sprite_point.spec">MESA_sprite_point.spec</A> (obsolete)
|
||||
<LI><A HREF="MESA_trace.spec">MESA_trace.spec</A> (obsolete)
|
||||
<LI><A HREF="MESA_window_pos.spec">MESA_window_pos.spec</A>
|
||||
<LI><A HREF="MESA_ycbcr_texture.spec">MESA_ycbcr_texture.spec</A>
|
||||
</UL>
|
||||
|
||||
<H1>Source Code Documentation</H1>
|
||||
<P>
|
||||
<A HREF="http://www.doxygen.org">Doxygen</A> is used to automatically
|
||||
produce cross-referenced documentation from the Mesa sources.
|
||||
This is not included in the normal Mesa distribution.
|
||||
Download Mesa from CVS if interested.
|
||||
</P>
|
||||
<P>
|
||||
<A HREF="../doxy/core/index.html">Source documentation</A>
|
||||
</P>
|
||||
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
9
doxygen/README
Normal file
9
doxygen/README
Normal file
@@ -0,0 +1,9 @@
|
||||
|
||||
This directory is for doxygen (a source code documentation system).
|
||||
|
||||
See http://www.doxygen.org/ for more info.
|
||||
|
||||
Either run 'make' (Unix) or 'doxy.bat' (Windows) to run doxygen
|
||||
and generate souce code documentation.
|
||||
|
||||
Then, load doxy/core.index.html into your web browser.
|
183
doxygen/array_cache.doxy
Normal file
183
doxygen/array_cache.doxy
Normal file
@@ -0,0 +1,183 @@
|
||||
# Doxyfile 0.1
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# General configuration options
|
||||
#---------------------------------------------------------------------------
|
||||
PROJECT_NAME = "Mesa array_cache"
|
||||
PROJECT_NUMBER = 4.1
|
||||
OUTPUT_DIRECTORY = .
|
||||
OUTPUT_LANGUAGE = English
|
||||
EXTRACT_ALL = YES
|
||||
EXTRACT_PRIVATE = NO
|
||||
EXTRACT_STATIC = NO
|
||||
EXTRACT_LOCAL_CLASSES = YES
|
||||
HIDE_UNDOC_MEMBERS = NO
|
||||
HIDE_UNDOC_CLASSES = NO
|
||||
BRIEF_MEMBER_DESC = YES
|
||||
REPEAT_BRIEF = YES
|
||||
ALWAYS_DETAILED_SEC = NO
|
||||
INLINE_INHERITED_MEMB = NO
|
||||
FULL_PATH_NAMES = NO
|
||||
STRIP_FROM_PATH =
|
||||
INTERNAL_DOCS = NO
|
||||
STRIP_CODE_COMMENTS = YES
|
||||
CASE_SENSE_NAMES = YES
|
||||
SHORT_NAMES = NO
|
||||
HIDE_SCOPE_NAMES = NO
|
||||
VERBATIM_HEADERS = YES
|
||||
SHOW_INCLUDE_FILES = YES
|
||||
JAVADOC_AUTOBRIEF = NO
|
||||
INHERIT_DOCS = YES
|
||||
INLINE_INFO = YES
|
||||
SORT_MEMBER_DOCS = NO
|
||||
DISTRIBUTE_GROUP_DOC = NO
|
||||
TAB_SIZE = 8
|
||||
GENERATE_TODOLIST = YES
|
||||
GENERATE_TESTLIST = YES
|
||||
GENERATE_BUGLIST = YES
|
||||
ALIASES =
|
||||
ENABLED_SECTIONS =
|
||||
MAX_INITIALIZER_LINES = 30
|
||||
OPTIMIZE_OUTPUT_FOR_C = YES
|
||||
SHOW_USED_FILES = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to warning and progress messages
|
||||
#---------------------------------------------------------------------------
|
||||
QUIET = YES
|
||||
WARNINGS = YES
|
||||
WARN_IF_UNDOCUMENTED = YES
|
||||
WARN_FORMAT =
|
||||
WARN_LOGFILE =
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the input files
|
||||
#---------------------------------------------------------------------------
|
||||
INPUT = ../src/array_cache/
|
||||
FILE_PATTERNS = *.c \
|
||||
*.h
|
||||
RECURSIVE = NO
|
||||
EXCLUDE =
|
||||
EXCLUDE_PATTERNS =
|
||||
EXAMPLE_PATH =
|
||||
EXAMPLE_PATTERNS =
|
||||
EXAMPLE_RECURSIVE = NO
|
||||
IMAGE_PATH =
|
||||
INPUT_FILTER =
|
||||
FILTER_SOURCE_FILES = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to source browsing
|
||||
#---------------------------------------------------------------------------
|
||||
SOURCE_BROWSER = NO
|
||||
INLINE_SOURCES = NO
|
||||
REFERENCED_BY_RELATION = YES
|
||||
REFERENCES_RELATION = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the alphabetical class index
|
||||
#---------------------------------------------------------------------------
|
||||
ALPHABETICAL_INDEX = YES
|
||||
COLS_IN_ALPHA_INDEX = 5
|
||||
IGNORE_PREFIX =
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the HTML output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_HTML = YES
|
||||
HTML_OUTPUT = array_cache
|
||||
HTML_HEADER = header.html
|
||||
HTML_FOOTER =
|
||||
HTML_STYLESHEET =
|
||||
HTML_ALIGN_MEMBERS = YES
|
||||
GENERATE_HTMLHELP = NO
|
||||
GENERATE_CHI = NO
|
||||
BINARY_TOC = NO
|
||||
TOC_EXPAND = NO
|
||||
DISABLE_INDEX = NO
|
||||
ENUM_VALUES_PER_LINE = 4
|
||||
GENERATE_TREEVIEW = NO
|
||||
TREEVIEW_WIDTH = 250
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the LaTeX output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_LATEX = NO
|
||||
LATEX_OUTPUT =
|
||||
COMPACT_LATEX = NO
|
||||
PAPER_TYPE = a4wide
|
||||
EXTRA_PACKAGES =
|
||||
LATEX_HEADER =
|
||||
PDF_HYPERLINKS = NO
|
||||
USE_PDFLATEX = NO
|
||||
LATEX_BATCHMODE = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the RTF output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_RTF = NO
|
||||
RTF_OUTPUT =
|
||||
COMPACT_RTF = NO
|
||||
RTF_HYPERLINKS = NO
|
||||
RTF_STYLESHEET_FILE =
|
||||
RTF_EXTENSIONS_FILE =
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the man page output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_MAN = NO
|
||||
MAN_OUTPUT =
|
||||
MAN_EXTENSION =
|
||||
MAN_LINKS = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the XML output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_XML = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options for the AutoGen Definitions output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_AUTOGEN_DEF = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to the preprocessor
|
||||
#---------------------------------------------------------------------------
|
||||
ENABLE_PREPROCESSING = YES
|
||||
MACRO_EXPANSION = NO
|
||||
EXPAND_ONLY_PREDEF = NO
|
||||
SEARCH_INCLUDES = YES
|
||||
INCLUDE_PATH =
|
||||
INCLUDE_FILE_PATTERNS =
|
||||
PREDEFINED =
|
||||
EXPAND_AS_DEFINED =
|
||||
SKIP_FUNCTION_MACROS = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration::addtions related to external references
|
||||
#---------------------------------------------------------------------------
|
||||
TAGFILES = core.tag=../core \
|
||||
tnl.tag=../tnl \
|
||||
swrast_setup.tag=../swrast_setup \
|
||||
swrast.tag=../swrast \
|
||||
math.tag=../math \
|
||||
tnl_dd.tag=../tnl_dd
|
||||
GENERATE_TAGFILE = array_cache.tag
|
||||
ALLEXTERNALS = NO
|
||||
PERL_PATH =
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to the dot tool
|
||||
#---------------------------------------------------------------------------
|
||||
CLASS_DIAGRAMS = YES
|
||||
HAVE_DOT = NO
|
||||
CLASS_GRAPH = YES
|
||||
COLLABORATION_GRAPH = YES
|
||||
TEMPLATE_RELATIONS = YES
|
||||
HIDE_UNDOC_RELATIONS = YES
|
||||
INCLUDE_GRAPH = YES
|
||||
INCLUDED_BY_GRAPH = YES
|
||||
GRAPHICAL_HIERARCHY = YES
|
||||
DOT_PATH =
|
||||
DOTFILE_DIRS =
|
||||
MAX_DOT_GRAPH_WIDTH = 1024
|
||||
MAX_DOT_GRAPH_HEIGHT = 1024
|
||||
GENERATE_LEGEND = YES
|
||||
DOT_CLEANUP = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration::addtions related to the search engine
|
||||
#---------------------------------------------------------------------------
|
||||
SEARCHENGINE = NO
|
||||
CGI_NAME =
|
||||
CGI_URL =
|
||||
DOC_URL =
|
||||
DOC_ABSPATH =
|
||||
BIN_ABSPATH =
|
||||
EXT_DOC_PATHS =
|
183
doxygen/core.doxy
Normal file
183
doxygen/core.doxy
Normal file
@@ -0,0 +1,183 @@
|
||||
# Doxyfile 0.1
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# General configuration options
|
||||
#---------------------------------------------------------------------------
|
||||
PROJECT_NAME = "Mesa Core"
|
||||
PROJECT_NUMBER = 4.1
|
||||
OUTPUT_DIRECTORY =
|
||||
OUTPUT_LANGUAGE = English
|
||||
EXTRACT_ALL = YES
|
||||
EXTRACT_PRIVATE = NO
|
||||
EXTRACT_STATIC = NO
|
||||
EXTRACT_LOCAL_CLASSES = YES
|
||||
HIDE_UNDOC_MEMBERS = NO
|
||||
HIDE_UNDOC_CLASSES = NO
|
||||
BRIEF_MEMBER_DESC = YES
|
||||
REPEAT_BRIEF = YES
|
||||
ALWAYS_DETAILED_SEC = NO
|
||||
INLINE_INHERITED_MEMB = NO
|
||||
FULL_PATH_NAMES = NO
|
||||
STRIP_FROM_PATH =
|
||||
INTERNAL_DOCS = NO
|
||||
STRIP_CODE_COMMENTS = YES
|
||||
CASE_SENSE_NAMES = YES
|
||||
SHORT_NAMES = NO
|
||||
HIDE_SCOPE_NAMES = NO
|
||||
VERBATIM_HEADERS = YES
|
||||
SHOW_INCLUDE_FILES = YES
|
||||
JAVADOC_AUTOBRIEF = NO
|
||||
INHERIT_DOCS = YES
|
||||
INLINE_INFO = YES
|
||||
SORT_MEMBER_DOCS = NO
|
||||
DISTRIBUTE_GROUP_DOC = NO
|
||||
TAB_SIZE = 8
|
||||
GENERATE_TODOLIST = YES
|
||||
GENERATE_TESTLIST = YES
|
||||
GENERATE_BUGLIST = YES
|
||||
ALIASES =
|
||||
ENABLED_SECTIONS =
|
||||
MAX_INITIALIZER_LINES = 30
|
||||
OPTIMIZE_OUTPUT_FOR_C = YES
|
||||
SHOW_USED_FILES = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to warning and progress messages
|
||||
#---------------------------------------------------------------------------
|
||||
QUIET = YES
|
||||
WARNINGS = YES
|
||||
WARN_IF_UNDOCUMENTED = YES
|
||||
WARN_FORMAT =
|
||||
WARN_LOGFILE =
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the input files
|
||||
#---------------------------------------------------------------------------
|
||||
INPUT = ../src/
|
||||
FILE_PATTERNS = *.h *.c
|
||||
RECURSIVE = NO
|
||||
EXCLUDE = ../src/glapitemp.h ../src/glapioffsets.h
|
||||
EXCLUDE_PATTERNS =
|
||||
EXAMPLE_PATH =
|
||||
EXAMPLE_PATTERNS =
|
||||
EXAMPLE_RECURSIVE = NO
|
||||
IMAGE_PATH =
|
||||
INPUT_FILTER =
|
||||
FILTER_SOURCE_FILES = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to source browsing
|
||||
#---------------------------------------------------------------------------
|
||||
SOURCE_BROWSER = NO
|
||||
INLINE_SOURCES = NO
|
||||
REFERENCED_BY_RELATION = YES
|
||||
REFERENCES_RELATION = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the alphabetical class index
|
||||
#---------------------------------------------------------------------------
|
||||
ALPHABETICAL_INDEX = YES
|
||||
COLS_IN_ALPHA_INDEX = 5
|
||||
IGNORE_PREFIX = _
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the HTML output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_HTML = YES
|
||||
HTML_OUTPUT = core
|
||||
HTML_HEADER = header.html
|
||||
HTML_FOOTER =
|
||||
HTML_STYLESHEET =
|
||||
HTML_ALIGN_MEMBERS = YES
|
||||
GENERATE_HTMLHELP = NO
|
||||
GENERATE_CHI = NO
|
||||
BINARY_TOC = NO
|
||||
TOC_EXPAND = NO
|
||||
DISABLE_INDEX = NO
|
||||
ENUM_VALUES_PER_LINE = 4
|
||||
GENERATE_TREEVIEW = NO
|
||||
TREEVIEW_WIDTH = 250
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the LaTeX output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_LATEX = NO
|
||||
LATEX_OUTPUT =
|
||||
COMPACT_LATEX = NO
|
||||
PAPER_TYPE = a4wide
|
||||
EXTRA_PACKAGES =
|
||||
LATEX_HEADER =
|
||||
PDF_HYPERLINKS = NO
|
||||
USE_PDFLATEX = NO
|
||||
LATEX_BATCHMODE = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the RTF output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_RTF = NO
|
||||
RTF_OUTPUT =
|
||||
COMPACT_RTF = NO
|
||||
RTF_HYPERLINKS = NO
|
||||
RTF_STYLESHEET_FILE =
|
||||
RTF_EXTENSIONS_FILE =
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the man page output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_MAN = NO
|
||||
MAN_OUTPUT =
|
||||
MAN_EXTENSION =
|
||||
MAN_LINKS = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the XML output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_XML = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options for the AutoGen Definitions output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_AUTOGEN_DEF = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to the preprocessor
|
||||
#---------------------------------------------------------------------------
|
||||
ENABLE_PREPROCESSING = YES
|
||||
MACRO_EXPANSION = NO
|
||||
EXPAND_ONLY_PREDEF = NO
|
||||
SEARCH_INCLUDES = YES
|
||||
INCLUDE_PATH = ../include/
|
||||
INCLUDE_FILE_PATTERNS =
|
||||
PREDEFINED =
|
||||
EXPAND_AS_DEFINED =
|
||||
SKIP_FUNCTION_MACROS = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration::addtions related to external references
|
||||
#---------------------------------------------------------------------------
|
||||
TAGFILES = tnl_dd.tag=../tnl_dd \
|
||||
array_cache.tag=../array_cache \
|
||||
math.tag=../math \
|
||||
swrast.tag=../swrast \
|
||||
swrast_setup.tag=../swrast_setup \
|
||||
tnl.tag=../tnl \
|
||||
array_cache.tag=array_cache
|
||||
GENERATE_TAGFILE = core.tag
|
||||
ALLEXTERNALS = NO
|
||||
PERL_PATH =
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to the dot tool
|
||||
#---------------------------------------------------------------------------
|
||||
CLASS_DIAGRAMS = NO
|
||||
HAVE_DOT = NO
|
||||
CLASS_GRAPH = YES
|
||||
COLLABORATION_GRAPH = YES
|
||||
TEMPLATE_RELATIONS = YES
|
||||
HIDE_UNDOC_RELATIONS = YES
|
||||
INCLUDE_GRAPH = YES
|
||||
INCLUDED_BY_GRAPH = YES
|
||||
GRAPHICAL_HIERARCHY = YES
|
||||
DOT_PATH =
|
||||
DOTFILE_DIRS =
|
||||
MAX_DOT_GRAPH_WIDTH = 1024
|
||||
MAX_DOT_GRAPH_HEIGHT = 1024
|
||||
GENERATE_LEGEND = YES
|
||||
DOT_CLEANUP = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration::addtions related to the search engine
|
||||
#---------------------------------------------------------------------------
|
||||
SEARCHENGINE = NO
|
||||
CGI_NAME =
|
||||
CGI_URL =
|
||||
DOC_URL =
|
||||
DOC_ABSPATH =
|
||||
BIN_ABSPATH =
|
||||
EXT_DOC_PATHS =
|
14
doxygen/doxy.bat
Normal file
14
doxygen/doxy.bat
Normal file
@@ -0,0 +1,14 @@
|
||||
doxygen tnl_dd.doxy
|
||||
doxygen array_cache.doxy
|
||||
doxygen math.doxy
|
||||
doxygen swrast.doxy
|
||||
doxygen swrast_setup.doxy
|
||||
doxygen tnl.doxy
|
||||
doxygen core.doxy
|
||||
echo Building again, to resolve tags
|
||||
doxygen tnl_dd.doxy
|
||||
doxygen array_cache.doxy
|
||||
doxygen math.doxy
|
||||
doxygen swrast.doxy
|
||||
doxygen swrast_setup.doxy
|
||||
doxygen tnl.doxy
|
12
doxygen/header.html
Normal file
12
doxygen/header.html
Normal file
@@ -0,0 +1,12 @@
|
||||
<html><head><title>Mesa API docs</title>
|
||||
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
||||
</head>
|
||||
<body><center>
|
||||
<a href="../array_cache/index.html">array_cache</a>
|
||||
<a href="../core/index.html">core</a>
|
||||
<a href="../math/index.html">math</a>
|
||||
<a href="../swrast/index.html">swrast</a>
|
||||
<a href="../swrast_setup/index.html">swrast_setup</a>
|
||||
<a href="../tnl/index.html">tnl</a>
|
||||
<a href="../tnl_dd/index.html">tnl_dd</a>
|
||||
</center>
|
21
doxygen/makefile
Normal file
21
doxygen/makefile
Normal file
@@ -0,0 +1,21 @@
|
||||
default:
|
||||
doxygen tnl_dd.doxy
|
||||
doxygen array_cache.doxy
|
||||
doxygen math.doxy
|
||||
doxygen swrast.doxy
|
||||
doxygen swrast_setup.doxy
|
||||
doxygen tnl.doxy
|
||||
doxygen core.doxy
|
||||
echo "Building again, to resolve tags"
|
||||
doxygen tnl_dd.doxy
|
||||
doxygen array_cache.doxy
|
||||
doxygen math.doxy
|
||||
doxygen swrast.doxy
|
||||
doxygen swrast_setup.doxy
|
||||
doxygen tnl.doxy
|
||||
|
||||
|
||||
clean:
|
||||
rm -rf array_cache core math swrast swrast_setup tnl_dd tnl
|
||||
rm -rf *.tag
|
||||
|
183
doxygen/math.doxy
Normal file
183
doxygen/math.doxy
Normal file
@@ -0,0 +1,183 @@
|
||||
# Doxyfile 0.1
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# General configuration options
|
||||
#---------------------------------------------------------------------------
|
||||
PROJECT_NAME = "Mesa math"
|
||||
PROJECT_NUMBER = 4.1
|
||||
OUTPUT_DIRECTORY = .
|
||||
OUTPUT_LANGUAGE = English
|
||||
EXTRACT_ALL = YES
|
||||
EXTRACT_PRIVATE = NO
|
||||
EXTRACT_STATIC = NO
|
||||
EXTRACT_LOCAL_CLASSES = YES
|
||||
HIDE_UNDOC_MEMBERS = NO
|
||||
HIDE_UNDOC_CLASSES = NO
|
||||
BRIEF_MEMBER_DESC = YES
|
||||
REPEAT_BRIEF = YES
|
||||
ALWAYS_DETAILED_SEC = NO
|
||||
INLINE_INHERITED_MEMB = NO
|
||||
FULL_PATH_NAMES = NO
|
||||
STRIP_FROM_PATH =
|
||||
INTERNAL_DOCS = NO
|
||||
STRIP_CODE_COMMENTS = YES
|
||||
CASE_SENSE_NAMES = YES
|
||||
SHORT_NAMES = NO
|
||||
HIDE_SCOPE_NAMES = NO
|
||||
VERBATIM_HEADERS = YES
|
||||
SHOW_INCLUDE_FILES = YES
|
||||
JAVADOC_AUTOBRIEF = NO
|
||||
INHERIT_DOCS = YES
|
||||
INLINE_INFO = YES
|
||||
SORT_MEMBER_DOCS = NO
|
||||
DISTRIBUTE_GROUP_DOC = NO
|
||||
TAB_SIZE = 8
|
||||
GENERATE_TODOLIST = YES
|
||||
GENERATE_TESTLIST = YES
|
||||
GENERATE_BUGLIST = YES
|
||||
ALIASES =
|
||||
ENABLED_SECTIONS =
|
||||
MAX_INITIALIZER_LINES = 30
|
||||
OPTIMIZE_OUTPUT_FOR_C = YES
|
||||
SHOW_USED_FILES = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to warning and progress messages
|
||||
#---------------------------------------------------------------------------
|
||||
QUIET = YES
|
||||
WARNINGS = YES
|
||||
WARN_IF_UNDOCUMENTED = YES
|
||||
WARN_FORMAT =
|
||||
WARN_LOGFILE =
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the input files
|
||||
#---------------------------------------------------------------------------
|
||||
INPUT = ../src/math/
|
||||
FILE_PATTERNS = *.c \
|
||||
*.h
|
||||
RECURSIVE = NO
|
||||
EXCLUDE =
|
||||
EXCLUDE_PATTERNS =
|
||||
EXAMPLE_PATH =
|
||||
EXAMPLE_PATTERNS =
|
||||
EXAMPLE_RECURSIVE = NO
|
||||
IMAGE_PATH =
|
||||
INPUT_FILTER =
|
||||
FILTER_SOURCE_FILES = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to source browsing
|
||||
#---------------------------------------------------------------------------
|
||||
SOURCE_BROWSER = NO
|
||||
INLINE_SOURCES = NO
|
||||
REFERENCED_BY_RELATION = YES
|
||||
REFERENCES_RELATION = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the alphabetical class index
|
||||
#---------------------------------------------------------------------------
|
||||
ALPHABETICAL_INDEX = YES
|
||||
COLS_IN_ALPHA_INDEX = 5
|
||||
IGNORE_PREFIX =
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the HTML output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_HTML = YES
|
||||
HTML_OUTPUT = math
|
||||
HTML_HEADER = header.html
|
||||
HTML_FOOTER =
|
||||
HTML_STYLESHEET =
|
||||
HTML_ALIGN_MEMBERS = YES
|
||||
GENERATE_HTMLHELP = NO
|
||||
GENERATE_CHI = NO
|
||||
BINARY_TOC = NO
|
||||
TOC_EXPAND = NO
|
||||
DISABLE_INDEX = NO
|
||||
ENUM_VALUES_PER_LINE = 4
|
||||
GENERATE_TREEVIEW = NO
|
||||
TREEVIEW_WIDTH = 250
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the LaTeX output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_LATEX = NO
|
||||
LATEX_OUTPUT =
|
||||
COMPACT_LATEX = NO
|
||||
PAPER_TYPE = a4wide
|
||||
EXTRA_PACKAGES =
|
||||
LATEX_HEADER =
|
||||
PDF_HYPERLINKS = NO
|
||||
USE_PDFLATEX = NO
|
||||
LATEX_BATCHMODE = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the RTF output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_RTF = NO
|
||||
RTF_OUTPUT =
|
||||
COMPACT_RTF = NO
|
||||
RTF_HYPERLINKS = NO
|
||||
RTF_STYLESHEET_FILE =
|
||||
RTF_EXTENSIONS_FILE =
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the man page output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_MAN = NO
|
||||
MAN_OUTPUT =
|
||||
MAN_EXTENSION =
|
||||
MAN_LINKS = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the XML output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_XML = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options for the AutoGen Definitions output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_AUTOGEN_DEF = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to the preprocessor
|
||||
#---------------------------------------------------------------------------
|
||||
ENABLE_PREPROCESSING = YES
|
||||
MACRO_EXPANSION = NO
|
||||
EXPAND_ONLY_PREDEF = NO
|
||||
SEARCH_INCLUDES = YES
|
||||
INCLUDE_PATH =
|
||||
INCLUDE_FILE_PATTERNS =
|
||||
PREDEFINED =
|
||||
EXPAND_AS_DEFINED =
|
||||
SKIP_FUNCTION_MACROS = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration::addtions related to external references
|
||||
#---------------------------------------------------------------------------
|
||||
TAGFILES = tnl_dd.tag=../tnl_dd \
|
||||
core.tag=../core \
|
||||
swrast.tag=../swrast \
|
||||
swrast_setup.tag=../swrast_setup \
|
||||
tnl.tag=../tnl \
|
||||
array_cache.tag=../array_cache
|
||||
GENERATE_TAGFILE = math.tag
|
||||
ALLEXTERNALS = NO
|
||||
PERL_PATH =
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to the dot tool
|
||||
#---------------------------------------------------------------------------
|
||||
CLASS_DIAGRAMS = YES
|
||||
HAVE_DOT = NO
|
||||
CLASS_GRAPH = YES
|
||||
COLLABORATION_GRAPH = YES
|
||||
TEMPLATE_RELATIONS = YES
|
||||
HIDE_UNDOC_RELATIONS = YES
|
||||
INCLUDE_GRAPH = YES
|
||||
INCLUDED_BY_GRAPH = YES
|
||||
GRAPHICAL_HIERARCHY = YES
|
||||
DOT_PATH =
|
||||
DOTFILE_DIRS =
|
||||
MAX_DOT_GRAPH_WIDTH = 1024
|
||||
MAX_DOT_GRAPH_HEIGHT = 1024
|
||||
GENERATE_LEGEND = YES
|
||||
DOT_CLEANUP = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration::addtions related to the search engine
|
||||
#---------------------------------------------------------------------------
|
||||
SEARCHENGINE = NO
|
||||
CGI_NAME =
|
||||
CGI_URL =
|
||||
DOC_URL =
|
||||
DOC_ABSPATH =
|
||||
BIN_ABSPATH =
|
||||
EXT_DOC_PATHS =
|
183
doxygen/swrast.doxy
Normal file
183
doxygen/swrast.doxy
Normal file
@@ -0,0 +1,183 @@
|
||||
# Doxyfile 0.1
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# General configuration options
|
||||
#---------------------------------------------------------------------------
|
||||
PROJECT_NAME = "Mesa swrast"
|
||||
PROJECT_NUMBER = 4.1
|
||||
OUTPUT_DIRECTORY =
|
||||
OUTPUT_LANGUAGE = English
|
||||
EXTRACT_ALL = NO
|
||||
EXTRACT_PRIVATE = NO
|
||||
EXTRACT_STATIC = NO
|
||||
EXTRACT_LOCAL_CLASSES = YES
|
||||
HIDE_UNDOC_MEMBERS = NO
|
||||
HIDE_UNDOC_CLASSES = NO
|
||||
BRIEF_MEMBER_DESC = YES
|
||||
REPEAT_BRIEF = YES
|
||||
ALWAYS_DETAILED_SEC = NO
|
||||
INLINE_INHERITED_MEMB = NO
|
||||
FULL_PATH_NAMES = NO
|
||||
STRIP_FROM_PATH =
|
||||
INTERNAL_DOCS = NO
|
||||
STRIP_CODE_COMMENTS = YES
|
||||
CASE_SENSE_NAMES = YES
|
||||
SHORT_NAMES = NO
|
||||
HIDE_SCOPE_NAMES = NO
|
||||
VERBATIM_HEADERS = YES
|
||||
SHOW_INCLUDE_FILES = YES
|
||||
JAVADOC_AUTOBRIEF = NO
|
||||
INHERIT_DOCS = YES
|
||||
INLINE_INFO = YES
|
||||
SORT_MEMBER_DOCS = NO
|
||||
DISTRIBUTE_GROUP_DOC = NO
|
||||
TAB_SIZE = 8
|
||||
GENERATE_TODOLIST = YES
|
||||
GENERATE_TESTLIST = YES
|
||||
GENERATE_BUGLIST = YES
|
||||
ALIASES =
|
||||
ENABLED_SECTIONS =
|
||||
MAX_INITIALIZER_LINES = 30
|
||||
OPTIMIZE_OUTPUT_FOR_C = NO
|
||||
SHOW_USED_FILES = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to warning and progress messages
|
||||
#---------------------------------------------------------------------------
|
||||
QUIET = YES
|
||||
WARNINGS = YES
|
||||
WARN_IF_UNDOCUMENTED = YES
|
||||
WARN_FORMAT =
|
||||
WARN_LOGFILE =
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the input files
|
||||
#---------------------------------------------------------------------------
|
||||
INPUT = ../src/swrast/
|
||||
FILE_PATTERNS = *.c \
|
||||
*.h
|
||||
RECURSIVE = NO
|
||||
EXCLUDE =
|
||||
EXCLUDE_PATTERNS =
|
||||
EXAMPLE_PATH =
|
||||
EXAMPLE_PATTERNS =
|
||||
EXAMPLE_RECURSIVE = NO
|
||||
IMAGE_PATH =
|
||||
INPUT_FILTER =
|
||||
FILTER_SOURCE_FILES = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to source browsing
|
||||
#---------------------------------------------------------------------------
|
||||
SOURCE_BROWSER = NO
|
||||
INLINE_SOURCES = NO
|
||||
REFERENCED_BY_RELATION = YES
|
||||
REFERENCES_RELATION = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the alphabetical class index
|
||||
#---------------------------------------------------------------------------
|
||||
ALPHABETICAL_INDEX = YES
|
||||
COLS_IN_ALPHA_INDEX = 5
|
||||
IGNORE_PREFIX =
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the HTML output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_HTML = YES
|
||||
HTML_OUTPUT = swrast
|
||||
HTML_HEADER = header.html
|
||||
HTML_FOOTER =
|
||||
HTML_STYLESHEET =
|
||||
HTML_ALIGN_MEMBERS = YES
|
||||
GENERATE_HTMLHELP = NO
|
||||
GENERATE_CHI = NO
|
||||
BINARY_TOC = NO
|
||||
TOC_EXPAND = NO
|
||||
DISABLE_INDEX = NO
|
||||
ENUM_VALUES_PER_LINE = 4
|
||||
GENERATE_TREEVIEW = NO
|
||||
TREEVIEW_WIDTH = 250
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the LaTeX output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_LATEX = NO
|
||||
LATEX_OUTPUT =
|
||||
COMPACT_LATEX = NO
|
||||
PAPER_TYPE = a4wide
|
||||
EXTRA_PACKAGES =
|
||||
LATEX_HEADER =
|
||||
PDF_HYPERLINKS = NO
|
||||
USE_PDFLATEX = NO
|
||||
LATEX_BATCHMODE = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the RTF output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_RTF = NO
|
||||
RTF_OUTPUT =
|
||||
COMPACT_RTF = NO
|
||||
RTF_HYPERLINKS = NO
|
||||
RTF_STYLESHEET_FILE =
|
||||
RTF_EXTENSIONS_FILE =
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the man page output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_MAN = NO
|
||||
MAN_OUTPUT =
|
||||
MAN_EXTENSION =
|
||||
MAN_LINKS = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the XML output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_XML = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options for the AutoGen Definitions output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_AUTOGEN_DEF = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to the preprocessor
|
||||
#---------------------------------------------------------------------------
|
||||
ENABLE_PREPROCESSING = YES
|
||||
MACRO_EXPANSION = NO
|
||||
EXPAND_ONLY_PREDEF = NO
|
||||
SEARCH_INCLUDES = YES
|
||||
INCLUDE_PATH =
|
||||
INCLUDE_FILE_PATTERNS =
|
||||
PREDEFINED =
|
||||
EXPAND_AS_DEFINED =
|
||||
SKIP_FUNCTION_MACROS = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration::addtions related to external references
|
||||
#---------------------------------------------------------------------------
|
||||
TAGFILES = core.tag=../core \
|
||||
math.tag=../math \
|
||||
tnl_dd.tag=../tnl_dd \
|
||||
swrast_setup.tag=../swrast_setup \
|
||||
tnl.tag=../tnl \
|
||||
array_cache.tag=array_cache
|
||||
GENERATE_TAGFILE = swrast.tag
|
||||
ALLEXTERNALS = NO
|
||||
PERL_PATH =
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to the dot tool
|
||||
#---------------------------------------------------------------------------
|
||||
CLASS_DIAGRAMS = YES
|
||||
HAVE_DOT = NO
|
||||
CLASS_GRAPH = YES
|
||||
COLLABORATION_GRAPH = YES
|
||||
TEMPLATE_RELATIONS = YES
|
||||
HIDE_UNDOC_RELATIONS = YES
|
||||
INCLUDE_GRAPH = YES
|
||||
INCLUDED_BY_GRAPH = YES
|
||||
GRAPHICAL_HIERARCHY = YES
|
||||
DOT_PATH =
|
||||
DOTFILE_DIRS =
|
||||
MAX_DOT_GRAPH_WIDTH = 1024
|
||||
MAX_DOT_GRAPH_HEIGHT = 1024
|
||||
GENERATE_LEGEND = YES
|
||||
DOT_CLEANUP = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration::addtions related to the search engine
|
||||
#---------------------------------------------------------------------------
|
||||
SEARCHENGINE = NO
|
||||
CGI_NAME =
|
||||
CGI_URL =
|
||||
DOC_URL =
|
||||
DOC_ABSPATH =
|
||||
BIN_ABSPATH =
|
||||
EXT_DOC_PATHS =
|
183
doxygen/swrast_setup.doxy
Normal file
183
doxygen/swrast_setup.doxy
Normal file
@@ -0,0 +1,183 @@
|
||||
# Doxyfile 0.1
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# General configuration options
|
||||
#---------------------------------------------------------------------------
|
||||
PROJECT_NAME = "Mesa swrast_setup"
|
||||
PROJECT_NUMBER = 4.1
|
||||
OUTPUT_DIRECTORY =
|
||||
OUTPUT_LANGUAGE = English
|
||||
EXTRACT_ALL = YES
|
||||
EXTRACT_PRIVATE = NO
|
||||
EXTRACT_STATIC = NO
|
||||
EXTRACT_LOCAL_CLASSES = YES
|
||||
HIDE_UNDOC_MEMBERS = NO
|
||||
HIDE_UNDOC_CLASSES = NO
|
||||
BRIEF_MEMBER_DESC = YES
|
||||
REPEAT_BRIEF = YES
|
||||
ALWAYS_DETAILED_SEC = NO
|
||||
INLINE_INHERITED_MEMB = NO
|
||||
FULL_PATH_NAMES = NO
|
||||
STRIP_FROM_PATH =
|
||||
INTERNAL_DOCS = NO
|
||||
STRIP_CODE_COMMENTS = YES
|
||||
CASE_SENSE_NAMES = YES
|
||||
SHORT_NAMES = NO
|
||||
HIDE_SCOPE_NAMES = NO
|
||||
VERBATIM_HEADERS = YES
|
||||
SHOW_INCLUDE_FILES = YES
|
||||
JAVADOC_AUTOBRIEF = NO
|
||||
INHERIT_DOCS = YES
|
||||
INLINE_INFO = YES
|
||||
SORT_MEMBER_DOCS = NO
|
||||
DISTRIBUTE_GROUP_DOC = NO
|
||||
TAB_SIZE = 8
|
||||
GENERATE_TODOLIST = YES
|
||||
GENERATE_TESTLIST = YES
|
||||
GENERATE_BUGLIST = YES
|
||||
ALIASES =
|
||||
ENABLED_SECTIONS =
|
||||
MAX_INITIALIZER_LINES = 30
|
||||
OPTIMIZE_OUTPUT_FOR_C = YES
|
||||
SHOW_USED_FILES = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to warning and progress messages
|
||||
#---------------------------------------------------------------------------
|
||||
QUIET = YES
|
||||
WARNINGS = YES
|
||||
WARN_IF_UNDOCUMENTED = YES
|
||||
WARN_FORMAT =
|
||||
WARN_LOGFILE =
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the input files
|
||||
#---------------------------------------------------------------------------
|
||||
INPUT = ../src/swrast_setup/
|
||||
FILE_PATTERNS = *.c \
|
||||
*.h
|
||||
RECURSIVE = NO
|
||||
EXCLUDE =
|
||||
EXCLUDE_PATTERNS =
|
||||
EXAMPLE_PATH =
|
||||
EXAMPLE_PATTERNS =
|
||||
EXAMPLE_RECURSIVE = NO
|
||||
IMAGE_PATH =
|
||||
INPUT_FILTER =
|
||||
FILTER_SOURCE_FILES = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to source browsing
|
||||
#---------------------------------------------------------------------------
|
||||
SOURCE_BROWSER = NO
|
||||
INLINE_SOURCES = NO
|
||||
REFERENCED_BY_RELATION = YES
|
||||
REFERENCES_RELATION = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the alphabetical class index
|
||||
#---------------------------------------------------------------------------
|
||||
ALPHABETICAL_INDEX = YES
|
||||
COLS_IN_ALPHA_INDEX = 5
|
||||
IGNORE_PREFIX =
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the HTML output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_HTML = YES
|
||||
HTML_OUTPUT = swrast_setup
|
||||
HTML_HEADER = header.html
|
||||
HTML_FOOTER =
|
||||
HTML_STYLESHEET =
|
||||
HTML_ALIGN_MEMBERS = YES
|
||||
GENERATE_HTMLHELP = NO
|
||||
GENERATE_CHI = NO
|
||||
BINARY_TOC = NO
|
||||
TOC_EXPAND = NO
|
||||
DISABLE_INDEX = NO
|
||||
ENUM_VALUES_PER_LINE = 4
|
||||
GENERATE_TREEVIEW = NO
|
||||
TREEVIEW_WIDTH = 250
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the LaTeX output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_LATEX = NO
|
||||
LATEX_OUTPUT =
|
||||
COMPACT_LATEX = NO
|
||||
PAPER_TYPE = a4wide
|
||||
EXTRA_PACKAGES =
|
||||
LATEX_HEADER =
|
||||
PDF_HYPERLINKS = NO
|
||||
USE_PDFLATEX = NO
|
||||
LATEX_BATCHMODE = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the RTF output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_RTF = NO
|
||||
RTF_OUTPUT =
|
||||
COMPACT_RTF = NO
|
||||
RTF_HYPERLINKS = NO
|
||||
RTF_STYLESHEET_FILE =
|
||||
RTF_EXTENSIONS_FILE =
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the man page output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_MAN = NO
|
||||
MAN_OUTPUT =
|
||||
MAN_EXTENSION =
|
||||
MAN_LINKS = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the XML output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_XML = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options for the AutoGen Definitions output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_AUTOGEN_DEF = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to the preprocessor
|
||||
#---------------------------------------------------------------------------
|
||||
ENABLE_PREPROCESSING = YES
|
||||
MACRO_EXPANSION = NO
|
||||
EXPAND_ONLY_PREDEF = NO
|
||||
SEARCH_INCLUDES = YES
|
||||
INCLUDE_PATH =
|
||||
INCLUDE_FILE_PATTERNS =
|
||||
PREDEFINED =
|
||||
EXPAND_AS_DEFINED =
|
||||
SKIP_FUNCTION_MACROS = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration::addtions related to external references
|
||||
#---------------------------------------------------------------------------
|
||||
TAGFILES = tnl_dd.tag=../tnl_dd \
|
||||
core.tag=../core \
|
||||
math.tag=../math \
|
||||
swrast.tag=../swrast \
|
||||
tnl.tag=../tnl \
|
||||
array_cache.tag=../array_cache
|
||||
GENERATE_TAGFILE = swrast_setup.tag
|
||||
ALLEXTERNALS = YES
|
||||
PERL_PATH =
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to the dot tool
|
||||
#---------------------------------------------------------------------------
|
||||
CLASS_DIAGRAMS = YES
|
||||
HAVE_DOT = NO
|
||||
CLASS_GRAPH = YES
|
||||
COLLABORATION_GRAPH = YES
|
||||
TEMPLATE_RELATIONS = YES
|
||||
HIDE_UNDOC_RELATIONS = YES
|
||||
INCLUDE_GRAPH = YES
|
||||
INCLUDED_BY_GRAPH = YES
|
||||
GRAPHICAL_HIERARCHY = YES
|
||||
DOT_PATH =
|
||||
DOTFILE_DIRS =
|
||||
MAX_DOT_GRAPH_WIDTH = 1024
|
||||
MAX_DOT_GRAPH_HEIGHT = 1024
|
||||
GENERATE_LEGEND = YES
|
||||
DOT_CLEANUP = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration::addtions related to the search engine
|
||||
#---------------------------------------------------------------------------
|
||||
SEARCHENGINE = NO
|
||||
CGI_NAME =
|
||||
CGI_URL =
|
||||
DOC_URL =
|
||||
DOC_ABSPATH =
|
||||
BIN_ABSPATH =
|
||||
EXT_DOC_PATHS =
|
183
doxygen/tnl.doxy
Normal file
183
doxygen/tnl.doxy
Normal file
@@ -0,0 +1,183 @@
|
||||
# Doxyfile 0.1
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# General configuration options
|
||||
#---------------------------------------------------------------------------
|
||||
PROJECT_NAME = "Mesa tnl"
|
||||
PROJECT_NUMBER = 4.1
|
||||
OUTPUT_DIRECTORY =
|
||||
OUTPUT_LANGUAGE = English
|
||||
EXTRACT_ALL = YES
|
||||
EXTRACT_PRIVATE = NO
|
||||
EXTRACT_STATIC = NO
|
||||
EXTRACT_LOCAL_CLASSES = YES
|
||||
HIDE_UNDOC_MEMBERS = NO
|
||||
HIDE_UNDOC_CLASSES = NO
|
||||
BRIEF_MEMBER_DESC = YES
|
||||
REPEAT_BRIEF = YES
|
||||
ALWAYS_DETAILED_SEC = NO
|
||||
INLINE_INHERITED_MEMB = NO
|
||||
FULL_PATH_NAMES = NO
|
||||
STRIP_FROM_PATH =
|
||||
INTERNAL_DOCS = NO
|
||||
STRIP_CODE_COMMENTS = YES
|
||||
CASE_SENSE_NAMES = YES
|
||||
SHORT_NAMES = NO
|
||||
HIDE_SCOPE_NAMES = NO
|
||||
VERBATIM_HEADERS = YES
|
||||
SHOW_INCLUDE_FILES = YES
|
||||
JAVADOC_AUTOBRIEF = NO
|
||||
INHERIT_DOCS = YES
|
||||
INLINE_INFO = YES
|
||||
SORT_MEMBER_DOCS = NO
|
||||
DISTRIBUTE_GROUP_DOC = NO
|
||||
TAB_SIZE = 8
|
||||
GENERATE_TODOLIST = YES
|
||||
GENERATE_TESTLIST = YES
|
||||
GENERATE_BUGLIST = YES
|
||||
ALIASES =
|
||||
ENABLED_SECTIONS =
|
||||
MAX_INITIALIZER_LINES = 30
|
||||
OPTIMIZE_OUTPUT_FOR_C = YES
|
||||
SHOW_USED_FILES = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to warning and progress messages
|
||||
#---------------------------------------------------------------------------
|
||||
QUIET = YES
|
||||
WARNINGS = YES
|
||||
WARN_IF_UNDOCUMENTED = YES
|
||||
WARN_FORMAT =
|
||||
WARN_LOGFILE =
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the input files
|
||||
#---------------------------------------------------------------------------
|
||||
INPUT = ../src/tnl/
|
||||
FILE_PATTERNS = *.c \
|
||||
*.h
|
||||
RECURSIVE = NO
|
||||
EXCLUDE =
|
||||
EXCLUDE_PATTERNS =
|
||||
EXAMPLE_PATH =
|
||||
EXAMPLE_PATTERNS =
|
||||
EXAMPLE_RECURSIVE = NO
|
||||
IMAGE_PATH =
|
||||
INPUT_FILTER =
|
||||
FILTER_SOURCE_FILES = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to source browsing
|
||||
#---------------------------------------------------------------------------
|
||||
SOURCE_BROWSER = NO
|
||||
INLINE_SOURCES = NO
|
||||
REFERENCED_BY_RELATION = YES
|
||||
REFERENCES_RELATION = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the alphabetical class index
|
||||
#---------------------------------------------------------------------------
|
||||
ALPHABETICAL_INDEX = YES
|
||||
COLS_IN_ALPHA_INDEX = 5
|
||||
IGNORE_PREFIX =
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the HTML output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_HTML = YES
|
||||
HTML_OUTPUT = tnl
|
||||
HTML_HEADER = header.html
|
||||
HTML_FOOTER =
|
||||
HTML_STYLESHEET =
|
||||
HTML_ALIGN_MEMBERS = YES
|
||||
GENERATE_HTMLHELP = NO
|
||||
GENERATE_CHI = NO
|
||||
BINARY_TOC = NO
|
||||
TOC_EXPAND = NO
|
||||
DISABLE_INDEX = NO
|
||||
ENUM_VALUES_PER_LINE = 4
|
||||
GENERATE_TREEVIEW = NO
|
||||
TREEVIEW_WIDTH = 250
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the LaTeX output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_LATEX = NO
|
||||
LATEX_OUTPUT =
|
||||
COMPACT_LATEX = NO
|
||||
PAPER_TYPE = a4wide
|
||||
EXTRA_PACKAGES =
|
||||
LATEX_HEADER =
|
||||
PDF_HYPERLINKS = NO
|
||||
USE_PDFLATEX = NO
|
||||
LATEX_BATCHMODE = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the RTF output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_RTF = NO
|
||||
RTF_OUTPUT =
|
||||
COMPACT_RTF = NO
|
||||
RTF_HYPERLINKS = NO
|
||||
RTF_STYLESHEET_FILE =
|
||||
RTF_EXTENSIONS_FILE =
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the man page output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_MAN = NO
|
||||
MAN_OUTPUT =
|
||||
MAN_EXTENSION =
|
||||
MAN_LINKS = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the XML output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_XML = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options for the AutoGen Definitions output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_AUTOGEN_DEF = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to the preprocessor
|
||||
#---------------------------------------------------------------------------
|
||||
ENABLE_PREPROCESSING = YES
|
||||
MACRO_EXPANSION = NO
|
||||
EXPAND_ONLY_PREDEF = NO
|
||||
SEARCH_INCLUDES = YES
|
||||
INCLUDE_PATH =
|
||||
INCLUDE_FILE_PATTERNS =
|
||||
PREDEFINED =
|
||||
EXPAND_AS_DEFINED =
|
||||
SKIP_FUNCTION_MACROS = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration::addtions related to external references
|
||||
#---------------------------------------------------------------------------
|
||||
TAGFILES = tnl_dd.tag=../tnl \
|
||||
core.tag=../core \
|
||||
math.tag=../math \
|
||||
swrast.tag=../swrast \
|
||||
swrast_setup.tag=swrast_setup \
|
||||
array_cache.tag=array_cache
|
||||
GENERATE_TAGFILE = tnl.tag
|
||||
ALLEXTERNALS = YES
|
||||
PERL_PATH =
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to the dot tool
|
||||
#---------------------------------------------------------------------------
|
||||
CLASS_DIAGRAMS = YES
|
||||
HAVE_DOT = NO
|
||||
CLASS_GRAPH = YES
|
||||
COLLABORATION_GRAPH = YES
|
||||
TEMPLATE_RELATIONS = YES
|
||||
HIDE_UNDOC_RELATIONS = YES
|
||||
INCLUDE_GRAPH = YES
|
||||
INCLUDED_BY_GRAPH = YES
|
||||
GRAPHICAL_HIERARCHY = YES
|
||||
DOT_PATH =
|
||||
DOTFILE_DIRS =
|
||||
MAX_DOT_GRAPH_WIDTH = 1024
|
||||
MAX_DOT_GRAPH_HEIGHT = 1024
|
||||
GENERATE_LEGEND = YES
|
||||
DOT_CLEANUP = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration::addtions related to the search engine
|
||||
#---------------------------------------------------------------------------
|
||||
SEARCHENGINE = NO
|
||||
CGI_NAME =
|
||||
CGI_URL =
|
||||
DOC_URL =
|
||||
DOC_ABSPATH =
|
||||
BIN_ABSPATH =
|
||||
EXT_DOC_PATHS =
|
182
doxygen/tnl_dd.doxy
Normal file
182
doxygen/tnl_dd.doxy
Normal file
@@ -0,0 +1,182 @@
|
||||
# Doxyfile 0.1
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# General configuration options
|
||||
#---------------------------------------------------------------------------
|
||||
PROJECT_NAME = "Mesa tnl_dd"
|
||||
PROJECT_NUMBER = 4.1
|
||||
OUTPUT_DIRECTORY =
|
||||
OUTPUT_LANGUAGE = English
|
||||
EXTRACT_ALL = YES
|
||||
EXTRACT_PRIVATE = NO
|
||||
EXTRACT_STATIC = NO
|
||||
EXTRACT_LOCAL_CLASSES = YES
|
||||
HIDE_UNDOC_MEMBERS = NO
|
||||
HIDE_UNDOC_CLASSES = NO
|
||||
BRIEF_MEMBER_DESC = YES
|
||||
REPEAT_BRIEF = YES
|
||||
ALWAYS_DETAILED_SEC = NO
|
||||
INLINE_INHERITED_MEMB = NO
|
||||
FULL_PATH_NAMES = NO
|
||||
STRIP_FROM_PATH =
|
||||
INTERNAL_DOCS = NO
|
||||
STRIP_CODE_COMMENTS = YES
|
||||
CASE_SENSE_NAMES = YES
|
||||
SHORT_NAMES = NO
|
||||
HIDE_SCOPE_NAMES = NO
|
||||
VERBATIM_HEADERS = YES
|
||||
SHOW_INCLUDE_FILES = YES
|
||||
JAVADOC_AUTOBRIEF = NO
|
||||
INHERIT_DOCS = YES
|
||||
INLINE_INFO = NO
|
||||
SORT_MEMBER_DOCS = NO
|
||||
DISTRIBUTE_GROUP_DOC = NO
|
||||
TAB_SIZE = 8
|
||||
GENERATE_TODOLIST = YES
|
||||
GENERATE_TESTLIST = YES
|
||||
GENERATE_BUGLIST = YES
|
||||
ALIASES =
|
||||
ENABLED_SECTIONS =
|
||||
MAX_INITIALIZER_LINES = 30
|
||||
OPTIMIZE_OUTPUT_FOR_C = YES
|
||||
SHOW_USED_FILES = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to warning and progress messages
|
||||
#---------------------------------------------------------------------------
|
||||
QUIET = YES
|
||||
WARNINGS = YES
|
||||
WARN_IF_UNDOCUMENTED = YES
|
||||
WARN_FORMAT =
|
||||
WARN_LOGFILE =
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the input files
|
||||
#---------------------------------------------------------------------------
|
||||
INPUT = ../src/tnl_dd/
|
||||
FILE_PATTERNS = *.h
|
||||
RECURSIVE = YES
|
||||
EXCLUDE =
|
||||
EXCLUDE_PATTERNS =
|
||||
EXAMPLE_PATH =
|
||||
EXAMPLE_PATTERNS =
|
||||
EXAMPLE_RECURSIVE = NO
|
||||
IMAGE_PATH =
|
||||
INPUT_FILTER =
|
||||
FILTER_SOURCE_FILES = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to source browsing
|
||||
#---------------------------------------------------------------------------
|
||||
SOURCE_BROWSER = NO
|
||||
INLINE_SOURCES = NO
|
||||
REFERENCED_BY_RELATION = YES
|
||||
REFERENCES_RELATION = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the alphabetical class index
|
||||
#---------------------------------------------------------------------------
|
||||
ALPHABETICAL_INDEX = YES
|
||||
COLS_IN_ALPHA_INDEX = 5
|
||||
IGNORE_PREFIX =
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the HTML output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_HTML = YES
|
||||
HTML_OUTPUT = tnl_dd
|
||||
HTML_HEADER = header.html
|
||||
HTML_FOOTER =
|
||||
HTML_STYLESHEET =
|
||||
HTML_ALIGN_MEMBERS = YES
|
||||
GENERATE_HTMLHELP = NO
|
||||
GENERATE_CHI = NO
|
||||
BINARY_TOC = NO
|
||||
TOC_EXPAND = NO
|
||||
DISABLE_INDEX = NO
|
||||
ENUM_VALUES_PER_LINE = 4
|
||||
GENERATE_TREEVIEW = NO
|
||||
TREEVIEW_WIDTH = 250
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the LaTeX output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_LATEX = NO
|
||||
LATEX_OUTPUT =
|
||||
COMPACT_LATEX = NO
|
||||
PAPER_TYPE = a4wide
|
||||
EXTRA_PACKAGES =
|
||||
LATEX_HEADER =
|
||||
PDF_HYPERLINKS = NO
|
||||
USE_PDFLATEX = NO
|
||||
LATEX_BATCHMODE = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the RTF output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_RTF = NO
|
||||
RTF_OUTPUT =
|
||||
COMPACT_RTF = NO
|
||||
RTF_HYPERLINKS = NO
|
||||
RTF_STYLESHEET_FILE =
|
||||
RTF_EXTENSIONS_FILE =
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the man page output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_MAN = NO
|
||||
MAN_OUTPUT =
|
||||
MAN_EXTENSION =
|
||||
MAN_LINKS = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the XML output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_XML = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options for the AutoGen Definitions output
|
||||
#---------------------------------------------------------------------------
|
||||
GENERATE_AUTOGEN_DEF = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to the preprocessor
|
||||
#---------------------------------------------------------------------------
|
||||
ENABLE_PREPROCESSING = YES
|
||||
MACRO_EXPANSION = NO
|
||||
EXPAND_ONLY_PREDEF = NO
|
||||
SEARCH_INCLUDES = YES
|
||||
INCLUDE_PATH =
|
||||
INCLUDE_FILE_PATTERNS =
|
||||
PREDEFINED =
|
||||
EXPAND_AS_DEFINED =
|
||||
SKIP_FUNCTION_MACROS = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration::addtions related to external references
|
||||
#---------------------------------------------------------------------------
|
||||
TAGFILES = core.tag=../core \
|
||||
math.tag=../math \
|
||||
swrast.tag=../swrast \
|
||||
swrast_setup.tag=../swrast_setup \
|
||||
tnl.tag=../tnl \
|
||||
array_cache.tag=array_cache
|
||||
GENERATE_TAGFILE = tnl_dd.tag
|
||||
ALLEXTERNALS = NO
|
||||
PERL_PATH =
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to the dot tool
|
||||
#---------------------------------------------------------------------------
|
||||
CLASS_DIAGRAMS = YES
|
||||
HAVE_DOT = NO
|
||||
CLASS_GRAPH = YES
|
||||
COLLABORATION_GRAPH = YES
|
||||
TEMPLATE_RELATIONS = YES
|
||||
HIDE_UNDOC_RELATIONS = YES
|
||||
INCLUDE_GRAPH = YES
|
||||
INCLUDED_BY_GRAPH = YES
|
||||
GRAPHICAL_HIERARCHY = YES
|
||||
DOT_PATH =
|
||||
DOTFILE_DIRS =
|
||||
MAX_DOT_GRAPH_WIDTH = 1024
|
||||
MAX_DOT_GRAPH_HEIGHT = 1024
|
||||
GENERATE_LEGEND = YES
|
||||
DOT_CLEANUP = YES
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration::addtions related to the search engine
|
||||
#---------------------------------------------------------------------------
|
||||
SEARCHENGINE = NO
|
||||
CGI_NAME =
|
||||
CGI_URL =
|
||||
DOC_URL =
|
||||
DOC_ABSPATH =
|
||||
BIN_ABSPATH =
|
||||
EXT_DOC_PATHS =
|
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
* Version: 4.0
|
||||
* Version: 5.0
|
||||
*
|
||||
* Copyright (C) 1999 Brian Paul All Rights Reserved.
|
||||
* Copyright (C) 1999-2002 Brian Paul All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
@@ -23,7 +23,7 @@
|
||||
*/
|
||||
|
||||
/*
|
||||
* DOS/DJGPP device driver v1.0 for Mesa 4.0
|
||||
* DOS/DJGPP device driver v1.2 for Mesa 4.1
|
||||
*
|
||||
* Copyright (C) 2002 - Borca Daniel
|
||||
* Email : dborca@yahoo.com
|
||||
@@ -31,10 +31,10 @@
|
||||
*/
|
||||
|
||||
|
||||
#ifndef DMESA_included
|
||||
#define DMESA_included
|
||||
#ifndef DMESA_H_included
|
||||
#define DMESA_H_included
|
||||
|
||||
#define DMESA_MAJOR_VERSION 4
|
||||
#define DMESA_MAJOR_VERSION 5
|
||||
#define DMESA_MINOR_VERSION 0
|
||||
|
||||
typedef struct dmesa_context *DMesaContext;
|
||||
@@ -45,8 +45,10 @@ typedef struct dmesa_buffer *DMesaBuffer;
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
DMesaVisual DMesaCreateVisual (GLint width, GLint height, GLint colDepth,
|
||||
GLboolean dbFlag, GLint depthSize,
|
||||
DMesaVisual DMesaCreateVisual (GLint width, GLint height,
|
||||
GLint colDepth,
|
||||
GLboolean dbFlag,
|
||||
GLint depthSize,
|
||||
GLint stencilSize,
|
||||
GLint accumSize);
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* $Id: ggimesa.h,v 1.3.6.1 2002/06/10 15:16:16 brianp Exp $ */
|
||||
/* $Id: ggimesa.h,v 1.4 2002/06/10 15:16:44 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* Mesa 3-D graphics library GGI bindings (GGIGL [giggle])
|
||||
|
709
include/GL/gl.h
709
include/GL/gl.h
@@ -1,8 +1,8 @@
|
||||
/* $Id: gl.h,v 1.59.2.11 2002/09/21 17:12:10 brianp Exp $ */
|
||||
/* $Id: gl.h,v 1.72 2002/10/17 19:39:31 kschultz Exp $ */
|
||||
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
* Version: 4.0.4
|
||||
* Version: 4.1
|
||||
*
|
||||
* Copyright (C) 1999-2002 Brian Paul All Rights Reserved.
|
||||
*
|
||||
@@ -67,6 +67,19 @@
|
||||
# define PRAGMA_EXPORT_SUPPORTED 1
|
||||
#endif
|
||||
|
||||
/*
|
||||
* WINDOWS: Include windows.h here to define APIENTRY.
|
||||
* It is also useful when applications include this file by
|
||||
* including only glut.h, since glut.h depends on windows.h.
|
||||
* Applications needing to include windows.h with parms other
|
||||
* than "WIN32_LEAN_AND_MEAN" may include windows.h before
|
||||
* glut.h or gl.h.
|
||||
*/
|
||||
#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__)
|
||||
#define WIN32_LEAN_AND_MEAN 1
|
||||
#include <windows.h>
|
||||
#endif
|
||||
|
||||
#if defined(_WIN32) && !defined(_WINGDI_) && !defined(_GNU_H_WINDOWS32_DEFINES) && !defined(OPENSTEP) && !defined(__CYGWIN__)
|
||||
#include <gl/mesa_wgl.h>
|
||||
#endif
|
||||
@@ -74,6 +87,19 @@
|
||||
#if defined(macintosh) && PRAGMA_IMPORT_SUPPORTED
|
||||
#pragma import on
|
||||
#endif
|
||||
|
||||
#ifndef APIENTRY
|
||||
#define APIENTRY GLAPIENTRY
|
||||
#endif
|
||||
|
||||
#ifdef CENTERLINE_CLPP
|
||||
#define signed
|
||||
#endif
|
||||
|
||||
#if defined(PRAGMA_EXPORT_SUPPORTED)
|
||||
#pragma export on
|
||||
#endif
|
||||
|
||||
/*
|
||||
* End system-specific stuff.
|
||||
**********************************************************************/
|
||||
@@ -93,13 +119,8 @@ extern "C" {
|
||||
|
||||
|
||||
/*
|
||||
*
|
||||
* Datatypes
|
||||
*
|
||||
*/
|
||||
#ifdef CENTERLINE_CLPP
|
||||
#define signed
|
||||
#endif
|
||||
typedef unsigned int GLenum;
|
||||
typedef unsigned char GLboolean;
|
||||
typedef unsigned int GLbitfield;
|
||||
@@ -119,9 +140,7 @@ typedef double GLclampd; /* double precision float in [0,1] */
|
||||
|
||||
|
||||
/*
|
||||
*
|
||||
* Constants
|
||||
*
|
||||
*/
|
||||
|
||||
/* Boolean values */
|
||||
@@ -337,10 +356,6 @@ typedef double GLclampd; /* double precision float in [0,1] */
|
||||
#define GL_DST_COLOR 0x0306
|
||||
#define GL_ONE_MINUS_DST_COLOR 0x0307
|
||||
#define GL_SRC_ALPHA_SATURATE 0x0308
|
||||
#define GL_CONSTANT_COLOR 0x8001
|
||||
#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002
|
||||
#define GL_CONSTANT_ALPHA 0x8003
|
||||
#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004
|
||||
|
||||
/* Render Mode */
|
||||
#define GL_FEEDBACK 0x1C01
|
||||
@@ -508,8 +523,6 @@ typedef double GLclampd; /* double precision float in [0,1] */
|
||||
/* Evaluators */
|
||||
#define GL_AUTO_NORMAL 0x0D80
|
||||
#define GL_MAP1_COLOR_4 0x0D90
|
||||
#define GL_MAP1_GRID_DOMAIN 0x0DD0
|
||||
#define GL_MAP1_GRID_SEGMENTS 0x0DD1
|
||||
#define GL_MAP1_INDEX 0x0D91
|
||||
#define GL_MAP1_NORMAL 0x0D92
|
||||
#define GL_MAP1_TEXTURE_COORD_1 0x0D93
|
||||
@@ -519,8 +532,6 @@ typedef double GLclampd; /* double precision float in [0,1] */
|
||||
#define GL_MAP1_VERTEX_3 0x0D97
|
||||
#define GL_MAP1_VERTEX_4 0x0D98
|
||||
#define GL_MAP2_COLOR_4 0x0DB0
|
||||
#define GL_MAP2_GRID_DOMAIN 0x0DD2
|
||||
#define GL_MAP2_GRID_SEGMENTS 0x0DD3
|
||||
#define GL_MAP2_INDEX 0x0DB1
|
||||
#define GL_MAP2_NORMAL 0x0DB2
|
||||
#define GL_MAP2_TEXTURE_COORD_1 0x0DB3
|
||||
@@ -529,6 +540,10 @@ typedef double GLclampd; /* double precision float in [0,1] */
|
||||
#define GL_MAP2_TEXTURE_COORD_4 0x0DB6
|
||||
#define GL_MAP2_VERTEX_3 0x0DB7
|
||||
#define GL_MAP2_VERTEX_4 0x0DB8
|
||||
#define GL_MAP1_GRID_DOMAIN 0x0DD0
|
||||
#define GL_MAP1_GRID_SEGMENTS 0x0DD1
|
||||
#define GL_MAP2_GRID_DOMAIN 0x0DD2
|
||||
#define GL_MAP2_GRID_SEGMENTS 0x0DD3
|
||||
#define GL_COEFF 0x0A00
|
||||
#define GL_DOMAIN 0x0A02
|
||||
#define GL_ORDER 0x0A01
|
||||
@@ -728,243 +743,6 @@ typedef double GLclampd; /* double precision float in [0,1] */
|
||||
#define GL_CLIENT_ALL_ATTRIB_BITS 0xFFFFFFFF
|
||||
|
||||
|
||||
/* OpenGL 1.2 */
|
||||
#define GL_RESCALE_NORMAL 0x803A
|
||||
#define GL_CLAMP_TO_EDGE 0x812F
|
||||
#define GL_MAX_ELEMENTS_VERTICES 0x80E8
|
||||
#define GL_MAX_ELEMENTS_INDICES 0x80E9
|
||||
#define GL_BGR 0x80E0
|
||||
#define GL_BGRA 0x80E1
|
||||
#define GL_UNSIGNED_BYTE_3_3_2 0x8032
|
||||
#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362
|
||||
#define GL_UNSIGNED_SHORT_5_6_5 0x8363
|
||||
#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364
|
||||
#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033
|
||||
#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365
|
||||
#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034
|
||||
#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366
|
||||
#define GL_UNSIGNED_INT_8_8_8_8 0x8035
|
||||
#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367
|
||||
#define GL_UNSIGNED_INT_10_10_10_2 0x8036
|
||||
#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368
|
||||
#define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8
|
||||
#define GL_SINGLE_COLOR 0x81F9
|
||||
#define GL_SEPARATE_SPECULAR_COLOR 0x81FA
|
||||
#define GL_TEXTURE_MIN_LOD 0x813A
|
||||
#define GL_TEXTURE_MAX_LOD 0x813B
|
||||
#define GL_TEXTURE_BASE_LEVEL 0x813C
|
||||
#define GL_TEXTURE_MAX_LEVEL 0x813D
|
||||
#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12
|
||||
#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13
|
||||
#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22
|
||||
#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23
|
||||
#define GL_ALIASED_POINT_SIZE_RANGE 0x846D
|
||||
#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E
|
||||
#define GL_PACK_SKIP_IMAGES 0x806B
|
||||
#define GL_PACK_IMAGE_HEIGHT 0x806C
|
||||
#define GL_UNPACK_SKIP_IMAGES 0x806D
|
||||
#define GL_UNPACK_IMAGE_HEIGHT 0x806E
|
||||
#define GL_TEXTURE_3D 0x806F
|
||||
#define GL_PROXY_TEXTURE_3D 0x8070
|
||||
#define GL_TEXTURE_DEPTH 0x8071
|
||||
#define GL_TEXTURE_WRAP_R 0x8072
|
||||
#define GL_MAX_3D_TEXTURE_SIZE 0x8073
|
||||
#define GL_TEXTURE_BINDING_3D 0x806A
|
||||
|
||||
|
||||
/*
|
||||
* OpenGL 1.2 imaging subset
|
||||
*/
|
||||
/* GL_EXT_color_table */
|
||||
#define GL_COLOR_TABLE 0x80D0
|
||||
#define GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1
|
||||
#define GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2
|
||||
#define GL_PROXY_COLOR_TABLE 0x80D3
|
||||
#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4
|
||||
#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5
|
||||
#define GL_COLOR_TABLE_SCALE 0x80D6
|
||||
#define GL_COLOR_TABLE_BIAS 0x80D7
|
||||
#define GL_COLOR_TABLE_FORMAT 0x80D8
|
||||
#define GL_COLOR_TABLE_WIDTH 0x80D9
|
||||
#define GL_COLOR_TABLE_RED_SIZE 0x80DA
|
||||
#define GL_COLOR_TABLE_GREEN_SIZE 0x80DB
|
||||
#define GL_COLOR_TABLE_BLUE_SIZE 0x80DC
|
||||
#define GL_COLOR_TABLE_ALPHA_SIZE 0x80DD
|
||||
#define GL_COLOR_TABLE_LUMINANCE_SIZE 0x80DE
|
||||
#define GL_COLOR_TABLE_INTENSITY_SIZE 0x80DF
|
||||
/* GL_EXT_convolution and GL_HP_convolution_border_modes */
|
||||
#define GL_CONVOLUTION_1D 0x8010
|
||||
#define GL_CONVOLUTION_2D 0x8011
|
||||
#define GL_SEPARABLE_2D 0x8012
|
||||
#define GL_CONVOLUTION_BORDER_MODE 0x8013
|
||||
#define GL_CONVOLUTION_FILTER_SCALE 0x8014
|
||||
#define GL_CONVOLUTION_FILTER_BIAS 0x8015
|
||||
#define GL_REDUCE 0x8016
|
||||
#define GL_CONVOLUTION_FORMAT 0x8017
|
||||
#define GL_CONVOLUTION_WIDTH 0x8018
|
||||
#define GL_CONVOLUTION_HEIGHT 0x8019
|
||||
#define GL_MAX_CONVOLUTION_WIDTH 0x801A
|
||||
#define GL_MAX_CONVOLUTION_HEIGHT 0x801B
|
||||
#define GL_POST_CONVOLUTION_RED_SCALE 0x801C
|
||||
#define GL_POST_CONVOLUTION_GREEN_SCALE 0x801D
|
||||
#define GL_POST_CONVOLUTION_BLUE_SCALE 0x801E
|
||||
#define GL_POST_CONVOLUTION_ALPHA_SCALE 0x801F
|
||||
#define GL_POST_CONVOLUTION_RED_BIAS 0x8020
|
||||
#define GL_POST_CONVOLUTION_GREEN_BIAS 0x8021
|
||||
#define GL_POST_CONVOLUTION_BLUE_BIAS 0x8022
|
||||
#define GL_POST_CONVOLUTION_ALPHA_BIAS 0x8023
|
||||
#define GL_CONSTANT_BORDER 0x8151
|
||||
#define GL_REPLICATE_BORDER 0x8153
|
||||
#define GL_CONVOLUTION_BORDER_COLOR 0x8154
|
||||
/* GL_SGI_color_matrix */
|
||||
#define GL_COLOR_MATRIX 0x80B1
|
||||
#define GL_COLOR_MATRIX_STACK_DEPTH 0x80B2
|
||||
#define GL_MAX_COLOR_MATRIX_STACK_DEPTH 0x80B3
|
||||
#define GL_POST_COLOR_MATRIX_RED_SCALE 0x80B4
|
||||
#define GL_POST_COLOR_MATRIX_GREEN_SCALE 0x80B5
|
||||
#define GL_POST_COLOR_MATRIX_BLUE_SCALE 0x80B6
|
||||
#define GL_POST_COLOR_MATRIX_ALPHA_SCALE 0x80B7
|
||||
#define GL_POST_COLOR_MATRIX_RED_BIAS 0x80B8
|
||||
#define GL_POST_COLOR_MATRIX_GREEN_BIAS 0x80B9
|
||||
#define GL_POST_COLOR_MATRIX_BLUE_BIAS 0x80BA
|
||||
#define GL_POST_COLOR_MATRIX_ALPHA_BIAS 0x80BB
|
||||
/* GL_EXT_histogram */
|
||||
#define GL_HISTOGRAM 0x8024
|
||||
#define GL_PROXY_HISTOGRAM 0x8025
|
||||
#define GL_HISTOGRAM_WIDTH 0x8026
|
||||
#define GL_HISTOGRAM_FORMAT 0x8027
|
||||
#define GL_HISTOGRAM_RED_SIZE 0x8028
|
||||
#define GL_HISTOGRAM_GREEN_SIZE 0x8029
|
||||
#define GL_HISTOGRAM_BLUE_SIZE 0x802A
|
||||
#define GL_HISTOGRAM_ALPHA_SIZE 0x802B
|
||||
#define GL_HISTOGRAM_LUMINANCE_SIZE 0x802C
|
||||
#define GL_HISTOGRAM_SINK 0x802D
|
||||
#define GL_MINMAX 0x802E
|
||||
#define GL_MINMAX_FORMAT 0x802F
|
||||
#define GL_MINMAX_SINK 0x8030
|
||||
#define GL_TABLE_TOO_LARGE 0x8031
|
||||
/* GL_EXT_blend_color, GL_EXT_blend_minmax */
|
||||
#define GL_BLEND_EQUATION 0x8009
|
||||
#define GL_MIN 0x8007
|
||||
#define GL_MAX 0x8008
|
||||
#define GL_FUNC_ADD 0x8006
|
||||
#define GL_FUNC_SUBTRACT 0x800A
|
||||
#define GL_FUNC_REVERSE_SUBTRACT 0x800B
|
||||
#define GL_BLEND_COLOR 0x8005
|
||||
|
||||
|
||||
/* OpenGL 1.3 */
|
||||
/* multitexture */
|
||||
#define GL_TEXTURE0 0x84C0
|
||||
#define GL_TEXTURE1 0x84C1
|
||||
#define GL_TEXTURE2 0x84C2
|
||||
#define GL_TEXTURE3 0x84C3
|
||||
#define GL_TEXTURE4 0x84C4
|
||||
#define GL_TEXTURE5 0x84C5
|
||||
#define GL_TEXTURE6 0x84C6
|
||||
#define GL_TEXTURE7 0x84C7
|
||||
#define GL_TEXTURE8 0x84C8
|
||||
#define GL_TEXTURE9 0x84C9
|
||||
#define GL_TEXTURE10 0x84CA
|
||||
#define GL_TEXTURE11 0x84CB
|
||||
#define GL_TEXTURE12 0x84CC
|
||||
#define GL_TEXTURE13 0x84CD
|
||||
#define GL_TEXTURE14 0x84CE
|
||||
#define GL_TEXTURE15 0x84CF
|
||||
#define GL_TEXTURE16 0x84D0
|
||||
#define GL_TEXTURE17 0x84D1
|
||||
#define GL_TEXTURE18 0x84D2
|
||||
#define GL_TEXTURE19 0x84D3
|
||||
#define GL_TEXTURE20 0x84D4
|
||||
#define GL_TEXTURE21 0x84D5
|
||||
#define GL_TEXTURE22 0x84D6
|
||||
#define GL_TEXTURE23 0x84D7
|
||||
#define GL_TEXTURE24 0x84D8
|
||||
#define GL_TEXTURE25 0x84D9
|
||||
#define GL_TEXTURE26 0x84DA
|
||||
#define GL_TEXTURE27 0x84DB
|
||||
#define GL_TEXTURE28 0x84DC
|
||||
#define GL_TEXTURE29 0x84DD
|
||||
#define GL_TEXTURE30 0x84DE
|
||||
#define GL_TEXTURE31 0x84DF
|
||||
#define GL_ACTIVE_TEXTURE 0x84E0
|
||||
#define GL_CLIENT_ACTIVE_TEXTURE 0x84E1
|
||||
#define GL_MAX_TEXTURE_UNITS 0x84E2
|
||||
/* texture_cube_map */
|
||||
#define GL_NORMAL_MAP 0x8511
|
||||
#define GL_REFLECTION_MAP 0x8512
|
||||
#define GL_TEXTURE_CUBE_MAP 0x8513
|
||||
#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514
|
||||
#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515
|
||||
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516
|
||||
#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517
|
||||
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518
|
||||
#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519
|
||||
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A
|
||||
#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B
|
||||
#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C
|
||||
/* texture_compression */
|
||||
#define GL_COMPRESSED_ALPHA 0x84E9
|
||||
#define GL_COMPRESSED_LUMINANCE 0x84EA
|
||||
#define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB
|
||||
#define GL_COMPRESSED_INTENSITY 0x84EC
|
||||
#define GL_COMPRESSED_RGB 0x84ED
|
||||
#define GL_COMPRESSED_RGBA 0x84EE
|
||||
#define GL_TEXTURE_COMPRESSION_HINT 0x84EF
|
||||
#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0
|
||||
#define GL_TEXTURE_COMPRESSED 0x86A1
|
||||
#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2
|
||||
#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3
|
||||
/* multisample */
|
||||
#define GL_MULTISAMPLE 0x809D
|
||||
#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E
|
||||
#define GL_SAMPLE_ALPHA_TO_ONE 0x809F
|
||||
#define GL_SAMPLE_COVERAGE 0x80A0
|
||||
#define GL_SAMPLE_BUFFERS 0x80A8
|
||||
#define GL_SAMPLES 0x80A9
|
||||
#define GL_SAMPLE_COVERAGE_VALUE 0x80AA
|
||||
#define GL_SAMPLE_COVERAGE_INVERT 0x80AB
|
||||
#define GL_MULTISAMPLE_BIT 0x20000000
|
||||
/* transpose_matrix */
|
||||
#define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3
|
||||
#define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4
|
||||
#define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5
|
||||
#define GL_TRANSPOSE_COLOR_MATRIX 0x84E6
|
||||
/* texture_env_combine */
|
||||
#define GL_COMBINE 0x8570
|
||||
#define GL_COMBINE_RGB 0x8571
|
||||
#define GL_COMBINE_ALPHA 0x8572
|
||||
#define GL_SOURCE0_RGB 0x8580
|
||||
#define GL_SOURCE1_RGB 0x8581
|
||||
#define GL_SOURCE2_RGB 0x8582
|
||||
#define GL_SOURCE0_ALPHA 0x8588
|
||||
#define GL_SOURCE1_ALPHA 0x8589
|
||||
#define GL_SOURCE2_ALPHA 0x858A
|
||||
#define GL_OPERAND0_RGB 0x8590
|
||||
#define GL_OPERAND1_RGB 0x8591
|
||||
#define GL_OPERAND2_RGB 0x8592
|
||||
#define GL_OPERAND0_ALPHA 0x8598
|
||||
#define GL_OPERAND1_ALPHA 0x8599
|
||||
#define GL_OPERAND2_ALPHA 0x859A
|
||||
#define GL_RGB_SCALE 0x8573
|
||||
#define GL_ADD_SIGNED 0x8574
|
||||
#define GL_INTERPOLATE 0x8575
|
||||
#define GL_SUBTRACT 0x84E7
|
||||
#define GL_CONSTANT 0x8576
|
||||
#define GL_PRIMARY_COLOR 0x8577
|
||||
#define GL_PREVIOUS 0x8578
|
||||
/* texture_env_dot3 */
|
||||
#define GL_DOT3_RGB 0x86AE
|
||||
#define GL_DOT3_RGBA 0x86AF
|
||||
/* texture_border_clamp */
|
||||
#define GL_CLAMP_TO_BORDER 0x812D
|
||||
|
||||
|
||||
|
||||
#if defined(__BEOS__) || defined(__QUICKDRAW__)
|
||||
#pragma export on
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* Miscellaneous
|
||||
@@ -1062,7 +840,6 @@ GLAPI void GLAPIENTRY glFlush( void );
|
||||
GLAPI void GLAPIENTRY glHint( GLenum target, GLenum mode );
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Depth Buffer
|
||||
*/
|
||||
@@ -1085,7 +862,6 @@ GLAPI void GLAPIENTRY glClearAccum( GLfloat red, GLfloat green, GLfloat blue, GL
|
||||
GLAPI void GLAPIENTRY glAccum( GLenum op, GLfloat value );
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Transformation
|
||||
*/
|
||||
@@ -1127,7 +903,6 @@ GLAPI void GLAPIENTRY glTranslated( GLdouble x, GLdouble y, GLdouble z );
|
||||
GLAPI void GLAPIENTRY glTranslatef( GLfloat x, GLfloat y, GLfloat z );
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Display Lists
|
||||
*/
|
||||
@@ -1150,7 +925,6 @@ GLAPI void GLAPIENTRY glCallLists( GLsizei n, GLenum type,
|
||||
GLAPI void GLAPIENTRY glListBase( GLuint base );
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Drawing Functions
|
||||
*/
|
||||
@@ -1346,7 +1120,6 @@ GLAPI void GLAPIENTRY glRectiv( const GLint *v1, const GLint *v2 );
|
||||
GLAPI void GLAPIENTRY glRectsv( const GLshort *v1, const GLshort *v2 );
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Vertex Arrays (1.1)
|
||||
*/
|
||||
@@ -1380,7 +1153,6 @@ GLAPI void GLAPIENTRY glDrawElements( GLenum mode, GLsizei count,
|
||||
GLAPI void GLAPIENTRY glInterleavedArrays( GLenum format, GLsizei stride,
|
||||
const GLvoid *pointer );
|
||||
|
||||
|
||||
/*
|
||||
* Lighting
|
||||
*/
|
||||
@@ -1415,8 +1187,6 @@ GLAPI void GLAPIENTRY glGetMaterialiv( GLenum face, GLenum pname, GLint *params
|
||||
GLAPI void GLAPIENTRY glColorMaterial( GLenum face, GLenum mode );
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Raster functions
|
||||
*/
|
||||
@@ -1458,8 +1228,6 @@ GLAPI void GLAPIENTRY glCopyPixels( GLint x, GLint y,
|
||||
GLsizei width, GLsizei height,
|
||||
GLenum type );
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Stenciling
|
||||
*/
|
||||
@@ -1537,7 +1305,6 @@ GLAPI void GLAPIENTRY glGetTexImage( GLenum target, GLint level,
|
||||
GLvoid *pixels );
|
||||
|
||||
|
||||
|
||||
/* 1.1 functions */
|
||||
|
||||
GLAPI void GLAPIENTRY glGenTextures( GLsizei n, GLuint *textures );
|
||||
@@ -1594,8 +1361,6 @@ GLAPI void GLAPIENTRY glCopyTexSubImage2D( GLenum target, GLint level,
|
||||
GLsizei width, GLsizei height );
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Evaluators
|
||||
*/
|
||||
@@ -1649,7 +1414,6 @@ GLAPI void GLAPIENTRY glEvalMesh1( GLenum mode, GLint i1, GLint i2 );
|
||||
GLAPI void GLAPIENTRY glEvalMesh2( GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2 );
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Fog
|
||||
*/
|
||||
@@ -1663,7 +1427,6 @@ GLAPI void GLAPIENTRY glFogfv( GLenum pname, const GLfloat *params );
|
||||
GLAPI void GLAPIENTRY glFogiv( GLenum pname, const GLint *params );
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Selection and Feedback
|
||||
*/
|
||||
@@ -1684,12 +1447,57 @@ GLAPI void GLAPIENTRY glPopName( void );
|
||||
|
||||
|
||||
|
||||
/* 1.2 functions */
|
||||
/*
|
||||
* OpenGL 1.2
|
||||
*/
|
||||
|
||||
#define GL_RESCALE_NORMAL 0x803A
|
||||
#define GL_CLAMP_TO_EDGE 0x812F
|
||||
#define GL_MAX_ELEMENTS_VERTICES 0x80E8
|
||||
#define GL_MAX_ELEMENTS_INDICES 0x80E9
|
||||
#define GL_BGR 0x80E0
|
||||
#define GL_BGRA 0x80E1
|
||||
#define GL_UNSIGNED_BYTE_3_3_2 0x8032
|
||||
#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362
|
||||
#define GL_UNSIGNED_SHORT_5_6_5 0x8363
|
||||
#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364
|
||||
#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033
|
||||
#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365
|
||||
#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034
|
||||
#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366
|
||||
#define GL_UNSIGNED_INT_8_8_8_8 0x8035
|
||||
#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367
|
||||
#define GL_UNSIGNED_INT_10_10_10_2 0x8036
|
||||
#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368
|
||||
#define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8
|
||||
#define GL_SINGLE_COLOR 0x81F9
|
||||
#define GL_SEPARATE_SPECULAR_COLOR 0x81FA
|
||||
#define GL_TEXTURE_MIN_LOD 0x813A
|
||||
#define GL_TEXTURE_MAX_LOD 0x813B
|
||||
#define GL_TEXTURE_BASE_LEVEL 0x813C
|
||||
#define GL_TEXTURE_MAX_LEVEL 0x813D
|
||||
#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12
|
||||
#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13
|
||||
#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22
|
||||
#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23
|
||||
#define GL_ALIASED_POINT_SIZE_RANGE 0x846D
|
||||
#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E
|
||||
#define GL_PACK_SKIP_IMAGES 0x806B
|
||||
#define GL_PACK_IMAGE_HEIGHT 0x806C
|
||||
#define GL_UNPACK_SKIP_IMAGES 0x806D
|
||||
#define GL_UNPACK_IMAGE_HEIGHT 0x806E
|
||||
#define GL_TEXTURE_3D 0x806F
|
||||
#define GL_PROXY_TEXTURE_3D 0x8070
|
||||
#define GL_TEXTURE_DEPTH 0x8071
|
||||
#define GL_TEXTURE_WRAP_R 0x8072
|
||||
#define GL_MAX_3D_TEXTURE_SIZE 0x8073
|
||||
#define GL_TEXTURE_BINDING_3D 0x806A
|
||||
|
||||
GLAPI void GLAPIENTRY glDrawRangeElements( GLenum mode, GLuint start,
|
||||
GLuint end, GLsizei count, GLenum type, const GLvoid *indices );
|
||||
|
||||
GLAPI void GLAPIENTRY glTexImage3D( GLenum target, GLint level,
|
||||
GLenum internalFormat,
|
||||
GLint internalFormat,
|
||||
GLsizei width, GLsizei height,
|
||||
GLsizei depth, GLint border,
|
||||
GLenum format, GLenum type,
|
||||
@@ -1708,8 +1516,92 @@ GLAPI void GLAPIENTRY glCopyTexSubImage3D( GLenum target, GLint level,
|
||||
GLint y, GLsizei width,
|
||||
GLsizei height );
|
||||
|
||||
typedef void (APIENTRY * PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices);
|
||||
typedef void (APIENTRY * PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
|
||||
typedef void (APIENTRY * PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
|
||||
typedef void (APIENTRY * PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
|
||||
|
||||
|
||||
/*
|
||||
* GL_ARB_imaging
|
||||
*/
|
||||
|
||||
#define GL_CONSTANT_COLOR 0x8001
|
||||
#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002
|
||||
#define GL_CONSTANT_ALPHA 0x8003
|
||||
#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004
|
||||
#define GL_COLOR_TABLE 0x80D0
|
||||
#define GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1
|
||||
#define GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2
|
||||
#define GL_PROXY_COLOR_TABLE 0x80D3
|
||||
#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4
|
||||
#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5
|
||||
#define GL_COLOR_TABLE_SCALE 0x80D6
|
||||
#define GL_COLOR_TABLE_BIAS 0x80D7
|
||||
#define GL_COLOR_TABLE_FORMAT 0x80D8
|
||||
#define GL_COLOR_TABLE_WIDTH 0x80D9
|
||||
#define GL_COLOR_TABLE_RED_SIZE 0x80DA
|
||||
#define GL_COLOR_TABLE_GREEN_SIZE 0x80DB
|
||||
#define GL_COLOR_TABLE_BLUE_SIZE 0x80DC
|
||||
#define GL_COLOR_TABLE_ALPHA_SIZE 0x80DD
|
||||
#define GL_COLOR_TABLE_LUMINANCE_SIZE 0x80DE
|
||||
#define GL_COLOR_TABLE_INTENSITY_SIZE 0x80DF
|
||||
#define GL_CONVOLUTION_1D 0x8010
|
||||
#define GL_CONVOLUTION_2D 0x8011
|
||||
#define GL_SEPARABLE_2D 0x8012
|
||||
#define GL_CONVOLUTION_BORDER_MODE 0x8013
|
||||
#define GL_CONVOLUTION_FILTER_SCALE 0x8014
|
||||
#define GL_CONVOLUTION_FILTER_BIAS 0x8015
|
||||
#define GL_REDUCE 0x8016
|
||||
#define GL_CONVOLUTION_FORMAT 0x8017
|
||||
#define GL_CONVOLUTION_WIDTH 0x8018
|
||||
#define GL_CONVOLUTION_HEIGHT 0x8019
|
||||
#define GL_MAX_CONVOLUTION_WIDTH 0x801A
|
||||
#define GL_MAX_CONVOLUTION_HEIGHT 0x801B
|
||||
#define GL_POST_CONVOLUTION_RED_SCALE 0x801C
|
||||
#define GL_POST_CONVOLUTION_GREEN_SCALE 0x801D
|
||||
#define GL_POST_CONVOLUTION_BLUE_SCALE 0x801E
|
||||
#define GL_POST_CONVOLUTION_ALPHA_SCALE 0x801F
|
||||
#define GL_POST_CONVOLUTION_RED_BIAS 0x8020
|
||||
#define GL_POST_CONVOLUTION_GREEN_BIAS 0x8021
|
||||
#define GL_POST_CONVOLUTION_BLUE_BIAS 0x8022
|
||||
#define GL_POST_CONVOLUTION_ALPHA_BIAS 0x8023
|
||||
#define GL_CONSTANT_BORDER 0x8151
|
||||
#define GL_REPLICATE_BORDER 0x8153
|
||||
#define GL_CONVOLUTION_BORDER_COLOR 0x8154
|
||||
#define GL_COLOR_MATRIX 0x80B1
|
||||
#define GL_COLOR_MATRIX_STACK_DEPTH 0x80B2
|
||||
#define GL_MAX_COLOR_MATRIX_STACK_DEPTH 0x80B3
|
||||
#define GL_POST_COLOR_MATRIX_RED_SCALE 0x80B4
|
||||
#define GL_POST_COLOR_MATRIX_GREEN_SCALE 0x80B5
|
||||
#define GL_POST_COLOR_MATRIX_BLUE_SCALE 0x80B6
|
||||
#define GL_POST_COLOR_MATRIX_ALPHA_SCALE 0x80B7
|
||||
#define GL_POST_COLOR_MATRIX_RED_BIAS 0x80B8
|
||||
#define GL_POST_COLOR_MATRIX_GREEN_BIAS 0x80B9
|
||||
#define GL_POST_COLOR_MATRIX_BLUE_BIAS 0x80BA
|
||||
#define GL_POST_COLOR_MATRIX_ALPHA_BIAS 0x80BB
|
||||
#define GL_HISTOGRAM 0x8024
|
||||
#define GL_PROXY_HISTOGRAM 0x8025
|
||||
#define GL_HISTOGRAM_WIDTH 0x8026
|
||||
#define GL_HISTOGRAM_FORMAT 0x8027
|
||||
#define GL_HISTOGRAM_RED_SIZE 0x8028
|
||||
#define GL_HISTOGRAM_GREEN_SIZE 0x8029
|
||||
#define GL_HISTOGRAM_BLUE_SIZE 0x802A
|
||||
#define GL_HISTOGRAM_ALPHA_SIZE 0x802B
|
||||
#define GL_HISTOGRAM_LUMINANCE_SIZE 0x802C
|
||||
#define GL_HISTOGRAM_SINK 0x802D
|
||||
#define GL_MINMAX 0x802E
|
||||
#define GL_MINMAX_FORMAT 0x802F
|
||||
#define GL_MINMAX_SINK 0x8030
|
||||
#define GL_TABLE_TOO_LARGE 0x8031
|
||||
#define GL_BLEND_EQUATION 0x8009
|
||||
#define GL_MIN 0x8007
|
||||
#define GL_MAX 0x8008
|
||||
#define GL_FUNC_ADD 0x8006
|
||||
#define GL_FUNC_SUBTRACT 0x800A
|
||||
#define GL_FUNC_REVERSE_SUBTRACT 0x800B
|
||||
#define GL_BLEND_COLOR 0x8005
|
||||
|
||||
/* 1.2 imaging extension functions */
|
||||
|
||||
GLAPI void GLAPIENTRY glColorTable( GLenum target, GLenum internalformat,
|
||||
GLsizei width, GLenum format,
|
||||
@@ -1819,9 +1711,151 @@ GLAPI void GLAPIENTRY glSeparableFilter2D( GLenum target,
|
||||
GLAPI void GLAPIENTRY glGetSeparableFilter( GLenum target, GLenum format,
|
||||
GLenum type, GLvoid *row, GLvoid *column, GLvoid *span );
|
||||
|
||||
typedef void (APIENTRY * PFNGLBLENDCOLORPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
|
||||
typedef void (APIENTRY * PFNGLBLENDEQUATIONPROC) (GLenum mode);
|
||||
typedef void (APIENTRY * PFNGLCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table);
|
||||
typedef void (APIENTRY * PFNGLCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params);
|
||||
typedef void (APIENTRY * PFNGLCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params);
|
||||
typedef void (APIENTRY * PFNGLCOPYCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
|
||||
typedef void (APIENTRY * PFNGLGETCOLORTABLEPROC) (GLenum target, GLenum format, GLenum type, GLvoid *table);
|
||||
typedef void (APIENTRY * PFNGLGETCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
|
||||
typedef void (APIENTRY * PFNGLGETCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
|
||||
typedef void (APIENTRY * PFNGLCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data);
|
||||
typedef void (APIENTRY * PFNGLCOPYCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
|
||||
typedef void (APIENTRY * PFNGLCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image);
|
||||
typedef void (APIENTRY * PFNGLCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image);
|
||||
typedef void (APIENTRY * PFNGLCONVOLUTIONPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat params);
|
||||
typedef void (APIENTRY * PFNGLCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params);
|
||||
typedef void (APIENTRY * PFNGLCONVOLUTIONPARAMETERIPROC) (GLenum target, GLenum pname, GLint params);
|
||||
typedef void (APIENTRY * PFNGLCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params);
|
||||
typedef void (APIENTRY * PFNGLCOPYCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
|
||||
typedef void (APIENTRY * PFNGLCOPYCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height);
|
||||
typedef void (APIENTRY * PFNGLGETCONVOLUTIONFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *image);
|
||||
typedef void (APIENTRY * PFNGLGETCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
|
||||
typedef void (APIENTRY * PFNGLGETCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
|
||||
typedef void (APIENTRY * PFNGLGETSEPARABLEFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span);
|
||||
typedef void (APIENTRY * PFNGLSEPARABLEFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column);
|
||||
typedef void (APIENTRY * PFNGLGETHISTOGRAMPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
|
||||
typedef void (APIENTRY * PFNGLGETHISTOGRAMPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
|
||||
typedef void (APIENTRY * PFNGLGETHISTOGRAMPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
|
||||
typedef void (APIENTRY * PFNGLGETMINMAXPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
|
||||
typedef void (APIENTRY * PFNGLGETMINMAXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params);
|
||||
typedef void (APIENTRY * PFNGLGETMINMAXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params);
|
||||
typedef void (APIENTRY * PFNGLHISTOGRAMPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink);
|
||||
typedef void (APIENTRY * PFNGLMINMAXPROC) (GLenum target, GLenum internalformat, GLboolean sink);
|
||||
typedef void (APIENTRY * PFNGLRESETHISTOGRAMPROC) (GLenum target);
|
||||
typedef void (APIENTRY * PFNGLRESETMINMAXPROC) (GLenum target);
|
||||
|
||||
|
||||
/* 1.3 functions */
|
||||
|
||||
/*
|
||||
* OpenGL 1.3
|
||||
*/
|
||||
|
||||
/* multitexture */
|
||||
#define GL_TEXTURE0 0x84C0
|
||||
#define GL_TEXTURE1 0x84C1
|
||||
#define GL_TEXTURE2 0x84C2
|
||||
#define GL_TEXTURE3 0x84C3
|
||||
#define GL_TEXTURE4 0x84C4
|
||||
#define GL_TEXTURE5 0x84C5
|
||||
#define GL_TEXTURE6 0x84C6
|
||||
#define GL_TEXTURE7 0x84C7
|
||||
#define GL_TEXTURE8 0x84C8
|
||||
#define GL_TEXTURE9 0x84C9
|
||||
#define GL_TEXTURE10 0x84CA
|
||||
#define GL_TEXTURE11 0x84CB
|
||||
#define GL_TEXTURE12 0x84CC
|
||||
#define GL_TEXTURE13 0x84CD
|
||||
#define GL_TEXTURE14 0x84CE
|
||||
#define GL_TEXTURE15 0x84CF
|
||||
#define GL_TEXTURE16 0x84D0
|
||||
#define GL_TEXTURE17 0x84D1
|
||||
#define GL_TEXTURE18 0x84D2
|
||||
#define GL_TEXTURE19 0x84D3
|
||||
#define GL_TEXTURE20 0x84D4
|
||||
#define GL_TEXTURE21 0x84D5
|
||||
#define GL_TEXTURE22 0x84D6
|
||||
#define GL_TEXTURE23 0x84D7
|
||||
#define GL_TEXTURE24 0x84D8
|
||||
#define GL_TEXTURE25 0x84D9
|
||||
#define GL_TEXTURE26 0x84DA
|
||||
#define GL_TEXTURE27 0x84DB
|
||||
#define GL_TEXTURE28 0x84DC
|
||||
#define GL_TEXTURE29 0x84DD
|
||||
#define GL_TEXTURE30 0x84DE
|
||||
#define GL_TEXTURE31 0x84DF
|
||||
#define GL_ACTIVE_TEXTURE 0x84E0
|
||||
#define GL_CLIENT_ACTIVE_TEXTURE 0x84E1
|
||||
#define GL_MAX_TEXTURE_UNITS 0x84E2
|
||||
/* texture_cube_map */
|
||||
#define GL_NORMAL_MAP 0x8511
|
||||
#define GL_REFLECTION_MAP 0x8512
|
||||
#define GL_TEXTURE_CUBE_MAP 0x8513
|
||||
#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514
|
||||
#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515
|
||||
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516
|
||||
#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517
|
||||
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518
|
||||
#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519
|
||||
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A
|
||||
#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B
|
||||
#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C
|
||||
/* texture_compression */
|
||||
#define GL_COMPRESSED_ALPHA 0x84E9
|
||||
#define GL_COMPRESSED_LUMINANCE 0x84EA
|
||||
#define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB
|
||||
#define GL_COMPRESSED_INTENSITY 0x84EC
|
||||
#define GL_COMPRESSED_RGB 0x84ED
|
||||
#define GL_COMPRESSED_RGBA 0x84EE
|
||||
#define GL_TEXTURE_COMPRESSION_HINT 0x84EF
|
||||
#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0
|
||||
#define GL_TEXTURE_COMPRESSED 0x86A1
|
||||
#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2
|
||||
#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3
|
||||
/* multisample */
|
||||
#define GL_MULTISAMPLE 0x809D
|
||||
#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E
|
||||
#define GL_SAMPLE_ALPHA_TO_ONE 0x809F
|
||||
#define GL_SAMPLE_COVERAGE 0x80A0
|
||||
#define GL_SAMPLE_BUFFERS 0x80A8
|
||||
#define GL_SAMPLES 0x80A9
|
||||
#define GL_SAMPLE_COVERAGE_VALUE 0x80AA
|
||||
#define GL_SAMPLE_COVERAGE_INVERT 0x80AB
|
||||
#define GL_MULTISAMPLE_BIT 0x20000000
|
||||
/* transpose_matrix */
|
||||
#define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3
|
||||
#define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4
|
||||
#define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5
|
||||
#define GL_TRANSPOSE_COLOR_MATRIX 0x84E6
|
||||
/* texture_env_combine */
|
||||
#define GL_COMBINE 0x8570
|
||||
#define GL_COMBINE_RGB 0x8571
|
||||
#define GL_COMBINE_ALPHA 0x8572
|
||||
#define GL_SOURCE0_RGB 0x8580
|
||||
#define GL_SOURCE1_RGB 0x8581
|
||||
#define GL_SOURCE2_RGB 0x8582
|
||||
#define GL_SOURCE0_ALPHA 0x8588
|
||||
#define GL_SOURCE1_ALPHA 0x8589
|
||||
#define GL_SOURCE2_ALPHA 0x858A
|
||||
#define GL_OPERAND0_RGB 0x8590
|
||||
#define GL_OPERAND1_RGB 0x8591
|
||||
#define GL_OPERAND2_RGB 0x8592
|
||||
#define GL_OPERAND0_ALPHA 0x8598
|
||||
#define GL_OPERAND1_ALPHA 0x8599
|
||||
#define GL_OPERAND2_ALPHA 0x859A
|
||||
#define GL_RGB_SCALE 0x8573
|
||||
#define GL_ADD_SIGNED 0x8574
|
||||
#define GL_INTERPOLATE 0x8575
|
||||
#define GL_SUBTRACT 0x84E7
|
||||
#define GL_CONSTANT 0x8576
|
||||
#define GL_PRIMARY_COLOR 0x8577
|
||||
#define GL_PREVIOUS 0x8578
|
||||
/* texture_env_dot3 */
|
||||
#define GL_DOT3_RGB 0x86AE
|
||||
#define GL_DOT3_RGBA 0x86AF
|
||||
/* texture_border_clamp */
|
||||
#define GL_CLAMP_TO_BORDER 0x812D
|
||||
|
||||
GLAPI void GLAPIENTRY glActiveTexture( GLenum texture );
|
||||
|
||||
@@ -1916,8 +1950,52 @@ GLAPI void GLAPIENTRY glMultTransposeMatrixf( const GLfloat m[16] );
|
||||
|
||||
GLAPI void GLAPIENTRY glSampleCoverage( GLclampf value, GLboolean invert );
|
||||
|
||||
|
||||
#if defined(GL_GLEXT_LEGACY)
|
||||
typedef void (APIENTRY * PFNGLACTIVETEXTUREPROC) (GLenum texture);
|
||||
typedef void (APIENTRY * PFNGLCLIENTACTIVETEXTUREPROC) (GLenum texture);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD1DPROC) (GLenum target, GLdouble s);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD1DVPROC) (GLenum target, const GLdouble *v);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD1FPROC) (GLenum target, GLfloat s);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD1FVPROC) (GLenum target, const GLfloat *v);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD1IPROC) (GLenum target, GLint s);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD1IVPROC) (GLenum target, const GLint *v);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD1SPROC) (GLenum target, GLshort s);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD1SVPROC) (GLenum target, const GLshort *v);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD2DPROC) (GLenum target, GLdouble s, GLdouble t);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD2DVPROC) (GLenum target, const GLdouble *v);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD2FPROC) (GLenum target, GLfloat s, GLfloat t);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD2FVPROC) (GLenum target, const GLfloat *v);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD2IPROC) (GLenum target, GLint s, GLint t);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD2IVPROC) (GLenum target, const GLint *v);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD2SPROC) (GLenum target, GLshort s, GLshort t);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD2SVPROC) (GLenum target, const GLshort *v);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD3DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD3DVPROC) (GLenum target, const GLdouble *v);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD3FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD3FVPROC) (GLenum target, const GLfloat *v);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD3IPROC) (GLenum target, GLint s, GLint t, GLint r);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD3IVPROC) (GLenum target, const GLint *v);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD3SPROC) (GLenum target, GLshort s, GLshort t, GLshort r);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD3SVPROC) (GLenum target, const GLshort *v);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD4DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD4DVPROC) (GLenum target, const GLdouble *v);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD4FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD4FVPROC) (GLenum target, const GLfloat *v);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD4IPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD4IVPROC) (GLenum target, const GLint *v);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD4SPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD4SVPROC) (GLenum target, const GLshort *v);
|
||||
typedef void (APIENTRY * PFNGLLOADTRANSPOSEMATRIXFPROC) (const GLfloat *m);
|
||||
typedef void (APIENTRY * PFNGLLOADTRANSPOSEMATRIXDPROC) (const GLdouble *m);
|
||||
typedef void (APIENTRY * PFNGLMULTTRANSPOSEMATRIXFPROC) (const GLfloat *m);
|
||||
typedef void (APIENTRY * PFNGLMULTTRANSPOSEMATRIXDPROC) (const GLdouble *m);
|
||||
typedef void (APIENTRY * PFNGLSAMPLECOVERAGEPROC) (GLclampf value, GLboolean invert);
|
||||
typedef void (APIENTRY * PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data);
|
||||
typedef void (APIENTRY * PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data);
|
||||
typedef void (APIENTRY * PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data);
|
||||
typedef void (APIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data);
|
||||
typedef void (APIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data);
|
||||
typedef void (APIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data);
|
||||
typedef void (APIENTRY * PFNGLGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint level, void *img);
|
||||
|
||||
|
||||
/*
|
||||
@@ -1997,45 +2075,52 @@ GLAPI void GLAPIENTRY glMultiTexCoord4ivARB(GLenum target, const GLint *v);
|
||||
GLAPI void GLAPIENTRY glMultiTexCoord4sARB(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
|
||||
GLAPI void GLAPIENTRY glMultiTexCoord4svARB(GLenum target, const GLshort *v);
|
||||
|
||||
typedef void (GLAPIENTRY * PFNGLACTIVETEXTUREARBPROC) (GLenum texture);
|
||||
typedef void (GLAPIENTRY * PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture);
|
||||
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s);
|
||||
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v);
|
||||
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s);
|
||||
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v);
|
||||
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s);
|
||||
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v);
|
||||
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s);
|
||||
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v);
|
||||
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t);
|
||||
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v);
|
||||
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t);
|
||||
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v);
|
||||
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t);
|
||||
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v);
|
||||
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t);
|
||||
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v);
|
||||
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r);
|
||||
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v);
|
||||
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r);
|
||||
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v);
|
||||
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r);
|
||||
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v);
|
||||
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r);
|
||||
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v);
|
||||
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
|
||||
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v);
|
||||
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
|
||||
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v);
|
||||
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q);
|
||||
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v);
|
||||
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
|
||||
typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v);
|
||||
typedef void (APIENTRY * PFNGLACTIVETEXTUREARBPROC) (GLenum texture);
|
||||
typedef void (APIENTRY * PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
|
||||
typedef void (APIENTRY * PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v);
|
||||
|
||||
#endif /* GL_ARB_multitexture */
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Define this token if you want "old-style" header file behaviour (extensions
|
||||
* defined in gl.h). Otherwise, extensions will be included from glext.h.
|
||||
*/
|
||||
#if defined(GL_GLEXT_LEGACY)
|
||||
|
||||
|
||||
/*
|
||||
* 1. GL_EXT_abgr
|
||||
*/
|
||||
@@ -2477,7 +2562,7 @@ GLAPI void GLAPIENTRY glResizeBuffersMESA( void );
|
||||
|
||||
/*
|
||||
* ???. GL_MESA_trace
|
||||
* XXX this should go into glext.h at some point
|
||||
* XXX obsolete
|
||||
*/
|
||||
#ifndef GL_MESA_trace
|
||||
#define GL_MESA_trace 1
|
||||
@@ -2508,7 +2593,7 @@ GLAPI void GLAPIENTRY glTracePointerRangeMESA( const GLvoid* first, const GLvoid
|
||||
|
||||
/*
|
||||
* ???. GL_MESA_packed_depth_stencil
|
||||
* XXX this will be in glext.h someday
|
||||
* XXX obsolete
|
||||
*/
|
||||
#ifndef GL_MESA_packed_depth_stencil
|
||||
#define GL_MESA_packed_depth_stencil 1
|
||||
@@ -2522,7 +2607,6 @@ GLAPI void GLAPIENTRY glTracePointerRangeMESA( const GLvoid* first, const GLvoid
|
||||
#endif /* GL_MESA_packed_depth_stencil */
|
||||
|
||||
|
||||
|
||||
#ifndef GL_MESA_ycbcr_texture
|
||||
#define GL_MESA_ycbcr_texture 1
|
||||
|
||||
@@ -2562,6 +2646,7 @@ GLAPI void GLAPIENTRY glTracePointerRangeMESA( const GLvoid* first, const GLvoid
|
||||
#endif /* GL_APPLE_ycbcr_422 */
|
||||
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
* Begin system-specific stuff
|
||||
*/
|
||||
|
@@ -1,4 +1,4 @@
|
||||
#if 0 /* $Id: gl_mangle.h,v 1.7.2.3 2002/01/18 14:55:50 brianp Exp $ */
|
||||
#if 0 /* $Id: gl_mangle.h,v 1.11 2002/01/18 14:55:40 brianp Exp $ */
|
||||
# DO NOT EDIT!!! - TO REGENERATE from gl.h, EXECUTE THIS FILE IN KORN SHELL and save the output
|
||||
# This file is used to create GL function protypes and aliases for the function names
|
||||
|
||||
|
@@ -223,9 +223,11 @@ WGLAPI int GLAPIENTRY SetPixelFormat(HDC,int,const PIXELFORMATDESCRIPTOR *);
|
||||
video resize subAPI, glutPostWindowRedisplay, glutKeyboardUpFunc,
|
||||
glutSpecialUpFunc, glutIgnoreKeyRepeat, glutSetKeyRepeat,
|
||||
glutJoystickFunc, glutForceJoystickFunc (NOT FINALIZED!).
|
||||
|
||||
GLUT_API_VERSION=5 glutGetProcAddress (added by BrianP)
|
||||
**/
|
||||
#ifndef GLUT_API_VERSION /* allow this to be overriden */
|
||||
#define GLUT_API_VERSION 3
|
||||
#define GLUT_API_VERSION 5
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -661,6 +663,9 @@ GLUTAPI int GLUTAPIENTRY glutExtensionSupported(const char *name);
|
||||
GLUTAPI int GLUTAPIENTRY glutGetModifiers(void);
|
||||
GLUTAPI int GLUTAPIENTRY glutLayerGet(GLenum type);
|
||||
#endif
|
||||
#if (GLUT_API_VERSION >= 5)
|
||||
GLUTAPI void * GLUTAPIENTRY glutGetProcAddress(const char *procName);
|
||||
#endif
|
||||
|
||||
/* GLUT font sub-API */
|
||||
GLUTAPI void GLUTAPIENTRY glutBitmapCharacter(void *font, int character);
|
||||
|
@@ -1,8 +1,8 @@
|
||||
/* $Id: glx.h,v 1.33.2.4 2002/09/20 17:36:33 brianp Exp $ */
|
||||
/* $Id: glx.h,v 1.38 2002/10/14 13:52:27 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
* Version: 4.0.3
|
||||
* Version: 4.1
|
||||
*
|
||||
* Copyright (C) 1999-2002 Brian Paul All Rights Reserved.
|
||||
*
|
||||
@@ -154,6 +154,7 @@ extern "C" {
|
||||
#define GLX_STATIC_COLOR 0x8005
|
||||
#define GLX_GRAY_SCALE 0x8006
|
||||
#define GLX_STATIC_GRAY 0x8007
|
||||
#define GLX_TRANSPARENT_RGB 0x8008
|
||||
#define GLX_TRANSPARENT_INDEX 0x8009
|
||||
#define GLX_RGBA_TYPE 0x8014
|
||||
#define GLX_COLOR_INDEX_TYPE 0x8015
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* $Id: glx_mangle.h,v 1.1.1.1.8.2 2002/09/20 18:32:17 kschultz Exp $ */
|
||||
/* $Id: glx_mangle.h,v 1.2 2001/11/09 22:01:02 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
@@ -41,133 +41,17 @@
|
||||
#define glXWaitGL mglXWaitGL
|
||||
#define glXWaitX mglXWaitX
|
||||
#define glXUseXFont mglXUseXFont
|
||||
|
||||
/* GLX 1.1 */
|
||||
#define glXQueryExtensionsString mglXQueryExtensionsString
|
||||
#define glXQueryServerString mglXQueryServerString
|
||||
#define glXGetClientString mglXGetClientString
|
||||
|
||||
/* GLX 1.2 */
|
||||
#define glXGetCurrentDisplay mglXGetCurrentDisplay
|
||||
|
||||
/* GLX 1.3 */
|
||||
#define glXChooseFBConfig mglXChooseFBConfig
|
||||
#define glXGetFBConfigAttrib mglXGetFBConfigAttrib
|
||||
#define glXGetFBConfigs mglXGetFBConfigs
|
||||
#define glXGetVisualFromFBConfig mglXGetVisualFromFBConfig
|
||||
#define glXCreateWindow mglXCreateWindow
|
||||
#define glXDestroyWindow mglXDestroyWindow
|
||||
#define glXCreatePixmap mglXCreatePixmap
|
||||
#define glXDestroyPixmap mglXDestroyPixmap
|
||||
#define glXCreatePbuffer mglXCreatePbuffer
|
||||
#define glXDestroyPbuffer mglXDestroyPbuffer
|
||||
#define glXQueryDrawable mglXQueryDrawable
|
||||
#define glXCreateNewContext mglXCreateNewContext
|
||||
#define glXMakeContextCurrent mglXMakeContextCurrent
|
||||
#define glXGetCurrentReadDrawable mglXGetCurrentReadDrawable
|
||||
#define glXQueryContext mglXQueryContext
|
||||
#define glXSelectEvent mglXSelectEvent
|
||||
#define glXGetSelectedEvent mglXGetSelectedEvent
|
||||
#define glXCreateGLXPixmapMESA mglXCreateGLXPixmapMESA
|
||||
#define glXReleaseBuffersMESA mglXReleaseBuffersMESA
|
||||
#define glXCopySubBufferMESA mglXCopySubBufferMESA
|
||||
#define glXGetVideoSyncSGI mglXGetVideoSyncSGI
|
||||
#define glXWaitVideoSyncSGI mglXWaitVideoSyncSGI
|
||||
|
||||
/* GLX 1.4 */
|
||||
#define glXGetProcAddress mglXGetProcAddress
|
||||
|
||||
/*
|
||||
* 41. GLX_SGI_video_sync
|
||||
*/
|
||||
#define glXGetVideoSyncSGI mglXGetVideoSyncSGI
|
||||
#define glXWaitVideoSyncSGI mglXWaitVideoSyncSGI
|
||||
|
||||
/*
|
||||
* 47. GLX_EXT_import_context
|
||||
*/
|
||||
#define glXFreeContextEXT mglXFreeContextEXT
|
||||
#define glXGetContextIDEXT mglXGetContextIDEXT
|
||||
#define glXGetCurrentDisplayEXT mglXGetCurrentDisplayEXT
|
||||
#define glXImportContextEXT mglXImportContextEXT
|
||||
#define glXQueryContextInfoEXT mglXQueryContextInfoEXT
|
||||
|
||||
/*
|
||||
* 215. GLX_MESA_copy_sub_buffer
|
||||
*/
|
||||
#define glXCopySubBufferMESA mglXCopySubBufferMESA
|
||||
|
||||
/*
|
||||
* 216. GLX_MESA_pixmap_colormap
|
||||
*/
|
||||
#define glXCreateGLXPixmapMESA mglXCreateGLXPixmapMESA
|
||||
|
||||
/*
|
||||
* 217. GLX_MESA_release_buffers
|
||||
*/
|
||||
#define glXReleaseBuffersMESA mglXReleaseBuffersMESA
|
||||
|
||||
/*
|
||||
* 218. GLX_MESA_set_3dfx_mode
|
||||
*/
|
||||
#define glXSet3DfxModeMESA mglXSet3DfxModeMESA
|
||||
|
||||
/*
|
||||
* ARB 2. GLX_ARB_get_proc_address
|
||||
*/
|
||||
#define glXGetProcAddressARB mglXGetProcAddressARB
|
||||
|
||||
/**
|
||||
** The following aren't in glxext.h yet.
|
||||
**/
|
||||
|
||||
/*
|
||||
* ???. GLX_NV_vertex_array_range
|
||||
*/
|
||||
#define glXAllocateMemoryNV mglXAllocateMemoryNV
|
||||
#define glXFreeMemoryNV mglXFreeMemoryNV
|
||||
|
||||
/*
|
||||
* ???. GLX_MESA_agp_offset
|
||||
*/
|
||||
#define glXGetAGPOffsetMESA mglXGetAGPOffsetMESA
|
||||
|
||||
/*
|
||||
* Other extensions implemented and in glxext.h
|
||||
*/
|
||||
|
||||
#define glXSwapIntervalSGI mglXSwapIntervalSGI
|
||||
#define glXGetVideoSyncSGI mglXGetVideoSyncSGI
|
||||
#define glXWaitVideoSyncSGI mglXWaitVideoSyncSGI
|
||||
#define glXMakeCurrentReadSGI mglXMakeCurrentReadSGI
|
||||
#define glXCushionSGI mglXCushionSGI
|
||||
|
||||
#define glXCreateGLXPixmapMESA mglXCreateGLXPixmapMESA
|
||||
#define glXReleaseBuffersMESA mglXReleaseBuffersMESA
|
||||
#define glXCopySubBufferMESA mglXCopySubBufferMESA
|
||||
|
||||
#define glXGetTransparentIndexSUN mglXGetTransparentIndexSUN
|
||||
|
||||
#define glXBindChannelToWindowSGIX mglXBindChannelToWindowSGIX
|
||||
#define glXBindSwapBarrierSGIX mglXBindSwapBarrierSGIX
|
||||
#define glXChannelRectSGIX mglXChannelRectSGIX
|
||||
#define glXChannelRectSyncSGIX mglXChannelRectSyncSGIX
|
||||
#define glXChooseFBConfigSGIX mglXChooseFBConfigSGIX
|
||||
#define glXCreateContextWithConfigSGIX mglXCreateContextWithConfigSGIX
|
||||
#define glXCreateGLXPbufferSGIX mglXCreateGLXPbufferSGIX
|
||||
#define glXCreateGLXPixmapWithConfigSGIX mglXCreateGLXPixmapWithConfigSGIX
|
||||
#define glXDestroyGLXPbufferSGIX mglXDestroyGLXPbufferSGIX
|
||||
#define glXGetCurrentReadDrawableSGI mglXGetCurrentReadDrawableSGI
|
||||
#define glXGetFBConfigAttribSGIX mglXGetFBConfigAttribSGIX
|
||||
#define glXGetFBConfigFromVisualSGIX mglXGetFBConfigFromVisualSGIX
|
||||
#define glXGetSelectedEventSGIX mglXGetSelectedEventSGIX
|
||||
#define glXGetVisualFromFBConfigSGIX mglXGetVisualFromFBConfigSGIX
|
||||
#define glXJoinSwapGroupSGIX mglXJoinSwapGroupSGIX
|
||||
#define glXQueryChannelDeltasSGIX mglXQueryChannelDeltasSGIX
|
||||
#define glXQueryChannelRectSGIX mglXQueryChannelRectSGIX
|
||||
#define glXQueryGLXPbufferSGIX mglXQueryGLXPbufferSGIX
|
||||
#define glXQueryMaxSwapBarriersSGIX mglXQueryMaxSwapBarriersSGIX
|
||||
#define glXSelectEventSGIX mglXSelectEventSGIX
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@@ -314,7 +314,9 @@ struct __GLdrawablePrivateRec {
|
||||
void (*unlockDP)(__GLdrawablePrivate *glPriv);
|
||||
|
||||
/* exported */
|
||||
#if 0 /* disable, just like in __GLimportsRec */
|
||||
void *wsPriv; /* pointer to the window system DrawablePrivate */
|
||||
#endif
|
||||
#ifdef __cplusplus
|
||||
void *privatePtr;
|
||||
#else
|
||||
@@ -373,8 +375,13 @@ typedef struct __GLimportsRec {
|
||||
/* Drawing surface management */
|
||||
__GLdrawablePrivate *(*getDrawablePrivate)(__GLcontext *gc);
|
||||
|
||||
#if 0
|
||||
/* At some point, this field got removed from the XFree86 glcore.h file.
|
||||
* we're removing it here to prevent interop problems. (Brian)
|
||||
*/
|
||||
/* Pointer to the window system context */
|
||||
void *wscx;
|
||||
#endif
|
||||
|
||||
/* Operating system dependent data goes here */
|
||||
void *other;
|
||||
|
@@ -1,8 +1,8 @@
|
||||
/* $Id: osmesa.h,v 1.9.2.1 2002/04/26 13:53:09 brianp Exp $ */
|
||||
/* $Id: osmesa.h,v 1.10 2002/04/04 16:58:04 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
* Version: 4.0.3
|
||||
* Version: 4.1
|
||||
*
|
||||
* Copyright (C) 1999-2002 Brian Paul All Rights Reserved.
|
||||
*
|
||||
@@ -63,8 +63,8 @@ extern "C" {
|
||||
|
||||
|
||||
#define OSMESA_MAJOR_VERSION 4
|
||||
#define OSMESA_MINOR_VERSION 0
|
||||
#define OSMESA_PATCH_VERSION 3
|
||||
#define OSMESA_MINOR_VERSION 1
|
||||
#define OSMESA_PATCH_VERSION 0
|
||||
|
||||
|
||||
|
||||
@@ -254,6 +254,15 @@ OSMesaGetColorBuffer( OSMesaContext c, GLint *width, GLint *height,
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Return pointer to the named function.
|
||||
*
|
||||
* New in Mesa 4.1
|
||||
*/
|
||||
GLAPI void * GLAPIENTRY
|
||||
OSMesaGetProcAddress( const char *funcName );
|
||||
|
||||
|
||||
#if defined(__BEOS__) || defined(__QUICKDRAW__)
|
||||
#pragma export off
|
||||
#endif
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* $Id: wmesa.h,v 1.1.1.1.8.1 2002/04/23 18:24:41 kschultz Exp $ */
|
||||
/* $Id: wmesa.h,v 1.2 2002/04/23 18:23:32 kschultz Exp $ */
|
||||
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
/*
|
||||
* $Log: wmesa.h,v $
|
||||
* Revision 1.1.1.1.8.1 2002/04/23 18:24:41 kschultz
|
||||
* Revision 1.2 2002/04/23 18:23:32 kschultz
|
||||
* Fix up alpha buffer handling for Windows.
|
||||
* - add two new Pixel Format Descriptors that do not have alpha bits to
|
||||
* mirror the two that do.
|
||||
|
@@ -1,10 +1,10 @@
|
||||
/* $Id: xmesa.h,v 1.12.2.2 2002/04/26 13:53:09 brianp Exp $ */
|
||||
/* $Id: xmesa.h,v 1.14 2002/10/05 03:03:37 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
* Version: 4.0.3
|
||||
* Version: 4.1
|
||||
*
|
||||
* Copyright (C) 1999-2003 Brian Paul All Rights Reserved.
|
||||
* Copyright (C) 1999-2002 Brian Paul All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
@@ -90,7 +90,7 @@ extern struct Library *XLibBase;
|
||||
|
||||
|
||||
#define XMESA_MAJOR_VERSION 4
|
||||
#define XMESA_MINOR_VERSION 0
|
||||
#define XMESA_MINOR_VERSION 1
|
||||
|
||||
|
||||
|
||||
@@ -374,6 +374,16 @@ extern GLboolean XMesaSetFXmode( GLint mode );
|
||||
extern void XMesaResizeBuffers( XMesaBuffer b );
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Create a pbuffer.
|
||||
* New in Mesa 4.1
|
||||
*/
|
||||
extern XMesaBuffer XMesaCreatePBuffer(XMesaVisual v, XMesaColormap cmap,
|
||||
unsigned int width, unsigned int height);
|
||||
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@@ -32,7 +32,7 @@ class SampleGLWindow : public BWindow
|
||||
{
|
||||
public:
|
||||
SampleGLWindow(BRect frame, uint32 type);
|
||||
virtual bool QuitRequested() { return true; }
|
||||
virtual bool QuitRequested() { be_app->PostMessage(B_QUIT_REQUESTED); return true; }
|
||||
|
||||
private:
|
||||
SampleGLView *theView;
|
||||
@@ -135,7 +135,7 @@ void SampleGLView::gInit(void)
|
||||
use_stipple_mode = GL_FALSE;
|
||||
use_smooth_mode = GL_TRUE;
|
||||
linesize = 2;
|
||||
pointsize = 4;
|
||||
pointsize = 6;
|
||||
}
|
||||
|
||||
|
||||
@@ -147,35 +147,46 @@ void SampleGLView::gDraw(void)
|
||||
glClear(GL_COLOR_BUFFER_BIT);
|
||||
glLineWidth(linesize);
|
||||
|
||||
/*
|
||||
|
||||
if (use_stipple_mode) {
|
||||
glEnable(GL_LINE_STIPPLE);
|
||||
} else {
|
||||
glDisable(GL_LINE_STIPPLE);
|
||||
}
|
||||
|
||||
if (use_smooth_mode) {
|
||||
glEnable(GL_LINE_SMOOTH);
|
||||
glEnable(GL_BLEND);
|
||||
} else {
|
||||
glDisable(GL_LINE_SMOOTH);
|
||||
glDisable(GL_BLEND);
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
glDisable(GL_POINT_SMOOTH);
|
||||
|
||||
|
||||
glPushMatrix();
|
||||
|
||||
glPointSize(pointsize); // Set size for point
|
||||
|
||||
for (i = 0; i < 360; i += 5) {
|
||||
glRotatef(5.0, 0,0,1); // Rotate right 5 degrees
|
||||
|
||||
if (use_smooth_mode) {
|
||||
glEnable(GL_LINE_SMOOTH);
|
||||
glEnable(GL_BLEND);
|
||||
} else {
|
||||
glDisable(GL_LINE_SMOOTH);
|
||||
glDisable(GL_BLEND);
|
||||
}
|
||||
|
||||
glColor3f(1.0, 1.0, 0.0); // Set color for line
|
||||
glBegin(GL_LINE_STRIP); // And create the line
|
||||
glVertex3fv(pntA);
|
||||
glVertex3fv(pntB);
|
||||
glVertex3fv(pntA);
|
||||
glVertex3fv(pntB);
|
||||
glEnd();
|
||||
|
||||
glPointSize(pointsize); // Set size for point
|
||||
|
||||
glDisable(GL_POINT_SMOOTH);
|
||||
glDisable(GL_BLEND);
|
||||
|
||||
glColor3f(0.0, 1.0, 0.0); // Set color for point
|
||||
glBegin(GL_POINTS);
|
||||
glVertex3fv(pntA); // Draw point at one end
|
||||
glVertex3fv(pntB); // Draw point at other end
|
||||
glVertex3fv(pntA); // Draw point at one end
|
||||
glVertex3fv(pntB); // Draw point at other end
|
||||
glEnd();
|
||||
}
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
# $Id: Makefile.win,v 1.5.2.2 2002/04/15 22:14:09 kschultz Exp $
|
||||
# $Id: Makefile.win,v 1.7 2002/01/16 00:48:43 kschultz Exp $
|
||||
|
||||
# Mesa 3-D graphics library
|
||||
# Version: 3.5
|
||||
|
@@ -1,36 +1,10 @@
|
||||
/* $Id: clearspd.c,v 1.3 2000/12/07 21:50:39 brianp Exp $ */
|
||||
/* $Id: clearspd.c,v 1.5 2002/10/31 12:38:32 keithw Exp $ */
|
||||
|
||||
/*
|
||||
* Simple GLUT program to measure glClear() and glutSwapBuffers() speed.
|
||||
* Brian Paul February 15, 1997 This file in public domain.
|
||||
*/
|
||||
|
||||
/*
|
||||
* $Log: clearspd.c,v $
|
||||
* Revision 1.3 2000/12/07 21:50:39 brianp
|
||||
* call glFinish() before getting t1 time
|
||||
*
|
||||
* Revision 1.2 2000/04/10 16:25:15 brianp
|
||||
* fixed visual selection and reporting results
|
||||
*
|
||||
* Revision 1.1.1.1 1999/08/19 00:55:40 jtg
|
||||
* Imported sources
|
||||
*
|
||||
* Revision 3.3 1999/03/28 18:18:33 brianp
|
||||
* minor clean-up
|
||||
*
|
||||
* Revision 3.2 1999/03/18 08:16:34 joukj
|
||||
*
|
||||
* cmpstr needs string.h to included to avoid warnings
|
||||
*
|
||||
* Revision 3.1 1998/06/29 02:38:30 brianp
|
||||
* removed unneeded includes
|
||||
*
|
||||
* Revision 3.0 1998/02/14 18:42:29 brianp
|
||||
* initial rev
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
@@ -87,6 +61,12 @@ static void Display( void )
|
||||
glutSwapBuffers();
|
||||
}
|
||||
|
||||
/* NOTE: If clearspd doesn't map it's window immediately on
|
||||
* starting, swaps will be istantaneous, so this will send Loops
|
||||
* towards infinity. When a window is finally mapped, it may be
|
||||
* minutes before the first call to glutSwapBuffers, making it look
|
||||
* like there's a driver bug.
|
||||
*/
|
||||
if (t1-t0 < MinPeriod) {
|
||||
/* Next time do more clears to get longer elapsed time */
|
||||
Loops *= 2;
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* $Id: cubemap.c,v 1.3 2000/06/27 17:04:43 brianp Exp $ */
|
||||
/* $Id: cubemap.c,v 1.4 2002/10/25 17:20:26 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* GL_ARB_texture_cube_map demo
|
||||
@@ -36,25 +36,100 @@
|
||||
*/
|
||||
|
||||
|
||||
#include <assert.h>
|
||||
#include <math.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include "GL/glut.h"
|
||||
#include "../util/readtex.c" /* a hack */
|
||||
|
||||
|
||||
static GLfloat Xrot = 0, Yrot = 0;
|
||||
static GLfloat EyeDist = 10;
|
||||
|
||||
|
||||
static void draw_skybox( void )
|
||||
{
|
||||
const GLfloat eps1 = 0.99;
|
||||
const GLfloat br = 20.0; /* box radius */
|
||||
|
||||
glBegin(GL_QUADS);
|
||||
|
||||
/* +X side */
|
||||
glTexCoord3f(1.0, -eps1, -eps1); glVertex3f(br, -br, -br);
|
||||
glTexCoord3f(1.0, -eps1, eps1); glVertex3f(br, -br, br);
|
||||
glTexCoord3f(1.0, eps1, eps1); glVertex3f(br, br, br);
|
||||
glTexCoord3f(1.0, eps1, -eps1); glVertex3f(br, br, -br);
|
||||
|
||||
/* -X side */
|
||||
glTexCoord3f(-1.0, eps1, -eps1); glVertex3f(-br, br, -br);
|
||||
glTexCoord3f(-1.0, eps1, eps1); glVertex3f(-br, br, br);
|
||||
glTexCoord3f(-1.0, -eps1, eps1); glVertex3f(-br, -br, br);
|
||||
glTexCoord3f(-1.0, -eps1, -eps1); glVertex3f(-br, -br, -br);
|
||||
|
||||
/* +Y side */
|
||||
glTexCoord3f(-eps1, 1.0, -eps1); glVertex3f(-br, br, -br);
|
||||
glTexCoord3f(-eps1, 1.0, eps1); glVertex3f(-br, br, br);
|
||||
glTexCoord3f( eps1, 1.0, eps1); glVertex3f( br, br, br);
|
||||
glTexCoord3f( eps1, 1.0, -eps1); glVertex3f( br, br, -br);
|
||||
|
||||
/* -Y side */
|
||||
glTexCoord3f(-eps1, -1.0, -eps1); glVertex3f(-br, -br, -br);
|
||||
glTexCoord3f(-eps1, -1.0, eps1); glVertex3f(-br, -br, br);
|
||||
glTexCoord3f( eps1, -1.0, eps1); glVertex3f( br, -br, br);
|
||||
glTexCoord3f( eps1, -1.0, -eps1); glVertex3f( br, -br, -br);
|
||||
|
||||
/* +Z side */
|
||||
glTexCoord3f( eps1, -eps1, 1.0); glVertex3f( br, -br, br);
|
||||
glTexCoord3f(-eps1, -eps1, 1.0); glVertex3f(-br, -br, br);
|
||||
glTexCoord3f(-eps1, eps1, 1.0); glVertex3f(-br, br, br);
|
||||
glTexCoord3f( eps1, eps1, 1.0); glVertex3f( br, br, br);
|
||||
|
||||
/* -Z side */
|
||||
glTexCoord3f( eps1, eps1, -1.0); glVertex3f( br, br, -br);
|
||||
glTexCoord3f(-eps1, eps1, -1.0); glVertex3f(-br, br, -br);
|
||||
glTexCoord3f(-eps1, -eps1, -1.0); glVertex3f(-br, -br, -br);
|
||||
glTexCoord3f( eps1, -eps1, -1.0); glVertex3f( br, -br, -br);
|
||||
|
||||
glEnd();
|
||||
}
|
||||
|
||||
|
||||
static void draw( void )
|
||||
{
|
||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||
|
||||
glMatrixMode(GL_TEXTURE);
|
||||
glLoadIdentity();
|
||||
glRotatef(Xrot, 1, 0, 0);
|
||||
glRotatef(Yrot, 0, 1, 0);
|
||||
glutSolidSphere(2.0, 20, 20);
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
glPushMatrix(); /*MODELVIEW*/
|
||||
glTranslatef( 0.0, 0.0, -EyeDist );
|
||||
|
||||
/* skybox */
|
||||
glDisable(GL_TEXTURE_GEN_S);
|
||||
glDisable(GL_TEXTURE_GEN_T);
|
||||
glDisable(GL_TEXTURE_GEN_R);
|
||||
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
glPushMatrix();
|
||||
glRotatef(Xrot, 1, 0, 0);
|
||||
glRotatef(Yrot, 0, 1, 0);
|
||||
draw_skybox();
|
||||
glPopMatrix();
|
||||
|
||||
/* sphere */
|
||||
glMatrixMode(GL_TEXTURE);
|
||||
glLoadIdentity();
|
||||
glRotatef(-Yrot, 0, 1, 0);
|
||||
glRotatef(-Xrot, 1, 0, 0);
|
||||
|
||||
glEnable(GL_TEXTURE_GEN_S);
|
||||
glEnable(GL_TEXTURE_GEN_T);
|
||||
glEnable(GL_TEXTURE_GEN_R);
|
||||
glutSolidSphere(2.0, 20, 20);
|
||||
|
||||
glLoadIdentity(); /* texture */
|
||||
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
glPopMatrix();
|
||||
|
||||
glutSwapBuffers();
|
||||
}
|
||||
@@ -62,7 +137,8 @@ static void draw( void )
|
||||
|
||||
static void idle(void)
|
||||
{
|
||||
Yrot += 5.0;
|
||||
GLfloat t = 0.05 * glutGet(GLUT_ELAPSED_TIME);
|
||||
Yrot = t;
|
||||
glutPostRedisplay();
|
||||
}
|
||||
|
||||
@@ -81,9 +157,6 @@ static void set_mode(GLuint mode)
|
||||
glTexGeni(GL_R, GL_TEXTURE_GEN_MODE, GL_NORMAL_MAP_ARB);
|
||||
printf("GL_NORMAL_MAP_ARB mode\n");
|
||||
}
|
||||
glEnable(GL_TEXTURE_GEN_S);
|
||||
glEnable(GL_TEXTURE_GEN_T);
|
||||
glEnable(GL_TEXTURE_GEN_R);
|
||||
}
|
||||
|
||||
|
||||
@@ -105,6 +178,16 @@ static void key(unsigned char k, int x, int y)
|
||||
mode = !mode;
|
||||
set_mode(mode);
|
||||
break;
|
||||
case 'z':
|
||||
EyeDist -= 0.5;
|
||||
if (EyeDist < 6.0)
|
||||
EyeDist = 6.0;
|
||||
break;
|
||||
case 'Z':
|
||||
EyeDist += 0.5;
|
||||
if (EyeDist > 90.0)
|
||||
EyeDist = 90;
|
||||
break;
|
||||
case 27:
|
||||
exit(0);
|
||||
}
|
||||
@@ -114,15 +197,15 @@ static void key(unsigned char k, int x, int y)
|
||||
|
||||
static void specialkey(int key, int x, int y)
|
||||
{
|
||||
GLfloat step = 10;
|
||||
GLfloat step = 5;
|
||||
(void) x;
|
||||
(void) y;
|
||||
switch (key) {
|
||||
case GLUT_KEY_UP:
|
||||
Xrot -= step;
|
||||
Xrot += step;
|
||||
break;
|
||||
case GLUT_KEY_DOWN:
|
||||
Xrot += step;
|
||||
Xrot -= step;
|
||||
break;
|
||||
case GLUT_KEY_LEFT:
|
||||
Yrot -= step;
|
||||
@@ -138,17 +221,17 @@ static void specialkey(int key, int x, int y)
|
||||
/* new window size or exposure */
|
||||
static void reshape(int width, int height)
|
||||
{
|
||||
GLfloat ar = (float) width / (float) height;
|
||||
glViewport(0, 0, (GLint)width, (GLint)height);
|
||||
glMatrixMode(GL_PROJECTION);
|
||||
glLoadIdentity();
|
||||
glFrustum( -2.0, 2.0, -2.0, 2.0, 6.0, 20.0 );
|
||||
glFrustum( -2.0*ar, 2.0*ar, -2.0, 2.0, 4.0, 100.0 );
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
glLoadIdentity();
|
||||
glTranslatef( 0.0, 0.0, -8.0 );
|
||||
}
|
||||
|
||||
|
||||
static void init( void )
|
||||
static void init_checkers( void )
|
||||
{
|
||||
#define CUBE_TEX_SIZE 64
|
||||
GLubyte image[CUBE_TEX_SIZE][CUBE_TEX_SIZE][3];
|
||||
@@ -171,16 +254,6 @@ static void init( void )
|
||||
|
||||
GLint i, j, f;
|
||||
|
||||
/* check for extension */
|
||||
{
|
||||
char *exten = (char *) glGetString(GL_EXTENSIONS);
|
||||
if (!strstr(exten, "GL_ARB_texture_cube_map")) {
|
||||
printf("Sorry, this demo requires GL_ARB_texture_cube_map\n");
|
||||
exit(0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
|
||||
|
||||
/* make colored checkerboard cube faces */
|
||||
@@ -203,18 +276,102 @@ static void init( void )
|
||||
glTexImage2D(targets[f], 0, GL_RGB, CUBE_TEX_SIZE, CUBE_TEX_SIZE, 0,
|
||||
GL_RGB, GL_UNSIGNED_BYTE, image);
|
||||
}
|
||||
}
|
||||
|
||||
#if 1
|
||||
glTexParameteri(GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
|
||||
glTexParameteri(GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
|
||||
#else
|
||||
glTexParameteri(GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
|
||||
glTexParameteri(GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
|
||||
#endif
|
||||
|
||||
static void load(GLenum target, const char *filename,
|
||||
GLboolean flipTB, GLboolean flipLR)
|
||||
{
|
||||
GLint w, h;
|
||||
GLenum format;
|
||||
GLubyte *img = LoadRGBImage( filename, &w, &h, &format );
|
||||
if (!img) {
|
||||
printf("Error: couldn't load texture image %s\n", filename);
|
||||
exit(1);
|
||||
}
|
||||
assert(format == GL_RGB);
|
||||
|
||||
/* <sigh> the way the texture cube mapping works, we have to flip
|
||||
* images to make things look right.
|
||||
*/
|
||||
if (flipTB) {
|
||||
const int stride = 3 * w;
|
||||
GLubyte temp[3*1024];
|
||||
int i;
|
||||
for (i = 0; i < h / 2; i++) {
|
||||
memcpy(temp, img + i * stride, stride);
|
||||
memcpy(img + i * stride, img + (h - i - 1) * stride, stride);
|
||||
memcpy(img + (h - i - 1) * stride, temp, stride);
|
||||
}
|
||||
}
|
||||
if (flipLR) {
|
||||
const int stride = 3 * w;
|
||||
GLubyte temp[3];
|
||||
GLubyte *row;
|
||||
int i, j;
|
||||
for (i = 0; i < h; i++) {
|
||||
row = img + i * stride;
|
||||
for (j = 0; j < w / 2; j++) {
|
||||
int k = w - j - 1;
|
||||
temp[0] = row[j*3+0];
|
||||
temp[1] = row[j*3+1];
|
||||
temp[2] = row[j*3+2];
|
||||
row[j*3+0] = row[k*3+0];
|
||||
row[j*3+1] = row[k*3+1];
|
||||
row[j*3+2] = row[k*3+2];
|
||||
row[k*3+0] = temp[0];
|
||||
row[k*3+1] = temp[1];
|
||||
row[k*3+2] = temp[2];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
gluBuild2DMipmaps(target, GL_RGB, w, h, format, GL_UNSIGNED_BYTE, img);
|
||||
free(img);
|
||||
}
|
||||
|
||||
|
||||
static void load_envmaps(void)
|
||||
{
|
||||
load(GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB, "right.rgb", GL_TRUE, GL_FALSE);
|
||||
load(GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB, "left.rgb", GL_TRUE, GL_FALSE);
|
||||
load(GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB, "top.rgb", GL_FALSE, GL_TRUE);
|
||||
load(GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB, "bottom.rgb", GL_FALSE, GL_TRUE);
|
||||
load(GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB, "front.rgb", GL_TRUE, GL_FALSE);
|
||||
load(GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB, "back.rgb", GL_TRUE, GL_FALSE);
|
||||
}
|
||||
|
||||
|
||||
static void init( GLboolean useImageFiles )
|
||||
{
|
||||
GLenum filter;
|
||||
|
||||
/* check for extension */
|
||||
{
|
||||
char *exten = (char *) glGetString(GL_EXTENSIONS);
|
||||
if (!strstr(exten, "GL_ARB_texture_cube_map")) {
|
||||
printf("Sorry, this demo requires GL_ARB_texture_cube_map\n");
|
||||
exit(0);
|
||||
}
|
||||
}
|
||||
printf("GL_RENDERER: %s\n", (char *) glGetString(GL_RENDERER));
|
||||
|
||||
if (useImageFiles) {
|
||||
load_envmaps();
|
||||
filter = GL_LINEAR;
|
||||
}
|
||||
else {
|
||||
init_checkers();
|
||||
filter = GL_NEAREST;
|
||||
}
|
||||
|
||||
glTexParameteri(GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_MIN_FILTER, filter);
|
||||
glTexParameteri(GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_MAG_FILTER, filter);
|
||||
glTexParameteri(GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
|
||||
glTexParameteri(GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
|
||||
|
||||
glEnable(GL_TEXTURE_CUBE_MAP_ARB);
|
||||
glEnable(GL_DEPTH_TEST);
|
||||
|
||||
glClearColor(.3, .3, .3, 0);
|
||||
glColor3f( 1.0, 1.0, 1.0 );
|
||||
@@ -229,16 +386,21 @@ static void usage(void)
|
||||
printf(" SPACE - toggle animation\n");
|
||||
printf(" CURSOR KEYS - rotation\n");
|
||||
printf(" m - toggle texgen reflection mode\n");
|
||||
printf(" z/Z - change viewing distance\n");
|
||||
}
|
||||
|
||||
|
||||
int main( int argc, char *argv[] )
|
||||
{
|
||||
glutInitWindowPosition(0, 0);
|
||||
glutInitWindowSize(300, 300);
|
||||
glutInitWindowSize(600, 500);
|
||||
glutInitDisplayMode( GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE );
|
||||
glutCreateWindow("Texture Cube Maping");
|
||||
init();
|
||||
|
||||
if (argc > 1 && strcmp(argv[1] , "-i") == 0)
|
||||
init( 1 );
|
||||
else
|
||||
init( 0 );
|
||||
glutReshapeFunc( reshape );
|
||||
glutKeyboardFunc( key );
|
||||
glutSpecialFunc( specialkey );
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* $Id: drawpix.c,v 1.5.2.2 2002/09/13 18:15:09 brianp Exp $ */
|
||||
/* $Id: drawpix.c,v 1.8 2002/07/12 15:54:02 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* glDrawPixels demo/test/benchmark
|
||||
@@ -6,7 +6,6 @@
|
||||
* Brian Paul September 25, 1997 This file is in the public domain.
|
||||
*/
|
||||
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
@@ -24,6 +23,8 @@ static int Xpos, Ypos;
|
||||
static int SkipPixels, SkipRows;
|
||||
static int DrawWidth, DrawHeight;
|
||||
static int Scissor = 0;
|
||||
static int Fog = 0;
|
||||
static GLfloat Zpos = -1.0;
|
||||
static float Xzoom, Yzoom;
|
||||
static GLboolean DrawFront = GL_FALSE;
|
||||
static GLboolean Dither = GL_TRUE;
|
||||
@@ -36,6 +37,8 @@ static void Reset( void )
|
||||
DrawHeight = ImgHeight;
|
||||
SkipPixels = SkipRows = 0;
|
||||
Scissor = 0;
|
||||
Fog = 0;
|
||||
Zpos = -1.0;
|
||||
Xzoom = Yzoom = 1.0;
|
||||
}
|
||||
|
||||
@@ -48,7 +51,7 @@ static void Display( void )
|
||||
glRasterPos2i(Xpos, Ypos);
|
||||
#else
|
||||
/* This allows negative raster positions: */
|
||||
glRasterPos2i(0, 0);
|
||||
glRasterPos3f(0, 0, Zpos);
|
||||
glBitmap(0, 0, 0, 0, Xpos, Ypos, NULL);
|
||||
#endif
|
||||
|
||||
@@ -60,9 +63,13 @@ static void Display( void )
|
||||
if (Scissor)
|
||||
glEnable(GL_SCISSOR_TEST);
|
||||
|
||||
if (Fog)
|
||||
glEnable(GL_FOG);
|
||||
|
||||
glDrawPixels(DrawWidth, DrawHeight, ImgFormat, GL_UNSIGNED_BYTE, Image);
|
||||
|
||||
glDisable(GL_SCISSOR_TEST);
|
||||
glDisable(GL_FOG);
|
||||
|
||||
if (!DrawFront)
|
||||
glutSwapBuffers();
|
||||
@@ -82,6 +89,8 @@ static void Benchmark( void )
|
||||
glPixelZoom( Xzoom, Yzoom );
|
||||
if (Scissor)
|
||||
glEnable(GL_SCISSOR_TEST);
|
||||
if (Fog)
|
||||
glEnable(GL_FOG);
|
||||
|
||||
if (DrawFront)
|
||||
glDrawBuffer(GL_FRONT);
|
||||
@@ -99,6 +108,7 @@ static void Benchmark( void )
|
||||
|
||||
/* GL clean-up */
|
||||
glDisable(GL_SCISSOR_TEST);
|
||||
glDisable(GL_FOG);
|
||||
|
||||
/* Results */
|
||||
seconds = (double) (endTime - startTime) / 1000.0;
|
||||
@@ -113,7 +123,7 @@ static void Reshape( int width, int height )
|
||||
glViewport( 0, 0, width, height );
|
||||
glMatrixMode( GL_PROJECTION );
|
||||
glLoadIdentity();
|
||||
glOrtho( 0.0, width, 0.0, height, -1.0, 1.0 );
|
||||
glOrtho( 0.0, width, 0.0, height, 0.0, 2.0 );
|
||||
glMatrixMode( GL_MODELVIEW );
|
||||
glLoadIdentity();
|
||||
|
||||
@@ -179,9 +189,21 @@ static void Key( unsigned char key, int x, int y )
|
||||
case 'Y':
|
||||
Yzoom += 0.1;
|
||||
break;
|
||||
case 'z':
|
||||
Zpos -= 0.1;
|
||||
printf("RasterPos Z = %g\n", Zpos);
|
||||
break;
|
||||
case 'Z':
|
||||
Zpos += 0.1;
|
||||
printf("RasterPos Z = %g\n", Zpos);
|
||||
break;
|
||||
case 'b':
|
||||
Benchmark();
|
||||
break;
|
||||
case 'F':
|
||||
Fog = !Fog;
|
||||
printf("Fog %d\n", Fog);
|
||||
break;
|
||||
case 'f':
|
||||
DrawFront = !DrawFront;
|
||||
if (DrawFront)
|
||||
@@ -222,6 +244,8 @@ static void SpecialKey( int key, int x, int y )
|
||||
|
||||
static void Init( GLboolean ciMode )
|
||||
{
|
||||
static const GLfloat fogColor[4] = {0, 1, 0, 0};
|
||||
|
||||
printf("GL_VERSION = %s\n", (char *) glGetString(GL_VERSION));
|
||||
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
|
||||
|
||||
@@ -254,6 +278,11 @@ static void Init( GLboolean ciMode )
|
||||
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
|
||||
glPixelStorei(GL_UNPACK_ROW_LENGTH, ImgWidth);
|
||||
|
||||
glFogi(GL_FOG_MODE, GL_LINEAR);
|
||||
glFogf(GL_FOG_START, 0);
|
||||
glFogf(GL_FOG_END, 2);
|
||||
glFogfv(GL_FOG_COLOR, fogColor);
|
||||
|
||||
Reset();
|
||||
}
|
||||
|
||||
@@ -277,6 +306,10 @@ static void Usage(void)
|
||||
printf(" r Decrease GL_UNPACK_SKIP_ROWS*\n");
|
||||
printf(" R Increase GL_UNPACK_SKIP_ROWS*\n");
|
||||
printf(" s Toggle GL_SCISSOR_TEST\n");
|
||||
printf(" F Toggle GL_FOG\n");
|
||||
printf(" z Decrease RasterPos Z\n");
|
||||
printf(" Z Increase RasterPos Z\n");
|
||||
|
||||
printf(" f Toggle front/back buffer drawing\n");
|
||||
printf(" b Benchmark test\n");
|
||||
printf(" ESC Exit\n");
|
||||
|
@@ -660,7 +660,7 @@ inittextures(void)
|
||||
|
||||
if ((gluerr = gluBuild2DMipmaps(GL_TEXTURE_2D, 4, 128, 128, GL_RGBA,
|
||||
GL_UNSIGNED_BYTE, (GLvoid *) (tex)))) {
|
||||
fprintf(stderr, "GLULib%s\n", gluErrorString(gluerr));
|
||||
fprintf(stderr, "GLULib%s\n", (char *) gluErrorString(gluerr));
|
||||
exit(-1);
|
||||
}
|
||||
}
|
||||
|
@@ -1,5 +1,4 @@
|
||||
|
||||
/* $Id: gamma.c,v 1.2 2000/03/18 01:13:29 brianp Exp $ */
|
||||
/* $Id: gamma.c,v 1.3 2002/04/22 16:03:37 brianp Exp $ */
|
||||
|
||||
/* Draw test patterns to help determine correct gamma value for a display.
|
||||
When the intensities of the inner squares nearly match the intensities
|
||||
@@ -23,22 +22,6 @@
|
||||
|
||||
/* Conversion to GLUT by Mark J. Kilgard */
|
||||
|
||||
/*
|
||||
* $Log: gamma.c,v $
|
||||
* Revision 1.2 2000/03/18 01:13:29 brianp
|
||||
* colors were computed incorrectly (Hans Nelles)
|
||||
*
|
||||
* Revision 1.1.1.1 1999/08/19 00:55:40 jtg
|
||||
* Imported sources
|
||||
*
|
||||
* Revision 3.1 1999/06/19 01:35:38 brianp
|
||||
* merged in Kai Schuetz's RGB changes
|
||||
*
|
||||
* Revision 3.0 1998/02/14 18:42:29 brianp
|
||||
* initial rev
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* $Id: glinfo.c,v 1.1 1999/08/19 00:55:40 jtg Exp $ */
|
||||
/* $Id: glinfo.c,v 1.2 2002/04/22 16:03:37 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* Print GL, GLU and GLUT version and extension info
|
||||
@@ -8,23 +8,6 @@
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* $Log: glinfo.c,v $
|
||||
* Revision 1.1 1999/08/19 00:55:40 jtg
|
||||
* Initial revision
|
||||
*
|
||||
* Revision 3.2 1999/02/02 04:45:49 brianp
|
||||
* include stdio.h before glut.h
|
||||
*
|
||||
* Revision 3.1 1998/02/22 16:42:54 brianp
|
||||
* added casts to prevent compiler warnings
|
||||
*
|
||||
* Revision 3.0 1998/02/14 18:42:29 brianp
|
||||
* initial rev
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
#include <stdio.h>
|
||||
#include <GL/glut.h>
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* $Id: glutfx.c,v 1.2 2000/06/27 17:04:43 brianp Exp $ */
|
||||
/* $Id: glutfx.c,v 1.3 2002/04/22 16:03:37 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* Example of how one might use GLUT with the 3Dfx driver in full-screen mode.
|
||||
@@ -14,25 +14,6 @@
|
||||
* Brian Paul This file is in the public domain.
|
||||
*/
|
||||
|
||||
/*
|
||||
* $Log: glutfx.c,v $
|
||||
* Revision 1.2 2000/06/27 17:04:43 brianp
|
||||
* fixed compiler warnings
|
||||
*
|
||||
* Revision 1.1.1.1 1999/08/19 00:55:40 jtg
|
||||
* Imported sources
|
||||
*
|
||||
* Revision 3.2 1999/03/28 18:18:33 brianp
|
||||
* minor clean-up
|
||||
*
|
||||
* Revision 3.1 1998/06/29 02:37:30 brianp
|
||||
* minor changes for Windows (Ted Jump)
|
||||
*
|
||||
* Revision 3.0 1998/02/14 18:42:29 brianp
|
||||
* initial rev
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
@@ -186,7 +186,7 @@ inittextures(void)
|
||||
(gluerr =
|
||||
gluBuild2DMipmaps(GL_TEXTURE_2D, 3, TEX_SKY_WIDTH, TEX_SKY_HEIGHT,
|
||||
GL_RGB, GL_UNSIGNED_BYTE, (GLvoid *) (tsky)))) {
|
||||
fprintf(stderr, "GLULib%s\n", gluErrorString(gluerr));
|
||||
fprintf(stderr, "GLULib%s\n", (char *) gluErrorString(gluerr));
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* $Id: isosurf.c,v 1.13.2.2 2002/09/10 23:35:38 kschultz Exp $ */
|
||||
/* $Id: isosurf.c,v 1.15 2002/10/18 17:47:35 kschultz Exp $ */
|
||||
|
||||
/*
|
||||
* Display an isosurface of 3-D wind speed volume.
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* $Id: multiarb.c,v 1.10.2.2 2002/09/13 18:15:09 brianp Exp $ */
|
||||
/* $Id: multiarb.c,v 1.11 2002/02/13 02:23:33 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* GL_ARB_multitexture demo
|
||||
@@ -8,6 +8,7 @@
|
||||
*
|
||||
*
|
||||
* Brian Paul November 1998 This program is in the public domain.
|
||||
* Modified on 12 Feb 2002 for > 2 texture units.
|
||||
*/
|
||||
|
||||
|
||||
@@ -15,7 +16,6 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#define GL_GLEXT_PROTOTYPES
|
||||
#include <GL/glut.h>
|
||||
|
||||
#include "readtex.c" /* I know, this is a hack. */
|
||||
@@ -24,12 +24,13 @@
|
||||
#define TEXTURE_2_FILE "../images/reflect.rgb"
|
||||
|
||||
#define TEX0 1
|
||||
#define TEX1 2
|
||||
#define TEXBOTH 3
|
||||
#define TEX7 8
|
||||
#define ANIMATE 10
|
||||
#define QUIT 100
|
||||
|
||||
static GLboolean Animate = GL_TRUE;
|
||||
static GLint NumUnits = 1;
|
||||
static GLboolean TexEnabled[8];
|
||||
|
||||
static GLfloat Drift = 0.0;
|
||||
static GLfloat Xrot = 20.0, Yrot = 30.0, Zrot = 0.0;
|
||||
@@ -39,24 +40,30 @@ static GLfloat Xrot = 20.0, Yrot = 30.0, Zrot = 0.0;
|
||||
static void Idle( void )
|
||||
{
|
||||
if (Animate) {
|
||||
GLint i;
|
||||
|
||||
Drift += 0.05;
|
||||
if (Drift >= 1.0)
|
||||
Drift = 0.0;
|
||||
|
||||
#ifdef GL_ARB_multitexture
|
||||
glActiveTextureARB(GL_TEXTURE0_ARB);
|
||||
#endif
|
||||
glMatrixMode(GL_TEXTURE);
|
||||
glLoadIdentity();
|
||||
glTranslatef(Drift, 0.0, 0.0);
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
|
||||
#ifdef GL_ARB_multitexture
|
||||
glActiveTextureARB(GL_TEXTURE1_ARB);
|
||||
#endif
|
||||
glMatrixMode(GL_TEXTURE);
|
||||
glLoadIdentity();
|
||||
glTranslatef(0.0, Drift, 0.0);
|
||||
for (i = 0; i < NumUnits; i++) {
|
||||
glActiveTextureARB(GL_TEXTURE0_ARB + i);
|
||||
glMatrixMode(GL_TEXTURE);
|
||||
glLoadIdentity();
|
||||
if (i == 0) {
|
||||
glTranslatef(Drift, 0.0, 0.0);
|
||||
glScalef(2, 2, 2);
|
||||
}
|
||||
else if (i == 1) {
|
||||
glTranslatef(0.0, Drift, 0.0);
|
||||
}
|
||||
else {
|
||||
glTranslatef(0.5, 0.5, 0.0);
|
||||
glRotatef(180.0 * Drift, 0, 0, 1);
|
||||
glScalef(1.0/i, 1.0/i, 1.0/i);
|
||||
glTranslatef(-0.5, -0.5, 0.0);
|
||||
}
|
||||
}
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
|
||||
glutPostRedisplay();
|
||||
@@ -66,37 +73,30 @@ static void Idle( void )
|
||||
|
||||
static void DrawObject(void)
|
||||
{
|
||||
GLint i;
|
||||
|
||||
if (!TexEnabled[0] && !TexEnabled[1])
|
||||
glColor3f(0.1, 0.1, 0.1); /* add onto this */
|
||||
else
|
||||
glColor3f(1, 1, 1); /* modulate this */
|
||||
|
||||
glBegin(GL_QUADS);
|
||||
|
||||
#ifdef GL_ARB_multitexture
|
||||
glMultiTexCoord2fARB(GL_TEXTURE0_ARB, 0.0, 0.0);
|
||||
glMultiTexCoord2fARB(GL_TEXTURE1_ARB, 0.0, 0.0);
|
||||
for (i = 0; i < NumUnits; i++)
|
||||
glMultiTexCoord2fARB(GL_TEXTURE0_ARB + i, 0.0, 0.0);
|
||||
glVertex2f(-1.0, -1.0);
|
||||
|
||||
glMultiTexCoord2fARB(GL_TEXTURE0_ARB, 2.0, 0.0);
|
||||
glMultiTexCoord2fARB(GL_TEXTURE1_ARB, 1.0, 0.0);
|
||||
for (i = 0; i < NumUnits; i++)
|
||||
glMultiTexCoord2fARB(GL_TEXTURE0_ARB + i, 1.0, 0.0);
|
||||
glVertex2f(1.0, -1.0);
|
||||
|
||||
glMultiTexCoord2fARB(GL_TEXTURE0_ARB, 2.0, 2.0);
|
||||
glMultiTexCoord2fARB(GL_TEXTURE1_ARB, 1.0, 1.0);
|
||||
for (i = 0; i < NumUnits; i++)
|
||||
glMultiTexCoord2fARB(GL_TEXTURE0_ARB + i, 1.0, 1.0);
|
||||
glVertex2f(1.0, 1.0);
|
||||
|
||||
glMultiTexCoord2fARB(GL_TEXTURE0_ARB, 0.0, 2.0);
|
||||
glMultiTexCoord2fARB(GL_TEXTURE1_ARB, 0.0, 1.0);
|
||||
for (i = 0; i < NumUnits; i++)
|
||||
glMultiTexCoord2fARB(GL_TEXTURE0_ARB + i, 0.0, 1.0);
|
||||
glVertex2f(-1.0, 1.0);
|
||||
#else
|
||||
glTexCoord2f(0.0, 0.0);
|
||||
glVertex2f(-1.0, -1.0);
|
||||
|
||||
glTexCoord2f(1.0, 0.0);
|
||||
glVertex2f(1.0, -1.0);
|
||||
|
||||
glTexCoord2f(1.0, 1.0);
|
||||
glVertex2f(1.0, 1.0);
|
||||
|
||||
glTexCoord2f(0.0, 1.0);
|
||||
glVertex2f(-1.0, 1.0);
|
||||
#endif
|
||||
|
||||
glEnd();
|
||||
}
|
||||
@@ -134,16 +134,19 @@ static void Reshape( int width, int height )
|
||||
|
||||
static void ModeMenu(int entry)
|
||||
{
|
||||
GLboolean enable0 = GL_FALSE, enable1 = GL_FALSE;
|
||||
if (entry==TEX0) {
|
||||
enable0 = GL_TRUE;
|
||||
}
|
||||
else if (entry==TEX1) {
|
||||
enable1 = GL_TRUE;
|
||||
}
|
||||
else if (entry==TEXBOTH) {
|
||||
enable0 = GL_TRUE;
|
||||
enable1 = GL_TRUE;
|
||||
if (entry >= TEX0 && entry <= TEX7) {
|
||||
/* toggle */
|
||||
GLint i = entry - TEX0;
|
||||
TexEnabled[i] = !TexEnabled[i];
|
||||
glActiveTextureARB(GL_TEXTURE0_ARB + i);
|
||||
if (TexEnabled[i])
|
||||
glEnable(GL_TEXTURE_2D);
|
||||
else
|
||||
glDisable(GL_TEXTURE_2D);
|
||||
printf("Enabled: ");
|
||||
for (i = 0; i < NumUnits; i++)
|
||||
printf("%d ", (int) TexEnabled[i]);
|
||||
printf("\n");
|
||||
}
|
||||
else if (entry==ANIMATE) {
|
||||
Animate = !Animate;
|
||||
@@ -152,26 +155,6 @@ static void ModeMenu(int entry)
|
||||
exit(0);
|
||||
}
|
||||
|
||||
if (entry != ANIMATE) {
|
||||
#ifdef GL_ARB_multitexture
|
||||
glActiveTextureARB(GL_TEXTURE0_ARB);
|
||||
#endif
|
||||
if (enable0) {
|
||||
glEnable(GL_TEXTURE_2D);
|
||||
}
|
||||
else
|
||||
glDisable(GL_TEXTURE_2D);
|
||||
|
||||
#ifdef GL_ARB_multitexture
|
||||
glActiveTextureARB(GL_TEXTURE1_ARB);
|
||||
#endif
|
||||
if (enable1) {
|
||||
glEnable(GL_TEXTURE_2D);
|
||||
}
|
||||
else
|
||||
glDisable(GL_TEXTURE_2D);
|
||||
}
|
||||
|
||||
glutPostRedisplay();
|
||||
}
|
||||
|
||||
@@ -215,8 +198,8 @@ static void SpecialKey( int key, int x, int y )
|
||||
|
||||
static void Init( int argc, char *argv[] )
|
||||
{
|
||||
GLuint texObj[2];
|
||||
GLint units, size;
|
||||
GLuint texObj[8];
|
||||
GLint size, i;
|
||||
|
||||
const char *exten = (const char *) glGetString(GL_EXTENSIONS);
|
||||
if (!strstr(exten, "GL_ARB_multitexture")) {
|
||||
@@ -224,64 +207,82 @@ static void Init( int argc, char *argv[] )
|
||||
exit(1);
|
||||
}
|
||||
|
||||
glGetIntegerv(GL_MAX_TEXTURE_UNITS_ARB, &units);
|
||||
printf("%d texture units supported\n", units);
|
||||
glGetIntegerv(GL_MAX_TEXTURE_UNITS_ARB, &NumUnits);
|
||||
printf("%d texture units supported\n", NumUnits);
|
||||
if (NumUnits > 8)
|
||||
NumUnits = 8;
|
||||
|
||||
glGetIntegerv(GL_MAX_TEXTURE_SIZE, &size);
|
||||
printf("%d x %d max texture size\n", size, size);
|
||||
|
||||
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
|
||||
|
||||
for (i = 0; i < NumUnits; i++) {
|
||||
if (i < 2)
|
||||
TexEnabled[i] = GL_TRUE;
|
||||
else
|
||||
TexEnabled[i] = GL_FALSE;
|
||||
}
|
||||
|
||||
/* allocate two texture objects */
|
||||
glGenTextures(2, texObj);
|
||||
glGenTextures(NumUnits, texObj);
|
||||
|
||||
/* setup texture obj 0 */
|
||||
glBindTexture(GL_TEXTURE_2D, texObj[0]);
|
||||
#ifdef LINEAR_FILTER
|
||||
/* linear filtering looks much nicer but is much slower for Mesa */
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
|
||||
#else
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
|
||||
#endif
|
||||
if (!LoadRGBMipmaps(TEXTURE_1_FILE, GL_RGB)) {
|
||||
printf("Error: couldn't load texture image\n");
|
||||
exit(1);
|
||||
/* setup the texture objects */
|
||||
for (i = 0; i < NumUnits; i++) {
|
||||
|
||||
glActiveTextureARB(GL_TEXTURE0_ARB + i);
|
||||
glBindTexture(GL_TEXTURE_2D, texObj[i]);
|
||||
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
|
||||
|
||||
if (i == 0) {
|
||||
if (!LoadRGBMipmaps(TEXTURE_1_FILE, GL_RGB)) {
|
||||
printf("Error: couldn't load texture image\n");
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
else if (i == 1) {
|
||||
if (!LoadRGBMipmaps(TEXTURE_2_FILE, GL_RGB)) {
|
||||
printf("Error: couldn't load texture image\n");
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
else {
|
||||
/* checker */
|
||||
GLubyte image[8][8][3];
|
||||
GLint i, j;
|
||||
for (i = 0; i < 8; i++) {
|
||||
for (j = 0; j < 8; j++) {
|
||||
if ((i + j) & 1) {
|
||||
image[i][j][0] = 50;
|
||||
image[i][j][1] = 50;
|
||||
image[i][j][2] = 50;
|
||||
}
|
||||
else {
|
||||
image[i][j][0] = 25;
|
||||
image[i][j][1] = 25;
|
||||
image[i][j][2] = 25;
|
||||
}
|
||||
}
|
||||
}
|
||||
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 8, 8, 0,
|
||||
GL_RGB, GL_UNSIGNED_BYTE, (GLvoid *) image);
|
||||
}
|
||||
|
||||
/* Bind texObj[i] to ith texture unit */
|
||||
if (i < 2)
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
|
||||
else
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_ADD);
|
||||
|
||||
if (TexEnabled[i])
|
||||
glEnable(GL_TEXTURE_2D);
|
||||
}
|
||||
|
||||
|
||||
/* setup texture obj 1 */
|
||||
glBindTexture(GL_TEXTURE_2D, texObj[1]);
|
||||
#ifdef LINEAR_FILTER
|
||||
/* linear filtering looks much nicer but is much slower for Mesa */
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
|
||||
#else
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
|
||||
#endif
|
||||
if (!LoadRGBMipmaps(TEXTURE_2_FILE, GL_RGB)) {
|
||||
printf("Error: couldn't load texture image\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
||||
/* now bind the texture objects to the respective texture units */
|
||||
#ifdef GL_ARB_multitexture
|
||||
glActiveTextureARB(GL_TEXTURE0_ARB);
|
||||
glBindTexture(GL_TEXTURE_2D, texObj[0]);
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
|
||||
glActiveTextureARB(GL_TEXTURE1_ARB);
|
||||
glBindTexture(GL_TEXTURE_2D, texObj[1]);
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
|
||||
#endif
|
||||
|
||||
glShadeModel(GL_FLAT);
|
||||
glClearColor(0.3, 0.3, 0.4, 1.0);
|
||||
|
||||
ModeMenu(TEXBOTH);
|
||||
|
||||
if (argc > 1 && strcmp(argv[1], "-info")==0) {
|
||||
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
|
||||
printf("GL_VERSION = %s\n", (char *) glGetString(GL_VERSION));
|
||||
@@ -293,6 +294,8 @@ static void Init( int argc, char *argv[] )
|
||||
|
||||
int main( int argc, char *argv[] )
|
||||
{
|
||||
GLint i;
|
||||
|
||||
glutInit( &argc, argv );
|
||||
glutInitWindowSize( 300, 300 );
|
||||
glutInitWindowPosition( 0, 0 );
|
||||
@@ -308,9 +311,12 @@ int main( int argc, char *argv[] )
|
||||
glutIdleFunc( Idle );
|
||||
|
||||
glutCreateMenu(ModeMenu);
|
||||
glutAddMenuEntry("Texture 0", TEX0);
|
||||
glutAddMenuEntry("Texture 1", TEX1);
|
||||
glutAddMenuEntry("Multi-texture", TEXBOTH);
|
||||
|
||||
for (i = 0; i < NumUnits; i++) {
|
||||
char s[100];
|
||||
sprintf(s, "Toggle Texture %d", i);
|
||||
glutAddMenuEntry(s, TEX0 + i);
|
||||
}
|
||||
glutAddMenuEntry("Toggle Animation", ANIMATE);
|
||||
glutAddMenuEntry("Quit", QUIT);
|
||||
glutAttachMenu(GLUT_RIGHT_BUTTON);
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* $Id: osdemo.c,v 1.7.2.1 2002/04/15 21:22:36 kschultz Exp $ */
|
||||
/* $Id: osdemo.c,v 1.9 2002/07/12 15:54:19 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* Demo of off-screen Mesa rendering
|
||||
@@ -24,6 +24,7 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include "GL/osmesa.h"
|
||||
#include "GL/glut.h"
|
||||
|
||||
@@ -152,6 +153,7 @@ static void render_image( void )
|
||||
}
|
||||
|
||||
|
||||
#ifdef SAVE_TARGA
|
||||
|
||||
static void
|
||||
write_targa(const char *filename, const GLubyte *buffer, int width, int height)
|
||||
@@ -192,6 +194,7 @@ write_targa(const char *filename, const GLubyte *buffer, int width, int height)
|
||||
}
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
static void
|
||||
write_ppm(const char *filename, const GLubyte *buffer, int width, int height)
|
||||
@@ -238,6 +241,8 @@ write_ppm(const char *filename, const GLubyte *buffer, int width, int height)
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
int main( int argc, char *argv[] )
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* $Id: paltex.c,v 1.6.2.3 2002/07/22 13:45:45 brianp Exp $ */
|
||||
/* $Id: paltex.c,v 1.9 2002/07/22 13:45:31 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* Paletted texture demo. Written by Brian Paul.
|
||||
|
@@ -11,36 +11,6 @@
|
||||
is present , the particle size is attenuated based on eye distance. */
|
||||
|
||||
|
||||
/*
|
||||
* $Log: pointblast.c,v $
|
||||
* Revision 1.2.6.1 2002/04/15 22:14:09 kschultz
|
||||
* Build demos/samples correctly on Windows (Robert Bergkvist) to sync up
|
||||
* with the main branch. (I should have done this for 4.0.2)
|
||||
*
|
||||
* Revision 1.3 2002/01/16 00:48:43 kschultz
|
||||
* Demo updates for Windows (Robert Bergkvist)
|
||||
*
|
||||
* Revision 1.2 2000/06/27 17:04:43 brianp
|
||||
* fixed compiler warnings
|
||||
*
|
||||
* Revision 1.1.1.1 1999/08/19 00:55:40 jtg
|
||||
* Imported sources
|
||||
*
|
||||
* Revision 3.3 1998/07/26 01:24:27 brianp
|
||||
* removed include of gl.h
|
||||
*
|
||||
* Revision 3.2 1998/02/14 18:51:46 brianp
|
||||
* fixed a small compiler warning
|
||||
*
|
||||
* Revision 3.1 1998/02/14 18:45:25 brianp
|
||||
* optimized to use flat shading, don't blend ground polygon
|
||||
*
|
||||
* Revision 3.0 1998/02/14 18:42:29 brianp
|
||||
* initial rev
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* $Id: readpix.c,v 1.4.2.2 2002/07/12 15:50:46 brianp Exp $ */
|
||||
/* $Id: readpix.c,v 1.8 2002/07/12 15:54:02 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* glReadPixels and glCopyPixels test
|
||||
@@ -6,33 +6,6 @@
|
||||
* Brian Paul March 1, 2000 This file is in the public domain.
|
||||
*/
|
||||
|
||||
/*
|
||||
* $Log: readpix.c,v $
|
||||
* Revision 1.4.2.2 2002/07/12 15:50:46 brianp
|
||||
* Pedantic compiler fixes (Sven Panne)
|
||||
*
|
||||
* Revision 1.4.2.1 2002/05/01 14:53:52 alanh
|
||||
* glutSwapBuffers implicitly does a glFinish when swapping back to the front
|
||||
* buffer. We now issue a glFinish when not issuing SwapBuffers to ensure
|
||||
* the pipeline is complete.
|
||||
*
|
||||
* (Problem found with Chromium).
|
||||
*
|
||||
* Revision 1.4 2000/10/16 21:24:39 brianp
|
||||
* use gray background, memset TempImage to white to help with debugging
|
||||
*
|
||||
* Revision 1.3 2000/03/31 01:01:31 brianp
|
||||
* tweaks to allow different read formats/types
|
||||
*
|
||||
* Revision 1.2 2000/03/23 19:47:25 brianp
|
||||
* added benchmarking
|
||||
*
|
||||
* Revision 1.1 2000/03/01 16:23:14 brianp
|
||||
* test glDraw/Read/CopyPixels()
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
#include <assert.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
@@ -1,12 +1,14 @@
|
||||
/* $Id: shadowtex.c,v 1.4.2.1 2002/07/12 15:50:46 brianp Exp $ */
|
||||
/* $Id: shadowtex.c,v 1.7 2002/07/12 15:54:02 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* Shadow demo using the GL_SGIX_depth_texture, GL_SGIX_shadow and
|
||||
* GL_SGIX_shadow_ambient extensions.
|
||||
* Shadow demo using the GL_ARB_depth_texture, GL_ARB_shadow and
|
||||
* GL_ARB_shadow_ambient extensions (or the old SGIX extensions).
|
||||
*
|
||||
* Brian Paul
|
||||
* 19 Feb 2001
|
||||
*
|
||||
* Added GL_EXT_shadow_funcs support on 23 March 2002
|
||||
*
|
||||
* Copyright (C) 1999-2001 Brian Paul All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
@@ -35,6 +37,12 @@
|
||||
#include <GL/glut.h>
|
||||
#include "../util/showbuffer.c"
|
||||
|
||||
#if 0 /* change to 1 if you want to use the old SGIX extensions */
|
||||
#undef GL_ARB_depth_texture
|
||||
#undef GL_ARB_shadow
|
||||
#undef GL_ARB_shadow_ambient
|
||||
#endif
|
||||
|
||||
|
||||
#define DEG_TO_RAD (3.14159 / 180.0)
|
||||
|
||||
@@ -61,6 +69,16 @@ static GLfloat Bias = -0.06;
|
||||
|
||||
static GLboolean Anim = GL_TRUE;
|
||||
|
||||
static GLboolean HaveEXTshadowFuncs = GL_FALSE;
|
||||
static GLint Operator = 0;
|
||||
static const GLenum OperatorFunc[8] = {
|
||||
GL_LEQUAL, GL_LESS, GL_GEQUAL, GL_GREATER,
|
||||
GL_EQUAL, GL_NOTEQUAL, GL_ALWAYS, GL_NEVER };
|
||||
static const char *OperatorName[8] = {
|
||||
"GL_LEQUAL", "GL_LESS", "GL_GEQUAL", "GL_GREATER",
|
||||
"GL_EQUAL", "GL_NOTEQUAL", "GL_ALWAYS", "GL_NEVER" };
|
||||
|
||||
|
||||
static GLuint DisplayMode;
|
||||
#define SHOW_NORMAL 0
|
||||
#define SHOW_DEPTH_IMAGE 1
|
||||
@@ -231,6 +249,7 @@ Display(void)
|
||||
{
|
||||
GLfloat ar = (GLfloat) WindowWidth / (GLfloat) WindowHeight;
|
||||
GLfloat d;
|
||||
GLenum error;
|
||||
|
||||
ComputeLightPos(LightDist, LightLatitude, LightLongitude,
|
||||
LightPos, SpotDir);
|
||||
@@ -302,7 +321,11 @@ Display(void)
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
|
||||
}
|
||||
if (DisplayMode == SHOW_DEPTH_MAPPING) {
|
||||
#if defined(GL_ARB_shadow)
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_COMPARE_MODE_ARB, GL_NONE);
|
||||
#elif defined(GL_SGIX_shadow)
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_COMPARE_SGIX, GL_FALSE);
|
||||
#endif
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
|
||||
glEnable(GL_TEXTURE_2D);
|
||||
MakeShadowMatrix(LightPos, SpotDir, SpotAngle, ShadowNear, ShadowFar);
|
||||
@@ -318,7 +341,12 @@ Display(void)
|
||||
}
|
||||
else {
|
||||
assert(DisplayMode == SHOW_NORMAL);
|
||||
#if defined(GL_ARB_shadow)
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_COMPARE_MODE_ARB,
|
||||
GL_COMPARE_R_TO_TEXTURE_ARB);
|
||||
#elif defined(GL_SGIX_shadow)
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_COMPARE_SGIX, GL_TRUE);
|
||||
#endif
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
|
||||
glEnable(GL_TEXTURE_2D);
|
||||
MakeShadowMatrix(LightPos, SpotDir, SpotAngle, ShadowNear, ShadowFar);
|
||||
@@ -331,6 +359,11 @@ Display(void)
|
||||
}
|
||||
|
||||
glutSwapBuffers();
|
||||
|
||||
error = glGetError();
|
||||
if (error) {
|
||||
printf("GL Error: %s\n", gluErrorString(error));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -400,6 +433,16 @@ Key(unsigned char key, int x, int y)
|
||||
case ' ':
|
||||
DisplayMode = SHOW_NORMAL;
|
||||
break;
|
||||
case 'o':
|
||||
if (HaveEXTshadowFuncs) {
|
||||
Operator++;
|
||||
if (Operator >= 8)
|
||||
Operator = 0;
|
||||
printf("Operator: %s\n", OperatorName[Operator]);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_COMPARE_FUNC_ARB,
|
||||
OperatorFunc[Operator]);
|
||||
}
|
||||
break;
|
||||
case 'z':
|
||||
Zrot -= step;
|
||||
break;
|
||||
@@ -454,11 +497,22 @@ SpecialKey(int key, int x, int y)
|
||||
static void
|
||||
Init(void)
|
||||
{
|
||||
#if defined(GL_ARB_depth_texture) && defined(GL_ARB_shadow)
|
||||
if (!glutExtensionSupported("GL_ARB_depth_texture") ||
|
||||
!glutExtensionSupported("GL_ARB_shadow")) {
|
||||
printf("Sorry, this demo requires the GL_ARB_depth_texture and GL_ARB_shadow extensions\n");
|
||||
exit(1);
|
||||
}
|
||||
printf("Using GL_ARB_depth_texture and GL_ARB_shadow\n");
|
||||
#elif defined(GL_SGIX_depth_texture) && defined(GL_SGIX_shadow)
|
||||
if (!glutExtensionSupported("GL_SGIX_depth_texture") ||
|
||||
!glutExtensionSupported("GL_SGIX_shadow")) {
|
||||
printf("Sorry, this demo requires the GL_SGIX_depth_texture and GL_SGIX_shadow extensions\n");
|
||||
exit(1);
|
||||
}
|
||||
printf("Using GL_SGIX_depth_texture and GL_SGIX_shadow\n");
|
||||
#endif
|
||||
HaveEXTshadowFuncs = glutExtensionSupported("GL_EXT_shadow_funcs");
|
||||
|
||||
glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_WRAP_S, GL_CLAMP);
|
||||
glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
|
||||
@@ -466,13 +520,25 @@ Init(void)
|
||||
glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_WRAP_T, GL_CLAMP);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
|
||||
#ifdef GL_SGIX_shadow
|
||||
#if defined(GL_ARB_shadow)
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_COMPARE_MODE_ARB,
|
||||
GL_COMPARE_R_TO_TEXTURE_ARB);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_COMPARE_FUNC_ARB, GL_LEQUAL);
|
||||
#elif defined(GL_SGIX_shadow)
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_COMPARE_OPERATOR_SGIX,
|
||||
GL_TEXTURE_LEQUAL_R_SGIX);
|
||||
#endif
|
||||
#ifdef GL_SGIX_shadow_ambient
|
||||
if (glutExtensionSupported("GL_SGIX_shadow_ambient"))
|
||||
|
||||
#if defined(GL_ARB_shadow_ambient)
|
||||
if (glutExtensionSupported("GL_ARB_shadow_ambient")) {
|
||||
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_COMPARE_FAIL_VALUE_ARB, 0.3);
|
||||
printf("and GL_ARB_shadow_ambient\n");
|
||||
}
|
||||
#elif defined(GL_SGIX_shadow_ambient)
|
||||
if (glutExtensionSupported("GL_SGIX_shadow_ambient")) {
|
||||
glTexParameterf(GL_TEXTURE_2D, GL_SHADOW_AMBIENT_SGIX, 0.3);
|
||||
printf("and GL_SGIX_shadow_ambient\n");
|
||||
}
|
||||
#endif
|
||||
|
||||
/* setup 1-D grayscale texture image for SHOW_DISTANCE mode */
|
||||
@@ -504,6 +570,8 @@ PrintHelp(void)
|
||||
printf(" b/B = decrease/increase shadow map Z bias\n");
|
||||
printf(" cursor keys = rotate scene\n");
|
||||
printf(" <shift> + cursor keys = rotate light source\n");
|
||||
if (HaveEXTshadowFuncs)
|
||||
printf(" o = cycle through comparison modes\n");
|
||||
}
|
||||
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* $Id: spectex.c,v 1.1 1999/08/19 00:55:40 jtg Exp $ */
|
||||
/* $Id: spectex.c,v 1.2 2002/04/22 16:03:37 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* GLUT demonstration of texturing with specular highlights.
|
||||
@@ -17,24 +17,6 @@
|
||||
* Brian Paul February 1997
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* $Log: spectex.c,v $
|
||||
* Revision 1.1 1999/08/19 00:55:40 jtg
|
||||
* Initial revision
|
||||
*
|
||||
* Revision 3.2 1999/03/28 18:22:05 brianp
|
||||
* minor clean-up
|
||||
*
|
||||
* Revision 3.1 1998/02/14 18:47:48 brianp
|
||||
* added OpenGL 1.2 separate specular interpolation support
|
||||
*
|
||||
* Revision 3.0 1998/02/14 18:42:29 brianp
|
||||
* initial rev
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
|
1058
progs/demos/stex3d.c
1058
progs/demos/stex3d.c
File diff suppressed because it is too large
Load Diff
@@ -572,7 +572,7 @@ loadpic(void)
|
||||
if ((gluerr = gluBuild2DMipmaps(GL_TEXTURE_2D, 1, 256, 256, GL_LUMINANCE,
|
||||
GL_UNSIGNED_BYTE,
|
||||
(GLvoid *) (&terrainpic[0])))) {
|
||||
fprintf(stderr, "GLULib%s\n", gluErrorString(gluerr));
|
||||
fprintf(stderr, "GLULib%s\n", (char *) gluErrorString(gluerr));
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* $Id: tessdemo.c,v 1.11.2.2 2002/09/11 00:09:01 kschultz Exp $ */
|
||||
/* $Id: tessdemo.c,v 1.13 2002/10/18 17:47:36 kschultz Exp $ */
|
||||
|
||||
/*
|
||||
* A demo of the GLU polygon tesselation functions written by Bogdan Sikorski.
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* $Id: texcyl.c,v 1.5 2001/03/27 17:35:26 brianp Exp $ */
|
||||
/* $Id: texcyl.c,v 1.6 2002/04/22 16:03:37 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* Textured cylinder demo: lighting, texturing, reflection mapping.
|
||||
@@ -10,61 +10,6 @@
|
||||
* Brian Paul May 1997 This program is in the public domain.
|
||||
*/
|
||||
|
||||
/*
|
||||
* $Log: texcyl.c,v $
|
||||
* Revision 1.5 2001/03/27 17:35:26 brianp
|
||||
* set initial window pos
|
||||
*
|
||||
* Revision 1.4 2000/12/24 22:53:54 pesco
|
||||
* * demos/Makefile.am (INCLUDES): Added -I$(top_srcdir)/util.
|
||||
* * demos/Makefile.X11, demos/Makefile.BeOS-R4, demos/Makefile.cygnus:
|
||||
* Essentially the same.
|
||||
* Program files updated to include "readtex.c", not "../util/readtex.c".
|
||||
* * demos/reflect.c: Likewise for "showbuffer.c".
|
||||
*
|
||||
*
|
||||
* * Makefile.am (EXTRA_DIST): Added top-level regular files.
|
||||
*
|
||||
* * include/GL/Makefile.am (INC_X11): Added glxext.h.
|
||||
*
|
||||
*
|
||||
* * src/GGI/include/ggi/mesa/Makefile.am (EXTRA_HEADERS): Include
|
||||
* Mesa GGI headers in dist even if HAVE_GGI is not given.
|
||||
*
|
||||
* * configure.in: Look for GLUT and demo source dirs in $srcdir.
|
||||
*
|
||||
* * src/swrast/Makefile.am (libMesaSwrast_la_SOURCES): Set to *.[ch].
|
||||
* More source list updates in various Makefile.am's.
|
||||
*
|
||||
* * Makefile.am (dist-hook): Remove CVS directory from distribution.
|
||||
* (DIST_SUBDIRS): List all possible subdirs here.
|
||||
* (SUBDIRS): Only list subdirs selected for build again.
|
||||
* The above two applied to all subdir Makefile.am's also.
|
||||
*
|
||||
* Revision 1.3 2000/09/29 23:09:39 brianp
|
||||
* added fps output
|
||||
*
|
||||
* Revision 1.2 1999/10/21 16:39:06 brianp
|
||||
* added -info command line option
|
||||
*
|
||||
* Revision 1.1.1.1 1999/08/19 00:55:40 jtg
|
||||
* Imported sources
|
||||
*
|
||||
* Revision 3.3 1999/03/28 18:24:37 brianp
|
||||
* minor clean-up
|
||||
*
|
||||
* Revision 3.2 1998/11/05 04:34:04 brianp
|
||||
* moved image files to ../images/ directory
|
||||
*
|
||||
* Revision 3.1 1998/06/23 03:16:51 brianp
|
||||
* added Point/Linear sampling menu items
|
||||
*
|
||||
* Revision 3.0 1998/02/14 18:42:29 brianp
|
||||
* initial rev
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* $Id: texobj.c,v 1.5 2000/07/19 23:57:24 brianp Exp $ */
|
||||
/* $Id: texobj.c,v 1.6 2002/01/04 21:05:57 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* Example of using the 1.1 texture object functions.
|
||||
@@ -7,6 +7,7 @@
|
||||
* Brian Paul June 1996 This file is in the public domain.
|
||||
*/
|
||||
|
||||
#include <assert.h>
|
||||
#include <math.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
@@ -173,6 +174,7 @@ static void init( void )
|
||||
if (UseObj) {
|
||||
#ifdef TEXTURE_OBJECT
|
||||
glBindTexture( GL_TEXTURE_2D, TexObj[0] );
|
||||
assert(glIsTexture(TexObj[0]));
|
||||
#endif
|
||||
}
|
||||
else {
|
||||
@@ -206,7 +208,9 @@ static void init( void )
|
||||
if (UseObj) {
|
||||
#ifdef TEXTURE_OBJECT
|
||||
glBindTexture( GL_TEXTURE_2D, TexObj[1] );
|
||||
assert(glIsTexture(TexObj[1]));
|
||||
#endif
|
||||
assert(!glIsTexture(TexObj[1] + 999));
|
||||
}
|
||||
else {
|
||||
glNewList( TexObj[1], GL_COMPILE );
|
||||
|
@@ -1,40 +1,10 @@
|
||||
/* $Id: trispd.c,v 1.2.2.1 2002/07/12 15:50:46 brianp Exp $ */
|
||||
/* $Id: trispd.c,v 1.4 2002/07/12 15:54:02 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* Simple GLUT program to measure triangle strip rendering speed.
|
||||
* Brian Paul February 15, 1997 This file is in the public domain.
|
||||
*/
|
||||
|
||||
/*
|
||||
* $Log: trispd.c,v $
|
||||
* Revision 1.2.2.1 2002/07/12 15:50:46 brianp
|
||||
* Pedantic compiler fixes (Sven Panne)
|
||||
*
|
||||
* Revision 1.2 2000/10/26 15:26:14 brianp
|
||||
* added a glFinish() call
|
||||
*
|
||||
* Revision 1.1.1.1 1999/08/19 00:55:40 jtg
|
||||
* Imported sources
|
||||
*
|
||||
* Revision 3.4 1999/03/28 18:24:37 brianp
|
||||
* minor clean-up
|
||||
*
|
||||
* Revision 3.3 1999/03/18 08:16:52 joukj
|
||||
*
|
||||
* cmpstr needs string.h to included to avoid warnings
|
||||
*
|
||||
* Revision 3.2 1998/07/08 03:02:00 brianp
|
||||
* added Marten Stromberg's texture options
|
||||
*
|
||||
* Revision 3.1 1998/06/29 02:36:58 brianp
|
||||
* removed unneeded includes
|
||||
*
|
||||
* Revision 3.0 1998/02/14 18:42:29 brianp
|
||||
* initial rev
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
|
@@ -1,67 +1,10 @@
|
||||
/* $Id: winpos.c,v 1.3.2.1 2002/04/15 22:14:09 kschultz Exp $ */
|
||||
/* $Id: winpos.c,v 1.5 2002/04/22 16:03:37 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* Example of how to use the GL_MESA_window_pos extension.
|
||||
* Brian Paul This file is in the public domain.
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* $Log: winpos.c,v $
|
||||
* Revision 1.3.2.1 2002/04/15 22:14:09 kschultz
|
||||
* Build demos/samples correctly on Windows (Robert Bergkvist) to sync up
|
||||
* with the main branch. (I should have done this for 4.0.2)
|
||||
*
|
||||
* Revision 1.4 2002/01/16 00:48:43 kschultz
|
||||
* Demo updates for Windows (Robert Bergkvist)
|
||||
*
|
||||
* Revision 1.3 2000/12/24 22:53:54 pesco
|
||||
* * demos/Makefile.am (INCLUDES): Added -I$(top_srcdir)/util.
|
||||
* * demos/Makefile.X11, demos/Makefile.BeOS-R4, demos/Makefile.cygnus:
|
||||
* Essentially the same.
|
||||
* Program files updated to include "readtex.c", not "../util/readtex.c".
|
||||
* * demos/reflect.c: Likewise for "showbuffer.c".
|
||||
*
|
||||
*
|
||||
* * Makefile.am (EXTRA_DIST): Added top-level regular files.
|
||||
*
|
||||
* * include/GL/Makefile.am (INC_X11): Added glxext.h.
|
||||
*
|
||||
*
|
||||
* * src/GGI/include/ggi/mesa/Makefile.am (EXTRA_HEADERS): Include
|
||||
* Mesa GGI headers in dist even if HAVE_GGI is not given.
|
||||
*
|
||||
* * configure.in: Look for GLUT and demo source dirs in $srcdir.
|
||||
*
|
||||
* * src/swrast/Makefile.am (libMesaSwrast_la_SOURCES): Set to *.[ch].
|
||||
* More source list updates in various Makefile.am's.
|
||||
*
|
||||
* * Makefile.am (dist-hook): Remove CVS directory from distribution.
|
||||
* (DIST_SUBDIRS): List all possible subdirs here.
|
||||
* (SUBDIRS): Only list subdirs selected for build again.
|
||||
* The above two applied to all subdir Makefile.am's also.
|
||||
*
|
||||
* Revision 1.2 2000/06/27 17:04:43 brianp
|
||||
* fixed compiler warnings
|
||||
*
|
||||
* Revision 1.1.1.1 1999/08/19 00:55:40 jtg
|
||||
* Imported sources
|
||||
*
|
||||
* Revision 3.3 1999/03/28 18:24:37 brianp
|
||||
* minor clean-up
|
||||
*
|
||||
* Revision 3.2 1998/11/05 04:34:04 brianp
|
||||
* moved image files to ../images/ directory
|
||||
*
|
||||
* Revision 3.1 1998/02/22 16:36:10 brianp
|
||||
* changed image file and set unpack alignment to 1
|
||||
*
|
||||
* Revision 3.0 1998/02/14 18:42:29 brianp
|
||||
* initial rev
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
#include <math.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
|
@@ -143,6 +143,8 @@ void display(void)
|
||||
|
||||
size = glRenderMode (GL_RENDER);
|
||||
printBuffer (size, feedBuffer);
|
||||
|
||||
glFinish();
|
||||
}
|
||||
|
||||
/* ARGSUSED1 */
|
||||
|
@@ -1,4 +1,4 @@
|
||||
# $Id: Makefile.win,v 1.1.2.1 2002/04/15 22:13:31 kschultz Exp $
|
||||
# $Id: Makefile.win,v 1.1 2002/01/16 00:57:54 kschultz Exp $
|
||||
|
||||
# Mesa 3-D graphics library
|
||||
# Version: 3.5
|
||||
|
@@ -59,8 +59,7 @@ static PPMImage *LoadPPM(const char *filename)
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if (fread(result->data, 3 * result->sizeX, result->sizeY, fp) !=
|
||||
result->sizeY)
|
||||
if (fread(result->data, 3 * result->sizeX, result->sizeY, fp) != result->sizeY)
|
||||
{
|
||||
fprintf(stderr, "Error loading image `%s'\n", filename);
|
||||
exit(1);
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* $Id: logo.c,v 1.2 1999/12/15 13:02:09 brianp Exp $ */
|
||||
/* $Id: logo.c,v 1.3 2002/11/05 20:59:16 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1991, 1992, 1993 Silicon Graphics, Inc.
|
||||
@@ -1397,12 +1397,15 @@ static void Key(unsigned char key, int x, int y)
|
||||
switch (polyMode) {
|
||||
case GL_BACK:
|
||||
polyMode = GL_FRONT;
|
||||
printf("PolygonMode GL_FRONT\n");
|
||||
break;
|
||||
case GL_FRONT:
|
||||
polyMode = GL_FRONT_AND_BACK;
|
||||
printf("PolygonMode GL_FRONT_AND_BACK\n");
|
||||
break;
|
||||
case GL_FRONT_AND_BACK:
|
||||
polyMode = GL_BACK;
|
||||
printf("PolygonMode GL_BACK\n");
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -1455,14 +1458,17 @@ static void Key(unsigned char key, int x, int y)
|
||||
|
||||
case 'q':
|
||||
glDisable(GL_CULL_FACE);
|
||||
printf("disable culling\n");
|
||||
break;
|
||||
case 'w':
|
||||
glEnable(GL_CULL_FACE);
|
||||
glCullFace(GL_FRONT);
|
||||
printf("enable front face culling\n");
|
||||
break;
|
||||
case 'e':
|
||||
glEnable(GL_CULL_FACE);
|
||||
glCullFace(GL_BACK);
|
||||
printf("enable back face culling\n");
|
||||
break;
|
||||
|
||||
case 'r':
|
||||
|
@@ -1,22 +1,31 @@
|
||||
|
||||
# Simple makefile for compiling test programs on Linux
|
||||
# These programs aren't intended to be included with the normal
|
||||
# distro as they're not too interesting but good for testing during
|
||||
# development.
|
||||
# distro. They're not too interesting but they're good for testing.
|
||||
|
||||
|
||||
CC = gcc
|
||||
CFLAGS = -g -I../include -I../util
|
||||
CFLAGS = -g -I../include
|
||||
LIBS = -L../lib -lglut -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXext -lm
|
||||
|
||||
PROGS = cva \
|
||||
PROGS = antialias \
|
||||
cva \
|
||||
dinoshade \
|
||||
fogcoord \
|
||||
getprocaddress \
|
||||
manytex \
|
||||
multipal \
|
||||
projtex \
|
||||
sharedtex \
|
||||
seccolor \
|
||||
texline texwrap fogcoord multiwindow
|
||||
sharedtex \
|
||||
stencilwrap \
|
||||
texline \
|
||||
texwrap \
|
||||
vptest1 \
|
||||
vptest2 \
|
||||
vptest3 \
|
||||
vptorus \
|
||||
vpwarpmesh
|
||||
|
||||
|
||||
##### RULES #####
|
||||
@@ -35,3 +44,11 @@ default: $(PROGS)
|
||||
clean:
|
||||
rm -f $(PROGS)
|
||||
rm -f *.o
|
||||
|
||||
|
||||
# auto code generation
|
||||
getprocaddress: getprocaddress.c getproclist.h
|
||||
|
||||
getproclist.h: ../bin/APIspec getprocaddress.c getprocaddress.py
|
||||
python getprocaddress.py > getproclist.h
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
# $Id: Makefile.win,v 1.1.2.1 2002/04/15 22:13:00 kschultz Exp $
|
||||
# $Id: Makefile.win,v 1.1 2002/01/16 01:03:25 kschultz Exp $
|
||||
|
||||
# Mesa 3-D graphics library
|
||||
# Version: 3.5
|
||||
@@ -23,7 +23,12 @@ SRCS = cva.c \
|
||||
seccolor.c \
|
||||
# sharedtex.c \
|
||||
texline.c \
|
||||
texwrap.c
|
||||
texwrap.c \
|
||||
vptest1.c \
|
||||
vptest2.c \
|
||||
vptest3.c \
|
||||
vptorus.c \
|
||||
vpwarpmesh.c
|
||||
|
||||
!include "../mesawin32.mak"
|
||||
|
||||
|
226
progs/tests/antialias.c
Normal file
226
progs/tests/antialias.c
Normal file
@@ -0,0 +1,226 @@
|
||||
/* $Id: antialias.c,v 1.1 2002/11/08 18:30:26 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* Test multisampling and polygon smoothing.
|
||||
*
|
||||
* Brian Paul
|
||||
* 4 November 2002
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
#include <GL/glut.h>
|
||||
|
||||
|
||||
static GLfloat Zrot = 0;
|
||||
static GLboolean Anim = GL_TRUE;
|
||||
static GLboolean HaveMultisample = GL_TRUE;
|
||||
|
||||
|
||||
static void
|
||||
PrintString(const char *s)
|
||||
{
|
||||
while (*s) {
|
||||
glutBitmapCharacter(GLUT_BITMAP_8_BY_13, (int) *s);
|
||||
s++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
Polygon( GLint verts, GLfloat radius, GLfloat z )
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < verts; i++) {
|
||||
float a = (i * 2.0 * 3.14159) / verts;
|
||||
float x = radius * cos(a);
|
||||
float y = radius * sin(a);
|
||||
glVertex3f(x, y, z);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
DrawObject( void )
|
||||
{
|
||||
glLineWidth(3.0);
|
||||
glColor3f(1, 1, 1);
|
||||
glBegin(GL_LINE_LOOP);
|
||||
Polygon(12, 1.2, 0);
|
||||
glEnd();
|
||||
|
||||
glLineWidth(1.0);
|
||||
glColor3f(1, 1, 1);
|
||||
glBegin(GL_LINE_LOOP);
|
||||
Polygon(12, 1.1, 0);
|
||||
glEnd();
|
||||
|
||||
glColor3f(1, 0, 0);
|
||||
glBegin(GL_POLYGON);
|
||||
Polygon(12, 0.4, 0.3);
|
||||
glEnd();
|
||||
|
||||
glColor3f(0, 1, 0);
|
||||
glBegin(GL_POLYGON);
|
||||
Polygon(12, 0.6, 0.2);
|
||||
glEnd();
|
||||
|
||||
glColor3f(0, 0, 1);
|
||||
glBegin(GL_POLYGON);
|
||||
Polygon(12, 0.8, 0.1);
|
||||
glEnd();
|
||||
|
||||
glColor3f(1, 1, 1);
|
||||
glBegin(GL_POLYGON);
|
||||
Polygon(12, 1.0, 0);
|
||||
glEnd();
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
Display( void )
|
||||
{
|
||||
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
|
||||
|
||||
glColor3f(1, 1, 1);
|
||||
if (HaveMultisample) {
|
||||
glRasterPos2f(-3.1, -1.6);
|
||||
PrintString("MULTISAMPLE");
|
||||
}
|
||||
glRasterPos2f(-0.8, -1.6);
|
||||
PrintString("No antialiasing");
|
||||
glRasterPos2f(1.6, -1.6);
|
||||
PrintString("GL_POLYGON_SMOOTH");
|
||||
|
||||
/* multisample */
|
||||
if (HaveMultisample) {
|
||||
glEnable(GL_DEPTH_TEST);
|
||||
glEnable(GL_MULTISAMPLE_ARB);
|
||||
glPushMatrix();
|
||||
glTranslatef(-2.5, 0, 0);
|
||||
glPushMatrix();
|
||||
glRotatef(Zrot, 0, 0, 1);
|
||||
DrawObject();
|
||||
glPopMatrix();
|
||||
glPopMatrix();
|
||||
glDisable(GL_MULTISAMPLE_ARB);
|
||||
glDisable(GL_DEPTH_TEST);
|
||||
}
|
||||
|
||||
/* non-aa */
|
||||
glEnable(GL_DEPTH_TEST);
|
||||
glPushMatrix();
|
||||
glTranslatef(0, 0, 0);
|
||||
glPushMatrix();
|
||||
glRotatef(Zrot, 0, 0, 1);
|
||||
DrawObject();
|
||||
glPopMatrix();
|
||||
glPopMatrix();
|
||||
glDisable(GL_DEPTH_TEST);
|
||||
|
||||
/* polygon smooth */
|
||||
glEnable(GL_POLYGON_SMOOTH);
|
||||
glEnable(GL_LINE_SMOOTH);
|
||||
glEnable(GL_BLEND);
|
||||
glPushMatrix();
|
||||
glTranslatef(2.5, 0, 0);
|
||||
glPushMatrix();
|
||||
glRotatef(Zrot, 0, 0, 1);
|
||||
DrawObject();
|
||||
glPopMatrix();
|
||||
glPopMatrix();
|
||||
glDisable(GL_LINE_SMOOTH);
|
||||
glDisable(GL_POLYGON_SMOOTH);
|
||||
glDisable(GL_BLEND);
|
||||
|
||||
glutSwapBuffers();
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
Reshape( int width, int height )
|
||||
{
|
||||
GLfloat ar = (float) width / (float) height;
|
||||
glViewport( 0, 0, width, height );
|
||||
glMatrixMode( GL_PROJECTION );
|
||||
glLoadIdentity();
|
||||
glOrtho(-2.0*ar, 2.0*ar, -2.0, 2.0, -1.0, 1.0);
|
||||
glMatrixMode( GL_MODELVIEW );
|
||||
glLoadIdentity();
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
Idle( void )
|
||||
{
|
||||
Zrot = 0.01 * glutGet(GLUT_ELAPSED_TIME);
|
||||
glutPostRedisplay();
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
Key( unsigned char key, int x, int y )
|
||||
{
|
||||
const GLfloat step = 1.0;
|
||||
(void) x;
|
||||
(void) y;
|
||||
switch (key) {
|
||||
case 'a':
|
||||
Anim = !Anim;
|
||||
if (Anim)
|
||||
glutIdleFunc(Idle);
|
||||
else
|
||||
glutIdleFunc(NULL);
|
||||
break;
|
||||
case 'z':
|
||||
Zrot = (int) (Zrot - step);
|
||||
break;
|
||||
case 'Z':
|
||||
Zrot = (int) (Zrot + step);
|
||||
break;
|
||||
case 27:
|
||||
exit(0);
|
||||
break;
|
||||
}
|
||||
glutPostRedisplay();
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
Init( void )
|
||||
{
|
||||
/* GLUT imposes the four samples/pixel requirement */
|
||||
int s;
|
||||
glGetIntegerv(GL_SAMPLES_ARB, &s);
|
||||
if (!glutExtensionSupported("GL_ARB_multisample") || s < 1) {
|
||||
printf("Warning: multisample antialiasing not supported.\n");
|
||||
HaveMultisample = GL_FALSE;
|
||||
}
|
||||
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
|
||||
printf("GL_SAMPLES_ARB = %d\n", s);
|
||||
|
||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE);
|
||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||
glBlendFunc(GL_SRC_ALPHA_SATURATE, GL_ONE);
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
main( int argc, char *argv[] )
|
||||
{
|
||||
glutInit( &argc, argv );
|
||||
glutInitWindowPosition( 0, 0 );
|
||||
glutInitWindowSize( 600, 300 );
|
||||
glutInitDisplayMode( GLUT_RGB | GLUT_ALPHA | GLUT_DOUBLE |
|
||||
GLUT_DEPTH | GLUT_MULTISAMPLE );
|
||||
glutCreateWindow(argv[0]);
|
||||
glutReshapeFunc( Reshape );
|
||||
glutKeyboardFunc( Key );
|
||||
glutDisplayFunc( Display );
|
||||
if (Anim)
|
||||
glutIdleFunc( Idle );
|
||||
Init();
|
||||
glutMainLoop();
|
||||
return 0;
|
||||
}
|
@@ -1,4 +1,4 @@
|
||||
/* $Id: cva.c,v 1.3.2.1 2002/04/15 22:13:00 kschultz Exp $ */
|
||||
/* $Id: cva.c,v 1.4 2002/01/16 01:03:25 kschultz Exp $ */
|
||||
|
||||
/*
|
||||
* Trivial CVA test, good for testing driver fastpaths (especially
|
||||
|
68
progs/tests/descrip.mms
Normal file
68
progs/tests/descrip.mms
Normal file
@@ -0,0 +1,68 @@
|
||||
# Makefile for GLUT-based demo programs for VMS
|
||||
# contributed by Jouk Jansen joukj@crys.chem.uva.nl
|
||||
|
||||
|
||||
.first
|
||||
define gl [-.include.gl]
|
||||
|
||||
.include [-]mms-config.
|
||||
|
||||
##### MACROS #####
|
||||
|
||||
INCDIR = ([-.include],[-.util])
|
||||
CFLAGS = /include=$(INCDIR)/prefix=all/name=(as_is,short)
|
||||
|
||||
.ifdef SHARE
|
||||
GL_LIBS = $(XLIBS)
|
||||
.else
|
||||
GL_LIBS = [-.lib]libGLUT/l,libMesaGLU/l,libMesaGL/l,$(XLIBS)
|
||||
.endif
|
||||
|
||||
LIB_DEP = [-.lib]$(GL_LIB) [-.lib]$(GLU_LIB) [-.lib]$(GLUT_LIB)
|
||||
|
||||
PROGS = cva.exe,\
|
||||
dinoshade.exe,\
|
||||
fogcoord.exe,\
|
||||
manytex.exe,\
|
||||
multipal.exe,\
|
||||
projtex.exe,\
|
||||
seccolor.exe,\
|
||||
sharedtex.exe,\
|
||||
texline.exe,\
|
||||
texwrap.exe,\
|
||||
vptest1.exe,\
|
||||
vptest2.exe,\
|
||||
vptest3.exe,\
|
||||
vptorus.exe,\
|
||||
vpwarpmesh.exe
|
||||
|
||||
##### RULES #####
|
||||
.obj.exe :
|
||||
cxxlink $(MMS$TARGET_NAME),$(GL_LIBS)
|
||||
|
||||
##### TARGETS #####
|
||||
default :
|
||||
$(MMS)$(MMSQUALIFIERS) $(PROGS)
|
||||
|
||||
clean :
|
||||
delete *.obj;*
|
||||
|
||||
realclean :
|
||||
delete $(PROGS)
|
||||
delete *.obj;*
|
||||
|
||||
cva.exe : cva.obj $(LIB_DEP)
|
||||
dinoshade.exe : dinoshade.obj $(LIB_DEP)
|
||||
fogcoord.exe : fogcoord.obj $(LIB_DEP)
|
||||
manytex.exe : manytex.obj $(LIB_DEP)
|
||||
multipal.exe : multipal.obj $(LIB_DEP)
|
||||
projtex.exe : projtex.obj $(LIB_DEP)
|
||||
seccolor.exe : seccolor.obj $(LIB_DEP)
|
||||
sharedtex.exe : sharedtex.obj $(LIB_DEP)
|
||||
texline.exe : texline.obj $(LIB_DEP)
|
||||
texwrap.exe : texwrap.obj $(LIB_DEP)
|
||||
vptest1.exe : vptest1.obj $(LIB_DEP)
|
||||
vptest2.exe : vptest2.obj $(LIB_DEP)
|
||||
vptest3.exe : vptest3.obj $(LIB_DEP)
|
||||
vptorus.exe : vptorus.obj $(LIB_DEP)
|
||||
vpwarpmesh.exe : vpwarpmesh.obj $(LIB_DEP)
|
250
progs/tests/getprocaddress.c
Normal file
250
progs/tests/getprocaddress.c
Normal file
@@ -0,0 +1,250 @@
|
||||
/* $Id: getprocaddress.c,v 1.6 2002/11/08 15:35:46 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (C) 1999-2002 Brian Paul All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
* to deal in the Software without restriction, including without limitation
|
||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
* and/or sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
* BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Test that glXGetProcAddress works.
|
||||
*/
|
||||
|
||||
#define GLX_GLXEXT_PROTOTYPES
|
||||
|
||||
#include <X11/Xlib.h>
|
||||
#include <X11/Xutil.h>
|
||||
#include <GL/gl.h>
|
||||
#include <GL/glx.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
|
||||
static GLboolean
|
||||
test_ActiveTextureARB(void *func)
|
||||
{
|
||||
PFNGLACTIVETEXTUREARBPROC activeTexture = (PFNGLACTIVETEXTUREARBPROC) func;
|
||||
GLint t;
|
||||
GLboolean pass;
|
||||
(*activeTexture)(GL_TEXTURE1_ARB);
|
||||
glGetIntegerv(GL_ACTIVE_TEXTURE_ARB, &t);
|
||||
pass = (t == GL_TEXTURE1_ARB);
|
||||
(*activeTexture)(GL_TEXTURE0_ARB); /* restore default */
|
||||
return pass;
|
||||
}
|
||||
|
||||
|
||||
static GLboolean
|
||||
test_SecondaryColor3fEXT(void *func)
|
||||
{
|
||||
PFNGLSECONDARYCOLOR3FEXTPROC secColor3f = (PFNGLSECONDARYCOLOR3FEXTPROC) func;
|
||||
GLfloat color[4];
|
||||
GLboolean pass;
|
||||
(*secColor3f)(1.0, 1.0, 0.0);
|
||||
glGetFloatv(GL_CURRENT_SECONDARY_COLOR_EXT, color);
|
||||
pass = (color[0] == 1.0 && color[1] == 1.0 && color[2] == 0.0);
|
||||
(*secColor3f)(0.0, 0.0, 0.0); /* restore default */
|
||||
return pass;
|
||||
}
|
||||
|
||||
|
||||
static GLboolean
|
||||
test_ActiveStencilFaceEXT(void *func)
|
||||
{
|
||||
PFNGLACTIVESTENCILFACEEXTPROC activeFace = (PFNGLACTIVESTENCILFACEEXTPROC) func;
|
||||
GLint face;
|
||||
GLboolean pass;
|
||||
(*activeFace)(GL_BACK);
|
||||
glGetIntegerv(GL_ACTIVE_STENCIL_FACE_EXT, &face);
|
||||
pass = (face == GL_BACK);
|
||||
(*activeFace)(GL_FRONT); /* restore default */
|
||||
return pass;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* The following header file is auto-generated with Python. The Python
|
||||
* script looks in this file for functions named "test_*" as seen above.
|
||||
*/
|
||||
#include "getproclist.h"
|
||||
|
||||
|
||||
|
||||
static int
|
||||
extension_supported(const char *haystack, const char *needle)
|
||||
{
|
||||
if (strstr(haystack, needle))
|
||||
return 1;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
check_functions( const char *extensions )
|
||||
{
|
||||
struct name_test_pair *entry;
|
||||
int failures = 0, passes = 0;
|
||||
int totalFail = 0, totalPass = 0;
|
||||
int doTests;
|
||||
|
||||
for (entry = functions; entry->name; entry++) {
|
||||
if (entry->name[0] == '-') {
|
||||
if (entry->name[1] == '1') {
|
||||
doTests = 1;
|
||||
}
|
||||
else {
|
||||
/* check if the named extension is available */
|
||||
doTests = extension_supported(extensions, entry->name+1);
|
||||
}
|
||||
if (doTests)
|
||||
printf("Testing %s functions\n", entry->name + 1);
|
||||
totalFail += failures;
|
||||
totalPass += passes;
|
||||
failures = 0;
|
||||
passes = 0;
|
||||
}
|
||||
else if (doTests) {
|
||||
void *funcPtr = (void *) glXGetProcAddressARB((const GLubyte *) entry->name);
|
||||
if (funcPtr) {
|
||||
if (entry->test) {
|
||||
GLboolean b;
|
||||
printf(" Validating %s:", entry->name);
|
||||
b = (*entry->test)(funcPtr);
|
||||
if (b) {
|
||||
printf(" Pass\n");
|
||||
passes++;
|
||||
}
|
||||
else {
|
||||
printf(" FAIL!!!\n");
|
||||
failures++;
|
||||
}
|
||||
}
|
||||
else {
|
||||
passes++;
|
||||
}
|
||||
}
|
||||
else {
|
||||
printf(" glXGetProcAddress(%s) failed!\n", entry->name);
|
||||
failures++;
|
||||
}
|
||||
}
|
||||
|
||||
if (doTests && (!(entry+1)->name || (entry+1)->name[0] == '-')) {
|
||||
if (failures > 0) {
|
||||
printf(" %d failed.\n", failures);
|
||||
}
|
||||
if (passes > 0) {
|
||||
printf(" %d passed.\n", passes);
|
||||
}
|
||||
}
|
||||
}
|
||||
totalFail += failures;
|
||||
totalPass += passes;
|
||||
|
||||
printf("-----------------------------\n");
|
||||
printf("Total: %d pass %d fail\n", totalPass, totalFail);
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void
|
||||
print_screen_info(Display *dpy, int scrnum, Bool allowDirect)
|
||||
{
|
||||
Window win;
|
||||
int attribSingle[] = {
|
||||
GLX_RGBA,
|
||||
GLX_RED_SIZE, 1,
|
||||
GLX_GREEN_SIZE, 1,
|
||||
GLX_BLUE_SIZE, 1,
|
||||
None };
|
||||
int attribDouble[] = {
|
||||
GLX_RGBA,
|
||||
GLX_RED_SIZE, 1,
|
||||
GLX_GREEN_SIZE, 1,
|
||||
GLX_BLUE_SIZE, 1,
|
||||
GLX_DOUBLEBUFFER,
|
||||
None };
|
||||
|
||||
XSetWindowAttributes attr;
|
||||
unsigned long mask;
|
||||
Window root;
|
||||
GLXContext ctx;
|
||||
XVisualInfo *visinfo;
|
||||
int width = 100, height = 100;
|
||||
|
||||
root = RootWindow(dpy, scrnum);
|
||||
|
||||
visinfo = glXChooseVisual(dpy, scrnum, attribSingle);
|
||||
if (!visinfo) {
|
||||
visinfo = glXChooseVisual(dpy, scrnum, attribDouble);
|
||||
if (!visinfo) {
|
||||
fprintf(stderr, "Error: couldn't find RGB GLX visual\n");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
attr.background_pixel = 0;
|
||||
attr.border_pixel = 0;
|
||||
attr.colormap = XCreateColormap(dpy, root, visinfo->visual, AllocNone);
|
||||
attr.event_mask = StructureNotifyMask | ExposureMask;
|
||||
mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask;
|
||||
win = XCreateWindow(dpy, root, 0, 0, width, height,
|
||||
0, visinfo->depth, InputOutput,
|
||||
visinfo->visual, mask, &attr);
|
||||
|
||||
ctx = glXCreateContext( dpy, visinfo, NULL, allowDirect );
|
||||
if (!ctx) {
|
||||
fprintf(stderr, "Error: glXCreateContext failed\n");
|
||||
XDestroyWindow(dpy, win);
|
||||
return;
|
||||
}
|
||||
|
||||
if (glXMakeCurrent(dpy, win, ctx)) {
|
||||
check_functions( (const char *) glGetString(GL_EXTENSIONS) );
|
||||
}
|
||||
else {
|
||||
fprintf(stderr, "Error: glXMakeCurrent failed\n");
|
||||
}
|
||||
|
||||
glXDestroyContext(dpy, ctx);
|
||||
XDestroyWindow(dpy, win);
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
char *displayName = NULL;
|
||||
Display *dpy;
|
||||
|
||||
dpy = XOpenDisplay(displayName);
|
||||
if (!dpy) {
|
||||
fprintf(stderr, "Error: unable to open display %s\n", displayName);
|
||||
return -1;
|
||||
}
|
||||
|
||||
print_screen_info(dpy, 0, GL_TRUE);
|
||||
|
||||
XCloseDisplay(dpy);
|
||||
|
||||
return 0;
|
||||
}
|
96
progs/tests/getprocaddress.py
Normal file
96
progs/tests/getprocaddress.py
Normal file
@@ -0,0 +1,96 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
# $Id: getprocaddress.py,v 1.2 2002/11/08 15:49:31 brianp Exp $
|
||||
|
||||
# Helper for the getprocaddress.c test.
|
||||
|
||||
|
||||
import re, string
|
||||
|
||||
|
||||
def PrintHead():
|
||||
print """
|
||||
struct name_test_pair {
|
||||
const char *name;
|
||||
GLboolean (*test)(void *);
|
||||
};
|
||||
|
||||
static struct name_test_pair functions[] = {"""
|
||||
|
||||
|
||||
def PrintTail():
|
||||
print"""
|
||||
{ NULL, NULL }
|
||||
};
|
||||
"""
|
||||
|
||||
|
||||
def HaveTest(function):
|
||||
testFuncs = [
|
||||
"glActiveTextureARB",
|
||||
"glSampleCoverageARB"
|
||||
]
|
||||
if function in testFuncs:
|
||||
return 1
|
||||
else:
|
||||
return 0
|
||||
|
||||
|
||||
def FindTestFunctions():
|
||||
"""Scan getprocaddress.c for lines that start with "test_" to find
|
||||
extension function tests. Return a list of names found."""
|
||||
functions = []
|
||||
f = open("getprocaddress.c")
|
||||
if not f:
|
||||
return functions
|
||||
for line in f.readlines():
|
||||
v = re.search("^test_([a-zA-Z0-9]+)", line)
|
||||
if v:
|
||||
func = v.group(1)
|
||||
functions.append(func)
|
||||
f.close
|
||||
return functions
|
||||
|
||||
|
||||
def PrintFunctions(specFile, tests):
|
||||
|
||||
# init some vars
|
||||
prevCategory = ''
|
||||
funcName = ''
|
||||
|
||||
f = open(specFile)
|
||||
for line in f.readlines():
|
||||
|
||||
# split line into tokens
|
||||
tokens = string.split(line)
|
||||
|
||||
if len(tokens) > 0 and line[0] != '#':
|
||||
|
||||
if tokens[0] == 'name':
|
||||
if funcName != '':
|
||||
if category != prevCategory:
|
||||
print ' { "-%s", NULL},' % category
|
||||
prevCategory = category
|
||||
|
||||
if funcName in tests:
|
||||
test = "test_%s" % funcName
|
||||
else:
|
||||
test = "NULL"
|
||||
print ' { "gl%s", %s },' % (funcName, test)
|
||||
funcName = tokens[1]
|
||||
|
||||
elif tokens[0] == 'category':
|
||||
category = tokens[1]
|
||||
|
||||
#endif
|
||||
#endif
|
||||
#endfor
|
||||
#enddef
|
||||
|
||||
|
||||
tests = FindTestFunctions()
|
||||
PrintHead()
|
||||
PrintFunctions("../bin/APIspec", tests)
|
||||
PrintTail()
|
||||
|
||||
|
177
progs/tests/jkrahntest.c
Normal file
177
progs/tests/jkrahntest.c
Normal file
@@ -0,0 +1,177 @@
|
||||
/* $Id: jkrahntest.c,v 1.1 2002/06/16 03:57:48 brianp Exp $ */
|
||||
|
||||
/* This is a good test for glXSwapBuffers on non-current windows,
|
||||
* and the glXCopyContext function. Fixed several Mesa/DRI bugs with
|
||||
* this program on 15 June 2002.
|
||||
*
|
||||
* Joe's comments follow:
|
||||
*
|
||||
* I have tried some different approaches for being able to
|
||||
* draw to multiple windows using one context, or a copied
|
||||
* context. Mesa/indirect rendering works to use one context
|
||||
* for multiple windows, but crashes with glXCopyContext.
|
||||
* DRI is badly broken, at least for ATI.
|
||||
*
|
||||
* I also noticed that glXMakeCurrent allows a window and context
|
||||
* from different visuals to be attached (haven't tested recently).
|
||||
*
|
||||
* Joe Krahn <jkrahn@nc.rr.com>
|
||||
*/
|
||||
|
||||
#include <GL/glx.h>
|
||||
#include <GL/gl.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include <math.h>
|
||||
#define M_PI 3.14159
|
||||
#define DEGTOR (M_PI/180.0)
|
||||
|
||||
static int AttributeList[] = { GLX_RGBA, GLX_DOUBLEBUFFER, None };
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
Window win1, win2;
|
||||
XVisualInfo *vi;
|
||||
XSetWindowAttributes swa;
|
||||
Display *dpy;
|
||||
GLXContext ctx1, ctx2;
|
||||
float angle;
|
||||
int test;
|
||||
|
||||
if (argc < 2) {
|
||||
fprintf(stderr, "This program tests GLX context switching.\n");
|
||||
fprintf(stderr, "Usage: cxbug <n>\n");
|
||||
fprintf(stderr, "Where n is:\n");
|
||||
fprintf(stderr, "\t1) Use two contexts and swap only when the context is current (typical case).\n");
|
||||
fprintf(stderr, "\t2) Use two contexts and swap at the same time.\n");
|
||||
fprintf(stderr, "\t\t Used to crash Mesa & nVidia, and DRI artifacts. Seems OK now.\n");
|
||||
fprintf(stderr, "\t3) Use one context, but only swap when a context is current.\n");
|
||||
fprintf(stderr, "\t\t Serious artifacts for DRI at least with ATI.\n");
|
||||
fprintf(stderr, "\t4) Use one context, swap both windows at the same time, so the left\n");
|
||||
fprintf(stderr, "\t\t window has no context at swap time. Severe artifacts for DRI.\n");
|
||||
fprintf(stderr, "\t5) Use two contexts, copying one to the other when switching windows.\n");
|
||||
fprintf(stderr, "\t\t DRI gives an error, indirect rendering crashes server.\n");
|
||||
|
||||
exit(1);
|
||||
}
|
||||
test = atoi(argv[1]);
|
||||
|
||||
/* get a connection */
|
||||
dpy = XOpenDisplay(NULL);
|
||||
|
||||
/* Get an appropriate visual */
|
||||
vi = glXChooseVisual(dpy, DefaultScreen(dpy), AttributeList);
|
||||
if (vi == 0) {
|
||||
fprintf(stderr, "No matching visuals found.\n");
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
/* Create two GLX contexts, with list sharing */
|
||||
ctx1 = glXCreateContext(dpy, vi, 0, True);
|
||||
ctx2 = glXCreateContext(dpy, vi, ctx1, True);
|
||||
|
||||
/* create a colormap */
|
||||
swa.colormap = XCreateColormap(dpy, RootWindow(dpy, vi->screen),
|
||||
vi->visual, AllocNone);
|
||||
swa.border_pixel = 0;
|
||||
|
||||
/* Create two windows */
|
||||
win1 = XCreateWindow(dpy, RootWindow(dpy, vi->screen),
|
||||
10, 10, 200, 200,
|
||||
0, vi->depth, InputOutput, vi->visual,
|
||||
CWBorderPixel | CWColormap, &swa);
|
||||
XStoreName(dpy, win1, "Test [L]");
|
||||
XMapWindow(dpy, win1);
|
||||
XMoveWindow(dpy, win1, 10, 10); /* Initial requested x,y may not be honored */
|
||||
{
|
||||
XSizeHints sizehints;
|
||||
static const char *name = "window";
|
||||
sizehints.x = 10;
|
||||
sizehints.y = 10;
|
||||
sizehints.width = 200;
|
||||
sizehints.height = 200;
|
||||
sizehints.flags = USSize | USPosition;
|
||||
XSetNormalHints(dpy, win1, &sizehints);
|
||||
XSetStandardProperties(dpy, win1, name, name,
|
||||
None, (char **)NULL, 0, &sizehints);
|
||||
}
|
||||
|
||||
|
||||
win2 = XCreateWindow(dpy, RootWindow(dpy, vi->screen),
|
||||
250, 10, 200, 200,
|
||||
0, vi->depth, InputOutput, vi->visual,
|
||||
CWBorderPixel | CWColormap, &swa);
|
||||
XStoreName(dpy, win1, "Test [R]");
|
||||
XMapWindow(dpy, win2);
|
||||
XMoveWindow(dpy, win2, 260, 10);
|
||||
{
|
||||
XSizeHints sizehints;
|
||||
static const char *name = "window";
|
||||
sizehints.x = 10;
|
||||
sizehints.y = 10;
|
||||
sizehints.width = 200;
|
||||
sizehints.height = 200;
|
||||
sizehints.flags = USSize | USPosition;
|
||||
XSetNormalHints(dpy, win2, &sizehints);
|
||||
XSetStandardProperties(dpy, win2, name, name,
|
||||
None, (char **)NULL, 0, &sizehints);
|
||||
}
|
||||
|
||||
|
||||
/* Now draw some spinning things */
|
||||
for (angle = 0; angle < 360*4; angle += 10.0) {
|
||||
/* Connect the context to window 1 */
|
||||
glXMakeCurrent(dpy, win1, ctx1);
|
||||
|
||||
/* Clear and draw in window 1 */
|
||||
glDrawBuffer(GL_BACK);
|
||||
glClearColor(1, 1, 0, 1);
|
||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||
glColor3f(1, 0, 0);
|
||||
glBegin(GL_TRIANGLES);
|
||||
glVertex2f(0, 0);
|
||||
glVertex2f(cos(angle * DEGTOR), sin(angle * DEGTOR));
|
||||
glVertex2f(cos((angle + 20.0) * DEGTOR),
|
||||
sin((angle + 20.0) * DEGTOR));
|
||||
glEnd();
|
||||
glFlush();
|
||||
|
||||
if (test == 1 || test == 3 || test == 5)
|
||||
glXSwapBuffers(dpy, win1);
|
||||
|
||||
if (test == 5)
|
||||
glXCopyContext(dpy, ctx1, ctx2, GL_ALL_ATTRIB_BITS);
|
||||
/* Connect the context to window 2 */
|
||||
if (test == 3 || test == 4) {
|
||||
glXMakeCurrent(dpy, win2, ctx1);
|
||||
} else {
|
||||
glXMakeCurrent(dpy, win2, ctx2);
|
||||
}
|
||||
|
||||
/* Clear and draw in window 2 */
|
||||
glDrawBuffer(GL_BACK);
|
||||
glClearColor(0, 0, 1, 1);
|
||||
glClear(GL_COLOR_BUFFER_BIT);
|
||||
glColor3f(1, 1, 0);
|
||||
glBegin(GL_TRIANGLES);
|
||||
glVertex2f(0, 0);
|
||||
glVertex2f(cos(angle * DEGTOR), sin(angle * DEGTOR));
|
||||
glVertex2f(cos((angle + 20.0) * DEGTOR),
|
||||
sin((angle + 20.0) * DEGTOR));
|
||||
glEnd();
|
||||
glFlush();
|
||||
|
||||
/* Swap buffers */
|
||||
if (test == 2 || test == 4)
|
||||
glXSwapBuffers(dpy, win1);
|
||||
glXSwapBuffers(dpy, win2);
|
||||
|
||||
/* wait a while */
|
||||
glXWaitX();
|
||||
usleep(20000);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
@@ -1,4 +1,4 @@
|
||||
/* $Id: manytex.c,v 1.3 2000/11/09 16:53:26 brianp Exp $ */
|
||||
/* $Id: manytex.c,v 1.4 2002/10/18 17:47:36 kschultz Exp $ */
|
||||
|
||||
/*
|
||||
* test handling of many texture maps
|
||||
@@ -28,7 +28,7 @@ static GLboolean MipMap = GL_FALSE;
|
||||
static GLboolean LinearFilter = GL_FALSE;
|
||||
static GLboolean RandomSize = GL_FALSE;
|
||||
static GLint Rows, Columns;
|
||||
static GLuint LowPriorityCount = 0;
|
||||
static GLint LowPriorityCount = 0;
|
||||
|
||||
|
||||
static void Idle( void )
|
||||
|
@@ -1,57 +1,7 @@
|
||||
/* $Id: multipal.c,v 1.1.2.1 2002/04/15 22:13:00 kschultz Exp $ */
|
||||
/* $Id: multipal.c,v 1.4 2002/10/18 17:47:36 kschultz Exp $ */
|
||||
|
||||
/*
|
||||
* GL_ARB_multitexture demo
|
||||
*
|
||||
* Command line options:
|
||||
* -info print GL implementation information
|
||||
*
|
||||
*
|
||||
* Brian Paul November 1998 This program is in the public domain.
|
||||
*/
|
||||
|
||||
/*
|
||||
* $Log: multipal.c,v $
|
||||
* Revision 1.1.2.1 2002/04/15 22:13:00 kschultz
|
||||
* Build demos/samples correctly on Windows (Robert Bergkvist) to sync up
|
||||
* with the main branch. (I should have done this for 4.0.2)
|
||||
*
|
||||
* Revision 1.2 2002/01/16 01:03:25 kschultz
|
||||
* get tests working on windows (Robert Bergkvist)
|
||||
*
|
||||
* Revision 1.1 2000/11/18 17:12:33 brianp
|
||||
* test texture palettes with multitexture
|
||||
*
|
||||
* Revision 1.7 2000/11/01 16:02:01 brianp
|
||||
* print number of texture units
|
||||
*
|
||||
* Revision 1.6 2000/05/23 23:21:00 brianp
|
||||
* set default window pos
|
||||
*
|
||||
* Revision 1.5 2000/02/02 17:31:45 brianp
|
||||
* changed > to >=
|
||||
*
|
||||
* Revision 1.4 2000/02/02 01:07:21 brianp
|
||||
* limit Drift to [0, 1]
|
||||
*
|
||||
* Revision 1.3 1999/10/21 16:40:32 brianp
|
||||
* added -info command line option
|
||||
*
|
||||
* Revision 1.2 1999/10/13 12:02:13 brianp
|
||||
* use texture objects now
|
||||
*
|
||||
* Revision 1.1.1.1 1999/08/19 00:55:40 jtg
|
||||
* Imported sources
|
||||
*
|
||||
* Revision 1.3 1999/03/28 18:20:49 brianp
|
||||
* minor clean-up
|
||||
*
|
||||
* Revision 1.2 1998/11/05 04:34:04 brianp
|
||||
* moved image files to ../images/ directory
|
||||
*
|
||||
* Revision 1.1 1998/11/03 01:36:33 brianp
|
||||
* Initial revision
|
||||
*
|
||||
* Test multitexture and paletted textures.
|
||||
*/
|
||||
|
||||
#include <assert.h>
|
||||
@@ -263,7 +213,7 @@ static void SpecialKey( int key, int x, int y )
|
||||
static void load_tex(const char *fname, int channel)
|
||||
{
|
||||
GLubyte *image;
|
||||
GLenum format, type;
|
||||
GLenum format;
|
||||
GLint w, h;
|
||||
GLubyte *grayImage;
|
||||
int i;
|
||||
@@ -310,11 +260,14 @@ static void Init( int argc, char *argv[] )
|
||||
GLuint texObj[2];
|
||||
GLint units;
|
||||
|
||||
const char *exten = (const char *) glGetString(GL_EXTENSIONS);
|
||||
if (!strstr(exten, "GL_ARB_multitexture")) {
|
||||
if (!glutExtensionSupported("GL_ARB_multitexture")) {
|
||||
printf("Sorry, GL_ARB_multitexture not supported by this renderer.\n");
|
||||
exit(1);
|
||||
}
|
||||
if (!glutExtensionSupported("GL_EXT_paletted_texture")) {
|
||||
printf("Sorry, GL_EXT_paletted_texture not supported by this renderer.\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
glGetIntegerv(GL_MAX_TEXTURE_UNITS_ARB, &units);
|
||||
printf("%d texture units supported\n", units);
|
||||
|
238
progs/tests/multitexarray.c
Normal file
238
progs/tests/multitexarray.c
Normal file
@@ -0,0 +1,238 @@
|
||||
/*
|
||||
* Test vertex arrays and multitexture.
|
||||
* Press 'a' to toggle vertex arrays on/off.
|
||||
* When you run this program you should see a square with four colors:
|
||||
*
|
||||
* +------+------+
|
||||
* |yellow| pink |
|
||||
* +------+------+
|
||||
* |green | blue |
|
||||
* +------+------+
|
||||
*/
|
||||
|
||||
|
||||
#include <assert.h>
|
||||
#include <math.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include "GL/glut.h"
|
||||
|
||||
static GLuint Window = 0;
|
||||
|
||||
static GLuint TexObj[2];
|
||||
static GLfloat Angle = 0.0f;
|
||||
static GLboolean UseArrays = 1, Anim = 0;
|
||||
|
||||
static GLfloat VertArray[4][2] = {
|
||||
{-1.2, -1.2}, {1.2, -1.2}, {1.2, 1.2}, {-1.2, 1.2}
|
||||
};
|
||||
|
||||
static GLfloat Tex0Array[4][2] = {
|
||||
{0, 0}, {1, 0}, {1, 1}, {0, 1}
|
||||
};
|
||||
|
||||
static GLfloat Tex1Array[4][2] = {
|
||||
{0, 0}, {1, 0}, {1, 1}, {0, 1}
|
||||
};
|
||||
|
||||
|
||||
static void init_arrays(void)
|
||||
{
|
||||
glVertexPointer(2, GL_FLOAT, 0, VertArray);
|
||||
glEnableClientState(GL_VERTEX_ARRAY);
|
||||
|
||||
glClientActiveTextureARB(GL_TEXTURE0_ARB);
|
||||
glTexCoordPointer(2, GL_FLOAT, 0, Tex0Array);
|
||||
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
|
||||
|
||||
glClientActiveTextureARB(GL_TEXTURE1_ARB);
|
||||
glTexCoordPointer(2, GL_FLOAT, 0, Tex1Array);
|
||||
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
|
||||
}
|
||||
|
||||
|
||||
static void draw( void )
|
||||
{
|
||||
glClear( GL_COLOR_BUFFER_BIT );
|
||||
|
||||
glColor3f( 0.0, 0.0, 0.0 );
|
||||
|
||||
/* draw first polygon */
|
||||
glPushMatrix();
|
||||
glRotatef( Angle, 0.0, 0.0, 1.0 );
|
||||
|
||||
if (UseArrays) {
|
||||
glDrawArrays(GL_POLYGON, 0, 4);
|
||||
}
|
||||
else {
|
||||
glBegin( GL_POLYGON );
|
||||
glTexCoord2f( 0.0, 0.0 );
|
||||
glMultiTexCoord2fARB(GL_TEXTURE1_ARB, 0.0, 0.0);
|
||||
glVertex2f( -1.0, -1.0 );
|
||||
|
||||
glTexCoord2f( 1.0, 0.0 );
|
||||
glMultiTexCoord2fARB(GL_TEXTURE1_ARB, 1.0, 0.0);
|
||||
glVertex2f( 1.0, -1.0 );
|
||||
|
||||
glTexCoord2f( 1.0, 1.0 );
|
||||
glMultiTexCoord2fARB(GL_TEXTURE1_ARB, 1.0, 1.0);
|
||||
glVertex2f( 1.0, 1.0 );
|
||||
|
||||
glTexCoord2f( 0.0, 1.0 );
|
||||
glMultiTexCoord2fARB(GL_TEXTURE1_ARB, 0.0, 1.0);
|
||||
glVertex2f( -1.0, 1.0 );
|
||||
glEnd();
|
||||
}
|
||||
|
||||
glPopMatrix();
|
||||
|
||||
glutSwapBuffers();
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void idle( void )
|
||||
{
|
||||
Angle += 2.0;
|
||||
glutPostRedisplay();
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* change view Angle, exit upon ESC */
|
||||
static void key(unsigned char k, int x, int y)
|
||||
{
|
||||
(void) x;
|
||||
(void) y;
|
||||
switch (k) {
|
||||
case 'a':
|
||||
UseArrays = !UseArrays;
|
||||
printf("UseArrays: %d\n", UseArrays);
|
||||
break;
|
||||
case ' ':
|
||||
Anim = !Anim;
|
||||
if (Anim)
|
||||
glutIdleFunc(idle);
|
||||
else
|
||||
glutIdleFunc(NULL);
|
||||
break;
|
||||
case 27:
|
||||
glDeleteTextures( 2, TexObj );
|
||||
glutDestroyWindow(Window);
|
||||
exit(0);
|
||||
}
|
||||
glutPostRedisplay();
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* new window size or exposure */
|
||||
static void reshape( int width, int height )
|
||||
{
|
||||
glViewport(0, 0, (GLint)width, (GLint)height);
|
||||
glMatrixMode(GL_PROJECTION);
|
||||
glLoadIdentity();
|
||||
/* glOrtho( -3.0, 3.0, -3.0, 3.0, -10.0, 10.0 );*/
|
||||
glFrustum( -2.0, 2.0, -2.0, 2.0, 6.0, 20.0 );
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
glLoadIdentity();
|
||||
glTranslatef( 0.0, 0.0, -8.0 );
|
||||
}
|
||||
|
||||
|
||||
static void init( void )
|
||||
{
|
||||
static int width=8, height=8;
|
||||
GLubyte tex[64][3];
|
||||
GLint i, j;
|
||||
|
||||
/* generate texture object IDs */
|
||||
glGenTextures( 2, TexObj );
|
||||
|
||||
/*
|
||||
* setup first texture object
|
||||
*/
|
||||
glActiveTextureARB(GL_TEXTURE0_ARB);
|
||||
glEnable( GL_TEXTURE_2D );
|
||||
glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_ADD );
|
||||
|
||||
glBindTexture( GL_TEXTURE_2D, TexObj[0] );
|
||||
assert(glIsTexture(TexObj[0]));
|
||||
|
||||
/* red over black */
|
||||
for (i=0;i<height;i++) {
|
||||
for (j=0;j<width;j++) {
|
||||
int p = i*width+j;
|
||||
if (i < height / 2) {
|
||||
tex[p][0] = 0; tex[p][1] = 0; tex[p][2] = 0;
|
||||
}
|
||||
else {
|
||||
tex[p][0] = 255; tex[p][1] = 0; tex[p][2] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
glTexImage2D( GL_TEXTURE_2D, 0, 3, width, height, 0,
|
||||
GL_RGB, GL_UNSIGNED_BYTE, tex );
|
||||
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST );
|
||||
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST );
|
||||
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT );
|
||||
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT );
|
||||
|
||||
|
||||
/*
|
||||
* setup second texture object
|
||||
*/
|
||||
glActiveTextureARB(GL_TEXTURE1_ARB);
|
||||
glEnable( GL_TEXTURE_2D );
|
||||
glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_ADD );
|
||||
|
||||
glBindTexture( GL_TEXTURE_2D, TexObj[1] );
|
||||
assert(glIsTexture(TexObj[1]));
|
||||
|
||||
/* left=green, right = blue */
|
||||
for (i=0;i<height;i++) {
|
||||
for (j=0;j<width;j++) {
|
||||
int p = i*width+j;
|
||||
if (j < width / 2) {
|
||||
tex[p][0] = 0; tex[p][1] = 255; tex[p][2] = 0;
|
||||
}
|
||||
else {
|
||||
tex[p][0] = 0; tex[p][1] = 0; tex[p][2] = 255;
|
||||
}
|
||||
}
|
||||
}
|
||||
glTexImage2D( GL_TEXTURE_2D, 0, 3, width, height, 0,
|
||||
GL_RGB, GL_UNSIGNED_BYTE, tex );
|
||||
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST );
|
||||
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST );
|
||||
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT );
|
||||
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT );
|
||||
}
|
||||
|
||||
|
||||
|
||||
int main( int argc, char *argv[] )
|
||||
{
|
||||
glutInit(&argc, argv);
|
||||
glutInitWindowPosition(0, 0);
|
||||
glutInitWindowSize(300, 300);
|
||||
glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE );
|
||||
|
||||
Window = glutCreateWindow("Texture Objects");
|
||||
if (!Window) {
|
||||
exit(1);
|
||||
}
|
||||
|
||||
init();
|
||||
init_arrays();
|
||||
|
||||
glutReshapeFunc( reshape );
|
||||
glutKeyboardFunc( key );
|
||||
if (Anim)
|
||||
glutIdleFunc( idle );
|
||||
glutDisplayFunc( draw );
|
||||
glutMainLoop();
|
||||
return 0;
|
||||
}
|
@@ -1,4 +1,4 @@
|
||||
/* $Id: sharedtex.c,v 1.1 2000/09/01 21:01:18 brianp Exp $ */
|
||||
/* $Id: sharedtex.c,v 1.2 2002/01/16 14:32:46 joukj Exp $ */
|
||||
|
||||
/*
|
||||
* Test sharing of display lists and texture objects between GLX contests.
|
||||
@@ -32,6 +32,7 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
|
||||
|
||||
struct window {
|
||||
@@ -142,7 +143,7 @@ AddWindow(const char *displayName, int xpos, int ypos,
|
||||
if (!glXMakeCurrent(dpy, win, ctx)) {
|
||||
Error(displayName, "glXMakeCurrent failed");
|
||||
printf("glXMakeCurrent failed in Redraw()\n");
|
||||
return;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* save the info for this window */
|
||||
|
147
progs/tests/stencilwrap.c
Normal file
147
progs/tests/stencilwrap.c
Normal file
@@ -0,0 +1,147 @@
|
||||
/* Test GL_EXT_stencil_wrap extension.
|
||||
* This is by no means complete, just a quick check.
|
||||
*
|
||||
* Brian Paul 30 October 2002
|
||||
*/
|
||||
|
||||
#include <assert.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
#include <GL/glut.h>
|
||||
|
||||
|
||||
static void RunTest(void)
|
||||
{
|
||||
const GLenum prim = GL_LINES;
|
||||
GLubyte val;
|
||||
int bits, max, i;
|
||||
|
||||
glGetIntegerv(GL_STENCIL_BITS, &bits);
|
||||
max = (1 << bits) - 1;
|
||||
|
||||
glClearStencil(0);
|
||||
glEnable(GL_STENCIL_TEST);
|
||||
glStencilFunc(GL_ALWAYS, 0, ~0);
|
||||
|
||||
/* test GL_INCR (saturation) */
|
||||
glClear(GL_STENCIL_BUFFER_BIT);
|
||||
glStencilOp(GL_KEEP, GL_KEEP, GL_INCR);
|
||||
printf("Testing GL_INCR...\n");
|
||||
for (i = 1; i < max+10; i++) {
|
||||
int expected = (i > max) ? max : i;
|
||||
glBegin(prim);
|
||||
glVertex2f(0.5, 0.5); glVertex2f(9.5, 0.5);
|
||||
glEnd();
|
||||
glReadPixels(0, 0, 1, 1, GL_STENCIL_INDEX, GL_UNSIGNED_BYTE, &val);
|
||||
assert(val == expected);
|
||||
}
|
||||
printf("OK!\n");
|
||||
|
||||
/* test GL_INCR_WRAP_EXT (wrap around) */
|
||||
glClear(GL_STENCIL_BUFFER_BIT);
|
||||
glStencilOp(GL_KEEP, GL_KEEP, GL_INCR_WRAP_EXT);
|
||||
printf("Testing GL_INCR_WRAP_EXT...\n");
|
||||
for (i = 1; i < max+10; i++) {
|
||||
int expected = i % (max + 1);
|
||||
glBegin(prim);
|
||||
glVertex2f(0.5, 0.5); glVertex2f(9.5, 0.5);
|
||||
glEnd();
|
||||
glReadPixels(0, 0, 1, 1, GL_STENCIL_INDEX, GL_UNSIGNED_BYTE, &val);
|
||||
assert(val == expected);
|
||||
}
|
||||
printf("OK!\n");
|
||||
|
||||
glClearStencil(max);
|
||||
|
||||
/* test GL_INCR (saturation) */
|
||||
glClear(GL_STENCIL_BUFFER_BIT);
|
||||
glStencilOp(GL_KEEP, GL_KEEP, GL_DECR);
|
||||
printf("Testing GL_DECR...\n");
|
||||
for (i = max-1; i > -10; i--) {
|
||||
int expected = (i < 0) ? 0 : i;
|
||||
glBegin(prim);
|
||||
glVertex2f(0.5, 0.5); glVertex2f(9.5, 0.5);
|
||||
glEnd();
|
||||
glReadPixels(0, 0, 1, 1, GL_STENCIL_INDEX, GL_UNSIGNED_BYTE, &val);
|
||||
assert(val == expected);
|
||||
}
|
||||
printf("OK!\n");
|
||||
|
||||
/* test GL_INCR_WRAP_EXT (wrap-around) */
|
||||
glClear(GL_STENCIL_BUFFER_BIT);
|
||||
glStencilOp(GL_KEEP, GL_KEEP, GL_DECR_WRAP_EXT);
|
||||
printf("Testing GL_DECR_WRAP_EXT...\n");
|
||||
for (i = max-1; i > -10; i--) {
|
||||
int expected = (i < 0) ? max + i + 1: i;
|
||||
glBegin(prim);
|
||||
glVertex2f(0.5, 0.5); glVertex2f(9.5, 0.5);
|
||||
glEnd();
|
||||
glReadPixels(0, 0, 1, 1, GL_STENCIL_INDEX, GL_UNSIGNED_BYTE, &val);
|
||||
assert(val == expected);
|
||||
}
|
||||
printf("OK!\n");
|
||||
|
||||
glDisable(GL_STENCIL_TEST);
|
||||
}
|
||||
|
||||
|
||||
static void Display( void )
|
||||
{
|
||||
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
|
||||
|
||||
RunTest();
|
||||
|
||||
glutSwapBuffers();
|
||||
}
|
||||
|
||||
|
||||
static void Reshape( int width, int height )
|
||||
{
|
||||
glViewport( 0, 0, width, height );
|
||||
glMatrixMode( GL_PROJECTION );
|
||||
glLoadIdentity();
|
||||
glOrtho(0, width, 0, height, -1, 1);
|
||||
glMatrixMode( GL_MODELVIEW );
|
||||
glLoadIdentity();
|
||||
}
|
||||
|
||||
|
||||
static void Key( unsigned char key, int x, int y )
|
||||
{
|
||||
(void) x;
|
||||
(void) y;
|
||||
switch (key) {
|
||||
case 27:
|
||||
exit(0);
|
||||
break;
|
||||
}
|
||||
glutPostRedisplay();
|
||||
}
|
||||
|
||||
|
||||
static void Init( void )
|
||||
{
|
||||
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
|
||||
printf("GL_VERSION = %s\n", (char *) glGetString(GL_VERSION));
|
||||
if (!glutExtensionSupported("GL_EXT_stencil_wrap")) {
|
||||
printf("Sorry, GL_EXT_stencil_wrap not supported.\n");
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int main( int argc, char *argv[] )
|
||||
{
|
||||
glutInit( &argc, argv );
|
||||
glutInitWindowPosition( 0, 0 );
|
||||
glutInitWindowSize( 400, 400 );
|
||||
glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE | GLUT_STENCIL );
|
||||
glutCreateWindow(argv[0]);
|
||||
glutReshapeFunc( Reshape );
|
||||
glutKeyboardFunc( Key );
|
||||
glutDisplayFunc( Display );
|
||||
Init();
|
||||
glutMainLoop();
|
||||
return 0;
|
||||
}
|
@@ -1,4 +1,4 @@
|
||||
/* $Id: texline.c,v 1.3 2001/05/21 17:45:25 brianp Exp $ */
|
||||
/* $Id: texline.c,v 1.4 2002/08/17 00:30:36 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* Test textured lines.
|
||||
@@ -18,14 +18,14 @@
|
||||
|
||||
static GLboolean Antialias = GL_FALSE;
|
||||
static GLboolean Animate = GL_FALSE;
|
||||
static GLboolean Texture = GL_TRUE;
|
||||
static GLint Texture = 1;
|
||||
static GLboolean Stipple = GL_FALSE;
|
||||
static GLfloat LineWidth = 1.0;
|
||||
static GLboolean Multitex = GL_FALSE;
|
||||
|
||||
static GLfloat Xrot = -60.0, Yrot = 0.0, Zrot = 0.0;
|
||||
static GLfloat DYrot = 1.0;
|
||||
static GLboolean Points = GL_FALSE;
|
||||
|
||||
static GLfloat Scale = 1.0;
|
||||
|
||||
static void Idle( void )
|
||||
{
|
||||
@@ -46,6 +46,7 @@ static void Display( void )
|
||||
glRotatef(Xrot, 1.0, 0.0, 0.0);
|
||||
glRotatef(Yrot, 0.0, 1.0, 0.0);
|
||||
glRotatef(Zrot, 0.0, 0.0, 1.0);
|
||||
glScalef(Scale, Scale, Scale);
|
||||
|
||||
if (Texture)
|
||||
glColor3f(1, 1, 1);
|
||||
@@ -122,11 +123,27 @@ static void Key( unsigned char key, int x, int y )
|
||||
}
|
||||
break;
|
||||
case 't':
|
||||
Texture = !Texture;
|
||||
if (Texture)
|
||||
glEnable(GL_TEXTURE_2D);
|
||||
else
|
||||
Texture++;
|
||||
if (Texture > 2)
|
||||
Texture = 0;
|
||||
if (Texture == 0) {
|
||||
glActiveTextureARB(GL_TEXTURE0_ARB);
|
||||
glDisable(GL_TEXTURE_2D);
|
||||
glActiveTextureARB(GL_TEXTURE1_ARB);
|
||||
glDisable(GL_TEXTURE_2D);
|
||||
}
|
||||
else if (Texture == 1) {
|
||||
glActiveTextureARB(GL_TEXTURE0_ARB);
|
||||
glEnable(GL_TEXTURE_2D);
|
||||
glActiveTextureARB(GL_TEXTURE1_ARB);
|
||||
glDisable(GL_TEXTURE_2D);
|
||||
}
|
||||
else {
|
||||
glActiveTextureARB(GL_TEXTURE0_ARB);
|
||||
glEnable(GL_TEXTURE_2D);
|
||||
glActiveTextureARB(GL_TEXTURE1_ARB);
|
||||
glEnable(GL_TEXTURE_2D);
|
||||
}
|
||||
break;
|
||||
case 'w':
|
||||
LineWidth -= 0.25;
|
||||
@@ -142,18 +159,16 @@ static void Key( unsigned char key, int x, int y )
|
||||
glLineWidth(LineWidth);
|
||||
glPointSize(LineWidth);
|
||||
break;
|
||||
case 'm':
|
||||
Multitex = !Multitex;
|
||||
if (Multitex) {
|
||||
glEnable(GL_TEXTURE_2D);
|
||||
}
|
||||
else {
|
||||
glDisable(GL_TEXTURE_2D);
|
||||
}
|
||||
break;
|
||||
case 'p':
|
||||
Points = !Points;
|
||||
break;
|
||||
case 's':
|
||||
Stipple = !Stipple;
|
||||
if (Stipple)
|
||||
glEnable(GL_LINE_STIPPLE);
|
||||
else
|
||||
glDisable(GL_LINE_STIPPLE);
|
||||
break;
|
||||
case ' ':
|
||||
Animate = !Animate;
|
||||
if (Animate)
|
||||
@@ -200,7 +215,7 @@ static void Init( int argc, char *argv[] )
|
||||
for (u = 0; u < 2; u++) {
|
||||
glActiveTextureARB(GL_TEXTURE0_ARB + u);
|
||||
glBindTexture(GL_TEXTURE_2D, 10+u);
|
||||
if (u == 0 || Multitex)
|
||||
if (u == 0)
|
||||
glEnable(GL_TEXTURE_2D);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
|
||||
@@ -219,6 +234,8 @@ static void Init( int argc, char *argv[] )
|
||||
}
|
||||
}
|
||||
|
||||
glLineStipple(1, 0xff);
|
||||
|
||||
if (argc > 1 && strcmp(argv[1], "-info")==0) {
|
||||
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
|
||||
printf("GL_VERSION = %s\n", (char *) glGetString(GL_VERSION));
|
||||
|
298
progs/tests/texrect.c
Normal file
298
progs/tests/texrect.c
Normal file
@@ -0,0 +1,298 @@
|
||||
/* $Id: texrect.c,v 1.2 2002/10/15 14:43:55 brianp Exp $ */
|
||||
|
||||
/* GL_NV_texture_rectangle test
|
||||
*
|
||||
* Brian Paul
|
||||
* 14 June 2002
|
||||
*/
|
||||
|
||||
|
||||
#define GL_GLEXT_PROTOTYPES
|
||||
#include <math.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <GL/glut.h>
|
||||
|
||||
#include "readtex.c" /* I know, this is a hack. */
|
||||
|
||||
#define TEXTURE_0_FILE "../images/girl.rgb"
|
||||
#define TEXTURE_1_FILE "../images/reflect.rgb"
|
||||
|
||||
#define TEX0 1
|
||||
#define TEX7 8
|
||||
#define ANIMATE 10
|
||||
#define QUIT 100
|
||||
|
||||
static GLboolean Animate = GL_TRUE;
|
||||
static GLint NumUnits = 2;
|
||||
static GLboolean TexEnabled[8];
|
||||
static GLint Width[8], Height[8]; /* image sizes */
|
||||
static GLenum Format[8];
|
||||
|
||||
static GLfloat Xrot = 00.0, Yrot = 00.0, Zrot = 0.0;
|
||||
|
||||
|
||||
static void Idle( void )
|
||||
{
|
||||
Zrot += 1.0;
|
||||
glutPostRedisplay();
|
||||
}
|
||||
|
||||
|
||||
static void DrawObject(void)
|
||||
{
|
||||
GLint i;
|
||||
GLfloat d = 0; /* set this >0 to test clamping */
|
||||
|
||||
glColor3f(.1, .1, .1); /* modulate this */
|
||||
|
||||
glPushMatrix();
|
||||
|
||||
glRotatef(Zrot, 0, 0, 1);
|
||||
|
||||
glBegin(GL_QUADS);
|
||||
|
||||
for (i = 0; i < NumUnits; i++)
|
||||
glMultiTexCoord2fARB(GL_TEXTURE0_ARB + i, -d, -d);
|
||||
glVertex2f(-1.0, -1.0);
|
||||
|
||||
for (i = 0; i < NumUnits; i++)
|
||||
glMultiTexCoord2fARB(GL_TEXTURE0_ARB + i, Width[i]+d, -3);
|
||||
glVertex2f(1.0, -1.0);
|
||||
|
||||
for (i = 0; i < NumUnits; i++)
|
||||
glMultiTexCoord2fARB(GL_TEXTURE0_ARB + i, Width[i]+d, Height[i]+3);
|
||||
glVertex2f(1.0, 1.0);
|
||||
|
||||
for (i = 0; i < NumUnits; i++)
|
||||
glMultiTexCoord2fARB(GL_TEXTURE0_ARB + i, -d, Height[i]+d);
|
||||
glVertex2f(-1.0, 1.0);
|
||||
|
||||
glEnd();
|
||||
glPopMatrix();
|
||||
}
|
||||
|
||||
|
||||
static void Display( void )
|
||||
{
|
||||
glClear( GL_COLOR_BUFFER_BIT );
|
||||
|
||||
glPushMatrix();
|
||||
glRotatef(Xrot, 1.0, 0.0, 0.0);
|
||||
glRotatef(Yrot, 0.0, 1.0, 0.0);
|
||||
glRotatef(Zrot, 0.0, 0.0, 1.0);
|
||||
glScalef(5.0, 5.0, 5.0);
|
||||
DrawObject();
|
||||
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, 100.0 );
|
||||
glMatrixMode( GL_MODELVIEW );
|
||||
glLoadIdentity();
|
||||
glTranslatef( 0.0, 0.0, -35.0 );
|
||||
}
|
||||
|
||||
|
||||
static void ModeMenu(int entry)
|
||||
{
|
||||
if (entry >= TEX0 && entry < TEX0 + NumUnits) {
|
||||
/* toggle */
|
||||
GLint i = entry - TEX0;
|
||||
TexEnabled[i] = !TexEnabled[i];
|
||||
glActiveTextureARB(GL_TEXTURE0_ARB + i);
|
||||
if (TexEnabled[i]) {
|
||||
glEnable(GL_TEXTURE_RECTANGLE_NV);
|
||||
}
|
||||
else {
|
||||
glDisable(GL_TEXTURE_RECTANGLE_NV);
|
||||
}
|
||||
printf("Enabled: ");
|
||||
for (i = 0; i < NumUnits; i++)
|
||||
printf("%d ", (int) TexEnabled[i]);
|
||||
printf("\n");
|
||||
}
|
||||
else if (entry==ANIMATE) {
|
||||
Animate = !Animate;
|
||||
if (Animate)
|
||||
glutIdleFunc(Idle);
|
||||
else
|
||||
glutIdleFunc(NULL);
|
||||
}
|
||||
else if (entry==QUIT) {
|
||||
exit(0);
|
||||
}
|
||||
|
||||
glutPostRedisplay();
|
||||
}
|
||||
|
||||
|
||||
static void Key( unsigned char key, int x, int y )
|
||||
{
|
||||
(void) x;
|
||||
(void) y;
|
||||
switch (key) {
|
||||
case 27:
|
||||
exit(0);
|
||||
break;
|
||||
}
|
||||
glutPostRedisplay();
|
||||
}
|
||||
|
||||
|
||||
static void SpecialKey( int key, int x, int y )
|
||||
{
|
||||
float step = 3.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 Init( int argc, char *argv[] )
|
||||
{
|
||||
GLuint texObj[8];
|
||||
GLint size, i;
|
||||
|
||||
if (!glutExtensionSupported("GL_ARB_multitexture")) {
|
||||
printf("Sorry, GL_ARB_multitexture needed by this program\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if (!glutExtensionSupported("GL_NV_texture_rectangle")) {
|
||||
printf("Sorry, GL_NV_texture_rectangle needed by this program\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
glGetIntegerv(GL_MAX_TEXTURE_UNITS_ARB, &NumUnits);
|
||||
printf("%d texture units supported, using 2.\n", NumUnits);
|
||||
if (NumUnits > 2)
|
||||
NumUnits = 2;
|
||||
|
||||
glGetIntegerv(GL_MAX_RECTANGLE_TEXTURE_SIZE_NV, &size);
|
||||
printf("%d x %d max texture rectangle size\n", size, size);
|
||||
|
||||
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
|
||||
|
||||
for (i = 0; i < NumUnits; i++) {
|
||||
TexEnabled[i] = GL_TRUE;
|
||||
}
|
||||
|
||||
/* allocate two texture objects */
|
||||
glGenTextures(NumUnits, texObj);
|
||||
|
||||
/* setup the texture objects */
|
||||
for (i = 0; i < NumUnits; i++) {
|
||||
|
||||
glActiveTextureARB(GL_TEXTURE0_ARB + i);
|
||||
|
||||
glBindTexture(GL_TEXTURE_RECTANGLE_NV, texObj[i]);
|
||||
glTexParameteri(GL_TEXTURE_RECTANGLE_NV,
|
||||
GL_TEXTURE_MIN_FILTER, GL_NEAREST);
|
||||
glTexParameteri(GL_TEXTURE_RECTANGLE_NV,
|
||||
GL_TEXTURE_MAG_FILTER, GL_NEAREST);
|
||||
|
||||
if (i == 0) {
|
||||
GLubyte *img = LoadRGBImage(TEXTURE_0_FILE, &Width[0], &Height[0],
|
||||
&Format[0]);
|
||||
if (!img) {
|
||||
printf("Error: couldn't load texture image\n");
|
||||
exit(1);
|
||||
}
|
||||
printf("Texture %d: %s (%d x %d)\n", i,
|
||||
TEXTURE_0_FILE, Width[0], Height[0]);
|
||||
glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0, GL_RGB,
|
||||
Width[0], Height[0], 0,
|
||||
Format[0], GL_UNSIGNED_BYTE, img);
|
||||
}
|
||||
else {
|
||||
GLubyte *img = LoadRGBImage(TEXTURE_1_FILE, &Width[1], &Height[1],
|
||||
&Format[1]);
|
||||
if (!img) {
|
||||
printf("Error: couldn't load texture image\n");
|
||||
exit(1);
|
||||
}
|
||||
printf("Texture %d: %s (%d x %d)\n", i,
|
||||
TEXTURE_1_FILE, Width[1], Height[1]);
|
||||
glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0, GL_RGB,
|
||||
Width[1], Height[1], 0,
|
||||
Format[1], GL_UNSIGNED_BYTE, img);
|
||||
}
|
||||
|
||||
if (i < 1)
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_ADD);
|
||||
else
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_ADD);
|
||||
|
||||
if (TexEnabled[i])
|
||||
glEnable(GL_TEXTURE_RECTANGLE_NV);
|
||||
}
|
||||
|
||||
glShadeModel(GL_FLAT);
|
||||
glClearColor(0.3, 0.3, 0.4, 1.0);
|
||||
|
||||
if (argc > 1 && strcmp(argv[1], "-info")==0) {
|
||||
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
|
||||
printf("GL_VERSION = %s\n", (char *) glGetString(GL_VERSION));
|
||||
printf("GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR));
|
||||
printf("GL_EXTENSIONS = %s\n", (char *) glGetString(GL_EXTENSIONS));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int main( int argc, char *argv[] )
|
||||
{
|
||||
GLint i;
|
||||
|
||||
glutInit( &argc, argv );
|
||||
glutInitWindowSize( 300, 300 );
|
||||
glutInitWindowPosition( 0, 0 );
|
||||
glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE );
|
||||
glutCreateWindow(argv[0] );
|
||||
|
||||
Init( argc, argv );
|
||||
|
||||
glutReshapeFunc( Reshape );
|
||||
glutKeyboardFunc( Key );
|
||||
glutSpecialFunc( SpecialKey );
|
||||
glutDisplayFunc( Display );
|
||||
if (Animate)
|
||||
glutIdleFunc( Idle );
|
||||
|
||||
glutCreateMenu(ModeMenu);
|
||||
|
||||
for (i = 0; i < NumUnits; i++) {
|
||||
char s[100];
|
||||
sprintf(s, "Toggle Texture %d", i);
|
||||
glutAddMenuEntry(s, TEX0 + i);
|
||||
}
|
||||
glutAddMenuEntry("Toggle Animation", ANIMATE);
|
||||
glutAddMenuEntry("Quit", QUIT);
|
||||
glutAttachMenu(GLUT_RIGHT_BUTTON);
|
||||
|
||||
glutMainLoop();
|
||||
return 0;
|
||||
}
|
@@ -1,4 +1,4 @@
|
||||
/* $Id: texwrap.c,v 1.2 2001/04/12 20:50:26 brianp Exp $ */
|
||||
/* $Id: texwrap.c,v 1.4 2002/10/18 17:47:36 kschultz Exp $ */
|
||||
|
||||
/*
|
||||
* Test texture wrap modes.
|
||||
@@ -16,10 +16,18 @@
|
||||
#include <GL/glut.h>
|
||||
|
||||
|
||||
#ifndef GL_CLAMP_TO_BORDER_ARB
|
||||
#define GL_CLAMP_TO_BORDER_ARB 0x812D
|
||||
#ifndef GL_CLAMP_TO_BORDER
|
||||
#define GL_CLAMP_TO_BORDER 0x812D
|
||||
#endif
|
||||
|
||||
#ifndef GL_MIRRORED_REPEAT
|
||||
#define GL_MIRRORED_REPEAT 0x8370
|
||||
#endif
|
||||
|
||||
#ifndef GL_ATI_texture_mirror_once
|
||||
#define GL_MIRROR_CLAMP_ATI 0x8742
|
||||
#define GL_MIRROR_CLAMP_TO_EDGE_ATI 0x8743
|
||||
#endif
|
||||
|
||||
#define BORDER_TEXTURE 1
|
||||
#define NO_BORDER_TEXTURE 2
|
||||
@@ -30,6 +38,38 @@ static GLubyte NoBorderImage[SIZE][SIZE][4];
|
||||
static GLuint Border = 1;
|
||||
|
||||
|
||||
#define WRAP_MODE(m) { m , # m, GL_TRUE, 1.0, { NULL, NULL } }
|
||||
#define WRAP_EXT(m,e1,e2,v) { m , # m, GL_FALSE, v, { e1, e2 } }
|
||||
|
||||
struct wrap_mode {
|
||||
GLenum mode;
|
||||
const char * name;
|
||||
GLboolean supported;
|
||||
GLfloat version;
|
||||
const char * extension_names[2];
|
||||
};
|
||||
|
||||
static struct wrap_mode modes[] = {
|
||||
WRAP_MODE( GL_REPEAT ),
|
||||
WRAP_MODE( GL_CLAMP ),
|
||||
WRAP_EXT ( GL_CLAMP_TO_EDGE, "GL_EXT_texture_edge_clamp",
|
||||
"GL_SGIS_texture_edge_clamp",
|
||||
1.2 ),
|
||||
WRAP_EXT ( GL_CLAMP_TO_BORDER, "GL_ARB_texture_border_clamp",
|
||||
"GL_SGIS_texture_border_clamp",
|
||||
1.3 ),
|
||||
WRAP_EXT ( GL_MIRRORED_REPEAT, "GL_ARB_texture_mirrored_repeat",
|
||||
"GL_IBM_texture_mirrored_repeat",
|
||||
1.4 ),
|
||||
WRAP_EXT ( GL_MIRROR_CLAMP_ATI, "GL_ATI_texture_mirror_once",
|
||||
NULL,
|
||||
999.0 ),
|
||||
WRAP_EXT ( GL_MIRROR_CLAMP_TO_EDGE_ATI, "GL_ATI_texture_mirror_once",
|
||||
NULL,
|
||||
999.0 ),
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static void
|
||||
PrintString(const char *s)
|
||||
{
|
||||
@@ -42,23 +82,36 @@ PrintString(const char *s)
|
||||
|
||||
static void Display( void )
|
||||
{
|
||||
static const GLenum modes[] = {
|
||||
GL_REPEAT,
|
||||
GL_CLAMP,
|
||||
GL_CLAMP_TO_EDGE,
|
||||
GL_CLAMP_TO_BORDER_ARB
|
||||
};
|
||||
static const char *names[] = {
|
||||
"GL_REPEAT",
|
||||
"GL_CLAMP",
|
||||
"GL_CLAMP_TO_EDGE",
|
||||
"GL_CLAMP_TO_BORDER_ARB"
|
||||
};
|
||||
GLenum i, j;
|
||||
GLint offset;
|
||||
GLfloat version;
|
||||
|
||||
GLint i, j;
|
||||
GLint numModes;
|
||||
/* Fill in the extensions that are supported.
|
||||
*/
|
||||
|
||||
version = atof( (char *) glGetString( GL_VERSION ) );
|
||||
for ( i = 0 ; modes[i].mode != 0 ; i++ ) {
|
||||
if ( ((modes[i].extension_names[0] != NULL)
|
||||
&& glutExtensionSupported(modes[i].extension_names[0]))
|
||||
|| ((modes[i].extension_names[1] != NULL)
|
||||
&& glutExtensionSupported(modes[i].extension_names[1])) ) {
|
||||
modes[i].supported = GL_TRUE;
|
||||
}
|
||||
else if ( !modes[i].supported && (modes[i].version <= version) ) {
|
||||
fprintf( stderr, "WARNING: OpenGL library meets minimum version\n"
|
||||
" requirement for %s, but the\n"
|
||||
" extension string is not advertised.\n"
|
||||
" (%s%s%s)\n",
|
||||
modes[i].name,
|
||||
modes[i].extension_names[0],
|
||||
(modes[i].extension_names[1] != NULL)
|
||||
? " or " : "",
|
||||
(modes[i].extension_names[1] != NULL)
|
||||
? modes[i].extension_names[1] : "" );
|
||||
modes[i].supported = GL_TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
numModes = glutExtensionSupported("GL_ARB_texture_border_clamp") ? 4 : 3;
|
||||
|
||||
glClearColor(0.5, 0.5, 0.5, 1.0);
|
||||
glClear( GL_COLOR_BUFFER_BIT );
|
||||
@@ -72,8 +125,11 @@ static void Display( void )
|
||||
|
||||
glBindTexture(GL_TEXTURE_2D, Border ? BORDER_TEXTURE : NO_BORDER_TEXTURE);
|
||||
|
||||
|
||||
/* loop over min/mag filters */
|
||||
for (i = 0; i < 2; i++) {
|
||||
offset = 0;
|
||||
|
||||
if (i) {
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
|
||||
@@ -84,15 +140,20 @@ static void Display( void )
|
||||
}
|
||||
|
||||
/* loop over border modes */
|
||||
for (j = 0; j < numModes; j++) {
|
||||
for (j = 0; j < modes[j].mode != 0; j++) {
|
||||
const GLfloat x0 = 0, y0 = 0, x1 = 140, y1 = 140;
|
||||
const GLfloat b = 0.2;
|
||||
const GLfloat s0 = -b, t0 = -b, s1 = 1.0+b, t1 = 1.0+b;
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, modes[j]);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, modes[j]);
|
||||
|
||||
if ( modes[j].supported != GL_TRUE )
|
||||
continue;
|
||||
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, modes[j].mode);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, modes[j].mode);
|
||||
|
||||
glPushMatrix();
|
||||
glTranslatef(j * 150 + 10, i * 150 + 25, 0);
|
||||
glTranslatef(offset * 150 + 10, i * 150 + 40, 0);
|
||||
offset++;
|
||||
|
||||
glEnable(GL_TEXTURE_2D);
|
||||
glColor3f(1, 1, 1);
|
||||
@@ -119,9 +180,13 @@ static void Display( void )
|
||||
|
||||
glDisable(GL_TEXTURE_2D);
|
||||
glColor3f(1, 1, 1);
|
||||
for (i = 0; i < numModes; i++) {
|
||||
glWindowPos2iMESA( i * 150 + 10, 5);
|
||||
PrintString(names[i]);
|
||||
offset = 0;
|
||||
for (i = 0; i < modes[i].mode != 0; i++) {
|
||||
if ( modes[i].supported ) {
|
||||
glWindowPos2iMESA( offset * 150 + 10, 5 + ((offset & 1) * 15) );
|
||||
PrintString(modes[i].name);
|
||||
offset++;
|
||||
}
|
||||
}
|
||||
|
||||
glutSwapBuffers();
|
||||
@@ -192,7 +257,6 @@ static void Init( void )
|
||||
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, SIZE+2, SIZE+2, 1,
|
||||
GL_RGBA, GL_UNSIGNED_BYTE, (void *) BorderImage);
|
||||
|
||||
|
||||
for (i = 0; i < SIZE; i++) {
|
||||
for (j = 0; j < SIZE; j++) {
|
||||
if ((i + j) & 1) {
|
||||
@@ -223,7 +287,7 @@ int main( int argc, char *argv[] )
|
||||
{
|
||||
glutInit( &argc, argv );
|
||||
glutInitWindowPosition( 0, 0 );
|
||||
glutInitWindowSize( 650, 340 );
|
||||
glutInitWindowSize( 800, 355 );
|
||||
glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE );
|
||||
glutCreateWindow(argv[0]);
|
||||
glutReshapeFunc( Reshape );
|
||||
|
277
progs/tests/vparray.c
Normal file
277
progs/tests/vparray.c
Normal file
@@ -0,0 +1,277 @@
|
||||
/*
|
||||
* Test vertex arrays with GL_NV_vertex_program
|
||||
*
|
||||
* Based on a stripped-down version of the isosurf demo.
|
||||
* The vertex program is trivial: compute the resulting
|
||||
* RGB color as a linear function of vertex XYZ.
|
||||
*/
|
||||
|
||||
#include <assert.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <math.h>
|
||||
#define GL_GLEXT_PROTOTYPES
|
||||
#include "GL/glut.h"
|
||||
|
||||
#define MAXVERTS 10000
|
||||
static float data[MAXVERTS][6];
|
||||
static GLint numverts;
|
||||
|
||||
static GLfloat xrot;
|
||||
static GLfloat yrot;
|
||||
static GLboolean useArrays = GL_FALSE;
|
||||
static GLboolean useProgram = GL_FALSE;
|
||||
|
||||
|
||||
static void read_surface( char *filename )
|
||||
{
|
||||
FILE *f;
|
||||
|
||||
f = fopen(filename,"r");
|
||||
if (!f) {
|
||||
printf("couldn't read %s\n", filename);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
numverts = 0;
|
||||
while (!feof(f) && numverts < MAXVERTS) {
|
||||
fscanf( f, "%f %f %f %f %f %f",
|
||||
&data[numverts][0], &data[numverts][1], &data[numverts][2],
|
||||
&data[numverts][3], &data[numverts][4], &data[numverts][5] );
|
||||
numverts++;
|
||||
}
|
||||
numverts--;
|
||||
|
||||
printf("%d vertices, %d triangles\n", numverts, numverts-2);
|
||||
printf("data = %p\n", (void *) data);
|
||||
fclose(f);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
static void Display(void)
|
||||
{
|
||||
if (useProgram)
|
||||
glEnable(GL_VERTEX_PROGRAM_NV);
|
||||
else
|
||||
glDisable(GL_VERTEX_PROGRAM_NV);
|
||||
|
||||
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
|
||||
|
||||
glPushMatrix();
|
||||
glRotatef(xrot, 1, 0, 0);
|
||||
glRotatef(yrot, 0, 1, 0);
|
||||
glScalef(2, 2, 2);
|
||||
if (useArrays) {
|
||||
if (useProgram) {
|
||||
glVertexAttribPointerNV( 0, 3, GL_FLOAT, 6 * sizeof(GLfloat), data );
|
||||
glEnableClientState( GL_VERTEX_ATTRIB_ARRAY0_NV );
|
||||
}
|
||||
else {
|
||||
glVertexPointer( 3, GL_FLOAT, 6 * sizeof(GLfloat), data );
|
||||
glEnableClientState( GL_VERTEX_ARRAY );
|
||||
}
|
||||
glNormalPointer( GL_FLOAT, 6 * sizeof(GLfloat), ((GLfloat *) data) + 3);
|
||||
glEnableClientState( GL_NORMAL_ARRAY );
|
||||
|
||||
glDrawArrays(GL_TRIANGLE_STRIP, 0, numverts);
|
||||
|
||||
glDisableClientState( GL_VERTEX_ATTRIB_ARRAY0_NV );
|
||||
glDisableClientState( GL_VERTEX_ARRAY );
|
||||
glDisableClientState( GL_NORMAL_ARRAY );
|
||||
}
|
||||
else {
|
||||
int i;
|
||||
glBegin(GL_TRIANGLE_STRIP);
|
||||
for (i = 0; i < numverts; i++) {
|
||||
glNormal3fv( data[i] + 3 );
|
||||
glVertex3fv( data[i] + 0 );
|
||||
}
|
||||
glEnd();
|
||||
}
|
||||
glPopMatrix();
|
||||
|
||||
if (glGetError())
|
||||
printf("Error!\n");
|
||||
|
||||
glutSwapBuffers();
|
||||
}
|
||||
|
||||
|
||||
static void InitMaterials(void)
|
||||
{
|
||||
static float ambient[] = {0.1, 0.1, 0.1, 1.0};
|
||||
static float diffuse[] = {0.5, 1.0, 1.0, 1.0};
|
||||
static float position0[] = {0.0, 0.0, 20.0, 0.0};
|
||||
static float position1[] = {0.0, 0.0, -20.0, 0.0};
|
||||
static float front_mat_shininess[] = {60.0};
|
||||
static float front_mat_specular[] = {0.2, 0.2, 0.2, 1.0};
|
||||
static float front_mat_diffuse[] = {0.5, 0.28, 0.38, 1.0};
|
||||
/*
|
||||
static float back_mat_shininess[] = {60.0};
|
||||
static float back_mat_specular[] = {0.5, 0.5, 0.2, 1.0};
|
||||
static float back_mat_diffuse[] = {1.0, 1.0, 0.2, 1.0};
|
||||
*/
|
||||
static float lmodel_ambient[] = {1.0, 1.0, 1.0, 1.0};
|
||||
static float lmodel_twoside[] = {GL_FALSE};
|
||||
|
||||
glLightfv(GL_LIGHT0, GL_AMBIENT, ambient);
|
||||
glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse);
|
||||
glLightfv(GL_LIGHT0, GL_POSITION, position0);
|
||||
glEnable(GL_LIGHT0);
|
||||
|
||||
glLightfv(GL_LIGHT1, GL_AMBIENT, ambient);
|
||||
glLightfv(GL_LIGHT1, GL_DIFFUSE, diffuse);
|
||||
glLightfv(GL_LIGHT1, GL_POSITION, position1);
|
||||
glEnable(GL_LIGHT1);
|
||||
|
||||
glLightModelfv(GL_LIGHT_MODEL_AMBIENT, lmodel_ambient);
|
||||
glLightModelfv(GL_LIGHT_MODEL_TWO_SIDE, lmodel_twoside);
|
||||
|
||||
glMaterialfv(GL_FRONT_AND_BACK, GL_SHININESS, front_mat_shininess);
|
||||
glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, front_mat_specular);
|
||||
glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, front_mat_diffuse);
|
||||
glEnable(GL_LIGHTING);
|
||||
}
|
||||
|
||||
|
||||
static void init_program(void)
|
||||
{
|
||||
/*
|
||||
* c[0..3] = modelview matrix
|
||||
* c[4..7] = inverse modelview matrix
|
||||
* c[30] = color scale
|
||||
* c[31] = color bias
|
||||
*/
|
||||
static const char prog[] =
|
||||
"!!VP1.0\n"
|
||||
|
||||
"# RGB is proportional to XYZ \n"
|
||||
|
||||
"MUL R0, v[OPOS], c[30]; \n"
|
||||
"ADD o[COL0], R0, c[31]; \n"
|
||||
|
||||
"# Continue with typical modelview/projection\n"
|
||||
"MOV R3, v[OPOS]; \n"
|
||||
"DP4 o[HPOS].x, c[0], R3 ; # object x MVP -> clip\n"
|
||||
"DP4 o[HPOS].y, c[1], R3 ;\n"
|
||||
"DP4 o[HPOS].z, c[2], R3 ;\n"
|
||||
"DP4 o[HPOS].w, c[3], R3 ;\n"
|
||||
|
||||
"END";
|
||||
|
||||
static const GLfloat scale[4] = {2.0, 2.0, 2.0, 0.0};
|
||||
static const GLfloat bias[4] = {1.0, 1.0, 1.0, 0.0};
|
||||
|
||||
if (!glutExtensionSupported("GL_NV_vertex_program")) {
|
||||
printf("Sorry, this program requires GL_NV_vertex_program");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
glLoadProgramNV(GL_VERTEX_PROGRAM_NV, 1,
|
||||
strlen(prog), (const GLubyte *) prog);
|
||||
assert(glIsProgramNV(1));
|
||||
glBindProgramNV(GL_VERTEX_PROGRAM_NV, 1);
|
||||
|
||||
/* Load the program registers */
|
||||
glTrackMatrixNV(GL_VERTEX_PROGRAM_NV, 0, GL_MODELVIEW_PROJECTION_NV, GL_IDENTITY_NV);
|
||||
glTrackMatrixNV(GL_VERTEX_PROGRAM_NV, 4, GL_MODELVIEW, GL_INVERSE_TRANSPOSE_NV);
|
||||
|
||||
glProgramParameter4fvNV(GL_VERTEX_PROGRAM_NV, 30, scale);
|
||||
glProgramParameter4fvNV(GL_VERTEX_PROGRAM_NV, 31, bias);
|
||||
}
|
||||
|
||||
|
||||
static void init(void)
|
||||
{
|
||||
xrot = 0;
|
||||
yrot = 0;
|
||||
glClearColor(0.0, 0.0, 1.0, 0.0);
|
||||
glEnable( GL_DEPTH_TEST );
|
||||
glEnable(GL_NORMALIZE);
|
||||
InitMaterials();
|
||||
read_surface( "../demos/isosurf.dat" );
|
||||
init_program();
|
||||
}
|
||||
|
||||
|
||||
static void Reshape(int width, int height)
|
||||
{
|
||||
glViewport(0, 0, (GLint)width, (GLint)height);
|
||||
glMatrixMode(GL_PROJECTION);
|
||||
glLoadIdentity();
|
||||
glFrustum( -1.0, 1.0, -1.0, 1.0, 5, 25 );
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
glLoadIdentity();
|
||||
glTranslatef(0, 0, -15);
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void Key( unsigned char key, int x, int y )
|
||||
{
|
||||
(void) x;
|
||||
(void) y;
|
||||
switch (key) {
|
||||
case 27:
|
||||
exit(0);
|
||||
case 'a':
|
||||
useArrays = !useArrays;
|
||||
printf("use arrays: %s\n", useArrays ? "yes" : "no");
|
||||
break;
|
||||
case 'p':
|
||||
useProgram = !useProgram;
|
||||
printf("use program: %s\n", useProgram ? "yes" : "no");
|
||||
break;
|
||||
}
|
||||
glutPostRedisplay();
|
||||
}
|
||||
|
||||
|
||||
static void SpecialKey( int key, int x, int y )
|
||||
{
|
||||
(void) x;
|
||||
(void) y;
|
||||
switch (key) {
|
||||
case GLUT_KEY_LEFT:
|
||||
yrot -= 15.0;
|
||||
break;
|
||||
case GLUT_KEY_RIGHT:
|
||||
yrot += 15.0;
|
||||
break;
|
||||
case GLUT_KEY_UP:
|
||||
xrot += 15.0;
|
||||
break;
|
||||
case GLUT_KEY_DOWN:
|
||||
xrot -= 15.0;
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
glutPostRedisplay();
|
||||
}
|
||||
|
||||
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
glutInit(&argc, argv);
|
||||
glutInitDisplayMode( GLUT_DEPTH | GLUT_RGB | GLUT_DOUBLE );
|
||||
glutInitWindowPosition(0, 0);
|
||||
glutInitWindowSize(400, 400);
|
||||
if (glutCreateWindow("Isosurface") <= 0) {
|
||||
exit(0);
|
||||
}
|
||||
glutReshapeFunc(Reshape);
|
||||
glutKeyboardFunc(Key);
|
||||
glutSpecialFunc(SpecialKey);
|
||||
glutDisplayFunc(Display);
|
||||
|
||||
init();
|
||||
|
||||
glutMainLoop();
|
||||
return 0;
|
||||
}
|
231
progs/tests/vpeval.c
Normal file
231
progs/tests/vpeval.c
Normal file
@@ -0,0 +1,231 @@
|
||||
/*
|
||||
* Vertex program evaluators test.
|
||||
* Based on book/bezmesh.c
|
||||
*
|
||||
* Brian Paul
|
||||
* 22 June 2002
|
||||
*/
|
||||
|
||||
#include <assert.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#define GL_GLEXT_PROTOTYPES
|
||||
#include <GL/glut.h>
|
||||
|
||||
|
||||
/*
|
||||
* Transform position by modelview/projection.
|
||||
* Square incoming color.
|
||||
*/
|
||||
static const char prog[] =
|
||||
"!!VP1.0\n"
|
||||
|
||||
"# Typical modelview/projection\n"
|
||||
"DP4 o[HPOS].x, c[0], v[OPOS] ; # object x MVP -> clip\n"
|
||||
"DP4 o[HPOS].y, c[1], v[OPOS] ;\n"
|
||||
"DP4 o[HPOS].z, c[2], v[OPOS] ;\n"
|
||||
"DP4 o[HPOS].w, c[3], v[OPOS] ;\n"
|
||||
|
||||
"MOV R0, v[COL0];\n # square the color\n"
|
||||
"MUL R0, R0, R0;\n"
|
||||
"MOV o[COL0], R0;\n # store output color\n"
|
||||
|
||||
"END";
|
||||
|
||||
|
||||
static int program = 1;
|
||||
|
||||
|
||||
GLfloat ctrlpoints[4][4][4] =
|
||||
{
|
||||
{
|
||||
{-1.5, -1.5, 4.0, 1.0},
|
||||
{-0.5, -1.5, 2.0, 1.0},
|
||||
{0.5, -1.5, -1.0, 1.0},
|
||||
{1.5, -1.5, 2.0, 1.0}},
|
||||
{
|
||||
{-1.5, -0.5, 1.0, 1.0},
|
||||
{-0.5, -0.5, 3.0, 1.0},
|
||||
{0.5, -0.5, 0.0, 1.0},
|
||||
{1.5, -0.5, -1.0, 1.0}},
|
||||
{
|
||||
{-1.5, 0.5, 4.0, 1.0},
|
||||
{-0.5, 0.5, 0.0, 1.0},
|
||||
{0.5, 0.5, 3.0, 1.0},
|
||||
{1.5, 0.5, 4.0, 1.0}},
|
||||
{
|
||||
{-1.5, 1.5, -2.0, 1.0},
|
||||
{-0.5, 1.5, -2.0, 1.0},
|
||||
{0.5, 1.5, 0.0, 1.0},
|
||||
{1.5, 1.5, -1.0, 1.0}}
|
||||
};
|
||||
|
||||
/*
|
||||
* +-------------+
|
||||
* |green |yellow
|
||||
* | |
|
||||
* | |
|
||||
* |black |red
|
||||
* +-------------+
|
||||
*/
|
||||
GLfloat colorPoints[4][4][4] =
|
||||
{
|
||||
{
|
||||
{0.0, 0.0, 0.0, 1.0},
|
||||
{0.3, 0.0, 0.0, 1.0},
|
||||
{0.6, 0.0, 0.0, 1.0},
|
||||
{1.0, 0.0, 0.0, 1.0}},
|
||||
{
|
||||
{0.0, 0.3, 0.0, 1.0},
|
||||
{0.3, 0.3, 0.0, 1.0},
|
||||
{0.6, 0.3, 0.0, 1.0},
|
||||
{1.0, 0.3, 0.0, 1.0}},
|
||||
{
|
||||
{0.0, 0.6, 0.0, 1.0},
|
||||
{0.3, 0.6, 0.0, 1.0},
|
||||
{0.6, 0.6, 0.0, 1.0},
|
||||
{1.0, 0.6, 0.0, 1.0}},
|
||||
{
|
||||
{0.0, 1.0, 0.0, 1.0},
|
||||
{0.3, 1.0, 0.0, 1.0},
|
||||
{0.6, 1.0, 0.0, 1.0},
|
||||
{1.0, 1.0, 0.0, 1.0}}
|
||||
};
|
||||
|
||||
|
||||
void
|
||||
initlights(void)
|
||||
{
|
||||
GLfloat ambient[] = {0.2, 0.2, 0.2, 1.0};
|
||||
GLfloat position[] = {0.0, 0.0, 2.0, 1.0};
|
||||
GLfloat mat_diffuse[] = {0.6, 0.6, 0.6, 1.0};
|
||||
GLfloat mat_specular[] = {1.0, 1.0, 1.0, 1.0};
|
||||
GLfloat mat_shininess[] = {50.0};
|
||||
|
||||
#if 0 /* no lighting for now */
|
||||
glEnable(GL_LIGHTING);
|
||||
glEnable(GL_LIGHT0);
|
||||
|
||||
glLightfv(GL_LIGHT0, GL_AMBIENT, ambient);
|
||||
glLightfv(GL_LIGHT0, GL_POSITION, position);
|
||||
|
||||
glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
|
||||
glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
|
||||
glMaterialfv(GL_FRONT, GL_SHININESS, mat_shininess);
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
display(void)
|
||||
{
|
||||
glClearColor(.3, .3, .3, 0);
|
||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||
glPushMatrix();
|
||||
#if 1
|
||||
glRotatef(85.0, 1.0, 1.0, 1.0);
|
||||
#endif
|
||||
glEvalMesh2(GL_FILL, 0, 8, 0, 8);
|
||||
glPopMatrix();
|
||||
glFlush();
|
||||
}
|
||||
|
||||
void
|
||||
myinit(int argc, char *argv[])
|
||||
{
|
||||
glClearColor(0.0, 0.0, 0.0, 1.0);
|
||||
glEnable(GL_DEPTH_TEST);
|
||||
|
||||
initlights(); /* for lighted version only */
|
||||
|
||||
glMapGrid2f(8, 0.0, 1.0, 8, 0.0, 1.0);
|
||||
|
||||
if (argc > 1)
|
||||
program = 0;
|
||||
|
||||
printf("Using vertex program attribs? %s\n", program ? "yes" : "no");
|
||||
|
||||
if (!program) {
|
||||
glMap2f(GL_MAP2_VERTEX_4,
|
||||
0.0, 1.0, 4, 4,
|
||||
0.0, 1.0, 16, 4, &ctrlpoints[0][0][0]);
|
||||
glMap2f(GL_MAP2_COLOR_4,
|
||||
0.0, 1.0, 4, 4,
|
||||
0.0, 1.0, 16, 4, &colorPoints[0][0][0]);
|
||||
glEnable(GL_MAP2_VERTEX_4);
|
||||
glEnable(GL_MAP2_COLOR_4);
|
||||
/*
|
||||
glEnable(GL_AUTO_NORMAL);
|
||||
glEnable(GL_NORMALIZE);
|
||||
*/
|
||||
}
|
||||
else {
|
||||
glMap2f(GL_MAP2_VERTEX_ATTRIB0_4_NV,
|
||||
0.0, 1.0, 4, 4,
|
||||
0.0, 1.0, 16, 4, &ctrlpoints[0][0][0]);
|
||||
glMap2f(GL_MAP2_VERTEX_ATTRIB3_4_NV,
|
||||
0.0, 1.0, 4, 4,
|
||||
0.0, 1.0, 16, 4, &colorPoints[0][0][0]);
|
||||
glEnable(GL_MAP2_VERTEX_ATTRIB0_4_NV);
|
||||
glEnable(GL_MAP2_VERTEX_ATTRIB3_4_NV);
|
||||
|
||||
/*
|
||||
glEnable(GL_AUTO_NORMAL);
|
||||
glEnable(GL_NORMALIZE);
|
||||
*/
|
||||
|
||||
/* vertex program init */
|
||||
glLoadProgramNV(GL_VERTEX_PROGRAM_NV, 1,
|
||||
strlen(prog), (const GLubyte *) prog);
|
||||
assert(glIsProgramNV(1));
|
||||
glBindProgramNV(GL_VERTEX_PROGRAM_NV, 1);
|
||||
|
||||
/* track matrices */
|
||||
glTrackMatrixNV(GL_VERTEX_PROGRAM_NV, 0, GL_MODELVIEW_PROJECTION_NV, GL_IDENTITY_NV);
|
||||
glEnable(GL_VERTEX_PROGRAM_NV);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
myReshape(int w, int h)
|
||||
{
|
||||
glViewport(0, 0, w, h);
|
||||
glMatrixMode(GL_PROJECTION);
|
||||
glLoadIdentity();
|
||||
if (w <= h)
|
||||
glOrtho(-4.0, 4.0, -4.0 * (GLfloat) h / (GLfloat) w,
|
||||
4.0 * (GLfloat) h / (GLfloat) w, -4.0, 4.0);
|
||||
else
|
||||
glOrtho(-4.0 * (GLfloat) w / (GLfloat) h,
|
||||
4.0 * (GLfloat) w / (GLfloat) h, -4.0, 4.0, -4.0, 4.0);
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
glLoadIdentity();
|
||||
}
|
||||
|
||||
static void
|
||||
key(unsigned char k, int x, int y)
|
||||
{
|
||||
switch (k) {
|
||||
case 27: /* Escape */
|
||||
exit(0);
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
glutPostRedisplay();
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
glutInit(&argc, argv);
|
||||
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
|
||||
glutInitWindowPosition(0, 0);
|
||||
glutCreateWindow(argv[0]);
|
||||
myinit(argc, argv);
|
||||
glutReshapeFunc(myReshape);
|
||||
glutDisplayFunc(display);
|
||||
glutKeyboardFunc(key);
|
||||
glutMainLoop();
|
||||
return 0; /* ANSI C requires main to return int. */
|
||||
}
|
170
progs/tests/vptest1.c
Normal file
170
progs/tests/vptest1.c
Normal file
@@ -0,0 +1,170 @@
|
||||
/* Test glGenProgramsNV(), glIsProgramNV(), glLoadProgramNV() */
|
||||
|
||||
#include <assert.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
#define GL_GLEXT_PROTOTYPES
|
||||
#include <GL/glut.h>
|
||||
|
||||
|
||||
|
||||
static void Display( void )
|
||||
{
|
||||
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
|
||||
|
||||
glPushMatrix();
|
||||
|
||||
glBegin(GL_POLYGON);
|
||||
glVertexAttrib2fNV(0, -1, -1);
|
||||
glVertexAttrib2fNV(0, 1, -1);
|
||||
glVertexAttrib2fNV(0, 0, 1);
|
||||
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.0, 0.0, -15.0 );
|
||||
}
|
||||
|
||||
|
||||
static void Key( unsigned char key, int x, int y )
|
||||
{
|
||||
(void) x;
|
||||
(void) y;
|
||||
switch (key) {
|
||||
case 27:
|
||||
exit(0);
|
||||
break;
|
||||
}
|
||||
glutPostRedisplay();
|
||||
}
|
||||
|
||||
|
||||
static void Init( void )
|
||||
{
|
||||
static const char *prog1 =
|
||||
"!!VP1.0\n"
|
||||
"MUL o[COL0].xyz, R0, c[35]; \n"
|
||||
"END\n";
|
||||
static const char *prog2 =
|
||||
"!!VP1.0\n"
|
||||
"#\n"
|
||||
"# c[0-3] = modelview projection (composite) matrix\n"
|
||||
"# c[32] = normalized light direction in object-space\n"
|
||||
"# c[35] = yellow diffuse material, (1.0, 1.0, 0.0, 1.0)\n"
|
||||
"# c[64].x = 0.0\n"
|
||||
"# c[64].z = 0.125, a scaling factor\n"
|
||||
"#\n"
|
||||
"# outputs diffuse illumination for color and perturbed position\n"
|
||||
"#\n"
|
||||
"DP3 R0, c[32], v[NRML]; # light direction DOT normal\n"
|
||||
"MUL o[COL0].xyz, R0, c[35]; \n"
|
||||
"MAX R0, c[64].x, R0; \n"
|
||||
"MUL R0, R0, v[NRML]; \n"
|
||||
"MUL R0, R0, c[64].z; \n"
|
||||
"ADD R1, v[OPOS], -R0; # perturb object space position\n"
|
||||
"DP4 o[HPOS].x, c[0], R1; \n"
|
||||
"DP4 o[HPOS].y, c[1], R1; \n"
|
||||
"DP4 o[HPOS].z, c[2], R1; \n"
|
||||
"DP4 o[HPOS].w, c[3], R1; \n"
|
||||
"END\n";
|
||||
static const char *prog3 =
|
||||
"!!VP1.0\n"
|
||||
"DP4 o[HPOS].x, c[0], v[OPOS];\n"
|
||||
"DP4 o[HPOS].y, c[1], v[OPOS];\n"
|
||||
"DP4 o[HPOS].z, c[2], v[OPOS];\n"
|
||||
"DP4 o[HPOS].w, c[3], v[OPOS];\n"
|
||||
"DP3 R0.x, c[4], v[NRML];\n"
|
||||
"DP3 R0.y, c[5], v[NRML]; \n"
|
||||
"DP3 R0.z, c[6], v[NRML]; # R0 = n' = transformed normal\n"
|
||||
"DP3 R1.x, c[32], R0; # R1.x = Lpos DOT n'\n"
|
||||
"DP3 R1.y, c[33], R0; # R1.y = hHat DOT n'\n"
|
||||
"MOV R1.w, c[38].x; # R1.w = specular power\n"
|
||||
"LIT R2, R1; # Compute lighting values\n"
|
||||
"MAD R3, c[35].x, R2.y, c[35].y; # diffuse + emissive\n"
|
||||
"MAD o[COL0].xyz, c[36], R2.z, R3; # + specular\n"
|
||||
"END\n";
|
||||
static const char *prog4 =
|
||||
"!!VP1.0\n"
|
||||
"DP4 R2, R3, c[A0.x];\n"
|
||||
"DP4 R2, R3, c[A0.x + 5];\n"
|
||||
"DP4 o[HPOS], R3, c[A0.x - 4];\n"
|
||||
"END\n";
|
||||
static const char *prog5 =
|
||||
"!!VSP1.0\n"
|
||||
"DP4 R2, R3, c[A0.x];\n"
|
||||
"DP4 R2, R3, v[0];\n"
|
||||
"DP4 c[3], R3, R2;\n"
|
||||
"END\n";
|
||||
|
||||
|
||||
GLuint progs[5];
|
||||
|
||||
glGenProgramsNV(2, progs);
|
||||
assert(progs[0]);
|
||||
assert(progs[1]);
|
||||
assert(progs[0] != progs[1]);
|
||||
|
||||
glGenProgramsNV(3, progs + 2);
|
||||
assert(progs[2]);
|
||||
assert(progs[3]);
|
||||
assert(progs[2] != progs[3]);
|
||||
assert(progs[0] != progs[2]);
|
||||
|
||||
|
||||
glLoadProgramNV(GL_VERTEX_PROGRAM_NV, 1,
|
||||
strlen(prog1),
|
||||
(const GLubyte *) prog1);
|
||||
assert(!glIsProgramNV(1));
|
||||
|
||||
glLoadProgramNV(GL_VERTEX_PROGRAM_NV, 2,
|
||||
strlen(prog2),
|
||||
(const GLubyte *) prog2);
|
||||
assert(glIsProgramNV(2));
|
||||
|
||||
glLoadProgramNV(GL_VERTEX_PROGRAM_NV, 3,
|
||||
strlen(prog3),
|
||||
(const GLubyte *) prog3);
|
||||
assert(glIsProgramNV(3));
|
||||
|
||||
glLoadProgramNV(GL_VERTEX_PROGRAM_NV, 4,
|
||||
strlen(prog4),
|
||||
(const GLubyte *) prog4);
|
||||
assert(glIsProgramNV(4));
|
||||
|
||||
glLoadProgramNV(GL_VERTEX_STATE_PROGRAM_NV, 5,
|
||||
strlen(prog5),
|
||||
(const GLubyte *) prog5);
|
||||
assert(glIsProgramNV(5));
|
||||
|
||||
printf("glGetError = %d\n", (int) glGetError());
|
||||
}
|
||||
|
||||
|
||||
int main( int argc, char *argv[] )
|
||||
{
|
||||
glutInit( &argc, argv );
|
||||
glutInitWindowPosition( 0, 0 );
|
||||
glutInitWindowSize( 250, 250 );
|
||||
glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH );
|
||||
glutCreateWindow(argv[0]);
|
||||
glutReshapeFunc( Reshape );
|
||||
glutKeyboardFunc( Key );
|
||||
glutDisplayFunc( Display );
|
||||
Init();
|
||||
glutMainLoop();
|
||||
return 0;
|
||||
}
|
151
progs/tests/vptest2.c
Normal file
151
progs/tests/vptest2.c
Normal file
@@ -0,0 +1,151 @@
|
||||
/* Test vertex state program execution */
|
||||
|
||||
#include <assert.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
#define GL_GLEXT_PROTOTYPES
|
||||
#include <GL/glut.h>
|
||||
|
||||
|
||||
|
||||
static void Display( void )
|
||||
{
|
||||
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
|
||||
glPushMatrix();
|
||||
glutSolidCube(2.0);
|
||||
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.0, 0.0, -15.0 );
|
||||
}
|
||||
|
||||
|
||||
static void Key( unsigned char key, int x, int y )
|
||||
{
|
||||
(void) x;
|
||||
(void) y;
|
||||
switch (key) {
|
||||
case 27:
|
||||
exit(0);
|
||||
break;
|
||||
}
|
||||
glutPostRedisplay();
|
||||
}
|
||||
|
||||
|
||||
static void Test1( void )
|
||||
{
|
||||
static const GLfloat p[4] = {9, 8, 7, 6};
|
||||
GLfloat q[4];
|
||||
/* test addition */
|
||||
static const char *prog =
|
||||
"!!VSP1.0\n"
|
||||
"MOV R0, c[0];\n"
|
||||
"MOV R1, c[1];\n"
|
||||
"ADD c[2], R0, R1;\n"
|
||||
"END\n";
|
||||
|
||||
glLoadProgramNV(GL_VERTEX_STATE_PROGRAM_NV, 1,
|
||||
strlen(prog),
|
||||
(const GLubyte *) prog);
|
||||
assert(glIsProgramNV(1));
|
||||
|
||||
glProgramParameter4fNV(GL_VERTEX_PROGRAM_NV, 0, 1, 2, 3, 4);
|
||||
glProgramParameter4fNV(GL_VERTEX_PROGRAM_NV, 1, 10, 20, 30, 40);
|
||||
|
||||
glExecuteProgramNV(GL_VERTEX_STATE_PROGRAM_NV, 1, p);
|
||||
|
||||
glGetProgramParameterfvNV(GL_VERTEX_PROGRAM_NV, 2, GL_PROGRAM_PARAMETER_NV, q);
|
||||
printf("Result c[2] = %g %g %g %g (should be 11 22 33 44)\n",
|
||||
q[0], q[1], q[2], q[3]);
|
||||
}
|
||||
|
||||
|
||||
static void Test2( void )
|
||||
{
|
||||
static const GLfloat p[4] = {9, 8, 7, 6};
|
||||
GLfloat q[4];
|
||||
/* test swizzling */
|
||||
static const char *prog =
|
||||
"!!VSP1.0\n"
|
||||
"MOV R0, c[0].wzyx;\n"
|
||||
"MOV R1, c[1].wzyx;\n"
|
||||
"ADD c[2], R0, R1;\n"
|
||||
"END\n";
|
||||
|
||||
glLoadProgramNV(GL_VERTEX_STATE_PROGRAM_NV, 1,
|
||||
strlen(prog),
|
||||
(const GLubyte *) prog);
|
||||
assert(glIsProgramNV(1));
|
||||
|
||||
glProgramParameter4fNV(GL_VERTEX_PROGRAM_NV, 0, 1, 2, 3, 4);
|
||||
glProgramParameter4fNV(GL_VERTEX_PROGRAM_NV, 1, 10, 20, 30, 40);
|
||||
|
||||
glExecuteProgramNV(GL_VERTEX_STATE_PROGRAM_NV, 1, p);
|
||||
|
||||
glGetProgramParameterfvNV(GL_VERTEX_PROGRAM_NV, 2, GL_PROGRAM_PARAMETER_NV, q);
|
||||
printf("Result c[2] = %g %g %g %g (should be 44 33 22 11)\n",
|
||||
q[0], q[1], q[2], q[3]);
|
||||
}
|
||||
|
||||
|
||||
static void Test3( void )
|
||||
{
|
||||
static const GLfloat p[4] = {0, 0, 0, 0};
|
||||
GLfloat q[4];
|
||||
/* normalize vector */
|
||||
static const char *prog =
|
||||
"!!VSP1.0\n"
|
||||
"# c[0] = (nx,ny,nz)\n"
|
||||
"# R0.xyz = normalize(R1)\n"
|
||||
"# R0.w = 1/sqrt(nx*nx + ny*ny + nz*nz)\n"
|
||||
"# c[2] = R0\n"
|
||||
"DP3 R0.w, c[0], c[0];\n"
|
||||
"RSQ R0.w, R0.w;\n"
|
||||
"MUL R0.xyz, c[0], R0.w;\n"
|
||||
"MOV c[2], R0;\n"
|
||||
"END\n";
|
||||
|
||||
glLoadProgramNV(GL_VERTEX_STATE_PROGRAM_NV, 1,
|
||||
strlen(prog),
|
||||
(const GLubyte *) prog);
|
||||
assert(glIsProgramNV(1));
|
||||
|
||||
glProgramParameter4fNV(GL_VERTEX_PROGRAM_NV, 0, 0, 10, 0, 0);
|
||||
|
||||
glExecuteProgramNV(GL_VERTEX_STATE_PROGRAM_NV, 1, p);
|
||||
|
||||
glGetProgramParameterfvNV(GL_VERTEX_PROGRAM_NV, 2, GL_PROGRAM_PARAMETER_NV, q);
|
||||
printf("Result c[2] = %g %g %g %g (should be 0, 1, 0, 0.1)\n",
|
||||
q[0], q[1], q[2], q[3]);
|
||||
}
|
||||
|
||||
|
||||
int main( int argc, char *argv[] )
|
||||
{
|
||||
glutInit( &argc, argv );
|
||||
glutInitWindowPosition( 0, 0 );
|
||||
glutInitWindowSize( 50, 50 );
|
||||
glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH );
|
||||
glutCreateWindow(argv[0]);
|
||||
glutReshapeFunc( Reshape );
|
||||
glutKeyboardFunc( Key );
|
||||
glutDisplayFunc( Display );
|
||||
Test1();
|
||||
Test2();
|
||||
Test3();
|
||||
glutMainLoop();
|
||||
return 0;
|
||||
}
|
120
progs/tests/vptest3.c
Normal file
120
progs/tests/vptest3.c
Normal file
@@ -0,0 +1,120 @@
|
||||
/* Test glGenProgramsNV(), glIsProgramNV(), glLoadProgramNV() */
|
||||
|
||||
#include <assert.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
#define GL_GLEXT_PROTOTYPES
|
||||
#include <GL/glut.h>
|
||||
|
||||
static float Zrot = 0.0;
|
||||
|
||||
|
||||
static void Display( void )
|
||||
{
|
||||
glClearColor(0.3, 0.3, 0.3, 1);
|
||||
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
|
||||
|
||||
glEnable(GL_VERTEX_PROGRAM_NV);
|
||||
|
||||
glLoadIdentity();
|
||||
glRotatef(Zrot, 0, 0, 1);
|
||||
|
||||
glTrackMatrixNV(GL_VERTEX_PROGRAM_NV, 0, GL_MODELVIEW, GL_IDENTITY_NV);
|
||||
glPushMatrix();
|
||||
|
||||
glVertexAttrib3fNV(3, 1, 0.5, 0.25);
|
||||
glBegin(GL_TRIANGLES);
|
||||
#if 1
|
||||
glVertexAttrib3fNV(3, 1.0, 0.0, 0.0);
|
||||
glVertexAttrib2fNV(0, -0.5, -0.5);
|
||||
glVertexAttrib3fNV(3, 0.0, 1.0, 0.0);
|
||||
glVertexAttrib2fNV(0, 0.5, -0.5);
|
||||
glVertexAttrib3fNV(3, 0.0, 0.0, 1.0);
|
||||
glVertexAttrib2fNV(0, 0, 0.5);
|
||||
#else
|
||||
glVertex2f( -1, -1);
|
||||
glVertex2f( 1, -1);
|
||||
glVertex2f( 0, 1);
|
||||
#endif
|
||||
glEnd();
|
||||
|
||||
glPopMatrix();
|
||||
|
||||
glutSwapBuffers();
|
||||
}
|
||||
|
||||
|
||||
static void Reshape( int width, int height )
|
||||
{
|
||||
glViewport( 0, 0, width, height );
|
||||
glMatrixMode( GL_PROJECTION );
|
||||
glLoadIdentity();
|
||||
/* glFrustum( -2.0, 2.0, -2.0, 2.0, 5.0, 25.0 );*/
|
||||
glOrtho(-2.0, 2.0, -2.0, 2.0, -2.0, 2.0 );
|
||||
glMatrixMode( GL_MODELVIEW );
|
||||
glLoadIdentity();
|
||||
/*glTranslatef( 0.0, 0.0, -15.0 );*/
|
||||
}
|
||||
|
||||
|
||||
static void Key( unsigned char key, int x, int y )
|
||||
{
|
||||
(void) x;
|
||||
(void) y;
|
||||
switch (key) {
|
||||
case 'z':
|
||||
Zrot -= 5.0;
|
||||
break;
|
||||
case 'Z':
|
||||
Zrot += 5.0;
|
||||
break;
|
||||
case 27:
|
||||
exit(0);
|
||||
break;
|
||||
}
|
||||
glutPostRedisplay();
|
||||
}
|
||||
|
||||
|
||||
static void Init( void )
|
||||
{
|
||||
static const char *prog1 =
|
||||
"!!VP1.0\n"
|
||||
"MOV o[COL0], v[COL0];\n"
|
||||
#if 0
|
||||
"MOV o[HPOS], v[OPOS];\n"
|
||||
#else
|
||||
"DP4 o[HPOS].x, v[OPOS], c[0];\n"
|
||||
"DP4 o[HPOS].y, v[OPOS], c[1];\n"
|
||||
"DP4 o[HPOS].z, v[OPOS], c[2];\n"
|
||||
"DP4 o[HPOS].w, v[OPOS], c[3];\n"
|
||||
#endif
|
||||
"END\n";
|
||||
|
||||
glLoadProgramNV(GL_VERTEX_PROGRAM_NV, 1,
|
||||
strlen(prog1),
|
||||
(const GLubyte *) prog1);
|
||||
assert(glIsProgramNV(1));
|
||||
|
||||
glBindProgramNV(GL_VERTEX_PROGRAM_NV, 1);
|
||||
|
||||
printf("glGetError = %d\n", (int) glGetError());
|
||||
}
|
||||
|
||||
|
||||
int main( int argc, char *argv[] )
|
||||
{
|
||||
glutInit( &argc, argv );
|
||||
glutInitWindowPosition( 0, 0 );
|
||||
glutInitWindowSize( 250, 250 );
|
||||
glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH );
|
||||
glutCreateWindow(argv[0]);
|
||||
glutReshapeFunc( Reshape );
|
||||
glutKeyboardFunc( Key );
|
||||
glutDisplayFunc( Display );
|
||||
Init();
|
||||
glutMainLoop();
|
||||
return 0;
|
||||
}
|
174
progs/tests/vptorus.c
Normal file
174
progs/tests/vptorus.c
Normal file
@@ -0,0 +1,174 @@
|
||||
/*
|
||||
* A lit, rotating torus via vertex program
|
||||
*/
|
||||
|
||||
#include <assert.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
#define GL_GLEXT_PROTOTYPES
|
||||
#include <GL/glut.h>
|
||||
|
||||
static float Xrot = 0.0, Yrot = 0.0, Zrot = 0.0;
|
||||
static GLboolean Anim = GL_TRUE;
|
||||
|
||||
|
||||
static void Idle( void )
|
||||
{
|
||||
Xrot += .3;
|
||||
Yrot += .4;
|
||||
Zrot += .2;
|
||||
glutPostRedisplay();
|
||||
}
|
||||
|
||||
|
||||
static void Display( void )
|
||||
{
|
||||
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
|
||||
|
||||
glPushMatrix();
|
||||
glRotatef(Xrot, 1, 0, 0);
|
||||
glRotatef(Yrot, 0, 1, 0);
|
||||
glRotatef(Zrot, 0, 0, 1);
|
||||
glutSolidTorus(0.75, 2.0, 10, 20);
|
||||
glPopMatrix();
|
||||
|
||||
glutSwapBuffers();
|
||||
}
|
||||
|
||||
|
||||
static void Reshape( int width, int height )
|
||||
{
|
||||
glViewport( 0, 0, width, height );
|
||||
glMatrixMode( GL_PROJECTION );
|
||||
glLoadIdentity();
|
||||
glFrustum( -2.0, 2.0, -2.0, 2.0, 5.0, 25.0 );
|
||||
glMatrixMode( GL_MODELVIEW );
|
||||
glLoadIdentity();
|
||||
glTranslatef( 0.0, 0.0, -12.0 );
|
||||
}
|
||||
|
||||
|
||||
static void Key( unsigned char key, int x, int y )
|
||||
{
|
||||
(void) x;
|
||||
(void) y;
|
||||
switch (key) {
|
||||
case ' ':
|
||||
Xrot = Yrot = Zrot = 0;
|
||||
break;
|
||||
case 'a':
|
||||
Anim = !Anim;
|
||||
if (Anim)
|
||||
glutIdleFunc(Idle);
|
||||
else
|
||||
glutIdleFunc(NULL);
|
||||
break;
|
||||
case 'z':
|
||||
Zrot -= 5.0;
|
||||
break;
|
||||
case 'Z':
|
||||
Zrot += 5.0;
|
||||
break;
|
||||
case 27:
|
||||
exit(0);
|
||||
break;
|
||||
}
|
||||
glutPostRedisplay();
|
||||
}
|
||||
|
||||
|
||||
static void SpecialKey( int key, int x, int y )
|
||||
{
|
||||
const GLfloat step = 3.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 Init( void )
|
||||
{
|
||||
/* borrowed from an nvidia demo:
|
||||
* c[0..3] = modelview matrix
|
||||
* c[4..7] = inverse modelview matrix
|
||||
* c[32] = light pos
|
||||
* c[35] = diffuse color
|
||||
*/
|
||||
static const char prog[] =
|
||||
"!!VP1.0\n"
|
||||
"#Simple transform and diffuse lighting\n"
|
||||
"\n"
|
||||
"DP4 o[HPOS].x, c[0], v[OPOS] ; # object x MVP -> clip\n"
|
||||
"DP4 o[HPOS].y, c[1], v[OPOS] ;\n"
|
||||
"DP4 o[HPOS].z, c[2], v[OPOS] ;\n"
|
||||
"DP4 o[HPOS].w, c[3], v[OPOS] ;\n"
|
||||
|
||||
"DP3 R1.x, c[4], v[NRML] ; # normal x MV-1T -> lighting normal\n"
|
||||
"DP3 R1.y, c[5], v[NRML] ;\n"
|
||||
"DP3 R1.z, c[6], v[NRML] ;\n"
|
||||
|
||||
"DP3 R0, c[32], R1 ; # L.N\n"
|
||||
"MUL o[COL0].xyz, R0, c[35] ; # col = L.N * diffuse\n"
|
||||
"MOV o[TEX0], v[TEX0];\n"
|
||||
"END";
|
||||
|
||||
if (!glutExtensionSupported("GL_NV_vertex_program")) {
|
||||
printf("Sorry, this program requires GL_NV_vertex_program");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
glLoadProgramNV(GL_VERTEX_PROGRAM_NV, 1,
|
||||
strlen(prog), (const GLubyte *) prog);
|
||||
assert(glIsProgramNV(1));
|
||||
glBindProgramNV(GL_VERTEX_PROGRAM_NV, 1);
|
||||
|
||||
/* Load the program registers */
|
||||
glTrackMatrixNV(GL_VERTEX_PROGRAM_NV, 0, GL_MODELVIEW_PROJECTION_NV, GL_IDENTITY_NV);
|
||||
glTrackMatrixNV(GL_VERTEX_PROGRAM_NV, 4, GL_MODELVIEW, GL_INVERSE_TRANSPOSE_NV);
|
||||
|
||||
/* Light position */
|
||||
glProgramParameter4fNV(GL_VERTEX_PROGRAM_NV, 32, 2, 2, 4, 1);
|
||||
/* Diffuse material color */
|
||||
glProgramParameter4fNV(GL_VERTEX_PROGRAM_NV, 35, 0.25, 0, 0.25, 1);
|
||||
|
||||
glEnable(GL_VERTEX_PROGRAM_NV);
|
||||
glEnable(GL_DEPTH_TEST);
|
||||
glClearColor(0.3, 0.3, 0.3, 1);
|
||||
|
||||
printf("glGetError = %d\n", (int) glGetError());
|
||||
}
|
||||
|
||||
|
||||
int main( int argc, char *argv[] )
|
||||
{
|
||||
glutInit( &argc, argv );
|
||||
glutInitWindowPosition( 0, 0 );
|
||||
glutInitWindowSize( 250, 250 );
|
||||
glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH );
|
||||
glutCreateWindow(argv[0]);
|
||||
glutReshapeFunc( Reshape );
|
||||
glutKeyboardFunc( Key );
|
||||
glutSpecialFunc( SpecialKey );
|
||||
glutDisplayFunc( Display );
|
||||
if (Anim)
|
||||
glutIdleFunc(Idle);
|
||||
Init();
|
||||
glutMainLoop();
|
||||
return 0;
|
||||
}
|
236
progs/tests/vpwarpmesh.c
Normal file
236
progs/tests/vpwarpmesh.c
Normal file
@@ -0,0 +1,236 @@
|
||||
/*
|
||||
* Warp a triangle mesh with a vertex program.
|
||||
*/
|
||||
|
||||
#include <assert.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
#define GL_GLEXT_PROTOTYPES
|
||||
#include <GL/glut.h>
|
||||
|
||||
static float Xrot = -60.0, Yrot = 0.0, Zrot = 0.0;
|
||||
static GLboolean Anim = GL_TRUE;
|
||||
static GLfloat Phi = 0.0;
|
||||
|
||||
|
||||
static void Idle( void )
|
||||
{
|
||||
Phi += 0.01;
|
||||
glutPostRedisplay();
|
||||
}
|
||||
|
||||
|
||||
static void DrawMesh( int rows, int cols )
|
||||
{
|
||||
static const GLfloat colorA[3] = { 0, 1, 0 };
|
||||
static const GLfloat colorB[3] = { 0, 0, 1 };
|
||||
const float dx = 2.0 / (cols - 1);
|
||||
const float dy = 2.0 / (rows - 1);
|
||||
float x, y;
|
||||
int i, j;
|
||||
|
||||
#if 1
|
||||
#define COLOR3FV(c) glVertexAttrib3fvNV(3, c)
|
||||
#define VERTEX2F(x, y) glVertexAttrib2fNV(0, x, y)
|
||||
#else
|
||||
#define COLOR3FV(c) glColor3fv(c)
|
||||
#define VERTEX2F(x, y) glVertex2f(x, y)
|
||||
#endif
|
||||
|
||||
y = -1.0;
|
||||
for (i = 0; i < rows - 1; i++) {
|
||||
glBegin(GL_QUAD_STRIP);
|
||||
x = -1.0;
|
||||
for (j = 0; j < cols; j++) {
|
||||
if ((i + j) & 1)
|
||||
COLOR3FV(colorA);
|
||||
else
|
||||
COLOR3FV(colorB);
|
||||
VERTEX2F(x, y);
|
||||
VERTEX2F(x, y + dy);
|
||||
x += dx;
|
||||
}
|
||||
glEnd();
|
||||
y += dy;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void Display( void )
|
||||
{
|
||||
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
|
||||
|
||||
glPushMatrix();
|
||||
glRotatef(Xrot, 1, 0, 0);
|
||||
glRotatef(Yrot, 0, 1, 0);
|
||||
glRotatef(Zrot, 0, 0, 1);
|
||||
|
||||
/* Position the gravity source */
|
||||
{
|
||||
GLfloat x, y, z, r = 0.5;
|
||||
x = r * cos(Phi);
|
||||
y = r * sin(Phi);
|
||||
z = 1.0;
|
||||
glProgramParameter4fNV(GL_VERTEX_PROGRAM_NV, 30, x, y, z, 1);
|
||||
glDisable(GL_VERTEX_PROGRAM_NV);
|
||||
glBegin(GL_POINTS);
|
||||
glColor3f(1,1,1);
|
||||
glVertex3f(x, y, z);
|
||||
glEnd();
|
||||
}
|
||||
|
||||
glEnable(GL_VERTEX_PROGRAM_NV);
|
||||
DrawMesh(8, 8);
|
||||
glPopMatrix();
|
||||
|
||||
glutSwapBuffers();
|
||||
}
|
||||
|
||||
|
||||
static void Reshape( int width, int height )
|
||||
{
|
||||
float ar = (float) width / (float) height;
|
||||
glViewport( 0, 0, width, height );
|
||||
glMatrixMode( GL_PROJECTION );
|
||||
glLoadIdentity();
|
||||
glFrustum( -1.0 * ar, 1.0 * ar, -1.0, 1.0, 5.0, 25.0 );
|
||||
glMatrixMode( GL_MODELVIEW );
|
||||
glLoadIdentity();
|
||||
glTranslatef( 0.0, 0.0, -12.0 );
|
||||
glScalef(2, 2, 2);
|
||||
}
|
||||
|
||||
|
||||
static void Key( unsigned char key, int x, int y )
|
||||
{
|
||||
(void) x;
|
||||
(void) y;
|
||||
switch (key) {
|
||||
case 'a':
|
||||
Anim = !Anim;
|
||||
if (Anim)
|
||||
glutIdleFunc(Idle);
|
||||
else
|
||||
glutIdleFunc(NULL);
|
||||
break;
|
||||
case 'p':
|
||||
Phi += 0.2;
|
||||
break;
|
||||
case 'z':
|
||||
Zrot -= 5.0;
|
||||
break;
|
||||
case 'Z':
|
||||
Zrot += 5.0;
|
||||
break;
|
||||
case 27:
|
||||
exit(0);
|
||||
break;
|
||||
}
|
||||
glutPostRedisplay();
|
||||
}
|
||||
|
||||
|
||||
static void SpecialKey( int key, int x, int y )
|
||||
{
|
||||
const GLfloat step = 3.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 Init( void )
|
||||
{
|
||||
/*
|
||||
* c[0..3] = modelview matrix
|
||||
* c[4..7] = inverse modelview matrix
|
||||
* c[30] = gravity source location
|
||||
* c[31] = gravity source strength
|
||||
* c[32] = light pos
|
||||
* c[35] = diffuse color
|
||||
*/
|
||||
static const char prog[] =
|
||||
"!!VP1.0\n"
|
||||
|
||||
"# Compute distance from vertex to gravity source\n"
|
||||
"ADD R1, c[30], -v[OPOS]; # vector from vertex to gravity\n"
|
||||
"DP3 R2, R1, R1; # dot product\n"
|
||||
"RSQ R2, R2.x; # square root = distance\n"
|
||||
"MUL R2, R2, c[31].xxxx; # scale by the gravity factor\n"
|
||||
|
||||
"# Displace vertex by gravity factor along R1 vector\n"
|
||||
"MAD R3, R1, R2, v[OPOS];\n"
|
||||
|
||||
"# Continue with typical modelview/projection\n"
|
||||
"DP4 o[HPOS].x, c[0], R3 ; # object x MVP -> clip\n"
|
||||
"DP4 o[HPOS].y, c[1], R3 ;\n"
|
||||
"DP4 o[HPOS].z, c[2], R3 ;\n"
|
||||
"DP4 o[HPOS].w, c[3], R3 ;\n"
|
||||
|
||||
"MOV o[COL0], v[COL0];\n # copy input color to output color\n"
|
||||
|
||||
"END";
|
||||
|
||||
if (!glutExtensionSupported("GL_NV_vertex_program")) {
|
||||
printf("Sorry, this program requires GL_NV_vertex_program\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
glLoadProgramNV(GL_VERTEX_PROGRAM_NV, 1,
|
||||
strlen(prog), (const GLubyte *) prog);
|
||||
assert(glIsProgramNV(1));
|
||||
glBindProgramNV(GL_VERTEX_PROGRAM_NV, 1);
|
||||
|
||||
/* Load the program registers */
|
||||
glTrackMatrixNV(GL_VERTEX_PROGRAM_NV, 0, GL_MODELVIEW_PROJECTION_NV, GL_IDENTITY_NV);
|
||||
glTrackMatrixNV(GL_VERTEX_PROGRAM_NV, 4, GL_MODELVIEW, GL_INVERSE_TRANSPOSE_NV);
|
||||
|
||||
/* Light position */
|
||||
glProgramParameter4fNV(GL_VERTEX_PROGRAM_NV, 32, 2, 2, 4, 1);
|
||||
/* Diffuse material color */
|
||||
glProgramParameter4fNV(GL_VERTEX_PROGRAM_NV, 35, 0.25, 0, 0.25, 1);
|
||||
|
||||
/* Gravity strength */
|
||||
glProgramParameter4fNV(GL_VERTEX_PROGRAM_NV, 31, .5, 0, 0, 0);
|
||||
|
||||
glEnable(GL_DEPTH_TEST);
|
||||
glClearColor(0.3, 0.3, 0.3, 1);
|
||||
glShadeModel(GL_FLAT);
|
||||
glPointSize(3);
|
||||
printf("glGetError = %d\n", (int) glGetError());
|
||||
}
|
||||
|
||||
|
||||
int main( int argc, char *argv[] )
|
||||
{
|
||||
glutInit( &argc, argv );
|
||||
glutInitWindowPosition( 0, 0 );
|
||||
glutInitWindowSize( 250, 250 );
|
||||
glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH );
|
||||
glutCreateWindow(argv[0]);
|
||||
glutReshapeFunc( Reshape );
|
||||
glutKeyboardFunc( Key );
|
||||
glutSpecialFunc( SpecialKey );
|
||||
glutDisplayFunc( Display );
|
||||
if (Anim)
|
||||
glutIdleFunc(Idle);
|
||||
Init();
|
||||
glutMainLoop();
|
||||
return 0;
|
||||
}
|
@@ -1,237 +0,0 @@
|
||||
/*
|
||||
* Test the GL_NV_texture_rectangle and GL_MESA_ycrcb_texture extensions.
|
||||
*
|
||||
* Brian Paul 13 September 2002
|
||||
*/
|
||||
|
||||
#include <assert.h>
|
||||
#include <math.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#define GL_GLEXT_PROTOTYPES
|
||||
#include <GL/glut.h>
|
||||
|
||||
#include "readtex.c" /* I know, this is a hack. */
|
||||
|
||||
#define TEXTURE_FILE "../images/girl.rgb"
|
||||
|
||||
static GLfloat Xrot = 0, Yrot = 0, Zrot = 0;
|
||||
static GLint ImgWidth, ImgHeight;
|
||||
static GLenum ImgFormat;
|
||||
static GLubyte *Image = NULL;
|
||||
static GLushort *ImageYUV = NULL;
|
||||
|
||||
|
||||
static void DrawObject(void)
|
||||
{
|
||||
glBegin(GL_QUADS);
|
||||
|
||||
glTexCoord2f(0, 0);
|
||||
glVertex2f(-1.0, -1.0);
|
||||
|
||||
glTexCoord2f(ImgWidth, 0);
|
||||
glVertex2f(1.0, -1.0);
|
||||
|
||||
glTexCoord2f(ImgWidth, ImgHeight);
|
||||
glVertex2f(1.0, 1.0);
|
||||
|
||||
glTexCoord2f(0, ImgHeight);
|
||||
glVertex2f(-1.0, 1.0);
|
||||
|
||||
glEnd();
|
||||
}
|
||||
|
||||
|
||||
static void Display( void )
|
||||
{
|
||||
glClear( GL_COLOR_BUFFER_BIT );
|
||||
|
||||
glPushMatrix();
|
||||
glRotatef(Xrot, 1.0, 0.0, 0.0);
|
||||
glRotatef(Yrot, 0.0, 1.0, 0.0);
|
||||
glRotatef(Zrot, 0.0, 0.0, 1.0);
|
||||
DrawObject();
|
||||
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, 10.0, 100.0 );
|
||||
glMatrixMode( GL_MODELVIEW );
|
||||
glLoadIdentity();
|
||||
glTranslatef( 0.0, 0.0, -15.0 );
|
||||
}
|
||||
|
||||
|
||||
static void Key( unsigned char key, int x, int y )
|
||||
{
|
||||
(void) x;
|
||||
(void) y;
|
||||
switch (key) {
|
||||
case 27:
|
||||
exit(0);
|
||||
break;
|
||||
}
|
||||
glutPostRedisplay();
|
||||
}
|
||||
|
||||
|
||||
static void SpecialKey( int key, int x, int y )
|
||||
{
|
||||
float step = 3.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();
|
||||
}
|
||||
|
||||
|
||||
#define CLAMP( X, MIN, MAX ) ( (X)<(MIN) ? (MIN) : ((X)>(MAX) ? (MAX) : (X)) )
|
||||
|
||||
static void ConvertRGBtoYUV(GLint w, GLint h, const GLubyte *src,
|
||||
GLushort *dest)
|
||||
{
|
||||
GLint i, j;
|
||||
|
||||
for (i = 0; i < h; i++) {
|
||||
for (j = 0; j < w; j++) {
|
||||
const GLfloat r = (*src++) / 255.0;
|
||||
const GLfloat g = (*src++) / 255.0;
|
||||
const GLfloat b = (*src++) / 255.0;
|
||||
GLfloat y, cr, cb;
|
||||
GLint iy, icr, icb;
|
||||
|
||||
y = r * 65.481 + g * 128.553 + b * 24.966 + 16;
|
||||
cb = r * -37.797 + g * -74.203 + b * 112.0 + 128;
|
||||
cr = r * 112.0 + g * -93.786 + b * -18.214 + 128;
|
||||
/*printf("%f %f %f -> %f %f %f\n", r, g, b, y, cb, cr);*/
|
||||
iy = (GLint) CLAMP(y, 0, 254);
|
||||
icb = (GLint) CLAMP(cb, 0, 254);
|
||||
icr = (GLint) CLAMP(cr, 0, 254);
|
||||
|
||||
if (j & 1) {
|
||||
/* odd */
|
||||
*dest = (iy << 8) | icr;
|
||||
}
|
||||
else {
|
||||
/* even */
|
||||
*dest = (iy << 8) | icb;
|
||||
}
|
||||
dest++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void Init( int argc, char *argv[] )
|
||||
{
|
||||
GLuint texObj = 100;
|
||||
const char *file;
|
||||
|
||||
if (!glutExtensionSupported("GL_NV_texture_rectangle")) {
|
||||
printf("Sorry, GL_NV_texture_rectangle is required\n");
|
||||
exit(0);
|
||||
}
|
||||
|
||||
if (!glutExtensionSupported("GL_MESA_ycbcr_texture")) {
|
||||
printf("Sorry, GL_MESA_ycbcr_texture is required\n");
|
||||
exit(0);
|
||||
}
|
||||
|
||||
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
|
||||
|
||||
glBindTexture(GL_TEXTURE_RECTANGLE_NV, texObj);
|
||||
#ifdef LINEAR_FILTER
|
||||
/* linear filtering looks much nicer but is much slower for Mesa */
|
||||
glTexParameteri(GL_TEXTURE_RECTANGLE_NV, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
|
||||
glTexParameteri(GL_TEXTURE_RECTANGLE_NV, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
|
||||
#else
|
||||
glTexParameteri(GL_TEXTURE_RECTANGLE_NV, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
|
||||
glTexParameteri(GL_TEXTURE_RECTANGLE_NV, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
|
||||
#endif
|
||||
|
||||
if (argc > 1)
|
||||
file = argv[1];
|
||||
else
|
||||
file = TEXTURE_FILE;
|
||||
|
||||
Image = LoadRGBImage(file, &ImgWidth, &ImgHeight, &ImgFormat);
|
||||
if (!Image) {
|
||||
printf("Couldn't read %s\n", TEXTURE_FILE);
|
||||
exit(0);
|
||||
}
|
||||
|
||||
#if 0
|
||||
glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0,
|
||||
GL_RGB, ImgWidth, ImgHeight, 0,
|
||||
ImgFormat, GL_UNSIGNED_BYTE, Image);
|
||||
#else
|
||||
ImageYUV = (GLushort *) malloc(ImgWidth * ImgHeight * sizeof(GLushort));
|
||||
ConvertRGBtoYUV(ImgWidth, ImgHeight, Image, ImageYUV);
|
||||
glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0,
|
||||
GL_YCBCR_MESA, ImgWidth, ImgHeight, 0,
|
||||
GL_YCBCR_MESA, GL_UNSIGNED_SHORT_8_8_MESA, ImageYUV);
|
||||
|
||||
assert(glGetError() == GL_NO_ERROR);
|
||||
glTexSubImage2D(GL_TEXTURE_RECTANGLE_NV, 0,
|
||||
0, 0, ImgWidth, ImgHeight,
|
||||
GL_YCBCR_MESA, GL_UNSIGNED_SHORT_8_8_MESA, ImageYUV);
|
||||
|
||||
assert(glGetError() == GL_NO_ERROR);
|
||||
#endif
|
||||
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
|
||||
|
||||
glEnable(GL_TEXTURE_RECTANGLE_NV);
|
||||
|
||||
glShadeModel(GL_FLAT);
|
||||
glClearColor(0.3, 0.3, 0.4, 1.0);
|
||||
|
||||
if (argc > 1 && strcmp(argv[1], "-info")==0) {
|
||||
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
|
||||
printf("GL_VERSION = %s\n", (char *) glGetString(GL_VERSION));
|
||||
printf("GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR));
|
||||
printf("GL_EXTENSIONS = %s\n", (char *) glGetString(GL_EXTENSIONS));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int main( int argc, char *argv[] )
|
||||
{
|
||||
glutInit( &argc, argv );
|
||||
glutInitWindowSize( 300, 300 );
|
||||
glutInitWindowPosition( 0, 0 );
|
||||
glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE );
|
||||
glutCreateWindow(argv[0] );
|
||||
|
||||
Init( argc, argv );
|
||||
|
||||
glutReshapeFunc( Reshape );
|
||||
glutKeyboardFunc( Key );
|
||||
glutSpecialFunc( SpecialKey );
|
||||
glutDisplayFunc( Display );
|
||||
|
||||
glutMainLoop();
|
||||
return 0;
|
||||
}
|
@@ -1,8 +1,8 @@
|
||||
# $Id: Makefile.X11,v 1.11.2.1 2002/01/30 21:54:47 brianp Exp $
|
||||
# $Id: Makefile.X11,v 1.13 2002/10/05 18:30:46 brianp Exp $
|
||||
|
||||
# Mesa 3-D graphics library
|
||||
# Version: 4.0.2
|
||||
# Copyright (C) 1995-2001 Brian Paul
|
||||
# Version: 4.1
|
||||
# Copyright (C) 1995-2002 Brian Paul
|
||||
|
||||
# Makefile for non-GLUT (X11, SVGA, etc) demo programs
|
||||
|
||||
@@ -24,6 +24,8 @@ PROGS = glthreads \
|
||||
glxpixmap \
|
||||
manywin \
|
||||
offset \
|
||||
pbinfo \
|
||||
pbdemo \
|
||||
wincopy \
|
||||
xdemo \
|
||||
xfont
|
||||
@@ -66,3 +68,18 @@ exec: $(PROGS)
|
||||
|
||||
include ../Make-config
|
||||
|
||||
pbinfo: pbinfo.o pbutil.o
|
||||
$(CC) pbinfo.o pbutil.o $(GL_LIBS) -o $@
|
||||
|
||||
pbdemo: pbdemo.o pbutil.o
|
||||
$(CC) pbdemo.o pbutil.o $(GL_LIBS) -o $@
|
||||
|
||||
pbinfo.o: pbinfo.c pbutil.h
|
||||
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $<
|
||||
|
||||
pbdemo.o: pbdemo.c pbutil.h
|
||||
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $<
|
||||
|
||||
pbutil.o: pbutil.c pbutil.h
|
||||
$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $<
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
# Makefile for demo programs for VMS
|
||||
# Makefile for GLUT-based demo programs for VMS
|
||||
# contributed by Jouk Jansen joukj@crys.chem.uva.nl
|
||||
|
||||
|
||||
@@ -9,25 +9,38 @@
|
||||
|
||||
##### MACROS #####
|
||||
|
||||
INCDIR = [-.include]
|
||||
CFLAGS = /include=$(INCDIR)/define=(FBIND=1)
|
||||
INCDIR = ([-.include],[-.util])
|
||||
CFLAGS = /include=$(INCDIR)/prefix=all/name=(as_is,short)/nowarn
|
||||
|
||||
GL_LIBS = [-.lib]libMesaaux/l,libMesatk/l,libMesaGLU/l,libMesaGL/l,$(XLIBS)
|
||||
|
||||
LIB_DEP = [-.lib]$(GL_LIB) [-.lib]$(GLU_LIB) [-.lib]$(TK_LIB) [-.lib]$(AUX_LIB)
|
||||
|
||||
PROGS = bounce.exe;,gamma.exe;,gears.exe;,glxdemo.exe;,glxpixmap.exe;,\
|
||||
isosurf.exe;,offset.exe;,osdemo.exe;,spin.exe;,test0.exe;,\
|
||||
texobj.exe;,xdemo.exe;,reflect.exe;,winpos.exe;
|
||||
.ifdef SHARE
|
||||
GL_LIBS = $(XLIBS)
|
||||
.else
|
||||
GL_LIBS = [-.lib]libGLUT/l,libMesaGLU/l,libMesaGL/l,$(XLIBS)
|
||||
.endif
|
||||
|
||||
LIB_DEP = [-.lib]$(GL_LIB) [-.lib]$(GLU_LIB) [-.lib]$(GLUT_LIB)
|
||||
|
||||
PROGS =glthreads.exe,\
|
||||
glxdemo.exe,\
|
||||
glxgears.exe,\
|
||||
glxheads.exe,\
|
||||
glxinfo.exe,\
|
||||
glxpixmap.exe,\
|
||||
manywin.exe,\
|
||||
offset.exe,\
|
||||
pbinfo.exe,\
|
||||
pbdemo.exe,\
|
||||
wincopy.exe,\
|
||||
xdemo.exe,\
|
||||
xfont.exe
|
||||
|
||||
##### RULES #####
|
||||
|
||||
.obj.exe :
|
||||
cxxlink $(MMS$TARGET_NAME),$(GL_LIBS)
|
||||
|
||||
##### TARGETS #####
|
||||
default :
|
||||
mms $(PROGS)
|
||||
$(MMS)$(MMSQUALIFIERS) $(PROGS)
|
||||
|
||||
clean :
|
||||
delete *.obj;*
|
||||
@@ -36,44 +49,20 @@ realclean :
|
||||
delete $(PROGS)
|
||||
delete *.obj;*
|
||||
|
||||
bounce.exe; : bounce.obj $(LIB_DEP)
|
||||
link bounce,$(GL_LIBS)
|
||||
|
||||
gamma.exe; : gamma.obj $(LIB_DEP)
|
||||
link gamma,$(GL_LIBS)
|
||||
|
||||
gears.exe; : gears.obj $(LIB_DEP)
|
||||
link gears,$(GL_LIBS)
|
||||
glthreads.exe : glthreads.obj $(LIB_DEP)
|
||||
glxdemo.exe : glxdemo.obj $(LIB_DEP)
|
||||
glxgears.exe : glxgears.obj $(LIB_DEP)
|
||||
glxheads.exe : glxheads.obj $(LIB_DEP)
|
||||
glxinfo.exe : glxinfo.obj $(LIB_DEP)
|
||||
glxpixmap.exe : glxpixmap.obj $(LIB_DEP)
|
||||
manywin.exe : manywin.obj $(LIB_DEP)
|
||||
offset.exe : offset.obj $(LIB_DEP)
|
||||
pbinfo.exe : pbinfo.obj pbutil.obj $(LIB_DEP)
|
||||
cxxlink pbinfo.obj,pbutil.obj,$(GL_LIBS)
|
||||
pbdemo.exe : pbdemo.obj pbutil.obj $(LIB_DEP)
|
||||
cxxlink pbdemo.obj,pbutil.obj,$(GL_LIBS)
|
||||
wincopy.exe : wincopy.obj $(LIB_DEP)
|
||||
xdemo.exe : xdemo.obj $(LIB_DEP)
|
||||
xfont.exe :xfont.obj $(LIB_DEP)
|
||||
|
||||
glxdemo.exe; : glxdemo.obj $(LIB_DEP)
|
||||
link glxdemo,$(GL_LIBS)
|
||||
|
||||
glxpixmap.exe; : glxpixmap.obj $(LIB_DEP)
|
||||
link glxpixmap,$(GL_LIBS)
|
||||
|
||||
isosurf.exe; : isosurf.obj $(LIB_DEP)
|
||||
link isosurf,$(GL_LIBS)
|
||||
|
||||
offset.exe; : offset.obj $(LIB_DEP)
|
||||
link offset,$(GL_LIBS)
|
||||
|
||||
osdemo.exe; : osdemo.obj $(LIB_DEP)
|
||||
link osdemo,$(GL_LIBS)
|
||||
|
||||
spin.exe; : spin.obj $(LIB_DEP)
|
||||
link spin,$(GL_LIBS)
|
||||
|
||||
test0.exe; : test0.obj $(LIB_DEP)
|
||||
link test0,$(GL_LIBS)
|
||||
|
||||
texobj.exe; : texobj.obj $(LIB_DEP)
|
||||
link texobj,$(GL_LIBS)
|
||||
|
||||
xdemo.exe; : xdemo.obj $(LIB_DEP)
|
||||
link xdemo,$(GL_LIBS)
|
||||
|
||||
reflect.exe; : reflect.obj $(LIB_DEP)
|
||||
link reflect,$(GL_LIBS)
|
||||
|
||||
winpos.exe; : winpos.obj $(LIB_DEP)
|
||||
link winpos,$(GL_LIBS)
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* $Id: glthreads.c,v 1.1.4.1 2002/03/08 19:43:36 brianp Exp $ */
|
||||
/* $Id: glthreads.c,v 1.2 2002/03/08 19:44:28 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (C) 2000 Brian Paul All Rights Reserved.
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* $Id: glxdemo.c,v 1.1 1999/08/19 00:55:43 jtg Exp $ */
|
||||
/* $Id: glxdemo.c,v 1.2 2002/04/02 23:53:56 brianp Exp $ */
|
||||
|
||||
|
||||
/*
|
||||
@@ -11,8 +11,11 @@
|
||||
|
||||
/*
|
||||
* $Log: glxdemo.c,v $
|
||||
* Revision 1.1 1999/08/19 00:55:43 jtg
|
||||
* Initial revision
|
||||
* Revision 1.2 2002/04/02 23:53:56 brianp
|
||||
* added an error check
|
||||
*
|
||||
* Revision 1.1.1.1 1999/08/19 00:55:43 jtg
|
||||
* Imported sources
|
||||
*
|
||||
* Revision 3.0 1998/02/21 02:16:54 brianp
|
||||
* initial rev
|
||||
@@ -90,6 +93,10 @@ static Window make_rgb_db_window( Display *dpy,
|
||||
visinfo->visual, mask, &attr );
|
||||
|
||||
ctx = glXCreateContext( dpy, visinfo, NULL, True );
|
||||
if (!ctx) {
|
||||
printf("Error: glXCreateContext failed\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
glXMakeCurrent( dpy, win, ctx );
|
||||
|
||||
|
@@ -53,8 +53,12 @@ static int
|
||||
current_time(void)
|
||||
{
|
||||
struct timeval tv;
|
||||
#ifdef __VMS
|
||||
(void) gettimeofday(&tv, NULL );
|
||||
#else
|
||||
struct timezone tz;
|
||||
(void) gettimeofday(&tv, &tz);
|
||||
#endif
|
||||
return (int) tv.tv_sec;
|
||||
}
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* $Id: glxheads.c,v 1.2.2.1 2002/03/08 19:43:36 brianp Exp $ */
|
||||
/* $Id: glxheads.c,v 1.3 2002/03/08 19:44:28 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* Exercise multiple GLX connections on multiple X displays.
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* $Id: glxinfo.c,v 1.14.2.5 2002/09/06 12:59:14 brianp Exp $ */
|
||||
/* $Id: glxinfo.c,v 1.21 2002/11/04 16:24:18 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (C) 1999-2002 Brian Paul All Rights Reserved.
|
||||
@@ -53,6 +53,9 @@
|
||||
#define GLX_NONE_EXT 0x8000
|
||||
#endif
|
||||
|
||||
#ifndef GLX_TRANSPARENT_RGB
|
||||
#define GLX_TRANSPARENT_RGB 0x8008
|
||||
#endif
|
||||
|
||||
typedef enum
|
||||
{
|
||||
@@ -74,7 +77,12 @@ struct visual_attribs
|
||||
|
||||
/* GL visual attribs */
|
||||
int supportsGL;
|
||||
int transparent;
|
||||
int transparentType;
|
||||
int transparentRedValue;
|
||||
int transparentGreenValue;
|
||||
int transparentBlueValue;
|
||||
int transparentAlphaValue;
|
||||
int transparentIndexValue;
|
||||
int bufferSize;
|
||||
int level;
|
||||
int rgba;
|
||||
@@ -402,12 +410,29 @@ get_visual_attribs(Display *dpy, XVisualInfo *vInfo,
|
||||
glXGetConfig(dpy, vInfo, GLX_ACCUM_BLUE_SIZE, &attribs->accumBlueSize);
|
||||
glXGetConfig(dpy, vInfo, GLX_ACCUM_ALPHA_SIZE, &attribs->accumAlphaSize);
|
||||
|
||||
/* transparent pixel value not implemented yet */
|
||||
attribs->transparent = 0;
|
||||
/* get transparent pixel stuff */
|
||||
glXGetConfig(dpy, vInfo,GLX_TRANSPARENT_TYPE, &attribs->transparentType);
|
||||
if (attribs->transparentType == GLX_TRANSPARENT_RGB) {
|
||||
glXGetConfig(dpy, vInfo, GLX_TRANSPARENT_RED_VALUE, &attribs->transparentRedValue);
|
||||
glXGetConfig(dpy, vInfo, GLX_TRANSPARENT_GREEN_VALUE, &attribs->transparentGreenValue);
|
||||
glXGetConfig(dpy, vInfo, GLX_TRANSPARENT_BLUE_VALUE, &attribs->transparentBlueValue);
|
||||
glXGetConfig(dpy, vInfo, GLX_TRANSPARENT_ALPHA_VALUE, &attribs->transparentAlphaValue);
|
||||
}
|
||||
else if (attribs->transparentType == GLX_TRANSPARENT_INDEX) {
|
||||
glXGetConfig(dpy, vInfo, GLX_TRANSPARENT_INDEX_VALUE, &attribs->transparentIndexValue);
|
||||
}
|
||||
|
||||
/* multisample tests not implemented yet */
|
||||
attribs->numSamples = 0;
|
||||
attribs->numMultisample = 0;
|
||||
/* multisample attribs */
|
||||
#ifdef GLX_ARB_multisample
|
||||
if (strstr("GLX_ARB_multisample", ext) == 0) {
|
||||
glXGetConfig(dpy, vInfo, GLX_SAMPLE_BUFFERS_ARB, &attribs->numMultisample);
|
||||
glXGetConfig(dpy, vInfo, GLX_SAMPLES_ARB, &attribs->numSamples);
|
||||
}
|
||||
#endif
|
||||
else {
|
||||
attribs->numSamples = 0;
|
||||
attribs->numMultisample = 0;
|
||||
}
|
||||
|
||||
#if defined(GLX_EXT_visual_rating)
|
||||
if (ext && strstr(ext, "GLX_EXT_visual_rating")) {
|
||||
@@ -448,7 +473,15 @@ print_visual_attribs_verbose(const struct visual_attribs *attribs)
|
||||
else if (attribs->visualCaveat == GLX_NON_CONFORMANT_VISUAL_EXT)
|
||||
printf(" visualCaveat=Nonconformant\n");
|
||||
#endif
|
||||
printf(" %s\n", attribs->transparent ? "Transparent." : "Opaque.");
|
||||
if (attribs->transparentType == GLX_NONE) {
|
||||
printf(" Opaque.\n");
|
||||
}
|
||||
else if (attribs->transparentType == GLX_TRANSPARENT_RGB) {
|
||||
printf(" Transparent RGB: Red=%d Green=%d Blue=%d Alpha=%d\n",attribs->transparentRedValue,attribs->transparentGreenValue,attribs->transparentBlueValue,attribs->transparentAlphaValue);
|
||||
}
|
||||
else if (attribs->transparentType == GLX_TRANSPARENT_INDEX) {
|
||||
printf(" Transparent index=%d\n",attribs->transparentIndexValue);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -482,7 +515,7 @@ print_visual_attribs_short(const struct visual_attribs *attribs)
|
||||
attribs->id,
|
||||
attribs->depth,
|
||||
visual_class_abbrev(attribs->klass),
|
||||
attribs->transparent,
|
||||
attribs->transparentType != GLX_NONE,
|
||||
attribs->bufferSize,
|
||||
attribs->level,
|
||||
attribs->rgba ? "r" : "c",
|
||||
@@ -520,7 +553,7 @@ print_visual_attribs_long(const struct visual_attribs *attribs)
|
||||
attribs->id,
|
||||
attribs->depth,
|
||||
visual_class_name(attribs->klass),
|
||||
attribs->transparent,
|
||||
attribs->transparentType != GLX_NONE,
|
||||
attribs->bufferSize,
|
||||
attribs->level,
|
||||
attribs->rgba ? "rgba" : "ci ",
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* $Id: glxpixmap.c,v 1.2.6.1 2002/07/12 15:50:46 brianp Exp $ */
|
||||
/* $Id: glxpixmap.c,v 1.3 2002/07/12 15:54:02 brianp Exp $ */
|
||||
|
||||
|
||||
/*
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user