[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     ! 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>