[BACK]Return to simple-gl-1.rr CVS log [TXT][DIR] Up to [local] / OpenXM / src / cfep / Samples

Annotation of OpenXM/src/cfep/Samples/simple-gl-1.rr, Revision 1.1.1.1

1.1       takayama    1: /*
                      2:   使い方:
                      3:   ファイル全体を実行したあと test4(); を呼び出す.
                      4:                                          test(); を呼び出す.
                      5: */
                      6: def test4() {
                      7:     glib_init_send("0;[glib3_std_scene0]");
                      8:   glib_init_send("0;[glib_flush]");
                      9:   glib_send("0; [glib3_bounding_box, 1.2]");
                     10:   glib_send("0; [glColor4f, 1.0, 0.0, 0.0, 1.0]");
                     11:   glib_send("0;[glBegin, (int) 4]");  /* GL_TRIANGLES */
                     12:   glib_send("0;[glVertex3f,0s,0,0]");
                     13:   glib_send("0;[glVertex3f,0,1,0]");
                     14:   glib_send("0;[glVertex3f,1,0,0.2]");
                     15:   glib_send("0;[glEnd]");
                     16:   glib_send("0;[glib_flush]");
                     17: }
                     18: def test() {
                     19:   /* gid; commands */
                     20:   glib_init_send("0;[glColor4f,1.0,0.8,1.0,1.0]");
                     21:   glib_send("0;[glColor4f, 1.0, 0.0, 0.0, 0.0, 1.0]");
                     22:   glib_send("0;[glRectf,-0.3, -0.3, 0.3, 0.3]");
                     23:   glib_send("0;[glib_flush]");
                     24:   glib_init_send("1; [glColor4f, 1.0,0.0,0.0,0.3]");
                     25:   glib_init_send("1; [glRectf, -0.1,-0.1,0.1,0.1]");
                     26:   glib_init_send("1; [glib_flush]");
                     27:   glib_send("1; [glib_line,0.0,0.0,0.5,0.5,(int)255]");
                     28:   glib_send("1; [glib_flush]");
                     29: }
                     30: /* test1(); */
                     31: def test1() {
                     32:   for (I= 0; I<1.0; I += 0.05) {
                     33:      myline(0,0,0.6,I, [random()%256,random()%256,random()%256]);
                     34:  }  /* bug なぜか線の色が黒になる.  color が全部0. 2006.02.22*/
                     35:  glib_send("1;[glib_flush]");
                     36: }
                     37: def myline(X,Y,X2,Y2,C) {
                     38:   X = rtostr(deval(X)); Y = rtostr(deval(Y));
                     39:   X2 = rtostr(deval(X2)); Y2=rtostr(deval(Y2));
                     40:   CC = C[0]*(256*256)+C[1]*256+C[0];
                     41:   CC=rtostr(CC); print(C,0); print(CC);
                     42:   glib_send("1; [glib_line,"+X+","+Y+","+X2+","+Y2+","+CC+"]");
                     43: }
                     44: def t_encode1(X) {
                     45:   return [
                     46:      ior(0xf8,iand(0x3,ishift(X,6))),
                     47:      ior(0xf0,iand(0x7,ishift(X,3))),
                     48:      ior(0xf0,iand(0x7,X))];
                     49: }
                     50: def t_encode_str(S) {
                     51:   Ans = [ ];
                     52:   Codes = strtoascii(S);
                     53:   N = length(Codes);
                     54:   for (I=0; I<N; I++) {
                     55:      T = t_encode1(Codes[I]);
                     56:      Ans = cons(T[0],Ans);
                     57:      Ans = cons(T[1],Ans);
                     58:      Ans = cons(T[2],Ans);
                     59:   }
                     60:   return reverse(Ans);
                     61: }
                     62: def t_encode(S) {
                     63:   return asciitostr(t_encode_str(S));
                     64: }
                     65: def glib_send(S) {
                     66:    S=S+"\n";
                     67:    N=length(strtoascii(S))+1;
                     68:    C=t_encode("{1<"+rtostr(N)+" "+S+" >}");
                     69:    ctrl("hex",1);
                     70:    output(); ctrl("hex",0);
                     71:    print(C); output(); /* channel 1 にコマンドを送る */
                     72: }
                     73: def glib_init_send(S) {
                     74:    S=S+"\n";
                     75:    N=length(strtoascii(S))+1;
                     76:    C=t_encode("{2<"+rtostr(N)+" "+S+" >}");
                     77:    ctrl("hex",1);
                     78:    output(); ctrl("hex",0);
                     79:    print(C); output(); /* channel 2 にコマンドを送る. OpenGL 初期化 */
                     80: }
                     81:
                     82:
                     83:

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>