GLXWorkstation.st
changeset 89 ea2bf46eb669
parent 82 98a70bce6d51
child 97 dd6116883ac0
equal deleted inserted replaced
88:8f9c629a4245 89:ea2bf46eb669
    19 
    19 
    20 GLXWorkstation comment:'
    20 GLXWorkstation comment:'
    21 COPYRIGHT (c) 1993 by Claus Gittinger
    21 COPYRIGHT (c) 1993 by Claus Gittinger
    22 	      All Rights Reserved
    22 	      All Rights Reserved
    23 
    23 
    24 $Header: /cvs/stx/stx/libview/GLXWorkstation.st,v 1.16 1994-11-21 16:43:13 claus Exp $
    24 $Header: /cvs/stx/stx/libview/GLXWorkstation.st,v 1.17 1995-02-06 00:36:30 claus Exp $
    25 '!
    25 '!
    26 
    26 
    27 !GLXWorkstation class methodsFor:'documentation'!
    27 !GLXWorkstation class methodsFor:'documentation'!
    28 
    28 
    29 copyright
    29 copyright
    40 "
    40 "
    41 !
    41 !
    42 
    42 
    43 version
    43 version
    44 "
    44 "
    45 $Header: /cvs/stx/stx/libview/GLXWorkstation.st,v 1.16 1994-11-21 16:43:13 claus Exp $
    45 $Header: /cvs/stx/stx/libview/GLXWorkstation.st,v 1.17 1995-02-06 00:36:30 claus Exp $
    46 "
    46 "
    47 !
    47 !
    48 
    48 
    49 documentation
    49 documentation
    50 "
    50 "
    69     interface to GL functions. More high-level stuff is required, to make
    69     interface to GL functions. More high-level stuff is required, to make
    70     3D drawing be more object-oriented. 
    70     3D drawing be more object-oriented. 
    71     (see a bit of this in 'clients/IRIS-specials')
    71     (see a bit of this in 'clients/IRIS-specials')
    72 
    72 
    73     Some functions are duplicated, Jeff and I developed those in parallel -
    73     Some functions are duplicated, Jeff and I developed those in parallel -
    74     those will be merged and duplicates removed ...
    74     for now, both will remain - finally they will be merged and duplicates removed ...
       
    75     (examples are makeobj and makeObject).
    75 
    76 
    76     Also, in a hurry to implement all those methods, many do no or only
    77     Also, in a hurry to implement all those methods, many do no or only
    77     limited argument checking - make certain, that you pass the correct
    78     limited argument checking - make certain, that you pass the correct
    78     arguments.
    79     arguments.
    79 
    80 
    93 
    94 
    94     Notice: this should be rewritten to use the openGL library functions
    95     Notice: this should be rewritten to use the openGL library functions
    95 "
    96 "
    96 ! !
    97 ! !
    97 
    98 
    98 !GLXWorkstation class primitiveDefinitions!
    99 !GLXWorkstation primitiveDefinitions!
    99 
   100 
   100 %{
   101 %{
   101 /*
   102 /*
   102  * on SGI, this class is compiled with -DGLX, while
   103  * on SGI, this class is compiled with -DGLX, while
   103  * for simulation (using vogl), this is compiled with -DVGL
   104  * for simulation (using vogl), this is compiled with -DVGL
   149  * put/pack them into corresponding c variables.
   150  * put/pack them into corresponding c variables.
   150  *
   151  *
   151  */
   152  */
   152 #if defined(hpux) && defined(POSITIVE_ADDRESSES)
   153 #if defined(hpux) && defined(POSITIVE_ADDRESSES)
   153 # define MKDPY(o)       (Display *)((int)(o) & ~TAG_INT)
   154 # define MKDPY(o)       (Display *)((int)(o) & ~TAG_INT)
   154 # define MKWIN(o)        (Window)((int)(o) & ~TAG_INT)
   155 # define MKWIN(o)       (Window)((int)(o) & ~TAG_INT)
   155 #else
   156 #else
   156 # define MKDPY(o)       (Display *)(_intVal(o))
   157 # define MKDPY(o)       (Display *)(_intVal(o))
   157 # define MKWIN(o)       (Window)(_intVal(o))
   158 # define MKWIN(o)       (Window)(_intVal(o))
   158 #endif
   159 #endif
   159 
   160 
   278 	+ OHDR_SIZE                     \
   279 	+ OHDR_SIZE                     \
   279 	+ (_intVal(_ClassInstPtr(_qClass(object))->c_ninstvars)) * sizeof(OBJ))
   280 	+ (_intVal(_ClassInstPtr(_qClass(object))->c_ninstvars)) * sizeof(OBJ))
   280 %}
   281 %}
   281 ! !
   282 ! !
   282 
   283 
   283 !GLXWorkstation class primitiveFunctions!
   284 !GLXWorkstation primitiveFunctions!
   284 
   285 
   285 %{
   286 %{
   286 /*
   287 /*
   287  * helper for rotation - call rot()
   288  * helper for rotation - call rot()
   288  */
   289  */
   665     "return true, if this gl workstation supports rgb
   666     "return true, if this gl workstation supports rgb
   666      (in addition to indexed) colors. Actually, we return true
   667      (in addition to indexed) colors. Actually, we return true
   667      for a real GL engine, false for the simulator here."
   668      for a real GL engine, false for the simulator here."
   668 
   669 
   669 %{  /* NOCONTEXT */
   670 %{  /* NOCONTEXT */
   670 
       
   671 #ifdef VGL
       
   672     RETURN ( false );
       
   673 #endif
       
   674 #ifdef GLX
   671 #ifdef GLX
   675     RETURN ( true );
   672     RETURN ( true );
   676 #endif
   673 #endif
   677 %}
   674 %}.
       
   675     ^ false
       
   676 
       
   677     "
       
   678      Display supportsRGB 
       
   679     "
   678 !
   680 !
   679 
   681 
   680 supportsLight
   682 supportsLight
   681     "return true, if this gl workstation supports light (i.e.
   683     "return true, if this gl workstation supports light 
   682      if its a real GL)"
   684      (i.e. if its a real GL)"
   683 %{  /* NOCONTEXT */
   685 
   684 
   686 %{  /* NOCONTEXT */
   685 #ifdef VGL
       
   686     RETURN ( false );
       
   687 #endif
       
   688 #ifdef GLX
   687 #ifdef GLX
   689     RETURN ( true );
   688     RETURN ( true );
   690 #endif
   689 #endif
   691 %}
   690 %}.
       
   691     ^ false
       
   692 
       
   693     "
       
   694      Display supportsLight 
       
   695     "
       
   696 !
       
   697 
       
   698 supportsTextures
       
   699     "return true, if this gl workstation supports texture mapping
       
   700      (i.e. if its a real GL)"
       
   701 
       
   702 %{  /* NOCONTEXT */
       
   703 #ifdef GLX
       
   704     if (getgdesc(GD_TEXTURE) != 0) {
       
   705 	RETURN ( true );
       
   706     }
       
   707 #endif
       
   708 %}.
       
   709     ^ false
       
   710 
       
   711     "
       
   712      Display supportsTextures 
       
   713     "
       
   714 !
       
   715 
       
   716 supportsDoubleBuffer
       
   717     "return true, if this gl workstation supports double buffering"
       
   718 %{  /* NOCONTEXT */
       
   719 
       
   720 #ifdef GLX
       
   721     if (getgdesc(GD_BITS_NORM_DBL_RED) != 0) {
       
   722 	RETURN ( true );
       
   723     }
       
   724 #endif
       
   725 %}.
       
   726     ^ false
       
   727 
       
   728     "
       
   729      Display supportsDoubleBuffer 
       
   730     "
       
   731 !
       
   732 
       
   733 supportsZBuffer
       
   734     "return true, if this gl workstation has z buffer support"
       
   735 %{  /* NOCONTEXT */
       
   736 
       
   737 #ifdef GLX
       
   738     if (getgdesc(GD_BITS_NORM_ZBUFFER) != 0) {
       
   739 	RETURN ( true );
       
   740     }
       
   741 #endif
       
   742 %}.
       
   743     ^ false
       
   744 
       
   745     "
       
   746      Display supportsZBuffer 
       
   747     "
       
   748 !
       
   749 
       
   750 maxZValue
       
   751     "return the max. Z value (only valid if z-buffer is supported)"
       
   752 %{  
       
   753 #ifdef GLX
       
   754     long zMax;
       
   755     extern OBJ _MKLARGEINT();
       
   756 
       
   757     zMax = getgdesc(GD_ZMAX);
       
   758 
       
   759     if ((zMax >= _MIN_INT) && (zMax <= _MAX_INT)) {
       
   760 	RETURN ( _MKSMALLINT(zMax) );
       
   761     }
       
   762     RETURN ( _MKLARGEINT(zMax) );
       
   763 #endif
       
   764 %}.
       
   765     ^ nil
   692 ! !
   766 ! !
   693 
   767 
   694 !GLXWorkstation methodsFor:'window creation'!
   768 !GLXWorkstation methodsFor:'window creation'!
   695 
   769 
   696 createGLXWindowFor:aView left:xpos top:ypos width:wwidth height:wheight type:glxType
   770 createGLXWindowFor:aView left:xpos top:ypos width:wwidth height:wheight type:glxType
   857     _FLOAT_(left, f_left)
   931     _FLOAT_(left, f_left)
   858     _FLOAT_(right, f_right)
   932     _FLOAT_(right, f_right)
   859     _FLOAT_(bottom, f_bottom)
   933     _FLOAT_(bottom, f_bottom)
   860     _FLOAT_(top, f_top)
   934     _FLOAT_(top, f_top)
   861     ortho2(f_left, f_right, f_bottom, f_top);
   935     ortho2(f_left, f_right, f_bottom, f_top);
   862     RETURN (true);
   936 %}
   863 %}
   937 .
   864 .
   938     ^ true
   865     ^ false
       
   866 !
   939 !
   867 
   940 
   868 glxReshapeViewPortIn: aGLXWindowId
   941 glxReshapeViewPortIn: aGLXWindowId
   869 
   942 
   870 %{  /* NOCONTEXT */
   943 %{  /* NOCONTEXT */
   871     SETWIN(aGLXWindowId)
   944     SETWIN(aGLXWindowId)
   872     reshapeviewport();
   945     reshapeviewport();
   873     RETURN (true);
   946 %}
   874 %}
   947 .
   875 .
   948     ^ true
   876     ^ false
       
   877 ! !
   949 ! !
   878 
   950 
   879 !GLXWorkstation methodsFor:'transformations'!
   951 !GLXWorkstation methodsFor:'transformations'!
   880 
   952 
   881 glxTranslateX:x in:aGLXWindowId
   953 glxTranslateX:x in:aGLXWindowId
  1031 %{  /* NOCONTEXT */
  1103 %{  /* NOCONTEXT */
  1032 
  1104 
  1033     SETWIN(aGLXWindowId)
  1105     SETWIN(aGLXWindowId)
  1034     RETURN (doRotate(angle, 'x'));
  1106     RETURN (doRotate(angle, 'x'));
  1035 %}
  1107 %}
  1036 .
       
  1037     ^ false
       
  1038 !
  1108 !
  1039 
  1109 
  1040 glxRotateY:angle in:aGLXWindowId
  1110 glxRotateY:angle in:aGLXWindowId
  1041     "rotate the current matrix on y axis.
  1111     "rotate the current matrix on y axis.
  1042      The angle is in degrees."
  1112      The angle is in degrees."
  1044 %{  /* NOCONTEXT */
  1114 %{  /* NOCONTEXT */
  1045 
  1115 
  1046     SETWIN(aGLXWindowId)
  1116     SETWIN(aGLXWindowId)
  1047     RETURN (doRotate(angle, 'y'));
  1117     RETURN (doRotate(angle, 'y'));
  1048 %}
  1118 %}
  1049 .
       
  1050     ^ false
       
  1051 !
  1119 !
  1052 
  1120 
  1053 glxRotateZ:angle in:aGLXWindowId
  1121 glxRotateZ:angle in:aGLXWindowId
  1054     "rotate the current matrix on z axis.
  1122     "rotate the current matrix on z axis.
  1055      The angle is in degrees."
  1123      The angle is in degrees."
  1057 %{  /* NOCONTEXT */
  1125 %{  /* NOCONTEXT */
  1058 
  1126 
  1059     SETWIN(aGLXWindowId)
  1127     SETWIN(aGLXWindowId)
  1060     RETURN (doRotate(angle, 'z'));
  1128     RETURN (doRotate(angle, 'z'));
  1061 %}
  1129 %}
  1062 .
       
  1063     ^ false
       
  1064 !
  1130 !
  1065 
  1131 
  1066 glxRotate:angle axis:axis in:aGLXWindowId
  1132 glxRotate:angle axis:axis in:aGLXWindowId
  1067     "rotate the current matrix around the axis given by the axis arg,
  1133     "rotate the current matrix around the axis given by the axis arg,
  1068      which must be one of the symbols: #x, #y or #z.
  1134      which must be one of the symbols: #x, #y or #z.
  1221 
  1287 
  1222 !GLXWorkstation methodsFor:'materials & lights'!
  1288 !GLXWorkstation methodsFor:'materials & lights'!
  1223 
  1289 
  1224 glxLmdef:what index:index np:np props:props in:aGLXWindowId
  1290 glxLmdef:what index:index np:np props:props in:aGLXWindowId
  1225     "define a material, light source or lighting model;
  1291     "define a material, light source or lighting model;
       
  1292      what must be one of #material, #light or #lightModel.
  1226      props must be a FloatArray or a subclass of FloatArray"
  1293      props must be a FloatArray or a subclass of FloatArray"
  1227 
  1294 
  1228 %{  /* NOCONTEXT */
  1295 %{  /* NOCONTEXT */
  1229 #ifdef GLX
  1296 #ifdef GLX
  1230     short defType;
  1297     short defType;
  1269 .
  1336 .
  1270     ^ false
  1337     ^ false
  1271 !
  1338 !
  1272 
  1339 
  1273 glxLmbind:target index:index in:aGLXWindowId
  1340 glxLmbind:target index:index in:aGLXWindowId
  1274     "select a material, lighyt or lighting model"
  1341     "select a material, light or lighting model.
       
  1342      target must be a symbol from: #material, #backMaterial,
       
  1343      #light0-light7 or #lightModel."
  1275 
  1344 
  1276 %{  /* NOCONTEXT */
  1345 %{  /* NOCONTEXT */
  1277 #ifdef GLX
  1346 #ifdef GLX
  1278     short defType;
  1347     short defType;
  1279     short i_index;
  1348     short i_index;
  1310     RETURN (true);
  1379     RETURN (true);
  1311 #endif
  1380 #endif
  1312 %}
  1381 %}
  1313 .
  1382 .
  1314     ^ false
  1383     ^ false
       
  1384 !
       
  1385 
       
  1386 glxTexDef2d:index nc:nc width:w height:h bits:image np:np props:props in:aGLXWindowId
       
  1387     "define a 2D texture. index is the 'name' of the texture;
       
  1388      nc is the number of components (1-4) per pixel;
       
  1389      w/h define the size of the texture; bits is a byteArray containing the
       
  1390      long-word aligned pixel data; np is the number of props found in
       
  1391      the floatArray props. Props must be delimited by a 0.0 entry."
       
  1392 
       
  1393 %{  /* NOCONTEXT */
       
  1394 #ifdef GLX
       
  1395     unsigned char *cp;
       
  1396     const float *fp;
       
  1397     OBJ cls;
       
  1398     float fbuff[30];
       
  1399 
       
  1400     if (__isByteArray(image)) {
       
  1401 	cp = _ByteArrayInstPtr(image)->ba_element;
       
  1402 	fp = getFloatsFromFloatArrayInto(props, fbuff);
       
  1403 
       
  1404 	SETWIN(aGLXWindowId)
       
  1405 	texdef2d(_intVal(index), _intVal(nc), _intVal(w), _intVal(h),
       
  1406 		 (const unsigned long *)cp, _intVal(np), fp);
       
  1407 	RETURN (true);
       
  1408     }
       
  1409 #endif
       
  1410 %}
       
  1411 .
       
  1412     ^ false
       
  1413 ! 
       
  1414 
       
  1415 glxTexDef3d:index nc:nc width:w height:h depth:d bits:image np:np props:props in:aGLXWindowId
       
  1416     "define a 3D texture. index is the 'name' of the texture;
       
  1417      nc is the number of components (1-4) per pixel;
       
  1418      w/h/d define the size of the texture; bits is a byteArray containing the
       
  1419      long-word aligned pixel data; np is the number of props found in
       
  1420      the floatArray props. Props must be delimited by a 0.0 entry."
       
  1421 
       
  1422 %{  /* NOCONTEXT */
       
  1423 #ifdef GLX
       
  1424     unsigned char *cp;
       
  1425     const float *fp;
       
  1426     OBJ cls;
       
  1427     float fbuff[30];
       
  1428 
       
  1429     if (__isByteArray(image)) {
       
  1430 	cp = _ByteArrayInstPtr(image)->ba_element;
       
  1431 	fp = getFloatsFromFloatArrayInto(props, fbuff);
       
  1432 
       
  1433 	SETWIN(aGLXWindowId)
       
  1434 	texdef3d(_intVal(index), _intVal(nc), _intVal(w), _intVal(h),
       
  1435 		 _intVal(d),
       
  1436 		 (const unsigned long *)cp, _intVal(np), fp);
       
  1437 	RETURN (true);
       
  1438     }
       
  1439 #endif
       
  1440 %}
       
  1441 .
       
  1442     ^ false
       
  1443 ! 
       
  1444 
       
  1445 glxTevdef:index np:np props:props in:aGLXWindowId
       
  1446 
       
  1447 %{  /* NOCONTEXT */
       
  1448 #ifdef GLX
       
  1449     const float *fp;
       
  1450     float fbuff[30];
       
  1451 
       
  1452     SETWIN(aGLXWindowId)
       
  1453     fp = getFloatsFromFloatArrayInto(props, fbuff);
       
  1454     tevdef(_intVal(index), _intVal(np), fp);
       
  1455     RETURN (true);
       
  1456 #endif
       
  1457 %}
       
  1458 .
       
  1459     ^ false
       
  1460 ! 
       
  1461 
       
  1462 glxTevbind:target index:index in:aGLXWindowId
       
  1463     "bind a texture environment; target must be 0
       
  1464      or the symbol #env0."
       
  1465 
       
  1466 %{  /* NOCONTEXT */
       
  1467 #ifdef GLX
       
  1468     long t;
       
  1469 
       
  1470     if (_isSmallInteger(target)) {
       
  1471 	t = _intVal(target);
       
  1472     } else {
       
  1473 	if (target == @symbol(env0)) {
       
  1474 	    t = TV_ENV0;
       
  1475 	} else {
       
  1476 	    RETURN (false);
       
  1477 	}
       
  1478     }
       
  1479     SETWIN(aGLXWindowId)
       
  1480     tevbind(t, _intVal(index));
       
  1481     RETURN (true);
       
  1482 #endif
       
  1483 %}
       
  1484 .
       
  1485     ^ false
       
  1486 ! 
       
  1487 
       
  1488 glxTexbind:target index:index in:aGLXWindowId
       
  1489     "bind a texture; target must be an integer or one
       
  1490      of the symbols #texture0, #textureDetail or #textureIdle."
       
  1491 
       
  1492 %{  /* NOCONTEXT */
       
  1493 #ifdef GLX
       
  1494     long t;
       
  1495 
       
  1496     if (_isSmallInteger(target)) {
       
  1497 	t = _intVal(target);
       
  1498     } else {
       
  1499 	if (target == @symbol(texture0)) {
       
  1500 	    t = TX_TEXTURE_0;
       
  1501 	} else if (target == @symbol(textureDetail)) {
       
  1502 	    t = TX_TEXTURE_DETAIL;
       
  1503 	} else if (target == @symbol(textureIdle)) {
       
  1504 	    t = TX_TEXTURE_IDLE;
       
  1505 	} else {
       
  1506 	    RETURN (false);
       
  1507 	}
       
  1508     }
       
  1509     SETWIN(aGLXWindowId)
       
  1510     texbind(t, _intVal(index));
       
  1511     RETURN (true);
       
  1512 #endif
       
  1513 %}
       
  1514 .
       
  1515     ^ false
  1315 ! !
  1516 ! !
  1316 
  1517 
  1317 !GLXWorkstation methodsFor:'color'!
  1518 !GLXWorkstation methodsFor:'color'!
  1318 
  1519 
  1319 glxColor:index in:aGLXWindowId
  1520 glxColor:index in:aGLXWindowId
  1336 .
  1537 .
  1337     ^ false
  1538     ^ false
  1338 !
  1539 !
  1339 
  1540 
  1340 glxColorRed:r green:g blue:b in:aGLXWindowId
  1541 glxColorRed:r green:g blue:b in:aGLXWindowId
  1341     "set color, args must be integer values"
  1542     "set color, args must be integer values in 0..255"
  1342 
  1543 
  1343 %{  /* NOCONTEXT */
  1544 %{  /* NOCONTEXT */
  1344 
  1545 
  1345 #ifdef GLX
  1546 #ifdef GLX
  1346     short s_r, s_g, s_b;
  1547     short s_r, s_g, s_b;
  1353     RETURN (true);
  1554     RETURN (true);
  1354 #endif
  1555 #endif
  1355 %}
  1556 %}
  1356 .
  1557 .
  1357     ^ false
  1558     ^ false
       
  1559 !
       
  1560 
       
  1561 glxColorRed:r green:g blue:b alpha:a in:aGLXWindowId
       
  1562     "set color including alpha value, args must be integer values within 0..255"
       
  1563 
       
  1564 %{  /* NOCONTEXT */
       
  1565 
       
  1566 #ifdef GLX
       
  1567     short s_r, s_g, s_b, s_a;
       
  1568 
       
  1569     _INT_(r, s_r);
       
  1570     _INT_(g, s_g);
       
  1571     _INT_(b, s_b);
       
  1572     _INT_(a, s_a);
       
  1573     SETWIN(aGLXWindowId)
       
  1574     cpack((((((s_a<<8) | s_b) << 8) | s_g) << 8) | s_r);
       
  1575     RETURN (true);
       
  1576 #endif
       
  1577 %}
       
  1578 .
       
  1579     ^ false
  1358 ! !
  1580 ! !
  1359 
  1581 
  1360 !GLXWorkstation methodsFor:'clearing'!
  1582 !GLXWorkstation methodsFor:'clearing'!
  1361 
  1583 
  1362 glxClearIn:aGLXWindowId
  1584 glxClearIn:aGLXWindowId
  1365 %{  /* NOCONTEXT */
  1587 %{  /* NOCONTEXT */
  1366     SETWIN(aGLXWindowId)
  1588     SETWIN(aGLXWindowId)
  1367     clear();
  1589     clear();
  1368     RETURN (true);
  1590     RETURN (true);
  1369 %}
  1591 %}
  1370 .
       
  1371     ^ false
       
  1372 !
  1592 !
  1373 
  1593 
  1374 glxZClearIn:aGLXWindowId
  1594 glxZClearIn:aGLXWindowId
  1375     "clear z buffer"
  1595     "clear z buffer"
  1376 
  1596 
  1381     RETURN (true);
  1601     RETURN (true);
  1382 #endif
  1602 #endif
  1383 %}
  1603 %}
  1384 .
  1604 .
  1385     ^ false
  1605     ^ false
       
  1606 !
       
  1607 
       
  1608 glxCzclearCval:cval zval:zval in:aGLXWindowId
       
  1609     "clear to a color (cval) and clear z buffer to zval simultaniously"
       
  1610 
       
  1611 %{  /* NOCONTEXT */
       
  1612 #ifdef GLX
       
  1613     SETWIN(aGLXWindowId)
       
  1614     czclear((ulong)_intVal(cval), _intVal(zval));
       
  1615     RETURN (true);
       
  1616 #endif
       
  1617 %}
       
  1618 .
       
  1619     ^ false
  1386 ! !
  1620 ! !
  1387 
  1621 
  1388 !GLXWorkstation methodsFor:'matrix stack'!
  1622 !GLXWorkstation methodsFor:'matrix stack'!
  1389 
  1623 
  1390 glxPushmatrixIn:aGLXWindowId
  1624 glxPushmatrixIn:aGLXWindowId
  1393 %{  /* NOCONTEXT */
  1627 %{  /* NOCONTEXT */
  1394     SETWIN(aGLXWindowId)
  1628     SETWIN(aGLXWindowId)
  1395     pushmatrix();
  1629     pushmatrix();
  1396     RETURN (true);
  1630     RETURN (true);
  1397 %}
  1631 %}
  1398 .
       
  1399     ^ false
       
  1400 !
  1632 !
  1401 
  1633 
  1402 glxPopmatrixIn:aGLXWindowId
  1634 glxPopmatrixIn:aGLXWindowId
  1403     "pop transformation stack"
  1635     "pop transformation stack"
  1404 
  1636 
  1405 %{  /* NOCONTEXT */
  1637 %{  /* NOCONTEXT */
  1406     SETWIN(aGLXWindowId)
  1638     SETWIN(aGLXWindowId)
  1407     popmatrix();
  1639     popmatrix();
  1408     RETURN (true);
  1640     RETURN (true);
  1409 %}
  1641 %}
  1410 .
       
  1411     ^ false
       
  1412 !
  1642 !
  1413 
  1643 
  1414 glxGetMatrix:arrayOf16Floats in:aGLXWindowId
  1644 glxGetMatrix:arrayOf16Floats in:aGLXWindowId
  1415     "argument must be an array (a matrix) of 16 floats. The current matrix
  1645     "argument must be an array (a matrix) of 16 floats. The current matrix
  1416      will be stored into that."
  1646      will be stored into that."
  1437     if (! (m = getFloatsFromMatrixInto(arrayOf16Floats, &matrix))) RETURN (false);
  1667     if (! (m = getFloatsFromMatrixInto(arrayOf16Floats, &matrix))) RETURN (false);
  1438     SETWIN(aGLXWindowId)
  1668     SETWIN(aGLXWindowId)
  1439     loadmatrix(*m);
  1669     loadmatrix(*m);
  1440     RETURN (true);
  1670     RETURN (true);
  1441 %}
  1671 %}
  1442 .
       
  1443     ^ false
       
  1444 !
  1672 !
  1445 
  1673 
  1446 glxMultMatrix:arrayOf16Floats in:aGLXWindowId
  1674 glxMultMatrix:arrayOf16Floats in:aGLXWindowId
  1447     "argument must be an array(a matrix) of 16 floats containing a
  1675     "argument must be an array(a matrix) of 16 floats containing a
  1448      matrix to multiply into the current matrix."
  1676      matrix to multiply into the current matrix."
  1454     if (! (m = getFloatsFromMatrixInto(arrayOf16Floats, &matrix))) RETURN (false);
  1682     if (! (m = getFloatsFromMatrixInto(arrayOf16Floats, &matrix))) RETURN (false);
  1455     SETWIN(aGLXWindowId)
  1683     SETWIN(aGLXWindowId)
  1456     multmatrix(*m);
  1684     multmatrix(*m);
  1457     RETURN (true);
  1685     RETURN (true);
  1458 %}
  1686 %}
  1459 .
       
  1460     ^ false
       
  1461 ! !
  1687 ! !
  1462 
  1688 
  1463 !GLXWorkstation methodsFor:'double buffering'!
  1689 !GLXWorkstation methodsFor:'double buffering'!
  1464 
  1690 
  1465 glxDoubleBufferIn:aGLXWindowId
  1691 glxDoubleBufferIn:aGLXWindowId
  1468 %{  /* NOCONTEXT */
  1694 %{  /* NOCONTEXT */
  1469     SETWIN(aGLXWindowId)
  1695     SETWIN(aGLXWindowId)
  1470     doublebuffer();
  1696     doublebuffer();
  1471     RETURN (true);
  1697     RETURN (true);
  1472 %}
  1698 %}
  1473 .
  1699 !
  1474     ^ false
  1700 
       
  1701 glxSingleBufferIn: aGLXWindowId
       
  1702     "set single buffer mode"
       
  1703 
       
  1704 %{  /* NOCONTEXT */
       
  1705     SETWIN(aGLXWindowId)
       
  1706     singlebuffer();
       
  1707     RETURN (true);
       
  1708 %}
  1475 !
  1709 !
  1476 
  1710 
  1477 glxSwapBuffersIn:aGLXWindowId
  1711 glxSwapBuffersIn:aGLXWindowId
  1478     "swap double buffers"
  1712     "swap double buffers"
  1479 
  1713 
  1480 %{  /* NOCONTEXT */
  1714 %{  /* NOCONTEXT */
  1481     SETWIN(aGLXWindowId)
  1715     SETWIN(aGLXWindowId)
  1482     swapbuffers();
  1716     swapbuffers();
  1483     RETURN (true);
  1717     RETURN (true);
  1484 %}
  1718 %}
  1485 .
       
  1486     ^ false
       
  1487 !
  1719 !
  1488 
  1720 
  1489 glxFrontBufferIn:aGLXWindowId
  1721 glxFrontBufferIn:aGLXWindowId
  1490     "switch to front buffer - turning backbuffer off"
  1722     "switch to front buffer - turning backbuffer off"
  1491 
  1723 
  1495     backbuffer(FALSE);
  1727     backbuffer(FALSE);
  1496 #endif
  1728 #endif
  1497     frontbuffer(TRUE);
  1729     frontbuffer(TRUE);
  1498     RETURN (true);
  1730     RETURN (true);
  1499 %}
  1731 %}
  1500 .
       
  1501     ^ false
       
  1502 !
  1732 !
  1503 
  1733 
  1504 glxBackBufferIn:aGLXWindowId
  1734 glxBackBufferIn:aGLXWindowId
  1505     "switch to back buffer - turning frontbuffer off"
  1735     "switch to back buffer - turning frontbuffer off"
  1506 
  1736 
  1510     frontbuffer(FALSE);
  1740     frontbuffer(FALSE);
  1511 #endif
  1741 #endif
  1512     backbuffer(TRUE);
  1742     backbuffer(TRUE);
  1513     RETURN (true);
  1743     RETURN (true);
  1514 %}
  1744 %}
  1515 .
       
  1516     ^ false
       
  1517 !
  1745 !
  1518 
  1746 
  1519 glxBackbuffer: b in: aGLXWindowId
  1747 glxBackbuffer: b in: aGLXWindowId
  1520 
  1748 
  1521 %{  /* NOCONTEXT */
  1749 %{  /* NOCONTEXT */
  1522     SETWIN(aGLXWindowId)
  1750     SETWIN(aGLXWindowId)
  1523     backbuffer(_booleanVal(b));
  1751     backbuffer(_booleanVal(b));
  1524     RETURN (true);
  1752     RETURN (true);
  1525 %}
  1753 %}
  1526 .
       
  1527     ^ false
       
  1528 ! 
  1754 ! 
  1529 
  1755 
  1530 glxFrontbuffer: b in: aGLXWindowId
  1756 glxFrontbuffer: b in: aGLXWindowId
  1531 
  1757 
  1532 %{  /* NOCONTEXT */
  1758 %{  /* NOCONTEXT */
  1533     SETWIN(aGLXWindowId)
  1759     SETWIN(aGLXWindowId)
  1534     frontbuffer(_booleanVal(b));
  1760     frontbuffer(_booleanVal(b));
  1535     RETURN (true);
  1761     RETURN (true);
  1536 %}
  1762 %}
  1537 .
       
  1538     ^ false
       
  1539 ! !
  1763 ! !
  1540 
  1764 
  1541 !GLXWorkstation methodsFor:'zbuffer'!
  1765 !GLXWorkstation methodsFor:'zbuffer'!
  1542 
  1766 
  1543 glxZbuffer:aBoolean in:aGLXWindowId
  1767 glxZbuffer:aBoolean in:aGLXWindowId
  1666 %{  /* NOCONTEXT */
  1890 %{  /* NOCONTEXT */
  1667     SETWIN(aGLXWindowId)
  1891     SETWIN(aGLXWindowId)
  1668     gconfig();
  1892     gconfig();
  1669     RETURN (true);
  1893     RETURN (true);
  1670 %}
  1894 %}
  1671 .
       
  1672     ^ false
       
  1673 !
  1895 !
  1674 
  1896 
  1675 glxNmode:aSymbol in:aGLXWindowId
  1897 glxNmode:aSymbol in:aGLXWindowId
  1676     "set normalize mode: #auto, #normalize"
  1898     "set normalize mode: #auto, #normalize"
  1677 
  1899 
  1726 %{  /* NOCONTEXT */
  1948 %{  /* NOCONTEXT */
  1727     SETWIN(aGLXWindowId)
  1949     SETWIN(aGLXWindowId)
  1728     bgnpoint();
  1950     bgnpoint();
  1729     RETURN (true);
  1951     RETURN (true);
  1730 %}
  1952 %}
  1731 .
       
  1732     ^ false
       
  1733 !
  1953 !
  1734 
  1954 
  1735 glxEndPointIn:aGLXWindowId
  1955 glxEndPointIn:aGLXWindowId
  1736     "end a point group"
  1956     "end a point group"
  1737 
  1957 
  1738 %{  /* NOCONTEXT */
  1958 %{  /* NOCONTEXT */
  1739     SETWIN(aGLXWindowId)
  1959     SETWIN(aGLXWindowId)
  1740     endpoint();
  1960     endpoint();
  1741     RETURN (true);
  1961     RETURN (true);
  1742 %}
  1962 %}
  1743 .
       
  1744     ^ false
       
  1745 !
  1963 !
  1746 
  1964 
  1747 glxBeginClosedLineIn:aGLXWindowId
  1965 glxBeginClosedLineIn:aGLXWindowId
  1748     "start a closed line"
  1966     "start a closed line"
  1749 
  1967 
  1750 %{  /* NOCONTEXT */
  1968 %{  /* NOCONTEXT */
  1751     SETWIN(aGLXWindowId)
  1969     SETWIN(aGLXWindowId)
  1752     bgnclosedline();
  1970     bgnclosedline();
  1753     RETURN (true);
  1971     RETURN (true);
  1754 %}
  1972 %}
  1755 .
       
  1756     ^ false
       
  1757 !
  1973 !
  1758 
  1974 
  1759 glxEndClosedLineIn:aGLXWindowId
  1975 glxEndClosedLineIn:aGLXWindowId
  1760     "end a closed line"
  1976     "end a closed line"
  1761 
  1977 
  1762 %{  /* NOCONTEXT */
  1978 %{  /* NOCONTEXT */
  1763     SETWIN(aGLXWindowId)
  1979     SETWIN(aGLXWindowId)
  1764     endclosedline();
  1980     endclosedline();
  1765     RETURN (true);
  1981     RETURN (true);
  1766 %}
  1982 %}
  1767 .
       
  1768     ^ false
       
  1769 !
  1983 !
  1770 
  1984 
  1771 glxBeginLineIn:aGLXWindowId
  1985 glxBeginLineIn:aGLXWindowId
  1772     "start a line group"
  1986     "start a line group"
  1773 
  1987 
  1774 %{  /* NOCONTEXT */
  1988 %{  /* NOCONTEXT */
  1775     SETWIN(aGLXWindowId)
  1989     SETWIN(aGLXWindowId)
  1776     bgnline();
  1990     bgnline();
  1777     RETURN (true);
  1991     RETURN (true);
  1778 %}
  1992 %}
  1779 .
       
  1780     ^ false
       
  1781 !
  1993 !
  1782 
  1994 
  1783 glxEndLineIn:aGLXWindowId
  1995 glxEndLineIn:aGLXWindowId
  1784     "end a line group"
  1996     "end a line group"
  1785 
  1997 
  1786 %{  /* NOCONTEXT */
  1998 %{  /* NOCONTEXT */
  1787     SETWIN(aGLXWindowId)
  1999     SETWIN(aGLXWindowId)
  1788     endline();
  2000     endline();
  1789     RETURN (true);
  2001     RETURN (true);
  1790 %}
  2002 %}
  1791 .
       
  1792     ^ false
       
  1793 !
  2003 !
  1794 
  2004 
  1795 glxBeginPolygonIn:aGLXWindowId
  2005 glxBeginPolygonIn:aGLXWindowId
  1796     "start a polygon"
  2006     "start a polygon"
  1797 
  2007 
  1798 %{  /* NOCONTEXT */
  2008 %{  /* NOCONTEXT */
  1799     SETWIN(aGLXWindowId)
  2009     SETWIN(aGLXWindowId)
  1800     bgnpolygon();
  2010     bgnpolygon();
  1801     RETURN (true);
  2011     RETURN (true);
  1802 %}
  2012 %}
  1803 .
       
  1804     ^ false
       
  1805 !
  2013 !
  1806 
  2014 
  1807 glxEndPolygonIn:aGLXWindowId
  2015 glxEndPolygonIn:aGLXWindowId
  1808     "end a polygon"
  2016     "end a polygon"
  1809 
  2017 
  1810 %{  /* NOCONTEXT */
  2018 %{  /* NOCONTEXT */
  1811     SETWIN(aGLXWindowId)
  2019     SETWIN(aGLXWindowId)
  1812     endpolygon();
  2020     endpolygon();
  1813     RETURN (true);
  2021     RETURN (true);
  1814 %}
  2022 %}
  1815 .
       
  1816     ^ false
       
  1817 !
  2023 !
  1818 
  2024 
  1819 glxBeginTriangleMeshIn:aGLXWindowId
  2025 glxBeginTriangleMeshIn:aGLXWindowId
  1820     "start a triangle mesh"
  2026     "start a triangle mesh"
  1821 
  2027 
  1822 %{  /* NOCONTEXT */
  2028 %{  /* NOCONTEXT */
  1823     SETWIN(aGLXWindowId)
  2029     SETWIN(aGLXWindowId)
  1824     bgntmesh();
  2030     bgntmesh();
  1825     RETURN (true);
  2031     RETURN (true);
  1826 %}
  2032 %}
  1827 .
       
  1828     ^ false
       
  1829 !
  2033 !
  1830 
  2034 
  1831 glxEndTriangleMeshIn:aGLXWindowId
  2035 glxEndTriangleMeshIn:aGLXWindowId
  1832     "end a triangle mesh"
  2036     "end a triangle mesh"
  1833 
  2037 
  1834 %{  /* NOCONTEXT */
  2038 %{  /* NOCONTEXT */
  1835     SETWIN(aGLXWindowId)
  2039     SETWIN(aGLXWindowId)
  1836     endtmesh();
  2040     endtmesh();
  1837     RETURN (true);
  2041     RETURN (true);
  1838 %}
  2042 %}
  1839 .
       
  1840     ^ false
       
  1841 !
  2043 !
  1842 
  2044 
  1843 glxBeginQuadrilateralStripIn:aGLXWindowId
  2045 glxBeginQuadrilateralStripIn:aGLXWindowId
  1844     "start a quadrilateral strip"
  2046     "start a quadrilateral strip"
  1845 
  2047 
  1846 %{  /* NOCONTEXT */
  2048 %{  /* NOCONTEXT */
  1847     SETWIN(aGLXWindowId)
  2049     SETWIN(aGLXWindowId)
  1848     bgnqstrip();
  2050     bgnqstrip();
  1849     RETURN (true);
  2051     RETURN (true);
  1850 %}
  2052 %}
  1851 .
       
  1852     ^ false
       
  1853 !
  2053 !
  1854 
  2054 
  1855 glxEndQuadrilateralStripIn:aGLXWindowId
  2055 glxEndQuadrilateralStripIn:aGLXWindowId
  1856     "end a quadrilateral strip"
  2056     "end a quadrilateral strip"
  1857 
  2057 
  1858 %{  /* NOCONTEXT */
  2058 %{  /* NOCONTEXT */
  1859     SETWIN(aGLXWindowId)
  2059     SETWIN(aGLXWindowId)
  1860     endqstrip();
  2060     endqstrip();
  1861     RETURN (true);
  2061     RETURN (true);
  1862 %}
  2062 %}
  1863 .
       
  1864     ^ false
       
  1865 ! !
  2063 ! !
  1866 
  2064 
  1867 !GLXWorkstation methodsFor:'sphere drawing'!
  2065 !GLXWorkstation methodsFor:'sphere drawing'!
  1868 
  2066 
  1869 glxSphDraw:arrayOf4Floats in:aGLXWindowId
  2067 glxSphDraw:arrayOf4Floats in:aGLXWindowId
  1978     if (! (mZ = getFloatsFromMatrixInto(arrayOf16ZFloats, &matrixZ))) RETURN (false);
  2176     if (! (mZ = getFloatsFromMatrixInto(arrayOf16ZFloats, &matrixZ))) RETURN (false);
  1979     SETWIN(aGLXWindowId)
  2177     SETWIN(aGLXWindowId)
  1980     patch(*mX, *mY, *mZ);
  2178     patch(*mX, *mY, *mZ);
  1981     RETURN (true);
  2179     RETURN (true);
  1982 %}
  2180 %}
  1983 .
       
  1984     ^ false
       
  1985 !
  2181 !
  1986 
  2182 
  1987 glxBeginCurveIn:aGLXWindowId
  2183 glxBeginCurveIn:aGLXWindowId
  1988     "start a NURBS curve def - in real GL only"
  2184     "start a NURBS curve def - in real GL only"
  1989 
  2185 
  2081 %}
  2277 %}
  2082 .
  2278 .
  2083     ^ false
  2279     ^ false
  2084 ! !
  2280 ! !
  2085 
  2281 
  2086 !GLXWorkstation methodsFor:'arcs and circles '!
  2282 !GLXWorkstation methodsFor:'arcs and circles'!
  2087 
  2283 
  2088 glxArcX: x y: y radius: radius startang: startang endang: endang in: aGLXWindowId
  2284 glxArcX: x y: y radius: radius startang: startang endang: endang in: aGLXWindowId
  2089     "draw an arc"
  2285     "draw an arc"
  2090 
  2286 
  2091 %{  /* NOCONTEXT */
  2287 %{  /* NOCONTEXT */
  2117     _ANGLE_(endang, a_endang)
  2313     _ANGLE_(endang, a_endang)
  2118     SETWIN(aGLXWindowId)
  2314     SETWIN(aGLXWindowId)
  2119     arci(c_x, c_y, c_radius, a_startang, a_endang);
  2315     arci(c_x, c_y, c_radius, a_startang, a_endang);
  2120     RETURN (true);
  2316     RETURN (true);
  2121 %}
  2317 %}
  2122 .
       
  2123     ^ false
       
  2124 ! 
  2318 ! 
  2125 
  2319 
  2126 glxArcsX: x y: y radius: radius startang: startang endang: endang in: aGLXWindowId
  2320 glxArcsX: x y: y radius: radius startang: startang endang: endang in: aGLXWindowId
  2127     "draw an arc"
  2321     "draw an arc"
  2128 
  2322 
  2137     _ANGLE_(endang, a_endang)
  2331     _ANGLE_(endang, a_endang)
  2138     SETWIN(aGLXWindowId)
  2332     SETWIN(aGLXWindowId)
  2139     arcs(c_x, c_y, c_radius, a_startang, a_endang);
  2333     arcs(c_x, c_y, c_radius, a_startang, a_endang);
  2140     RETURN (true);
  2334     RETURN (true);
  2141 %}
  2335 %}
  2142 .
       
  2143     ^ false
       
  2144 ! 
  2336 ! 
  2145 
  2337 
  2146 glxArcfX: x y: y radius: radius startang: startang endang: endang in: aGLXWindowId
  2338 glxArcfX: x y: y radius: radius startang: startang endang: endang in: aGLXWindowId
  2147     "draw a filled arc"
  2339     "draw a filled arc"
  2148 
  2340 
  2157     _ANGLE_(endang, a_endang)
  2349     _ANGLE_(endang, a_endang)
  2158     SETWIN(aGLXWindowId)
  2350     SETWIN(aGLXWindowId)
  2159     arcf(c_x, c_y, c_radius, a_startang, a_endang);
  2351     arcf(c_x, c_y, c_radius, a_startang, a_endang);
  2160     RETURN (true);
  2352     RETURN (true);
  2161 %}
  2353 %}
  2162 .
       
  2163     ^ false
       
  2164 ! 
  2354 ! 
  2165 
  2355 
  2166 glxArcfiX: x y: y radius: radius startang: startang endang: endang in: aGLXWindowId
  2356 glxArcfiX: x y: y radius: radius startang: startang endang: endang in: aGLXWindowId
  2167     "draw a filled arc"
  2357     "draw a filled arc"
  2168 
  2358 
  2177     _ANGLE_(endang, a_endang)
  2367     _ANGLE_(endang, a_endang)
  2178     SETWIN(aGLXWindowId)
  2368     SETWIN(aGLXWindowId)
  2179     arcfi(c_x, c_y, c_radius, a_startang, a_endang);
  2369     arcfi(c_x, c_y, c_radius, a_startang, a_endang);
  2180     RETURN (true);
  2370     RETURN (true);
  2181 %}
  2371 %}
  2182 .
       
  2183     ^ false
       
  2184 ! 
  2372 ! 
  2185 
  2373 
  2186 glxArcfsX: x y: y radius: radius startang: startang endang: endang in: aGLXWindowId
  2374 glxArcfsX: x y: y radius: radius startang: startang endang: endang in: aGLXWindowId
  2187     "draw a filled arc"
  2375     "draw a filled arc"
  2188 
  2376 
  2197     _ANGLE_(endang, a_endang)
  2385     _ANGLE_(endang, a_endang)
  2198     SETWIN(aGLXWindowId)
  2386     SETWIN(aGLXWindowId)
  2199     arcfs(c_x, c_y, c_radius, a_startang, a_endang);
  2387     arcfs(c_x, c_y, c_radius, a_startang, a_endang);
  2200     RETURN (true);
  2388     RETURN (true);
  2201 %}
  2389 %}
  2202 .
       
  2203     ^ false
       
  2204 !
  2390 !
  2205 
  2391 
  2206 glxCircX: x y: y radius: radius in: aGLXWindowId
  2392 glxCircX: x y: y radius: radius in: aGLXWindowId
  2207     "draw a circle"
  2393     "draw a circle"
  2208 
  2394 
  2214     _COORD_ (radius, c_radius)
  2400     _COORD_ (radius, c_radius)
  2215     SETWIN(aGLXWindowId)
  2401     SETWIN(aGLXWindowId)
  2216     circ(c_x, c_y, c_radius);
  2402     circ(c_x, c_y, c_radius);
  2217     RETURN (true);
  2403     RETURN (true);
  2218 %}
  2404 %}
  2219 .
       
  2220     ^ false
       
  2221 ! 
  2405 ! 
  2222 
  2406 
  2223 glxCirciX: x y: y radius: radius in: aGLXWindowId
  2407 glxCirciX: x y: y radius: radius in: aGLXWindowId
  2224     "draw a circle"
  2408     "draw a circle"
  2225 
  2409 
  2231     _ICOORD_ (radius, c_radius)
  2415     _ICOORD_ (radius, c_radius)
  2232     SETWIN(aGLXWindowId)
  2416     SETWIN(aGLXWindowId)
  2233     circi(c_x, c_y, c_radius);
  2417     circi(c_x, c_y, c_radius);
  2234     RETURN (true);
  2418     RETURN (true);
  2235 %}
  2419 %}
  2236 .
       
  2237     ^ false
       
  2238 ! 
  2420 ! 
  2239 
  2421 
  2240 glxCircsX: x y: y radius: radius in: aGLXWindowId
  2422 glxCircsX: x y: y radius: radius in: aGLXWindowId
  2241     "draw a circle"
  2423     "draw a circle"
  2242 
  2424 
  2248     _SCOORD_ (radius, c_radius)
  2430     _SCOORD_ (radius, c_radius)
  2249     SETWIN(aGLXWindowId)
  2431     SETWIN(aGLXWindowId)
  2250     circs(c_x, c_y, c_radius);
  2432     circs(c_x, c_y, c_radius);
  2251     RETURN (true);
  2433     RETURN (true);
  2252 %}
  2434 %}
  2253 .
       
  2254     ^ false
       
  2255 ! 
  2435 ! 
  2256 
  2436 
  2257 glxCircfX: x y: y radius: radius in: aGLXWindowId
  2437 glxCircfX: x y: y radius: radius in: aGLXWindowId
  2258     "draw a filled circle"
  2438     "draw a filled circle"
  2259 
  2439 
  2265     _COORD_ (radius, c_radius)
  2445     _COORD_ (radius, c_radius)
  2266     SETWIN(aGLXWindowId)
  2446     SETWIN(aGLXWindowId)
  2267     circf(c_x, c_y, c_radius);
  2447     circf(c_x, c_y, c_radius);
  2268     RETURN (true);
  2448     RETURN (true);
  2269 %}
  2449 %}
  2270 .
       
  2271     ^ false
       
  2272 ! 
  2450 ! 
  2273 
  2451 
  2274 glxCircfiX: x y: y radius: radius in: aGLXWindowId
  2452 glxCircfiX: x y: y radius: radius in: aGLXWindowId
  2275     "draw a filled circle"
  2453     "draw a filled circle"
  2276 
  2454 
  2282     _ICOORD_ (radius, c_radius)
  2460     _ICOORD_ (radius, c_radius)
  2283     SETWIN(aGLXWindowId)
  2461     SETWIN(aGLXWindowId)
  2284     circfi(c_x, c_y, c_radius);
  2462     circfi(c_x, c_y, c_radius);
  2285     RETURN (true);
  2463     RETURN (true);
  2286 %}
  2464 %}
  2287 .
       
  2288     ^ false
       
  2289 ! 
  2465 ! 
  2290 
  2466 
  2291 glxCircfsX: x y: y radius: radius in: aGLXWindowId
  2467 glxCircfsX: x y: y radius: radius in: aGLXWindowId
  2292     "draw a filled circle"
  2468     "draw a filled circle"
  2293 
  2469 
  2299     _SCOORD_ (radius, c_radius)
  2475     _SCOORD_ (radius, c_radius)
  2300     SETWIN(aGLXWindowId)
  2476     SETWIN(aGLXWindowId)
  2301     circfs(c_x, c_y, c_radius);
  2477     circfs(c_x, c_y, c_radius);
  2302     RETURN (true);
  2478     RETURN (true);
  2303 %}
  2479 %}
  2304 .
       
  2305     ^ false
       
  2306 ! !
  2480 ! !
  2307 
  2481 
  2308 !GLXWorkstation methodsFor:'unspecified rest '!
  2482 !GLXWorkstation methodsFor:'objects'!
  2309 
  2483 
  2310 glxAcbufOp: op value: value in: aGLXWindowId
  2484 glxCallObject:obj in:aGLXWindowId
       
  2485     "perform the commands of an object (macro)."
       
  2486 
       
  2487 %{  /* NOCONTEXT */
       
  2488     if (_isSmallInteger(obj)) {
       
  2489 	SETWIN(aGLXWindowId)
       
  2490 	callobj(_objectVal(obj));
       
  2491 	RETURN (true);
       
  2492     }
       
  2493 %}
       
  2494 .
       
  2495     ^ false
       
  2496 !
       
  2497 
       
  2498 glxCallobj: obj in: aGLXWindowId
       
  2499     "OBSOLETE; use glxCallObject:in:
       
  2500      This one will be removed soon."
       
  2501 
       
  2502 %{  /* NOCONTEXT */
       
  2503     if (_isSmallInteger(obj)) {
       
  2504 	SETWIN(aGLXWindowId)
       
  2505 	callobj(_objectVal(obj));
       
  2506 	RETURN (true);
       
  2507     }
       
  2508 %}
       
  2509 .
       
  2510     ^ false
       
  2511 !
       
  2512 
       
  2513 glxCloseObjectIn:aGLXWindowId
       
  2514     "end object defnition"
       
  2515 
       
  2516 %{  /* NOCONTEXT */
       
  2517     SETWIN(aGLXWindowId)
       
  2518     closeobj();
       
  2519     RETURN (true);
       
  2520 %}
       
  2521 !
       
  2522 
       
  2523 glxCloseobjIn:aGLXWindowId
       
  2524     "OBSOLETE: use glxCloseObjectIn:
       
  2525      This one will be removed."
       
  2526 
       
  2527 %{  /* NOCONTEXT */
       
  2528     SETWIN(aGLXWindowId)
       
  2529     closeobj();
       
  2530     RETURN (true);
       
  2531 %}
       
  2532 ! 
       
  2533 
       
  2534 glxDeleteObject:obj in:aGLXWindowId
       
  2535 
       
  2536 %{  /* NOCONTEXT */
       
  2537     SETWIN(aGLXWindowId)
       
  2538     delobj(_objectVal(obj));
       
  2539     RETURN (true);
       
  2540 %}
       
  2541 !
       
  2542 
       
  2543 glxDelobj:obj in:aGLXWindowId
       
  2544     "OBSOLETE: use glxDeleteObject:in:
       
  2545      This one will be removed."
       
  2546 
       
  2547 %{  /* NOCONTEXT */
       
  2548     SETWIN(aGLXWindowId)
       
  2549     delobj(_objectVal(obj));
       
  2550     RETURN (true);
       
  2551 %}
       
  2552 !
       
  2553 
       
  2554 glxGenObjectIn:aGLXWindowId
       
  2555     "return a new (free & unused) object id for use
       
  2556      with makeObj"
       
  2557 
       
  2558 %{  /* NOCONTEXT */
       
  2559     SETWIN(aGLXWindowId)
       
  2560     RETURN (_MKSMALLINT(genobj()));
       
  2561 %}
       
  2562 !
       
  2563 
       
  2564 glxGenobjIn:aGLXWindowId
       
  2565     "OBSOLETE: use glxGenObject:in:
       
  2566      This one will be removed."
       
  2567 
       
  2568 %{  /* NOCONTEXT */
       
  2569     SETWIN(aGLXWindowId)
       
  2570     RETURN (_MKSMALLINT(genobj()));
       
  2571 %}
       
  2572 !
       
  2573 
       
  2574 glxMakeObject:id in:aGLXWindowId
       
  2575     "start object definition -
       
  2576      another name conflict"
       
  2577 
       
  2578 %{  /* NOCONTEXT */
       
  2579     if (_isSmallInteger(id)) {
       
  2580 	SETWIN(aGLXWindowId)
       
  2581 	makeobj(_objectVal(id));
       
  2582 	RETURN (true);
       
  2583     }
       
  2584 %}
       
  2585 .
       
  2586     ^ false
       
  2587 !
       
  2588 
       
  2589 glxMakeobj:obj in:aGLXWindowId
       
  2590     "OBSOLETE; use glxMakeObject:in:
       
  2591      This one will be removed soon."
       
  2592 
       
  2593 %{  /* NOCONTEXT */
       
  2594     if (_isSmallInteger(obj)) {
       
  2595 	SETWIN(aGLXWindowId)
       
  2596 	makeobj(_objectVal(obj));
       
  2597 	RETURN (true);
       
  2598     }
       
  2599 %}
       
  2600 .
       
  2601     ^ false
       
  2602 !
       
  2603 
       
  2604 glxIsobj:obj in:aGLXWindowId
       
  2605     "return true, if obj is a valid object id"
       
  2606 
       
  2607 %{  /* NOCONTEXT */
       
  2608     SETWIN(aGLXWindowId)
       
  2609     RETURN (_MKBOOLEAN(isobj(_objectVal(obj))));
       
  2610 %}
       
  2611 !
       
  2612 
       
  2613 glxGetopenobjIn:aGLXWindowId
       
  2614     "return the currently open objects id; -1 if none is open"
       
  2615 
       
  2616 %{  /* NOCONTEXT */
       
  2617     SETWIN(aGLXWindowId)
       
  2618     RETURN (_MKSMALLINT(getopenobj()));
       
  2619 %}
       
  2620 ! !
       
  2621 
       
  2622 !GLXWorkstation methodsFor:'unspecified rest'!
       
  2623 
       
  2624 glxAcbufOp:op value:value in:aGLXWindowId
  2311 
  2625 
  2312 %{  /* NOCONTEXT */
  2626 %{  /* NOCONTEXT */
  2313 #ifdef GLX
  2627 #ifdef GLX
  2314     SETWIN(aGLXWindowId)
  2628     SETWIN(aGLXWindowId)
  2315     acbuf(_intVal(op), _floatVal(value));
  2629     acbuf(_intVal(op), _floatVal(value));
  2351 %{  /* NOCONTEXT */
  2665 %{  /* NOCONTEXT */
  2352     SETWIN(aGLXWindowId)
  2666     SETWIN(aGLXWindowId)
  2353     backface(_booleanVal(b));
  2667     backface(_booleanVal(b));
  2354     RETURN (true);
  2668     RETURN (true);
  2355 %}
  2669 %}
  2356 .
       
  2357     ^ false
       
  2358 ! 
  2670 ! 
  2359 
  2671 
  2360 glxBbox2Xmin: xmin ymin: ymin x1: x1 y1: y1 x2: x2 y2: y2 in: aGLXWindowId
  2672 glxBbox2Xmin: xmin ymin: ymin x1: x1 y1: y1 x2: x2 y2: y2 in: aGLXWindowId
  2361 
  2673 
  2362 %{  /* NOCONTEXT */
  2674 %{  /* NOCONTEXT */
  2621 %}
  2933 %}
  2622 .
  2934 .
  2623     ^ false
  2935     ^ false
  2624 !
  2936 !
  2625 
  2937 
  2626 glxCallObject:obj in:aGLXWindowId
       
  2627     "do objects definition
       
  2628      I defined that one too - but with a different name"
       
  2629 
       
  2630 %{  /* NOCONTEXT */
       
  2631     if (_isSmallInteger(obj)) {
       
  2632 	SETWIN(aGLXWindowId)
       
  2633 	callobj(_objectVal(obj));
       
  2634 	RETURN (true);
       
  2635     }
       
  2636 %}
       
  2637 .
       
  2638     ^ false
       
  2639 !
       
  2640 
       
  2641 glxCallobj: obj in: aGLXWindowId
       
  2642 
       
  2643 %{  /* NOCONTEXT */
       
  2644     if (_isSmallInteger(obj)) {
       
  2645 	SETWIN(aGLXWindowId)
       
  2646 	callobj(_objectVal(obj));
       
  2647 	RETURN (true);
       
  2648     }
       
  2649 %}
       
  2650 .
       
  2651     ^ false
       
  2652 !
       
  2653 
       
  2654 glxClearhitcodeIn: aGLXWindowId
  2938 glxClearhitcodeIn: aGLXWindowId
  2655 
  2939 
  2656 %{  /* NOCONTEXT */
  2940 %{  /* NOCONTEXT */
  2657 #ifdef GLX
  2941 #ifdef GLX
  2658     SETWIN(aGLXWindowId)
  2942     SETWIN(aGLXWindowId)
  2673     if (! (v = getFloatsFromInto(params, vec, 4))) RETURN(false);
  2957     if (! (v = getFloatsFromInto(params, vec, 4))) RETURN(false);
  2674     SETWIN(aGLXWindowId)
  2958     SETWIN(aGLXWindowId)
  2675     clipplane(_intVal(index), _intVal(mode), v);
  2959     clipplane(_intVal(index), _intVal(mode), v);
  2676     RETURN (true);
  2960     RETURN (true);
  2677 #endif
  2961 #endif
  2678 %}
       
  2679 .
       
  2680     ^ false
       
  2681 ! 
       
  2682 
       
  2683 glxCloseObjectIn:aGLXWindowId
       
  2684     "end object defnition - JEFF and I defined this with different names"
       
  2685 
       
  2686 %{  /* NOCONTEXT */
       
  2687     SETWIN(aGLXWindowId)
       
  2688     closeobj();
       
  2689     RETURN (true);
       
  2690 %}
       
  2691 .
       
  2692     ^ false
       
  2693 !
       
  2694 
       
  2695 glxCloseobjIn: aGLXWindowId
       
  2696 
       
  2697 %{  /* NOCONTEXT */
       
  2698     SETWIN(aGLXWindowId)
       
  2699     closeobj();
       
  2700     RETURN (true);
       
  2701 %}
  2962 %}
  2702 .
  2963 .
  2703     ^ false
  2964     ^ false
  2704 ! 
  2965 ! 
  2705 
  2966 
  2726     _COORD_ (z, c_z)
  2987     _COORD_ (z, c_z)
  2727     SETWIN(aGLXWindowId)
  2988     SETWIN(aGLXWindowId)
  2728     cmov(c_x, c_y, c_z);
  2989     cmov(c_x, c_y, c_z);
  2729     RETURN (true);
  2990     RETURN (true);
  2730 %}
  2991 %}
  2731 .
       
  2732     ^ false
       
  2733 ! 
  2992 ! 
  2734 
  2993 
  2735 glxCmoviX: x y: y z: z in: aGLXWindowId
  2994 glxCmoviX: x y: y z: z in: aGLXWindowId
  2736 
  2995 
  2737 %{  /* NOCONTEXT */
  2996 %{  /* NOCONTEXT */
  2742     _ICOORD_ (z, c_z)
  3001     _ICOORD_ (z, c_z)
  2743     SETWIN(aGLXWindowId)
  3002     SETWIN(aGLXWindowId)
  2744     cmovi(c_x, c_y, c_z);
  3003     cmovi(c_x, c_y, c_z);
  2745     RETURN (true);
  3004     RETURN (true);
  2746 %}
  3005 %}
  2747 .
       
  2748     ^ false
       
  2749 ! 
  3006 ! 
  2750 
  3007 
  2751 glxCmovsX: x y: y z: z in: aGLXWindowId
  3008 glxCmovsX: x y: y z: z in: aGLXWindowId
  2752 
  3009 
  2753 %{  /* NOCONTEXT */
  3010 %{  /* NOCONTEXT */
  2758     _SCOORD_ (z, c_z)
  3015     _SCOORD_ (z, c_z)
  2759     SETWIN(aGLXWindowId)
  3016     SETWIN(aGLXWindowId)
  2760     cmovs(c_x, c_y, c_z);
  3017     cmovs(c_x, c_y, c_z);
  2761     RETURN (true);
  3018     RETURN (true);
  2762 %}
  3019 %}
  2763 .
       
  2764     ^ false
       
  2765 ! 
  3020 ! 
  2766 
  3021 
  2767 glxCmov2X: x y: y in: aGLXWindowId
  3022 glxCmov2X: x y: y in: aGLXWindowId
  2768 
  3023 
  2769 %{  /* NOCONTEXT */
  3024 %{  /* NOCONTEXT */
  2773     _COORD_ (y, c_y)
  3028     _COORD_ (y, c_y)
  2774     SETWIN(aGLXWindowId)
  3029     SETWIN(aGLXWindowId)
  2775     cmov2(c_x, c_y);
  3030     cmov2(c_x, c_y);
  2776     RETURN (true);
  3031     RETURN (true);
  2777 %}
  3032 %}
  2778 .
       
  2779     ^ false
       
  2780 ! 
  3033 ! 
  2781 
  3034 
  2782 glxCmov2iX: x y: y in: aGLXWindowId
  3035 glxCmov2iX: x y: y in: aGLXWindowId
  2783 
  3036 
  2784 %{  /* NOCONTEXT */
  3037 %{  /* NOCONTEXT */
  2788     _ICOORD_ (y, c_y)
  3041     _ICOORD_ (y, c_y)
  2789     SETWIN(aGLXWindowId)
  3042     SETWIN(aGLXWindowId)
  2790     cmov2i(c_x, c_y);
  3043     cmov2i(c_x, c_y);
  2791     RETURN (true);
  3044     RETURN (true);
  2792 %}
  3045 %}
  2793 .
       
  2794     ^ false
       
  2795 ! 
  3046 ! 
  2796 
  3047 
  2797 glxCmov2sX: x y: y in: aGLXWindowId
  3048 glxCmov2sX: x y: y in: aGLXWindowId
  2798 
  3049 
  2799 %{  /* NOCONTEXT */
  3050 %{  /* NOCONTEXT */
  2803     _SCOORD_ (y, c_y)
  3054     _SCOORD_ (y, c_y)
  2804     SETWIN(aGLXWindowId)
  3055     SETWIN(aGLXWindowId)
  2805     cmov2s(c_x, c_y);
  3056     cmov2s(c_x, c_y);
  2806     RETURN (true);
  3057     RETURN (true);
  2807 %}
  3058 %}
  2808 .
       
  2809     ^ false
       
  2810 ! 
  3059 ! 
  2811 
  3060 
  2812 glxColorfIndex: index in: aGLXWindowId
  3061 glxColorfIndex: index in: aGLXWindowId
  2813 
  3062 
  2814     ^self glxColor: index in: aGLXWindowId
  3063     ^self glxColor: index in: aGLXWindowId
  2819 %{  /* NOCONTEXT */
  3068 %{  /* NOCONTEXT */
  2820     SETWIN(aGLXWindowId)
  3069     SETWIN(aGLXWindowId)
  2821     concave(_booleanVal(b));
  3070     concave(_booleanVal(b));
  2822     RETURN (true);
  3071     RETURN (true);
  2823 %}
  3072 %}
  2824 .
       
  2825     ^ false
       
  2826 ! 
  3073 ! 
  2827 
  3074 
  2828 glxCuroriginN: n xorigin: xorigin yorigin: yorigin in: aGLXWindowId
  3075 glxCuroriginN: n xorigin: xorigin yorigin: yorigin in: aGLXWindowId
  2829 
  3076 
  2830 %{  /* NOCONTEXT */
  3077 %{  /* NOCONTEXT */
  2882 %{  /* NOCONTEXT */
  3129 %{  /* NOCONTEXT */
  2883     SETWIN(aGLXWindowId)
  3130     SETWIN(aGLXWindowId)
  2884     curvebasis(_shortVal(basid));
  3131     curvebasis(_shortVal(basid));
  2885     RETURN (true);
  3132     RETURN (true);
  2886 %}
  3133 %}
  2887 .
       
  2888     ^ false
       
  2889 ! 
  3134 ! 
  2890 
  3135 
  2891 glxCurveit: iterationcount in: aGLXWindowId
  3136 glxCurveit: iterationcount in: aGLXWindowId
  2892 
  3137 
  2893 %{  /* NOCONTEXT */
  3138 %{  /* NOCONTEXT */
  2894     SETWIN(aGLXWindowId)
  3139     SETWIN(aGLXWindowId)
  2895     curveit(_shortVal(iterationcount));
  3140     curveit(_shortVal(iterationcount));
  2896     RETURN (true);
  3141     RETURN (true);
  2897 %}
  3142 %}
  2898 .
       
  2899     ^ false
       
  2900 ! 
  3143 ! 
  2901 
  3144 
  2902 glxCurveprecision: nsegments in: aGLXWindowId
  3145 glxCurveprecision: nsegments in: aGLXWindowId
  2903 
  3146 
  2904 %{  /* NOCONTEXT */
  3147 %{  /* NOCONTEXT */
  2905     SETWIN(aGLXWindowId)
  3148     SETWIN(aGLXWindowId)
  2906     curveprecision(_shortVal(nsegments));
  3149     curveprecision(_shortVal(nsegments));
  2907     RETURN (true);
  3150     RETURN (true);
  2908 %}
  3151 %}
  2909 .
       
  2910     ^ false
       
  2911 ! 
  3152 ! 
  2912 
  3153 
  2913 glxCyclemapDuration: duration map: map nxtmap: nxtmap in: aGLXWindowId
  3154 glxCyclemapDuration: duration map: map nxtmap: nxtmap in: aGLXWindowId
  2914 
  3155 
  2915 %{  /* NOCONTEXT */
  3156 %{  /* NOCONTEXT */
  2916 #ifdef GLX
  3157 #ifdef GLX
  2917     SETWIN(aGLXWindowId)
  3158     SETWIN(aGLXWindowId)
  2918     cyclemap(_shortVal(duration), _shortVal(map), _shortVal(nxtmap));
  3159     cyclemap(_shortVal(duration), _shortVal(map), _shortVal(nxtmap));
  2919     RETURN (true);
       
  2920 #endif
       
  2921 %}
       
  2922 .
       
  2923     ^ false
       
  2924 ! 
       
  2925 
       
  2926 glxCzclearCval: cval zval: zval in: aGLXWindowId
       
  2927 
       
  2928 %{  /* NOCONTEXT */
       
  2929 #ifdef GLX
       
  2930     SETWIN(aGLXWindowId)
       
  2931     czclear((ulong)_intVal(cval), _intVal(zval));
       
  2932     RETURN (true);
  3160     RETURN (true);
  2933 #endif
  3161 #endif
  2934 %}
  3162 %}
  2935 .
  3163 .
  2936     ^ false
  3164     ^ false
  2942 %{  /* NOCONTEXT */
  3170 %{  /* NOCONTEXT */
  2943     SETWIN(aGLXWindowId)
  3171     SETWIN(aGLXWindowId)
  2944     deflinestyle(_shortVal(n), _linestyleVal(ls));
  3172     deflinestyle(_shortVal(n), _linestyleVal(ls));
  2945     RETURN (true);
  3173     RETURN (true);
  2946 %}
  3174 %}
  2947 .
       
  2948     ^ false
       
  2949 ! 
  3175 ! 
  2950 
  3176 
  2951 glxDefpatternN: n size: size mask: mask in: aGLXWindowId
  3177 glxDefpatternN: n size: size mask: mask in: aGLXWindowId
  2952 
  3178 
  2953 %{  /* NOCONTEXT */
  3179 %{  /* NOCONTEXT */
  2958 #endif
  3184 #endif
  2959 %}
  3185 %}
  2960 .
  3186 .
  2961     ^ false
  3187     ^ false
  2962 ! 
  3188 ! 
  2963 
       
  2964 glxDelobj: obj in: aGLXWindowId
       
  2965 
       
  2966 %{  /* NOCONTEXT */
       
  2967     SETWIN(aGLXWindowId)
       
  2968     delobj(_objectVal(obj));
       
  2969     RETURN (true);
       
  2970 %}
       
  2971 .
       
  2972     ^ false
       
  2973 !
       
  2974 
  3189 
  2975 glxDeltag: t in: aGLXWindowId
  3190 glxDeltag: t in: aGLXWindowId
  2976 
  3191 
  2977 %{  /* NOCONTEXT */
  3192 %{  /* NOCONTEXT */
  2978 #ifdef GLX
  3193 #ifdef GLX
  3034     _COORD_ (z, c_z)
  3249     _COORD_ (z, c_z)
  3035     SETWIN(aGLXWindowId)
  3250     SETWIN(aGLXWindowId)
  3036     draw(c_x, c_y, c_z);
  3251     draw(c_x, c_y, c_z);
  3037     RETURN (true);
  3252     RETURN (true);
  3038 %}
  3253 %}
  3039 .
       
  3040     ^ false
       
  3041 ! 
  3254 ! 
  3042 
  3255 
  3043 glxDrawiX: x y: y z: z in: aGLXWindowId
  3256 glxDrawiX: x y: y z: z in: aGLXWindowId
  3044 
  3257 
  3045 %{  /* NOCONTEXT */
  3258 %{  /* NOCONTEXT */
  3050     _ICOORD_ (z, c_z)
  3263     _ICOORD_ (z, c_z)
  3051     SETWIN(aGLXWindowId)
  3264     SETWIN(aGLXWindowId)
  3052     drawi(c_x, c_y, c_z);
  3265     drawi(c_x, c_y, c_z);
  3053     RETURN (true);
  3266     RETURN (true);
  3054 %}
  3267 %}
  3055 .
       
  3056     ^ false
       
  3057 ! 
  3268 ! 
  3058 
  3269 
  3059 glxDrawsX: x y: y z: z in: aGLXWindowId
  3270 glxDrawsX: x y: y z: z in: aGLXWindowId
  3060 
  3271 
  3061 %{  /* NOCONTEXT */
  3272 %{  /* NOCONTEXT */
  3066     _SCOORD_ (z, c_z)
  3277     _SCOORD_ (z, c_z)
  3067     SETWIN(aGLXWindowId)
  3278     SETWIN(aGLXWindowId)
  3068     draws(c_x, c_y, c_z);
  3279     draws(c_x, c_y, c_z);
  3069     RETURN (true);
  3280     RETURN (true);
  3070 %}
  3281 %}
  3071 .
       
  3072     ^ false
       
  3073 ! 
  3282 ! 
  3074 
  3283 
  3075 glxDraw2X: x y: y in: aGLXWindowId
  3284 glxDraw2X: x y: y in: aGLXWindowId
  3076 
  3285 
  3077 %{  /* NOCONTEXT */
  3286 %{  /* NOCONTEXT */
  3081     _COORD_ (y, c_y)
  3290     _COORD_ (y, c_y)
  3082     SETWIN(aGLXWindowId)
  3291     SETWIN(aGLXWindowId)
  3083     draw2(c_x, c_y);
  3292     draw2(c_x, c_y);
  3084     RETURN (true);
  3293     RETURN (true);
  3085 %}
  3294 %}
  3086 .
       
  3087     ^ false
       
  3088 ! 
  3295 ! 
  3089 
  3296 
  3090 glxDraw2iX: x y: y in: aGLXWindowId
  3297 glxDraw2iX: x y: y in: aGLXWindowId
  3091 
  3298 
  3092 %{  /* NOCONTEXT */
  3299 %{  /* NOCONTEXT */
  3096     _ICOORD_ (y, c_y)
  3303     _ICOORD_ (y, c_y)
  3097     SETWIN(aGLXWindowId)
  3304     SETWIN(aGLXWindowId)
  3098     draw2i(c_x, c_y);
  3305     draw2i(c_x, c_y);
  3099     RETURN (true);
  3306     RETURN (true);
  3100 %}
  3307 %}
  3101 .
       
  3102     ^ false
       
  3103 ! 
  3308 ! 
  3104 
  3309 
  3105 glxDraw2sX: x y: y in: aGLXWindowId
  3310 glxDraw2sX: x y: y in: aGLXWindowId
  3106 
  3311 
  3107 %{  /* NOCONTEXT */
  3312 %{  /* NOCONTEXT */
  3111     _SCOORD_ (y, c_y)
  3316     _SCOORD_ (y, c_y)
  3112     SETWIN(aGLXWindowId)
  3317     SETWIN(aGLXWindowId)
  3113     draw2s(c_x, c_y);
  3318     draw2s(c_x, c_y);
  3114     RETURN (true);
  3319     RETURN (true);
  3115 %}
  3320 %}
  3116 .
       
  3117     ^ false
       
  3118 ! 
  3321 ! 
  3119 
  3322 
  3120 glxDrawmode: mode in: aGLXWindowId
  3323 glxDrawmode: mode in: aGLXWindowId
  3121 
  3324 
  3122 %{  /* NOCONTEXT */
  3325 %{  /* NOCONTEXT */
  3213 %{  /* NOCONTEXT */
  3416 %{  /* NOCONTEXT */
  3214     SETWIN(aGLXWindowId)
  3417     SETWIN(aGLXWindowId)
  3215     font(_shortVal(fntnum));
  3418     font(_shortVal(fntnum));
  3216     RETURN (true);
  3419     RETURN (true);
  3217 %}
  3420 %}
  3218 .
       
  3219     ^ false
       
  3220 ! 
  3421 ! 
  3221 
  3422 
  3222 glxForegroundIn: aGLXWindowId
  3423 glxForegroundIn: aGLXWindowId
  3223 
  3424 
  3224 %{  /* NOCONTEXT */
  3425 %{  /* NOCONTEXT */
  3225     SETWIN(aGLXWindowId)
  3426     SETWIN(aGLXWindowId)
  3226     foreground();
  3427     foreground();
  3227     RETURN (true);
  3428     RETURN (true);
  3228 %}
  3429 %}
  3229 .
       
  3230     ^ false
       
  3231 ! 
  3430 ! 
  3232 
  3431 
  3233 glxFreepup: pup in: aGLXWindowId
  3432 glxFreepup: pup in: aGLXWindowId
  3234 
  3433 
  3235 %{  /* NOCONTEXT */
  3434 %{  /* NOCONTEXT */
  3290 %}
  3489 %}
  3291 .
  3490 .
  3292     ^ false
  3491     ^ false
  3293 ! 
  3492 ! 
  3294 
  3493 
  3295 glxGenobjIn: aGLXWindowId
       
  3296 
       
  3297 %{  /* NOCONTEXT */
       
  3298     SETWIN(aGLXWindowId)
       
  3299     RETURN (_MKSMALLINT(genobj()));
       
  3300 %}
       
  3301 .
       
  3302     ^ false
       
  3303 ! 
       
  3304 
       
  3305 glxGentagIn: aGLXWindowId
  3494 glxGentagIn: aGLXWindowId
  3306 
  3495 
  3307 %{  /* NOCONTEXT */
  3496 %{  /* NOCONTEXT */
  3308 #ifdef GLX
  3497 #ifdef GLX
  3309     SETWIN(aGLXWindowId)
  3498     SETWIN(aGLXWindowId)
  3330 
  3519 
  3331 %{  /* NOCONTEXT */
  3520 %{  /* NOCONTEXT */
  3332     SETWIN(aGLXWindowId)
  3521     SETWIN(aGLXWindowId)
  3333     RETURN (_MKSMALLINT(getbutton(_deviceVal(num))));
  3522     RETURN (_MKSMALLINT(getbutton(_deviceVal(num))));
  3334 %}
  3523 %}
  3335 .
       
  3336     ^ false
       
  3337 ! 
  3524 ! 
  3338 
  3525 
  3339 glxGetcmmodeIn: aGLXWindowId
  3526 glxGetcmmodeIn: aGLXWindowId
  3340 
  3527 
  3341 %{  /* NOCONTEXT */
  3528 %{  /* NOCONTEXT */
  3353 
  3540 
  3354 %{  /* NOCONTEXT */
  3541 %{  /* NOCONTEXT */
  3355     SETWIN(aGLXWindowId)
  3542     SETWIN(aGLXWindowId)
  3356     RETURN (_MKSMALLINT(getcolor()));
  3543     RETURN (_MKSMALLINT(getcolor()));
  3357 %}
  3544 %}
  3358 .
       
  3359     ^ false
       
  3360 ! 
  3545 ! 
  3361 
  3546 
  3362 glxGetcposIn: aGLXWindowId
  3547 glxGetcposIn: aGLXWindowId
  3363 
  3548 
  3364     | x y |
  3549     | x y |
  3451 
  3636 
  3452 %{  /* NOCONTEXT */
  3637 %{  /* NOCONTEXT */
  3453     SETWIN(aGLXWindowId)
  3638     SETWIN(aGLXWindowId)
  3454     RETURN (_MKSMALLINT(getgdesc(_longVal(inquiry))));
  3639     RETURN (_MKSMALLINT(getgdesc(_longVal(inquiry))));
  3455 %}
  3640 %}
  3456 .
       
  3457     ^ false
       
  3458 ! 
  3641 ! 
  3459 
  3642 
  3460 glxGetheightIn: aGLXWindowId
  3643 glxGetheightIn: aGLXWindowId
  3461 
  3644 
  3462 %{  /* NOCONTEXT */
  3645 %{  /* NOCONTEXT */
  3463     SETWIN(aGLXWindowId)
  3646     SETWIN(aGLXWindowId)
  3464     RETURN (_MKSMALLINT(getheight()));
  3647     RETURN (_MKSMALLINT(getheight()));
  3465 %}
  3648 %}
  3466 .
       
  3467     ^ false
       
  3468 ! 
  3649 ! 
  3469 
  3650 
  3470 glxGethitcodeIn: aGLXWindowId
  3651 glxGethitcodeIn: aGLXWindowId
  3471 
  3652 
  3472 %{  /* NOCONTEXT */
  3653 %{  /* NOCONTEXT */
  3573 %}
  3754 %}
  3574 .
  3755 .
  3575     ^ false
  3756     ^ false
  3576 ! 
  3757 ! 
  3577 
  3758 
  3578 glxGetopenobjIn: aGLXWindowId
       
  3579 
       
  3580 %{  /* NOCONTEXT */
       
  3581 #ifdef GLX
       
  3582     SETWIN(aGLXWindowId)
       
  3583     RETURN (_MKSMALLINT(getopenobj()));
       
  3584 #endif
       
  3585 %}
       
  3586 .
       
  3587     ^ false
       
  3588 ! 
       
  3589 
       
  3590 glxGetothermonitorIn: aGLXWindowId
  3759 glxGetothermonitorIn: aGLXWindowId
  3591 
  3760 
  3592 %{  /* NOCONTEXT */
  3761 %{  /* NOCONTEXT */
  3593 #ifdef GLX
  3762 #ifdef GLX
  3594     SETWIN(aGLXWindowId)
  3763     SETWIN(aGLXWindowId)
  3827 #ifdef GLX
  3996 #ifdef GLX
  3828     SETWIN(aGLXWindowId)
  3997     SETWIN(aGLXWindowId)
  3829     initnames();
  3998     initnames();
  3830     RETURN (true);
  3999     RETURN (true);
  3831 #endif
  4000 #endif
  3832 %}
       
  3833 .
       
  3834     ^ false
       
  3835 ! 
       
  3836 
       
  3837 glxIsobj: obj in: aGLXWindowId
       
  3838 
       
  3839 %{  /* NOCONTEXT */
       
  3840     SETWIN(aGLXWindowId)
       
  3841     RETURN (_MKBOOLEAN(isobj(_objectVal(obj))));
       
  3842 %}
  4001 %}
  3843 .
  4002 .
  3844     ^ false
  4003     ^ false
  3845 ! 
  4004 ! 
  3846 
  4005 
  3926 %{  /* NOCONTEXT */
  4085 %{  /* NOCONTEXT */
  3927     SETWIN(aGLXWindowId)
  4086     SETWIN(aGLXWindowId)
  3928     linewidth(_shortVal(n));
  4087     linewidth(_shortVal(n));
  3929     RETURN (true);
  4088     RETURN (true);
  3930 %}
  4089 %}
  3931 .
       
  3932     ^ false
       
  3933 ! 
  4090 ! 
  3934 
  4091 
  3935 glxLinewidthf: n in: aGLXWindowId
  4092 glxLinewidthf: n in: aGLXWindowId
  3936     "set the linewidth"
  4093     "set the linewidth"
  3937 
  4094 
  3938 %{  /* NOCONTEXT */
  4095 %{  /* NOCONTEXT */
  3939     SETWIN(aGLXWindowId)
  4096     SETWIN(aGLXWindowId)
  3940     linewidthf(_floatVal(n));
  4097     linewidthf(_floatVal(n));
  3941     RETURN (true);
  4098     RETURN (true);
  3942 %}
  4099 %}
  3943 .
       
  3944     ^ false
       
  3945 ! 
  4100 ! 
  3946 
  4101 
  3947 glxLmcolorMode: mode in: aGLXWindowId
  4102 glxLmcolorMode: mode in: aGLXWindowId
  3948 
  4103 
  3949 %{  /* NOCONTEXT */
  4104 %{  /* NOCONTEXT */
  4050 %}
  4205 %}
  4051 .
  4206 .
  4052     ^ false
  4207     ^ false
  4053 ! 
  4208 ! 
  4054 
  4209 
  4055 glxMakeObject:id in:aGLXWindowId
       
  4056     "start object definition -
       
  4057      another name conflict"
       
  4058 
       
  4059 %{  /* NOCONTEXT */
       
  4060     if (_isSmallInteger(id)) {
       
  4061 	SETWIN(aGLXWindowId)
       
  4062 	makeobj(_objectVal(id));
       
  4063 	RETURN (true);
       
  4064     }
       
  4065 %}
       
  4066 .
       
  4067     ^ false
       
  4068 !
       
  4069 
       
  4070 glxMakeobj: obj in: aGLXWindowId
       
  4071     "start object definition"
       
  4072 
       
  4073 %{  /* NOCONTEXT */
       
  4074     if (_isSmallInteger(obj)) {
       
  4075 	SETWIN(aGLXWindowId)
       
  4076 	makeobj(_objectVal(obj));
       
  4077 	RETURN (true);
       
  4078     }
       
  4079 %}
       
  4080 .
       
  4081     ^ false
       
  4082 ! 
       
  4083 
       
  4084 glxMaketag: t in: aGLXWindowId
  4210 glxMaketag: t in: aGLXWindowId
  4085 
  4211 
  4086 %{  /* NOCONTEXT */
  4212 %{  /* NOCONTEXT */
  4087 #ifdef GLX
  4213 #ifdef GLX
  4088     SETWIN(aGLXWindowId)
  4214     SETWIN(aGLXWindowId)
  4099 %{  /* NOCONTEXT */
  4225 %{  /* NOCONTEXT */
  4100     SETWIN(aGLXWindowId)
  4226     SETWIN(aGLXWindowId)
  4101     mapcolor(_colorindexVal(i), _shortVal(red), _shortVal(green), _shortVal(blue));
  4227     mapcolor(_colorindexVal(i), _shortVal(red), _shortVal(green), _shortVal(blue));
  4102     RETURN (true);
  4228     RETURN (true);
  4103 %}
  4229 %}
  4104 .
       
  4105     ^ false
       
  4106 ! 
  4230 ! 
  4107 
  4231 
  4108 glxMaxsizeX: x y: y in: aGLXWindowId
  4232 glxMaxsizeX: x y: y in: aGLXWindowId
  4109 
  4233 
  4110 %{  /* NOCONTEXT */
  4234 %{  /* NOCONTEXT */
  4154     _COORD_ (z, c_z)
  4278     _COORD_ (z, c_z)
  4155     SETWIN(aGLXWindowId)
  4279     SETWIN(aGLXWindowId)
  4156     move(c_x, c_y, c_z);
  4280     move(c_x, c_y, c_z);
  4157     RETURN (true);
  4281     RETURN (true);
  4158 %}
  4282 %}
  4159 .
       
  4160     ^ false
       
  4161 ! 
  4283 ! 
  4162 
  4284 
  4163 glxMoveiX: x y: y z: z in: aGLXWindowId
  4285 glxMoveiX: x y: y z: z in: aGLXWindowId
  4164 
  4286 
  4165 %{  /* NOCONTEXT */
  4287 %{  /* NOCONTEXT */
  4170     _ICOORD_ (z, c_z)
  4292     _ICOORD_ (z, c_z)
  4171     SETWIN(aGLXWindowId)
  4293     SETWIN(aGLXWindowId)
  4172     movei(c_x, c_y, c_z);
  4294     movei(c_x, c_y, c_z);
  4173     RETURN (true);
  4295     RETURN (true);
  4174 %}
  4296 %}
  4175 .
       
  4176     ^ false
       
  4177 ! 
  4297 ! 
  4178 
  4298 
  4179 glxMovesX: x y: y z: z in: aGLXWindowId
  4299 glxMovesX: x y: y z: z in: aGLXWindowId
  4180 
  4300 
  4181 %{  /* NOCONTEXT */
  4301 %{  /* NOCONTEXT */
  4186     _SCOORD_ (z, c_z)
  4306     _SCOORD_ (z, c_z)
  4187     SETWIN(aGLXWindowId)
  4307     SETWIN(aGLXWindowId)
  4188     moves(c_x, c_y, c_z);
  4308     moves(c_x, c_y, c_z);
  4189     RETURN (true);
  4309     RETURN (true);
  4190 %}
  4310 %}
  4191 .
       
  4192     ^ false
       
  4193 ! 
  4311 ! 
  4194 
  4312 
  4195 glxMove2X: x y: y in: aGLXWindowId
  4313 glxMove2X: x y: y in: aGLXWindowId
  4196 
  4314 
  4197 %{  /* NOCONTEXT */
  4315 %{  /* NOCONTEXT */
  4201     _COORD_ (y, c_y)
  4319     _COORD_ (y, c_y)
  4202     SETWIN(aGLXWindowId)
  4320     SETWIN(aGLXWindowId)
  4203     move2(c_x, c_y);
  4321     move2(c_x, c_y);
  4204     RETURN (true);
  4322     RETURN (true);
  4205 %}
  4323 %}
  4206 .
       
  4207     ^ false
       
  4208 ! 
  4324 ! 
  4209 
  4325 
  4210 glxMove2iX: x y: y in: aGLXWindowId
  4326 glxMove2iX: x y: y in: aGLXWindowId
  4211 
  4327 
  4212 %{  /* NOCONTEXT */
  4328 %{  /* NOCONTEXT */
  4216     _ICOORD_ (y, c_y)
  4332     _ICOORD_ (y, c_y)
  4217     SETWIN(aGLXWindowId)
  4333     SETWIN(aGLXWindowId)
  4218     move2i(c_x, c_y);
  4334     move2i(c_x, c_y);
  4219     RETURN (true);
  4335     RETURN (true);
  4220 %}
  4336 %}
  4221 .
       
  4222     ^ false
       
  4223 ! 
  4337 ! 
  4224 
  4338 
  4225 glxMove2sX: x y: y in: aGLXWindowId
  4339 glxMove2sX: x y: y in: aGLXWindowId
  4226 
  4340 
  4227 %{  /* NOCONTEXT */
  4341 %{  /* NOCONTEXT */
  4231     _SCOORD_ (y, c_y)
  4345     _SCOORD_ (y, c_y)
  4232     SETWIN(aGLXWindowId)
  4346     SETWIN(aGLXWindowId)
  4233     move2s(c_x, c_y);
  4347     move2s(c_x, c_y);
  4234     RETURN (true);
  4348     RETURN (true);
  4235 %}
  4349 %}
  4236 .
       
  4237     ^ false
       
  4238 ! 
  4350 ! 
  4239 
  4351 
  4240 glxMsalphaMode: mode in: aGLXWindowId
  4352 glxMsalphaMode: mode in: aGLXWindowId
  4241 
  4353 
  4242 %{  /* NOCONTEXT */
  4354 %{  /* NOCONTEXT */
  4543     _COORD_ (z, c_z)
  4655     _COORD_ (z, c_z)
  4544     SETWIN(aGLXWindowId)
  4656     SETWIN(aGLXWindowId)
  4545     pdr(c_x, c_y, c_z);
  4657     pdr(c_x, c_y, c_z);
  4546     RETURN (true);
  4658     RETURN (true);
  4547 %}
  4659 %}
  4548 .
       
  4549     ^ false
       
  4550 ! 
  4660 ! 
  4551 
  4661 
  4552 glxPdriX: x y: y z: z in: aGLXWindowId
  4662 glxPdriX: x y: y z: z in: aGLXWindowId
  4553 
  4663 
  4554 %{  /* NOCONTEXT */
  4664 %{  /* NOCONTEXT */
  4559     _ICOORD_ (z, c_z)
  4669     _ICOORD_ (z, c_z)
  4560     SETWIN(aGLXWindowId)
  4670     SETWIN(aGLXWindowId)
  4561     pdri(c_x, c_y, c_z);
  4671     pdri(c_x, c_y, c_z);
  4562     RETURN (true);
  4672     RETURN (true);
  4563 %}
  4673 %}
  4564 .
       
  4565     ^ false
       
  4566 ! 
  4674 ! 
  4567 
  4675 
  4568 glxPdrsX: x y: y z: z in: aGLXWindowId
  4676 glxPdrsX: x y: y z: z in: aGLXWindowId
  4569 
  4677 
  4570 %{  /* NOCONTEXT */
  4678 %{  /* NOCONTEXT */
  4575     _SCOORD_ (z, c_z)
  4683     _SCOORD_ (z, c_z)
  4576     SETWIN(aGLXWindowId)
  4684     SETWIN(aGLXWindowId)
  4577     pdrs(c_x, c_y, c_z);
  4685     pdrs(c_x, c_y, c_z);
  4578     RETURN (true);
  4686     RETURN (true);
  4579 %}
  4687 %}
  4580 .
       
  4581     ^ false
       
  4582 ! 
  4688 ! 
  4583 
  4689 
  4584 glxPdr2X: x y: y in: aGLXWindowId
  4690 glxPdr2X: x y: y in: aGLXWindowId
  4585 
  4691 
  4586 %{  /* NOCONTEXT */
  4692 %{  /* NOCONTEXT */
  4590     _COORD_ (y, c_y)
  4696     _COORD_ (y, c_y)
  4591     SETWIN(aGLXWindowId)
  4697     SETWIN(aGLXWindowId)
  4592     pdr2(c_x, c_y);
  4698     pdr2(c_x, c_y);
  4593     RETURN (true);
  4699     RETURN (true);
  4594 %}
  4700 %}
  4595 .
       
  4596     ^ false
       
  4597 ! 
  4701 ! 
  4598 
  4702 
  4599 glxPdr2iX: x y: y in: aGLXWindowId
  4703 glxPdr2iX: x y: y in: aGLXWindowId
  4600 
  4704 
  4601 %{  /* NOCONTEXT */
  4705 %{  /* NOCONTEXT */
  4605     _ICOORD_ (y, c_y)
  4709     _ICOORD_ (y, c_y)
  4606     SETWIN(aGLXWindowId)
  4710     SETWIN(aGLXWindowId)
  4607     pdr2i(c_x, c_y);
  4711     pdr2i(c_x, c_y);
  4608     RETURN (true);
  4712     RETURN (true);
  4609 %}
  4713 %}
  4610 .
       
  4611     ^ false
       
  4612 ! 
  4714 ! 
  4613 
  4715 
  4614 glxPdr2sX: x y: y in: aGLXWindowId
  4716 glxPdr2sX: x y: y in: aGLXWindowId
  4615 
  4717 
  4616 %{  /* NOCONTEXT */
  4718 %{  /* NOCONTEXT */
  4620     _SCOORD_ (y, c_y)
  4722     _SCOORD_ (y, c_y)
  4621     SETWIN(aGLXWindowId)
  4723     SETWIN(aGLXWindowId)
  4622     pdr2s(c_x, c_y);
  4724     pdr2s(c_x, c_y);
  4623     RETURN (true);
  4725     RETURN (true);
  4624 %}
  4726 %}
  4625 .
       
  4626     ^ false
       
  4627 ! 
  4727 ! 
  4628 
  4728 
  4629 glxPicksizeX: x y: y in: aGLXWindowId
  4729 glxPicksizeX: x y: y in: aGLXWindowId
  4630 
  4730 
  4631 %{  /* NOCONTEXT */
  4731 %{  /* NOCONTEXT */
  4662     _COORD_ (z, c_z)
  4762     _COORD_ (z, c_z)
  4663     SETWIN(aGLXWindowId)
  4763     SETWIN(aGLXWindowId)
  4664     pmv(c_x, c_y, c_z);
  4764     pmv(c_x, c_y, c_z);
  4665     RETURN (true);
  4765     RETURN (true);
  4666 %}
  4766 %}
  4667 .
       
  4668     ^ false
       
  4669 ! 
  4767 ! 
  4670 
  4768 
  4671 glxPmviX: x y: y z: z in: aGLXWindowId
  4769 glxPmviX: x y: y z: z in: aGLXWindowId
  4672 
  4770 
  4673 %{  /* NOCONTEXT */
  4771 %{  /* NOCONTEXT */
  4678     _ICOORD_ (z, c_z)
  4776     _ICOORD_ (z, c_z)
  4679     SETWIN(aGLXWindowId)
  4777     SETWIN(aGLXWindowId)
  4680     pmvi(c_x, c_y, c_z);
  4778     pmvi(c_x, c_y, c_z);
  4681     RETURN (true);
  4779     RETURN (true);
  4682 %}
  4780 %}
  4683 .
       
  4684     ^ false
       
  4685 ! 
  4781 ! 
  4686 
  4782 
  4687 glxPmvsX: x y: y z: z in: aGLXWindowId
  4783 glxPmvsX: x y: y z: z in: aGLXWindowId
  4688 
  4784 
  4689 %{  /* NOCONTEXT */
  4785 %{  /* NOCONTEXT */
  4694     _SCOORD_ (z, c_z)
  4790     _SCOORD_ (z, c_z)
  4695     SETWIN(aGLXWindowId)
  4791     SETWIN(aGLXWindowId)
  4696     pmvs(c_x, c_y, c_z);
  4792     pmvs(c_x, c_y, c_z);
  4697     RETURN (true);
  4793     RETURN (true);
  4698 %}
  4794 %}
  4699 .
       
  4700     ^ false
       
  4701 ! 
  4795 ! 
  4702 
  4796 
  4703 glxPmv2X: x y: y in: aGLXWindowId
  4797 glxPmv2X: x y: y in: aGLXWindowId
  4704 
  4798 
  4705 %{  /* NOCONTEXT */
  4799 %{  /* NOCONTEXT */
  4709     _COORD_ (y, c_y)
  4803     _COORD_ (y, c_y)
  4710     SETWIN(aGLXWindowId)
  4804     SETWIN(aGLXWindowId)
  4711     pmv2(c_x, c_y);
  4805     pmv2(c_x, c_y);
  4712     RETURN (true);
  4806     RETURN (true);
  4713 %}
  4807 %}
  4714 .
       
  4715     ^ false
       
  4716 ! 
  4808 ! 
  4717 
  4809 
  4718 glxPmv2iX: x y: y in: aGLXWindowId
  4810 glxPmv2iX: x y: y in: aGLXWindowId
  4719 
  4811 
  4720 %{  /* NOCONTEXT */
  4812 %{  /* NOCONTEXT */
  4724     _ICOORD_ (y, c_y)
  4816     _ICOORD_ (y, c_y)
  4725     SETWIN(aGLXWindowId)
  4817     SETWIN(aGLXWindowId)
  4726     pmv2i(c_x, c_y);
  4818     pmv2i(c_x, c_y);
  4727     RETURN (true);
  4819     RETURN (true);
  4728 %}
  4820 %}
  4729 .
       
  4730     ^ false
       
  4731 ! 
  4821 ! 
  4732 
  4822 
  4733 glxPmv2sX: x y: y in: aGLXWindowId
  4823 glxPmv2sX: x y: y in: aGLXWindowId
  4734 
  4824 
  4735 %{  /* NOCONTEXT */
  4825 %{  /* NOCONTEXT */
  4739     _SCOORD_ (y, c_y)
  4829     _SCOORD_ (y, c_y)
  4740     SETWIN(aGLXWindowId)
  4830     SETWIN(aGLXWindowId)
  4741     pmv2s(c_x, c_y);
  4831     pmv2s(c_x, c_y);
  4742     RETURN (true);
  4832     RETURN (true);
  4743 %}
  4833 %}
  4744 .
       
  4745     ^ false
       
  4746 ! 
  4834 ! 
  4747 
  4835 
  4748 glxPntX: x y: y z: z in: aGLXWindowId
  4836 glxPntX: x y: y z: z in: aGLXWindowId
  4749 
  4837 
  4750 %{  /* NOCONTEXT */
  4838 %{  /* NOCONTEXT */
  4755     _COORD_ (z, c_z)
  4843     _COORD_ (z, c_z)
  4756     SETWIN(aGLXWindowId)
  4844     SETWIN(aGLXWindowId)
  4757     pnt(c_x, c_y, c_z);
  4845     pnt(c_x, c_y, c_z);
  4758     RETURN (true);
  4846     RETURN (true);
  4759 %}
  4847 %}
  4760 .
       
  4761     ^ false
       
  4762 ! 
  4848 ! 
  4763 
  4849 
  4764 glxPntiX: x y: y z: z in: aGLXWindowId
  4850 glxPntiX: x y: y z: z in: aGLXWindowId
  4765 
  4851 
  4766 %{  /* NOCONTEXT */
  4852 %{  /* NOCONTEXT */
  4771     _ICOORD_ (z, c_z)
  4857     _ICOORD_ (z, c_z)
  4772     SETWIN(aGLXWindowId)
  4858     SETWIN(aGLXWindowId)
  4773     pnti(c_x, c_y, c_z);
  4859     pnti(c_x, c_y, c_z);
  4774     RETURN (true);
  4860     RETURN (true);
  4775 %}
  4861 %}
  4776 .
       
  4777     ^ false
       
  4778 ! 
  4862 ! 
  4779 
  4863 
  4780 glxPntsX: x y: y z: z in: aGLXWindowId
  4864 glxPntsX: x y: y z: z in: aGLXWindowId
  4781 
  4865 
  4782 %{  /* NOCONTEXT */
  4866 %{  /* NOCONTEXT */
  4787     _SCOORD_ (z, c_z)
  4871     _SCOORD_ (z, c_z)
  4788     SETWIN(aGLXWindowId)
  4872     SETWIN(aGLXWindowId)
  4789     pnts(c_x, c_y, c_z);
  4873     pnts(c_x, c_y, c_z);
  4790     RETURN (true);
  4874     RETURN (true);
  4791 %}
  4875 %}
  4792 .
       
  4793     ^ false
       
  4794 ! 
  4876 ! 
  4795 
  4877 
  4796 glxPnt2X: x y: y in: aGLXWindowId
  4878 glxPnt2X: x y: y in: aGLXWindowId
  4797 
  4879 
  4798 %{  /* NOCONTEXT */
  4880 %{  /* NOCONTEXT */
  4802     _COORD_ (y, c_y)
  4884     _COORD_ (y, c_y)
  4803     SETWIN(aGLXWindowId)
  4885     SETWIN(aGLXWindowId)
  4804     pnt2(c_x, c_y);
  4886     pnt2(c_x, c_y);
  4805     RETURN (true);
  4887     RETURN (true);
  4806 %}
  4888 %}
  4807 .
       
  4808     ^ false
       
  4809 ! 
  4889 ! 
  4810 
  4890 
  4811 glxPnt2iX: x y: y in: aGLXWindowId
  4891 glxPnt2iX: x y: y in: aGLXWindowId
  4812 
  4892 
  4813 %{  /* NOCONTEXT */
  4893 %{  /* NOCONTEXT */
  4817     _ICOORD_ (y, c_y)
  4897     _ICOORD_ (y, c_y)
  4818     SETWIN(aGLXWindowId)
  4898     SETWIN(aGLXWindowId)
  4819     pnt2i(c_x, c_y);
  4899     pnt2i(c_x, c_y);
  4820     RETURN (true);
  4900     RETURN (true);
  4821 %}
  4901 %}
  4822 .
       
  4823     ^ false
       
  4824 ! 
  4902 ! 
  4825 
  4903 
  4826 glxPnt2sX: x y: y in: aGLXWindowId
  4904 glxPnt2sX: x y: y in: aGLXWindowId
  4827 
  4905 
  4828 %{  /* NOCONTEXT */
  4906 %{  /* NOCONTEXT */
  4832     _SCOORD_ (y, c_y)
  4910     _SCOORD_ (y, c_y)
  4833     SETWIN(aGLXWindowId)
  4911     SETWIN(aGLXWindowId)
  4834     pnt2s(c_x, c_y);
  4912     pnt2s(c_x, c_y);
  4835     RETURN (true);
  4913     RETURN (true);
  4836 %}
  4914 %}
  4837 .
       
  4838     ^ false
       
  4839 ! 
  4915 ! 
  4840 
  4916 
  4841 glxPntsize: n in: aGLXWindowId
  4917 glxPntsize: n in: aGLXWindowId
  4842 
  4918 
  4843 %{  /* NOCONTEXT */
  4919 %{  /* NOCONTEXT */
  4889     _ANGLE_(twist, a_twist)
  4965     _ANGLE_(twist, a_twist)
  4890     SETWIN(aGLXWindowId)
  4966     SETWIN(aGLXWindowId)
  4891     polarview(c_dist, a_azim, a_inc, a_twist);
  4967     polarview(c_dist, a_azim, a_inc, a_twist);
  4892     RETURN (true);
  4968     RETURN (true);
  4893 %}
  4969 %}
  4894 .
       
  4895     ^ false
       
  4896 ! 
  4970 ! 
  4897 
  4971 
  4898 glxPolymode: mode in: aGLXWindowId
  4972 glxPolymode: mode in: aGLXWindowId
  4899 
  4973 
  4900 %{  /* NOCONTEXT */
  4974 %{  /* NOCONTEXT */
  4901     SETWIN(aGLXWindowId)
  4975     SETWIN(aGLXWindowId)
  4902     polymode(_longVal(mode));
  4976     polymode(_longVal(mode));
  4903     RETURN (true);
  4977     RETURN (true);
  4904 %}
  4978 %}
  4905 .
       
  4906     ^ false
       
  4907 ! 
  4979 ! 
  4908 
  4980 
  4909 glxPolysmoothMode: mode in: aGLXWindowId
  4981 glxPolysmoothMode: mode in: aGLXWindowId
  4910 
  4982 
  4911 %{  /* NOCONTEXT */
  4983 %{  /* NOCONTEXT */
  4924 %{  /* NOCONTEXT */
  4996 %{  /* NOCONTEXT */
  4925     SETWIN(aGLXWindowId)
  4997     SETWIN(aGLXWindowId)
  4926     popattributes();
  4998     popattributes();
  4927     RETURN (true);
  4999     RETURN (true);
  4928 %}
  5000 %}
  4929 .
       
  4930     ^ false
       
  4931 ! 
  5001 ! 
  4932 
  5002 
  4933 glxPopnameIn: aGLXWindowId
  5003 glxPopnameIn: aGLXWindowId
  4934 
  5004 
  4935 %{  /* NOCONTEXT */
  5005 %{  /* NOCONTEXT */
  4948 %{  /* NOCONTEXT */
  5018 %{  /* NOCONTEXT */
  4949     SETWIN(aGLXWindowId)
  5019     SETWIN(aGLXWindowId)
  4950     popviewport();
  5020     popviewport();
  4951     RETURN (true);
  5021     RETURN (true);
  4952 %}
  5022 %}
  4953 .
       
  4954     ^ false
       
  4955 ! 
  5023 ! 
  4956 
  5024 
  4957 glxPrefpositionX1: x1 x2: x2 y1: y1 y2: y2 in: aGLXWindowId
  5025 glxPrefpositionX1: x1 x2: x2 y1: y1 y2: y2 in: aGLXWindowId
  4958 
  5026 
  4959 %{  /* NOCONTEXT */
  5027 %{  /* NOCONTEXT */
  4960     SETWIN(aGLXWindowId)
  5028     SETWIN(aGLXWindowId)
  4961     prefposition(_longVal(x1), _longVal(x2), _longVal(y1), _longVal(y2));
  5029     prefposition(_longVal(x1), _longVal(x2), _longVal(y1), _longVal(y2));
  4962     RETURN (true);
  5030     RETURN (true);
  4963 %}
  5031 %}
  4964 .
       
  4965     ^ false
       
  4966 ! 
  5032 ! 
  4967 
  5033 
  4968 glxPrefsizeX: x y: y in: aGLXWindowId
  5034 glxPrefsizeX: x y: y in: aGLXWindowId
  4969 
  5035 
  4970 %{  /* NOCONTEXT */
  5036 %{  /* NOCONTEXT */
  4971     SETWIN(aGLXWindowId)
  5037     SETWIN(aGLXWindowId)
  4972     prefsize(_longVal(x), _longVal(y));
  5038     prefsize(_longVal(x), _longVal(y));
  4973     RETURN (true);
  5039     RETURN (true);
  4974 %}
  5040 %}
  4975 .
       
  4976     ^ false
       
  4977 ! 
  5041 ! 
  4978 
  5042 
  4979 glxPushattributesIn: aGLXWindowId
  5043 glxPushattributesIn: aGLXWindowId
  4980 
  5044 
  4981 %{  /* NOCONTEXT */
  5045 %{  /* NOCONTEXT */
  4982     SETWIN(aGLXWindowId)
  5046     SETWIN(aGLXWindowId)
  4983     pushattributes();
  5047     pushattributes();
  4984     RETURN (true);
  5048     RETURN (true);
  4985 %}
  5049 %}
  4986 .
       
  4987     ^ false
       
  4988 ! 
  5050 ! 
  4989 
  5051 
  4990 glxPushname: name In: aGLXWindowId
  5052 glxPushname: name In: aGLXWindowId
  4991 
  5053 
  4992 %{  /* NOCONTEXT */
  5054 %{  /* NOCONTEXT */
  5005 %{  /* NOCONTEXT */
  5067 %{  /* NOCONTEXT */
  5006     SETWIN(aGLXWindowId)
  5068     SETWIN(aGLXWindowId)
  5007     pushviewport();
  5069     pushviewport();
  5008     RETURN (true);
  5070     RETURN (true);
  5009 %}
  5071 %}
  5010 .
       
  5011     ^ false
       
  5012 ! 
  5072 ! 
  5013 
  5073 
  5014 glxQdevice: dev in: aGLXWindowId
  5074 glxQdevice: dev in: aGLXWindowId
  5015 
  5075 
  5016 %{  /* NOCONTEXT */
  5076 %{  /* NOCONTEXT */
  5017     SETWIN(aGLXWindowId)
  5077     SETWIN(aGLXWindowId)
  5018     qdevice(_deviceVal(dev));
  5078     qdevice(_deviceVal(dev));
  5019     RETURN (true);
  5079     RETURN (true);
  5020 %}
  5080 %}
  5021 .
       
  5022     ^ false
       
  5023 ! 
  5081 ! 
  5024 
  5082 
  5025 glxQenterDev: dev val: val in: aGLXWindowId
  5083 glxQenterDev: dev val: val in: aGLXWindowId
  5026 
  5084 
  5027 %{  /* NOCONTEXT */
  5085 %{  /* NOCONTEXT */
  5028     SETWIN(aGLXWindowId)
  5086     SETWIN(aGLXWindowId)
  5029     qenter(_deviceVal(dev), _shortVal(val));
  5087     qenter(_deviceVal(dev), _shortVal(val));
  5030     RETURN (true);
  5088     RETURN (true);
  5031 %}
  5089 %}
  5032 .
       
  5033     ^ false
       
  5034 ! 
  5090 ! 
  5035 
  5091 
  5036 glxQgetfdIn: aGLXWindowId
  5092 glxQgetfdIn: aGLXWindowId
  5037 
  5093 
  5038 %{  /* NOCONTEXT */
  5094 %{  /* NOCONTEXT */
  5064 %{  /* NOCONTEXT */
  5120 %{  /* NOCONTEXT */
  5065     SETWIN(aGLXWindowId)
  5121     SETWIN(aGLXWindowId)
  5066     qreset();
  5122     qreset();
  5067     RETURN (true);
  5123     RETURN (true);
  5068 %}
  5124 %}
  5069 .
       
  5070     ^ false
       
  5071 ! 
  5125 ! 
  5072 
  5126 
  5073 glxQtestIn: aGLXWindowId
  5127 glxQtestIn: aGLXWindowId
  5074 
  5128 
  5075 %{  /* NOCONTEXT */
  5129 %{  /* NOCONTEXT */
  5076     SETWIN(aGLXWindowId)
  5130     SETWIN(aGLXWindowId)
  5077     RETURN (_MKSMALLINT(qtest()));
  5131     RETURN (_MKSMALLINT(qtest()));
  5078 %}
  5132 %}
  5079 .
       
  5080     ^ false
       
  5081 ! 
  5133 ! 
  5082 
  5134 
  5083 glxRdrX: x y: y z: z in: aGLXWindowId
  5135 glxRdrX: x y: y z: z in: aGLXWindowId
  5084 
  5136 
  5085 %{  /* NOCONTEXT */
  5137 %{  /* NOCONTEXT */
  5090     _COORD_ (z, c_z)
  5142     _COORD_ (z, c_z)
  5091     SETWIN(aGLXWindowId)
  5143     SETWIN(aGLXWindowId)
  5092     rdr(c_x, c_y, c_z);
  5144     rdr(c_x, c_y, c_z);
  5093     RETURN (true);
  5145     RETURN (true);
  5094 %}
  5146 %}
  5095 .
       
  5096     ^ false
       
  5097 ! 
  5147 ! 
  5098 
  5148 
  5099 glxRdriX: x y: y z: z in: aGLXWindowId
  5149 glxRdriX: x y: y z: z in: aGLXWindowId
  5100 
  5150 
  5101 %{  /* NOCONTEXT */
  5151 %{  /* NOCONTEXT */
  5106     _ICOORD_ (z, c_z)
  5156     _ICOORD_ (z, c_z)
  5107     SETWIN(aGLXWindowId)
  5157     SETWIN(aGLXWindowId)
  5108     rdri(c_x, c_y, c_z);
  5158     rdri(c_x, c_y, c_z);
  5109     RETURN (true);
  5159     RETURN (true);
  5110 %}
  5160 %}
  5111 .
       
  5112     ^ false
       
  5113 ! 
  5161 ! 
  5114 
  5162 
  5115 glxRdrsX: x y: y z: z in: aGLXWindowId
  5163 glxRdrsX: x y: y z: z in: aGLXWindowId
  5116 
  5164 
  5117 %{  /* NOCONTEXT */
  5165 %{  /* NOCONTEXT */
  5122     _SCOORD_ (z, c_z)
  5170     _SCOORD_ (z, c_z)
  5123     SETWIN(aGLXWindowId)
  5171     SETWIN(aGLXWindowId)
  5124     rdrs(c_x, c_y, c_z);
  5172     rdrs(c_x, c_y, c_z);
  5125     RETURN (true);
  5173     RETURN (true);
  5126 %}
  5174 %}
  5127 .
       
  5128     ^ false
       
  5129 ! 
  5175 ! 
  5130 
  5176 
  5131 glxRdr2X: x y: y in: aGLXWindowId
  5177 glxRdr2X: x y: y in: aGLXWindowId
  5132 
  5178 
  5133 %{  /* NOCONTEXT */
  5179 %{  /* NOCONTEXT */
  5137     _COORD_ (y, c_y)
  5183     _COORD_ (y, c_y)
  5138     SETWIN(aGLXWindowId)
  5184     SETWIN(aGLXWindowId)
  5139     rdr2(c_x, c_y);
  5185     rdr2(c_x, c_y);
  5140     RETURN (true);
  5186     RETURN (true);
  5141 %}
  5187 %}
  5142 .
       
  5143     ^ false
       
  5144 ! 
  5188 ! 
  5145 
  5189 
  5146 glxRdr2iX: x y: y in: aGLXWindowId
  5190 glxRdr2iX: x y: y in: aGLXWindowId
  5147 
  5191 
  5148 %{  /* NOCONTEXT */
  5192 %{  /* NOCONTEXT */
  5152     _ICOORD_ (y, c_y)
  5196     _ICOORD_ (y, c_y)
  5153     SETWIN(aGLXWindowId)
  5197     SETWIN(aGLXWindowId)
  5154     rdr2i(c_x, c_y);
  5198     rdr2i(c_x, c_y);
  5155     RETURN (true);
  5199     RETURN (true);
  5156 %}
  5200 %}
  5157 .
       
  5158     ^ false
       
  5159 ! 
  5201 ! 
  5160 
  5202 
  5161 glxRdr2sX: x y: y in: aGLXWindowId
  5203 glxRdr2sX: x y: y in: aGLXWindowId
  5162 
  5204 
  5163 %{  /* NOCONTEXT */
  5205 %{  /* NOCONTEXT */
  5167     _SCOORD_ (y, c_y)
  5209     _SCOORD_ (y, c_y)
  5168     SETWIN(aGLXWindowId)
  5210     SETWIN(aGLXWindowId)
  5169     rdr2s(c_x, c_y);
  5211     rdr2s(c_x, c_y);
  5170     RETURN (true);
  5212     RETURN (true);
  5171 %}
  5213 %}
  5172 .
       
  5173     ^ false
       
  5174 ! 
  5214 ! 
  5175 
  5215 
  5176 glxReadsource: src in: aGLXWindowId
  5216 glxReadsource: src in: aGLXWindowId
  5177 
  5217 
  5178 %{  /* NOCONTEXT */
  5218 %{  /* NOCONTEXT */
  5191 %{  /* NOCONTEXT */
  5231 %{  /* NOCONTEXT */
  5192     SETWIN(aGLXWindowId)
  5232     SETWIN(aGLXWindowId)
  5193     rect(_coordVal(x1), _coordVal(y1), _coordVal(x2), _coordVal(y2));
  5233     rect(_coordVal(x1), _coordVal(y1), _coordVal(x2), _coordVal(y2));
  5194     RETURN (true);
  5234     RETURN (true);
  5195 %}
  5235 %}
  5196 .
       
  5197     ^ false
       
  5198 ! 
  5236 ! 
  5199 
  5237 
  5200 glxRectiX1: x1 y1: y1 x2: x2 y2: y2 in: aGLXWindowId
  5238 glxRectiX1: x1 y1: y1 x2: x2 y2: y2 in: aGLXWindowId
  5201 
  5239 
  5202 %{  /* NOCONTEXT */
  5240 %{  /* NOCONTEXT */
  5203     SETWIN(aGLXWindowId)
  5241     SETWIN(aGLXWindowId)
  5204     recti(_icoordVal(x1), _icoordVal(y1), _icoordVal(x2), _icoordVal(y2));
  5242     recti(_icoordVal(x1), _icoordVal(y1), _icoordVal(x2), _icoordVal(y2));
  5205     RETURN (true);
  5243     RETURN (true);
  5206 %}
  5244 %}
  5207 .
       
  5208     ^ false
       
  5209 ! 
  5245 ! 
  5210 
  5246 
  5211 glxRectsX1: x1 y1: y1 x2: x2 y2: y2 in: aGLXWindowId
  5247 glxRectsX1: x1 y1: y1 x2: x2 y2: y2 in: aGLXWindowId
  5212 
  5248 
  5213 %{  /* NOCONTEXT */
  5249 %{  /* NOCONTEXT */
  5214     SETWIN(aGLXWindowId)
  5250     SETWIN(aGLXWindowId)
  5215     rects(_scoordVal(x1), _scoordVal(y1), _scoordVal(x2), _scoordVal(y2));
  5251     rects(_scoordVal(x1), _scoordVal(y1), _scoordVal(x2), _scoordVal(y2));
  5216     RETURN (true);
  5252     RETURN (true);
  5217 %}
  5253 %}
  5218 .
       
  5219     ^ false
       
  5220 ! 
  5254 ! 
  5221 
  5255 
  5222 glxRectfX1: x1 y1: y1 x2: x2 y2: y2 in: aGLXWindowId
  5256 glxRectfX1: x1 y1: y1 x2: x2 y2: y2 in: aGLXWindowId
  5223 
  5257 
  5224 %{  /* NOCONTEXT */
  5258 %{  /* NOCONTEXT */
  5225     SETWIN(aGLXWindowId)
  5259     SETWIN(aGLXWindowId)
  5226     rectf(_coordVal(x1), _coordVal(y1), _coordVal(x2), _coordVal(y2));
  5260     rectf(_coordVal(x1), _coordVal(y1), _coordVal(x2), _coordVal(y2));
  5227     RETURN (true);
  5261     RETURN (true);
  5228 %}
  5262 %}
  5229 .
       
  5230     ^ false
       
  5231 ! 
  5263 ! 
  5232 
  5264 
  5233 glxRectfiX1: x1 y1: y1 x2: x2 y2: y2 in: aGLXWindowId
  5265 glxRectfiX1: x1 y1: y1 x2: x2 y2: y2 in: aGLXWindowId
  5234 
  5266 
  5235 %{  /* NOCONTEXT */
  5267 %{  /* NOCONTEXT */
  5236     SETWIN(aGLXWindowId)
  5268     SETWIN(aGLXWindowId)
  5237     rectfi(_icoordVal(x1), _icoordVal(y1), _icoordVal(x2), _icoordVal(y2));
  5269     rectfi(_icoordVal(x1), _icoordVal(y1), _icoordVal(x2), _icoordVal(y2));
  5238     RETURN (true);
  5270     RETURN (true);
  5239 %}
  5271 %}
  5240 .
       
  5241     ^ false
       
  5242 ! 
  5272 ! 
  5243 
  5273 
  5244 glxRectfsX1: x1 y1: y1 x2: x2 y2: y2 in: aGLXWindowId
  5274 glxRectfsX1: x1 y1: y1 x2: x2 y2: y2 in: aGLXWindowId
  5245 
  5275 
  5246 %{  /* NOCONTEXT */
  5276 %{  /* NOCONTEXT */
  5247     SETWIN(aGLXWindowId)
  5277     SETWIN(aGLXWindowId)
  5248     rectfs(_scoordVal(x1), _scoordVal(y1), _scoordVal(x2), _scoordVal(y2));
  5278     rectfs(_scoordVal(x1), _scoordVal(y1), _scoordVal(x2), _scoordVal(y2));
  5249     RETURN (true);
  5279     RETURN (true);
  5250 %}
  5280 %}
  5251 .
       
  5252     ^ false
       
  5253 ! 
  5281 ! 
  5254 
  5282 
  5255 glxRectcopyX1: x1 y1: y1 x2: x2 y2: y2 newx: newx newy: newy in: aGLXWindowId
  5283 glxRectcopyX1: x1 y1: y1 x2: x2 y2: y2 newx: newx newy: newy in: aGLXWindowId
  5256 
  5284 
  5257 %{  /* NOCONTEXT */
  5285 %{  /* NOCONTEXT */
  5345     _COORD_ (z, c_z)
  5373     _COORD_ (z, c_z)
  5346     SETWIN(aGLXWindowId)
  5374     SETWIN(aGLXWindowId)
  5347     rmv(c_x, c_y, c_z);
  5375     rmv(c_x, c_y, c_z);
  5348     RETURN (true);
  5376     RETURN (true);
  5349 %}
  5377 %}
  5350 .
       
  5351     ^ false
       
  5352 ! 
  5378 ! 
  5353 
  5379 
  5354 glxRmviX: x y: y z: z in: aGLXWindowId
  5380 glxRmviX: x y: y z: z in: aGLXWindowId
  5355 
  5381 
  5356 %{  /* NOCONTEXT */
  5382 %{  /* NOCONTEXT */
  5361     _ICOORD_ (z, c_z)
  5387     _ICOORD_ (z, c_z)
  5362     SETWIN(aGLXWindowId)
  5388     SETWIN(aGLXWindowId)
  5363     rmvi(c_x, c_y, c_z);
  5389     rmvi(c_x, c_y, c_z);
  5364     RETURN (true);
  5390     RETURN (true);
  5365 %}
  5391 %}
  5366 .
       
  5367     ^ false
       
  5368 ! 
  5392 ! 
  5369 
  5393 
  5370 glxRmvsX: x y: y z: z in: aGLXWindowId
  5394 glxRmvsX: x y: y z: z in: aGLXWindowId
  5371 
  5395 
  5372 %{  /* NOCONTEXT */
  5396 %{  /* NOCONTEXT */
  5377     _SCOORD_ (z, c_z)
  5401     _SCOORD_ (z, c_z)
  5378     SETWIN(aGLXWindowId)
  5402     SETWIN(aGLXWindowId)
  5379     rmvs(c_x, c_y, c_z);
  5403     rmvs(c_x, c_y, c_z);
  5380     RETURN (true);
  5404     RETURN (true);
  5381 %}
  5405 %}
  5382 .
       
  5383     ^ false
       
  5384 ! 
  5406 ! 
  5385 
  5407 
  5386 glxRmv2X: x y: y in: aGLXWindowId
  5408 glxRmv2X: x y: y in: aGLXWindowId
  5387 
  5409 
  5388 %{  /* NOCONTEXT */
  5410 %{  /* NOCONTEXT */
  5392     _COORD_ (y, c_y)
  5414     _COORD_ (y, c_y)
  5393     SETWIN(aGLXWindowId)
  5415     SETWIN(aGLXWindowId)
  5394     rmv2(c_x, c_y);
  5416     rmv2(c_x, c_y);
  5395     RETURN (true);
  5417     RETURN (true);
  5396 %}
  5418 %}
  5397 .
       
  5398     ^ false
       
  5399 ! 
  5419 ! 
  5400 
  5420 
  5401 glxRmv2iX: x y: y in: aGLXWindowId
  5421 glxRmv2iX: x y: y in: aGLXWindowId
  5402 
  5422 
  5403 %{  /* NOCONTEXT */
  5423 %{  /* NOCONTEXT */
  5407     _ICOORD_ (y, c_y)
  5427     _ICOORD_ (y, c_y)
  5408     SETWIN(aGLXWindowId)
  5428     SETWIN(aGLXWindowId)
  5409     rmv2i(c_x, c_y);
  5429     rmv2i(c_x, c_y);
  5410     RETURN (true);
  5430     RETURN (true);
  5411 %}
  5431 %}
  5412 .
       
  5413     ^ false
       
  5414 ! 
  5432 ! 
  5415 
  5433 
  5416 glxRmv2sX: x y: y in: aGLXWindowId
  5434 glxRmv2sX: x y: y in: aGLXWindowId
  5417 
  5435 
  5418 %{  /* NOCONTEXT */
  5436 %{  /* NOCONTEXT */
  5422     _SCOORD_ (y, c_y)
  5440     _SCOORD_ (y, c_y)
  5423     SETWIN(aGLXWindowId)
  5441     SETWIN(aGLXWindowId)
  5424     rmv2s(c_x, c_y);
  5442     rmv2s(c_x, c_y);
  5425     RETURN (true);
  5443     RETURN (true);
  5426 %}
  5444 %}
  5427 .
       
  5428     ^ false
       
  5429 ! 
  5445 ! 
  5430 
  5446 
  5431 glxRpdrX: x y: y z: z in: aGLXWindowId
  5447 glxRpdrX: x y: y z: z in: aGLXWindowId
  5432 
  5448 
  5433 %{  /* NOCONTEXT */
  5449 %{  /* NOCONTEXT */
  5438     _COORD_ (z, c_z)
  5454     _COORD_ (z, c_z)
  5439     SETWIN(aGLXWindowId)
  5455     SETWIN(aGLXWindowId)
  5440     rpdr(c_x, c_y, c_z);
  5456     rpdr(c_x, c_y, c_z);
  5441     RETURN (true);
  5457     RETURN (true);
  5442 %}
  5458 %}
  5443 .
       
  5444     ^ false
       
  5445 ! 
  5459 ! 
  5446 
  5460 
  5447 glxRpdriX: x y: y z: z in: aGLXWindowId
  5461 glxRpdriX: x y: y z: z in: aGLXWindowId
  5448 
  5462 
  5449 %{  /* NOCONTEXT */
  5463 %{  /* NOCONTEXT */
  5454     _ICOORD_ (z, c_z)
  5468     _ICOORD_ (z, c_z)
  5455     SETWIN(aGLXWindowId)
  5469     SETWIN(aGLXWindowId)
  5456     rpdri(c_x, c_y, c_z);
  5470     rpdri(c_x, c_y, c_z);
  5457     RETURN (true);
  5471     RETURN (true);
  5458 %}
  5472 %}
  5459 .
       
  5460     ^ false
       
  5461 ! 
  5473 ! 
  5462 
  5474 
  5463 glxRpdrsX: x y: y z: z in: aGLXWindowId
  5475 glxRpdrsX: x y: y z: z in: aGLXWindowId
  5464 
  5476 
  5465 %{  /* NOCONTEXT */
  5477 %{  /* NOCONTEXT */
  5470     _SCOORD_ (z, c_z)
  5482     _SCOORD_ (z, c_z)
  5471     SETWIN(aGLXWindowId)
  5483     SETWIN(aGLXWindowId)
  5472     rpdrs(c_x, c_y, c_z);
  5484     rpdrs(c_x, c_y, c_z);
  5473     RETURN (true);
  5485     RETURN (true);
  5474 %}
  5486 %}
  5475 .
       
  5476     ^ false
       
  5477 ! 
  5487 ! 
  5478 
  5488 
  5479 glxRpdr2X: x y: y in: aGLXWindowId
  5489 glxRpdr2X: x y: y in: aGLXWindowId
  5480 
  5490 
  5481 %{  /* NOCONTEXT */
  5491 %{  /* NOCONTEXT */
  5485     _COORD_ (y, c_y)
  5495     _COORD_ (y, c_y)
  5486     SETWIN(aGLXWindowId)
  5496     SETWIN(aGLXWindowId)
  5487     rpdr2(c_x, c_y);
  5497     rpdr2(c_x, c_y);
  5488     RETURN (true);
  5498     RETURN (true);
  5489 %}
  5499 %}
  5490 .
       
  5491     ^ false
       
  5492 ! 
  5500 ! 
  5493 
  5501 
  5494 glxRpdr2iX: x y: y in: aGLXWindowId
  5502 glxRpdr2iX: x y: y in: aGLXWindowId
  5495 
  5503 
  5496 %{  /* NOCONTEXT */
  5504 %{  /* NOCONTEXT */
  5500     _ICOORD_ (y, c_y)
  5508     _ICOORD_ (y, c_y)
  5501     SETWIN(aGLXWindowId)
  5509     SETWIN(aGLXWindowId)
  5502     rpdr2i(c_x, c_y);
  5510     rpdr2i(c_x, c_y);
  5503     RETURN (true);
  5511     RETURN (true);
  5504 %}
  5512 %}
  5505 .
       
  5506     ^ false
       
  5507 ! 
  5513 ! 
  5508 
  5514 
  5509 glxRpdr2sX: x y: y in: aGLXWindowId
  5515 glxRpdr2sX: x y: y in: aGLXWindowId
  5510 
  5516 
  5511 %{  /* NOCONTEXT */
  5517 %{  /* NOCONTEXT */
  5515     _SCOORD_ (y, c_y)
  5521     _SCOORD_ (y, c_y)
  5516     SETWIN(aGLXWindowId)
  5522     SETWIN(aGLXWindowId)
  5517     rpdr2s(c_x, c_y);
  5523     rpdr2s(c_x, c_y);
  5518     RETURN (true);
  5524     RETURN (true);
  5519 %}
  5525 %}
  5520 .
       
  5521     ^ false
       
  5522 ! 
  5526 ! 
  5523 
  5527 
  5524 glxRpmvX: x y: y z: z in: aGLXWindowId
  5528 glxRpmvX: x y: y z: z in: aGLXWindowId
  5525 
  5529 
  5526 %{  /* NOCONTEXT */
  5530 %{  /* NOCONTEXT */
  5531     _COORD_ (z, c_z)
  5535     _COORD_ (z, c_z)
  5532     SETWIN(aGLXWindowId)
  5536     SETWIN(aGLXWindowId)
  5533     rpmv(c_x, c_y, c_z);
  5537     rpmv(c_x, c_y, c_z);
  5534     RETURN (true);
  5538     RETURN (true);
  5535 %}
  5539 %}
  5536 .
       
  5537     ^ false
       
  5538 ! 
  5540 ! 
  5539 
  5541 
  5540 glxRpmviX: x y: y z: z in: aGLXWindowId
  5542 glxRpmviX: x y: y z: z in: aGLXWindowId
  5541 
  5543 
  5542 %{  /* NOCONTEXT */
  5544 %{  /* NOCONTEXT */
  5547     _ICOORD_ (z, c_z)
  5549     _ICOORD_ (z, c_z)
  5548     SETWIN(aGLXWindowId)
  5550     SETWIN(aGLXWindowId)
  5549     rpmvi(c_x, c_y, c_z);
  5551     rpmvi(c_x, c_y, c_z);
  5550     RETURN (true);
  5552     RETURN (true);
  5551 %}
  5553 %}
  5552 .
       
  5553     ^ false
       
  5554 ! 
  5554 ! 
  5555 
  5555 
  5556 glxRpmvsX: x y: y z: z in: aGLXWindowId
  5556 glxRpmvsX: x y: y z: z in: aGLXWindowId
  5557 
  5557 
  5558 %{  /* NOCONTEXT */
  5558 %{  /* NOCONTEXT */
  5563     _SCOORD_ (z, c_z)
  5563     _SCOORD_ (z, c_z)
  5564     SETWIN(aGLXWindowId)
  5564     SETWIN(aGLXWindowId)
  5565     rpmvs(c_x, c_y, c_z);
  5565     rpmvs(c_x, c_y, c_z);
  5566     RETURN (true);
  5566     RETURN (true);
  5567 %}
  5567 %}
  5568 .
       
  5569     ^ false
       
  5570 ! 
  5568 ! 
  5571 
  5569 
  5572 glxRpmv2X: x y: y in: aGLXWindowId
  5570 glxRpmv2X: x y: y in: aGLXWindowId
  5573 
  5571 
  5574 %{  /* NOCONTEXT */
  5572 %{  /* NOCONTEXT */
  5578     _COORD_ (y, c_y)
  5576     _COORD_ (y, c_y)
  5579     SETWIN(aGLXWindowId)
  5577     SETWIN(aGLXWindowId)
  5580     rpmv2(c_x, c_y);
  5578     rpmv2(c_x, c_y);
  5581     RETURN (true);
  5579     RETURN (true);
  5582 %}
  5580 %}
  5583 .
       
  5584     ^ false
       
  5585 ! 
  5581 ! 
  5586 
  5582 
  5587 glxRpmv2iX: x y: y in: aGLXWindowId
  5583 glxRpmv2iX: x y: y in: aGLXWindowId
  5588 
  5584 
  5589 %{  /* NOCONTEXT */
  5585 %{  /* NOCONTEXT */
  5593     _ICOORD_ (y, c_y)
  5589     _ICOORD_ (y, c_y)
  5594     SETWIN(aGLXWindowId)
  5590     SETWIN(aGLXWindowId)
  5595     rpmv2i(c_x, c_y);
  5591     rpmv2i(c_x, c_y);
  5596     RETURN (true);
  5592     RETURN (true);
  5597 %}
  5593 %}
  5598 .
       
  5599     ^ false
       
  5600 ! 
  5594 ! 
  5601 
  5595 
  5602 glxRpmv2sX: x y: y in: aGLXWindowId
  5596 glxRpmv2sX: x y: y in: aGLXWindowId
  5603 
  5597 
  5604 %{  /* NOCONTEXT */
  5598 %{  /* NOCONTEXT */
  5608     _SCOORD_ (y, c_y)
  5602     _SCOORD_ (y, c_y)
  5609     SETWIN(aGLXWindowId)
  5603     SETWIN(aGLXWindowId)
  5610     rpmv2s(c_x, c_y);
  5604     rpmv2s(c_x, c_y);
  5611     RETURN (true);
  5605     RETURN (true);
  5612 %}
  5606 %}
  5613 .
       
  5614     ^ false
       
  5615 ! 
  5607 ! 
  5616 
  5608 
  5617 glxSboxX1: x1 y1: y1 x2: x2 y2: y2 in: aGLXWindowId
  5609 glxSboxX1: x1 y1: y1 x2: x2 y2: y2 in: aGLXWindowId
  5618 
  5610 
  5619 %{  /* NOCONTEXT */
  5611 %{  /* NOCONTEXT */
  5938 %}
  5930 %}
  5939 .
  5931 .
  5940     ^ false
  5932     ^ false
  5941 ! 
  5933 ! 
  5942 
  5934 
  5943 glxSinglebufferIn: aGLXWindowId
       
  5944 
       
  5945 %{  /* NOCONTEXT */
       
  5946     SETWIN(aGLXWindowId)
       
  5947     singlebuffer();
       
  5948     RETURN (true);
       
  5949 %}
       
  5950 .
       
  5951     ^ false
       
  5952 !
       
  5953 
       
  5954 glxSmoothline: mode in: aGLXWindowId
  5935 glxSmoothline: mode in: aGLXWindowId
  5955 
  5936 
  5956 %{  /* NOCONTEXT */
  5937 %{  /* NOCONTEXT */
  5957 #ifdef GLX
  5938 #ifdef GLX
  5958     SETWIN(aGLXWindowId)
  5939     SETWIN(aGLXWindowId)
  6212 %}
  6193 %}
  6213 .
  6194 .
  6214     ^ false
  6195     ^ false
  6215 !
  6196 !
  6216 
  6197 
  6217 glxT3s: v in: aGLXWindowId
  6198 glxT3s:v in:aGLXWindowId
  6218 
  6199 
  6219 %{  /* NOCONTEXT */
  6200 %{  /* NOCONTEXT */
  6220 #ifdef FULL_GLX
  6201 #ifdef FULL_GLX
  6221     short vec[3], *c_v;
  6202     short vec[3], *c_v;
  6222 
  6203 
  6228 %}
  6209 %}
  6229 .
  6210 .
  6230     ^ false
  6211     ^ false
  6231 !
  6212 !
  6232 
  6213 
  6233 glxT3i: v in: aGLXWindowId
  6214 glxT3i:v in:aGLXWindowId
  6234 
  6215 
  6235 %{  /* NOCONTEXT */
  6216 %{  /* NOCONTEXT */
  6236 #ifdef FULL_GLX
  6217 #ifdef FULL_GLX
  6237     long vec[3], *c_v;
  6218     long vec[3], *c_v;
  6238 
  6219 
  6244 %}
  6225 %}
  6245 .
  6226 .
  6246     ^ false
  6227     ^ false
  6247 !
  6228 !
  6248 
  6229 
  6249 glxT3f: v in: aGLXWindowId
  6230 glxT3f:v in:aGLXWindowId
  6250 
  6231 
  6251 %{  /* NOCONTEXT */
  6232 %{  /* NOCONTEXT */
  6252 #ifdef FULL_GLX
  6233 #ifdef FULL_GLX
  6253     float vec[3], *c_v;
  6234     float vec[3], *c_v;
  6254 
  6235 
  6260 %}
  6241 %}
  6261 .
  6242 .
  6262     ^ false
  6243     ^ false
  6263 !
  6244 !
  6264 
  6245 
  6265 glxT3d: v in: aGLXWindowId
  6246 glxT3d:v in:aGLXWindowId
  6266 
  6247 
  6267 %{  /* NOCONTEXT */
  6248 %{  /* NOCONTEXT */
  6268 #ifdef FULL_GLX
  6249 #ifdef FULL_GLX
  6269     double vec[3], *c_v;
  6250     double vec[3], *c_v;
  6270 
  6251 
  6339 #endif
  6320 #endif
  6340 %}
  6321 %}
  6341 .
  6322 .
  6342     ^ false
  6323     ^ false
  6343 !
  6324 !
  6344 
       
  6345 glxTexDef2dIndex: index nc:nc width:w height:h bits:image np:np props:props in: aGLXWindowId
       
  6346     "bind a texture"
       
  6347 
       
  6348 %{  /* NOCONTEXT */
       
  6349 #ifdef GLX
       
  6350     unsigned char *cp;
       
  6351     const float *fp;
       
  6352     OBJ cls;
       
  6353     float fbuff[30];
       
  6354 
       
  6355     if (__isByteArray(image)) {
       
  6356 	cp = _ByteArrayInstPtr(image)->ba_element;
       
  6357 	fp = getFloatsFromFloatArrayInto(props, fbuff);
       
  6358 
       
  6359 	SETWIN(aGLXWindowId)
       
  6360 	texdef2d(_longVal(index), _longVal(nc), _longVal(w), _longVal(h),
       
  6361 		 (const unsigned long *)cp, _longVal(np), fp);
       
  6362 	RETURN (true);
       
  6363     }
       
  6364 #endif
       
  6365 %}
       
  6366 .
       
  6367     ^ false
       
  6368 ! 
       
  6369 
       
  6370 glxTevbind: target index: index in: aGLXWindowId
       
  6371 
       
  6372 %{  /* NOCONTEXT */
       
  6373 #ifdef GLX
       
  6374     SETWIN(aGLXWindowId)
       
  6375     tevbind(_longVal(target), _longVal(index));
       
  6376     RETURN (true);
       
  6377 #endif
       
  6378 %}
       
  6379 .
       
  6380     ^ false
       
  6381 ! 
       
  6382 
       
  6383 glxTexbind: target index: index in: aGLXWindowId
       
  6384     "bind a texture"
       
  6385 
       
  6386 %{  /* NOCONTEXT */
       
  6387 #ifdef GLX
       
  6388     SETWIN(aGLXWindowId)
       
  6389     texbind(_longVal(target), _longVal(index));
       
  6390     RETURN (true);
       
  6391 #endif
       
  6392 %}
       
  6393 .
       
  6394     ^ false
       
  6395 ! 
       
  6396 
  6325 
  6397 glxTextcolor: tcolor in: aGLXWindowId
  6326 glxTextcolor: tcolor in: aGLXWindowId
  6398 
  6327 
  6399 %{  /* NOCONTEXT */
  6328 %{  /* NOCONTEXT */
  6400 #ifdef GLX
  6329 #ifdef GLX
  6836 %}
  6765 %}
  6837 .
  6766 .
  6838     ^ false
  6767     ^ false
  6839 ! !
  6768 ! !
  6840 
  6769 
  6841 !GLXWorkstation methodsFor:'vertex data transfer '!
  6770 !GLXWorkstation methodsFor:'vertex data transfer'!
  6842 
  6771 
  6843 glxV2s:v in:aGLXWindowId
  6772 glxV2s:v in:aGLXWindowId
  6844     "pass a vertex; v must be a vector with 2 shorts; z is taken as 0"
  6773     "pass a vertex; v must be a vector with 2 shorts; z is taken as 0"
  6845 
  6774 
  6846 %{  /* NOCONTEXT */
  6775 %{  /* NOCONTEXT */