91 static int init_flag = 0;
200 cp[
j*dim+
k] =
s*ucp[
k] + bincoeff*
u*ucp[uinc+
k];
203 i++, poweru*=
u, ucp +=uinc)
209 cp[
j*dim+
k] =
s*
cp[
j*dim+
k] + bincoeff*poweru*ucp[
k];
275#define CN(I,J,K) cn[(I)*uinc+(J)*dim+(K)]
276#define DCN(I, J) dcn[(I)*dcuinc+(J)]
296 else if(minorder ==
uorder)
392 for(
h=2;
h<minorder-1;
h++)
416 else if(minorder ==
uorder)
432 for(
h=2;
h<minorder-1;
h++)
494 for(
h=2;
h<minorder-1;
h++)
739 map1 = &
ctx->EvalMap.Map1Vertex3;
742 map1 = &
ctx->EvalMap.Map1Vertex4;
745 map1 = &
ctx->EvalMap.Map1Index;
748 map1 = &
ctx->EvalMap.Map1Color4;
751 map1 = &
ctx->EvalMap.Map1Normal;
754 map1 = &
ctx->EvalMap.Map1Texture1;
757 map1 = &
ctx->EvalMap.Map1Texture2;
760 map1 = &
ctx->EvalMap.Map1Texture3;
763 map1 = &
ctx->EvalMap.Map1Texture4;
766 map2 = &
ctx->EvalMap.Map2Vertex3;
769 map2 = &
ctx->EvalMap.Map2Vertex4;
772 map2 = &
ctx->EvalMap.Map2Index;
775 map2 = &
ctx->EvalMap.Map2Color4;
778 map2 = &
ctx->EvalMap.Map2Normal;
781 map2 = &
ctx->EvalMap.Map2Texture1;
784 map2 = &
ctx->EvalMap.Map2Texture2;
787 map2 = &
ctx->EvalMap.Map2Texture3;
790 map2 = &
ctx->EvalMap.Map2Texture4;
877 ctx->EvalMap.Map1Vertex3.Order =
order;
878 ctx->EvalMap.Map1Vertex3.u1 =
u1;
879 ctx->EvalMap.Map1Vertex3.u2 =
u2;
880 if (
ctx->EvalMap.Map1Vertex3.Points
881 && !
ctx->EvalMap.Map1Vertex3.Retain) {
882 free(
ctx->EvalMap.Map1Vertex3.Points );
885 ctx->EvalMap.Map1Vertex3.Retain = retain;
888 ctx->EvalMap.Map1Vertex4.Order =
order;
889 ctx->EvalMap.Map1Vertex4.u1 =
u1;
890 ctx->EvalMap.Map1Vertex4.u2 =
u2;
891 if (
ctx->EvalMap.Map1Vertex4.Points
892 && !
ctx->EvalMap.Map1Vertex4.Retain) {
893 free(
ctx->EvalMap.Map1Vertex4.Points );
896 ctx->EvalMap.Map1Vertex4.Retain = retain;
899 ctx->EvalMap.Map1Index.Order =
order;
900 ctx->EvalMap.Map1Index.u1 =
u1;
901 ctx->EvalMap.Map1Index.u2 =
u2;
902 if (
ctx->EvalMap.Map1Index.Points
903 && !
ctx->EvalMap.Map1Index.Retain) {
904 free(
ctx->EvalMap.Map1Index.Points );
907 ctx->EvalMap.Map1Index.Retain = retain;
910 ctx->EvalMap.Map1Color4.Order =
order;
911 ctx->EvalMap.Map1Color4.u1 =
u1;
912 ctx->EvalMap.Map1Color4.u2 =
u2;
913 if (
ctx->EvalMap.Map1Color4.Points
914 && !
ctx->EvalMap.Map1Color4.Retain) {
915 free(
ctx->EvalMap.Map1Color4.Points );
918 ctx->EvalMap.Map1Color4.Retain = retain;
921 ctx->EvalMap.Map1Normal.Order =
order;
922 ctx->EvalMap.Map1Normal.u1 =
u1;
923 ctx->EvalMap.Map1Normal.u2 =
u2;
924 if (
ctx->EvalMap.Map1Normal.Points
925 && !
ctx->EvalMap.Map1Normal.Retain) {
926 free(
ctx->EvalMap.Map1Normal.Points );
929 ctx->EvalMap.Map1Normal.Retain = retain;
932 ctx->EvalMap.Map1Texture1.Order =
order;
933 ctx->EvalMap.Map1Texture1.u1 =
u1;
934 ctx->EvalMap.Map1Texture1.u2 =
u2;
935 if (
ctx->EvalMap.Map1Texture1.Points
936 && !
ctx->EvalMap.Map1Texture1.Retain) {
937 free(
ctx->EvalMap.Map1Texture1.Points );
940 ctx->EvalMap.Map1Texture1.Retain = retain;
943 ctx->EvalMap.Map1Texture2.Order =
order;
944 ctx->EvalMap.Map1Texture2.u1 =
u1;
945 ctx->EvalMap.Map1Texture2.u2 =
u2;
946 if (
ctx->EvalMap.Map1Texture2.Points
947 && !
ctx->EvalMap.Map1Texture2.Retain) {
948 free(
ctx->EvalMap.Map1Texture2.Points );
951 ctx->EvalMap.Map1Texture2.Retain = retain;
954 ctx->EvalMap.Map1Texture3.Order =
order;
955 ctx->EvalMap.Map1Texture3.u1 =
u1;
956 ctx->EvalMap.Map1Texture3.u2 =
u2;
957 if (
ctx->EvalMap.Map1Texture3.Points
958 && !
ctx->EvalMap.Map1Texture3.Retain) {
959 free(
ctx->EvalMap.Map1Texture3.Points );
962 ctx->EvalMap.Map1Texture3.Retain = retain;
965 ctx->EvalMap.Map1Texture4.Order =
order;
966 ctx->EvalMap.Map1Texture4.u1 =
u1;
967 ctx->EvalMap.Map1Texture4.u2 =
u2;
968 if (
ctx->EvalMap.Map1Texture4.Points
969 && !
ctx->EvalMap.Map1Texture4.Retain) {
970 free(
ctx->EvalMap.Map1Texture4.Points );
973 ctx->EvalMap.Map1Texture4.Retain = retain;
1036 ctx->EvalMap.Map2Vertex3.Uorder =
uorder;
1037 ctx->EvalMap.Map2Vertex3.u1 =
u1;
1038 ctx->EvalMap.Map2Vertex3.u2 =
u2;
1039 ctx->EvalMap.Map2Vertex3.Vorder =
vorder;
1040 ctx->EvalMap.Map2Vertex3.v1 =
v1;
1041 ctx->EvalMap.Map2Vertex3.v2 =
v2;
1042 if (
ctx->EvalMap.Map2Vertex3.Points
1043 && !
ctx->EvalMap.Map2Vertex3.Retain) {
1044 free(
ctx->EvalMap.Map2Vertex3.Points );
1046 ctx->EvalMap.Map2Vertex3.Retain = retain;
1050 ctx->EvalMap.Map2Vertex4.Uorder =
uorder;
1051 ctx->EvalMap.Map2Vertex4.u1 =
u1;
1052 ctx->EvalMap.Map2Vertex4.u2 =
u2;
1053 ctx->EvalMap.Map2Vertex4.Vorder =
vorder;
1054 ctx->EvalMap.Map2Vertex4.v1 =
v1;
1055 ctx->EvalMap.Map2Vertex4.v2 =
v2;
1056 if (
ctx->EvalMap.Map2Vertex4.Points
1057 && !
ctx->EvalMap.Map2Vertex4.Retain) {
1058 free(
ctx->EvalMap.Map2Vertex4.Points );
1061 ctx->EvalMap.Map2Vertex4.Retain = retain;
1065 ctx->EvalMap.Map2Index.u1 =
u1;
1066 ctx->EvalMap.Map2Index.u2 =
u2;
1068 ctx->EvalMap.Map2Index.v1 =
v1;
1069 ctx->EvalMap.Map2Index.v2 =
v2;
1070 if (
ctx->EvalMap.Map2Index.Points
1071 && !
ctx->EvalMap.Map2Index.Retain) {
1072 free(
ctx->EvalMap.Map2Index.Points );
1074 ctx->EvalMap.Map2Index.Retain = retain;
1078 ctx->EvalMap.Map2Color4.Uorder =
uorder;
1079 ctx->EvalMap.Map2Color4.u1 =
u1;
1080 ctx->EvalMap.Map2Color4.u2 =
u2;
1081 ctx->EvalMap.Map2Color4.Vorder =
vorder;
1082 ctx->EvalMap.Map2Color4.v1 =
v1;
1083 ctx->EvalMap.Map2Color4.v2 =
v2;
1084 if (
ctx->EvalMap.Map2Color4.Points
1085 && !
ctx->EvalMap.Map2Color4.Retain) {
1086 free(
ctx->EvalMap.Map2Color4.Points );
1088 ctx->EvalMap.Map2Color4.Retain = retain;
1092 ctx->EvalMap.Map2Normal.Uorder =
uorder;
1093 ctx->EvalMap.Map2Normal.u1 =
u1;
1094 ctx->EvalMap.Map2Normal.u2 =
u2;
1095 ctx->EvalMap.Map2Normal.Vorder =
vorder;
1096 ctx->EvalMap.Map2Normal.v1 =
v1;
1097 ctx->EvalMap.Map2Normal.v2 =
v2;
1098 if (
ctx->EvalMap.Map2Normal.Points
1099 && !
ctx->EvalMap.Map2Normal.Retain) {
1100 free(
ctx->EvalMap.Map2Normal.Points );
1102 ctx->EvalMap.Map2Normal.Retain = retain;
1106 ctx->EvalMap.Map2Texture1.Uorder =
uorder;
1107 ctx->EvalMap.Map2Texture1.u1 =
u1;
1108 ctx->EvalMap.Map2Texture1.u2 =
u2;
1109 ctx->EvalMap.Map2Texture1.Vorder =
vorder;
1110 ctx->EvalMap.Map2Texture1.v1 =
v1;
1111 ctx->EvalMap.Map2Texture1.v2 =
v2;
1112 if (
ctx->EvalMap.Map2Texture1.Points
1113 && !
ctx->EvalMap.Map2Texture1.Retain) {
1114 free(
ctx->EvalMap.Map2Texture1.Points );
1116 ctx->EvalMap.Map2Texture1.Retain = retain;
1120 ctx->EvalMap.Map2Texture2.Uorder =
uorder;
1121 ctx->EvalMap.Map2Texture2.u1 =
u1;
1122 ctx->EvalMap.Map2Texture2.u2 =
u2;
1123 ctx->EvalMap.Map2Texture2.Vorder =
vorder;
1124 ctx->EvalMap.Map2Texture2.v1 =
v1;
1125 ctx->EvalMap.Map2Texture2.v2 =
v2;
1126 if (
ctx->EvalMap.Map2Texture2.Points
1127 && !
ctx->EvalMap.Map2Texture2.Retain) {
1128 free(
ctx->EvalMap.Map2Texture2.Points );
1130 ctx->EvalMap.Map2Texture2.Retain = retain;
1134 ctx->EvalMap.Map2Texture3.Uorder =
uorder;
1135 ctx->EvalMap.Map2Texture3.u1 =
u1;
1136 ctx->EvalMap.Map2Texture3.u2 =
u2;
1137 ctx->EvalMap.Map2Texture3.Vorder =
vorder;
1138 ctx->EvalMap.Map2Texture3.v1 =
v1;
1139 ctx->EvalMap.Map2Texture3.v2 =
v2;
1140 if (
ctx->EvalMap.Map2Texture3.Points
1141 && !
ctx->EvalMap.Map2Texture3.Retain) {
1142 free(
ctx->EvalMap.Map2Texture3.Points );
1144 ctx->EvalMap.Map2Texture3.Retain = retain;
1148 ctx->EvalMap.Map2Texture4.Uorder =
uorder;
1149 ctx->EvalMap.Map2Texture4.u1 =
u1;
1150 ctx->EvalMap.Map2Texture4.u2 =
u2;
1151 ctx->EvalMap.Map2Texture4.Vorder =
vorder;
1152 ctx->EvalMap.Map2Texture4.v1 =
v1;
1153 ctx->EvalMap.Map2Texture4.v2 =
v2;
1154 if (
ctx->EvalMap.Map2Texture4.Points
1155 && !
ctx->EvalMap.Map2Texture4.Retain) {
1156 free(
ctx->EvalMap.Map2Texture4.Points );
1158 ctx->EvalMap.Map2Texture4.Retain = retain;
1179 data =
ctx->EvalMap.Map1Color4.Points;
1180 n =
ctx->EvalMap.Map1Color4.Order * 4;
1183 data =
ctx->EvalMap.Map1Index.Points;
1184 n =
ctx->EvalMap.Map1Index.Order;
1187 data =
ctx->EvalMap.Map1Normal.Points;
1188 n =
ctx->EvalMap.Map1Normal.Order * 3;
1191 data =
ctx->EvalMap.Map1Texture1.Points;
1192 n =
ctx->EvalMap.Map1Texture1.Order * 1;
1195 data =
ctx->EvalMap.Map1Texture2.Points;
1196 n =
ctx->EvalMap.Map1Texture2.Order * 2;
1199 data =
ctx->EvalMap.Map1Texture3.Points;
1200 n =
ctx->EvalMap.Map1Texture3.Order * 3;
1203 data =
ctx->EvalMap.Map1Texture4.Points;
1204 n =
ctx->EvalMap.Map1Texture4.Order * 4;
1207 data =
ctx->EvalMap.Map1Vertex3.Points;
1208 n =
ctx->EvalMap.Map1Vertex3.Order * 3;
1211 data =
ctx->EvalMap.Map1Vertex4.Points;
1212 n =
ctx->EvalMap.Map1Vertex4.Order * 4;
1215 data =
ctx->EvalMap.Map2Color4.Points;
1216 n =
ctx->EvalMap.Map2Color4.Uorder
1217 *
ctx->EvalMap.Map2Color4.Vorder * 4;
1220 data =
ctx->EvalMap.Map2Index.Points;
1221 n =
ctx->EvalMap.Map2Index.Uorder
1222 *
ctx->EvalMap.Map2Index.Vorder;
1225 data =
ctx->EvalMap.Map2Normal.Points;
1226 n =
ctx->EvalMap.Map2Normal.Uorder
1227 *
ctx->EvalMap.Map2Normal.Vorder * 3;
1230 data =
ctx->EvalMap.Map2Texture1.Points;
1231 n =
ctx->EvalMap.Map2Texture1.Uorder
1232 *
ctx->EvalMap.Map2Texture1.Vorder * 1;
1235 data =
ctx->EvalMap.Map2Texture2.Points;
1236 n =
ctx->EvalMap.Map2Texture2.Uorder
1237 *
ctx->EvalMap.Map2Texture2.Vorder * 2;
1240 data =
ctx->EvalMap.Map2Texture3.Points;
1241 n =
ctx->EvalMap.Map2Texture3.Uorder
1242 *
ctx->EvalMap.Map2Texture3.Vorder * 3;
1245 data =
ctx->EvalMap.Map2Texture4.Points;
1246 n =
ctx->EvalMap.Map2Texture4.Uorder
1247 *
ctx->EvalMap.Map2Texture4.Vorder * 4;
1250 data =
ctx->EvalMap.Map2Vertex3.Points;
1251 n =
ctx->EvalMap.Map2Vertex3.Uorder
1252 *
ctx->EvalMap.Map2Vertex3.Vorder * 3;
1255 data =
ctx->EvalMap.Map2Vertex4.Points;
1256 n =
ctx->EvalMap.Map2Vertex4.Uorder
1257 *
ctx->EvalMap.Map2Vertex4.Vorder * 4;
1271 *
v =
ctx->EvalMap.Map1Color4.Order;
1274 *
v =
ctx->EvalMap.Map1Index.Order;
1277 *
v =
ctx->EvalMap.Map1Normal.Order;
1280 *
v =
ctx->EvalMap.Map1Texture1.Order;
1283 *
v =
ctx->EvalMap.Map1Texture2.Order;
1286 *
v =
ctx->EvalMap.Map1Texture3.Order;
1289 *
v =
ctx->EvalMap.Map1Texture4.Order;
1292 *
v =
ctx->EvalMap.Map1Vertex3.Order;
1295 *
v =
ctx->EvalMap.Map1Vertex4.Order;
1298 v[0] =
ctx->EvalMap.Map2Color4.Uorder;
1299 v[1] =
ctx->EvalMap.Map2Color4.Vorder;
1302 v[0] =
ctx->EvalMap.Map2Index.Uorder;
1303 v[1] =
ctx->EvalMap.Map2Index.Vorder;
1306 v[0] =
ctx->EvalMap.Map2Normal.Uorder;
1307 v[1] =
ctx->EvalMap.Map2Normal.Vorder;
1310 v[0] =
ctx->EvalMap.Map2Texture1.Uorder;
1311 v[1] =
ctx->EvalMap.Map2Texture1.Vorder;
1314 v[0] =
ctx->EvalMap.Map2Texture2.Uorder;
1315 v[1] =
ctx->EvalMap.Map2Texture2.Vorder;
1318 v[0] =
ctx->EvalMap.Map2Texture3.Uorder;
1319 v[1] =
ctx->EvalMap.Map2Texture3.Vorder;
1322 v[0] =
ctx->EvalMap.Map2Texture4.Uorder;
1323 v[1] =
ctx->EvalMap.Map2Texture4.Vorder;
1326 v[0] =
ctx->EvalMap.Map2Vertex3.Uorder;
1327 v[1] =
ctx->EvalMap.Map2Vertex3.Vorder;
1330 v[0] =
ctx->EvalMap.Map2Vertex4.Uorder;
1331 v[1] =
ctx->EvalMap.Map2Vertex4.Vorder;
1340 v[0] =
ctx->EvalMap.Map1Color4.u1;
1341 v[1] =
ctx->EvalMap.Map1Color4.u2;
1344 v[0] =
ctx->EvalMap.Map1Index.u1;
1345 v[1] =
ctx->EvalMap.Map1Index.u2;
1348 v[0] =
ctx->EvalMap.Map1Normal.u1;
1349 v[1] =
ctx->EvalMap.Map1Normal.u2;
1352 v[0] =
ctx->EvalMap.Map1Texture1.u1;
1353 v[1] =
ctx->EvalMap.Map1Texture1.u2;
1356 v[0] =
ctx->EvalMap.Map1Texture2.u1;
1357 v[1] =
ctx->EvalMap.Map1Texture2.u2;
1360 v[0] =
ctx->EvalMap.Map1Texture3.u1;
1361 v[1] =
ctx->EvalMap.Map1Texture3.u2;
1364 v[0] =
ctx->EvalMap.Map1Texture4.u1;
1365 v[1] =
ctx->EvalMap.Map1Texture4.u2;
1368 v[0] =
ctx->EvalMap.Map1Vertex3.u1;
1369 v[1] =
ctx->EvalMap.Map1Vertex3.u2;
1372 v[0] =
ctx->EvalMap.Map1Vertex4.u1;
1373 v[1] =
ctx->EvalMap.Map1Vertex4.u2;
1376 v[0] =
ctx->EvalMap.Map2Color4.u1;
1377 v[1] =
ctx->EvalMap.Map2Color4.u2;
1378 v[2] =
ctx->EvalMap.Map2Color4.v1;
1379 v[3] =
ctx->EvalMap.Map2Color4.v2;
1382 v[0] =
ctx->EvalMap.Map2Index.u1;
1383 v[1] =
ctx->EvalMap.Map2Index.u2;
1384 v[2] =
ctx->EvalMap.Map2Index.v1;
1385 v[3] =
ctx->EvalMap.Map2Index.v2;
1388 v[0] =
ctx->EvalMap.Map2Normal.u1;
1389 v[1] =
ctx->EvalMap.Map2Normal.u2;
1390 v[2] =
ctx->EvalMap.Map2Normal.v1;
1391 v[3] =
ctx->EvalMap.Map2Normal.v2;
1394 v[0] =
ctx->EvalMap.Map2Texture1.u1;
1395 v[1] =
ctx->EvalMap.Map2Texture1.u2;
1396 v[2] =
ctx->EvalMap.Map2Texture1.v1;
1397 v[3] =
ctx->EvalMap.Map2Texture1.v2;
1400 v[0] =
ctx->EvalMap.Map2Texture2.u1;
1401 v[1] =
ctx->EvalMap.Map2Texture2.u2;
1402 v[2] =
ctx->EvalMap.Map2Texture2.v1;
1403 v[3] =
ctx->EvalMap.Map2Texture2.v2;
1406 v[0] =
ctx->EvalMap.Map2Texture3.u1;
1407 v[1] =
ctx->EvalMap.Map2Texture3.u2;
1408 v[2] =
ctx->EvalMap.Map2Texture3.v1;
1409 v[3] =
ctx->EvalMap.Map2Texture3.v2;
1412 v[0] =
ctx->EvalMap.Map2Texture4.u1;
1413 v[1] =
ctx->EvalMap.Map2Texture4.u2;
1414 v[2] =
ctx->EvalMap.Map2Texture4.v1;
1415 v[3] =
ctx->EvalMap.Map2Texture4.v2;
1418 v[0] =
ctx->EvalMap.Map2Vertex3.u1;
1419 v[1] =
ctx->EvalMap.Map2Vertex3.u2;
1420 v[2] =
ctx->EvalMap.Map2Vertex3.v1;
1421 v[3] =
ctx->EvalMap.Map2Vertex3.v2;
1424 v[0] =
ctx->EvalMap.Map2Vertex4.u1;
1425 v[1] =
ctx->EvalMap.Map2Vertex4.u2;
1426 v[2] =
ctx->EvalMap.Map2Vertex4.v1;
1427 v[3] =
ctx->EvalMap.Map2Vertex4.v2;
1448 data =
ctx->EvalMap.Map1Color4.Points;
1449 n =
ctx->EvalMap.Map1Color4.Order * 4;
1452 data =
ctx->EvalMap.Map1Index.Points;
1453 n =
ctx->EvalMap.Map1Index.Order;
1456 data =
ctx->EvalMap.Map1Normal.Points;
1457 n =
ctx->EvalMap.Map1Normal.Order * 3;
1460 data =
ctx->EvalMap.Map1Texture1.Points;
1461 n =
ctx->EvalMap.Map1Texture1.Order * 1;
1464 data =
ctx->EvalMap.Map1Texture2.Points;
1465 n =
ctx->EvalMap.Map1Texture2.Order * 2;
1468 data =
ctx->EvalMap.Map1Texture3.Points;
1469 n =
ctx->EvalMap.Map1Texture3.Order * 3;
1472 data =
ctx->EvalMap.Map1Texture4.Points;
1473 n =
ctx->EvalMap.Map1Texture4.Order * 4;
1476 data =
ctx->EvalMap.Map1Vertex3.Points;
1477 n =
ctx->EvalMap.Map1Vertex3.Order * 3;
1480 data =
ctx->EvalMap.Map1Vertex4.Points;
1481 n =
ctx->EvalMap.Map1Vertex4.Order * 4;
1484 data =
ctx->EvalMap.Map2Color4.Points;
1485 n =
ctx->EvalMap.Map2Color4.Uorder
1486 *
ctx->EvalMap.Map2Color4.Vorder * 4;
1489 data =
ctx->EvalMap.Map2Index.Points;
1490 n =
ctx->EvalMap.Map2Index.Uorder
1491 *
ctx->EvalMap.Map2Index.Vorder;
1494 data =
ctx->EvalMap.Map2Normal.Points;
1495 n =
ctx->EvalMap.Map2Normal.Uorder
1496 *
ctx->EvalMap.Map2Normal.Vorder * 3;
1499 data =
ctx->EvalMap.Map2Texture1.Points;
1500 n =
ctx->EvalMap.Map2Texture1.Uorder
1501 *
ctx->EvalMap.Map2Texture1.Vorder * 1;
1504 data =
ctx->EvalMap.Map2Texture2.Points;
1505 n =
ctx->EvalMap.Map2Texture2.Uorder
1506 *
ctx->EvalMap.Map2Texture2.Vorder * 2;
1509 data =
ctx->EvalMap.Map2Texture3.Points;
1510 n =
ctx->EvalMap.Map2Texture3.Uorder
1511 *
ctx->EvalMap.Map2Texture3.Vorder * 3;
1514 data =
ctx->EvalMap.Map2Texture4.Points;
1515 n =
ctx->EvalMap.Map2Texture4.Uorder
1516 *
ctx->EvalMap.Map2Texture4.Vorder * 4;
1519 data =
ctx->EvalMap.Map2Vertex3.Points;
1520 n =
ctx->EvalMap.Map2Vertex3.Uorder
1521 *
ctx->EvalMap.Map2Vertex3.Vorder * 3;
1524 data =
ctx->EvalMap.Map2Vertex4.Points;
1525 n =
ctx->EvalMap.Map2Vertex4.Uorder
1526 *
ctx->EvalMap.Map2Vertex4.Vorder * 4;
1540 *
v =
ctx->EvalMap.Map1Color4.Order;
1543 *
v =
ctx->EvalMap.Map1Index.Order;
1546 *
v =
ctx->EvalMap.Map1Normal.Order;
1549 *
v =
ctx->EvalMap.Map1Texture1.Order;
1552 *
v =
ctx->EvalMap.Map1Texture2.Order;
1555 *
v =
ctx->EvalMap.Map1Texture3.Order;
1558 *
v =
ctx->EvalMap.Map1Texture4.Order;
1561 *
v =
ctx->EvalMap.Map1Vertex3.Order;
1564 *
v =
ctx->EvalMap.Map1Vertex4.Order;
1567 v[0] =
ctx->EvalMap.Map2Color4.Uorder;
1568 v[1] =
ctx->EvalMap.Map2Color4.Vorder;
1571 v[0] =
ctx->EvalMap.Map2Index.Uorder;
1572 v[1] =
ctx->EvalMap.Map2Index.Vorder;
1575 v[0] =
ctx->EvalMap.Map2Normal.Uorder;
1576 v[1] =
ctx->EvalMap.Map2Normal.Vorder;
1579 v[0] =
ctx->EvalMap.Map2Texture1.Uorder;
1580 v[1] =
ctx->EvalMap.Map2Texture1.Vorder;
1583 v[0] =
ctx->EvalMap.Map2Texture2.Uorder;
1584 v[1] =
ctx->EvalMap.Map2Texture2.Vorder;
1587 v[0] =
ctx->EvalMap.Map2Texture3.Uorder;
1588 v[1] =
ctx->EvalMap.Map2Texture3.Vorder;
1591 v[0] =
ctx->EvalMap.Map2Texture4.Uorder;
1592 v[1] =
ctx->EvalMap.Map2Texture4.Vorder;
1595 v[0] =
ctx->EvalMap.Map2Vertex3.Uorder;
1596 v[1] =
ctx->EvalMap.Map2Vertex3.Vorder;
1599 v[0] =
ctx->EvalMap.Map2Vertex4.Uorder;
1600 v[1] =
ctx->EvalMap.Map2Vertex4.Vorder;
1609 v[0] =
ctx->EvalMap.Map1Color4.u1;
1610 v[1] =
ctx->EvalMap.Map1Color4.u2;
1613 v[0] =
ctx->EvalMap.Map1Index.u1;
1614 v[1] =
ctx->EvalMap.Map1Index.u2;
1617 v[0] =
ctx->EvalMap.Map1Normal.u1;
1618 v[1] =
ctx->EvalMap.Map1Normal.u2;
1621 v[0] =
ctx->EvalMap.Map1Texture1.u1;
1622 v[1] =
ctx->EvalMap.Map1Texture1.u2;
1625 v[0] =
ctx->EvalMap.Map1Texture2.u1;
1626 v[1] =
ctx->EvalMap.Map1Texture2.u2;
1629 v[0] =
ctx->EvalMap.Map1Texture3.u1;
1630 v[1] =
ctx->EvalMap.Map1Texture3.u2;
1633 v[0] =
ctx->EvalMap.Map1Texture4.u1;
1634 v[1] =
ctx->EvalMap.Map1Texture4.u2;
1637 v[0] =
ctx->EvalMap.Map1Vertex3.u1;
1638 v[1] =
ctx->EvalMap.Map1Vertex3.u2;
1641 v[0] =
ctx->EvalMap.Map1Vertex4.u1;
1642 v[1] =
ctx->EvalMap.Map1Vertex4.u2;
1645 v[0] =
ctx->EvalMap.Map2Color4.u1;
1646 v[1] =
ctx->EvalMap.Map2Color4.u2;
1647 v[2] =
ctx->EvalMap.Map2Color4.v1;
1648 v[3] =
ctx->EvalMap.Map2Color4.v2;
1651 v[0] =
ctx->EvalMap.Map2Index.u1;
1652 v[1] =
ctx->EvalMap.Map2Index.u2;
1653 v[2] =
ctx->EvalMap.Map2Index.v1;
1654 v[3] =
ctx->EvalMap.Map2Index.v2;
1657 v[0] =
ctx->EvalMap.Map2Normal.u1;
1658 v[1] =
ctx->EvalMap.Map2Normal.u2;
1659 v[2] =
ctx->EvalMap.Map2Normal.v1;
1660 v[3] =
ctx->EvalMap.Map2Normal.v2;
1663 v[0] =
ctx->EvalMap.Map2Texture1.u1;
1664 v[1] =
ctx->EvalMap.Map2Texture1.u2;
1665 v[2] =
ctx->EvalMap.Map2Texture1.v1;
1666 v[3] =
ctx->EvalMap.Map2Texture1.v2;
1669 v[0] =
ctx->EvalMap.Map2Texture2.u1;
1670 v[1] =
ctx->EvalMap.Map2Texture2.u2;
1671 v[2] =
ctx->EvalMap.Map2Texture2.v1;
1672 v[3] =
ctx->EvalMap.Map2Texture2.v2;
1675 v[0] =
ctx->EvalMap.Map2Texture3.u1;
1676 v[1] =
ctx->EvalMap.Map2Texture3.u2;
1677 v[2] =
ctx->EvalMap.Map2Texture3.v1;
1678 v[3] =
ctx->EvalMap.Map2Texture3.v2;
1681 v[0] =
ctx->EvalMap.Map2Texture4.u1;
1682 v[1] =
ctx->EvalMap.Map2Texture4.u2;
1683 v[2] =
ctx->EvalMap.Map2Texture4.v1;
1684 v[3] =
ctx->EvalMap.Map2Texture4.v2;
1687 v[0] =
ctx->EvalMap.Map2Vertex3.u1;
1688 v[1] =
ctx->EvalMap.Map2Vertex3.u2;
1689 v[2] =
ctx->EvalMap.Map2Vertex3.v1;
1690 v[3] =
ctx->EvalMap.Map2Vertex3.v2;
1693 v[0] =
ctx->EvalMap.Map2Vertex4.u1;
1694 v[1] =
ctx->EvalMap.Map2Vertex4.u2;
1695 v[2] =
ctx->EvalMap.Map2Vertex4.v1;
1696 v[3] =
ctx->EvalMap.Map2Vertex4.v2;
1717 data =
ctx->EvalMap.Map1Color4.Points;
1718 n =
ctx->EvalMap.Map1Color4.Order * 4;
1721 data =
ctx->EvalMap.Map1Index.Points;
1722 n =
ctx->EvalMap.Map1Index.Order;
1725 data =
ctx->EvalMap.Map1Normal.Points;
1726 n =
ctx->EvalMap.Map1Normal.Order * 3;
1729 data =
ctx->EvalMap.Map1Texture1.Points;
1730 n =
ctx->EvalMap.Map1Texture1.Order * 1;
1733 data =
ctx->EvalMap.Map1Texture2.Points;
1734 n =
ctx->EvalMap.Map1Texture2.Order * 2;
1737 data =
ctx->EvalMap.Map1Texture3.Points;
1738 n =
ctx->EvalMap.Map1Texture3.Order * 3;
1741 data =
ctx->EvalMap.Map1Texture4.Points;
1742 n =
ctx->EvalMap.Map1Texture4.Order * 4;
1745 data =
ctx->EvalMap.Map1Vertex3.Points;
1746 n =
ctx->EvalMap.Map1Vertex3.Order * 3;
1749 data =
ctx->EvalMap.Map1Vertex4.Points;
1750 n =
ctx->EvalMap.Map1Vertex4.Order * 4;
1753 data =
ctx->EvalMap.Map2Color4.Points;
1754 n =
ctx->EvalMap.Map2Color4.Uorder
1755 *
ctx->EvalMap.Map2Color4.Vorder * 4;
1758 data =
ctx->EvalMap.Map2Index.Points;
1759 n =
ctx->EvalMap.Map2Index.Uorder
1760 *
ctx->EvalMap.Map2Index.Vorder;
1763 data =
ctx->EvalMap.Map2Normal.Points;
1764 n =
ctx->EvalMap.Map2Normal.Uorder
1765 *
ctx->EvalMap.Map2Normal.Vorder * 3;
1768 data =
ctx->EvalMap.Map2Texture1.Points;
1769 n =
ctx->EvalMap.Map2Texture1.Uorder
1770 *
ctx->EvalMap.Map2Texture1.Vorder * 1;
1773 data =
ctx->EvalMap.Map2Texture2.Points;
1774 n =
ctx->EvalMap.Map2Texture2.Uorder
1775 *
ctx->EvalMap.Map2Texture2.Vorder * 2;
1778 data =
ctx->EvalMap.Map2Texture3.Points;
1779 n =
ctx->EvalMap.Map2Texture3.Uorder
1780 *
ctx->EvalMap.Map2Texture3.Vorder * 3;
1783 data =
ctx->EvalMap.Map2Texture4.Points;
1784 n =
ctx->EvalMap.Map2Texture4.Uorder
1785 *
ctx->EvalMap.Map2Texture4.Vorder * 4;
1788 data =
ctx->EvalMap.Map2Vertex3.Points;
1789 n =
ctx->EvalMap.Map2Vertex3.Uorder
1790 *
ctx->EvalMap.Map2Vertex3.Vorder * 3;
1793 data =
ctx->EvalMap.Map2Vertex4.Points;
1794 n =
ctx->EvalMap.Map2Vertex4.Uorder
1795 *
ctx->EvalMap.Map2Vertex4.Vorder * 4;
1809 *
v =
ctx->EvalMap.Map1Color4.Order;
1812 *
v =
ctx->EvalMap.Map1Index.Order;
1815 *
v =
ctx->EvalMap.Map1Normal.Order;
1818 *
v =
ctx->EvalMap.Map1Texture1.Order;
1821 *
v =
ctx->EvalMap.Map1Texture2.Order;
1824 *
v =
ctx->EvalMap.Map1Texture3.Order;
1827 *
v =
ctx->EvalMap.Map1Texture4.Order;
1830 *
v =
ctx->EvalMap.Map1Vertex3.Order;
1833 *
v =
ctx->EvalMap.Map1Vertex4.Order;
1836 v[0] =
ctx->EvalMap.Map2Color4.Uorder;
1837 v[1] =
ctx->EvalMap.Map2Color4.Vorder;
1840 v[0] =
ctx->EvalMap.Map2Index.Uorder;
1841 v[1] =
ctx->EvalMap.Map2Index.Vorder;
1844 v[0] =
ctx->EvalMap.Map2Normal.Uorder;
1845 v[1] =
ctx->EvalMap.Map2Normal.Vorder;
1848 v[0] =
ctx->EvalMap.Map2Texture1.Uorder;
1849 v[1] =
ctx->EvalMap.Map2Texture1.Vorder;
1852 v[0] =
ctx->EvalMap.Map2Texture2.Uorder;
1853 v[1] =
ctx->EvalMap.Map2Texture2.Vorder;
1856 v[0] =
ctx->EvalMap.Map2Texture3.Uorder;
1857 v[1] =
ctx->EvalMap.Map2Texture3.Vorder;
1860 v[0] =
ctx->EvalMap.Map2Texture4.Uorder;
1861 v[1] =
ctx->EvalMap.Map2Texture4.Vorder;
1864 v[0] =
ctx->EvalMap.Map2Vertex3.Uorder;
1865 v[1] =
ctx->EvalMap.Map2Vertex3.Vorder;
1868 v[0] =
ctx->EvalMap.Map2Vertex4.Uorder;
1869 v[1] =
ctx->EvalMap.Map2Vertex4.Vorder;
1990 if (
ctx->Eval.Map1Vertex4)
1996 else if (
ctx->Eval.Map1Vertex3)
2005 if (
ctx->Eval.Map1Index)
2018 if (
ctx->Eval.Map1Color4) {
2022 icolor[0] = (
GLint) (fcolor[0] *
ctx->Visual->RedScale);
2023 icolor[1] = (
GLint) (fcolor[1] *
ctx->Visual->GreenScale);
2024 icolor[2] = (
GLint) (fcolor[2] *
ctx->Visual->BlueScale);
2025 icolor[3] = (
GLint) (fcolor[3] *
ctx->Visual->AlphaScale);
2035 if (
ctx->Eval.Map1Normal) {
2047 if (
ctx->Eval.Map1TextureCoord4) {
2052 else if (
ctx->Eval.Map1TextureCoord3) {
2058 else if (
ctx->Eval.Map1TextureCoord2) {
2065 else if (
ctx->Eval.Map1TextureCoord1) {
2074 texcoord[0] =
ctx->Current.TexCoord[0];
2075 texcoord[1] =
ctx->Current.TexCoord[1];
2076 texcoord[2] =
ctx->Current.TexCoord[2];
2077 texcoord[3] =
ctx->Current.TexCoord[3];
2095#define CROSS_PROD(n, u, v) \
2096 (n)[0] = (u)[1]*(v)[2] - (u)[2]*(v)[1]; \
2097 (n)[1] = (u)[2]*(v)[0] - (u)[0]*(v)[2]; \
2098 (n)[2] = (u)[0]*(v)[1] - (u)[1]*(v)[0]
2101 if(
ctx->Eval.Map2Vertex4) {
2106 if (
ctx->Eval.AutoNormal) {
2110 map->Uorder,
map->Vorder);
2117 map->Uorder,
map->Vorder);
2120 else if (
ctx->Eval.Map2Vertex3) {
2124 if (
ctx->Eval.AutoNormal) {
2127 map->Uorder,
map->Vorder);
2133 map->Uorder,
map->Vorder);
2140 if (
ctx->Eval.Map2Index) {
2146 map->Uorder,
map->Vorder);
2154 if (
ctx->Eval.Map2Color4) {
2159 map->Uorder,
map->Vorder);
2160 icolor[0] = (
GLint) (fcolor[0] *
ctx->Visual->RedScale);
2161 icolor[1] = (
GLint) (fcolor[1] *
ctx->Visual->GreenScale);
2162 icolor[2] = (
GLint) (fcolor[2] *
ctx->Visual->BlueScale);
2163 icolor[3] = (
GLint) (fcolor[3] *
ctx->Visual->AlphaScale);
2173 if (!
ctx->Eval.AutoNormal
2174 || (!
ctx->Eval.Map2Vertex3 && !
ctx->Eval.Map2Vertex4)) {
2175 if (
ctx->Eval.Map2Normal) {
2180 map->Uorder,
map->Vorder);
2190 if (
ctx->Eval.Map2TextureCoord4) {
2195 map->Uorder,
map->Vorder);
2197 else if (
ctx->Eval.Map2TextureCoord3) {
2202 map->Uorder,
map->Vorder);
2205 else if (
ctx->Eval.Map2TextureCoord2) {
2210 map->Uorder,
map->Vorder);
2214 else if (
ctx->Eval.Map2TextureCoord1) {
2219 map->Uorder,
map->Vorder);
2226 texcoord[0] =
ctx->Current.TexCoord[0];
2227 texcoord[1] =
ctx->Current.TexCoord[1];
2228 texcoord[2] =
ctx->Current.TexCoord[2];
2229 texcoord[3] =
ctx->Current.TexCoord[3];
2246 ctx->Eval.MapGrid1un =
un;
2247 ctx->Eval.MapGrid1u1 =
u1;
2248 ctx->Eval.MapGrid1u2 =
u2;
2267 ctx->Eval.MapGrid2un =
un;
2268 ctx->Eval.MapGrid2u1 =
u1;
2269 ctx->Eval.MapGrid2u2 =
u2;
2270 ctx->Eval.MapGrid2vn =
vn;
2271 ctx->Eval.MapGrid2v1 =
v1;
2272 ctx->Eval.MapGrid2v2 =
v2;
2281 u =
ctx->Eval.MapGrid1u1;
2283 else if (
i==
ctx->Eval.MapGrid1un) {
2284 u =
ctx->Eval.MapGrid1u2;
2287 du = (
ctx->Eval.MapGrid1u2 -
ctx->Eval.MapGrid1u1)
2289 u =
i * du +
ctx->Eval.MapGrid1u1;
2302 u =
ctx->Eval.MapGrid2u1;
2304 else if (
i==
ctx->Eval.MapGrid2un) {
2305 u =
ctx->Eval.MapGrid2u2;
2308 du = (
ctx->Eval.MapGrid2u2 -
ctx->Eval.MapGrid2u1)
2310 u =
i * du +
ctx->Eval.MapGrid2u1;
2314 v =
ctx->Eval.MapGrid2v1;
2316 else if (
j==
ctx->Eval.MapGrid2vn) {
2317 v =
ctx->Eval.MapGrid2v2;
2320 dv = (
ctx->Eval.MapGrid2v2 -
ctx->Eval.MapGrid2v1)
2322 v =
j * dv +
ctx->Eval.MapGrid2v1;
2353 du = (
ctx->Eval.MapGrid1u2 -
ctx->Eval.MapGrid1u1)
2357 for (
i=i1;
i<=i2;
i++) {
2359 u =
ctx->Eval.MapGrid1u1;
2361 else if (
i==
ctx->Eval.MapGrid1un) {
2362 u =
ctx->Eval.MapGrid1u2;
2365 u =
i * du +
ctx->Eval.MapGrid1u1;
2384 du = (
ctx->Eval.MapGrid2u2 -
ctx->Eval.MapGrid2u1)
2386 dv = (
ctx->Eval.MapGrid2v2 -
ctx->Eval.MapGrid2v1)
2389#define I_TO_U( I, U ) \
2391 U = ctx->Eval.MapGrid2u1; \
2393 else if ((I)==ctx->Eval.MapGrid2un) { \
2394 U = ctx->Eval.MapGrid2u2; \
2397 U = (I) * du + ctx->Eval.MapGrid2u1;\
2400#define J_TO_V( J, V ) \
2402 V = ctx->Eval.MapGrid2v1; \
2404 else if ((J)==ctx->Eval.MapGrid2vn) { \
2405 V = ctx->Eval.MapGrid2v2; \
2408 V = (J) * dv + ctx->Eval.MapGrid2v1;\
2414 for (
j=j1;
j<=j2;
j++) {
2416 for (
i=i1;
i<=i2;
i++) {
2424 for (
j=j1;
j<=j2;
j++) {
2427 for (
i=i1;
i<=i2;
i++) {
2433 for (
i=i1;
i<=i2;
i++) {
2436 for (
j=j1;
j<=j2;
j++) {
2444 for (
j=j1;
j<j2;
j++) {
2450 for (
i=i1;
i<=i2;
i++) {
void gl_error(GLcontext *ctx, GLenum error, const char *s)
void gl_EvalMesh1(GLcontext *ctx, GLenum mode, GLint i1, GLint i2)
static void horner_bezier_curve(GLfloat *cp, GLfloat *out, GLfloat t, GLuint dim, GLuint order)
GLfloat * gl_copy_map_points2f(GLenum target, GLint ustride, GLint uorder, GLint vstride, GLint vorder, const GLfloat *points)
GLfloat * gl_copy_map_points1d(GLenum target, GLint ustride, GLint uorder, const GLdouble *points)
void gl_MapGrid1f(GLcontext *ctx, GLint un, GLfloat u1, GLfloat u2)
void gl_GetMapfv(GLcontext *ctx, GLenum target, GLenum query, GLfloat *v)
GLfloat * gl_copy_map_points2d(GLenum target, GLint ustride, GLint uorder, GLint vstride, GLint vorder, const GLdouble *points)
void gl_free_control_points(GLcontext *ctx, GLenum target, GLfloat *data)
void gl_Map1f(GLcontext *ctx, GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points, GLboolean retain)
#define CROSS_PROD(n, u, v)
void gl_MapGrid2f(GLcontext *ctx, GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2)
void gl_GetMapdv(GLcontext *ctx, GLenum target, GLenum query, GLdouble *v)
void gl_EvalMesh2(GLcontext *ctx, GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2)
void gl_EvalPoint1(GLcontext *ctx, GLint i)
void gl_EvalPoint2(GLcontext *ctx, GLint i, GLint j)
GLfloat * gl_copy_map_points1f(GLenum target, GLint ustride, GLint uorder, const GLfloat *points)
void gl_GetMapiv(GLcontext *ctx, GLenum target, GLenum query, GLint *v)
static void de_casteljau_surf(GLfloat *cn, GLfloat *out, GLfloat *du, GLfloat *dv, GLfloat u, GLfloat v, GLuint dim, GLuint uorder, GLuint vorder)
void gl_EvalCoord1f(GLcontext *ctx, GLfloat u)
void gl_Map2f(GLcontext *ctx, GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points, GLboolean retain)
void gl_EvalCoord2f(GLcontext *ctx, GLfloat u, GLfloat v)
static void horner_bezier_surf(GLfloat *cn, GLfloat *out, GLfloat u, GLfloat v, GLuint dim, GLuint uorder, GLuint vorder)
#define GL_MAP1_TEXTURE_COORD_3
#define GL_MAP2_TEXTURE_COORD_2
#define GL_MAP1_TEXTURE_COORD_2
#define GL_MAP2_TEXTURE_COORD_4
#define GL_INVALID_OPERATION
#define GL_MAP1_TEXTURE_COORD_1
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
#define GL_MAP1_TEXTURE_COORD_4
#define GL_MAP2_TEXTURE_COORD_1
#define GL_MAP2_TEXTURE_COORD_3
#define GL_TRIANGLE_STRIP
GLdouble GLdouble GLint ustride
GLenum GLenum GLuint components
GLdouble GLdouble GLint GLint uorder
GLdouble GLdouble GLint GLint GLdouble GLdouble GLint GLint vorder
GLuint GLdouble GLdouble GLint GLint order
GLfloat GLfloat GLfloat v2
GLsizei const GLfloat * points
GLdouble GLdouble GLint GLint GLdouble GLdouble GLint vstride
GLfloat GLfloat GLfloat GLfloat h
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint un
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint vn
#define INSIDE_BEGIN_END(CTX)
#define COPY_4V(DST, SRC)
void gl_End(GLcontext *ctx)
void gl_Begin(GLcontext *ctx, GLenum p)
void gl_eval_vertex(GLcontext *ctx, const GLfloat vertex[4], const GLfloat normal[3], const GLubyte color[4], GLuint index, const GLfloat texcoord[4])