Compare commits
619 Commits
mesa-6.5.2
...
pre-merge-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8051c95a7e | ||
|
|
42aaa548a1 | ||
|
|
6fda763989 | ||
|
|
a1ea7812b2 | ||
|
|
bb59d81d2d | ||
|
|
8a4546b561 | ||
|
|
9db583e7e4 | ||
|
|
7143c61283 | ||
|
|
74ceaf545f | ||
|
|
f27991c916 | ||
|
|
0c3ae2ea7f | ||
|
|
d4dd5a95a8 | ||
|
|
8f90822b72 | ||
|
|
ea3d11a3d8 | ||
|
|
8e1c3bd0b4 | ||
|
|
654a308439 | ||
|
|
002762b13a | ||
|
|
1240eb2683 | ||
|
|
985a2eff82 | ||
|
|
01b7f2ab2e | ||
|
|
88db19a484 | ||
|
|
249b451d20 | ||
|
|
c5fe807e42 | ||
|
|
4b5d6c0435 | ||
|
|
6cadebbb67 | ||
|
|
704cd61120 | ||
|
|
4bafc547df | ||
|
|
cbe38dc0ce | ||
|
|
cf4272d256 | ||
|
|
bec665d5b5 | ||
|
|
ecb1a1c82f | ||
|
|
4185037af2 | ||
|
|
9622a634f6 | ||
|
|
61821a41c0 | ||
|
|
5a65478783 | ||
|
|
b3acba87d7 | ||
|
|
826815a5d2 | ||
|
|
7b992d024b | ||
|
|
c4bf863f4c | ||
|
|
b645e8c96d | ||
|
|
ff6ab9b45b | ||
|
|
ec1a77c864 | ||
|
|
a8e65a010c | ||
|
|
7b430acd71 | ||
|
|
07db8c9115 | ||
|
|
9b42100c04 | ||
|
|
77544d7b7d | ||
|
|
c9e39aeaef | ||
|
|
07265280a9 | ||
|
|
c41d6ab6f0 | ||
|
|
441f038748 | ||
|
|
dd868b4100 | ||
|
|
1062106521 | ||
|
|
bcf4f4de76 | ||
|
|
bb02092d74 | ||
|
|
b6fe1bdd4d | ||
|
|
84081774e6 | ||
|
|
cfe984dbd0 | ||
|
|
ee5b7f0574 | ||
|
|
6a9b0cd0b4 | ||
|
|
e5070bc3ca | ||
|
|
7573b58db6 | ||
|
|
d7049431a0 | ||
|
|
f04979ae48 | ||
|
|
95764262a7 | ||
|
|
0c25d9ab19 | ||
|
|
1195caa274 | ||
|
|
0e9ada1087 | ||
|
|
0d6d80ef3d | ||
|
|
51693b22cd | ||
|
|
b3a9a90cdf | ||
|
|
7f08dd3fc6 | ||
|
|
fc6b8f2d30 | ||
|
|
4e4ab2a62b | ||
|
|
4d2eb637a2 | ||
|
|
038e981cac | ||
|
|
90563d39cb | ||
|
|
0cfdf432e4 | ||
|
|
4a7fe4fcfa | ||
|
|
32d196820f | ||
|
|
b6adf336f4 | ||
|
|
3049946fa7 | ||
|
|
46fe008778 | ||
|
|
47e0b606a8 | ||
|
|
a6cc9ab493 | ||
|
|
37e6f760fd | ||
|
|
4c18d9056b | ||
|
|
14f0b7ea98 | ||
|
|
eb4db4c4ec | ||
|
|
19fbe9732c | ||
|
|
53f83b435c | ||
|
|
cd66604756 | ||
|
|
0c750ca98d | ||
|
|
708d836e6b | ||
|
|
17fb7821d7 | ||
|
|
c1a5447337 | ||
|
|
d0a3400f66 | ||
|
|
33ea9dccaf | ||
|
|
88501887e4 | ||
|
|
61ec23cc63 | ||
|
|
69e57cf6ae | ||
|
|
e64166703a | ||
|
|
7d39c1ae76 | ||
|
|
823c041fde | ||
|
|
38f7f81518 | ||
|
|
beffb4e88c | ||
|
|
97775f9904 | ||
|
|
ced8870a6a | ||
|
|
4f12b37a56 | ||
|
|
581a594033 | ||
|
|
df1c3ff3dd | ||
|
|
e61f674844 | ||
|
|
30b914e2ca | ||
|
|
6e0878becf | ||
|
|
bb0760ca4f | ||
|
|
36b4e25da3 | ||
|
|
81536789d2 | ||
|
|
f9f79c8d77 | ||
|
|
4d9901a1ca | ||
|
|
d85667950f | ||
|
|
79d59d0173 | ||
|
|
fb3410297b | ||
|
|
9adf6e9d6c | ||
|
|
2282d81536 | ||
|
|
0af1c6b5d1 | ||
|
|
e69da9d02e | ||
|
|
1a6baf092b | ||
|
|
955906aa64 | ||
|
|
37fd6be411 | ||
|
|
fa8961069c | ||
|
|
091be11190 | ||
|
|
a510bc3ee1 | ||
|
|
593802c0b0 | ||
|
|
330d7e2080 | ||
|
|
6f9b1afc86 | ||
|
|
1c70cde888 | ||
|
|
a783713432 | ||
|
|
7ecdfb2f08 | ||
|
|
9557706404 | ||
|
|
0d2a68fc61 | ||
|
|
ad3f2107ed | ||
|
|
5cb01764f6 | ||
|
|
a8ba888a35 | ||
|
|
9fbb2e9e76 | ||
|
|
d592eaeb83 | ||
|
|
887d3c67cb | ||
|
|
03b9e16507 | ||
|
|
38a88db1fc | ||
|
|
9f37be694e | ||
|
|
0609b6afa8 | ||
|
|
3c578455e1 | ||
|
|
edf676cc5a | ||
|
|
afa780c09d | ||
|
|
59e56ee3e5 | ||
|
|
f30e312763 | ||
|
|
e21096b07c | ||
|
|
928a70e435 | ||
|
|
f30e8a4bdf | ||
|
|
e6a9381f78 | ||
|
|
344c3f7379 | ||
|
|
1a72c8ed3f | ||
|
|
3528d61820 | ||
|
|
46d4880201 | ||
|
|
c080123998 | ||
|
|
9d8df47996 | ||
|
|
d9fb113e05 | ||
|
|
53170942e3 | ||
|
|
aeaad937b9 | ||
|
|
5cd30a2b20 | ||
|
|
3f8c5969ff | ||
|
|
5e66843733 | ||
|
|
641c966e3d | ||
|
|
53bcdedc32 | ||
|
|
4a1d7d6641 | ||
|
|
a4b344baa2 | ||
|
|
f0bcee5db0 | ||
|
|
440759c2cd | ||
|
|
79870d100f | ||
|
|
102ad2e066 | ||
|
|
e33a9d6894 | ||
|
|
356bf9563e | ||
|
|
bfbc1de02e | ||
|
|
6f2bf34748 | ||
|
|
6b99cafd69 | ||
|
|
af64dd2ae0 | ||
|
|
d44027dbbd | ||
|
|
18e9ca5fb0 | ||
|
|
906fd23e1d | ||
|
|
45b1f169b4 | ||
|
|
d2ffe4ca07 | ||
|
|
c226e44437 | ||
|
|
20e851bb9a | ||
|
|
d2b06403c6 | ||
|
|
43c6b2f67f | ||
|
|
7ae8f388cf | ||
|
|
515f495f4e | ||
|
|
c2e0570831 | ||
|
|
21f2f7f26b | ||
|
|
4cc4a753fa | ||
|
|
0fccb646e0 | ||
|
|
66d8e55184 | ||
|
|
f942dc5522 | ||
|
|
9131536f00 | ||
|
|
252d1de054 | ||
|
|
e4c772bead | ||
|
|
1e2b469635 | ||
|
|
7d8ed0f5f5 | ||
|
|
83cf4ce6e4 | ||
|
|
99dfca1e7f | ||
|
|
bc82b44db9 | ||
|
|
1e6688742e | ||
|
|
ebcc9b5d12 | ||
|
|
ee5417bca8 | ||
|
|
3bacb68c70 | ||
|
|
b2d30ca0cb | ||
|
|
fcccf89432 | ||
|
|
421ce180f5 | ||
|
|
54dac2c843 | ||
|
|
6cf892eeb6 | ||
|
|
f46c19d965 | ||
|
|
8518ddda7b | ||
|
|
17c13b406f | ||
|
|
5b8a50572d | ||
|
|
d0b5c77c68 | ||
|
|
4b3679c6c5 | ||
|
|
eab92fcdc2 | ||
|
|
47bd759fc9 | ||
|
|
e7654b22aa | ||
|
|
3805ccf020 | ||
|
|
296eeb882f | ||
|
|
6356874586 | ||
|
|
f8ec7f1398 | ||
|
|
be85770f14 | ||
|
|
49a17a45fb | ||
|
|
5aa997dafb | ||
|
|
cf4ccd5020 | ||
|
|
beffa17bb9 | ||
|
|
0afc2d37c3 | ||
|
|
de24b01b05 | ||
|
|
1c25561e30 | ||
|
|
2a441c488f | ||
|
|
f697308ae5 | ||
|
|
09e4df2c65 | ||
|
|
b59657ad96 | ||
|
|
2ddc8799a8 | ||
|
|
47d463e954 | ||
|
|
325196f548 | ||
|
|
2dfb3a217f | ||
|
|
8ebda479d9 | ||
|
|
af1d1e08e4 | ||
|
|
0930248bb1 | ||
|
|
5368ae5ec3 | ||
|
|
605d428d20 | ||
|
|
8628b382e4 | ||
|
|
bed026e7dd | ||
|
|
a2104dc6e1 | ||
|
|
5893474c74 | ||
|
|
893526b8a8 | ||
|
|
240641de0c | ||
|
|
48c638b671 | ||
|
|
876e372567 | ||
|
|
d2c62e6065 | ||
|
|
8811a9e38a | ||
|
|
fea6a8e1f1 | ||
|
|
8be177a694 | ||
|
|
832417f31e | ||
|
|
a4ddd64f36 | ||
|
|
f9345c7c4e | ||
|
|
d2c4d9ff9b | ||
|
|
ede8017d2c | ||
|
|
de0cf18b09 | ||
|
|
2d8b316109 | ||
|
|
7fbf8d3324 | ||
|
|
cafbc459f5 | ||
|
|
0c5b42a991 | ||
|
|
aa397fe472 | ||
|
|
c97540065c | ||
|
|
c7c0a6ddcd | ||
|
|
b0e86b2dbd | ||
|
|
aacea52181 | ||
|
|
1879069eab | ||
|
|
ea55de3d65 | ||
|
|
04d60ea54c | ||
|
|
c00169fd25 | ||
|
|
d8df84aae1 | ||
|
|
1b62353dd8 | ||
|
|
0931e21eb6 | ||
|
|
99c9bc386f | ||
|
|
1d74e565db | ||
|
|
5a3d985395 | ||
|
|
869b8ad499 | ||
|
|
dbb54b234c | ||
|
|
507167d7e2 | ||
|
|
c9b33ecd7c | ||
|
|
c6c65e7b22 | ||
|
|
6aa62ba43f | ||
|
|
38e9f8b6f2 | ||
|
|
78b64d911b | ||
|
|
db79d7dea0 | ||
|
|
327462d901 | ||
|
|
5970400476 | ||
|
|
d5db167c2c | ||
|
|
86996dfe32 | ||
|
|
2d7687865e | ||
|
|
42bd32dad7 | ||
|
|
844e5610de | ||
|
|
bdc5394d22 | ||
|
|
7e85b0a025 | ||
|
|
18d1fdebeb | ||
|
|
d46093b8d5 | ||
|
|
fe9fef2cec | ||
|
|
60c28739aa | ||
|
|
cf33bcf0b2 | ||
|
|
a8b9d13f74 | ||
|
|
ed69205684 | ||
|
|
50227f6fd2 | ||
|
|
c3ac270996 | ||
|
|
95fc270b06 | ||
|
|
ea441355d3 | ||
|
|
d1f0a55af4 | ||
|
|
3c0961d299 | ||
|
|
4f800c5bac | ||
|
|
029b81742a | ||
|
|
ee3d0617f9 | ||
|
|
669fefd3da | ||
|
|
3c59483ed7 | ||
|
|
62efc4ba3e | ||
|
|
feeed10dfd | ||
|
|
a3b4b11739 | ||
|
|
2cb3594af9 | ||
|
|
3bfbe63806 | ||
|
|
747c9129c0 | ||
|
|
afba8f0d30 | ||
|
|
7c8f311e40 | ||
|
|
fea6e5a695 | ||
|
|
c53df49b8b | ||
|
|
3ad12fab45 | ||
|
|
6a3fdc3a1e | ||
|
|
0b412f8f15 | ||
|
|
5363e3331b | ||
|
|
a03fc82771 | ||
|
|
7520478eb0 | ||
|
|
584def75ad | ||
|
|
6ff9b48fe2 | ||
|
|
50f76b9d9b | ||
|
|
82152a2a8e | ||
|
|
5464cd0a60 | ||
|
|
2421b25dd7 | ||
|
|
1b7c24c33c | ||
|
|
4557dfe132 | ||
|
|
a38cb37913 | ||
|
|
4c7d36b688 | ||
|
|
16f35a3a22 | ||
|
|
634b4b3487 | ||
|
|
89f91d1804 | ||
|
|
e2295511f5 | ||
|
|
65e3d5e45e | ||
|
|
8d7e5651fb | ||
|
|
d57ce408b3 | ||
|
|
81bd826de8 | ||
|
|
eae7acac16 | ||
|
|
8aabd636f5 | ||
|
|
9a4e49aef2 | ||
|
|
6dd967e74f | ||
|
|
e7112be732 | ||
|
|
86f10c7144 | ||
|
|
faada2485a | ||
|
|
29484f24fb | ||
|
|
f1ad10b338 | ||
|
|
fb5f359b93 | ||
|
|
308ef2dc32 | ||
|
|
ca75853f9d | ||
|
|
b55f1ec9af | ||
|
|
3dd243c59e | ||
|
|
96c5db5f7a | ||
|
|
dfabf96607 | ||
|
|
92fb742065 | ||
|
|
d9dd9013a8 | ||
|
|
026939b008 | ||
|
|
62db3cc349 | ||
|
|
9311c29558 | ||
|
|
8c1cc5fd80 | ||
|
|
ef02f8be10 | ||
|
|
652ae2c376 | ||
|
|
4068e2d1b7 | ||
|
|
1b9f78195f | ||
|
|
e54ec49155 | ||
|
|
f1fbaf39ff | ||
|
|
ade39f53f6 | ||
|
|
113b0a7f2e | ||
|
|
c2b185cff8 | ||
|
|
b530d96216 | ||
|
|
24cf67fc73 | ||
|
|
7da7404fdf | ||
|
|
16f0efca60 | ||
|
|
5ca107a4f2 | ||
|
|
6d29e1de73 | ||
|
|
92be800146 | ||
|
|
1d312ae013 | ||
|
|
8d287d0f5e | ||
|
|
bbfd963f49 | ||
|
|
254ce75ac3 | ||
|
|
b6becfae10 | ||
|
|
3943d7f8b1 | ||
|
|
8c180c72d5 | ||
|
|
9a20ae70ec | ||
|
|
1780fd4eee | ||
|
|
885a7cc38d | ||
|
|
2dd3753450 | ||
|
|
7b59a424b5 | ||
|
|
297a35eb69 | ||
|
|
2dccca57e4 | ||
|
|
257e3d1d59 | ||
|
|
3fcb7d388d | ||
|
|
0b2b2de6cf | ||
|
|
c0a63d8e5e | ||
|
|
b8769f318f | ||
|
|
d79323bd42 | ||
|
|
f54c725497 | ||
|
|
cb6a400dcd | ||
|
|
ae8d8d1326 | ||
|
|
1dd6759c05 | ||
|
|
b766643e5c | ||
|
|
af0190bc6e | ||
|
|
e3358dea66 | ||
|
|
53d40646bd | ||
|
|
b497a0cb7c | ||
|
|
6ec4a03b9f | ||
|
|
6d982e53ee | ||
|
|
de947e8a5b | ||
|
|
24a495fd77 | ||
|
|
c340dd7d84 | ||
|
|
0ae7404835 | ||
|
|
5cc1292508 | ||
|
|
b56a5261fe | ||
|
|
fde908444a | ||
|
|
e0c9361a7c | ||
|
|
81855f22cd | ||
|
|
3416ef303a | ||
|
|
cc1afed671 | ||
|
|
5f8a3e586f | ||
|
|
4cb09df015 | ||
|
|
9c09259b8b | ||
|
|
78a6e05439 | ||
|
|
99878298da | ||
|
|
c95557f48b | ||
|
|
15c7e8896b | ||
|
|
2956a0c8a8 | ||
|
|
8dcfcad7a2 | ||
|
|
6c305c0831 | ||
|
|
73eee2402e | ||
|
|
5b35132b41 | ||
|
|
c180678d92 | ||
|
|
eed1a6de4b | ||
|
|
26626c0052 | ||
|
|
d71a5647a3 | ||
|
|
d7b24fec24 | ||
|
|
aadcf1a9ff | ||
|
|
5c80270b91 | ||
|
|
65c54a685a | ||
|
|
c04c74bc5d | ||
|
|
fe91d00e33 | ||
|
|
046ece3a2d | ||
|
|
e62b2f9c2e | ||
|
|
f79360858d | ||
|
|
5449f5a975 | ||
|
|
bda66ac426 | ||
|
|
011377622f | ||
|
|
1d6f13986c | ||
|
|
4cfb762c3e | ||
|
|
7a10d66590 | ||
|
|
94136651c3 | ||
|
|
fcc54b5d34 | ||
|
|
7f82674a7e | ||
|
|
75e4cfd997 | ||
|
|
b46e359f58 | ||
|
|
14f92636b0 | ||
|
|
7daf301046 | ||
|
|
e8c5e0f0b4 | ||
|
|
eb9033c723 | ||
|
|
4a1976b224 | ||
|
|
492e406fec | ||
|
|
d43ccf61c2 | ||
|
|
464e36391f | ||
|
|
3867bc9780 | ||
|
|
f95fe81fff | ||
|
|
d88d895e5a | ||
|
|
b4dcb99cbc | ||
|
|
45b211f9d4 | ||
|
|
4f3ff14a06 | ||
|
|
98818f159b | ||
|
|
2f411b0a8b | ||
|
|
6ff3d2577e | ||
|
|
9c9e6abbf8 | ||
|
|
902b26a0d6 | ||
|
|
2911551727 | ||
|
|
78e5f414cb | ||
|
|
0faf23c26a | ||
|
|
7398748add | ||
|
|
3e4a5c0642 | ||
|
|
ac09b567a8 | ||
|
|
677666eb70 | ||
|
|
81ae0bd249 | ||
|
|
4ed78e20a4 | ||
|
|
b5e800068b | ||
|
|
a75440bcf0 | ||
|
|
fb65450704 | ||
|
|
0ea45b1ad8 | ||
|
|
a20cf73053 | ||
|
|
afb49fef90 | ||
|
|
dd60eaa6d9 | ||
|
|
50c85daf02 | ||
|
|
ac208c95cd | ||
|
|
4165a10972 | ||
|
|
fe2e6100ec | ||
|
|
a8d34992ea | ||
|
|
3613eba085 | ||
|
|
327e2c9220 | ||
|
|
a7139168d2 | ||
|
|
80a0ce37df | ||
|
|
a2a747704d | ||
|
|
b3fd1556f9 | ||
|
|
08a0946fcc | ||
|
|
82d0fd26d4 | ||
|
|
ae9c633a21 | ||
|
|
e722e3480f | ||
|
|
8532b6e0a5 | ||
|
|
08020927e8 | ||
|
|
10172f7485 | ||
|
|
9daf0812a1 | ||
|
|
0da68e2e6e | ||
|
|
9021df2d2a | ||
|
|
47695f0689 | ||
|
|
d5d00cf8c9 | ||
|
|
2af374716f | ||
|
|
b8e05366e1 | ||
|
|
6464787bfd | ||
|
|
d037c84c33 | ||
|
|
f65a4b8a8d | ||
|
|
4f61fd18b2 | ||
|
|
994ea9556f | ||
|
|
0850289d8c | ||
|
|
f82bc9110b | ||
|
|
20802a7b69 | ||
|
|
e2b4d9b317 | ||
|
|
188a4db49c | ||
|
|
c3da1501b8 | ||
|
|
25b2e50229 | ||
|
|
a93f4a7310 | ||
|
|
7e9c3684ef | ||
|
|
01e238e5d5 | ||
|
|
301acdf34a | ||
|
|
5a652f5957 | ||
|
|
6d104cb932 | ||
|
|
18d52f96bb | ||
|
|
9827dc8bea | ||
|
|
c22f8a7787 | ||
|
|
1ebe921228 | ||
|
|
2d2d617dbc | ||
|
|
2581ba7f1e | ||
|
|
35ee4affc5 | ||
|
|
851d15ef3a | ||
|
|
80c88304fc | ||
|
|
70dd0126bd | ||
|
|
1f07439fe8 | ||
|
|
f2eb6434ab | ||
|
|
a1a8a2c024 | ||
|
|
fd2756006a | ||
|
|
e8abd098b3 | ||
|
|
48f5deab94 | ||
|
|
99efde461d | ||
|
|
efef291dc7 | ||
|
|
a3c86828ed | ||
|
|
0a0fb5e0b3 | ||
|
|
72b68455eb | ||
|
|
b1f176039a | ||
|
|
fd12b37dba | ||
|
|
a05db7f505 | ||
|
|
7d907ef69c | ||
|
|
473a38622e | ||
|
|
c67f545520 | ||
|
|
e324c52237 | ||
|
|
908388b118 | ||
|
|
ae481e1560 | ||
|
|
ddaf3060fa | ||
|
|
cdd433b29b | ||
|
|
1961611247 | ||
|
|
7a968481a0 | ||
|
|
07d4c63ddc | ||
|
|
ad0f655376 | ||
|
|
6f0388ec71 | ||
|
|
179c1013d2 | ||
|
|
6d1f98da2b | ||
|
|
ac9d1ecec2 | ||
|
|
5411b96c5f | ||
|
|
13a2d6698f | ||
|
|
ddf936193a | ||
|
|
a7d8885768 | ||
|
|
b0c4cfed60 | ||
|
|
97d11ecd6c | ||
|
|
911ec211a5 | ||
|
|
4c850f346b | ||
|
|
576b3433da | ||
|
|
4b2d8b46c8 | ||
|
|
b7d4314fe1 | ||
|
|
199512968b | ||
|
|
5fd11335f6 | ||
|
|
f799745f50 | ||
|
|
1c0230b396 | ||
|
|
9ebde216cc | ||
|
|
2560e65a9a | ||
|
|
5569c2dfae | ||
|
|
98e1b13802 | ||
|
|
b9c4b7fc89 | ||
|
|
4af665a843 | ||
|
|
84a20832f1 | ||
|
|
0e7e80ae10 | ||
|
|
bb390133b5 | ||
|
|
0abf3937ce |
8
.gitignore
vendored
Normal file
8
.gitignore
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
*~
|
||||
*.a
|
||||
*.o
|
||||
*.so
|
||||
depend
|
||||
depend.bak
|
||||
lib
|
||||
lib64
|
||||
@@ -65,6 +65,7 @@ if [ $# -ge 2 ] ; then
|
||||
|
||||
elif [ -f "$FILE" ] ; then
|
||||
#echo "$FILE" is a regular file
|
||||
$RM "$DEST/`basename $FILE`"
|
||||
cp "$FILE" "$DEST"
|
||||
if [ $MODE ] ; then
|
||||
FILE=`basename "$FILE"`
|
||||
|
||||
1
configs/.gitignore
vendored
Normal file
1
configs/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
current
|
||||
@@ -28,7 +28,8 @@ ASM_SOURCES =
|
||||
LIBDRM_CFLAGS = `pkg-config --cflags libdrm`
|
||||
LIBDRM_LIB = `pkg-config --libs libdrm`
|
||||
DRI_LIB_DEPS = -L/usr/local/lib -lm -lpthread -lexpat $(LIBDRM_LIB)
|
||||
GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lXxf86vm -lm -lpthread $(LIBDRM_LIB)
|
||||
GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lXxf86vm -lXdamage -lXfixes \
|
||||
-lm -lpthread $(LIBDRM_LIB)
|
||||
|
||||
GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -L/usr/X11R6/lib -lGLU -lGL -lX11 -lXmu -lXt -lXi -lm
|
||||
GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -L/usr/X11R6/lib -lGL -lXt -lX11
|
||||
|
||||
@@ -41,7 +41,8 @@ EXTRA_LIB_PATH=-L/usr/X11R6/lib
|
||||
LIBDRM_CFLAGS = `pkg-config --cflags libdrm`
|
||||
LIBDRM_LIB = `pkg-config --libs libdrm`
|
||||
DRI_LIB_DEPS = $(EXTRA_LIB_PATH) -lm -lpthread -lexpat -ldl $(LIBDRM_LIB)
|
||||
GL_LIB_DEPS = $(EXTRA_LIB_PATH) -lX11 -lXext -lXxf86vm -lm -lpthread -ldl \
|
||||
GL_LIB_DEPS = $(EXTRA_LIB_PATH) -lX11 -lXext -lXxf86vm -lXdamage -lXfixes \
|
||||
-lm -lpthread -ldl \
|
||||
$(LIBDRM_LIB)
|
||||
|
||||
|
||||
|
||||
16
configs/linux-dri-debug
Normal file
16
configs/linux-dri-debug
Normal file
@@ -0,0 +1,16 @@
|
||||
# -*-makefile-*-
|
||||
# Configuration for linux-dri-debug: Linux DRI hardware drivers for XFree86 & others
|
||||
|
||||
include $(TOP)/configs/linux-dri
|
||||
|
||||
CONFIG_NAME = linux-dri-debug
|
||||
OPT_FLAGS = -O0 -g
|
||||
ARCH_FLAGS = -DDEBUG
|
||||
|
||||
# Helpful to reduce the amount of stuff that gets built sometimes:
|
||||
#DRI_DIRS = i915tex i915
|
||||
#DRI_DIRS = i965
|
||||
#DRI_DIRS = radeon r200 r300
|
||||
#DRI_DIRS = unichrome sis trident
|
||||
#DRI_DIRS = i810 mga r128 tdfx
|
||||
|
||||
@@ -1,47 +0,0 @@
|
||||
|
||||
Mesa 6.4.1 Release Notes
|
||||
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
Mesa uses an even/odd version number scheme like the Linux kernel.
|
||||
Odd numbered versions (such as 6.3) designate new developmental releases.
|
||||
Even numbered versions (such as 6.4) designate stable releases.
|
||||
|
||||
|
||||
6.4.1 is a bug-fix release. See the VERSIONS file for details.
|
||||
|
||||
|
||||
|
||||
GLUT tarball
|
||||
------------
|
||||
|
||||
Starting with 6.4, the GLUT library sources are distributed in a separate
|
||||
tarball. This was done at the request of Linux distro vendors who prefer
|
||||
to use freeglut.
|
||||
|
||||
|
||||
|
||||
|
||||
Driver Status
|
||||
---------------------- ----------------------
|
||||
DRI drivers varies with the driver
|
||||
XMesa (Xlib) implements OpenGL 1.5
|
||||
OSMesa (off-screen) implements OpenGL 1.5
|
||||
Windows/Win32 implements OpenGL 1.5
|
||||
Glide (3dfx Voodoo1/2) requires updates
|
||||
SVGA requires updates
|
||||
DJGPP requires updates
|
||||
GGI requires updates
|
||||
BeOS requires updates
|
||||
Allegro requires updates
|
||||
D3D requires updates
|
||||
|
||||
The drivers which require updates mostly need to be updated to work
|
||||
with the new gl_renderbuffer / gl_framebuffer infrastructure introduced
|
||||
in Mesa 6.3.
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
$Id: RELNOTES-6.4.1,v 3.1 2006/02/03 17:21:54 brianp Exp $
|
||||
@@ -1,47 +0,0 @@
|
||||
|
||||
Mesa 6.4.2 Release Notes
|
||||
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
Mesa uses an even/odd version number scheme like the Linux kernel.
|
||||
Odd numbered versions (such as 6.3) designate new developmental releases.
|
||||
Even numbered versions (such as 6.4) designate stable releases.
|
||||
|
||||
|
||||
6.4.2 is a minor bug-fix release. See the VERSIONS file for details.
|
||||
|
||||
|
||||
|
||||
GLUT tarball
|
||||
------------
|
||||
|
||||
Starting with 6.4, the GLUT library sources are distributed in a separate
|
||||
tarball. This was done at the request of Linux distro vendors who prefer
|
||||
to use freeglut.
|
||||
|
||||
|
||||
|
||||
|
||||
Driver Status
|
||||
---------------------- ----------------------
|
||||
DRI drivers varies with the driver
|
||||
XMesa (Xlib) implements OpenGL 1.5
|
||||
OSMesa (off-screen) implements OpenGL 1.5
|
||||
Windows/Win32 implements OpenGL 1.5
|
||||
Glide (3dfx Voodoo1/2) requires updates
|
||||
SVGA requires updates
|
||||
DJGPP requires updates
|
||||
GGI requires updates
|
||||
BeOS requires updates
|
||||
Allegro requires updates
|
||||
D3D requires updates
|
||||
|
||||
The drivers which require updates mostly need to be updated to work
|
||||
with the new gl_renderbuffer / gl_framebuffer infrastructure introduced
|
||||
in Mesa 6.3.
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
$Id: RELNOTES-6.4.2,v 3.1 2006/02/03 17:21:54 brianp Exp $
|
||||
@@ -1,97 +0,0 @@
|
||||
|
||||
Mesa 6.5 Release Notes
|
||||
|
||||
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
Mesa uses an even/odd version number scheme like the Linux kernel.
|
||||
Odd numbered versions (such as 6.5) designate new developmental releases.
|
||||
Even numbered versions (such as 6.4) designate stable releases.
|
||||
|
||||
|
||||
|
||||
New Features
|
||||
------------
|
||||
|
||||
OpenGL Shading language support
|
||||
This includes the GL_ARB_shader_objects, GL_ARB_shading_language_100,
|
||||
GL_ARB_vertex_shader and GL_ARB_fragment_shader extensions. Most of
|
||||
the work was done by Michal Krol.
|
||||
There's probably a fair number of bugs since this is a pretty large,
|
||||
complicated body of code.
|
||||
|
||||
The OpenGL 2.0 interface to these features will be implemented in a
|
||||
future version of Mesa,
|
||||
|
||||
GL_EXT_timer_query
|
||||
Used to measure the time of OpenGL operations at high precision.
|
||||
Only supported in the software/Xlib driver at this time.
|
||||
|
||||
GL_EXT_packed_depth_stencil
|
||||
Defines a new GL_DEPTH_STENCIL_EXT pixel format.
|
||||
|
||||
GL_EXT_framebuffer_blit
|
||||
A simplified glCopyPixels-like feature for copying pixel rectangles.
|
||||
|
||||
GL_ARB_half_float_pixel
|
||||
Adds a new half-precision floating point format for image transfers,
|
||||
such as for glDrawPixels, glReadPixels, glTexImage, etc.
|
||||
|
||||
|
||||
|
||||
Removed Extensions
|
||||
------------------
|
||||
|
||||
The following extensions have been removed:
|
||||
|
||||
GL_HP_occlusion_test - this is superceded by GL_ARB_occlusion_query.
|
||||
|
||||
|
||||
|
||||
Known Issues
|
||||
------------
|
||||
|
||||
Rendering to depth textures will not work. Rendering to GL_DEPTH_STENCIL
|
||||
textures should work.
|
||||
|
||||
|
||||
|
||||
Driver Interface Changes
|
||||
------------------------
|
||||
|
||||
Stencil: The Driver.StencilOp/Func/Mask() functions have been replaced by
|
||||
the two-sided versions: Driver.Stencil*Separate().
|
||||
|
||||
Render-to-texture: The functions for rendering to textures have changed.
|
||||
|
||||
|
||||
|
||||
To Do (someday) items
|
||||
---------------------
|
||||
Switch to freeglut
|
||||
Increase MAX_DRAWBUFFERS
|
||||
Fix linux-glide target/driver.
|
||||
Fix lambda calculation for frag progs.
|
||||
|
||||
|
||||
|
||||
Driver Status
|
||||
---------------------- ----------------------
|
||||
DRI drivers varies with the driver
|
||||
XMesa/GLX (on Xlib) implements OpenGL 1.5
|
||||
OSMesa (off-screen) implements OpenGL 1.5
|
||||
Glide (3dfx Voodoo1/2) implements OpenGL 1.3
|
||||
SVGA implements OpenGL 1.3
|
||||
Wind River UGL implements OpenGL 1.3
|
||||
Windows/Win32 implements OpenGL 1.5
|
||||
DJGPP implements OpenGL 1.5
|
||||
GGI implements OpenGL 1.3
|
||||
BeOS implements OpenGL 1.5
|
||||
Allegro needs updating
|
||||
D3D needs updating
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
$Id: RELNOTES-6.5,v 3.4 2006/03/29 04:53:02 brianp Exp $
|
||||
@@ -1,60 +0,0 @@
|
||||
|
||||
Mesa 6.5.1 Release Notes
|
||||
|
||||
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
Mesa uses an even/odd version number scheme like the Linux kernel.
|
||||
Odd numbered versions (such as 6.5) designate new developmental releases.
|
||||
Even numbered versions (such as 6.4) designate stable releases.
|
||||
|
||||
|
||||
|
||||
Mesa 6.5.1 is a 6.5 follow-on development release mostly consisting of
|
||||
bug fixes (see the VERSIONS file).
|
||||
|
||||
|
||||
New Features
|
||||
------------
|
||||
|
||||
Intel i965 "broadwater" DRI driver
|
||||
|
||||
GL_APPLE_vertex_array_object - allows encapsulation of a set of vertex
|
||||
arrays in an object.
|
||||
|
||||
GL_EXT_texture_sRGB - non-linearly mapped texture formats
|
||||
|
||||
GL_EXT_gpu_program_parameters - addes a few new functions for setting
|
||||
multiple vertex/fragment program parameters with one call.
|
||||
|
||||
|
||||
|
||||
To Do (someday) items
|
||||
---------------------
|
||||
Switch to freeglut
|
||||
Increase MAX_DRAWBUFFERS
|
||||
Fix linux-glide target/driver.
|
||||
Fix lambda calculation for frag progs.
|
||||
|
||||
|
||||
|
||||
Driver Status
|
||||
---------------------- ----------------------
|
||||
DRI drivers varies with the driver
|
||||
XMesa/GLX (on Xlib) implements OpenGL 1.5
|
||||
OSMesa (off-screen) implements OpenGL 1.5
|
||||
Glide (3dfx Voodoo1/2) implements OpenGL 1.3
|
||||
SVGA implements OpenGL 1.3
|
||||
Wind River UGL implements OpenGL 1.3
|
||||
Windows/Win32 implements OpenGL 1.5
|
||||
DJGPP implements OpenGL 1.5
|
||||
GGI implements OpenGL 1.3
|
||||
BeOS implements OpenGL 1.5
|
||||
Allegro needs updating
|
||||
D3D needs updating
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
$Id: RELNOTES-6.5.1,v 1.2 2006/08/18 20:24:54 brianp Exp $
|
||||
@@ -63,8 +63,7 @@ a:visited {
|
||||
<b>Developer Topics</b>
|
||||
<ul>
|
||||
<li><a href="http://sourceforge.net/projects/mesa3d" target="_parent">SourceForge homepage</a>
|
||||
<li><a href="cvs_access.html" target="MainFrame">CVS Access</a>
|
||||
<li><a href="cvs_branches.html" target="MainFrame">CVS Branch Info</a>
|
||||
<li><a href="repository.html" target="MainFrame">Source Code Repository</a>
|
||||
<li><a href="utilities.html" target="MainFrame">Utilities</a>
|
||||
<li><a href="helpwanted.html" target="MainFrame">Help Wanted</a>
|
||||
<li><a href="devinfo.html" target="MainFrame">Development Notes</a>
|
||||
|
||||
@@ -1,106 +0,0 @@
|
||||
<HTML>
|
||||
|
||||
<TITLE>CVS Access</TITLE>
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="mesa.css"></head>
|
||||
|
||||
<BODY>
|
||||
|
||||
<h1>CVS Access</h1>
|
||||
|
||||
<p>
|
||||
Mesa's CVS repository (code management system) is hosted on
|
||||
<a href="http://www.freedesktop.org" target="_parent">freedesktop.org</a>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
You may access the repository either as an
|
||||
<a href="#anonymous">anonymous user</a> (read-only) or as a
|
||||
<a href="#developer">developer</a>
|
||||
(read/write).
|
||||
</p>
|
||||
|
||||
<p>
|
||||
You may also
|
||||
<a href="http://freedesktop.org/cgi-bin/viewcvs.cgi/mesa/Mesa/"
|
||||
target="_parent">browse the CVS repository</a>.
|
||||
</p>
|
||||
|
||||
|
||||
<a name="anonymous">
|
||||
<H2>Anonymous CVS Access</H2>
|
||||
|
||||
<p>
|
||||
Anonymous, public, read-only access to the CVS repository is available.
|
||||
Here are the basic instructions for Unix systems:
|
||||
</p>
|
||||
|
||||
<ol>
|
||||
<li>Install CVS client software on your computer if needed.
|
||||
Version 1.9.28 is known to work.
|
||||
<li>Login as an anonymous user:
|
||||
<pre>
|
||||
cvs -d:pserver:anonymous@anoncvs.freedesktop.org:/cvs/mesa login
|
||||
</pre>
|
||||
Just press Enter/Return when prompted for a password.
|
||||
<br>
|
||||
<br>
|
||||
<li>Check out the code:
|
||||
<pre>
|
||||
cvs -d:pserver:anonymous@anoncvs.freedesktop.org:/cvs/mesa co Mesa
|
||||
</pre>
|
||||
</ol>
|
||||
|
||||
|
||||
<p>To update your Mesa CVS source to the latest CVS source:</p>
|
||||
|
||||
<ol>
|
||||
<li><code>cd Mesa</code>
|
||||
<li><code>cvs -z3 -d:pserver:anonymous@anoncvs.freedesktop.org:/cvs/mesa update</code>
|
||||
</ol>
|
||||
|
||||
|
||||
<a name="developer">
|
||||
<H2>Developer CVS Access</H2>
|
||||
|
||||
<p>
|
||||
Mesa developers working with the Mesa CVS repository need to first
|
||||
have an account on <a href="http://www.freedesktop.org" target="_parent">
|
||||
freedesktop.org</a>.
|
||||
To get an account, please ask Brian or the other Mesa developers for
|
||||
permission.
|
||||
Then, if there are no objections, follow this
|
||||
<a href="http://www.freedesktop.org/wiki/AccountRequests" target="_parent">
|
||||
procedure</a>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Once your account is established, you can check out the Mesa CVS tree
|
||||
with:
|
||||
<pre>
|
||||
setenv CVS_RSH ssh (if using a csh-like shell)
|
||||
</pre>
|
||||
<em>OR</em>
|
||||
<pre>
|
||||
export CVS_RSH=rsh (if using a bash-like shell)
|
||||
</pre>
|
||||
followed by:
|
||||
<pre>
|
||||
cvs -d:ext:yourusername@cvs.freedesktop.org:/cvs/mesa co Mesa
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
Of course, replace <em>yourusername</em> with your actual login name.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Subsequent updates should only require:
|
||||
</p>
|
||||
<pre>
|
||||
cvs update
|
||||
</pre>
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,80 +0,0 @@
|
||||
<HTML>
|
||||
|
||||
<TITLE>CVS Branches</TITLE>
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="mesa.css"></head>
|
||||
|
||||
<BODY>
|
||||
|
||||
<H1>CVS Branch Information</H1>
|
||||
|
||||
<p>
|
||||
At any given time, there may be several active branches in Mesa's
|
||||
CVS repository.
|
||||
|
||||
Generally, the CVS trunk contains the latest development (unstable)
|
||||
code while a CVS branch has the latest stable code.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Currently (Oct 2004), the trunk is the Mesa 6.3 development code
|
||||
while the mesa_6_2_branch branch has the stable Mesa 6.2.x code.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Mesa releases use an even/odd numbering scheme to represent stable/development
|
||||
releases.
|
||||
|
||||
For example, Mesa 6.2 (0 is considered even) is a stable release while
|
||||
Mesa 6.3 is a development release.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
To checkout a specific CVS branch pass <code>-r</code> and
|
||||
the branch tag after your CVS command.
|
||||
|
||||
For example <code>cvs checkout -r mesa_6_2_branch Mesa</code> will
|
||||
checkout the 6.2 branch and <code>cvs update -r
|
||||
mesa_6_2_branch</code> will convert your current CVS tree to the 6.2
|
||||
branch.
|
||||
|
||||
Consult <a href="http://www.durak.org/cvswebsites/doc/cvs_5.php3#SEC54"
|
||||
target="_parent">http://www.durak.org/cvswebsites/doc/cvs_5.php3#SEC54</a>
|
||||
for more on branching in CVS.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
To see a list of all the CVS branches run <code>cvs log README</code> (or any
|
||||
other file) and look for the section labeled <code>symbolic names</code>.
|
||||
You'll see something like this:
|
||||
</p>
|
||||
|
||||
<pre> symbolic names:
|
||||
mesa_4_0: 1.3
|
||||
mesa_4_0_branch: 1.3.0.6
|
||||
mesa_3_5: 1.3
|
||||
mesa_3_4_2: 1.3
|
||||
mesa_3_4_1: 1.3
|
||||
mesa_3_4: 1.3
|
||||
mesa_3_4_branch: 1.3.0.4
|
||||
mesa_3_3: 1.3
|
||||
mesa_3_2_1: 1.1.1.1
|
||||
mesa_3_3_texture_env_combine2: 1.3.0.2
|
||||
mesa_3_2: 1.1.1.1
|
||||
mesa_3_2_beta_1: 1.1.1.1
|
||||
mesa_3_1: 1.1.1.1
|
||||
mesa_3_2_dev: 1.1.1.1.0.2
|
||||
mesa_3_1_beta_3: 1.1.1.1
|
||||
start: 1.1.1.1
|
||||
mesa: 1.1.1
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
Most will be obsolete branches. Generally, the newer branches are at
|
||||
the top. Ask on the mesa3d-dev mailing list to learn which branches
|
||||
are active.
|
||||
</p>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -9,7 +9,7 @@
|
||||
<H1>Downloading</H1>
|
||||
|
||||
<p>
|
||||
Last development release: <b>6.5.1</b>
|
||||
Last development release: <b>6.5.2</b>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
|
||||
@@ -9,47 +9,58 @@
|
||||
<H1>Mailing Lists</H1>
|
||||
|
||||
|
||||
<p>There are four Mesa mailing lists:</p>
|
||||
<ul>
|
||||
<li><b>mesa3d-users</b> - intended for users of the Mesa library.
|
||||
Newbie questions are appropriate, but please try reading the Mesa documentation first.
|
||||
</li><li><b>mesa3d-dev</b> - intended for developers of the Mesa library.
|
||||
This is not for beginners.
|
||||
</li><li><b>mesa3d-cvs</b> - CVS check-in messages are sent to this list.
|
||||
This is useful for tracking ongoing development changes.
|
||||
</li><li><b>mesa3d-announce</b> - announcements of new Mesa versions are sent to this list.
|
||||
</li></ul>
|
||||
|
||||
<p>
|
||||
To subscribe or unsubscribe, go to the
|
||||
<a href="http://www.sourceforge.net/mail/?group_id=3" target="_parent">
|
||||
SourceForge lists page.</a>
|
||||
<p>There are four Mesa mailing lists:
|
||||
</p>
|
||||
|
||||
<p>The mailing lists are managed by SourceForge. If you're having trouble
|
||||
with the mailing lists please contact the SourceForge administrators for help.</p>
|
||||
<ul>
|
||||
<li><a href="https://lists.sourceforge.net/lists/listinfo/mesa3d-announce"
|
||||
target="_parent">mesa3d-announce</a> - announcements of new Mesa
|
||||
versions are sent to this list.
|
||||
</li>
|
||||
<br>
|
||||
<li><a href="https://lists.sourceforge.net/lists/listinfo/mesa3d-users"
|
||||
target="_parent">mesa3d-users</a> - intended for users of the Mesa library.
|
||||
Newbie questions are appropriate, but please try the general OpenGL
|
||||
resources and Mesa documentation first.
|
||||
</li>
|
||||
<br>
|
||||
<li><a href="https://lists.sourceforge.net/lists/listinfo/mesa3d-dev"
|
||||
target="_parent">mesa3d-dev</a> - for discussion of Mesa development.
|
||||
Not for beginners.
|
||||
</li>
|
||||
<br>
|
||||
<li><a href="http://lists.freedesktop.org/mailman/listinfo/mesa-commit"
|
||||
target="_parent">mesa-commit</a> - relays git check-in messages
|
||||
(for developers).
|
||||
<br>
|
||||
Note: the old mesa3d-cvs list is no longer in use.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>Archives of the old Mesa mailing list which was hosted by unicamp.br
|
||||
are available <a href="http://groups.yahoo.com/group/mesa/messages/"
|
||||
target="_parent">here</a>.</p>
|
||||
<p>
|
||||
<b>Notice</b>: non-member posts to any of these lists will be automatically
|
||||
rejected.
|
||||
</p>
|
||||
|
||||
|
||||
<br>
|
||||
|
||||
<H1>OpenGL Forums</H1>
|
||||
|
||||
<p>
|
||||
Here are some other OpenGL-related forums you might find useful:
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Usenet newsgroups:
|
||||
<ul>
|
||||
<li>comp.graphics.algorithms
|
||||
<li>comp.graphics.api.opengl
|
||||
<li>comp.os.linux.x
|
||||
<li><a href="http://www.opengl.org/cgi-bin/ubb/ultimatebb.cgi"
|
||||
target="_parent">OpenGL discussion forums</A> at www.opengl.org</li>
|
||||
<li>Usenet newsgroups:
|
||||
<ul>
|
||||
<li>comp.graphics.algorithms</li>
|
||||
<li>comp.graphics.api.opengl</li>
|
||||
<li>comp.os.linux.x</li>
|
||||
</ul>
|
||||
</ul>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<a href="http://www.opengl.org/" target="_parent">OpenGL discussion forums</A>
|
||||
at www.opengl.org
|
||||
</p>
|
||||
|
||||
</HTML>
|
||||
</BODY>
|
||||
|
||||
@@ -11,6 +11,13 @@
|
||||
<H1>News</H1>
|
||||
|
||||
|
||||
<h2>December 5, 2006</h2>
|
||||
<p>
|
||||
Mesa is now using git as its source code management system.
|
||||
The previous CVS repository should no longer be used.
|
||||
See the <a href="repository.html">repository page</a> for more information.
|
||||
</p>
|
||||
|
||||
<h2>December 2, 2006</h2>
|
||||
<p>
|
||||
<a href="relnotes-6.5.2.html">Mesa 6.5.2</a> has been released.
|
||||
|
||||
@@ -18,7 +18,15 @@ but mostly consisting of bug fixes.
|
||||
|
||||
<h2>MD5 checksums</h2>
|
||||
<pre>
|
||||
TBD
|
||||
11a033b078e090b3caaeb467234fe299 MesaLib-6.5.2.tar.gz
|
||||
e4d894181f1859651658b3704633e10d MesaLib-6.5.2.tar.bz2
|
||||
63bf1d444fa738cca52ce1043e284021 MesaLib-6.5.2.zip
|
||||
2b8f1375d16bda5f5a2304174cd5bcf7 MesaDemos-6.5.2.tar.gz
|
||||
e870efe98d3a50be01ab211b9b2e25d9 MesaDemos-6.5.2.tar.bz2
|
||||
d92cc6f5fee5ca75af0be04f9f4908f0 MesaDemos-6.5.2.zip
|
||||
8d4d77e3a7132f4217bbc7c1ab157030 MesaGLUT-6.5.2.tar.gz
|
||||
e84edbb11c69c8e408dfadd2ed08e95b MesaGLUT-6.5.2.tar.bz2
|
||||
c6d7134843ed5faf11f6686ecb5d2a2e MesaGLUT-6.5.2.zip
|
||||
</pre>
|
||||
|
||||
|
||||
|
||||
82
docs/relnotes-6.5.3.html
Normal file
82
docs/relnotes-6.5.3.html
Normal file
@@ -0,0 +1,82 @@
|
||||
<HTML>
|
||||
|
||||
<TITLE>Mesa Release Notes</TITLE>
|
||||
|
||||
<head><link rel="stylesheet" type="text/css" href="mesa.css"></head>
|
||||
|
||||
<BODY>
|
||||
|
||||
<body bgcolor="#eeeeee">
|
||||
|
||||
<H1>Mesa 6.5.3 Release Notes / (in progress)</H1>
|
||||
|
||||
<p>
|
||||
Mesa 6.5.3 is a 6.5 follow-on development release mostly consisting of
|
||||
bug fixes</a>.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>MD5 checksums</h2>
|
||||
<pre>
|
||||
TBD
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
<ul>
|
||||
<li>Updated glext.h file (version 39)
|
||||
<li>Updated glxext.h file (version 18)
|
||||
</ul>
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
<ul>
|
||||
<li>Fog was errantly applied when a fragment shader was enabled (bug 9346)
|
||||
<li>glPush/PopClientAttrib didn't handle VBO bindings correctly (bug 9445)
|
||||
<li>With 32-bit Z buffer, the fragment Z of lines and points was sometimes wrong.
|
||||
<li>1D convolution state could effect 2D image transfers
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Internal code changes</h2>
|
||||
|
||||
<ul>
|
||||
<li>The _MaintainTnlProgram, _MaintainTexEnvProgram, _TexEnvProgram and
|
||||
_TnlProgram fields have been moved.
|
||||
<li>The ctx->FragmentProgram._Active field has been removed.
|
||||
<li>The ctx->Vertex/FragmentProgram._Current fields point to the program
|
||||
in effect, whether it comes from a shader, user-program or generated
|
||||
fixed-function program.
|
||||
<li>The _UseTexEnvProgram field has been removed.
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>To Do (someday) items</h2>
|
||||
<ul>
|
||||
<li>Switch to freeglut
|
||||
<li>Increase MAX_DRAWBUFFERS
|
||||
<li>Fix linux-glide target/driver.
|
||||
<li>Improved lambda and derivative calculation for frag progs.
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Driver Status</h2>
|
||||
|
||||
<pre>
|
||||
Driver Status
|
||||
---------------------- ----------------------
|
||||
DRI drivers varies with the driver
|
||||
XMesa/GLX (on Xlib) implements OpenGL 1.5
|
||||
OSMesa (off-screen) implements OpenGL 1.5
|
||||
Glide (3dfx Voodoo1/2) implements OpenGL 1.3
|
||||
SVGA implements OpenGL 1.3
|
||||
Wind River UGL implements OpenGL 1.3
|
||||
Windows/Win32 implements OpenGL 1.5
|
||||
DJGPP implements OpenGL 1.5
|
||||
GGI implements OpenGL 1.3
|
||||
BeOS implements OpenGL 1.5
|
||||
Allegro needs updating
|
||||
D3D needs updating
|
||||
</pre>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -20,6 +20,7 @@ The release notes summarize what's new or changed in each Mesa release.
|
||||
</p>
|
||||
|
||||
<UL>
|
||||
<LI><A HREF="relnotes-6.5.3.html">6.5.3 release notes</A>
|
||||
<LI><A HREF="relnotes-6.5.2.html">6.5.2 release notes</A>
|
||||
<LI><A HREF="relnotes-6.5.1.html">6.5.1 release notes</A>
|
||||
<LI><A HREF="relnotes-6.5.html">6.5 release notes</A>
|
||||
|
||||
111
docs/repository.html
Normal file
111
docs/repository.html
Normal file
@@ -0,0 +1,111 @@
|
||||
<HTML>
|
||||
|
||||
<TITLE>Cocd Repository</TITLE>
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="mesa.css"></head>
|
||||
|
||||
<BODY>
|
||||
|
||||
<h1>Code Repository</h1>
|
||||
|
||||
<p>
|
||||
As of December 5, 2006, Mesa is using
|
||||
<a href="http://git.or.cz/"target="_parent">git</a>
|
||||
as its source code management system.
|
||||
CVS was used previously.
|
||||
The old CVS repository should no longer be used.
|
||||
</p>
|
||||
|
||||
The master git repository is hosted on
|
||||
<a href="http://www.freedesktop.org" target="_parent">freedesktop.org</a>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
You may access the repository either as an
|
||||
<a href="#anonymous">anonymous user</a> (read-only) or as a
|
||||
<a href="#developer">developer</a>
|
||||
(read/write).
|
||||
</p>
|
||||
|
||||
<p>
|
||||
You may also
|
||||
<a href="http://gitweb.freedesktop.org/?p=mesa/mesa.git"
|
||||
target="_parent">browse the git repository</a>.
|
||||
</p>
|
||||
|
||||
|
||||
<a name="anonymous">
|
||||
<H2>Anonymous git Access</H2>
|
||||
|
||||
<p>
|
||||
To get the Mesa sources anonymously (read-only):
|
||||
</p>
|
||||
|
||||
<ol>
|
||||
<li>Install the git software on your computer if needed.<br><br>
|
||||
<li>Get an initial, local copy of the repository with:
|
||||
<pre>
|
||||
git clone git://anongit.freedesktop.org/git/mesa/mesa
|
||||
</pre>
|
||||
<li>Later, you can update your tree from the master repository with:
|
||||
<pre>
|
||||
git pull origin
|
||||
</pre>
|
||||
</ol>
|
||||
|
||||
|
||||
<a name="developer">
|
||||
<H2>Developer git Access</H2>
|
||||
|
||||
<p>
|
||||
Mesa developers need to first have an account on
|
||||
<a href="http://www.freedesktop.org" target="_parent">freedesktop.org</a>.
|
||||
To get an account, please ask Brian or the other Mesa developers for
|
||||
permission.
|
||||
Then, if there are no objections, follow this
|
||||
<a href="http://www.freedesktop.org/wiki/AccountRequests" target="_parent">
|
||||
procedure</a>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Once your account is established:
|
||||
</p>
|
||||
|
||||
<ol>
|
||||
<li>Install the git software on your computer if needed.<br><br>
|
||||
<li>Get an initial, local copy of the repository with:
|
||||
<pre>
|
||||
git clone git+ssh://username@git.freedesktop.org/git/mesa/mesa
|
||||
</pre>
|
||||
Replace <em>username</em> with your actual login name.<br><br>
|
||||
<li>Later, you can update your tree from the master repository with:
|
||||
<pre>
|
||||
git pull origin
|
||||
</pre>
|
||||
</ol>
|
||||
|
||||
|
||||
<a name="developer">
|
||||
<H2>Development Branches</H2>
|
||||
|
||||
<p>
|
||||
At any given time, there may be several active branches in Mesa's
|
||||
repository.
|
||||
Generally, the trunk contains the latest development (unstable)
|
||||
code while a branch has the latest stable code.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The command <code>git-branch</code> will list all available branches.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Questions about branch status/activity should be posted to the
|
||||
mesa3d-dev mailing list.
|
||||
</p>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
0
doxygen/.cvsignore → doxygen/.gitignore
vendored
0
doxygen/.cvsignore → doxygen/.gitignore
vendored
@@ -9,7 +9,7 @@ all: full subset
|
||||
FULL = \
|
||||
main.doxy \
|
||||
math.doxy \
|
||||
array_cache.doxy \
|
||||
vbo.doxy \
|
||||
glapi.doxy \
|
||||
shader.doxy \
|
||||
swrast.doxy \
|
||||
|
||||
@@ -23,7 +23,7 @@ PROJECT_NAME = Mesa
|
||||
# This could be handy for archiving the generated documentation or
|
||||
# if some version control system is used.
|
||||
|
||||
PROJECT_NUMBER = 6.2
|
||||
PROJECT_NUMBER = 6.5
|
||||
|
||||
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
|
||||
# base path where the generated documentation will be put.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
doxygen tnl_dd.doxy
|
||||
doxygen array_cache.doxy
|
||||
doxygen vbo.doxy
|
||||
doxygen math.doxy
|
||||
doxygen swrast.doxy
|
||||
doxygen swrast_setup.doxy
|
||||
@@ -10,7 +10,7 @@ doxygen shader.doxy
|
||||
|
||||
echo Building again, to resolve tags
|
||||
doxygen tnl_dd.doxy
|
||||
doxygen array_cache.doxy
|
||||
doxygen vbo.doxy
|
||||
doxygen math.doxy
|
||||
doxygen swrast.doxy
|
||||
doxygen swrast_setup.doxy
|
||||
|
||||
@@ -45,5 +45,5 @@ TAGFILES = main.tag=../core \
|
||||
swrast.tag=../swrast \
|
||||
swrast_setup.tag=../swrast_setup \
|
||||
tnl.tag=../tnl \
|
||||
array_cache.tag=array_cache
|
||||
vbo.tag=vbo
|
||||
GENERATE_TAGFILE = swrast.tag
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<div class="qindex">
|
||||
<a class="qindex" href="../main/index.html">core</a> |
|
||||
<a class="qindex" href="../glapi/index.html">glapi</a> |
|
||||
<a class="qindex" href="../array_cache/index.html">array_cache</a> |
|
||||
<a class="qindex" href="../vbo/index.html">vbo</a> |
|
||||
<a class="qindex" href="../math/index.html">math</a> |
|
||||
<a class="qindex" href="../shader/index.html">shader</a> |
|
||||
<a class="qindex" href="../swrast/index.html">swrast</a> |
|
||||
|
||||
@@ -40,7 +40,7 @@ SKIP_FUNCTION_MACROS = YES
|
||||
# Configuration::addtions related to external references
|
||||
#---------------------------------------------------------------------------
|
||||
TAGFILES = tnl_dd.tag=../tnl_dd \
|
||||
array_cache.tag=../array_cache \
|
||||
vbo.tag=../vbo \
|
||||
glapi.tag=../glapi \
|
||||
math.tag=../math \
|
||||
shader.tag=../shader \
|
||||
|
||||
@@ -45,5 +45,5 @@ TAGFILES = tnl_dd.tag=../tnl_dd \
|
||||
swrast.tag=../swrast \
|
||||
swrast_setup.tag=../swrast_setup \
|
||||
tnl.tag=../tnl \
|
||||
array_cache.tag=../array_cache
|
||||
vbo.tag=../vbo
|
||||
GENERATE_TAGFILE = math.tag
|
||||
|
||||
@@ -45,5 +45,5 @@ TAGFILES = main.tag=../core \
|
||||
swrast.tag=../swrast \
|
||||
swrast_setup.tag=../swrast_setup \
|
||||
tnl.tag=../tnl \
|
||||
array_cache.tag=array_cache
|
||||
vbo.tag=vbo
|
||||
GENERATE_TAGFILE = swrast.tag
|
||||
|
||||
@@ -44,5 +44,5 @@ TAGFILES = main.tag=../core \
|
||||
tnl_dd.tag=../tnl_dd \
|
||||
swrast_setup.tag=../swrast_setup \
|
||||
tnl.tag=../tnl \
|
||||
array_cache.tag=array_cache
|
||||
vbo.tag=vbo
|
||||
GENERATE_TAGFILE = swrast.tag
|
||||
|
||||
@@ -45,5 +45,5 @@ TAGFILES = tnl_dd.tag=../tnl_dd \
|
||||
math.tag=../math \
|
||||
swrast.tag=../swrast \
|
||||
tnl.tag=../tnl \
|
||||
array_cache.tag=../array_cache
|
||||
vbo.tag=../vbo
|
||||
GENERATE_TAGFILE = swrast_setup.tag
|
||||
|
||||
@@ -46,5 +46,5 @@ TAGFILES = tnl_dd.tag=../tnl \
|
||||
shader.tag=../shader \
|
||||
swrast.tag=../swrast \
|
||||
swrast_setup.tag=swrast_setup \
|
||||
array_cache.tag=array_cache
|
||||
vbo.tag=vbo
|
||||
GENERATE_TAGFILE = tnl.tag
|
||||
|
||||
@@ -45,5 +45,5 @@ TAGFILES = main.tag=../core \
|
||||
swrast.tag=../swrast \
|
||||
swrast_setup.tag=../swrast_setup \
|
||||
tnl.tag=../tnl \
|
||||
array_cache.tag=array_cache
|
||||
vbo.tag=vbo
|
||||
GENERATE_TAGFILE = tnl_dd.tag
|
||||
|
||||
@@ -5,11 +5,11 @@
|
||||
#---------------------------------------------------------------------------
|
||||
# General configuration options
|
||||
#---------------------------------------------------------------------------
|
||||
PROJECT_NAME = "Mesa array_cache"
|
||||
PROJECT_NAME = "Mesa vbo"
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the input files
|
||||
#---------------------------------------------------------------------------
|
||||
INPUT = ../src/mesa/array_cache/
|
||||
INPUT = ../src/mesa/vbo/
|
||||
FILE_PATTERNS = *.c \
|
||||
*.h
|
||||
RECURSIVE = NO
|
||||
@@ -24,7 +24,7 @@ FILTER_SOURCE_FILES = NO
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the HTML output
|
||||
#---------------------------------------------------------------------------
|
||||
HTML_OUTPUT = array_cache
|
||||
HTML_OUTPUT = vbo
|
||||
#---------------------------------------------------------------------------
|
||||
# Configuration options related to the preprocessor
|
||||
#---------------------------------------------------------------------------
|
||||
@@ -47,4 +47,4 @@ TAGFILES = main.tag=../core \
|
||||
swrast_setup.tag=../swrast_setup \
|
||||
tnl.tag=../tnl \
|
||||
tnl_dd.tag=../tnl_dd
|
||||
GENERATE_TAGFILE = array_cache.tag
|
||||
GENERATE_TAGFILE = vbo.tag
|
||||
@@ -6,32 +6,26 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** License Applicability. Except to the extent portions of this file are
|
||||
** made subject to an alternative license as permitted in the SGI Free
|
||||
** Software License B, Version 1.1 (the "License"), the contents of this
|
||||
** file are subject only to the provisions of the License. You may not use
|
||||
** this file except in compliance with the License. You may obtain a copy
|
||||
** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600
|
||||
** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at:
|
||||
** Copyright (c) 2007 The Khronos Group Inc.
|
||||
**
|
||||
** http://oss.sgi.com/projects/FreeB
|
||||
** Permission is hereby granted, free of charge, to any person obtaining a
|
||||
** copy of this software and/or associated documentation files (the
|
||||
** "Materials"), to deal in the Materials without restriction, including
|
||||
** without limitation the rights to use, copy, modify, merge, publish,
|
||||
** distribute, sublicense, and/or sell copies of the Materials, and to
|
||||
** permit persons to whom the Materials are furnished to do so, subject to
|
||||
** the following conditions:
|
||||
**
|
||||
** Note that, as provided in the License, the Software is distributed on an
|
||||
** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS
|
||||
** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND
|
||||
** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A
|
||||
** PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
|
||||
** The above copyright notice and this permission notice shall be included
|
||||
** in all copies or substantial portions of the Materials.
|
||||
**
|
||||
** Original Code. The Original Code is: OpenGL Sample Implementation,
|
||||
** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics,
|
||||
** Inc. The Original Code is Copyright (c) 1991-2004 Silicon Graphics, Inc.
|
||||
** Copyright in any portions created by third parties is as indicated
|
||||
** elsewhere herein. All Rights Reserved.
|
||||
**
|
||||
** Additional Notice Provisions: This software was created using the
|
||||
** OpenGL(R) version 1.2.1 Sample Implementation published by SGI, but has
|
||||
** not been independently verified as being compliant with the OpenGL(R)
|
||||
** version 1.2.1 Specification.
|
||||
** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
||||
*/
|
||||
|
||||
#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__)
|
||||
@@ -52,9 +46,9 @@ extern "C" {
|
||||
/*************************************************************/
|
||||
|
||||
/* Header file version number, required by OpenGL ABI for Linux */
|
||||
/* glext.h last updated 2006/08/30 */
|
||||
/* glext.h last updated 2007/02/12 */
|
||||
/* Current version at http://www.opengl.org/registry/ */
|
||||
#define GL_GLEXT_VERSION 34
|
||||
#define GL_GLEXT_VERSION 39
|
||||
|
||||
#ifndef GL_VERSION_1_2
|
||||
#define GL_UNSIGNED_BYTE_3_3_2 0x8032
|
||||
@@ -3019,7 +3013,6 @@ extern "C" {
|
||||
#define GL_FRAMEBUFFER_COMPLETE_EXT 0x8CD5
|
||||
#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT 0x8CD6
|
||||
#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT 0x8CD7
|
||||
#define GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT 0x8CD8
|
||||
#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT 0x8CD9
|
||||
#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT 0x8CDA
|
||||
#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT 0x8CDB
|
||||
@@ -3104,6 +3097,8 @@ extern "C" {
|
||||
|
||||
#ifndef GL_EXT_framebuffer_multisample
|
||||
#define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB
|
||||
#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56
|
||||
#define GL_MAX_SAMPLES_EXT 0x8D57
|
||||
#endif
|
||||
|
||||
#ifndef GL_MESAX_texture_stack
|
||||
@@ -3122,6 +3117,268 @@ extern "C" {
|
||||
#ifndef GL_EXT_gpu_program_parameters
|
||||
#endif
|
||||
|
||||
#ifndef GL_APPLE_flush_buffer_range
|
||||
#define GL_BUFFER_SERIALIZED_MODIFY_APPLE 0x8A12
|
||||
#define GL_BUFFER_FLUSHING_UNMAP_APPLE 0x8A13
|
||||
#endif
|
||||
|
||||
#ifndef GL_NV_gpu_program4
|
||||
#define GL_MIN_PROGRAM_TEXEL_OFFSET_NV 0x8904
|
||||
#define GL_MAX_PROGRAM_TEXEL_OFFSET_NV 0x8905
|
||||
#define GL_PROGRAM_ATTRIB_COMPONENTS_NV 0x8906
|
||||
#define GL_PROGRAM_RESULT_COMPONENTS_NV 0x8907
|
||||
#define GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV 0x8908
|
||||
#define GL_MAX_PROGRAM_RESULT_COMPONENTS_NV 0x8909
|
||||
#define GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV 0x8DA5
|
||||
#define GL_MAX_PROGRAM_GENERIC_RESULTS_NV 0x8DA6
|
||||
#endif
|
||||
|
||||
#ifndef GL_NV_geometry_program4
|
||||
#define GL_LINES_ADJACENCY_EXT 0x000A
|
||||
#define GL_LINE_STRIP_ADJACENCY_EXT 0x000B
|
||||
#define GL_TRIANGLES_ADJACENCY_EXT 0x000C
|
||||
#define GL_TRIANGLE_STRIP_ADJACENCY_EXT 0x000D
|
||||
#define GL_GEOMETRY_PROGRAM_NV 0x8C26
|
||||
#define GL_MAX_PROGRAM_OUTPUT_VERTICES_NV 0x8C27
|
||||
#define GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV 0x8C28
|
||||
#define GL_GEOMETRY_VERTICES_OUT_EXT 0x8DDA
|
||||
#define GL_GEOMETRY_INPUT_TYPE_EXT 0x8DDB
|
||||
#define GL_GEOMETRY_OUTPUT_TYPE_EXT 0x8DDC
|
||||
#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29
|
||||
#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7
|
||||
#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8
|
||||
#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT 0x8DA9
|
||||
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT 0x8CD4
|
||||
#define GL_PROGRAM_POINT_SIZE_EXT 0x8642
|
||||
#endif
|
||||
|
||||
#ifndef GL_EXT_geometry_shader4
|
||||
#define GL_GEOMETRY_SHADER_EXT 0x8DD9
|
||||
/* reuse GL_GEOMETRY_VERTICES_OUT_EXT */
|
||||
/* reuse GL_GEOMETRY_INPUT_TYPE_EXT */
|
||||
/* reuse GL_GEOMETRY_OUTPUT_TYPE_EXT */
|
||||
/* reuse GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT */
|
||||
#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT 0x8DDD
|
||||
#define GL_MAX_VERTEX_VARYING_COMPONENTS_EXT 0x8DDE
|
||||
#define GL_MAX_VARYING_COMPONENTS_EXT 0x8B4B
|
||||
#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF
|
||||
#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0
|
||||
#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1
|
||||
/* reuse GL_LINES_ADJACENCY_EXT */
|
||||
/* reuse GL_LINE_STRIP_ADJACENCY_EXT */
|
||||
/* reuse GL_TRIANGLES_ADJACENCY_EXT */
|
||||
/* reuse GL_TRIANGLE_STRIP_ADJACENCY_EXT */
|
||||
/* reuse GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT */
|
||||
/* reuse GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT */
|
||||
/* reuse GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT */
|
||||
/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT */
|
||||
/* reuse GL_PROGRAM_POINT_SIZE_EXT */
|
||||
#endif
|
||||
|
||||
#ifndef GL_NV_vertex_program4
|
||||
#define GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV 0x88FD
|
||||
#endif
|
||||
|
||||
#ifndef GL_EXT_gpu_shader4
|
||||
#define GL_SAMPLER_1D_ARRAY_EXT 0x8DC0
|
||||
#define GL_SAMPLER_2D_ARRAY_EXT 0x8DC1
|
||||
#define GL_SAMPLER_BUFFER_EXT 0x8DC2
|
||||
#define GL_SAMPLER_1D_ARRAY_SHADOW_EXT 0x8DC3
|
||||
#define GL_SAMPLER_2D_ARRAY_SHADOW_EXT 0x8DC4
|
||||
#define GL_SAMPLER_CUBE_SHADOW_EXT 0x8DC5
|
||||
#define GL_UNSIGNED_INT_VEC2_EXT 0x8DC6
|
||||
#define GL_UNSIGNED_INT_VEC3_EXT 0x8DC7
|
||||
#define GL_UNSIGNED_INT_VEC4_EXT 0x8DC8
|
||||
#define GL_INT_SAMPLER_1D_EXT 0x8DC9
|
||||
#define GL_INT_SAMPLER_2D_EXT 0x8DCA
|
||||
#define GL_INT_SAMPLER_3D_EXT 0x8DCB
|
||||
#define GL_INT_SAMPLER_CUBE_EXT 0x8DCC
|
||||
#define GL_INT_SAMPLER_2D_RECT_EXT 0x8DCD
|
||||
#define GL_INT_SAMPLER_1D_ARRAY_EXT 0x8DCE
|
||||
#define GL_INT_SAMPLER_2D_ARRAY_EXT 0x8DCF
|
||||
#define GL_INT_SAMPLER_BUFFER_EXT 0x8DD0
|
||||
#define GL_UNSIGNED_INT_SAMPLER_1D_EXT 0x8DD1
|
||||
#define GL_UNSIGNED_INT_SAMPLER_2D_EXT 0x8DD2
|
||||
#define GL_UNSIGNED_INT_SAMPLER_3D_EXT 0x8DD3
|
||||
#define GL_UNSIGNED_INT_SAMPLER_CUBE_EXT 0x8DD4
|
||||
#define GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT 0x8DD5
|
||||
#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT 0x8DD6
|
||||
#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT 0x8DD7
|
||||
#define GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT 0x8DD8
|
||||
#endif
|
||||
|
||||
#ifndef GL_EXT_draw_instanced
|
||||
#endif
|
||||
|
||||
#ifndef GL_EXT_packed_float
|
||||
#define GL_R11F_G11F_B10F_EXT 0x8C3A
|
||||
#define GL_UNSIGNED_INT_10F_11F_11F_REV_EXT 0x8C3B
|
||||
#define GL_RGBA_SIGNED_COMPONENTS_EXT 0x8C3C
|
||||
#endif
|
||||
|
||||
#ifndef GL_EXT_texture_array
|
||||
#define GL_TEXTURE_1D_ARRAY_EXT 0x8C18
|
||||
#define GL_PROXY_TEXTURE_1D_ARRAY_EXT 0x8C19
|
||||
#define GL_TEXTURE_2D_ARRAY_EXT 0x8C1A
|
||||
#define GL_PROXY_TEXTURE_2D_ARRAY_EXT 0x8C1B
|
||||
#define GL_TEXTURE_BINDING_1D_ARRAY_EXT 0x8C1C
|
||||
#define GL_TEXTURE_BINDING_2D_ARRAY_EXT 0x8C1D
|
||||
#define GL_MAX_ARRAY_TEXTURE_LAYERS_EXT 0x88FF
|
||||
#define GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT 0x884E
|
||||
/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT */
|
||||
#endif
|
||||
|
||||
#ifndef GL_EXT_texture_buffer_object
|
||||
#define GL_TEXTURE_BUFFER_EXT 0x8C2A
|
||||
#define GL_MAX_TEXTURE_BUFFER_SIZE_EXT 0x8C2B
|
||||
#define GL_TEXTURE_BINDING_BUFFER_EXT 0x8C2C
|
||||
#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT 0x8C2D
|
||||
#define GL_TEXTURE_BUFFER_FORMAT_EXT 0x8C2E
|
||||
#endif
|
||||
|
||||
#ifndef GL_EXT_texture_compression_latc
|
||||
#define GL_COMPRESSED_LUMINANCE_LATC1_EXT 0x8C70
|
||||
#define GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT 0x8C71
|
||||
#define GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT 0x8C72
|
||||
#define GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT 0x8C73
|
||||
#endif
|
||||
|
||||
#ifndef GL_EXT_texture_compression_rgtc
|
||||
#define GL_COMPRESSED_RED_RGTC1_EXT 0x8DBB
|
||||
#define GL_COMPRESSED_SIGNED_RED_RGTC1_EXT 0x8DBC
|
||||
#define GL_COMPRESSED_RED_GREEN_RGTC2_EXT 0x8DBD
|
||||
#define GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT 0x8DBE
|
||||
#endif
|
||||
|
||||
#ifndef GL_EXT_texture_shared_exponent
|
||||
#define GL_RGB9_E5_EXT 0x8C3D
|
||||
#define GL_UNSIGNED_INT_5_9_9_9_REV_EXT 0x8C3E
|
||||
#define GL_TEXTURE_SHARED_SIZE_EXT 0x8C3F
|
||||
#endif
|
||||
|
||||
#ifndef GL_NV_depth_buffer_float
|
||||
#define GL_DEPTH_COMPONENT32F_NV 0x8DAB
|
||||
#define GL_DEPTH32F_STENCIL8_NV 0x8DAC
|
||||
#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV 0x8DAD
|
||||
#define GL_DEPTH_BUFFER_FLOAT_MODE_NV 0x8DAF
|
||||
#endif
|
||||
|
||||
#ifndef GL_NV_fragment_program4
|
||||
#endif
|
||||
|
||||
#ifndef GL_NV_framebuffer_multisample_coverage
|
||||
#define GL_RENDERBUFFER_COVERAGE_SAMPLES_NV 0x8CAB
|
||||
#define GL_RENDERBUFFER_COLOR_SAMPLES_NV 0x8E10
|
||||
#define GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV 0x8E11
|
||||
#define GL_MULTISAMPLE_COVERAGE_MODES_NV 0x8E12
|
||||
#endif
|
||||
|
||||
#ifndef GL_EXT_framebuffer_sRGB
|
||||
#define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9
|
||||
#define GL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x8DBA
|
||||
#endif
|
||||
|
||||
#ifndef GL_NV_geometry_shader4
|
||||
#endif
|
||||
|
||||
#ifndef GL_NV_parameter_buffer_object
|
||||
#define GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV 0x8DA0
|
||||
#define GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV 0x8DA1
|
||||
#define GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV 0x8DA2
|
||||
#define GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV 0x8DA3
|
||||
#define GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV 0x8DA4
|
||||
#endif
|
||||
|
||||
#ifndef GL_EXT_draw_buffers2
|
||||
#endif
|
||||
|
||||
#ifndef GL_NV_transform_feedback
|
||||
#define GL_BACK_PRIMARY_COLOR_NV 0x8C77
|
||||
#define GL_BACK_SECONDARY_COLOR_NV 0x8C78
|
||||
#define GL_TEXTURE_COORD_NV 0x8C79
|
||||
#define GL_CLIP_DISTANCE_NV 0x8C7A
|
||||
#define GL_VERTEX_ID_NV 0x8C7B
|
||||
#define GL_PRIMITIVE_ID_NV 0x8C7C
|
||||
#define GL_GENERIC_ATTRIB_NV 0x8C7D
|
||||
#define GL_TRANSFORM_FEEDBACK_ATTRIBS_NV 0x8C7E
|
||||
#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV 0x8C7F
|
||||
#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV 0x8C80
|
||||
#define GL_ACTIVE_VARYINGS_NV 0x8C81
|
||||
#define GL_ACTIVE_VARYING_MAX_LENGTH_NV 0x8C82
|
||||
#define GL_TRANSFORM_FEEDBACK_VARYINGS_NV 0x8C83
|
||||
#define GL_TRANSFORM_FEEDBACK_BUFFER_START_NV 0x8C84
|
||||
#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV 0x8C85
|
||||
#define GL_TRANSFORM_FEEDBACK_RECORD_NV 0x8C86
|
||||
#define GL_PRIMITIVES_GENERATED_NV 0x8C87
|
||||
#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV 0x8C88
|
||||
#define GL_RASTERIZER_DISCARD_NV 0x8C89
|
||||
#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_ATTRIBS_NV 0x8C8A
|
||||
#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV 0x8C8B
|
||||
#define GL_INTERLEAVED_ATTRIBS_NV 0x8C8C
|
||||
#define GL_SEPARATE_ATTRIBS_NV 0x8C8D
|
||||
#define GL_TRANSFORM_FEEDBACK_BUFFER_NV 0x8C8E
|
||||
#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV 0x8C8F
|
||||
#endif
|
||||
|
||||
#ifndef GL_EXT_bindable_uniform
|
||||
#define GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT 0x8DE2
|
||||
#define GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT 0x8DE3
|
||||
#define GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT 0x8DE4
|
||||
#define GL_MAX_BINDABLE_UNIFORM_SIZE_EXT 0x8DED
|
||||
#define GL_UNIFORM_BUFFER_EXT 0x8DEE
|
||||
#define GL_UNIFORM_BUFFER_BINDING_EXT 0x8DEF
|
||||
#endif
|
||||
|
||||
#ifndef GL_EXT_texture_integer
|
||||
#define GL_RGBA32UI_EXT 0x8D70
|
||||
#define GL_RGB32UI_EXT 0x8D71
|
||||
#define GL_ALPHA32UI_EXT 0x8D72
|
||||
#define GL_INTENSITY32UI_EXT 0x8D73
|
||||
#define GL_LUMINANCE32UI_EXT 0x8D74
|
||||
#define GL_LUMINANCE_ALPHA32UI_EXT 0x8D75
|
||||
#define GL_RGBA16UI_EXT 0x8D76
|
||||
#define GL_RGB16UI_EXT 0x8D77
|
||||
#define GL_ALPHA16UI_EXT 0x8D78
|
||||
#define GL_INTENSITY16UI_EXT 0x8D79
|
||||
#define GL_LUMINANCE16UI_EXT 0x8D7A
|
||||
#define GL_LUMINANCE_ALPHA16UI_EXT 0x8D7B
|
||||
#define GL_RGBA8UI_EXT 0x8D7C
|
||||
#define GL_RGB8UI_EXT 0x8D7D
|
||||
#define GL_ALPHA8UI_EXT 0x8D7E
|
||||
#define GL_INTENSITY8UI_EXT 0x8D7F
|
||||
#define GL_LUMINANCE8UI_EXT 0x8D80
|
||||
#define GL_LUMINANCE_ALPHA8UI_EXT 0x8D81
|
||||
#define GL_RGBA32I_EXT 0x8D82
|
||||
#define GL_RGB32I_EXT 0x8D83
|
||||
#define GL_ALPHA32I_EXT 0x8D84
|
||||
#define GL_INTENSITY32I_EXT 0x8D85
|
||||
#define GL_LUMINANCE32I_EXT 0x8D86
|
||||
#define GL_LUMINANCE_ALPHA32I_EXT 0x8D87
|
||||
#define GL_RGBA16I_EXT 0x8D88
|
||||
#define GL_RGB16I_EXT 0x8D89
|
||||
#define GL_ALPHA16I_EXT 0x8D8A
|
||||
#define GL_INTENSITY16I_EXT 0x8D8B
|
||||
#define GL_LUMINANCE16I_EXT 0x8D8C
|
||||
#define GL_LUMINANCE_ALPHA16I_EXT 0x8D8D
|
||||
#define GL_RGBA8I_EXT 0x8D8E
|
||||
#define GL_RGB8I_EXT 0x8D8F
|
||||
#define GL_ALPHA8I_EXT 0x8D90
|
||||
#define GL_INTENSITY8I_EXT 0x8D91
|
||||
#define GL_LUMINANCE8I_EXT 0x8D92
|
||||
#define GL_LUMINANCE_ALPHA8I_EXT 0x8D93
|
||||
#define GL_RED_INTEGER_EXT 0x8D94
|
||||
#define GL_GREEN_INTEGER_EXT 0x8D95
|
||||
#define GL_BLUE_INTEGER_EXT 0x8D96
|
||||
#define GL_ALPHA_INTEGER_EXT 0x8D97
|
||||
#define GL_RGB_INTEGER_EXT 0x8D98
|
||||
#define GL_RGBA_INTEGER_EXT 0x8D99
|
||||
#define GL_BGR_INTEGER_EXT 0x8D9A
|
||||
#define GL_BGRA_INTEGER_EXT 0x8D9B
|
||||
#define GL_LUMINANCE_INTEGER_EXT 0x8D9C
|
||||
#define GL_LUMINANCE_ALPHA_INTEGER_EXT 0x8D9D
|
||||
#define GL_RGBA_INTEGER_MODE_EXT 0x8D9E
|
||||
#endif
|
||||
|
||||
|
||||
/*************************************************************/
|
||||
|
||||
@@ -3162,7 +3419,7 @@ typedef unsigned short GLhalfNV;
|
||||
/* This code block is duplicated in glext.h, so must be protected */
|
||||
#define GLEXT_64_TYPES_DEFINED
|
||||
/* Define int32_t, int64_t, and uint64_t types for UST/MSC */
|
||||
/* (as used in the GLX_OML_sync_control extension). */
|
||||
/* (as used in the GL_EXT_timer_query extension). */
|
||||
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
|
||||
#include <inttypes.h>
|
||||
#elif defined(__sun__)
|
||||
@@ -3184,12 +3441,12 @@ typedef unsigned long long int uint64_t;
|
||||
typedef long int int32_t;
|
||||
typedef long long int int64_t;
|
||||
typedef unsigned long long int uint64_t;
|
||||
#elif defined(WIN32) && defined(_MSC_VER)
|
||||
typedef long int int32_t;
|
||||
#elif defined(_WIN32) && defined(__GNUC__)
|
||||
#include <stdint.h>
|
||||
#elif defined(_WIN32)
|
||||
typedef __int32 int32_t;
|
||||
typedef __int64 int64_t;
|
||||
typedef unsigned __int64 uint64_t;
|
||||
#elif defined(WIN32) && defined(__GNUC__)
|
||||
#include <stdint.h>
|
||||
#else
|
||||
#include <inttypes.h> /* Fallback option */
|
||||
#endif
|
||||
@@ -6687,6 +6944,314 @@ typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERS4FVEXTPROC) (GLenum target, GLu
|
||||
typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat *params);
|
||||
#endif
|
||||
|
||||
#ifndef GL_APPLE_flush_buffer_range
|
||||
#define GL_APPLE_flush_buffer_range 1
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glBufferParameteriAPPLE (GLenum, GLenum, GLint);
|
||||
GLAPI void APIENTRY glFlushMappedBufferRangeAPPLE (GLenum, GLintptr, GLsizeiptr);
|
||||
#endif /* GL_GLEXT_PROTOTYPES */
|
||||
typedef void (APIENTRYP PFNGLBUFFERPARAMETERIAPPLEPROC) (GLenum target, GLenum pname, GLint param);
|
||||
typedef void (APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC) (GLenum target, GLintptr offset, GLsizeiptr size);
|
||||
#endif
|
||||
|
||||
#ifndef GL_NV_gpu_program4
|
||||
#define GL_NV_gpu_program4 1
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glProgramLocalParameterI4iNV (GLenum, GLuint, GLint, GLint, GLint, GLint);
|
||||
GLAPI void APIENTRY glProgramLocalParameterI4ivNV (GLenum, GLuint, const GLint *);
|
||||
GLAPI void APIENTRY glProgramLocalParametersI4ivNV (GLenum, GLuint, GLsizei, const GLint *);
|
||||
GLAPI void APIENTRY glProgramLocalParameterI4uiNV (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint);
|
||||
GLAPI void APIENTRY glProgramLocalParameterI4uivNV (GLenum, GLuint, const GLuint *);
|
||||
GLAPI void APIENTRY glProgramLocalParametersI4uivNV (GLenum, GLuint, GLsizei, const GLuint *);
|
||||
GLAPI void APIENTRY glProgramEnvParameterI4iNV (GLenum, GLuint, GLint, GLint, GLint, GLint);
|
||||
GLAPI void APIENTRY glProgramEnvParameterI4ivNV (GLenum, GLuint, const GLint *);
|
||||
GLAPI void APIENTRY glProgramEnvParametersI4ivNV (GLenum, GLuint, GLsizei, const GLint *);
|
||||
GLAPI void APIENTRY glProgramEnvParameterI4uiNV (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint);
|
||||
GLAPI void APIENTRY glProgramEnvParameterI4uivNV (GLenum, GLuint, const GLuint *);
|
||||
GLAPI void APIENTRY glProgramEnvParametersI4uivNV (GLenum, GLuint, GLsizei, const GLuint *);
|
||||
GLAPI void APIENTRY glGetProgramLocalParameterIivNV (GLenum, GLuint, GLint *);
|
||||
GLAPI void APIENTRY glGetProgramLocalParameterIuivNV (GLenum, GLuint, GLuint *);
|
||||
GLAPI void APIENTRY glGetProgramEnvParameterIivNV (GLenum, GLuint, GLint *);
|
||||
GLAPI void APIENTRY glGetProgramEnvParameterIuivNV (GLenum, GLuint, GLuint *);
|
||||
#endif /* GL_GLEXT_PROTOTYPES */
|
||||
typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w);
|
||||
typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params);
|
||||
typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params);
|
||||
typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
|
||||
typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params);
|
||||
typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params);
|
||||
typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w);
|
||||
typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params);
|
||||
typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params);
|
||||
typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
|
||||
typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params);
|
||||
typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params);
|
||||
typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERIIVNVPROC) (GLenum target, GLuint index, GLint *params);
|
||||
typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERIUIVNVPROC) (GLenum target, GLuint index, GLuint *params);
|
||||
typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERIIVNVPROC) (GLenum target, GLuint index, GLint *params);
|
||||
typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERIUIVNVPROC) (GLenum target, GLuint index, GLuint *params);
|
||||
#endif
|
||||
|
||||
#ifndef GL_NV_geometry_program4
|
||||
#define GL_NV_geometry_program4 1
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glProgramVertexLimitNV (GLenum, GLint);
|
||||
GLAPI void APIENTRY glFramebufferTextureEXT (GLenum, GLenum, GLuint, GLint);
|
||||
GLAPI void APIENTRY glFramebufferTextureLayerEXT (GLenum, GLenum, GLuint, GLint, GLint);
|
||||
GLAPI void APIENTRY glFramebufferTextureFaceEXT (GLenum, GLenum, GLuint, GLint, GLenum);
|
||||
#endif /* GL_GLEXT_PROTOTYPES */
|
||||
typedef void (APIENTRYP PFNGLPROGRAMVERTEXLIMITNVPROC) (GLenum target, GLint limit);
|
||||
typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level);
|
||||
typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
|
||||
typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face);
|
||||
#endif
|
||||
|
||||
#ifndef GL_EXT_geometry_shader4
|
||||
#define GL_EXT_geometry_shader4 1
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glProgramParameteriEXT (GLuint, GLenum, GLint);
|
||||
#endif /* GL_GLEXT_PROTOTYPES */
|
||||
typedef void (APIENTRYP PFNGLPROGRAMPARAMETERIEXTPROC) (GLuint program, GLenum pname, GLint value);
|
||||
#endif
|
||||
|
||||
#ifndef GL_NV_vertex_program4
|
||||
#define GL_NV_vertex_program4 1
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glVertexAttribI1iEXT (GLuint, GLint);
|
||||
GLAPI void APIENTRY glVertexAttribI2iEXT (GLuint, GLint, GLint);
|
||||
GLAPI void APIENTRY glVertexAttribI3iEXT (GLuint, GLint, GLint, GLint);
|
||||
GLAPI void APIENTRY glVertexAttribI4iEXT (GLuint, GLint, GLint, GLint, GLint);
|
||||
GLAPI void APIENTRY glVertexAttribI1uiEXT (GLuint, GLuint);
|
||||
GLAPI void APIENTRY glVertexAttribI2uiEXT (GLuint, GLuint, GLuint);
|
||||
GLAPI void APIENTRY glVertexAttribI3uiEXT (GLuint, GLuint, GLuint, GLuint);
|
||||
GLAPI void APIENTRY glVertexAttribI4uiEXT (GLuint, GLuint, GLuint, GLuint, GLuint);
|
||||
GLAPI void APIENTRY glVertexAttribI1ivEXT (GLuint, const GLint *);
|
||||
GLAPI void APIENTRY glVertexAttribI2ivEXT (GLuint, const GLint *);
|
||||
GLAPI void APIENTRY glVertexAttribI3ivEXT (GLuint, const GLint *);
|
||||
GLAPI void APIENTRY glVertexAttribI4ivEXT (GLuint, const GLint *);
|
||||
GLAPI void APIENTRY glVertexAttribI1uivEXT (GLuint, const GLuint *);
|
||||
GLAPI void APIENTRY glVertexAttribI2uivEXT (GLuint, const GLuint *);
|
||||
GLAPI void APIENTRY glVertexAttribI3uivEXT (GLuint, const GLuint *);
|
||||
GLAPI void APIENTRY glVertexAttribI4uivEXT (GLuint, const GLuint *);
|
||||
GLAPI void APIENTRY glVertexAttribI4bvEXT (GLuint, const GLbyte *);
|
||||
GLAPI void APIENTRY glVertexAttribI4svEXT (GLuint, const GLshort *);
|
||||
GLAPI void APIENTRY glVertexAttribI4ubvEXT (GLuint, const GLubyte *);
|
||||
GLAPI void APIENTRY glVertexAttribI4usvEXT (GLuint, const GLushort *);
|
||||
GLAPI void APIENTRY glVertexAttribIPointerEXT (GLuint, GLint, GLenum, GLsizei, const GLvoid *);
|
||||
GLAPI void APIENTRY glGetVertexAttribIivEXT (GLuint, GLenum, GLint *);
|
||||
GLAPI void APIENTRY glGetVertexAttribIuivEXT (GLuint, GLenum, GLuint *);
|
||||
#endif /* GL_GLEXT_PROTOTYPES */
|
||||
typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IEXTPROC) (GLuint index, GLint x);
|
||||
typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IEXTPROC) (GLuint index, GLint x, GLint y);
|
||||
typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IEXTPROC) (GLuint index, GLint x, GLint y, GLint z);
|
||||
typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IEXTPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w);
|
||||
typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIEXTPROC) (GLuint index, GLuint x);
|
||||
typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIEXTPROC) (GLuint index, GLuint x, GLuint y);
|
||||
typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z);
|
||||
typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
|
||||
typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IVEXTPROC) (GLuint index, const GLint *v);
|
||||
typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IVEXTPROC) (GLuint index, const GLint *v);
|
||||
typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IVEXTPROC) (GLuint index, const GLint *v);
|
||||
typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IVEXTPROC) (GLuint index, const GLint *v);
|
||||
typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIVEXTPROC) (GLuint index, const GLuint *v);
|
||||
typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIVEXTPROC) (GLuint index, const GLuint *v);
|
||||
typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIVEXTPROC) (GLuint index, const GLuint *v);
|
||||
typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIVEXTPROC) (GLuint index, const GLuint *v);
|
||||
typedef void (APIENTRYP PFNGLVERTEXATTRIBI4BVEXTPROC) (GLuint index, const GLbyte *v);
|
||||
typedef void (APIENTRYP PFNGLVERTEXATTRIBI4SVEXTPROC) (GLuint index, const GLshort *v);
|
||||
typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UBVEXTPROC) (GLuint index, const GLubyte *v);
|
||||
typedef void (APIENTRYP PFNGLVERTEXATTRIBI4USVEXTPROC) (GLuint index, const GLushort *v);
|
||||
typedef void (APIENTRYP PFNGLVERTEXATTRIBIPOINTEREXTPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
|
||||
typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIIVEXTPROC) (GLuint index, GLenum pname, GLint *params);
|
||||
typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIUIVEXTPROC) (GLuint index, GLenum pname, GLuint *params);
|
||||
#endif
|
||||
|
||||
#ifndef GL_EXT_gpu_shader4
|
||||
#define GL_EXT_gpu_shader4 1
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glGetUniformuivEXT (GLuint, GLint, GLuint *);
|
||||
GLAPI void APIENTRY glBindFragDataLocationEXT (GLuint, GLuint, const GLchar *);
|
||||
GLAPI GLint APIENTRY glGetFragDataLocationEXT (GLuint, const GLchar *);
|
||||
GLAPI void APIENTRY glUniform1uiEXT (GLint, GLuint);
|
||||
GLAPI void APIENTRY glUniform2uiEXT (GLint, GLuint, GLuint);
|
||||
GLAPI void APIENTRY glUniform3uiEXT (GLint, GLuint, GLuint, GLuint);
|
||||
GLAPI void APIENTRY glUniform4uiEXT (GLint, GLuint, GLuint, GLuint, GLuint);
|
||||
GLAPI void APIENTRY glUniform1uivEXT (GLint, GLsizei, const GLuint *);
|
||||
GLAPI void APIENTRY glUniform2uivEXT (GLint, GLsizei, const GLuint *);
|
||||
GLAPI void APIENTRY glUniform3uivEXT (GLint, GLsizei, const GLuint *);
|
||||
GLAPI void APIENTRY glUniform4uivEXT (GLint, GLsizei, const GLuint *);
|
||||
#endif /* GL_GLEXT_PROTOTYPES */
|
||||
typedef void (APIENTRYP PFNGLGETUNIFORMUIVEXTPROC) (GLuint program, GLint location, GLuint *params);
|
||||
typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONEXTPROC) (GLuint program, GLuint color, const GLchar *name);
|
||||
typedef GLint (APIENTRYP PFNGLGETFRAGDATALOCATIONEXTPROC) (GLuint program, const GLchar *name);
|
||||
typedef void (APIENTRYP PFNGLUNIFORM1UIEXTPROC) (GLint location, GLuint v0);
|
||||
typedef void (APIENTRYP PFNGLUNIFORM2UIEXTPROC) (GLint location, GLuint v0, GLuint v1);
|
||||
typedef void (APIENTRYP PFNGLUNIFORM3UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2);
|
||||
typedef void (APIENTRYP PFNGLUNIFORM4UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
|
||||
typedef void (APIENTRYP PFNGLUNIFORM1UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value);
|
||||
typedef void (APIENTRYP PFNGLUNIFORM2UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value);
|
||||
typedef void (APIENTRYP PFNGLUNIFORM3UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value);
|
||||
typedef void (APIENTRYP PFNGLUNIFORM4UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value);
|
||||
#endif
|
||||
|
||||
#ifndef GL_EXT_draw_instanced
|
||||
#define GL_EXT_draw_instanced 1
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glDrawArraysInstancedEXT (GLenum, GLint, GLsizei, GLsizei);
|
||||
GLAPI void APIENTRY glDrawElementsInstancedEXT (GLenum, GLsizei, GLenum, const GLvoid *, GLsizei);
|
||||
#endif /* GL_GLEXT_PROTOTYPES */
|
||||
typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDEXTPROC) (GLenum mode, GLint start, GLsizei count, GLsizei primcount);
|
||||
typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDEXTPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount);
|
||||
#endif
|
||||
|
||||
#ifndef GL_EXT_packed_float
|
||||
#define GL_EXT_packed_float 1
|
||||
#endif
|
||||
|
||||
#ifndef GL_EXT_texture_array
|
||||
#define GL_EXT_texture_array 1
|
||||
#endif
|
||||
|
||||
#ifndef GL_EXT_texture_buffer_object
|
||||
#define GL_EXT_texture_buffer_object 1
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glTexBufferEXT (GLenum, GLenum, GLuint);
|
||||
#endif /* GL_GLEXT_PROTOTYPES */
|
||||
typedef void (APIENTRYP PFNGLTEXBUFFEREXTPROC) (GLenum target, GLenum internalformat, GLuint buffer);
|
||||
#endif
|
||||
|
||||
#ifndef GL_EXT_texture_compression_latc
|
||||
#define GL_EXT_texture_compression_latc 1
|
||||
#endif
|
||||
|
||||
#ifndef GL_EXT_texture_compression_rgtc
|
||||
#define GL_EXT_texture_compression_rgtc 1
|
||||
#endif
|
||||
|
||||
#ifndef GL_EXT_texture_shared_exponent
|
||||
#define GL_EXT_texture_shared_exponent 1
|
||||
#endif
|
||||
|
||||
#ifndef GL_NV_depth_buffer_float
|
||||
#define GL_NV_depth_buffer_float 1
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glDepthRangedNV (GLdouble, GLdouble);
|
||||
GLAPI void APIENTRY glClearDepthdNV (GLdouble);
|
||||
GLAPI void APIENTRY glDepthBoundsdNV (GLdouble, GLdouble);
|
||||
#endif /* GL_GLEXT_PROTOTYPES */
|
||||
typedef void (APIENTRYP PFNGLDEPTHRANGEDNVPROC) (GLdouble zNear, GLdouble zFar);
|
||||
typedef void (APIENTRYP PFNGLCLEARDEPTHDNVPROC) (GLdouble depth);
|
||||
typedef void (APIENTRYP PFNGLDEPTHBOUNDSDNVPROC) (GLdouble zmin, GLdouble zmax);
|
||||
#endif
|
||||
|
||||
#ifndef GL_NV_fragment_program4
|
||||
#define GL_NV_fragment_program4 1
|
||||
#endif
|
||||
|
||||
#ifndef GL_NV_framebuffer_multisample_coverage
|
||||
#define GL_NV_framebuffer_multisample_coverage 1
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glRenderbufferStorageMultisampleCoverageNV (GLenum, GLsizei, GLsizei, GLenum, GLsizei, GLsizei);
|
||||
#endif /* GL_GLEXT_PROTOTYPES */
|
||||
typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height);
|
||||
#endif
|
||||
|
||||
#ifndef GL_EXT_framebuffer_sRGB
|
||||
#define GL_EXT_framebuffer_sRGB 1
|
||||
#endif
|
||||
|
||||
#ifndef GL_NV_geometry_shader4
|
||||
#define GL_NV_geometry_shader4 1
|
||||
#endif
|
||||
|
||||
#ifndef GL_NV_parameter_buffer_object
|
||||
#define GL_NV_parameter_buffer_object 1
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glProgramBufferParametersfvNV (GLenum, GLuint, GLuint, GLsizei, const GLfloat *);
|
||||
GLAPI void APIENTRY glProgramBufferParametersIivNV (GLenum, GLuint, GLuint, GLsizei, const GLint *);
|
||||
GLAPI void APIENTRY glProgramBufferParametersIuivNV (GLenum, GLuint, GLuint, GLsizei, const GLuint *);
|
||||
#endif /* GL_GLEXT_PROTOTYPES */
|
||||
typedef void (APIENTRYP PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLfloat *params);
|
||||
typedef void (APIENTRYP PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLint *params);
|
||||
typedef void (APIENTRYP PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLuint *params);
|
||||
#endif
|
||||
|
||||
#ifndef GL_EXT_draw_buffers2
|
||||
#define GL_EXT_draw_buffers2 1
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glColorMaskIndexedEXT (GLuint, GLboolean, GLboolean, GLboolean, GLboolean);
|
||||
GLAPI void APIENTRY glGetBooleanIndexedvEXT (GLenum, GLuint, GLboolean *);
|
||||
GLAPI void APIENTRY glGetIntegerIndexedvEXT (GLenum, GLuint, GLint *);
|
||||
GLAPI void APIENTRY glEnableIndexedEXT (GLenum, GLuint);
|
||||
GLAPI void APIENTRY glDisableIndexedEXT (GLenum, GLuint);
|
||||
GLAPI GLboolean APIENTRY glIsEnabledIndexedEXT (GLenum, GLuint);
|
||||
#endif /* GL_GLEXT_PROTOTYPES */
|
||||
typedef void (APIENTRYP PFNGLCOLORMASKINDEXEDEXTPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
|
||||
typedef void (APIENTRYP PFNGLGETBOOLEANINDEXEDVEXTPROC) (GLenum target, GLuint index, GLboolean *data);
|
||||
typedef void (APIENTRYP PFNGLGETINTEGERINDEXEDVEXTPROC) (GLenum target, GLuint index, GLint *data);
|
||||
typedef void (APIENTRYP PFNGLENABLEINDEXEDEXTPROC) (GLenum target, GLuint index);
|
||||
typedef void (APIENTRYP PFNGLDISABLEINDEXEDEXTPROC) (GLenum target, GLuint index);
|
||||
typedef GLboolean (APIENTRYP PFNGLISENABLEDINDEXEDEXTPROC) (GLenum target, GLuint index);
|
||||
#endif
|
||||
|
||||
#ifndef GL_NV_transform_feedback
|
||||
#define GL_NV_transform_feedback 1
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glBeginTransformFeedbackNV (GLenum);
|
||||
GLAPI void APIENTRY glEndTransformFeedbackNV (void);
|
||||
GLAPI void APIENTRY glTransformFeedbackAttribsNV (GLuint, const GLint *, GLenum);
|
||||
GLAPI void APIENTRY glBindBufferRangeNV (GLenum, GLuint, GLuint, GLintptr, GLsizeiptr);
|
||||
GLAPI void APIENTRY glBindBufferOffsetNV (GLenum, GLuint, GLuint, GLintptr);
|
||||
GLAPI void APIENTRY glBindBufferBaseNV (GLenum, GLuint, GLuint);
|
||||
GLAPI void APIENTRY glTransformFeedbackVaryingsNV (GLuint, GLsizei, const GLint *, GLenum);
|
||||
GLAPI void APIENTRY glActiveVaryingNV (GLuint, const GLchar *);
|
||||
GLAPI GLint APIENTRY glGetVaryingLocationNV (GLuint, const GLchar *);
|
||||
GLAPI void APIENTRY glGetActiveVaryingNV (GLuint, GLuint, GLsizei, GLsizei *, GLsizei *, GLenum *, GLchar *);
|
||||
GLAPI void APIENTRY glGetTransformFeedbackVaryingNV (GLuint, GLuint, GLint *);
|
||||
#endif /* GL_GLEXT_PROTOTYPES */
|
||||
typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKNVPROC) (GLenum primitiveMode);
|
||||
typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKNVPROC) (void);
|
||||
typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC) (GLuint count, const GLint *attribs, GLenum bufferMode);
|
||||
typedef void (APIENTRYP PFNGLBINDBUFFERRANGENVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
|
||||
typedef void (APIENTRYP PFNGLBINDBUFFEROFFSETNVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset);
|
||||
typedef void (APIENTRYP PFNGLBINDBUFFERBASENVPROC) (GLenum target, GLuint index, GLuint buffer);
|
||||
typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC) (GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode);
|
||||
typedef void (APIENTRYP PFNGLACTIVEVARYINGNVPROC) (GLuint program, const GLchar *name);
|
||||
typedef GLint (APIENTRYP PFNGLGETVARYINGLOCATIONNVPROC) (GLuint program, const GLchar *name);
|
||||
typedef void (APIENTRYP PFNGLGETACTIVEVARYINGNVPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
|
||||
typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC) (GLuint program, GLuint index, GLint *location);
|
||||
#endif
|
||||
|
||||
#ifndef GL_EXT_bindable_uniform
|
||||
#define GL_EXT_bindable_uniform 1
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glUniformBufferEXT (GLuint, GLint, GLuint);
|
||||
GLAPI GLint APIENTRY glGetUniformBufferSizeEXT (GLuint, GLint);
|
||||
GLAPI GLintptr APIENTRY glGetUniformOffsetEXT (GLuint, GLint);
|
||||
#endif /* GL_GLEXT_PROTOTYPES */
|
||||
typedef void (APIENTRYP PFNGLUNIFORMBUFFEREXTPROC) (GLuint program, GLint location, GLuint buffer);
|
||||
typedef GLint (APIENTRYP PFNGLGETUNIFORMBUFFERSIZEEXTPROC) (GLuint program, GLint location);
|
||||
typedef GLintptr (APIENTRYP PFNGLGETUNIFORMOFFSETEXTPROC) (GLuint program, GLint location);
|
||||
#endif
|
||||
|
||||
#ifndef GL_EXT_texture_integer
|
||||
#define GL_EXT_texture_integer 1
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glTexParameterIivEXT (GLenum, GLenum, const GLint *);
|
||||
GLAPI void APIENTRY glTexParameterIuivEXT (GLenum, GLenum, const GLuint *);
|
||||
GLAPI void APIENTRY glGetTexParameterIivEXT (GLenum, GLenum, GLint *);
|
||||
GLAPI void APIENTRY glGetTexParameterIuivEXT (GLenum, GLenum, GLuint *);
|
||||
GLAPI void APIENTRY glClearColorIiEXT (GLint, GLint, GLint, GLint);
|
||||
GLAPI void APIENTRY glClearColorIuiEXT (GLuint, GLuint, GLuint, GLuint);
|
||||
#endif /* GL_GLEXT_PROTOTYPES */
|
||||
typedef void (APIENTRYP PFNGLTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, const GLint *params);
|
||||
typedef void (APIENTRYP PFNGLTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, const GLuint *params);
|
||||
typedef void (APIENTRYP PFNGLGETTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
|
||||
typedef void (APIENTRYP PFNGLGETTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, GLuint *params);
|
||||
typedef void (APIENTRYP PFNGLCLEARCOLORIIEXTPROC) (GLint red, GLint green, GLint blue, GLint alpha);
|
||||
typedef void (APIENTRYP PFNGLCLEARCOLORIUIEXTPROC) (GLuint red, GLuint green, GLuint blue, GLuint alpha);
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -6,32 +6,26 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** License Applicability. Except to the extent portions of this file are
|
||||
** made subject to an alternative license as permitted in the SGI Free
|
||||
** Software License B, Version 1.1 (the "License"), the contents of this
|
||||
** file are subject only to the provisions of the License. You may not use
|
||||
** this file except in compliance with the License. You may obtain a copy
|
||||
** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600
|
||||
** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at:
|
||||
** Copyright (c) 2007 The Khronos Group Inc.
|
||||
**
|
||||
** http://oss.sgi.com/projects/FreeB
|
||||
** Permission is hereby granted, free of charge, to any person obtaining a
|
||||
** copy of this software and/or associated documentation files (the
|
||||
** "Materials"), to deal in the Materials without restriction, including
|
||||
** without limitation the rights to use, copy, modify, merge, publish,
|
||||
** distribute, sublicense, and/or sell copies of the Materials, and to
|
||||
** permit persons to whom the Materials are furnished to do so, subject to
|
||||
** the following conditions:
|
||||
**
|
||||
** Note that, as provided in the License, the Software is distributed on an
|
||||
** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS
|
||||
** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND
|
||||
** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A
|
||||
** PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
|
||||
** The above copyright notice and this permission notice shall be included
|
||||
** in all copies or substantial portions of the Materials.
|
||||
**
|
||||
** Original Code. The Original Code is: OpenGL Sample Implementation,
|
||||
** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics,
|
||||
** Inc. The Original Code is Copyright (c) 1991-2004 Silicon Graphics, Inc.
|
||||
** Copyright in any portions created by third parties is as indicated
|
||||
** elsewhere herein. All Rights Reserved.
|
||||
**
|
||||
** Additional Notice Provisions: This software was created using the
|
||||
** OpenGL(R) version 1.2.1 Sample Implementation published by SGI, but has
|
||||
** not been independently verified as being compliant with the OpenGL(R)
|
||||
** version 1.2.1 Specification.
|
||||
** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
||||
*/
|
||||
|
||||
#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__)
|
||||
@@ -52,9 +46,9 @@ extern "C" {
|
||||
/*************************************************************/
|
||||
|
||||
/* Header file version number, required by OpenGL ABI for Linux */
|
||||
/* glxext.h last updated 2006/08/30 */
|
||||
/* glxext.h last updated 2007/02/13 */
|
||||
/* Current version at http://www.opengl.org/registry/ */
|
||||
#define GLX_GLXEXT_VERSION 14
|
||||
#define GLX_GLXEXT_VERSION 18
|
||||
|
||||
#ifndef GLX_VERSION_1_3
|
||||
#define GLX_WINDOW_BIT 0x00000001
|
||||
@@ -307,6 +301,51 @@ extern "C" {
|
||||
#ifndef GLX_MESA_agp_offset
|
||||
#endif
|
||||
|
||||
#ifndef GLX_EXT_fbconfig_packed_float
|
||||
#define GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT 0x20B1
|
||||
#define GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT 0x00000008
|
||||
#endif
|
||||
|
||||
#ifndef GLX_EXT_framebuffer_sRGB
|
||||
#define GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20B2
|
||||
#endif
|
||||
|
||||
#ifndef GLX_EXT_texture_from_pixmap
|
||||
#define GLX_TEXTURE_1D_BIT_EXT 0x00000001
|
||||
#define GLX_TEXTURE_2D_BIT_EXT 0x00000002
|
||||
#define GLX_TEXTURE_RECTANGLE_BIT_EXT 0x00000004
|
||||
#define GLX_BIND_TO_TEXTURE_RGB_EXT 0x20D0
|
||||
#define GLX_BIND_TO_TEXTURE_RGBA_EXT 0x20D1
|
||||
#define GLX_BIND_TO_MIPMAP_TEXTURE_EXT 0x20D2
|
||||
#define GLX_BIND_TO_TEXTURE_TARGETS_EXT 0x20D3
|
||||
#define GLX_Y_INVERTED_EXT 0x20D4
|
||||
#define GLX_TEXTURE_FORMAT_EXT 0x20D5
|
||||
#define GLX_TEXTURE_TARGET_EXT 0x20D6
|
||||
#define GLX_MIPMAP_TEXTURE_EXT 0x20D7
|
||||
#define GLX_TEXTURE_FORMAT_NONE_EXT 0x20D8
|
||||
#define GLX_TEXTURE_FORMAT_RGB_EXT 0x20D9
|
||||
#define GLX_TEXTURE_FORMAT_RGBA_EXT 0x20DA
|
||||
#define GLX_TEXTURE_1D_EXT 0x20DB
|
||||
#define GLX_TEXTURE_2D_EXT 0x20DC
|
||||
#define GLX_TEXTURE_RECTANGLE_EXT 0x20DD
|
||||
#define GLX_FRONT_LEFT_EXT 0x20DE
|
||||
#define GLX_FRONT_RIGHT_EXT 0x20DF
|
||||
#define GLX_BACK_LEFT_EXT 0x20E0
|
||||
#define GLX_BACK_RIGHT_EXT 0x20E1
|
||||
#define GLX_FRONT_EXT GLX_FRONT_LEFT_EXT
|
||||
#define GLX_BACK_EXT GLX_BACK_LEFT_EXT
|
||||
#define GLX_AUX0_EXT 0x20E2
|
||||
#define GLX_AUX1_EXT 0x20E3
|
||||
#define GLX_AUX2_EXT 0x20E4
|
||||
#define GLX_AUX3_EXT 0x20E5
|
||||
#define GLX_AUX4_EXT 0x20E6
|
||||
#define GLX_AUX5_EXT 0x20E7
|
||||
#define GLX_AUX6_EXT 0x20E8
|
||||
#define GLX_AUX7_EXT 0x20E9
|
||||
#define GLX_AUX8_EXT 0x20EA
|
||||
#define GLX_AUX9_EXT 0x20EB
|
||||
#endif
|
||||
|
||||
|
||||
/*************************************************************/
|
||||
|
||||
@@ -366,8 +405,12 @@ typedef unsigned long long int uint64_t;
|
||||
typedef long int int32_t;
|
||||
typedef long long int int64_t;
|
||||
typedef unsigned long long int uint64_t;
|
||||
#elif defined(WIN32) && defined(__GNUC__)
|
||||
#elif defined(_WIN32) && defined(__GNUC__)
|
||||
#include <stdint.h>
|
||||
#elif defined(_WIN32)
|
||||
typedef __int32 int32_t;
|
||||
typedef __int64 int64_t;
|
||||
typedef unsigned __int64 uint64_t;
|
||||
#else
|
||||
#include <inttypes.h> /* Fallback option */
|
||||
#endif
|
||||
@@ -716,6 +759,24 @@ extern unsigned int glXGetAGPOffsetMESA (const void *);
|
||||
typedef unsigned int ( * PFNGLXGETAGPOFFSETMESAPROC) (const void *pointer);
|
||||
#endif
|
||||
|
||||
#ifndef GLX_EXT_fbconfig_packed_float
|
||||
#define GLX_EXT_fbconfig_packed_float 1
|
||||
#endif
|
||||
|
||||
#ifndef GLX_EXT_framebuffer_sRGB
|
||||
#define GLX_EXT_framebuffer_sRGB 1
|
||||
#endif
|
||||
|
||||
#ifndef GLX_EXT_texture_from_pixmap
|
||||
#define GLX_EXT_texture_from_pixmap 1
|
||||
#ifdef GLX_GLXEXT_PROTOTYPES
|
||||
extern void glXBindTexImageEXT (Display *, GLXDrawable, int, const int *);
|
||||
extern void glXReleaseTexImageEXT (Display *, GLXDrawable, int);
|
||||
#endif /* GLX_GLXEXT_PROTOTYPES */
|
||||
typedef void ( * PFNGLXBINDTEXIMAGEEXTPROC) (Display *dpy, GLXDrawable drawable, int buffer, const int *attrib_list);
|
||||
typedef void ( * PFNGLXRELEASETEXIMAGEEXTPROC) (Display *dpy, GLXDrawable drawable, int buffer);
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -237,6 +237,26 @@ struct __DRIinterfaceMethodsRec {
|
||||
GLboolean (*getMSCRate)(__DRInativeDisplay * dpy, __DRIid drawable,
|
||||
int32_t * numerator, int32_t * denominator);
|
||||
/*@}*/
|
||||
|
||||
/**
|
||||
* Reports areas of the given drawable which have been modified by the
|
||||
* driver.
|
||||
*
|
||||
* \param drawable which the drawing was done to.
|
||||
* \param rects rectangles affected, with the drawable origin as the
|
||||
* origin.
|
||||
* \param x X offset of the drawable within the screen (used in the
|
||||
* front_buffer case)
|
||||
* \param y Y offset of the drawable within the screen.
|
||||
* \param front_buffer boolean flag for whether the drawing to the
|
||||
* drawable was actually done directly to the front buffer (instead
|
||||
* of backing storage, for example)
|
||||
*/
|
||||
void (*reportDamage)(__DRInativeDisplay * dpy, int screen,
|
||||
__DRIid drawable,
|
||||
int x, int y,
|
||||
drm_clip_rect_t *rects, int num_rects,
|
||||
int front_buffer);
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -189,259 +189,6 @@ typedef struct __GLcontextModesRec {
|
||||
|
||||
/************************************************************************/
|
||||
|
||||
/*
|
||||
** Structure used for allocating and freeing drawable private memory.
|
||||
** (like software buffers, for example).
|
||||
**
|
||||
** The memory allocation routines are provided by the surrounding
|
||||
** "operating system" code, and they are to be used for allocating
|
||||
** software buffers and things which are associated with the drawable,
|
||||
** and used by any context which draws to that drawable. There are
|
||||
** separate memory allocation functions for drawables and contexts
|
||||
** since drawables and contexts can be created and destroyed independently
|
||||
** of one another, and the "operating system" may want to use separate
|
||||
** allocation arenas for each.
|
||||
**
|
||||
** The freePrivate function is filled in by the core routines when they
|
||||
** allocates software buffers, and stick them in "private". The freePrivate
|
||||
** function will destroy anything allocated to this drawable (to be called
|
||||
** when the drawable is destroyed).
|
||||
*/
|
||||
typedef struct __GLdrawableRegionRec __GLdrawableRegion;
|
||||
typedef struct __GLdrawableBufferRec __GLdrawableBuffer;
|
||||
typedef struct __GLdrawablePrivateRec __GLdrawablePrivate;
|
||||
|
||||
typedef struct __GLregionRectRec {
|
||||
/* lower left (inside the rectangle) */
|
||||
GLint x0, y0;
|
||||
/* upper right (outside the rectangle) */
|
||||
GLint x1, y1;
|
||||
} __GLregionRect;
|
||||
|
||||
struct __GLdrawableRegionRec {
|
||||
GLint numRects;
|
||||
__GLregionRect *rects;
|
||||
__GLregionRect boundingRect;
|
||||
};
|
||||
|
||||
/************************************************************************/
|
||||
|
||||
/* masks for the buffers */
|
||||
#define __GL_FRONT_BUFFER_MASK 0x00000001
|
||||
#define __GL_FRONT_LEFT_BUFFER_MASK 0x00000001
|
||||
#define __GL_FRONT_RIGHT_BUFFER_MASK 0x00000002
|
||||
#define __GL_BACK_BUFFER_MASK 0x00000004
|
||||
#define __GL_BACK_LEFT_BUFFER_MASK 0x00000004
|
||||
#define __GL_BACK_RIGHT_BUFFER_MASK 0x00000008
|
||||
#define __GL_ACCUM_BUFFER_MASK 0x00000010
|
||||
#define __GL_DEPTH_BUFFER_MASK 0x00000020
|
||||
#define __GL_STENCIL_BUFFER_MASK 0x00000040
|
||||
#define __GL_AUX_BUFFER_MASK(i) (0x0000080 << (i))
|
||||
|
||||
#define __GL_ALL_BUFFER_MASK 0xffffffff
|
||||
|
||||
/* what Resize routines return if resize resorted to fallback case */
|
||||
#define __GL_BUFFER_FALLBACK 0x10
|
||||
|
||||
typedef void (*__GLbufFallbackInitFn)(__GLdrawableBuffer *buf,
|
||||
__GLdrawablePrivate *glPriv, GLint bits);
|
||||
typedef void (*__GLbufMainInitFn)(__GLdrawableBuffer *buf,
|
||||
__GLdrawablePrivate *glPriv, GLint bits,
|
||||
__GLbufFallbackInitFn back);
|
||||
|
||||
/*
|
||||
** A drawable buffer
|
||||
**
|
||||
** This data structure describes the context side of a drawable.
|
||||
**
|
||||
** According to the spec there could be multiple contexts bound to the same
|
||||
** drawable at the same time (from different threads). In order to avoid
|
||||
** multiple-access conflicts, locks are used to serialize access. When a
|
||||
** thread needs to access (read or write) a member of the drawable, it takes
|
||||
** a lock first. Some of the entries in the drawable are treated "mostly
|
||||
** constant", so we take the freedom of allowing access to them without
|
||||
** taking a lock (for optimization reasons).
|
||||
**
|
||||
** For more details regarding locking, see buffers.h in the GL core
|
||||
*/
|
||||
struct __GLdrawableBufferRec {
|
||||
/*
|
||||
** Buffer dimensions
|
||||
*/
|
||||
GLint width, height, depth;
|
||||
|
||||
/*
|
||||
** Framebuffer base address
|
||||
*/
|
||||
void *base;
|
||||
|
||||
/*
|
||||
** Framebuffer size (in bytes)
|
||||
*/
|
||||
GLuint size;
|
||||
|
||||
/*
|
||||
** Size (in bytes) of each element in the framebuffer
|
||||
*/
|
||||
GLuint elementSize;
|
||||
GLuint elementSizeLog2;
|
||||
|
||||
/*
|
||||
** Element skip from one scanline to the next.
|
||||
** If the buffer is part of another buffer (for example, fullscreen
|
||||
** front buffer), outerWidth is the width of that buffer.
|
||||
*/
|
||||
GLint outerWidth;
|
||||
|
||||
/*
|
||||
** outerWidth * elementSize
|
||||
*/
|
||||
GLint byteWidth;
|
||||
|
||||
/*
|
||||
** Allocation/deallocation is done based on this handle. A handle
|
||||
** is conceptually different from the framebuffer 'base'.
|
||||
*/
|
||||
void *handle;
|
||||
|
||||
/* imported */
|
||||
GLboolean (*resize)(__GLdrawableBuffer *buf,
|
||||
GLint x, GLint y, GLuint width, GLuint height,
|
||||
__GLdrawablePrivate *glPriv, GLuint bufferMask);
|
||||
void (*lock)(__GLdrawableBuffer *buf, __GLdrawablePrivate *glPriv);
|
||||
void (*unlock)(__GLdrawableBuffer *buf, __GLdrawablePrivate *glPriv);
|
||||
void (*fill)(__GLdrawableBuffer *buf, __GLdrawablePrivate *glPriv,
|
||||
GLuint val, GLint x, GLint y, GLint w, GLint h);
|
||||
void (*free)(__GLdrawableBuffer *buf, __GLdrawablePrivate *glPriv);
|
||||
|
||||
/* exported */
|
||||
void (*freePrivate)(__GLdrawableBuffer *buf, __GLdrawablePrivate *glPriv);
|
||||
#ifdef __cplusplus
|
||||
void *privatePtr;
|
||||
#else
|
||||
void *private;
|
||||
#endif
|
||||
|
||||
/* private */
|
||||
void *other; /* implementation private data */
|
||||
__GLbufMainInitFn mainInit;
|
||||
__GLbufFallbackInitFn fallbackInit;
|
||||
};
|
||||
|
||||
/*
|
||||
** The context side of the drawable private
|
||||
*/
|
||||
struct __GLdrawablePrivateRec {
|
||||
/*
|
||||
** Drawable Modes
|
||||
*/
|
||||
__GLcontextModes *modes;
|
||||
|
||||
/*
|
||||
** Drawable size
|
||||
*/
|
||||
GLuint width, height;
|
||||
|
||||
/*
|
||||
** Origin in screen coordinates of the drawable
|
||||
*/
|
||||
GLint xOrigin, yOrigin;
|
||||
#ifdef __GL_ALIGNED_BUFFERS
|
||||
/*
|
||||
** Drawable offset from screen origin
|
||||
*/
|
||||
GLint xOffset, yOffset;
|
||||
|
||||
/*
|
||||
** Alignment restriction
|
||||
*/
|
||||
GLint xAlignment, yAlignment;
|
||||
#endif
|
||||
/*
|
||||
** Should we invert the y axis?
|
||||
*/
|
||||
GLint yInverted;
|
||||
|
||||
/*
|
||||
** Mask specifying which buffers are renderable by the hw
|
||||
*/
|
||||
GLuint accelBufferMask;
|
||||
|
||||
/*
|
||||
** the buffers themselves
|
||||
*/
|
||||
__GLdrawableBuffer frontBuffer;
|
||||
__GLdrawableBuffer backBuffer;
|
||||
__GLdrawableBuffer accumBuffer;
|
||||
__GLdrawableBuffer depthBuffer;
|
||||
__GLdrawableBuffer stencilBuffer;
|
||||
#if defined(__GL_NUMBER_OF_AUX_BUFFERS) && (__GL_NUMBER_OF_AUX_BUFFERS > 0)
|
||||
__GLdrawableBuffer *auxBuffer;
|
||||
#endif
|
||||
|
||||
__GLdrawableRegion ownershipRegion;
|
||||
|
||||
/*
|
||||
** Lock for the drawable private structure
|
||||
*/
|
||||
void *lock;
|
||||
#ifdef DEBUG
|
||||
/* lock debugging info */
|
||||
int lockRefCount;
|
||||
int lockLine[10];
|
||||
char *lockFile[10];
|
||||
#endif
|
||||
|
||||
/* imported */
|
||||
void *(*malloc)(size_t size);
|
||||
void *(*calloc)(size_t numElem, size_t elemSize);
|
||||
void *(*realloc)(void *oldAddr, size_t newSize);
|
||||
void (*free)(void *addr);
|
||||
|
||||
GLboolean (*addSwapRect)(__GLdrawablePrivate *glPriv,
|
||||
GLint x, GLint y, GLsizei width, GLsizei height);
|
||||
void (*setClipRect)(__GLdrawablePrivate *glPriv,
|
||||
GLint x, GLint y, GLsizei width, GLsizei height);
|
||||
void (*updateClipRegion)(__GLdrawablePrivate *glPriv);
|
||||
GLboolean (*resize)(__GLdrawablePrivate *glPriv);
|
||||
void (*getDrawableSize)(__GLdrawablePrivate *glPriv,
|
||||
GLint *x, GLint *y, GLuint *width, GLuint *height);
|
||||
|
||||
void (*lockDP)(__GLdrawablePrivate *glPriv, __GLcontext *gc);
|
||||
void (*unlockDP)(__GLdrawablePrivate *glPriv);
|
||||
|
||||
/* exported */
|
||||
#ifdef __cplusplus
|
||||
void *privatePtr;
|
||||
#else
|
||||
void *private;
|
||||
#endif
|
||||
void (*freePrivate)(__GLdrawablePrivate *);
|
||||
|
||||
/* client data */
|
||||
void *other;
|
||||
};
|
||||
|
||||
/*
|
||||
** Macros to lock/unlock the drawable private
|
||||
*/
|
||||
#if defined(DEBUG)
|
||||
#define __GL_LOCK_DP(glPriv,gc) \
|
||||
(*(glPriv)->lockDP)(glPriv,gc); \
|
||||
(glPriv)->lockLine[(glPriv)->lockRefCount] = __LINE__; \
|
||||
(glPriv)->lockFile[(glPriv)->lockRefCount] = __FILE__; \
|
||||
(glPriv)->lockRefCount++
|
||||
#define __GL_UNLOCK_DP(glPriv) \
|
||||
(glPriv)->lockRefCount--; \
|
||||
(glPriv)->lockLine[(glPriv)->lockRefCount] = 0; \
|
||||
(glPriv)->lockFile[(glPriv)->lockRefCount] = NULL; \
|
||||
(*(glPriv)->unlockDP)(glPriv)
|
||||
#else /* DEBUG */
|
||||
#define __GL_LOCK_DP(glPriv,gc) (*(glPriv)->lockDP)(glPriv,gc)
|
||||
#define __GL_UNLOCK_DP(glPriv) (*(glPriv)->unlockDP)(glPriv)
|
||||
#endif /* DEBUG */
|
||||
|
||||
|
||||
/*
|
||||
** Procedures which are imported by the GL from the surrounding
|
||||
** "operating system". Math functions are not considered part of the
|
||||
@@ -467,8 +214,8 @@ typedef struct __GLimportsRec {
|
||||
int (CAPI *fprintf)(__GLcontext *gc, void *stream, const char *fmt, ...);
|
||||
|
||||
/* Drawing surface management */
|
||||
__GLdrawablePrivate *(*getDrawablePrivate)(__GLcontext *gc);
|
||||
__GLdrawablePrivate *(*getReadablePrivate)(__GLcontext *gc);
|
||||
void *(*getDrawablePrivate)(__GLcontext *gc);
|
||||
void *(*getReadablePrivate)(__GLcontext *gc);
|
||||
|
||||
/* Operating system dependent data goes here */
|
||||
void *other;
|
||||
|
||||
@@ -149,7 +149,7 @@ TypeStr(GLenum type)
|
||||
*/
|
||||
#define ALIGN (1<<12)
|
||||
|
||||
static unsigned align(unsigned value, unsigned a)
|
||||
static unsigned long align(unsigned long value, unsigned long a)
|
||||
{
|
||||
return (value + a - 1) & ~(a-1);
|
||||
}
|
||||
@@ -186,10 +186,10 @@ MeasureDownloadRate(void)
|
||||
|
||||
printf("alloc %p %p\n", orig_texImage, orig_getImage);
|
||||
|
||||
texImage = (GLubyte *)align((unsigned)orig_texImage, ALIGN);
|
||||
getImage = (GLubyte *)align((unsigned)orig_getImage, ALIGN);
|
||||
texImage = (GLubyte *)align((unsigned long)orig_texImage, ALIGN);
|
||||
getImage = (GLubyte *)align((unsigned long)orig_getImage, ALIGN);
|
||||
|
||||
for (i = 1; !(((unsigned)texImage) & i); i<<=1)
|
||||
for (i = 1; !(((unsigned long)texImage) & i); i<<=1)
|
||||
;
|
||||
printf("texture image alignment: %d bytes (%p)\n", i, texImage);
|
||||
|
||||
|
||||
@@ -77,7 +77,7 @@ static void init( void )
|
||||
WindowPosFunc = &glWindowPos2fARB;
|
||||
}
|
||||
else
|
||||
#elif defined(GL_ARB_window_pos)
|
||||
#elif defined(GL_MESA_window_pos)
|
||||
if (glutExtensionSupported("GL_MESA_window_pos")) {
|
||||
printf("Using GL_MESA_window_pos\n");
|
||||
WindowPosFunc = &glWindowPos2fMESA;
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
#include <math.h>
|
||||
#include <GL/glut.h>
|
||||
|
||||
static int Win;
|
||||
static int Width = 400, Height = 400;
|
||||
static GLuint MyFB, MyRB;
|
||||
|
||||
@@ -99,6 +100,7 @@ CleanUp(void)
|
||||
glDeleteRenderbuffersEXT(1, &MyRB);
|
||||
assert(!glIsFramebufferEXT(MyFB));
|
||||
assert(!glIsRenderbufferEXT(MyRB));
|
||||
glutDestroyWindow(Win);
|
||||
exit(0);
|
||||
}
|
||||
|
||||
@@ -194,7 +196,7 @@ main( int argc, char *argv[] )
|
||||
glutInitWindowPosition( 0, 0 );
|
||||
glutInitWindowSize(Width, Height);
|
||||
glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE );
|
||||
glutCreateWindow(argv[0]);
|
||||
Win = glutCreateWindow(argv[0]);
|
||||
glutReshapeFunc( Reshape );
|
||||
glutKeyboardFunc( Key );
|
||||
glutDisplayFunc( Display );
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
#include <math.h>
|
||||
#include <GL/glut.h>
|
||||
|
||||
static int Win = 0;
|
||||
static int Width = 400, Height = 400;
|
||||
static GLuint MyFB, ColorRb, DepthRb;
|
||||
static GLboolean Animate = GL_TRUE;
|
||||
@@ -110,6 +111,7 @@ CleanUp(void)
|
||||
assert(!glIsFramebufferEXT(MyFB));
|
||||
assert(!glIsRenderbufferEXT(ColorRb));
|
||||
assert(!glIsRenderbufferEXT(DepthRb));
|
||||
glutDestroyWindow(Win);
|
||||
exit(0);
|
||||
}
|
||||
|
||||
@@ -187,7 +189,7 @@ main( int argc, char *argv[] )
|
||||
glutInitWindowPosition( 0, 0 );
|
||||
glutInitWindowSize(Width, Height);
|
||||
glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE );
|
||||
glutCreateWindow(argv[0]);
|
||||
Win = glutCreateWindow(argv[0]);
|
||||
glutReshapeFunc( Reshape );
|
||||
glutKeyboardFunc( Key );
|
||||
glutDisplayFunc( Display );
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
#define DRAW 1
|
||||
|
||||
|
||||
static int Win = 0;
|
||||
static int Width = 400, Height = 400;
|
||||
|
||||
static GLenum TexTarget = GL_TEXTURE_2D; /*GL_TEXTURE_RECTANGLE_ARB;*/
|
||||
@@ -232,6 +233,8 @@ CleanUp(void)
|
||||
|
||||
glDeleteTextures(1, &TexObj);
|
||||
|
||||
glutDestroyWindow(Win);
|
||||
|
||||
exit(0);
|
||||
}
|
||||
|
||||
@@ -392,7 +395,7 @@ main(int argc, char *argv[])
|
||||
glutInitWindowPosition(0, 0);
|
||||
glutInitWindowSize(Width, Height);
|
||||
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);
|
||||
glutCreateWindow(argv[0]);
|
||||
Win = glutCreateWindow(argv[0]);
|
||||
glutReshapeFunc(Reshape);
|
||||
glutKeyboardFunc(Key);
|
||||
glutDisplayFunc(Display);
|
||||
|
||||
@@ -127,7 +127,7 @@ static void display(void)
|
||||
GLfloat tcm = 4.0;
|
||||
printf("BASE_LEVEL = %d MAX_LEVEL = %d MIN_LOD = %f MAX_LOD = %f Bias = %.2g filter = %s\n",
|
||||
BaseLevel, MaxLevel, MinLod, MaxLod, LodBias,
|
||||
NearestFilter ? "LINEAR" : "NEAREST");
|
||||
NearestFilter ? "NEAREST" : "LINEAR");
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_BASE_LEVEL, BaseLevel);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, MaxLevel);
|
||||
|
||||
|
||||
@@ -368,7 +368,7 @@ Resize(const struct window *h, unsigned int width, unsigned int height)
|
||||
glFrustum(-1, 1, -1, 1, 2, 10);
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
glLoadIdentity();
|
||||
glTranslatef(0, 0, -3.5);
|
||||
glTranslatef(0, 0, -4.5);
|
||||
}
|
||||
|
||||
|
||||
@@ -408,28 +408,30 @@ EventLoop(void)
|
||||
}
|
||||
|
||||
|
||||
|
||||
#if 0
|
||||
static void
|
||||
PrintInfo(const struct window *h)
|
||||
{
|
||||
printf("Name: %s\n", h->DisplayName);
|
||||
printf(" Display: 0x%x\n", h->Dpy);
|
||||
printf(" Window: 0x%x\n", h->Win);
|
||||
printf(" Context: 0x%x\n", h->Context);
|
||||
printf(" Display: %p\n", (void *) h->Dpy);
|
||||
printf(" Window: 0x%x\n", (int) h->Win);
|
||||
printf(" Context: 0x%x\n", (int) h->Context);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
int i;
|
||||
const char *dpyName = XDisplayName(NULL);
|
||||
|
||||
struct window *h0, *h1, *h2, *h3;
|
||||
|
||||
/* four windows and contexts sharing display lists and texture objects */
|
||||
h0 = AddWindow(":0", 10, 10, NULL);
|
||||
h1 = AddWindow(":0", 330, 10, h0);
|
||||
h2 = AddWindow(":0", 10, 350, h0);
|
||||
h3 = AddWindow(":0", 330, 350, h0);
|
||||
h0 = AddWindow(dpyName, 10, 10, NULL);
|
||||
h1 = AddWindow(dpyName, 330, 10, h0);
|
||||
h2 = AddWindow(dpyName, 10, 350, h0);
|
||||
h3 = AddWindow(dpyName, 330, 350, h0);
|
||||
|
||||
InitGLstuff(h0);
|
||||
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
*/
|
||||
|
||||
#include "gltrace_support.h"
|
||||
#include <assert.h>
|
||||
#include <sstream>
|
||||
#include <fstream>
|
||||
#include <iomanip>
|
||||
@@ -34,7 +35,7 @@ namespace {
|
||||
{
|
||||
static char buf[4096];
|
||||
int status;
|
||||
unsigned int length = sizeof(buf)-1;
|
||||
size_t length = sizeof(buf)-1;
|
||||
|
||||
memset (buf, 0, sizeof(buf));
|
||||
|
||||
|
||||
@@ -40,11 +40,16 @@ SOURCES = \
|
||||
quad-tex-2d.c \
|
||||
quad-tex-pbo.c \
|
||||
quad-tex-3d.c \
|
||||
quad-tex-dep.c \
|
||||
quad.c \
|
||||
quads.c \
|
||||
quadstrip.c \
|
||||
quadstrip-flat.c \
|
||||
dlist-edgeflag.c \
|
||||
dlist-dangling.c \
|
||||
dlist-edgeflag-dangling.c \
|
||||
drawrange.c \
|
||||
drawelements.c \
|
||||
drawarrays.c \
|
||||
tri-blend.c \
|
||||
tri-tex-3d.c \
|
||||
tri-clip.c \
|
||||
@@ -61,6 +66,9 @@ SOURCES = \
|
||||
tri.c \
|
||||
tristrip-clip.c \
|
||||
tristrip.c \
|
||||
vbo-drawrange.c \
|
||||
vbo-drawelements.c \
|
||||
vbo-drawarrays.c \
|
||||
vp-clip.c \
|
||||
vp-tri.c \
|
||||
vp-line-clip.c \
|
||||
|
||||
149
progs/trivial/dlist-dangling.c
Normal file
149
progs/trivial/dlist-dangling.c
Normal file
@@ -0,0 +1,149 @@
|
||||
/*
|
||||
* Copyright (c) 1991, 1992, 1993 Silicon Graphics, Inc.
|
||||
*
|
||||
* Permission to use, copy, modify, distribute, and sell this software and
|
||||
* its documentation for any purpose is hereby granted without fee, provided
|
||||
* that (i) the above copyright notices and this permission notice appear in
|
||||
* all copies of the software and related documentation, and (ii) the name of
|
||||
* Silicon Graphics may not be used in any advertising or
|
||||
* publicity relating to the software without the specific, prior written
|
||||
* permission of Silicon Graphics.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF
|
||||
* ANY KIND,
|
||||
* EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
|
||||
* WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
|
||||
*
|
||||
* IN NO EVENT SHALL SILICON GRAPHICS BE LIABLE FOR
|
||||
* ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
|
||||
* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
* WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
|
||||
* LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
|
||||
* OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <GL/glut.h>
|
||||
|
||||
|
||||
#define CI_OFFSET_1 16
|
||||
#define CI_OFFSET_2 32
|
||||
|
||||
|
||||
GLenum doubleBuffer;
|
||||
GLint list;
|
||||
|
||||
static void Init(void)
|
||||
{
|
||||
fprintf(stderr, "GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
|
||||
fprintf(stderr, "GL_VERSION = %s\n", (char *) glGetString(GL_VERSION));
|
||||
fprintf(stderr, "GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR));
|
||||
|
||||
glClearColor(0.0, 0.0, 1.0, 0.0);
|
||||
|
||||
|
||||
list = glGenLists(1);
|
||||
glNewList(list, GL_COMPILE);
|
||||
glBegin(GL_TRIANGLES);
|
||||
glVertex3f( 0.9, -0.9, -30.0);
|
||||
glVertex3f( 0.9, 0.9, -30.0);
|
||||
glColor3f(.8,0,0);
|
||||
glVertex3f(-0.9, 0.0, -30.0);
|
||||
glEnd();
|
||||
glEndList();
|
||||
}
|
||||
|
||||
static void Reshape(int width, int height)
|
||||
{
|
||||
|
||||
glViewport(0, 0, (GLint)width, (GLint)height);
|
||||
|
||||
glMatrixMode(GL_PROJECTION);
|
||||
glLoadIdentity();
|
||||
glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0);
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
}
|
||||
|
||||
static void Key(unsigned char key, int x, int y)
|
||||
{
|
||||
|
||||
switch (key) {
|
||||
case 27:
|
||||
exit(1);
|
||||
default:
|
||||
return;
|
||||
}
|
||||
|
||||
glutPostRedisplay();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
static void Draw(void)
|
||||
{
|
||||
glClear(GL_COLOR_BUFFER_BIT);
|
||||
|
||||
glColor3f(0,.9,0);
|
||||
glCallList(list);
|
||||
|
||||
glRotatef(45,0,0,1);
|
||||
glColor3f(1,0,1);
|
||||
glCallList(list);
|
||||
|
||||
glFlush();
|
||||
|
||||
if (doubleBuffer) {
|
||||
glutSwapBuffers();
|
||||
}
|
||||
}
|
||||
|
||||
static GLenum Args(int argc, char **argv)
|
||||
{
|
||||
GLint i;
|
||||
|
||||
doubleBuffer = GL_FALSE;
|
||||
|
||||
for (i = 1; i < argc; i++) {
|
||||
if (strcmp(argv[i], "-sb") == 0) {
|
||||
doubleBuffer = GL_FALSE;
|
||||
} else if (strcmp(argv[i], "-db") == 0) {
|
||||
doubleBuffer = GL_TRUE;
|
||||
} else {
|
||||
fprintf(stderr, "%s (Bad option).\n", argv[i]);
|
||||
return GL_FALSE;
|
||||
}
|
||||
}
|
||||
return GL_TRUE;
|
||||
}
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
GLenum type;
|
||||
|
||||
glutInit(&argc, argv);
|
||||
|
||||
if (Args(argc, argv) == GL_FALSE) {
|
||||
exit(1);
|
||||
}
|
||||
|
||||
glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250);
|
||||
|
||||
type = GLUT_RGB;
|
||||
type |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE;
|
||||
glutInitDisplayMode(type);
|
||||
|
||||
if (glutCreateWindow("First Tri") == GL_FALSE) {
|
||||
exit(1);
|
||||
}
|
||||
|
||||
Init();
|
||||
|
||||
glutReshapeFunc(Reshape);
|
||||
glutKeyboardFunc(Key);
|
||||
glutDisplayFunc(Draw);
|
||||
glutMainLoop();
|
||||
return 0;
|
||||
}
|
||||
152
progs/trivial/dlist-edgeflag-dangling.c
Normal file
152
progs/trivial/dlist-edgeflag-dangling.c
Normal file
@@ -0,0 +1,152 @@
|
||||
/*
|
||||
* Copyright (c) 1991, 1992, 1993 Silicon Graphics, Inc.
|
||||
*
|
||||
* Permission to use, copy, modify, distribute, and sell this software and
|
||||
* its documentation for any purpose is hereby granted without fee, provided
|
||||
* that (i) the above copyright notices and this permission notice appear in
|
||||
* all copies of the software and related documentation, and (ii) the name of
|
||||
* Silicon Graphics may not be used in any advertising or
|
||||
* publicity relating to the software without the specific, prior written
|
||||
* permission of Silicon Graphics.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF
|
||||
* ANY KIND,
|
||||
* EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
|
||||
* WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
|
||||
*
|
||||
* IN NO EVENT SHALL SILICON GRAPHICS BE LIABLE FOR
|
||||
* ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
|
||||
* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
* WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
|
||||
* LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
|
||||
* OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <GL/glut.h>
|
||||
|
||||
|
||||
#define CI_OFFSET_1 16
|
||||
#define CI_OFFSET_2 32
|
||||
|
||||
|
||||
GLenum doubleBuffer;
|
||||
GLint list;
|
||||
|
||||
static void Init(void)
|
||||
{
|
||||
fprintf(stderr, "GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
|
||||
fprintf(stderr, "GL_VERSION = %s\n", (char *) glGetString(GL_VERSION));
|
||||
fprintf(stderr, "GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR));
|
||||
|
||||
glClearColor(0.0, 0.0, 1.0, 0.0);
|
||||
|
||||
glPolygonMode(GL_FRONT, GL_LINE);
|
||||
glPolygonMode(GL_BACK, GL_POINT);
|
||||
|
||||
list = glGenLists(1);
|
||||
glNewList(list, GL_COMPILE);
|
||||
glBegin(GL_TRIANGLES);
|
||||
glVertex3f( 0.9, -0.9, -30.0);
|
||||
glEdgeFlag(1);
|
||||
glVertex3f( 0.9, 0.9, -30.0);
|
||||
glVertex3f(-0.9, 0.0, -30.0);
|
||||
glEnd();
|
||||
glEndList();
|
||||
}
|
||||
|
||||
static void Reshape(int width, int height)
|
||||
{
|
||||
|
||||
glViewport(0, 0, (GLint)width, (GLint)height);
|
||||
|
||||
glMatrixMode(GL_PROJECTION);
|
||||
glLoadIdentity();
|
||||
glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0);
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
}
|
||||
|
||||
static void Key(unsigned char key, int x, int y)
|
||||
{
|
||||
|
||||
switch (key) {
|
||||
case 27:
|
||||
exit(1);
|
||||
default:
|
||||
return;
|
||||
}
|
||||
|
||||
glutPostRedisplay();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
static void Draw(void)
|
||||
{
|
||||
glClear(GL_COLOR_BUFFER_BIT);
|
||||
|
||||
glColor3f(0,.9,0);
|
||||
glEdgeFlag(0);
|
||||
glCallList(list);
|
||||
|
||||
glRotatef(45,0,0,1);
|
||||
glColor3f(1,0,1);
|
||||
glCallList(list);
|
||||
|
||||
glFlush();
|
||||
|
||||
if (doubleBuffer) {
|
||||
glutSwapBuffers();
|
||||
}
|
||||
}
|
||||
|
||||
static GLenum Args(int argc, char **argv)
|
||||
{
|
||||
GLint i;
|
||||
|
||||
doubleBuffer = GL_FALSE;
|
||||
|
||||
for (i = 1; i < argc; i++) {
|
||||
if (strcmp(argv[i], "-sb") == 0) {
|
||||
doubleBuffer = GL_FALSE;
|
||||
} else if (strcmp(argv[i], "-db") == 0) {
|
||||
doubleBuffer = GL_TRUE;
|
||||
} else {
|
||||
fprintf(stderr, "%s (Bad option).\n", argv[i]);
|
||||
return GL_FALSE;
|
||||
}
|
||||
}
|
||||
return GL_TRUE;
|
||||
}
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
GLenum type;
|
||||
|
||||
glutInit(&argc, argv);
|
||||
|
||||
if (Args(argc, argv) == GL_FALSE) {
|
||||
exit(1);
|
||||
}
|
||||
|
||||
glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250);
|
||||
|
||||
type = GLUT_RGB;
|
||||
type |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE;
|
||||
glutInitDisplayMode(type);
|
||||
|
||||
if (glutCreateWindow("First Tri") == GL_FALSE) {
|
||||
exit(1);
|
||||
}
|
||||
|
||||
Init();
|
||||
|
||||
glutReshapeFunc(Reshape);
|
||||
glutKeyboardFunc(Key);
|
||||
glutDisplayFunc(Draw);
|
||||
glutMainLoop();
|
||||
return 0;
|
||||
}
|
||||
156
progs/trivial/dlist-edgeflag.c
Normal file
156
progs/trivial/dlist-edgeflag.c
Normal file
@@ -0,0 +1,156 @@
|
||||
/*
|
||||
* Copyright (c) 1991, 1992, 1993 Silicon Graphics, Inc.
|
||||
*
|
||||
* Permission to use, copy, modify, distribute, and sell this software and
|
||||
* its documentation for any purpose is hereby granted without fee, provided
|
||||
* that (i) the above copyright notices and this permission notice appear in
|
||||
* all copies of the software and related documentation, and (ii) the name of
|
||||
* Silicon Graphics may not be used in any advertising or
|
||||
* publicity relating to the software without the specific, prior written
|
||||
* permission of Silicon Graphics.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF
|
||||
* ANY KIND,
|
||||
* EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
|
||||
* WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
|
||||
*
|
||||
* IN NO EVENT SHALL SILICON GRAPHICS BE LIABLE FOR
|
||||
* ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
|
||||
* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
* WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
|
||||
* LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
|
||||
* OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <GL/glut.h>
|
||||
|
||||
|
||||
#define CI_OFFSET_1 16
|
||||
#define CI_OFFSET_2 32
|
||||
|
||||
|
||||
GLenum doubleBuffer;
|
||||
GLint list;
|
||||
|
||||
static void Init(void)
|
||||
{
|
||||
fprintf(stderr, "GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
|
||||
fprintf(stderr, "GL_VERSION = %s\n", (char *) glGetString(GL_VERSION));
|
||||
fprintf(stderr, "GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR));
|
||||
|
||||
glClearColor(0.0, 0.0, 1.0, 0.0);
|
||||
|
||||
glPolygonMode(GL_FRONT, GL_LINE);
|
||||
glPolygonMode(GL_BACK, GL_POINT);
|
||||
|
||||
list = glGenLists(1);
|
||||
glNewList(list, GL_COMPILE);
|
||||
glBegin(GL_TRIANGLES);
|
||||
glEdgeFlag(1);
|
||||
/* glColor3f(0,0,.7); */
|
||||
glVertex3f( 0.9, -0.9, -30.0);
|
||||
glEdgeFlag(0);
|
||||
/* glColor3f(.8,0,0); */
|
||||
glVertex3f( 0.9, 0.9, -30.0);
|
||||
glEdgeFlag(1);
|
||||
/* glColor3f(0,.9,0); */
|
||||
glVertex3f(-0.9, 0.0, -30.0);
|
||||
glEnd();
|
||||
glEndList();
|
||||
}
|
||||
|
||||
static void Reshape(int width, int height)
|
||||
{
|
||||
|
||||
glViewport(0, 0, (GLint)width, (GLint)height);
|
||||
|
||||
glMatrixMode(GL_PROJECTION);
|
||||
glLoadIdentity();
|
||||
glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0);
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
}
|
||||
|
||||
static void Key(unsigned char key, int x, int y)
|
||||
{
|
||||
|
||||
switch (key) {
|
||||
case 27:
|
||||
exit(1);
|
||||
default:
|
||||
return;
|
||||
}
|
||||
|
||||
glutPostRedisplay();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
static void Draw(void)
|
||||
{
|
||||
glClear(GL_COLOR_BUFFER_BIT);
|
||||
|
||||
glColor3f(0,.9,0);
|
||||
glCallList(list);
|
||||
|
||||
glRotatef(45,0,0,1);
|
||||
glColor3f(1,0,1);
|
||||
glCallList(list);
|
||||
|
||||
glFlush();
|
||||
|
||||
if (doubleBuffer) {
|
||||
glutSwapBuffers();
|
||||
}
|
||||
}
|
||||
|
||||
static GLenum Args(int argc, char **argv)
|
||||
{
|
||||
GLint i;
|
||||
|
||||
doubleBuffer = GL_FALSE;
|
||||
|
||||
for (i = 1; i < argc; i++) {
|
||||
if (strcmp(argv[i], "-sb") == 0) {
|
||||
doubleBuffer = GL_FALSE;
|
||||
} else if (strcmp(argv[i], "-db") == 0) {
|
||||
doubleBuffer = GL_TRUE;
|
||||
} else {
|
||||
fprintf(stderr, "%s (Bad option).\n", argv[i]);
|
||||
return GL_FALSE;
|
||||
}
|
||||
}
|
||||
return GL_TRUE;
|
||||
}
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
GLenum type;
|
||||
|
||||
glutInit(&argc, argv);
|
||||
|
||||
if (Args(argc, argv) == GL_FALSE) {
|
||||
exit(1);
|
||||
}
|
||||
|
||||
glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250);
|
||||
|
||||
type = GLUT_RGB;
|
||||
type |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE;
|
||||
glutInitDisplayMode(type);
|
||||
|
||||
if (glutCreateWindow("First Tri") == GL_FALSE) {
|
||||
exit(1);
|
||||
}
|
||||
|
||||
Init();
|
||||
|
||||
glutReshapeFunc(Reshape);
|
||||
glutKeyboardFunc(Key);
|
||||
glutDisplayFunc(Draw);
|
||||
glutMainLoop();
|
||||
return 0;
|
||||
}
|
||||
127
progs/trivial/drawarrays.c
Normal file
127
progs/trivial/drawarrays.c
Normal file
@@ -0,0 +1,127 @@
|
||||
/* Basic VBO */
|
||||
|
||||
#include <assert.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
#define GL_GLEXT_PROTOTYPES
|
||||
#include <GL/glut.h>
|
||||
|
||||
|
||||
struct {
|
||||
GLfloat pos[3];
|
||||
GLubyte color[4];
|
||||
} verts[] =
|
||||
{
|
||||
{ { 0.9, -0.9, 0.0 },
|
||||
{ 0x00, 0x00, 0xff, 0x00 }
|
||||
},
|
||||
|
||||
{ { 0.9, 0.9, 0.0 },
|
||||
{ 0x00, 0xff, 0x00, 0x00 }
|
||||
},
|
||||
|
||||
{ { -0.9, 0.9, 0.0 },
|
||||
{ 0xff, 0x00, 0x00, 0x00 }
|
||||
},
|
||||
|
||||
{ { -0.9, -0.9, 0.0 },
|
||||
{ 0xff, 0xff, 0xff, 0x00 }
|
||||
},
|
||||
};
|
||||
|
||||
static void Init( void )
|
||||
{
|
||||
GLint errno;
|
||||
GLuint prognum;
|
||||
|
||||
static const char *prog1 =
|
||||
"!!ARBvp1.0\n"
|
||||
"MOV result.color, vertex.color;\n"
|
||||
"MOV result.position, vertex.position;\n"
|
||||
"END\n";
|
||||
|
||||
glGenProgramsARB(1, &prognum);
|
||||
glBindProgramARB(GL_VERTEX_PROGRAM_ARB, prognum);
|
||||
glProgramStringARB(GL_VERTEX_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
|
||||
strlen(prog1), (const GLubyte *) prog1);
|
||||
|
||||
assert(glIsProgramARB(prognum));
|
||||
errno = glGetError();
|
||||
printf("glGetError = %d\n", errno);
|
||||
if (errno != GL_NO_ERROR)
|
||||
{
|
||||
GLint errorpos;
|
||||
|
||||
glGetIntegerv(GL_PROGRAM_ERROR_POSITION_ARB, &errorpos);
|
||||
printf("errorpos: %d\n", errorpos);
|
||||
printf("%s\n", (char *)glGetString(GL_PROGRAM_ERROR_STRING_ARB));
|
||||
}
|
||||
|
||||
|
||||
glEnableClientState( GL_VERTEX_ARRAY );
|
||||
glEnableClientState( GL_COLOR_ARRAY );
|
||||
|
||||
glVertexPointer( 3, GL_FLOAT, sizeof(verts[0]), verts[0].pos );
|
||||
glColorPointer( 4, GL_UNSIGNED_BYTE, sizeof(verts[0]), verts[0].color );
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
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_ARB);
|
||||
|
||||
// glDrawArrays( GL_TRIANGLES, 0, 3 );
|
||||
glDrawArrays( GL_TRIANGLES, 1, 3 );
|
||||
|
||||
glFlush();
|
||||
}
|
||||
|
||||
|
||||
static void Reshape( int width, int height )
|
||||
{
|
||||
glViewport( 0, 0, width, height );
|
||||
glMatrixMode( GL_PROJECTION );
|
||||
glLoadIdentity();
|
||||
glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.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();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
int main( int argc, char *argv[] )
|
||||
{
|
||||
glutInit( &argc, argv );
|
||||
glutInitWindowPosition( 0, 0 );
|
||||
glutInitWindowSize( 250, 250 );
|
||||
glutInitDisplayMode( GLUT_RGB | GLUT_SINGLE | GLUT_DEPTH );
|
||||
glutCreateWindow(argv[0]);
|
||||
glutReshapeFunc( Reshape );
|
||||
glutKeyboardFunc( Key );
|
||||
glutDisplayFunc( Display );
|
||||
Init();
|
||||
glutMainLoop();
|
||||
return 0;
|
||||
}
|
||||
120
progs/trivial/drawelements.c
Normal file
120
progs/trivial/drawelements.c
Normal file
@@ -0,0 +1,120 @@
|
||||
/* Test rebasing */
|
||||
|
||||
#include <assert.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
#define GL_GLEXT_PROTOTYPES
|
||||
#include <GL/glut.h>
|
||||
|
||||
GLfloat verts[][4] = {
|
||||
{ 0.9, -0.9, 0.0, 1.0 },
|
||||
{ 0.9, 0.9, 0.0, 1.0 },
|
||||
{ -0.9, 0.9, 0.0, 1.0 },
|
||||
{ -0.9, -0.9, 0.0, 1.0 },
|
||||
};
|
||||
|
||||
GLubyte color[][4] = {
|
||||
{ 0x00, 0x00, 0xff, 0x00 },
|
||||
{ 0x00, 0xff, 0x00, 0x00 },
|
||||
{ 0xff, 0x00, 0x00, 0x00 },
|
||||
{ 0xff, 0xff, 0xff, 0x00 },
|
||||
};
|
||||
|
||||
GLuint indices[] = { 1, 2, 3 };
|
||||
|
||||
static void Init( void )
|
||||
{
|
||||
GLint errno;
|
||||
GLuint prognum;
|
||||
|
||||
static const char *prog1 =
|
||||
"!!ARBvp1.0\n"
|
||||
"MOV result.color, vertex.color;\n"
|
||||
"MOV result.position, vertex.position;\n"
|
||||
"END\n";
|
||||
|
||||
glGenProgramsARB(1, &prognum);
|
||||
glBindProgramARB(GL_VERTEX_PROGRAM_ARB, prognum);
|
||||
glProgramStringARB(GL_VERTEX_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
|
||||
strlen(prog1), (const GLubyte *) prog1);
|
||||
|
||||
assert(glIsProgramARB(prognum));
|
||||
errno = glGetError();
|
||||
printf("glGetError = %d\n", errno);
|
||||
if (errno != GL_NO_ERROR)
|
||||
{
|
||||
GLint errorpos;
|
||||
|
||||
glGetIntegerv(GL_PROGRAM_ERROR_POSITION_ARB, &errorpos);
|
||||
printf("errorpos: %d\n", errorpos);
|
||||
printf("%s\n", (char *)glGetString(GL_PROGRAM_ERROR_STRING_ARB));
|
||||
}
|
||||
|
||||
|
||||
glEnableClientState( GL_VERTEX_ARRAY );
|
||||
glEnableClientState( GL_COLOR_ARRAY );
|
||||
glVertexPointer( 3, GL_FLOAT, sizeof(verts[0]), verts );
|
||||
glColorPointer( 4, GL_UNSIGNED_BYTE, 0, color );
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
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);
|
||||
|
||||
/* Should have min_index == 1, maybe force a rebase:
|
||||
*/
|
||||
glDrawElements( GL_TRIANGLES, 3, GL_UNSIGNED_INT, indices );
|
||||
|
||||
glFlush();
|
||||
}
|
||||
|
||||
|
||||
static void Reshape( int width, int height )
|
||||
{
|
||||
glViewport( 0, 0, width, height );
|
||||
glMatrixMode( GL_PROJECTION );
|
||||
glLoadIdentity();
|
||||
glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.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();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
int main( int argc, char *argv[] )
|
||||
{
|
||||
glutInit( &argc, argv );
|
||||
glutInitWindowPosition( 0, 0 );
|
||||
glutInitWindowSize( 250, 250 );
|
||||
glutInitDisplayMode( GLUT_RGB | GLUT_SINGLE | GLUT_DEPTH );
|
||||
glutCreateWindow(argv[0]);
|
||||
glutReshapeFunc( Reshape );
|
||||
glutKeyboardFunc( Key );
|
||||
glutDisplayFunc( Display );
|
||||
Init();
|
||||
glutMainLoop();
|
||||
return 0;
|
||||
}
|
||||
118
progs/trivial/drawrange.c
Normal file
118
progs/trivial/drawrange.c
Normal file
@@ -0,0 +1,118 @@
|
||||
/* Test rebasing */
|
||||
|
||||
#include <assert.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
#define GL_GLEXT_PROTOTYPES
|
||||
#include <GL/glut.h>
|
||||
|
||||
GLfloat verts[][4] = {
|
||||
{ 0.9, -0.9, 0.0, 1.0 },
|
||||
{ 0.9, 0.9, 0.0, 1.0 },
|
||||
{ -0.9, 0.9, 0.0, 1.0 },
|
||||
{ -0.9, -0.9, 0.0, 1.0 },
|
||||
};
|
||||
|
||||
GLubyte color[][4] = {
|
||||
{ 0x00, 0x00, 0xff, 0x00 },
|
||||
{ 0x00, 0xff, 0x00, 0x00 },
|
||||
{ 0xff, 0x00, 0x00, 0x00 },
|
||||
{ 0xff, 0xff, 0xff, 0x00 },
|
||||
};
|
||||
|
||||
GLuint indices[] = { 1, 2, 3 };
|
||||
|
||||
static void Init( void )
|
||||
{
|
||||
GLint errno;
|
||||
GLuint prognum;
|
||||
|
||||
static const char *prog1 =
|
||||
"!!ARBvp1.0\n"
|
||||
"MOV result.color, vertex.color;\n"
|
||||
"MOV result.position, vertex.position;\n"
|
||||
"END\n";
|
||||
|
||||
glGenProgramsARB(1, &prognum);
|
||||
glBindProgramARB(GL_VERTEX_PROGRAM_ARB, prognum);
|
||||
glProgramStringARB(GL_VERTEX_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
|
||||
strlen(prog1), (const GLubyte *) prog1);
|
||||
|
||||
assert(glIsProgramARB(prognum));
|
||||
errno = glGetError();
|
||||
printf("glGetError = %d\n", errno);
|
||||
if (errno != GL_NO_ERROR)
|
||||
{
|
||||
GLint errorpos;
|
||||
|
||||
glGetIntegerv(GL_PROGRAM_ERROR_POSITION_ARB, &errorpos);
|
||||
printf("errorpos: %d\n", errorpos);
|
||||
printf("%s\n", (char *)glGetString(GL_PROGRAM_ERROR_STRING_ARB));
|
||||
}
|
||||
|
||||
|
||||
glEnableClientState( GL_VERTEX_ARRAY );
|
||||
glEnableClientState( GL_COLOR_ARRAY );
|
||||
glVertexPointer( 3, GL_FLOAT, sizeof(verts[0]), verts );
|
||||
glColorPointer( 4, GL_UNSIGNED_BYTE, 0, color );
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
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);
|
||||
|
||||
glDrawRangeElements( GL_TRIANGLES, 1, 3, 3, GL_UNSIGNED_INT, indices );
|
||||
|
||||
glFlush();
|
||||
}
|
||||
|
||||
|
||||
static void Reshape( int width, int height )
|
||||
{
|
||||
glViewport( 0, 0, width, height );
|
||||
glMatrixMode( GL_PROJECTION );
|
||||
glLoadIdentity();
|
||||
glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.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();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
int main( int argc, char *argv[] )
|
||||
{
|
||||
glutInit( &argc, argv );
|
||||
glutInitWindowPosition( 0, 0 );
|
||||
glutInitWindowSize( 250, 250 );
|
||||
glutInitDisplayMode( GLUT_RGB | GLUT_SINGLE | GLUT_DEPTH );
|
||||
glutCreateWindow(argv[0]);
|
||||
glutReshapeFunc( Reshape );
|
||||
glutKeyboardFunc( Key );
|
||||
glutDisplayFunc( Display );
|
||||
Init();
|
||||
glutMainLoop();
|
||||
return 0;
|
||||
}
|
||||
133
progs/trivial/vbo-drawarrays.c
Normal file
133
progs/trivial/vbo-drawarrays.c
Normal file
@@ -0,0 +1,133 @@
|
||||
/* Basic VBO */
|
||||
|
||||
#include <assert.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
#define GL_GLEXT_PROTOTYPES
|
||||
#include <GL/glut.h>
|
||||
|
||||
|
||||
struct {
|
||||
GLfloat pos[3];
|
||||
GLubyte color[4];
|
||||
} verts[] =
|
||||
{
|
||||
{ { 0.9, -0.9, 0.0 },
|
||||
{ 0x00, 0x00, 0xff, 0x00 }
|
||||
},
|
||||
|
||||
{ { 0.9, 0.9, 0.0 },
|
||||
{ 0x00, 0xff, 0x00, 0x00 }
|
||||
},
|
||||
|
||||
{ { -0.9, 0.9, 0.0 },
|
||||
{ 0xff, 0x00, 0x00, 0x00 }
|
||||
},
|
||||
|
||||
{ { -0.9, -0.9, 0.0 },
|
||||
{ 0xff, 0xff, 0xff, 0x00 }
|
||||
},
|
||||
};
|
||||
|
||||
GLuint arrayObj, elementObj;
|
||||
|
||||
static void Init( void )
|
||||
{
|
||||
GLint errno;
|
||||
GLuint prognum;
|
||||
|
||||
static const char *prog1 =
|
||||
"!!ARBvp1.0\n"
|
||||
"MOV result.color, vertex.color;\n"
|
||||
"MOV result.position, vertex.position;\n"
|
||||
"END\n";
|
||||
|
||||
glGenProgramsARB(1, &prognum);
|
||||
glBindProgramARB(GL_VERTEX_PROGRAM_ARB, prognum);
|
||||
glProgramStringARB(GL_VERTEX_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
|
||||
strlen(prog1), (const GLubyte *) prog1);
|
||||
|
||||
assert(glIsProgramARB(prognum));
|
||||
errno = glGetError();
|
||||
printf("glGetError = %d\n", errno);
|
||||
if (errno != GL_NO_ERROR)
|
||||
{
|
||||
GLint errorpos;
|
||||
|
||||
glGetIntegerv(GL_PROGRAM_ERROR_POSITION_ARB, &errorpos);
|
||||
printf("errorpos: %d\n", errorpos);
|
||||
printf("%s\n", (char *)glGetString(GL_PROGRAM_ERROR_STRING_ARB));
|
||||
}
|
||||
|
||||
|
||||
glEnableClientState( GL_VERTEX_ARRAY );
|
||||
glEnableClientState( GL_COLOR_ARRAY );
|
||||
|
||||
glGenBuffersARB(1, &arrayObj);
|
||||
glBindBufferARB(GL_ARRAY_BUFFER_ARB, arrayObj);
|
||||
glBufferDataARB(GL_ARRAY_BUFFER_ARB, sizeof(verts), verts, GL_STATIC_DRAW_ARB);
|
||||
|
||||
glVertexPointer( 3, GL_FLOAT, sizeof(verts[0]), 0 );
|
||||
glColorPointer( 4, GL_UNSIGNED_BYTE, sizeof(verts[0]), (void *)(3*sizeof(float)) );
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
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_ARB);
|
||||
|
||||
// glDrawArrays( GL_TRIANGLES, 0, 3 );
|
||||
glDrawArrays( GL_TRIANGLES, 1, 3 );
|
||||
|
||||
glFlush();
|
||||
}
|
||||
|
||||
|
||||
static void Reshape( int width, int height )
|
||||
{
|
||||
glViewport( 0, 0, width, height );
|
||||
glMatrixMode( GL_PROJECTION );
|
||||
glLoadIdentity();
|
||||
glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.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();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
int main( int argc, char *argv[] )
|
||||
{
|
||||
glutInit( &argc, argv );
|
||||
glutInitWindowPosition( 0, 0 );
|
||||
glutInitWindowSize( 250, 250 );
|
||||
glutInitDisplayMode( GLUT_RGB | GLUT_SINGLE | GLUT_DEPTH );
|
||||
glutCreateWindow(argv[0]);
|
||||
glutReshapeFunc( Reshape );
|
||||
glutKeyboardFunc( Key );
|
||||
glutDisplayFunc( Display );
|
||||
Init();
|
||||
glutMainLoop();
|
||||
return 0;
|
||||
}
|
||||
137
progs/trivial/vbo-drawelements.c
Normal file
137
progs/trivial/vbo-drawelements.c
Normal file
@@ -0,0 +1,137 @@
|
||||
/* Basic VBO */
|
||||
|
||||
#include <assert.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
#define GL_GLEXT_PROTOTYPES
|
||||
#include <GL/glut.h>
|
||||
|
||||
struct {
|
||||
GLfloat pos[3];
|
||||
GLubyte color[4];
|
||||
} verts[] =
|
||||
{
|
||||
{ { 0.9, -0.9, 0.0 },
|
||||
{ 0x00, 0x00, 0xff, 0x00 }
|
||||
},
|
||||
|
||||
{ { 0.9, 0.9, 0.0 },
|
||||
{ 0x00, 0xff, 0x00, 0x00 }
|
||||
},
|
||||
|
||||
{ { -0.9, 0.9, 0.0 },
|
||||
{ 0xff, 0x00, 0x00, 0x00 }
|
||||
},
|
||||
|
||||
{ { -0.9, -0.9, 0.0 },
|
||||
{ 0xff, 0xff, 0xff, 0x00 }
|
||||
},
|
||||
};
|
||||
|
||||
GLuint indices[] = { 0, 1, 2, 3 };
|
||||
|
||||
GLuint arrayObj, elementObj;
|
||||
|
||||
static void Init( void )
|
||||
{
|
||||
GLint errno;
|
||||
GLuint prognum;
|
||||
|
||||
static const char *prog1 =
|
||||
"!!ARBvp1.0\n"
|
||||
"MOV result.color, vertex.color;\n"
|
||||
"MOV result.position, vertex.position;\n"
|
||||
"END\n";
|
||||
|
||||
glGenProgramsARB(1, &prognum);
|
||||
glBindProgramARB(GL_VERTEX_PROGRAM_ARB, prognum);
|
||||
glProgramStringARB(GL_VERTEX_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
|
||||
strlen(prog1), (const GLubyte *) prog1);
|
||||
|
||||
assert(glIsProgramARB(prognum));
|
||||
errno = glGetError();
|
||||
printf("glGetError = %d\n", errno);
|
||||
if (errno != GL_NO_ERROR)
|
||||
{
|
||||
GLint errorpos;
|
||||
|
||||
glGetIntegerv(GL_PROGRAM_ERROR_POSITION_ARB, &errorpos);
|
||||
printf("errorpos: %d\n", errorpos);
|
||||
printf("%s\n", (char *)glGetString(GL_PROGRAM_ERROR_STRING_ARB));
|
||||
}
|
||||
|
||||
|
||||
glEnableClientState( GL_VERTEX_ARRAY );
|
||||
glEnableClientState( GL_COLOR_ARRAY );
|
||||
|
||||
glGenBuffersARB(1, &arrayObj);
|
||||
glGenBuffersARB(1, &elementObj);
|
||||
|
||||
glBindBufferARB(GL_ARRAY_BUFFER_ARB, arrayObj);
|
||||
glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, elementObj);
|
||||
|
||||
glBufferDataARB(GL_ARRAY_BUFFER_ARB, sizeof(verts), verts, GL_STATIC_DRAW_ARB);
|
||||
glBufferDataARB(GL_ELEMENT_ARRAY_BUFFER_ARB, sizeof(indices), indices, GL_STATIC_DRAW_ARB);
|
||||
|
||||
glVertexPointer( 3, GL_FLOAT, sizeof(verts[0]), 0 );
|
||||
glColorPointer( 4, GL_UNSIGNED_BYTE, sizeof(verts[0]), (void *)(3*sizeof(float)) );
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
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_ARB);
|
||||
glDrawElements( GL_TRIANGLES, 3, GL_UNSIGNED_INT, NULL );
|
||||
|
||||
glFlush();
|
||||
}
|
||||
|
||||
|
||||
static void Reshape( int width, int height )
|
||||
{
|
||||
glViewport( 0, 0, width, height );
|
||||
glMatrixMode( GL_PROJECTION );
|
||||
glLoadIdentity();
|
||||
glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.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();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
int main( int argc, char *argv[] )
|
||||
{
|
||||
glutInit( &argc, argv );
|
||||
glutInitWindowPosition( 0, 0 );
|
||||
glutInitWindowSize( 250, 250 );
|
||||
glutInitDisplayMode( GLUT_RGB | GLUT_SINGLE | GLUT_DEPTH );
|
||||
glutCreateWindow(argv[0]);
|
||||
glutReshapeFunc( Reshape );
|
||||
glutKeyboardFunc( Key );
|
||||
glutDisplayFunc( Display );
|
||||
Init();
|
||||
glutMainLoop();
|
||||
return 0;
|
||||
}
|
||||
145
progs/trivial/vbo-drawrange.c
Normal file
145
progs/trivial/vbo-drawrange.c
Normal file
@@ -0,0 +1,145 @@
|
||||
/* Basic VBO */
|
||||
|
||||
#include <assert.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
#define GL_GLEXT_PROTOTYPES
|
||||
#include <GL/glut.h>
|
||||
|
||||
#define ELTOBJ 0
|
||||
|
||||
struct {
|
||||
GLfloat pos[3];
|
||||
GLubyte color[4];
|
||||
} verts[] =
|
||||
{
|
||||
{ { 0.9, -0.9, 0.0 },
|
||||
{ 0x00, 0x00, 0xff, 0x00 }
|
||||
},
|
||||
|
||||
{ { 0.9, 0.9, 0.0 },
|
||||
{ 0x00, 0xff, 0x00, 0x00 }
|
||||
},
|
||||
|
||||
{ { -0.9, 0.9, 0.0 },
|
||||
{ 0xff, 0x00, 0x00, 0x00 }
|
||||
},
|
||||
|
||||
{ { -0.9, -0.9, 0.0 },
|
||||
{ 0xff, 0xff, 0xff, 0x00 }
|
||||
},
|
||||
};
|
||||
|
||||
GLuint indices[] = { 1, 2, 3 };
|
||||
|
||||
GLuint arrayObj, elementObj;
|
||||
|
||||
static void Init( void )
|
||||
{
|
||||
GLint errno;
|
||||
GLuint prognum;
|
||||
|
||||
static const char *prog1 =
|
||||
"!!ARBvp1.0\n"
|
||||
"MOV result.color, vertex.color;\n"
|
||||
"MOV result.position, vertex.position;\n"
|
||||
"END\n";
|
||||
|
||||
glGenProgramsARB(1, &prognum);
|
||||
glBindProgramARB(GL_VERTEX_PROGRAM_ARB, prognum);
|
||||
glProgramStringARB(GL_VERTEX_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
|
||||
strlen(prog1), (const GLubyte *) prog1);
|
||||
|
||||
assert(glIsProgramARB(prognum));
|
||||
errno = glGetError();
|
||||
printf("glGetError = %d\n", errno);
|
||||
if (errno != GL_NO_ERROR)
|
||||
{
|
||||
GLint errorpos;
|
||||
|
||||
glGetIntegerv(GL_PROGRAM_ERROR_POSITION_ARB, &errorpos);
|
||||
printf("errorpos: %d\n", errorpos);
|
||||
printf("%s\n", (char *)glGetString(GL_PROGRAM_ERROR_STRING_ARB));
|
||||
}
|
||||
|
||||
|
||||
glEnableClientState( GL_VERTEX_ARRAY );
|
||||
glEnableClientState( GL_COLOR_ARRAY );
|
||||
|
||||
glGenBuffersARB(1, &arrayObj);
|
||||
glBindBufferARB(GL_ARRAY_BUFFER_ARB, arrayObj);
|
||||
glBufferDataARB(GL_ARRAY_BUFFER_ARB, sizeof(verts), verts, GL_STATIC_DRAW_ARB);
|
||||
|
||||
#if ELTOBJ
|
||||
glGenBuffersARB(1, &elementObj);
|
||||
glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, elementObj);
|
||||
glBufferDataARB(GL_ELEMENT_ARRAY_BUFFER_ARB, sizeof(indices), indices, GL_STATIC_DRAW_ARB);
|
||||
#endif
|
||||
|
||||
glVertexPointer( 3, GL_FLOAT, sizeof(verts[0]), 0 );
|
||||
glColorPointer( 4, GL_UNSIGNED_BYTE, sizeof(verts[0]), (void *)(3*sizeof(float)) );
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
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_ARB);
|
||||
|
||||
#if ELTOBJ
|
||||
glDrawRangeElements( GL_TRIANGLES, 1, 3, 3, GL_UNSIGNED_INT, NULL );
|
||||
#else
|
||||
glDrawRangeElements( GL_TRIANGLES, 1, 3, 3, GL_UNSIGNED_INT, indices );
|
||||
#endif
|
||||
|
||||
glFlush();
|
||||
}
|
||||
|
||||
|
||||
static void Reshape( int width, int height )
|
||||
{
|
||||
glViewport( 0, 0, width, height );
|
||||
glMatrixMode( GL_PROJECTION );
|
||||
glLoadIdentity();
|
||||
glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.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();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
int main( int argc, char *argv[] )
|
||||
{
|
||||
glutInit( &argc, argv );
|
||||
glutInitWindowPosition( 0, 0 );
|
||||
glutInitWindowSize( 250, 250 );
|
||||
glutInitDisplayMode( GLUT_RGB | GLUT_SINGLE | GLUT_DEPTH );
|
||||
glutCreateWindow(argv[0]);
|
||||
glutReshapeFunc( Reshape );
|
||||
glutKeyboardFunc( Key );
|
||||
glutDisplayFunc( Display );
|
||||
Init();
|
||||
glutMainLoop();
|
||||
return 0;
|
||||
}
|
||||
@@ -24,11 +24,11 @@ PROGS = glthreads \
|
||||
pbinfo \
|
||||
pbdemo \
|
||||
wincopy \
|
||||
xdemo \
|
||||
xfont \
|
||||
xrotfontdemo \
|
||||
yuvrect_client
|
||||
|
||||
# omit this XMesa API demo: xdemo
|
||||
|
||||
|
||||
##### RULES #####
|
||||
|
||||
@@ -473,7 +473,7 @@ main(int argc, char *argv[])
|
||||
|
||||
dpy = XOpenDisplay(displayName);
|
||||
if (!dpy) {
|
||||
fprintf(stderr, "Unable to open display %s\n", displayName);
|
||||
fprintf(stderr, "Unable to open display %s\n", XDisplayName(displayName));
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -587,8 +587,8 @@ main(int argc, char *argv[])
|
||||
|
||||
dpy = XOpenDisplay(dpyName);
|
||||
if (!dpy) {
|
||||
printf("Error: couldn't open display %s\n",
|
||||
dpyName ? dpyName : getenv("DISPLAY"));
|
||||
fprintf(stderr, "Error: couldn't open display %s\n",
|
||||
XDisplayName(dpyName));
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
@@ -575,7 +575,7 @@ main(int argc, char *argv[])
|
||||
|
||||
dpy = XOpenDisplay(dpyName);
|
||||
if (!dpy) {
|
||||
printf("Error: couldn't open display %s\n", dpyName);
|
||||
printf("Error: couldn't open display %s\n", XDisplayName(dpyName));
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
@@ -57,7 +57,7 @@ static int NumHeads = 0;
|
||||
static void
|
||||
Error(const char *display, const char *msg)
|
||||
{
|
||||
fprintf(stderr, "Error on display %s - %s\n", display, msg);
|
||||
fprintf(stderr, "Error on display %s - %s\n", XDisplayName(display), msg);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
||||
@@ -456,7 +456,19 @@ print_screen_info(Display *dpy, int scrnum, Bool allowDirect, GLboolean limits)
|
||||
}
|
||||
printf("display: %s screen: %d\n", displayName, scrnum);
|
||||
free(displayName);
|
||||
printf("direct rendering: %s\n", glXIsDirect(dpy, ctx) ? "Yes" : "No");
|
||||
printf("direct rendering: ");
|
||||
if (glXIsDirect(dpy, ctx)) {
|
||||
printf("Yes\n");
|
||||
} else {
|
||||
if (!allowDirect) {
|
||||
printf("No (-i specified)\n");
|
||||
} else if (getenv("LIBGL_ALWAYS_INDIRECT")) {
|
||||
printf("No (LIBGL_ALWAYS_INDIRECT set)\n");
|
||||
} else {
|
||||
printf("No (If you want to find out why, try setting "
|
||||
"LIBGL_DEBUG=verbose)\n");
|
||||
}
|
||||
}
|
||||
printf("server glx vendor string: %s\n", serverVendor);
|
||||
printf("server glx version string: %s\n", serverVersion);
|
||||
printf("server glx extensions:\n");
|
||||
@@ -927,7 +939,7 @@ main(int argc, char *argv[])
|
||||
|
||||
dpy = XOpenDisplay(displayName);
|
||||
if (!dpy) {
|
||||
fprintf(stderr, "Error: unable to open display %s\n", displayName);
|
||||
fprintf(stderr, "Error: unable to open display %s\n", XDisplayName(displayName));
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
@@ -749,7 +749,7 @@ main(int argc, char *argv[])
|
||||
|
||||
dpy = XOpenDisplay(dpyName);
|
||||
if (!dpy) {
|
||||
printf("Error: couldn't open display %s\n", dpyName);
|
||||
printf("Error: couldn't open display %s\n", XDisplayName(dpyName));
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
@@ -59,7 +59,7 @@ static GLuint TexObj = 0;
|
||||
static void
|
||||
Error(const char *display, const char *msg)
|
||||
{
|
||||
fprintf(stderr, "Error on display %s - %s\n", display, msg);
|
||||
fprintf(stderr, "Error on display %s - %s\n", XDisplayName(display), msg);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
||||
@@ -91,7 +91,7 @@ make_window( const char * dpyName, const char *name,
|
||||
|
||||
dpy = XOpenDisplay(dpyName);
|
||||
if (!dpy) {
|
||||
printf("Error: couldn't open display %s\n", dpyName);
|
||||
printf("Error: couldn't open display %s\n", XDisplayName(dpyName));
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
||||
@@ -95,7 +95,7 @@ main(int argc, char *argv[])
|
||||
dpy = XOpenDisplay(dpyName);
|
||||
|
||||
if (!dpy) {
|
||||
printf("Error: couldn't open display %s\n", dpyName ? dpyName : ":0");
|
||||
printf("Error: couldn't open display %s\n", XDisplayName(dpyName));
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
@@ -296,7 +296,7 @@ main(int argc, char *argv[])
|
||||
dpy = XOpenDisplay(dpyName);
|
||||
if (!dpy) {
|
||||
printf("Error: couldn't open display %s\n",
|
||||
dpyName ? dpyName : getenv("DISPLAY"));
|
||||
XDisplayName(dpyName));
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ Status
|
||||
|
||||
Version
|
||||
|
||||
10 (10 August 2005)
|
||||
11 (27 January 2006)
|
||||
|
||||
Number
|
||||
|
||||
@@ -127,22 +127,8 @@ Issues
|
||||
isn't always reliable (consider video projectors) but can still be
|
||||
used to determine the pixel aspect ratio.
|
||||
|
||||
Arguments for:
|
||||
|
||||
X supports a similar query with DisplayWidthMM(), DisplayHeightMM().
|
||||
If this information can be easily queried with EDID, why not
|
||||
make it available to the user?
|
||||
|
||||
Arguments against:
|
||||
|
||||
Historically, these values aren't always accurate. Also, they're
|
||||
not always applicable to the display device.
|
||||
|
||||
Other options:
|
||||
|
||||
Perhaps just a pixel aspect ratio should be supported. [M. Danzer]
|
||||
|
||||
Postpone for a future extension, if needed. [A. Jackson]
|
||||
Resolution: Omit. The EGL 1.2 specification includes queries for
|
||||
the display resolution and pixel aspect ratio.
|
||||
|
||||
|
||||
6. Should detailed mode timing information be exposed by this API?
|
||||
@@ -222,7 +208,7 @@ Issues
|
||||
14. What if the physical screen size can't be determined? Should
|
||||
a query of EGL_PHYSICAL_SIZE_MESA return [0,0]?
|
||||
|
||||
TBD.
|
||||
Obsolete: EGL_PHYSICAL_SIZE_MESA not used.
|
||||
|
||||
|
||||
15. Suppose the device's number of RAMDACs is different from the
|
||||
@@ -317,7 +303,6 @@ New Tokens
|
||||
|
||||
EGL_SCREEN_COUNT_MESA
|
||||
EGL_SCREEN_POSITION_MESA
|
||||
EGL_PHYSICAL_SIZE_MESA
|
||||
EGL_SCREEN_BIT_MESA
|
||||
EGL_SCREEN_POSITION_GRANULARITY_MESA
|
||||
|
||||
@@ -488,8 +473,6 @@ Additions to Chapter X of the EGL 1.1 Specification
|
||||
EGL_SCREEN_POSITION_GRANULARITY_MESA
|
||||
Returns the granularity, in pixels, for
|
||||
which the screen position is constrained.
|
||||
EGL_PHYSICAL_SIZE_MESA Physical width and height of the screen
|
||||
in millimeters
|
||||
|
||||
Any other token will generate the error EGL_BAD_ATTRIBUTE.
|
||||
|
||||
@@ -576,3 +559,6 @@ Version History
|
||||
10. 10 August 2005 - BrianP
|
||||
Added EGL_SCREEN_POSITION_GRANULARITY_MESA.
|
||||
|
||||
11. 27 January 2006 - BrianP
|
||||
EGL_PHYSICAL_SIZE_MESA removed since EGL 1.2 has a similar feature.
|
||||
|
||||
|
||||
@@ -6,13 +6,44 @@
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include "egllog.h"
|
||||
|
||||
#define MAXSTRING 1000
|
||||
#define FALLBACK_LOG_LEVEL _EGL_DEBUG
|
||||
#define FALLBACK_LOG_LEVEL_STR "debug"
|
||||
|
||||
static EGLint ReportingLevel = -1;
|
||||
|
||||
|
||||
/* XXX init this with an env var or something */
|
||||
static EGLint ReportingLevel = _EGL_DEBUG;
|
||||
static void
|
||||
log_level_initialize (void)
|
||||
{
|
||||
char *log_env = getenv ("EGL_LOG_LEVEL");
|
||||
|
||||
if (log_env == NULL) {
|
||||
ReportingLevel = FALLBACK_LOG_LEVEL;
|
||||
}
|
||||
else if (strcasecmp (log_env, "fatal") == 0) {
|
||||
ReportingLevel = _EGL_FATAL;
|
||||
}
|
||||
else if (strcasecmp (log_env, "warning") == 0) {
|
||||
ReportingLevel = _EGL_WARNING;
|
||||
}
|
||||
else if (strcasecmp (log_env, "info") == 0) {
|
||||
ReportingLevel = _EGL_INFO;
|
||||
}
|
||||
else if (strcasecmp (log_env, "debug") == 0) {
|
||||
ReportingLevel = _EGL_DEBUG;
|
||||
}
|
||||
else {
|
||||
fprintf (stderr, "Unrecognized EGL_LOG_LEVEL environment variable value. "
|
||||
"Expected one of \"fatal\", \"warning\", \"info\", \"debug\". "
|
||||
"Got \"%s\". Falling back to \"%s\".\n",
|
||||
log_env, FALLBACK_LOG_LEVEL_STR);
|
||||
ReportingLevel = FALLBACK_LOG_LEVEL;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
@@ -25,6 +56,12 @@ _eglLog(EGLint level, const char *fmtStr, ...)
|
||||
va_list args;
|
||||
char msg[MAXSTRING];
|
||||
const char *levelStr;
|
||||
static int log_level_initialized = 0;
|
||||
|
||||
if (!log_level_initialized) {
|
||||
log_level_initialize ();
|
||||
log_level_initialized = 1;
|
||||
}
|
||||
|
||||
if (level <= ReportingLevel) {
|
||||
switch (level) {
|
||||
|
||||
@@ -173,6 +173,9 @@ void glutInit (int *argcp, char **argv)
|
||||
int RequiredWidth = 0, RequiredHeight;
|
||||
char *fbdev;
|
||||
|
||||
stack_t stack;
|
||||
struct sigaction sa;
|
||||
|
||||
/* parse out args */
|
||||
for (i = 1; i < *argcp;) {
|
||||
if (!strcmp(argv[i], "-geometry")) {
|
||||
@@ -239,7 +242,19 @@ void glutInit (int *argcp, char **argv)
|
||||
gettimeofday(&StartTime, 0);
|
||||
atexit(Cleanup);
|
||||
|
||||
signal(SIGSEGV, CrashHandler);
|
||||
/* set up SIGSEGV to use alternate stack */
|
||||
stack.ss_flags = 0;
|
||||
stack.ss_size = SIGSTKSZ;
|
||||
if(!(stack.ss_sp = malloc(SIGSTKSZ)))
|
||||
sprintf(exiterror, "Failed to allocate alternate stack for SIGSEGV!\n");
|
||||
|
||||
sigaltstack(&stack, NULL);
|
||||
|
||||
sa.sa_handler = CrashHandler;
|
||||
sa.sa_flags = SA_ONSTACK;
|
||||
sigemptyset(&sa.sa_mask);
|
||||
sigaction(SIGSEGV, &sa, NULL);
|
||||
|
||||
signal(SIGINT, CrashHandler);
|
||||
signal(SIGTERM, CrashHandler);
|
||||
signal(SIGABRT, CrashHandler);
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -177,10 +177,9 @@ static void HandleKeyPress(unsigned char key, int up)
|
||||
} else
|
||||
if(KeyboardFunc)
|
||||
KeyboardFunc(key, MouseX, MouseY);
|
||||
|
||||
/* there was no keyboard handler to provide a way to exit the program */
|
||||
if(key == 27)
|
||||
exit(0);
|
||||
else
|
||||
if(key == 27)
|
||||
exit(0); /* no handler, to provide a way to exit */
|
||||
}
|
||||
|
||||
static void HandleSpecialPress(int key, int up)
|
||||
@@ -410,14 +409,17 @@ static int ReadKey(void)
|
||||
labelval = '\b';
|
||||
break;
|
||||
case K_ENTER:
|
||||
case K_ENTER - 1: /* keypad enter */
|
||||
labelval = '\r'; break;
|
||||
}
|
||||
|
||||
/* likely a keypad input, but depends on keyboard mapping, ignore */
|
||||
if(labelval == 512)
|
||||
return 1;
|
||||
|
||||
/* dispatch callback */
|
||||
if(specialkey) {
|
||||
if(specialkey)
|
||||
HandleSpecialPress(specialkey, release);
|
||||
} else {
|
||||
else {
|
||||
char c = labelval;
|
||||
|
||||
if(KeyboardLedState & LED_CAP) {
|
||||
@@ -607,38 +609,11 @@ void InitializeVT(int usestdin)
|
||||
|
||||
signal(SIGIO, SIG_IGN);
|
||||
|
||||
/* save old terminos settings */
|
||||
if (tcgetattr(0, &OldTermios) < 0) {
|
||||
sprintf(exiterror, "tcgetattr failed\n");
|
||||
exit(0);
|
||||
}
|
||||
|
||||
tio = OldTermios;
|
||||
|
||||
/* terminos settings for straight-through mode */
|
||||
tio.c_lflag &= ~(ICANON | ECHO | ISIG);
|
||||
tio.c_iflag &= ~(ISTRIP | IGNCR | ICRNL | INLCR | IXOFF | IXON);
|
||||
tio.c_iflag |= IGNBRK;
|
||||
|
||||
tio.c_cc[VMIN] = 0;
|
||||
tio.c_cc[VTIME] = 0;
|
||||
|
||||
if (tcsetattr(0, TCSANOW, &tio) < 0) {
|
||||
sprintf(exiterror, "tcsetattr failed\n");
|
||||
exit(0);
|
||||
}
|
||||
|
||||
Active = 1;
|
||||
|
||||
if(usestdin) {
|
||||
ConsoleFD = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/* enable sigio for input */
|
||||
if(fcntl(0, F_SETFL, O_ASYNC) < 0) {
|
||||
sprintf(exiterror, "Failed to set O_ASYNC mode on fd 0\n");
|
||||
exit(0);
|
||||
goto setattribs;
|
||||
}
|
||||
|
||||
/* detect the current vt if it was not specified */
|
||||
@@ -655,7 +630,7 @@ void InitializeVT(int usestdin)
|
||||
fprintf(stderr, "Defaulting to stdin input\n");
|
||||
ConsoleFD = 0;
|
||||
close(fd);
|
||||
return;
|
||||
goto setattribs;
|
||||
}
|
||||
|
||||
CurrentVT = st.v_active;
|
||||
@@ -673,7 +648,7 @@ void InitializeVT(int usestdin)
|
||||
sprintf(exiterror, "error couldn't open %s,"
|
||||
" defaulting to stdin \n", console);
|
||||
ConsoleFD = 0;
|
||||
return;
|
||||
goto setattribs;
|
||||
}
|
||||
|
||||
signal(SIGUSR1, VTSwitchHandler);
|
||||
@@ -683,7 +658,7 @@ void InitializeVT(int usestdin)
|
||||
sprintf(exiterror,"Failed to grab %s, defaulting to stdin\n", console);
|
||||
close(ConsoleFD);
|
||||
ConsoleFD = 0;
|
||||
return;
|
||||
goto setattribs;
|
||||
}
|
||||
|
||||
vt = OldVTMode;
|
||||
@@ -715,7 +690,7 @@ void InitializeVT(int usestdin)
|
||||
exit(0);
|
||||
}
|
||||
|
||||
fcntl(0, F_SETOWN, getpid());
|
||||
fcntl(ConsoleFD, F_SETOWN, getpid());
|
||||
|
||||
if(ioctl(ConsoleFD, KDGETMODE, &OldMode) < 0)
|
||||
sprintf(exiterror, "Warning: Failed to get terminal mode\n");
|
||||
@@ -728,7 +703,6 @@ void InitializeVT(int usestdin)
|
||||
|
||||
if(ioctl(ConsoleFD, KDSKBMODE, K_MEDIUMRAW) < 0) {
|
||||
sprintf(exiterror, "ioctl KDSKBMODE failed!\n");
|
||||
tcsetattr(0, TCSANOW, &OldTermios);
|
||||
exit(0);
|
||||
}
|
||||
|
||||
@@ -736,6 +710,34 @@ void InitializeVT(int usestdin)
|
||||
sprintf(exiterror, "ioctl KDGKBLED failed!\n");
|
||||
exit(0);
|
||||
}
|
||||
|
||||
setattribs:
|
||||
/* enable async input input */
|
||||
if(fcntl(ConsoleFD, F_SETFL, O_ASYNC) < 0) {
|
||||
sprintf(exiterror, "Failed to set O_ASYNC mode on fd %d\n", ConsoleFD);
|
||||
exit(0);
|
||||
}
|
||||
|
||||
/* save old terminos settings */
|
||||
if (tcgetattr(ConsoleFD, &OldTermios) < 0) {
|
||||
sprintf(exiterror, "tcgetattr failed\n");
|
||||
exit(0);
|
||||
}
|
||||
|
||||
tio = OldTermios;
|
||||
|
||||
/* terminos settings for straight-through mode */
|
||||
tio.c_lflag &= ~(ICANON | ECHO | ISIG);
|
||||
tio.c_iflag &= ~(ISTRIP | IGNCR | ICRNL | INLCR | IXOFF | IXON);
|
||||
tio.c_iflag |= IGNBRK;
|
||||
|
||||
tio.c_cc[VMIN] = 0;
|
||||
tio.c_cc[VTIME] = 0;
|
||||
|
||||
if (tcsetattr(ConsoleFD, TCSANOW, &tio) < 0) {
|
||||
sprintf(exiterror, "tcsetattr failed\n");
|
||||
exit(0);
|
||||
}
|
||||
}
|
||||
|
||||
void RestoreVT(void)
|
||||
@@ -743,8 +745,8 @@ void RestoreVT(void)
|
||||
if(ConsoleFD < 0)
|
||||
return;
|
||||
|
||||
if (tcsetattr(0, TCSANOW, &OldTermios) < 0)
|
||||
fprintf(stderr, "tcsetattr failed\n");
|
||||
if (tcsetattr(ConsoleFD, TCSANOW, &OldTermios) < 0)
|
||||
sprintf(exiterror, "tcsetattr failed\n");
|
||||
|
||||
/* setting the mode to text from graphics restores the colormap */
|
||||
if(
|
||||
|
||||
1
src/glx/x11/.gitignore
vendored
Normal file
1
src/glx/x11/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
glcontextmodes.c
|
||||
@@ -376,7 +376,7 @@ const char *glXGetDriverConfig (const char *driverName) {
|
||||
}
|
||||
|
||||
|
||||
/* This function isn't currently used.
|
||||
/* Called from __glXFreeDisplayPrivate.
|
||||
*/
|
||||
static void driDestroyDisplay(Display *dpy, void *private)
|
||||
{
|
||||
@@ -386,8 +386,26 @@ static void driDestroyDisplay(Display *dpy, void *private)
|
||||
const int numScreens = ScreenCount(dpy);
|
||||
int i;
|
||||
for (i = 0; i < numScreens; i++) {
|
||||
if (pdpyp->libraryHandles[i])
|
||||
dlclose(pdpyp->libraryHandles[i]);
|
||||
if (pdpyp->libraryHandles[i]) {
|
||||
__DRIdriver *driver, *prev;
|
||||
|
||||
/* Remove driver from Drivers list */
|
||||
for (prev = NULL, driver = Drivers; driver;
|
||||
prev = driver, driver = driver->next) {
|
||||
if (driver->handle == pdpyp->libraryHandles[i]) {
|
||||
if (prev)
|
||||
prev->next = driver->next;
|
||||
else
|
||||
Drivers = driver->next;
|
||||
|
||||
Xfree(driver->name);
|
||||
Xfree(driver);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
dlclose(pdpyp->libraryHandles[i]);
|
||||
}
|
||||
}
|
||||
Xfree(pdpyp->libraryHandles);
|
||||
Xfree(pdpyp);
|
||||
|
||||
@@ -2883,8 +2883,9 @@ int __glXGetInternalVersion(void)
|
||||
* 20050727 - Gut all the old interfaces. This breaks compatability with
|
||||
* any DRI driver built to any previous version.
|
||||
* 20060314 - Added support for GLX_MESA_copy_sub_buffer.
|
||||
* 20070105 - Added support for damage reporting.
|
||||
*/
|
||||
return 20060314;
|
||||
return 20070105;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -48,6 +48,8 @@
|
||||
#include <stdio.h>
|
||||
#include <X11/extensions/Xext.h>
|
||||
#include <X11/extensions/extutil.h>
|
||||
#include <X11/extensions/Xfixes.h>
|
||||
#include <X11/extensions/Xdamage.h>
|
||||
#include <assert.h>
|
||||
#include "indirect_init.h"
|
||||
#include "glapi.h"
|
||||
@@ -394,6 +396,10 @@ static int __glXFreeDisplayPrivate(XExtData *extension)
|
||||
(*priv->driDisplay.destroyDisplay)(priv->dpy,
|
||||
priv->driDisplay.private);
|
||||
priv->driDisplay.private = NULL;
|
||||
if (priv->driDisplay.createNewScreen) {
|
||||
Xfree(priv->driDisplay.createNewScreen); /* free array of ptrs */
|
||||
priv->driDisplay.createNewScreen = NULL;
|
||||
}
|
||||
#endif
|
||||
|
||||
Xfree((char*) priv);
|
||||
@@ -698,6 +704,69 @@ static __DRIfuncPtr get_proc_address( const char * proc_name )
|
||||
return NULL;
|
||||
}
|
||||
|
||||
#ifdef XDAMAGE_1_1_INTERFACE
|
||||
static GLboolean has_damage_post(__DRInativeDisplay *dpy)
|
||||
{
|
||||
static GLboolean inited = GL_FALSE;
|
||||
static GLboolean has_damage;
|
||||
|
||||
if (!inited) {
|
||||
int major, minor;
|
||||
|
||||
if (XDamageQueryVersion(dpy, &major, &minor) &&
|
||||
major == 1 && minor >= 1)
|
||||
{
|
||||
has_damage = GL_TRUE;
|
||||
} else {
|
||||
has_damage = GL_FALSE;
|
||||
}
|
||||
inited = GL_TRUE;
|
||||
}
|
||||
|
||||
return has_damage;
|
||||
}
|
||||
#endif /* XDAMAGE_1_1_INTERFACE */
|
||||
|
||||
static void __glXReportDamage(__DRInativeDisplay *dpy, int screen,
|
||||
__DRIid drawable,
|
||||
int x, int y,
|
||||
drm_clip_rect_t *rects, int num_rects,
|
||||
GLboolean front_buffer)
|
||||
{
|
||||
#ifdef XDAMAGE_1_1_INTERFACE
|
||||
XRectangle *xrects;
|
||||
XserverRegion region;
|
||||
int i;
|
||||
int x_off, y_off;
|
||||
|
||||
if (!has_damage_post(dpy))
|
||||
return;
|
||||
|
||||
if (front_buffer) {
|
||||
x_off = x;
|
||||
y_off = y;
|
||||
drawable = RootWindow(dpy, screen);
|
||||
} else{
|
||||
x_off = 0;
|
||||
y_off = 0;
|
||||
}
|
||||
|
||||
xrects = malloc(sizeof(XRectangle) * num_rects);
|
||||
if (xrects == NULL)
|
||||
return;
|
||||
|
||||
for (i = 0; i < num_rects; i++) {
|
||||
xrects[i].x = rects[i].x1 + x_off;
|
||||
xrects[i].y = rects[i].y1 + y_off;
|
||||
xrects[i].width = rects[i].x2 - rects[i].x1;
|
||||
xrects[i].height = rects[i].y2 - rects[i].y1;
|
||||
}
|
||||
region = XFixesCreateRegion(dpy, xrects, num_rects);
|
||||
free(xrects);
|
||||
XDamageAdd(dpy, drawable, region);
|
||||
XFixesDestroyRegion(dpy, region);
|
||||
#endif
|
||||
}
|
||||
|
||||
/**
|
||||
* Table of functions exported by the loader to the driver.
|
||||
@@ -720,6 +789,8 @@ static const __DRIinterfaceMethods interface_methods = {
|
||||
|
||||
__glXGetUST,
|
||||
__glXGetMscRateOML,
|
||||
|
||||
__glXReportDamage,
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -474,7 +474,7 @@ __indirect_glBegin(GLenum mode)
|
||||
void
|
||||
__indirect_glBitmap(GLsizei width, GLsizei height, GLfloat xorig,
|
||||
GLfloat yorig, GLfloat xmove, GLfloat ymove,
|
||||
const GLubyte * bitmap)
|
||||
const GLubyte *bitmap)
|
||||
{
|
||||
__GLXcontext *const gc = __glXGetCurrentContext();
|
||||
const GLuint compsize =
|
||||
@@ -541,7 +541,7 @@ __indirect_glColor3b(GLbyte red, GLbyte green, GLbyte blue)
|
||||
|
||||
#define X_GLrop_Color3bv 6
|
||||
void
|
||||
__indirect_glColor3bv(const GLbyte * v)
|
||||
__indirect_glColor3bv(const GLbyte *v)
|
||||
{
|
||||
generic_3_byte(X_GLrop_Color3bv, v);
|
||||
}
|
||||
@@ -656,7 +656,7 @@ __indirect_glColor3ub(GLubyte red, GLubyte green, GLubyte blue)
|
||||
|
||||
#define X_GLrop_Color3ubv 11
|
||||
void
|
||||
__indirect_glColor3ubv(const GLubyte * v)
|
||||
__indirect_glColor3ubv(const GLubyte *v)
|
||||
{
|
||||
generic_3_byte(X_GLrop_Color3ubv, v);
|
||||
}
|
||||
@@ -726,7 +726,7 @@ __indirect_glColor4b(GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha)
|
||||
|
||||
#define X_GLrop_Color4bv 14
|
||||
void
|
||||
__indirect_glColor4bv(const GLbyte * v)
|
||||
__indirect_glColor4bv(const GLbyte *v)
|
||||
{
|
||||
generic_4_byte(X_GLrop_Color4bv, v);
|
||||
}
|
||||
@@ -847,7 +847,7 @@ __indirect_glColor4ub(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha)
|
||||
|
||||
#define X_GLrop_Color4ubv 19
|
||||
void
|
||||
__indirect_glColor4ubv(const GLubyte * v)
|
||||
__indirect_glColor4ubv(const GLubyte *v)
|
||||
{
|
||||
generic_4_byte(X_GLrop_Color4ubv, v);
|
||||
}
|
||||
@@ -1051,7 +1051,7 @@ __indirect_glNormal3b(GLbyte nx, GLbyte ny, GLbyte nz)
|
||||
|
||||
#define X_GLrop_Normal3bv 28
|
||||
void
|
||||
__indirect_glNormal3bv(const GLbyte * v)
|
||||
__indirect_glNormal3bv(const GLbyte *v)
|
||||
{
|
||||
generic_3_byte(X_GLrop_Normal3bv, v);
|
||||
}
|
||||
@@ -2584,7 +2584,7 @@ __indirect_glPolygonMode(GLenum face, GLenum mode)
|
||||
|
||||
#define X_GLrop_PolygonStipple 102
|
||||
void
|
||||
__indirect_glPolygonStipple(const GLubyte * mask)
|
||||
__indirect_glPolygonStipple(const GLubyte *mask)
|
||||
{
|
||||
__GLXcontext *const gc = __glXGetCurrentContext();
|
||||
const GLuint compsize =
|
||||
@@ -4207,7 +4207,7 @@ __indirect_glGetPixelMapusv(GLenum map, GLushort * values)
|
||||
|
||||
#define X_GLsop_GetPolygonStipple 128
|
||||
void
|
||||
__indirect_glGetPolygonStipple(GLubyte * mask)
|
||||
__indirect_glGetPolygonStipple(GLubyte *mask)
|
||||
{
|
||||
__GLXcontext *const gc = __glXGetCurrentContext();
|
||||
const __GLXattribute *const state = gc->client_state_private;
|
||||
@@ -4977,7 +4977,7 @@ __indirect_glIndexub(GLubyte c)
|
||||
|
||||
#define X_GLrop_Indexubv 194
|
||||
void
|
||||
__indirect_glIndexubv(const GLubyte * c)
|
||||
__indirect_glIndexubv(const GLubyte *c)
|
||||
{
|
||||
__GLXcontext *const gc = __glXGetCurrentContext();
|
||||
const GLuint cmdlen = 8;
|
||||
@@ -7935,7 +7935,7 @@ __indirect_glVertexAttrib3svARB(GLuint index, const GLshort * v)
|
||||
|
||||
#define X_GLrop_VertexAttrib4NbvARB 4235
|
||||
void
|
||||
__indirect_glVertexAttrib4NbvARB(GLuint index, const GLbyte * v)
|
||||
__indirect_glVertexAttrib4NbvARB(GLuint index, const GLbyte *v)
|
||||
{
|
||||
__GLXcontext *const gc = __glXGetCurrentContext();
|
||||
const GLuint cmdlen = 12;
|
||||
@@ -7999,7 +7999,7 @@ __indirect_glVertexAttrib4NubARB(GLuint index, GLubyte x, GLubyte y,
|
||||
|
||||
#define X_GLrop_VertexAttrib4NubvARB 4201
|
||||
void
|
||||
__indirect_glVertexAttrib4NubvARB(GLuint index, const GLubyte * v)
|
||||
__indirect_glVertexAttrib4NubvARB(GLuint index, const GLubyte *v)
|
||||
{
|
||||
__GLXcontext *const gc = __glXGetCurrentContext();
|
||||
const GLuint cmdlen = 12;
|
||||
@@ -8044,7 +8044,7 @@ __indirect_glVertexAttrib4NusvARB(GLuint index, const GLushort * v)
|
||||
|
||||
#define X_GLrop_VertexAttrib4bvARB 4230
|
||||
void
|
||||
__indirect_glVertexAttrib4bvARB(GLuint index, const GLbyte * v)
|
||||
__indirect_glVertexAttrib4bvARB(GLuint index, const GLbyte *v)
|
||||
{
|
||||
__GLXcontext *const gc = __glXGetCurrentContext();
|
||||
const GLuint cmdlen = 12;
|
||||
@@ -8176,7 +8176,7 @@ __indirect_glVertexAttrib4svARB(GLuint index, const GLshort * v)
|
||||
|
||||
#define X_GLrop_VertexAttrib4ubvARB 4232
|
||||
void
|
||||
__indirect_glVertexAttrib4ubvARB(GLuint index, const GLubyte * v)
|
||||
__indirect_glVertexAttrib4ubvARB(GLuint index, const GLubyte *v)
|
||||
{
|
||||
__GLXcontext *const gc = __glXGetCurrentContext();
|
||||
const GLuint cmdlen = 12;
|
||||
@@ -8556,7 +8556,7 @@ __indirect_glSecondaryColor3bEXT(GLbyte red, GLbyte green, GLbyte blue)
|
||||
|
||||
#define X_GLrop_SecondaryColor3bvEXT 4126
|
||||
void
|
||||
__indirect_glSecondaryColor3bvEXT(const GLbyte * v)
|
||||
__indirect_glSecondaryColor3bvEXT(const GLbyte *v)
|
||||
{
|
||||
generic_3_byte(X_GLrop_SecondaryColor3bvEXT, v);
|
||||
}
|
||||
@@ -8671,7 +8671,7 @@ __indirect_glSecondaryColor3ubEXT(GLubyte red, GLubyte green, GLubyte blue)
|
||||
|
||||
#define X_GLrop_SecondaryColor3ubvEXT 4131
|
||||
void
|
||||
__indirect_glSecondaryColor3ubvEXT(const GLubyte * v)
|
||||
__indirect_glSecondaryColor3ubvEXT(const GLubyte *v)
|
||||
{
|
||||
generic_3_byte(X_GLrop_SecondaryColor3ubvEXT, v);
|
||||
}
|
||||
@@ -8943,7 +8943,7 @@ __indirect_glGetProgramParameterfvNV(GLenum target, GLuint index,
|
||||
|
||||
#define X_GLvop_GetProgramStringNV 1299
|
||||
void
|
||||
__indirect_glGetProgramStringNV(GLuint id, GLenum pname, GLubyte * program)
|
||||
__indirect_glGetProgramStringNV(GLuint id, GLenum pname, GLubyte *program)
|
||||
{
|
||||
__GLXcontext *const gc = __glXGetCurrentContext();
|
||||
Display *const dpy = gc->currentDpy;
|
||||
@@ -9087,7 +9087,7 @@ __indirect_glIsProgramNV(GLuint program)
|
||||
#define X_GLrop_LoadProgramNV 4183
|
||||
void
|
||||
__indirect_glLoadProgramNV(GLenum target, GLuint id, GLsizei len,
|
||||
const GLubyte * program)
|
||||
const GLubyte *program)
|
||||
{
|
||||
__GLXcontext *const gc = __glXGetCurrentContext();
|
||||
const GLuint cmdlen = 16 + __GLX_PAD(len);
|
||||
@@ -9656,7 +9656,7 @@ __indirect_glVertexAttrib4ubNV(GLuint index, GLubyte x, GLubyte y, GLubyte z,
|
||||
|
||||
#define X_GLrop_VertexAttrib4ubvNV 4277
|
||||
void
|
||||
__indirect_glVertexAttrib4ubvNV(GLuint index, const GLubyte * v)
|
||||
__indirect_glVertexAttrib4ubvNV(GLuint index, const GLubyte *v)
|
||||
{
|
||||
__GLXcontext *const gc = __glXGetCurrentContext();
|
||||
const GLuint cmdlen = 12;
|
||||
@@ -9887,7 +9887,7 @@ __indirect_glVertexAttribs4svNV(GLuint index, GLsizei n, const GLshort * v)
|
||||
|
||||
#define X_GLrop_VertexAttribs4ubvNV 4214
|
||||
void
|
||||
__indirect_glVertexAttribs4ubvNV(GLuint index, GLsizei n, const GLubyte * v)
|
||||
__indirect_glVertexAttribs4ubvNV(GLuint index, GLsizei n, const GLubyte *v)
|
||||
{
|
||||
__GLXcontext *const gc = __glXGetCurrentContext();
|
||||
const GLuint cmdlen = 12 + __GLX_PAD((n * 4));
|
||||
@@ -9951,7 +9951,7 @@ __indirect_glActiveStencilFaceEXT(GLenum face)
|
||||
#define X_GLvop_GetProgramNamedParameterdvNV 1311
|
||||
void
|
||||
__indirect_glGetProgramNamedParameterdvNV(GLuint id, GLsizei len,
|
||||
const GLubyte * name,
|
||||
const GLubyte *name,
|
||||
GLdouble * params)
|
||||
{
|
||||
__GLXcontext *const gc = __glXGetCurrentContext();
|
||||
@@ -9975,7 +9975,7 @@ __indirect_glGetProgramNamedParameterdvNV(GLuint id, GLsizei len,
|
||||
#define X_GLvop_GetProgramNamedParameterfvNV 1310
|
||||
void
|
||||
__indirect_glGetProgramNamedParameterfvNV(GLuint id, GLsizei len,
|
||||
const GLubyte * name,
|
||||
const GLubyte *name,
|
||||
GLfloat * params)
|
||||
{
|
||||
__GLXcontext *const gc = __glXGetCurrentContext();
|
||||
@@ -9999,7 +9999,7 @@ __indirect_glGetProgramNamedParameterfvNV(GLuint id, GLsizei len,
|
||||
#define X_GLrop_ProgramNamedParameter4dvNV 4219
|
||||
void
|
||||
__indirect_glProgramNamedParameter4dNV(GLuint id, GLsizei len,
|
||||
const GLubyte * name, GLdouble x,
|
||||
const GLubyte *name, GLdouble x,
|
||||
GLdouble y, GLdouble z, GLdouble w)
|
||||
{
|
||||
__GLXcontext *const gc = __glXGetCurrentContext();
|
||||
@@ -10023,7 +10023,7 @@ __indirect_glProgramNamedParameter4dNV(GLuint id, GLsizei len,
|
||||
#define X_GLrop_ProgramNamedParameter4dvNV 4219
|
||||
void
|
||||
__indirect_glProgramNamedParameter4dvNV(GLuint id, GLsizei len,
|
||||
const GLubyte * name,
|
||||
const GLubyte *name,
|
||||
const GLdouble * v)
|
||||
{
|
||||
__GLXcontext *const gc = __glXGetCurrentContext();
|
||||
@@ -10044,7 +10044,7 @@ __indirect_glProgramNamedParameter4dvNV(GLuint id, GLsizei len,
|
||||
#define X_GLrop_ProgramNamedParameter4fvNV 4218
|
||||
void
|
||||
__indirect_glProgramNamedParameter4fNV(GLuint id, GLsizei len,
|
||||
const GLubyte * name, GLfloat x,
|
||||
const GLubyte *name, GLfloat x,
|
||||
GLfloat y, GLfloat z, GLfloat w)
|
||||
{
|
||||
__GLXcontext *const gc = __glXGetCurrentContext();
|
||||
@@ -10068,7 +10068,7 @@ __indirect_glProgramNamedParameter4fNV(GLuint id, GLsizei len,
|
||||
#define X_GLrop_ProgramNamedParameter4fvNV 4218
|
||||
void
|
||||
__indirect_glProgramNamedParameter4fvNV(GLuint id, GLsizei len,
|
||||
const GLubyte * name,
|
||||
const GLubyte *name,
|
||||
const GLfloat * v)
|
||||
{
|
||||
__GLXcontext *const gc = __glXGetCurrentContext();
|
||||
|
||||
@@ -633,7 +633,7 @@ extern HIDDEN void __indirect_glGetProgramParameterfvNV(GLenum target, GLuint in
|
||||
extern HIDDEN void __indirect_glGetProgramStringNV(GLuint id, GLenum pname, GLubyte * program);
|
||||
extern HIDDEN void __indirect_glGetProgramivNV(GLuint id, GLenum pname, GLint * params);
|
||||
extern HIDDEN void __indirect_glGetTrackMatrixivNV(GLenum target, GLuint address, GLenum pname, GLint * params);
|
||||
extern HIDDEN void __indirect_glGetVertexAttribPointervNV(GLuint index, GLenum pname, GLvoid ** params);
|
||||
extern HIDDEN void __indirect_glGetVertexAttribPointervNV(GLuint index, GLenum pname, GLvoid ** pointer);
|
||||
extern HIDDEN void __indirect_glGetVertexAttribdvNV(GLuint index, GLenum pname, GLdouble * params);
|
||||
extern HIDDEN void __indirect_glGetVertexAttribfvNV(GLuint index, GLenum pname, GLfloat * params);
|
||||
extern HIDDEN void __indirect_glGetVertexAttribivNV(GLuint index, GLenum pname, GLint * params);
|
||||
|
||||
@@ -527,7 +527,7 @@ static GLubyte *
|
||||
emit_DrawArrays_header_old( __GLXcontext * gc,
|
||||
struct array_state_vector * arrays,
|
||||
size_t * elements_per_request,
|
||||
unsigned int * total_requests,
|
||||
size_t * total_requests,
|
||||
GLenum mode, GLsizei count )
|
||||
{
|
||||
size_t command_size;
|
||||
@@ -640,7 +640,7 @@ emit_DrawArrays_old( GLenum mode, GLint first, GLsizei count )
|
||||
|
||||
GLubyte * pc;
|
||||
size_t elements_per_request;
|
||||
unsigned total_requests = 0;
|
||||
size_t total_requests = 0;
|
||||
unsigned i;
|
||||
size_t total_sent = 0;
|
||||
|
||||
@@ -770,7 +770,7 @@ emit_DrawElements_old( GLenum mode, GLsizei count, GLenum type,
|
||||
|
||||
GLubyte * pc;
|
||||
size_t elements_per_request;
|
||||
unsigned total_requests = 0;
|
||||
size_t total_requests = 0;
|
||||
unsigned i;
|
||||
unsigned req;
|
||||
|
||||
|
||||
2
src/mesa/.gitignore
vendored
Normal file
2
src/mesa/.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
*/gen_matypes
|
||||
*/matypes.h
|
||||
@@ -142,7 +142,7 @@ depend: $(ALL_SOURCES)
|
||||
@ echo "running $(MKDEP)"
|
||||
@ touch depend
|
||||
@$(MKDEP) $(MKDEP_OPTIONS) $(DEFINES) $(INCLUDE_DIRS) $(ALL_SOURCES) \
|
||||
> /dev/null
|
||||
> /dev/null 2>/dev/null
|
||||
|
||||
|
||||
subdirs:
|
||||
|
||||
@@ -1,375 +0,0 @@
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
* Version: 5.1
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* Authors:
|
||||
* Keith Whitwell <keith@tungstengraphics.com>
|
||||
*/
|
||||
|
||||
#include "glheader.h"
|
||||
#include "macros.h"
|
||||
#include "imports.h"
|
||||
#include "mtypes.h"
|
||||
|
||||
#include "array_cache/ac_context.h"
|
||||
|
||||
|
||||
/*
|
||||
* Initialize the array fallbacks. That is, by default the fallback arrays
|
||||
* point into the current vertex attribute values in ctx->Current.Attrib[]
|
||||
*/
|
||||
static void _ac_fallbacks_init( GLcontext *ctx )
|
||||
{
|
||||
ACcontext *ac = AC_CONTEXT(ctx);
|
||||
struct gl_client_array *cl;
|
||||
GLuint i;
|
||||
|
||||
cl = &ac->Fallback.Normal;
|
||||
cl->Size = 3;
|
||||
cl->Type = GL_FLOAT;
|
||||
cl->Stride = 0;
|
||||
cl->StrideB = 0;
|
||||
cl->Ptr = (GLubyte *) ctx->Current.Attrib[VERT_ATTRIB_NORMAL];
|
||||
cl->Enabled = 1;
|
||||
cl->Flags = CA_CLIENT_DATA; /* hack */
|
||||
#if FEATURE_ARB_vertex_buffer_object
|
||||
cl->BufferObj = ctx->Array.NullBufferObj;
|
||||
#endif
|
||||
|
||||
cl = &ac->Fallback.Color;
|
||||
cl->Size = 4;
|
||||
cl->Type = GL_FLOAT;
|
||||
cl->Stride = 0;
|
||||
cl->StrideB = 0;
|
||||
cl->Ptr = (GLubyte *) ctx->Current.Attrib[VERT_ATTRIB_COLOR0];
|
||||
cl->Enabled = 1;
|
||||
cl->Flags = CA_CLIENT_DATA; /* hack */
|
||||
#if FEATURE_ARB_vertex_buffer_object
|
||||
cl->BufferObj = ctx->Array.NullBufferObj;
|
||||
#endif
|
||||
|
||||
cl = &ac->Fallback.SecondaryColor;
|
||||
cl->Size = 3;
|
||||
cl->Type = GL_FLOAT;
|
||||
cl->Stride = 0;
|
||||
cl->StrideB = 0;
|
||||
cl->Ptr = (GLubyte *) ctx->Current.Attrib[VERT_ATTRIB_COLOR1];
|
||||
cl->Enabled = 1;
|
||||
cl->Flags = CA_CLIENT_DATA; /* hack */
|
||||
#if FEATURE_ARB_vertex_buffer_object
|
||||
cl->BufferObj = ctx->Array.NullBufferObj;
|
||||
#endif
|
||||
|
||||
cl = &ac->Fallback.FogCoord;
|
||||
cl->Size = 1;
|
||||
cl->Type = GL_FLOAT;
|
||||
cl->Stride = 0;
|
||||
cl->StrideB = 0;
|
||||
cl->Ptr = (GLubyte *) &ctx->Current.Attrib[VERT_ATTRIB_FOG];
|
||||
cl->Enabled = 1;
|
||||
cl->Flags = CA_CLIENT_DATA; /* hack */
|
||||
#if FEATURE_ARB_vertex_buffer_object
|
||||
cl->BufferObj = ctx->Array.NullBufferObj;
|
||||
#endif
|
||||
|
||||
cl = &ac->Fallback.Index;
|
||||
cl->Size = 1;
|
||||
cl->Type = GL_FLOAT;
|
||||
cl->Stride = 0;
|
||||
cl->StrideB = 0;
|
||||
cl->Ptr = (GLubyte *) &ctx->Current.Attrib[VERT_ATTRIB_COLOR_INDEX];
|
||||
cl->Enabled = 1;
|
||||
cl->Flags = CA_CLIENT_DATA; /* hack */
|
||||
#if FEATURE_ARB_vertex_buffer_object
|
||||
cl->BufferObj = ctx->Array.NullBufferObj;
|
||||
#endif
|
||||
|
||||
for (i = 0 ; i < MAX_TEXTURE_COORD_UNITS ; i++) {
|
||||
cl = &ac->Fallback.TexCoord[i];
|
||||
cl->Size = 4;
|
||||
cl->Type = GL_FLOAT;
|
||||
cl->Stride = 0;
|
||||
cl->StrideB = 0;
|
||||
cl->Ptr = (GLubyte *) ctx->Current.Attrib[VERT_ATTRIB_TEX0 + i];
|
||||
cl->Enabled = 1;
|
||||
cl->Flags = CA_CLIENT_DATA; /* hack */
|
||||
#if FEATURE_ARB_vertex_buffer_object
|
||||
cl->BufferObj = ctx->Array.NullBufferObj;
|
||||
#endif
|
||||
}
|
||||
|
||||
cl = &ac->Fallback.EdgeFlag;
|
||||
cl->Size = 1;
|
||||
cl->Type = GL_UNSIGNED_BYTE;
|
||||
cl->Stride = 0;
|
||||
cl->StrideB = 0;
|
||||
cl->Ptr = (GLubyte *) &ctx->Current.EdgeFlag;
|
||||
cl->Enabled = 1;
|
||||
cl->Flags = CA_CLIENT_DATA; /* hack */
|
||||
#if FEATURE_ARB_vertex_buffer_object
|
||||
cl->BufferObj = ctx->Array.NullBufferObj;
|
||||
#endif
|
||||
|
||||
for (i = 0; i < VERT_ATTRIB_MAX; i++) {
|
||||
cl = &ac->Fallback.Attrib[i];
|
||||
cl->Size = 4;
|
||||
cl->Type = GL_FLOAT;
|
||||
cl->Stride = 0;
|
||||
cl->StrideB = 0;
|
||||
cl->Ptr = (GLubyte *) ctx->Current.Attrib[i];
|
||||
cl->Enabled = 1;
|
||||
cl->Flags = CA_CLIENT_DATA; /* hack */
|
||||
#if FEATURE_ARB_vertex_buffer_object
|
||||
cl->BufferObj = ctx->Array.NullBufferObj;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Initialize the array cache pointers, types, strides, etc.
|
||||
*/
|
||||
static void _ac_cache_init( GLcontext *ctx )
|
||||
{
|
||||
ACcontext *ac = AC_CONTEXT(ctx);
|
||||
struct gl_client_array *cl;
|
||||
GLuint size = ctx->Const.MaxArrayLockSize + MAX_CLIPPED_VERTICES;
|
||||
GLuint i;
|
||||
|
||||
cl = &ac->Cache.Vertex;
|
||||
cl->Size = 4;
|
||||
cl->Type = GL_FLOAT;
|
||||
cl->Stride = 0;
|
||||
cl->StrideB = 4 * sizeof(GLfloat);
|
||||
cl->Ptr = (GLubyte *) MALLOC( cl->StrideB * size );
|
||||
cl->Enabled = 1;
|
||||
cl->Flags = 0;
|
||||
#if FEATURE_ARB_vertex_buffer_object
|
||||
cl->BufferObj = ctx->Array.NullBufferObj;
|
||||
#endif
|
||||
|
||||
cl = &ac->Cache.Normal;
|
||||
cl->Size = 3;
|
||||
cl->Type = GL_FLOAT;
|
||||
cl->Stride = 0;
|
||||
cl->StrideB = 3 * sizeof(GLfloat);
|
||||
cl->Ptr = (GLubyte *) MALLOC( cl->StrideB * size );
|
||||
cl->Enabled = 1;
|
||||
cl->Flags = 0;
|
||||
#if FEATURE_ARB_vertex_buffer_object
|
||||
cl->BufferObj = ctx->Array.NullBufferObj;
|
||||
#endif
|
||||
|
||||
cl = &ac->Cache.Color;
|
||||
cl->Size = 4;
|
||||
cl->Type = GL_FLOAT;
|
||||
cl->Stride = 0;
|
||||
cl->StrideB = 4 * sizeof(GLfloat);
|
||||
cl->Ptr = (GLubyte *) MALLOC( cl->StrideB * size );
|
||||
cl->Enabled = 1;
|
||||
cl->Flags = 0;
|
||||
#if FEATURE_ARB_vertex_buffer_object
|
||||
cl->BufferObj = ctx->Array.NullBufferObj;
|
||||
#endif
|
||||
|
||||
cl = &ac->Cache.SecondaryColor;
|
||||
cl->Size = 3;
|
||||
cl->Type = GL_FLOAT;
|
||||
cl->Stride = 0;
|
||||
cl->StrideB = 4 * sizeof(GLfloat);
|
||||
cl->Ptr = (GLubyte *) MALLOC( cl->StrideB * size );
|
||||
cl->Enabled = 1;
|
||||
cl->Flags = 0;
|
||||
#if FEATURE_ARB_vertex_buffer_object
|
||||
cl->BufferObj = ctx->Array.NullBufferObj;
|
||||
#endif
|
||||
|
||||
cl = &ac->Cache.FogCoord;
|
||||
cl->Size = 1;
|
||||
cl->Type = GL_FLOAT;
|
||||
cl->Stride = 0;
|
||||
cl->StrideB = sizeof(GLfloat);
|
||||
cl->Ptr = (GLubyte *) MALLOC( cl->StrideB * size );
|
||||
cl->Enabled = 1;
|
||||
cl->Flags = 0;
|
||||
#if FEATURE_ARB_vertex_buffer_object
|
||||
cl->BufferObj = ctx->Array.NullBufferObj;
|
||||
#endif
|
||||
|
||||
cl = &ac->Cache.Index;
|
||||
cl->Size = 1;
|
||||
cl->Type = GL_FLOAT;
|
||||
cl->Stride = 0;
|
||||
cl->StrideB = sizeof(GLfloat);
|
||||
cl->Ptr = (GLubyte *) MALLOC( cl->StrideB * size );
|
||||
cl->Enabled = 1;
|
||||
cl->Flags = 0;
|
||||
#if FEATURE_ARB_vertex_buffer_object
|
||||
cl->BufferObj = ctx->Array.NullBufferObj;
|
||||
#endif
|
||||
|
||||
for (i = 0; i < MAX_TEXTURE_COORD_UNITS; i++) {
|
||||
cl = &ac->Cache.TexCoord[i];
|
||||
cl->Size = 4;
|
||||
cl->Type = GL_FLOAT;
|
||||
cl->Stride = 0;
|
||||
cl->StrideB = 4 * sizeof(GLfloat);
|
||||
cl->Ptr = (GLubyte *) MALLOC( cl->StrideB * size );
|
||||
cl->Enabled = 1;
|
||||
cl->Flags = 0;
|
||||
#if FEATURE_ARB_vertex_buffer_object
|
||||
cl->BufferObj = ctx->Array.NullBufferObj;
|
||||
#endif
|
||||
}
|
||||
|
||||
cl = &ac->Cache.EdgeFlag;
|
||||
cl->Size = 1;
|
||||
cl->Type = GL_UNSIGNED_BYTE;
|
||||
cl->Stride = 0;
|
||||
cl->StrideB = sizeof(GLubyte);
|
||||
cl->Ptr = (GLubyte *) MALLOC( cl->StrideB * size );
|
||||
cl->Enabled = 1;
|
||||
cl->Flags = 0;
|
||||
#if FEATURE_ARB_vertex_buffer_object
|
||||
cl->BufferObj = ctx->Array.NullBufferObj;
|
||||
#endif
|
||||
|
||||
for (i = 0 ; i < VERT_ATTRIB_MAX; i++) {
|
||||
cl = &ac->Cache.Attrib[i];
|
||||
cl->Size = 4;
|
||||
cl->Type = GL_FLOAT;
|
||||
cl->Stride = 0;
|
||||
cl->StrideB = 4 * sizeof(GLfloat);
|
||||
cl->Ptr = (GLubyte *) MALLOC( cl->StrideB * size );
|
||||
cl->Enabled = 1;
|
||||
cl->Flags = 0;
|
||||
#if FEATURE_ARB_vertex_buffer_object
|
||||
cl->BufferObj = ctx->Array.NullBufferObj;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* This storage used to hold translated client data if type or stride
|
||||
* need to be fixed.
|
||||
*/
|
||||
static void _ac_elts_init( GLcontext *ctx )
|
||||
{
|
||||
ACcontext *ac = AC_CONTEXT(ctx);
|
||||
GLuint size = 1000;
|
||||
|
||||
ac->Elts = (GLuint *)MALLOC( sizeof(GLuint) * size );
|
||||
ac->elt_size = size;
|
||||
}
|
||||
|
||||
static void _ac_raw_init( GLcontext *ctx )
|
||||
{
|
||||
ACcontext *ac = AC_CONTEXT(ctx);
|
||||
GLuint i;
|
||||
|
||||
ac->Raw.Color = ac->Fallback.Color;
|
||||
ac->Raw.EdgeFlag = ac->Fallback.EdgeFlag;
|
||||
ac->Raw.FogCoord = ac->Fallback.FogCoord;
|
||||
ac->Raw.Index = ac->Fallback.Index;
|
||||
ac->Raw.Normal = ac->Fallback.Normal;
|
||||
ac->Raw.SecondaryColor = ac->Fallback.SecondaryColor;
|
||||
ac->Raw.Vertex = ctx->Array.ArrayObj->Vertex;
|
||||
|
||||
ac->IsCached.Color = GL_FALSE;
|
||||
ac->IsCached.EdgeFlag = GL_FALSE;
|
||||
ac->IsCached.FogCoord = GL_FALSE;
|
||||
ac->IsCached.Index = GL_FALSE;
|
||||
ac->IsCached.Normal = GL_FALSE;
|
||||
ac->IsCached.SecondaryColor = GL_FALSE;
|
||||
ac->IsCached.Vertex = GL_FALSE;
|
||||
|
||||
for (i = 0 ; i < MAX_TEXTURE_COORD_UNITS ; i++) {
|
||||
ac->Raw.TexCoord[i] = ac->Fallback.TexCoord[i];
|
||||
ac->IsCached.TexCoord[i] = GL_FALSE;
|
||||
}
|
||||
|
||||
for (i = 0 ; i < VERT_ATTRIB_MAX ; i++) {
|
||||
ac->Raw.Attrib[i] = ac->Fallback.Attrib[i];
|
||||
ac->IsCached.Attrib[i] = GL_FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
GLboolean _ac_CreateContext( GLcontext *ctx )
|
||||
{
|
||||
ctx->acache_context = CALLOC(sizeof(ACcontext));
|
||||
if (ctx->acache_context) {
|
||||
_ac_cache_init( ctx );
|
||||
_ac_fallbacks_init( ctx );
|
||||
_ac_raw_init( ctx );
|
||||
_ac_elts_init( ctx );
|
||||
return GL_TRUE;
|
||||
}
|
||||
return GL_FALSE;
|
||||
}
|
||||
|
||||
void _ac_DestroyContext( GLcontext *ctx )
|
||||
{
|
||||
struct gl_buffer_object *nullObj = ctx->Array.NullBufferObj;
|
||||
ACcontext *ac = AC_CONTEXT(ctx);
|
||||
GLint i;
|
||||
|
||||
/* only free vertex data if it's really a pointer to vertex data and
|
||||
* not an offset into a buffer object.
|
||||
*/
|
||||
if (ac->Cache.Vertex.Ptr && ac->Cache.Vertex.BufferObj == nullObj)
|
||||
FREE( (void *) ac->Cache.Vertex.Ptr );
|
||||
if (ac->Cache.Normal.Ptr && ac->Cache.Normal.BufferObj == nullObj)
|
||||
FREE( (void *) ac->Cache.Normal.Ptr );
|
||||
if (ac->Cache.Color.Ptr && ac->Cache.Color.BufferObj == nullObj)
|
||||
FREE( (void *) ac->Cache.Color.Ptr );
|
||||
if (ac->Cache.SecondaryColor.Ptr && ac->Cache.SecondaryColor.BufferObj == nullObj)
|
||||
FREE( (void *) ac->Cache.SecondaryColor.Ptr );
|
||||
if (ac->Cache.EdgeFlag.Ptr && ac->Cache.EdgeFlag.BufferObj == nullObj)
|
||||
FREE( (void *) ac->Cache.EdgeFlag.Ptr );
|
||||
if (ac->Cache.Index.Ptr && ac->Cache.Index.BufferObj == nullObj)
|
||||
FREE( (void *) ac->Cache.Index.Ptr );
|
||||
if (ac->Cache.FogCoord.Ptr && ac->Cache.FogCoord.BufferObj == nullObj)
|
||||
FREE( (void *) ac->Cache.FogCoord.Ptr );
|
||||
|
||||
for (i = 0; i < MAX_TEXTURE_COORD_UNITS; i++) {
|
||||
if (ac->Cache.TexCoord[i].Ptr && ac->Cache.TexCoord[i].BufferObj == nullObj)
|
||||
FREE( (void *) ac->Cache.TexCoord[i].Ptr );
|
||||
}
|
||||
|
||||
for (i = 0; i < VERT_ATTRIB_MAX; i++) {
|
||||
if (ac->Cache.Attrib[i].Ptr && ac->Cache.Attrib[i].BufferObj == nullObj)
|
||||
FREE( (void *) ac->Cache.Attrib[i].Ptr );
|
||||
}
|
||||
|
||||
if (ac->Elts)
|
||||
FREE( ac->Elts );
|
||||
|
||||
/* Free the context structure itself */
|
||||
FREE(ac);
|
||||
ctx->acache_context = NULL;
|
||||
}
|
||||
|
||||
void _ac_InvalidateState( GLcontext *ctx, GLuint new_state )
|
||||
{
|
||||
AC_CONTEXT(ctx)->NewState |= new_state;
|
||||
AC_CONTEXT(ctx)->NewArrayState |= ctx->Array.NewState;
|
||||
}
|
||||
@@ -1,99 +0,0 @@
|
||||
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
* Version: 5.1
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* Authors:
|
||||
* Keith Whitwell <keith@tungstengraphics.com>
|
||||
*/
|
||||
|
||||
#ifndef _AC_CONTEXT_H
|
||||
#define _AC_CONTEXT_H
|
||||
|
||||
#include "glheader.h"
|
||||
#include "mtypes.h"
|
||||
|
||||
#include "array_cache/acache.h"
|
||||
|
||||
/* These are used to make the ctx->Current values look like
|
||||
* arrays (with zero StrideB).
|
||||
*/
|
||||
struct ac_arrays {
|
||||
struct gl_client_array Vertex;
|
||||
struct gl_client_array Normal;
|
||||
struct gl_client_array Color;
|
||||
struct gl_client_array SecondaryColor;
|
||||
struct gl_client_array FogCoord;
|
||||
struct gl_client_array Index;
|
||||
struct gl_client_array TexCoord[MAX_TEXTURE_COORD_UNITS];
|
||||
struct gl_client_array EdgeFlag;
|
||||
struct gl_client_array Attrib[VERT_ATTRIB_MAX]; /* GL_NV_vertex_program */
|
||||
};
|
||||
|
||||
struct ac_array_pointers {
|
||||
struct gl_client_array *Vertex;
|
||||
struct gl_client_array *Normal;
|
||||
struct gl_client_array *Color;
|
||||
struct gl_client_array *SecondaryColor;
|
||||
struct gl_client_array *FogCoord;
|
||||
struct gl_client_array *Index;
|
||||
struct gl_client_array *TexCoord[MAX_TEXTURE_COORD_UNITS];
|
||||
struct gl_client_array *EdgeFlag;
|
||||
struct gl_client_array *Attrib[VERT_ATTRIB_MAX]; /* GL_NV_vertex_program */
|
||||
};
|
||||
|
||||
struct ac_array_flags {
|
||||
GLboolean Vertex;
|
||||
GLboolean Normal;
|
||||
GLboolean Color;
|
||||
GLboolean SecondaryColor;
|
||||
GLboolean FogCoord;
|
||||
GLboolean Index;
|
||||
GLboolean TexCoord[MAX_TEXTURE_COORD_UNITS];
|
||||
GLboolean EdgeFlag;
|
||||
GLboolean Attrib[VERT_ATTRIB_MAX]; /* GL_NV_vertex_program */
|
||||
};
|
||||
|
||||
|
||||
typedef struct {
|
||||
GLuint NewState; /* not needed? */
|
||||
GLuint NewArrayState;
|
||||
|
||||
/* Facility for importing and caching array data:
|
||||
*/
|
||||
struct ac_arrays Fallback;
|
||||
struct ac_arrays Cache;
|
||||
struct ac_arrays Raw;
|
||||
struct ac_array_flags IsCached;
|
||||
GLuint start;
|
||||
GLuint count;
|
||||
|
||||
/* Facility for importing element lists:
|
||||
*/
|
||||
GLuint *Elts;
|
||||
GLuint elt_size;
|
||||
|
||||
} ACcontext;
|
||||
|
||||
#define AC_CONTEXT(ctx) ((ACcontext *)ctx->acache_context)
|
||||
|
||||
#endif
|
||||
@@ -1,922 +0,0 @@
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
* Version: 6.5
|
||||
*
|
||||
* Copyright (C) 1999-2006 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.
|
||||
*
|
||||
* Authors:
|
||||
* Keith Whitwell <keith@tungstengraphics.com>
|
||||
*/
|
||||
|
||||
#include "glheader.h"
|
||||
#include "macros.h"
|
||||
#include "imports.h"
|
||||
#include "mtypes.h"
|
||||
|
||||
#include "math/m_translate.h"
|
||||
#include "array_cache/ac_context.h"
|
||||
#include "math/m_translate.h"
|
||||
|
||||
#define STRIDE_ARRAY( array, offset ) \
|
||||
do { \
|
||||
GLubyte *tmp = ADD_POINTERS( (array).BufferObj->Data, (array).Ptr ) \
|
||||
+ (offset) * (array).StrideB; \
|
||||
(array).Ptr = tmp; \
|
||||
} while (0)
|
||||
|
||||
|
||||
/* Set the array pointer back to its source when the cached data is
|
||||
* invalidated:
|
||||
*/
|
||||
static void
|
||||
reset_texcoord( GLcontext *ctx, GLuint unit )
|
||||
{
|
||||
ACcontext *ac = AC_CONTEXT(ctx);
|
||||
|
||||
if (ctx->Array.ArrayObj->TexCoord[unit].Enabled) {
|
||||
ac->Raw.TexCoord[unit] = ctx->Array.ArrayObj->TexCoord[unit];
|
||||
STRIDE_ARRAY(ac->Raw.TexCoord[unit], ac->start);
|
||||
}
|
||||
else {
|
||||
ac->Raw.TexCoord[unit] = ac->Fallback.TexCoord[unit];
|
||||
|
||||
if (ctx->Current.Attrib[VERT_ATTRIB_TEX0 + unit][3] != 1.0)
|
||||
ac->Raw.TexCoord[unit].Size = 4;
|
||||
else if (ctx->Current.Attrib[VERT_ATTRIB_TEX0 + unit][2] != 0.0)
|
||||
ac->Raw.TexCoord[unit].Size = 3;
|
||||
else
|
||||
ac->Raw.TexCoord[unit].Size = 2;
|
||||
}
|
||||
|
||||
ac->IsCached.TexCoord[unit] = GL_FALSE;
|
||||
ac->NewArrayState &= ~_NEW_ARRAY_TEXCOORD(unit);
|
||||
}
|
||||
|
||||
static void
|
||||
reset_vertex( GLcontext *ctx )
|
||||
{
|
||||
ACcontext *ac = AC_CONTEXT(ctx);
|
||||
ASSERT(ctx->Array.ArrayObj->Vertex.Enabled
|
||||
|| (ctx->VertexProgram._Enabled && ctx->Array.ArrayObj->VertexAttrib[0].Enabled));
|
||||
ac->Raw.Vertex = ctx->Array.ArrayObj->Vertex;
|
||||
STRIDE_ARRAY(ac->Raw.Vertex, ac->start);
|
||||
ac->IsCached.Vertex = GL_FALSE;
|
||||
ac->NewArrayState &= ~_NEW_ARRAY_VERTEX;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
reset_normal( GLcontext *ctx )
|
||||
{
|
||||
ACcontext *ac = AC_CONTEXT(ctx);
|
||||
|
||||
if (ctx->Array.ArrayObj->Normal.Enabled) {
|
||||
ac->Raw.Normal = ctx->Array.ArrayObj->Normal;
|
||||
STRIDE_ARRAY(ac->Raw.Normal, ac->start);
|
||||
}
|
||||
else {
|
||||
ac->Raw.Normal = ac->Fallback.Normal;
|
||||
}
|
||||
|
||||
ac->IsCached.Normal = GL_FALSE;
|
||||
ac->NewArrayState &= ~_NEW_ARRAY_NORMAL;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
reset_color( GLcontext *ctx )
|
||||
{
|
||||
ACcontext *ac = AC_CONTEXT(ctx);
|
||||
|
||||
if (ctx->Array.ArrayObj->Color.Enabled) {
|
||||
ac->Raw.Color = ctx->Array.ArrayObj->Color;
|
||||
STRIDE_ARRAY(ac->Raw.Color, ac->start);
|
||||
}
|
||||
else
|
||||
ac->Raw.Color = ac->Fallback.Color;
|
||||
|
||||
ac->IsCached.Color = GL_FALSE;
|
||||
ac->NewArrayState &= ~_NEW_ARRAY_COLOR0;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
reset_secondarycolor( GLcontext *ctx )
|
||||
{
|
||||
ACcontext *ac = AC_CONTEXT(ctx);
|
||||
|
||||
if (ctx->Array.ArrayObj->SecondaryColor.Enabled) {
|
||||
ac->Raw.SecondaryColor = ctx->Array.ArrayObj->SecondaryColor;
|
||||
STRIDE_ARRAY(ac->Raw.SecondaryColor, ac->start);
|
||||
}
|
||||
else
|
||||
ac->Raw.SecondaryColor = ac->Fallback.SecondaryColor;
|
||||
|
||||
ac->IsCached.SecondaryColor = GL_FALSE;
|
||||
ac->NewArrayState &= ~_NEW_ARRAY_COLOR1;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
reset_index( GLcontext *ctx )
|
||||
{
|
||||
ACcontext *ac = AC_CONTEXT(ctx);
|
||||
|
||||
if (ctx->Array.ArrayObj->Index.Enabled) {
|
||||
ac->Raw.Index = ctx->Array.ArrayObj->Index;
|
||||
STRIDE_ARRAY(ac->Raw.Index, ac->start);
|
||||
}
|
||||
else
|
||||
ac->Raw.Index = ac->Fallback.Index;
|
||||
|
||||
ac->IsCached.Index = GL_FALSE;
|
||||
ac->NewArrayState &= ~_NEW_ARRAY_INDEX;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
reset_fogcoord( GLcontext *ctx )
|
||||
{
|
||||
ACcontext *ac = AC_CONTEXT(ctx);
|
||||
|
||||
if (ctx->Array.ArrayObj->FogCoord.Enabled) {
|
||||
ac->Raw.FogCoord = ctx->Array.ArrayObj->FogCoord;
|
||||
STRIDE_ARRAY(ac->Raw.FogCoord, ac->start);
|
||||
}
|
||||
else
|
||||
ac->Raw.FogCoord = ac->Fallback.FogCoord;
|
||||
|
||||
ac->IsCached.FogCoord = GL_FALSE;
|
||||
ac->NewArrayState &= ~_NEW_ARRAY_FOGCOORD;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
reset_edgeflag( GLcontext *ctx )
|
||||
{
|
||||
ACcontext *ac = AC_CONTEXT(ctx);
|
||||
|
||||
if (ctx->Array.ArrayObj->EdgeFlag.Enabled) {
|
||||
ac->Raw.EdgeFlag = ctx->Array.ArrayObj->EdgeFlag;
|
||||
STRIDE_ARRAY(ac->Raw.EdgeFlag, ac->start);
|
||||
}
|
||||
else
|
||||
ac->Raw.EdgeFlag = ac->Fallback.EdgeFlag;
|
||||
|
||||
ac->IsCached.EdgeFlag = GL_FALSE;
|
||||
ac->NewArrayState &= ~_NEW_ARRAY_EDGEFLAG;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* \param index the generic vertex array number.
|
||||
*/
|
||||
static void
|
||||
reset_attrib( GLcontext *ctx, GLuint index )
|
||||
{
|
||||
ACcontext *ac = AC_CONTEXT(ctx);
|
||||
|
||||
if (ctx->Array.ArrayObj->VertexAttrib[index].Enabled) {
|
||||
ac->Raw.Attrib[index] = ctx->Array.ArrayObj->VertexAttrib[index];
|
||||
STRIDE_ARRAY(ac->Raw.Attrib[index], ac->start);
|
||||
}
|
||||
else
|
||||
ac->Raw.Attrib[index] = ac->Fallback.Attrib[index];
|
||||
|
||||
ac->IsCached.Attrib[index] = GL_FALSE;
|
||||
ac->NewArrayState &= ~_NEW_ARRAY_ATTRIB(index);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Generic import function for color data
|
||||
*/
|
||||
static void
|
||||
import( const GLcontext *ctx,
|
||||
GLenum destType,
|
||||
struct gl_client_array *to,
|
||||
const struct gl_client_array *from )
|
||||
{
|
||||
const ACcontext *ac = AC_CONTEXT(ctx);
|
||||
|
||||
if (destType == 0)
|
||||
destType = from->Type;
|
||||
|
||||
switch (destType) {
|
||||
case GL_FLOAT:
|
||||
_math_trans_4fn( (GLfloat (*)[4]) to->Ptr,
|
||||
from->Ptr,
|
||||
from->StrideB,
|
||||
from->Type,
|
||||
from->Size,
|
||||
0,
|
||||
ac->count - ac->start);
|
||||
|
||||
to->StrideB = 4 * sizeof(GLfloat);
|
||||
to->Type = GL_FLOAT;
|
||||
break;
|
||||
|
||||
case GL_UNSIGNED_BYTE:
|
||||
_math_trans_4ub( (GLubyte (*)[4]) to->Ptr,
|
||||
from->Ptr,
|
||||
from->StrideB,
|
||||
from->Type,
|
||||
from->Size,
|
||||
0,
|
||||
ac->count - ac->start);
|
||||
|
||||
to->StrideB = 4 * sizeof(GLubyte);
|
||||
to->Type = GL_UNSIGNED_BYTE;
|
||||
break;
|
||||
|
||||
case GL_UNSIGNED_SHORT:
|
||||
_math_trans_4us( (GLushort (*)[4]) to->Ptr,
|
||||
from->Ptr,
|
||||
from->StrideB,
|
||||
from->Type,
|
||||
from->Size,
|
||||
0,
|
||||
ac->count - ac->start);
|
||||
|
||||
to->StrideB = 4 * sizeof(GLushort);
|
||||
to->Type = GL_UNSIGNED_SHORT;
|
||||
break;
|
||||
|
||||
default:
|
||||
_mesa_problem(ctx, "Unexpected dest format in import()");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Functions to import array ranges with specified types and strides.
|
||||
* For example, if the vertex data is GLshort[2] and we want GLfloat[3]
|
||||
* we'll use an import function to do the data conversion.
|
||||
*/
|
||||
|
||||
static void
|
||||
import_texcoord( GLcontext *ctx, GLuint unit, GLenum type, GLuint stride )
|
||||
{
|
||||
ACcontext *ac = AC_CONTEXT(ctx);
|
||||
const struct gl_client_array *from = &ac->Raw.TexCoord[unit];
|
||||
struct gl_client_array *to = &ac->Cache.TexCoord[unit];
|
||||
(void) type; (void) stride;
|
||||
|
||||
ASSERT(unit < ctx->Const.MaxTextureCoordUnits);
|
||||
|
||||
/* Limited choices at this stage:
|
||||
*/
|
||||
ASSERT(type == GL_FLOAT);
|
||||
ASSERT(stride == 4*sizeof(GLfloat) || stride == 0);
|
||||
ASSERT(ac->count - ac->start < ctx->Const.MaxArrayLockSize);
|
||||
|
||||
_math_trans_4f( (GLfloat (*)[4]) to->Ptr,
|
||||
from->Ptr,
|
||||
from->StrideB,
|
||||
from->Type,
|
||||
from->Size,
|
||||
0,
|
||||
ac->count - ac->start);
|
||||
|
||||
to->Size = from->Size;
|
||||
to->StrideB = 4 * sizeof(GLfloat);
|
||||
to->Type = GL_FLOAT;
|
||||
ac->IsCached.TexCoord[unit] = GL_TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
import_vertex( GLcontext *ctx, GLenum type, GLuint stride )
|
||||
{
|
||||
ACcontext *ac = AC_CONTEXT(ctx);
|
||||
const struct gl_client_array *from = &ac->Raw.Vertex;
|
||||
struct gl_client_array *to = &ac->Cache.Vertex;
|
||||
(void) type; (void) stride;
|
||||
|
||||
/* Limited choices at this stage:
|
||||
*/
|
||||
ASSERT(type == GL_FLOAT);
|
||||
ASSERT(stride == 4*sizeof(GLfloat) || stride == 0);
|
||||
|
||||
_math_trans_4f( (GLfloat (*)[4]) to->Ptr,
|
||||
from->Ptr,
|
||||
from->StrideB,
|
||||
from->Type,
|
||||
from->Size,
|
||||
0,
|
||||
ac->count - ac->start);
|
||||
|
||||
to->Size = from->Size;
|
||||
to->StrideB = 4 * sizeof(GLfloat);
|
||||
to->Type = GL_FLOAT;
|
||||
ac->IsCached.Vertex = GL_TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
import_normal( GLcontext *ctx, GLenum type, GLuint stride )
|
||||
{
|
||||
ACcontext *ac = AC_CONTEXT(ctx);
|
||||
const struct gl_client_array *from = &ac->Raw.Normal;
|
||||
struct gl_client_array *to = &ac->Cache.Normal;
|
||||
(void) type; (void) stride;
|
||||
|
||||
/* Limited choices at this stage:
|
||||
*/
|
||||
ASSERT(type == GL_FLOAT);
|
||||
ASSERT(stride == 3*sizeof(GLfloat) || stride == 0);
|
||||
|
||||
_math_trans_3fn((GLfloat (*)[3]) to->Ptr,
|
||||
from->Ptr,
|
||||
from->StrideB,
|
||||
from->Type,
|
||||
0,
|
||||
ac->count - ac->start);
|
||||
|
||||
to->StrideB = 3 * sizeof(GLfloat);
|
||||
to->Type = GL_FLOAT;
|
||||
ac->IsCached.Normal = GL_TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
import_color( GLcontext *ctx, GLenum type, GLuint stride )
|
||||
{
|
||||
ACcontext *ac = AC_CONTEXT(ctx);
|
||||
const struct gl_client_array *from = &ac->Raw.Color;
|
||||
struct gl_client_array *to = &ac->Cache.Color;
|
||||
(void) stride;
|
||||
|
||||
import( ctx, type, to, from );
|
||||
|
||||
ac->IsCached.Color = GL_TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
import_index( GLcontext *ctx, GLenum type, GLuint stride )
|
||||
{
|
||||
ACcontext *ac = AC_CONTEXT(ctx);
|
||||
const struct gl_client_array *from = &ac->Raw.Index;
|
||||
struct gl_client_array *to = &ac->Cache.Index;
|
||||
(void) type; (void) stride;
|
||||
|
||||
/* Limited choices at this stage:
|
||||
*/
|
||||
ASSERT(type == GL_UNSIGNED_INT);
|
||||
ASSERT(stride == sizeof(GLuint) || stride == 0);
|
||||
|
||||
_math_trans_1ui( (GLuint *) to->Ptr,
|
||||
from->Ptr,
|
||||
from->StrideB,
|
||||
from->Type,
|
||||
0,
|
||||
ac->count - ac->start);
|
||||
|
||||
to->StrideB = sizeof(GLuint);
|
||||
to->Type = GL_UNSIGNED_INT;
|
||||
ac->IsCached.Index = GL_TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
import_secondarycolor( GLcontext *ctx, GLenum type, GLuint stride )
|
||||
{
|
||||
ACcontext *ac = AC_CONTEXT(ctx);
|
||||
const struct gl_client_array *from = &ac->Raw.SecondaryColor;
|
||||
struct gl_client_array *to = &ac->Cache.SecondaryColor;
|
||||
(void) stride;
|
||||
|
||||
import( ctx, type, to, from );
|
||||
|
||||
ac->IsCached.SecondaryColor = GL_TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
import_fogcoord( GLcontext *ctx, GLenum type, GLuint stride )
|
||||
{
|
||||
ACcontext *ac = AC_CONTEXT(ctx);
|
||||
const struct gl_client_array *from = &ac->Raw.FogCoord;
|
||||
struct gl_client_array *to = &ac->Cache.FogCoord;
|
||||
(void) type; (void) stride;
|
||||
|
||||
/* Limited choices at this stage:
|
||||
*/
|
||||
ASSERT(type == GL_FLOAT);
|
||||
ASSERT(stride == sizeof(GLfloat) || stride == 0);
|
||||
|
||||
_math_trans_1f( (GLfloat *) to->Ptr,
|
||||
from->Ptr,
|
||||
from->StrideB,
|
||||
from->Type,
|
||||
0,
|
||||
ac->count - ac->start);
|
||||
|
||||
to->StrideB = sizeof(GLfloat);
|
||||
to->Type = GL_FLOAT;
|
||||
ac->IsCached.FogCoord = GL_TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
import_edgeflag( GLcontext *ctx, GLenum type, GLuint stride )
|
||||
{
|
||||
ACcontext *ac = AC_CONTEXT(ctx);
|
||||
const struct gl_client_array *from = &ac->Raw.EdgeFlag;
|
||||
struct gl_client_array *to = &ac->Cache.EdgeFlag;
|
||||
(void) type; (void) stride;
|
||||
|
||||
/* Limited choices at this stage:
|
||||
*/
|
||||
ASSERT(type == GL_UNSIGNED_BYTE);
|
||||
ASSERT(stride == sizeof(GLubyte) || stride == 0);
|
||||
|
||||
_math_trans_1ub( (GLubyte *) to->Ptr,
|
||||
from->Ptr,
|
||||
from->StrideB,
|
||||
from->Type,
|
||||
0,
|
||||
ac->count - ac->start);
|
||||
|
||||
to->StrideB = sizeof(GLubyte);
|
||||
to->Type = GL_UNSIGNED_BYTE;
|
||||
ac->IsCached.EdgeFlag = GL_TRUE;
|
||||
}
|
||||
|
||||
/**
|
||||
* \param index the generic vertex array number
|
||||
*/
|
||||
static void
|
||||
import_attrib( GLcontext *ctx, GLuint index, GLenum type, GLuint stride )
|
||||
{
|
||||
ACcontext *ac = AC_CONTEXT(ctx);
|
||||
const struct gl_client_array *from = &ac->Raw.Attrib[index];
|
||||
struct gl_client_array *to = &ac->Cache.Attrib[index];
|
||||
(void) type; (void) stride;
|
||||
|
||||
ASSERT(index < MAX_VERTEX_PROGRAM_ATTRIBS);
|
||||
|
||||
/* Limited choices at this stage:
|
||||
*/
|
||||
ASSERT(type == GL_FLOAT);
|
||||
ASSERT(stride == 4*sizeof(GLfloat) || stride == 0);
|
||||
ASSERT(ac->count - ac->start < ctx->Const.MaxArrayLockSize);
|
||||
|
||||
if (from->Normalized) {
|
||||
_math_trans_4fn( (GLfloat (*)[4]) to->Ptr,
|
||||
from->Ptr,
|
||||
from->StrideB,
|
||||
from->Type,
|
||||
from->Size,
|
||||
0,
|
||||
ac->count - ac->start);
|
||||
}
|
||||
else {
|
||||
_math_trans_4f( (GLfloat (*)[4]) to->Ptr,
|
||||
from->Ptr,
|
||||
from->StrideB,
|
||||
from->Type,
|
||||
from->Size,
|
||||
0,
|
||||
ac->count - ac->start);
|
||||
}
|
||||
|
||||
to->Size = from->Size;
|
||||
to->StrideB = 4 * sizeof(GLfloat);
|
||||
to->Type = GL_FLOAT;
|
||||
ac->IsCached.Attrib[index] = GL_TRUE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Externals to request arrays with specific properties:
|
||||
*/
|
||||
|
||||
|
||||
struct gl_client_array *
|
||||
_ac_import_texcoord( GLcontext *ctx,
|
||||
GLuint unit,
|
||||
GLenum type,
|
||||
GLuint reqstride,
|
||||
GLuint reqsize,
|
||||
GLboolean reqwriteable,
|
||||
GLboolean *writeable )
|
||||
{
|
||||
ACcontext *ac = AC_CONTEXT(ctx);
|
||||
|
||||
ASSERT(unit < MAX_TEXTURE_COORD_UNITS);
|
||||
|
||||
/* Can we keep the existing version?
|
||||
*/
|
||||
if (ac->NewArrayState & _NEW_ARRAY_TEXCOORD(unit))
|
||||
reset_texcoord( ctx, unit );
|
||||
|
||||
/* Is the request impossible?
|
||||
*/
|
||||
if (reqsize != 0 && ac->Raw.TexCoord[unit].Size > (GLint) reqsize)
|
||||
return NULL;
|
||||
|
||||
/* Do we need to pull in a copy of the client data:
|
||||
*/
|
||||
if (ac->Raw.TexCoord[unit].Type != type ||
|
||||
(reqstride != 0 && ac->Raw.TexCoord[unit].StrideB != (GLint)reqstride) ||
|
||||
reqwriteable)
|
||||
{
|
||||
if (!ac->IsCached.TexCoord[unit])
|
||||
import_texcoord(ctx, unit, type, reqstride );
|
||||
*writeable = GL_TRUE;
|
||||
return &ac->Cache.TexCoord[unit];
|
||||
}
|
||||
else {
|
||||
*writeable = GL_FALSE;
|
||||
return &ac->Raw.TexCoord[unit];
|
||||
}
|
||||
}
|
||||
|
||||
struct gl_client_array *
|
||||
_ac_import_vertex( GLcontext *ctx,
|
||||
GLenum type,
|
||||
GLuint reqstride,
|
||||
GLuint reqsize,
|
||||
GLboolean reqwriteable,
|
||||
GLboolean *writeable )
|
||||
{
|
||||
ACcontext *ac = AC_CONTEXT(ctx);
|
||||
|
||||
/* Can we keep the existing version?
|
||||
*/
|
||||
if (ac->NewArrayState & _NEW_ARRAY_VERTEX)
|
||||
reset_vertex( ctx );
|
||||
|
||||
/* Is the request impossible?
|
||||
*/
|
||||
if (reqsize != 0 && ac->Raw.Vertex.Size > (GLint) reqsize)
|
||||
return NULL;
|
||||
|
||||
/* Do we need to pull in a copy of the client data:
|
||||
*/
|
||||
if (ac->Raw.Vertex.Type != type ||
|
||||
(reqstride != 0 && ac->Raw.Vertex.StrideB != (GLint) reqstride) ||
|
||||
reqwriteable)
|
||||
{
|
||||
if (!ac->IsCached.Vertex)
|
||||
import_vertex(ctx, type, reqstride );
|
||||
*writeable = GL_TRUE;
|
||||
return &ac->Cache.Vertex;
|
||||
}
|
||||
else {
|
||||
*writeable = GL_FALSE;
|
||||
return &ac->Raw.Vertex;
|
||||
}
|
||||
}
|
||||
|
||||
struct gl_client_array *
|
||||
_ac_import_normal( GLcontext *ctx,
|
||||
GLenum type,
|
||||
GLuint reqstride,
|
||||
GLboolean reqwriteable,
|
||||
GLboolean *writeable )
|
||||
{
|
||||
ACcontext *ac = AC_CONTEXT(ctx);
|
||||
|
||||
/* Can we keep the existing version?
|
||||
*/
|
||||
if (ac->NewArrayState & _NEW_ARRAY_NORMAL)
|
||||
reset_normal( ctx );
|
||||
|
||||
/* Do we need to pull in a copy of the client data:
|
||||
*/
|
||||
if (ac->Raw.Normal.Type != type ||
|
||||
(reqstride != 0 && ac->Raw.Normal.StrideB != (GLint) reqstride) ||
|
||||
reqwriteable)
|
||||
{
|
||||
if (!ac->IsCached.Normal)
|
||||
import_normal(ctx, type, reqstride );
|
||||
*writeable = GL_TRUE;
|
||||
return &ac->Cache.Normal;
|
||||
}
|
||||
else {
|
||||
*writeable = GL_FALSE;
|
||||
return &ac->Raw.Normal;
|
||||
}
|
||||
}
|
||||
|
||||
struct gl_client_array *
|
||||
_ac_import_color( GLcontext *ctx,
|
||||
GLenum type,
|
||||
GLuint reqstride,
|
||||
GLuint reqsize,
|
||||
GLboolean reqwriteable,
|
||||
GLboolean *writeable )
|
||||
{
|
||||
ACcontext *ac = AC_CONTEXT(ctx);
|
||||
|
||||
/* Can we keep the existing version?
|
||||
*/
|
||||
if (ac->NewArrayState & _NEW_ARRAY_COLOR0)
|
||||
reset_color( ctx );
|
||||
|
||||
/* Is the request impossible?
|
||||
*/
|
||||
if (reqsize != 0 && ac->Raw.Color.Size > (GLint) reqsize) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Do we need to pull in a copy of the client data:
|
||||
*/
|
||||
if ((type != 0 && ac->Raw.Color.Type != type) ||
|
||||
(reqstride != 0 && ac->Raw.Color.StrideB != (GLint) reqstride) ||
|
||||
reqwriteable)
|
||||
{
|
||||
if (!ac->IsCached.Color) {
|
||||
import_color(ctx, type, reqstride );
|
||||
}
|
||||
*writeable = GL_TRUE;
|
||||
return &ac->Cache.Color;
|
||||
}
|
||||
else {
|
||||
*writeable = GL_FALSE;
|
||||
return &ac->Raw.Color;
|
||||
}
|
||||
}
|
||||
|
||||
struct gl_client_array *
|
||||
_ac_import_index( GLcontext *ctx,
|
||||
GLenum type,
|
||||
GLuint reqstride,
|
||||
GLboolean reqwriteable,
|
||||
GLboolean *writeable )
|
||||
{
|
||||
ACcontext *ac = AC_CONTEXT(ctx);
|
||||
|
||||
/* Can we keep the existing version?
|
||||
*/
|
||||
if (ac->NewArrayState & _NEW_ARRAY_INDEX)
|
||||
reset_index( ctx );
|
||||
|
||||
|
||||
/* Do we need to pull in a copy of the client data:
|
||||
*/
|
||||
if (ac->Raw.Index.Type != type ||
|
||||
(reqstride != 0 && ac->Raw.Index.StrideB != (GLint) reqstride) ||
|
||||
reqwriteable)
|
||||
{
|
||||
if (!ac->IsCached.Index)
|
||||
import_index(ctx, type, reqstride );
|
||||
*writeable = GL_TRUE;
|
||||
return &ac->Cache.Index;
|
||||
}
|
||||
else {
|
||||
*writeable = GL_FALSE;
|
||||
return &ac->Raw.Index;
|
||||
}
|
||||
}
|
||||
|
||||
struct gl_client_array *
|
||||
_ac_import_secondarycolor( GLcontext *ctx,
|
||||
GLenum type,
|
||||
GLuint reqstride,
|
||||
GLuint reqsize,
|
||||
GLboolean reqwriteable,
|
||||
GLboolean *writeable )
|
||||
{
|
||||
ACcontext *ac = AC_CONTEXT(ctx);
|
||||
|
||||
/* Can we keep the existing version?
|
||||
*/
|
||||
if (ac->NewArrayState & _NEW_ARRAY_COLOR1)
|
||||
reset_secondarycolor( ctx );
|
||||
|
||||
/* Is the request impossible?
|
||||
*/
|
||||
if (reqsize != 0 && ac->Raw.SecondaryColor.Size > (GLint) reqsize)
|
||||
return NULL;
|
||||
|
||||
/* Do we need to pull in a copy of the client data:
|
||||
*/
|
||||
if ((type != 0 && ac->Raw.SecondaryColor.Type != type) ||
|
||||
(reqstride != 0 && ac->Raw.SecondaryColor.StrideB != (GLint)reqstride) ||
|
||||
reqwriteable)
|
||||
{
|
||||
if (!ac->IsCached.SecondaryColor)
|
||||
import_secondarycolor(ctx, type, reqstride );
|
||||
*writeable = GL_TRUE;
|
||||
return &ac->Cache.SecondaryColor;
|
||||
}
|
||||
else {
|
||||
*writeable = GL_FALSE;
|
||||
return &ac->Raw.SecondaryColor;
|
||||
}
|
||||
}
|
||||
|
||||
struct gl_client_array *
|
||||
_ac_import_fogcoord( GLcontext *ctx,
|
||||
GLenum type,
|
||||
GLuint reqstride,
|
||||
GLboolean reqwriteable,
|
||||
GLboolean *writeable )
|
||||
{
|
||||
ACcontext *ac = AC_CONTEXT(ctx);
|
||||
|
||||
/* Can we keep the existing version?
|
||||
*/
|
||||
if (ac->NewArrayState & _NEW_ARRAY_FOGCOORD)
|
||||
reset_fogcoord( ctx );
|
||||
|
||||
/* Do we need to pull in a copy of the client data:
|
||||
*/
|
||||
if (ac->Raw.FogCoord.Type != type ||
|
||||
(reqstride != 0 && ac->Raw.FogCoord.StrideB != (GLint) reqstride) ||
|
||||
reqwriteable)
|
||||
{
|
||||
if (!ac->IsCached.FogCoord)
|
||||
import_fogcoord(ctx, type, reqstride );
|
||||
*writeable = GL_TRUE;
|
||||
return &ac->Cache.FogCoord;
|
||||
}
|
||||
else {
|
||||
*writeable = GL_FALSE;
|
||||
return &ac->Raw.FogCoord;
|
||||
}
|
||||
}
|
||||
|
||||
struct gl_client_array *
|
||||
_ac_import_edgeflag( GLcontext *ctx,
|
||||
GLenum type,
|
||||
GLuint reqstride,
|
||||
GLboolean reqwriteable,
|
||||
GLboolean *writeable )
|
||||
{
|
||||
ACcontext *ac = AC_CONTEXT(ctx);
|
||||
|
||||
/* Can we keep the existing version?
|
||||
*/
|
||||
if (ac->NewArrayState & _NEW_ARRAY_EDGEFLAG)
|
||||
reset_edgeflag( ctx );
|
||||
|
||||
/* Do we need to pull in a copy of the client data:
|
||||
*/
|
||||
if (ac->Raw.EdgeFlag.Type != type ||
|
||||
(reqstride != 0 && ac->Raw.EdgeFlag.StrideB != (GLint) reqstride) ||
|
||||
reqwriteable)
|
||||
{
|
||||
if (!ac->IsCached.EdgeFlag)
|
||||
import_edgeflag(ctx, type, reqstride );
|
||||
*writeable = GL_TRUE;
|
||||
return &ac->Cache.EdgeFlag;
|
||||
}
|
||||
else {
|
||||
*writeable = GL_FALSE;
|
||||
return &ac->Raw.EdgeFlag;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* For GL_ARB/NV_vertex_program
|
||||
* \param index index of the vertex array, starting at zero.
|
||||
*/
|
||||
struct gl_client_array *
|
||||
_ac_import_attrib( GLcontext *ctx,
|
||||
GLuint index,
|
||||
GLenum type,
|
||||
GLuint reqstride,
|
||||
GLuint reqsize,
|
||||
GLboolean reqwriteable,
|
||||
GLboolean *writeable )
|
||||
{
|
||||
ACcontext *ac = AC_CONTEXT(ctx);
|
||||
|
||||
ASSERT(index < VERT_ATTRIB_MAX);
|
||||
|
||||
/* Can we keep the existing version?
|
||||
*/
|
||||
if (ac->NewArrayState & _NEW_ARRAY_ATTRIB(index))
|
||||
reset_attrib( ctx, index );
|
||||
|
||||
/* Is the request impossible?
|
||||
*/
|
||||
if (reqsize != 0 && ac->Raw.Attrib[index].Size > (GLint) reqsize)
|
||||
return NULL;
|
||||
|
||||
/* Do we need to pull in a copy of the client data:
|
||||
*/
|
||||
if (ac->Raw.Attrib[index].Type != type ||
|
||||
(reqstride != 0 && ac->Raw.Attrib[index].StrideB != (GLint)reqstride) ||
|
||||
reqwriteable)
|
||||
{
|
||||
if (!ac->IsCached.Attrib[index])
|
||||
import_attrib(ctx, index, type, reqstride );
|
||||
*writeable = GL_TRUE;
|
||||
return &ac->Cache.Attrib[index];
|
||||
}
|
||||
else {
|
||||
*writeable = GL_FALSE;
|
||||
return &ac->Raw.Attrib[index];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Clients must call this function to validate state and set bounds
|
||||
* before importing any data:
|
||||
*/
|
||||
void
|
||||
_ac_import_range( GLcontext *ctx, GLuint start, GLuint count )
|
||||
{
|
||||
ACcontext *ac = AC_CONTEXT(ctx);
|
||||
|
||||
if (!ctx->Array.LockCount) {
|
||||
/* Not locked, discard cached data. Changes to lock
|
||||
* status are caught via. _ac_invalidate_state().
|
||||
*/
|
||||
ac->NewArrayState = _NEW_ARRAY_ALL;
|
||||
ac->start = start;
|
||||
ac->count = count;
|
||||
}
|
||||
else {
|
||||
/* Locked, discard data for any disabled arrays. Require that
|
||||
* the whole locked range always be dealt with, otherwise hard to
|
||||
* maintain cached data in the face of clipping.
|
||||
*/
|
||||
ac->NewArrayState |= ~ctx->Array.ArrayObj->_Enabled;
|
||||
ac->start = ctx->Array.LockFirst;
|
||||
ac->count = ctx->Array.LockCount;
|
||||
ASSERT(ac->start == start); /* hmm? */
|
||||
ASSERT(ac->count == count);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Additional convienence function for importing the element list
|
||||
* for glDrawElements() and glDrawRangeElements().
|
||||
*/
|
||||
CONST void *
|
||||
_ac_import_elements( GLcontext *ctx,
|
||||
GLenum new_type,
|
||||
GLuint count,
|
||||
GLenum old_type,
|
||||
CONST void *indices )
|
||||
{
|
||||
ACcontext *ac = AC_CONTEXT(ctx);
|
||||
|
||||
if (old_type == new_type)
|
||||
return indices;
|
||||
|
||||
if (ac->elt_size < count * sizeof(GLuint)) {
|
||||
if (ac->Elts) FREE(ac->Elts);
|
||||
while (ac->elt_size < count * sizeof(GLuint))
|
||||
ac->elt_size *= 2;
|
||||
ac->Elts = (GLuint *) MALLOC(ac->elt_size);
|
||||
}
|
||||
|
||||
switch (new_type) {
|
||||
case GL_UNSIGNED_BYTE:
|
||||
ASSERT(0);
|
||||
return NULL;
|
||||
case GL_UNSIGNED_SHORT:
|
||||
ASSERT(0);
|
||||
return NULL;
|
||||
case GL_UNSIGNED_INT: {
|
||||
GLuint *out = (GLuint *)ac->Elts;
|
||||
GLuint i;
|
||||
|
||||
switch (old_type) {
|
||||
case GL_UNSIGNED_BYTE: {
|
||||
CONST GLubyte *in = (CONST GLubyte *)indices;
|
||||
for (i = 0 ; i < count ; i++)
|
||||
out[i] = in[i];
|
||||
break;
|
||||
}
|
||||
case GL_UNSIGNED_SHORT: {
|
||||
CONST GLushort *in = (CONST GLushort *)indices;
|
||||
for (i = 0 ; i < count ; i++)
|
||||
out[i] = in[i];
|
||||
break;
|
||||
}
|
||||
default:
|
||||
ASSERT(0);
|
||||
}
|
||||
|
||||
return (CONST void *)out;
|
||||
}
|
||||
default:
|
||||
ASSERT(0);
|
||||
break;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
@@ -1,132 +0,0 @@
|
||||
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
* Version: 4.1
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* Authors:
|
||||
* Keith Whitwell <keith@tungstengraphics.com>
|
||||
*/
|
||||
|
||||
#ifndef _ARRAYCACHE_H
|
||||
#define _ARRAYCACHE_H
|
||||
|
||||
#include "mtypes.h"
|
||||
|
||||
|
||||
extern GLboolean
|
||||
_ac_CreateContext( GLcontext *ctx );
|
||||
|
||||
extern void
|
||||
_ac_DestroyContext( GLcontext *ctx );
|
||||
|
||||
extern void
|
||||
_ac_InvalidateState( GLcontext *ctx, GLuint new_state );
|
||||
|
||||
extern struct gl_client_array *
|
||||
_ac_import_vertex( GLcontext *ctx,
|
||||
GLenum type,
|
||||
GLuint reqstride,
|
||||
GLuint reqsize,
|
||||
GLboolean reqwritable,
|
||||
GLboolean *writable );
|
||||
|
||||
extern struct gl_client_array *
|
||||
_ac_import_normal( GLcontext *ctx,
|
||||
GLenum type,
|
||||
GLuint reqstride,
|
||||
GLboolean reqwritable,
|
||||
GLboolean *writable );
|
||||
|
||||
extern struct gl_client_array *
|
||||
_ac_import_color( GLcontext *ctx,
|
||||
GLenum type,
|
||||
GLuint reqstride,
|
||||
GLuint reqsize,
|
||||
GLboolean reqwritable,
|
||||
GLboolean *writable );
|
||||
|
||||
extern struct gl_client_array *
|
||||
_ac_import_index( GLcontext *ctx,
|
||||
GLenum type,
|
||||
GLuint reqstride,
|
||||
GLboolean reqwritable,
|
||||
GLboolean *writable );
|
||||
|
||||
extern struct gl_client_array *
|
||||
_ac_import_secondarycolor( GLcontext *ctx,
|
||||
GLenum type,
|
||||
GLuint reqstride,
|
||||
GLuint reqsize,
|
||||
GLboolean reqwritable,
|
||||
GLboolean *writable );
|
||||
|
||||
extern struct gl_client_array *
|
||||
_ac_import_fogcoord( GLcontext *ctx,
|
||||
GLenum type,
|
||||
GLuint reqstride,
|
||||
GLboolean reqwritable,
|
||||
GLboolean *writable );
|
||||
|
||||
extern struct gl_client_array *
|
||||
_ac_import_edgeflag( GLcontext *ctx,
|
||||
GLenum type,
|
||||
GLuint reqstride,
|
||||
GLboolean reqwritable,
|
||||
GLboolean *writable );
|
||||
|
||||
extern struct gl_client_array *
|
||||
_ac_import_texcoord( GLcontext *ctx,
|
||||
GLuint unit,
|
||||
GLenum type,
|
||||
GLuint reqstride,
|
||||
GLuint reqsize,
|
||||
GLboolean reqwritable,
|
||||
GLboolean *writable );
|
||||
|
||||
extern struct gl_client_array *
|
||||
_ac_import_attrib( GLcontext *ctx,
|
||||
GLuint index,
|
||||
GLenum type,
|
||||
GLuint reqstride,
|
||||
GLuint reqsize,
|
||||
GLboolean reqwritable,
|
||||
GLboolean *writable );
|
||||
|
||||
|
||||
/* Clients must call this function to validate state and set bounds
|
||||
* before importing any data:
|
||||
*/
|
||||
extern void
|
||||
_ac_import_range( GLcontext *ctx, GLuint start, GLuint count );
|
||||
|
||||
|
||||
/* Additional convenience function:
|
||||
*/
|
||||
extern CONST void *
|
||||
_ac_import_elements( GLcontext *ctx,
|
||||
GLenum new_type,
|
||||
GLuint count,
|
||||
GLenum old_type,
|
||||
CONST void *indices );
|
||||
|
||||
|
||||
#endif
|
||||
@@ -1,37 +0,0 @@
|
||||
# Makefile for core library for VMS
|
||||
# contributed by Jouk Jansen joukj@hrem.stm.tudelft.nl
|
||||
# Last revision : 16 June 2003
|
||||
|
||||
.first
|
||||
define gl [---.include.gl]
|
||||
define math [-.math]
|
||||
define array_cache [-.array_cache]
|
||||
|
||||
.include [---]mms-config.
|
||||
|
||||
##### MACROS #####
|
||||
|
||||
VPATH = RCS
|
||||
|
||||
INCDIR = [---.include],[-.main],[-.glapi]
|
||||
LIBDIR = [---.lib]
|
||||
CFLAGS = /include=($(INCDIR),[])/define=(PTHREADS=1)/name=(as_is,short)/float=ieee/ieee=denorm
|
||||
|
||||
SOURCES = ac_context.c ac_import.c
|
||||
|
||||
OBJECTS = ac_context.obj,ac_import.obj
|
||||
##### RULES #####
|
||||
|
||||
VERSION=Mesa V3.4
|
||||
|
||||
##### TARGETS #####
|
||||
# Make the library
|
||||
$(LIBDIR)$(GL_LIB) : $(OBJECTS)
|
||||
@ library $(LIBDIR)$(GL_LIB) $(OBJECTS)
|
||||
|
||||
clean :
|
||||
purge
|
||||
delete *.obj;*
|
||||
|
||||
ac_context.obj : ac_context.c
|
||||
ac_import.obj : ac_import.c
|
||||
@@ -1,7 +0,0 @@
|
||||
MESA_ARRAY_CACHE_SOURCES = \
|
||||
ac_context.c \
|
||||
ac_import.c
|
||||
|
||||
MESA_ARRAY_CACHE_HEADERS = \
|
||||
ac_context.h \
|
||||
acache.h
|
||||
@@ -338,7 +338,7 @@ void AMesaDestroyBuffer(AMesaBuffer buffer)
|
||||
{
|
||||
if (buffer->Screen) destroy_bitmap(buffer->Screen);
|
||||
if (buffer->Background) destroy_bitmap(buffer->Background);
|
||||
_mesa_destroy_framebuffer(buffer->GLBuffer);
|
||||
_mesa_unreference_framebuffer(&buffer->GLBuffer);
|
||||
free(buffer);
|
||||
}
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ extern "C" {
|
||||
#include "texobj.h"
|
||||
#include "teximage.h"
|
||||
#include "texstore.h"
|
||||
#include "array_cache/acache.h"
|
||||
#include "vbo/vbo.h"
|
||||
#include "swrast/swrast.h"
|
||||
#include "swrast_setup/swrast_setup.h"
|
||||
#include "swrast/s_context.h"
|
||||
@@ -344,7 +344,7 @@ BGLView::BGLView(BRect rect, char *name,
|
||||
/* Initialize the software rasterizer and helper modules.
|
||||
*/
|
||||
_swrast_CreateContext(ctx);
|
||||
_ac_CreateContext(ctx);
|
||||
_vbo_CreateContext(ctx);
|
||||
_tnl_CreateContext(ctx);
|
||||
_swsetup_CreateContext(ctx);
|
||||
_swsetup_Wakeup(ctx);
|
||||
@@ -830,7 +830,7 @@ void MesaDriver::UpdateState( GLcontext *ctx, GLuint new_state )
|
||||
|
||||
_swrast_InvalidateState( ctx, new_state );
|
||||
_swsetup_InvalidateState( ctx, new_state );
|
||||
_ac_InvalidateState( ctx, new_state );
|
||||
_vbo_InvalidateState( ctx, new_state );
|
||||
_tnl_InvalidateState( ctx, new_state );
|
||||
|
||||
if (ctx->Color.DrawBuffer[0] == GL_FRONT) {
|
||||
|
||||
@@ -1,18 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2006 Claudio Ciccani <klan@users.sf.net>
|
||||
* Copyright (C) 2004-2007 Claudio Ciccani <klan@directfb.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*
|
||||
*
|
||||
* Based on glfbdev.c, written by Brian Paul.
|
||||
@@ -45,7 +46,7 @@
|
||||
#include "texformat.h"
|
||||
#include "teximage.h"
|
||||
#include "texstore.h"
|
||||
#include "array_cache/acache.h"
|
||||
#include "vbo/vbo.h"
|
||||
#include "swrast/swrast.h"
|
||||
#include "swrast_setup/swrast_setup.h"
|
||||
#include "tnl/tnl.h"
|
||||
@@ -373,7 +374,7 @@ dfbUpdateState( GLcontext *ctx, GLuint new_state )
|
||||
{
|
||||
_swrast_InvalidateState( ctx, new_state );
|
||||
_swsetup_InvalidateState( ctx, new_state );
|
||||
_ac_InvalidateState( ctx, new_state );
|
||||
_vbo_InvalidateState( ctx, new_state );
|
||||
_tnl_InvalidateState( ctx, new_state );
|
||||
}
|
||||
|
||||
@@ -786,7 +787,7 @@ directfbgl_create_context( GLcontext *context,
|
||||
}
|
||||
|
||||
_swrast_CreateContext( context );
|
||||
_ac_CreateContext( context );
|
||||
_vbo_CreateContext( context );
|
||||
_tnl_CreateContext( context );
|
||||
_swsetup_CreateContext( context );
|
||||
_swsetup_Wakeup( context );
|
||||
|
||||
@@ -431,7 +431,7 @@ void
|
||||
driBOCreateList(int target, drmBOList * list)
|
||||
{
|
||||
_glthread_LOCK_MUTEX(bmMutex);
|
||||
BM_CKFATAL(drmBOCreateList(20, list));
|
||||
BM_CKFATAL(drmBOCreateList(target, list));
|
||||
_glthread_UNLOCK_MUTEX(bmMutex);
|
||||
}
|
||||
|
||||
|
||||
@@ -340,7 +340,7 @@ static GLboolean DoBindContext(__DRInativeDisplay *dpy,
|
||||
DRM_SPINUNLOCK(&psp->pSAREA->drawable_lock, psp->drawLockID);
|
||||
}
|
||||
|
||||
if ((pdp != prp) && (!pdp->pStamp || *pdp->pStamp != pdp->lastStamp)) {
|
||||
if ((pdp != prp) && (!prp->pStamp || *prp->pStamp != prp->lastStamp)) {
|
||||
DRM_SPINLOCK(&psp->pSAREA->drawable_lock, psp->drawLockID);
|
||||
__driUtilUpdateDrawableInfo(prp);
|
||||
DRM_SPINUNLOCK(&psp->pSAREA->drawable_lock, psp->drawLockID);
|
||||
@@ -420,7 +420,7 @@ __driUtilUpdateDrawableInfo(__DRIdrawablePrivate *pdp)
|
||||
psp = pdp->driScreenPriv;
|
||||
if (!psp) {
|
||||
/* ERROR!!! */
|
||||
_mesa_problem("Warning! Possible infinite loop due to bug "
|
||||
_mesa_problem(NULL, "Warning! Possible infinite loop due to bug "
|
||||
"in file %s, line %d\n",
|
||||
__FILE__, __LINE__);
|
||||
return;
|
||||
@@ -482,8 +482,27 @@ __driUtilUpdateDrawableInfo(__DRIdrawablePrivate *pdp)
|
||||
static void driSwapBuffers( __DRInativeDisplay *dpy, void *drawablePrivate )
|
||||
{
|
||||
__DRIdrawablePrivate *dPriv = (__DRIdrawablePrivate *) drawablePrivate;
|
||||
drm_clip_rect_t rect;
|
||||
|
||||
dPriv->swapBuffers(dPriv);
|
||||
(void) dpy;
|
||||
|
||||
/* Check that we actually have the new damage report method */
|
||||
if (api_ver < 20070105 || dri_interface->reportDamage == NULL)
|
||||
return;
|
||||
|
||||
/* Assume it's affecting the whole drawable for now */
|
||||
rect.x1 = 0;
|
||||
rect.y1 = 0;
|
||||
rect.x2 = rect.x1 + dPriv->w;
|
||||
rect.y2 = rect.y1 + dPriv->h;
|
||||
|
||||
/* Report the damage. Currently, all our drivers draw directly to the
|
||||
* front buffer, so we report the damage there rather than to the backing
|
||||
* store (if any).
|
||||
*/
|
||||
(*dri_interface->reportDamage)(dpy, dPriv->screen, dPriv->draw,
|
||||
dPriv->x, dPriv->y,
|
||||
&rect, 1, GL_TRUE);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -2466,10 +2466,10 @@ static const char MultiTexCoord4ivARB_names[] =
|
||||
"";
|
||||
#endif
|
||||
|
||||
#if defined(need_GL_VERSION_2_0)
|
||||
static const char GetVertexAttribPointervARB_names[] =
|
||||
"iip\0" /* Parameter signature */
|
||||
"glGetVertexAttribPointerv\0"
|
||||
#if defined(need_GL_EXT_gpu_program_parameters)
|
||||
static const char ProgramLocalParameters4fvEXT_names[] =
|
||||
"iiip\0" /* Parameter signature */
|
||||
"glProgramLocalParameters4fvEXT\0"
|
||||
"";
|
||||
#endif
|
||||
|
||||
@@ -3152,13 +3152,6 @@ static const char VertexAttribPointerNV_names[] =
|
||||
"";
|
||||
#endif
|
||||
|
||||
#if defined(need_GL_EXT_gpu_program_parameters)
|
||||
static const char ProgramLocalParameters4fvEXT_names[] =
|
||||
"iiip\0" /* Parameter signature */
|
||||
"glProgramLocalParameters4fvEXT\0"
|
||||
"";
|
||||
#endif
|
||||
|
||||
#if defined(need_GL_EXT_framebuffer_object)
|
||||
static const char GetFramebufferAttachmentParameterivEXT_names[] =
|
||||
"iiip\0" /* Parameter signature */
|
||||
@@ -3781,9 +3774,10 @@ static const char ReplacementCodeuiColor3fVertex3fSUN_names[] =
|
||||
"";
|
||||
#endif
|
||||
|
||||
#if defined(need_GL_ARB_vertex_program) || defined(need_GL_NV_vertex_program)
|
||||
#if defined(need_GL_VERSION_2_0) || defined(need_GL_ARB_vertex_program) || defined(need_GL_NV_vertex_program)
|
||||
static const char GetVertexAttribPointervNV_names[] =
|
||||
"iip\0" /* Parameter signature */
|
||||
"glGetVertexAttribPointerv\0"
|
||||
"glGetVertexAttribPointervARB\0"
|
||||
"glGetVertexAttribPointervNV\0"
|
||||
"";
|
||||
@@ -5343,8 +5337,8 @@ static const struct dri_extension_function GL_EXT_framebuffer_object_functions[]
|
||||
|
||||
#if defined(need_GL_EXT_gpu_program_parameters)
|
||||
static const struct dri_extension_function GL_EXT_gpu_program_parameters_functions[] = {
|
||||
{ ProgramEnvParameters4fvEXT_names, ProgramEnvParameters4fvEXT_remap_index, -1 },
|
||||
{ ProgramLocalParameters4fvEXT_names, ProgramLocalParameters4fvEXT_remap_index, -1 },
|
||||
{ ProgramEnvParameters4fvEXT_names, ProgramEnvParameters4fvEXT_remap_index, -1 },
|
||||
{ NULL, 0, 0 }
|
||||
};
|
||||
#endif
|
||||
@@ -6263,7 +6257,6 @@ static const struct dri_extension_function GL_VERSION_2_0_functions[] = {
|
||||
{ GetVertexAttribfvARB_names, GetVertexAttribfvARB_remap_index, -1 },
|
||||
{ GetAttribLocationARB_names, GetAttribLocationARB_remap_index, -1 },
|
||||
{ Uniform3ivARB_names, Uniform3ivARB_remap_index, -1 },
|
||||
{ GetVertexAttribPointervARB_names, GetVertexAttribPointervARB_remap_index, -1 },
|
||||
{ VertexAttrib4sARB_names, VertexAttrib4sARB_remap_index, -1 },
|
||||
{ VertexAttrib2dvARB_names, VertexAttrib2dvARB_remap_index, -1 },
|
||||
{ VertexAttrib2fvARB_names, VertexAttrib2fvARB_remap_index, -1 },
|
||||
@@ -6295,6 +6288,7 @@ static const struct dri_extension_function GL_VERSION_2_0_functions[] = {
|
||||
{ Uniform4iARB_names, Uniform4iARB_remap_index, -1 },
|
||||
{ UseProgramObjectARB_names, UseProgramObjectARB_remap_index, -1 },
|
||||
{ DeleteProgram_names, DeleteProgram_remap_index, -1 },
|
||||
{ GetVertexAttribPointervNV_names, GetVertexAttribPointervNV_remap_index, -1 },
|
||||
{ Uniform2iARB_names, Uniform2iARB_remap_index, -1 },
|
||||
{ VertexAttrib4dARB_names, VertexAttrib4dARB_remap_index, -1 },
|
||||
{ GetUniformLocationARB_names, GetUniformLocationARB_remap_index, -1 },
|
||||
|
||||
5
src/mesa/drivers/dri/common/xmlpool/.gitignore
vendored
Normal file
5
src/mesa/drivers/dri/common/xmlpool/.gitignore
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
de
|
||||
es
|
||||
fr
|
||||
nl
|
||||
sv
|
||||
@@ -41,7 +41,7 @@
|
||||
# - info gettext
|
||||
|
||||
# The set of supported languages. Add languages as needed.
|
||||
POS=de.po es.po nl.po fr.po
|
||||
POS=de.po es.po nl.po fr.po sv.po
|
||||
|
||||
#
|
||||
# Don't change anything below, unless you know what you're doing.
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user