Ejemplo n.º 1
0
UINT calc_palette(UINT i, double Cfactor)
{
	init_Cfactor = Cfactor;
	init_col_num = i;
	initpalette(tree);
	return init_col_num;
}
main()
{
	union REGS r;
	char b[128];
	long table[16];
	int i,j,n;
	clrscr();
	initpalette();
	/* do the screen */
	for(i=0;i<16;++i)
		table[i]=RGB(0,0,i<<4);
	setuppalette(table);
	/*unusual loop */
	for(b[0]=0;strlen[b]+4<=80;strcat(b,BLUE));
	/* show */
	for(i=0;i<16;++i)
		putline(0,2+i,i,b);
	getch();
/* animation */
	for(n=0, j=1;!kbhit(); n+=j)
	{
		for(i=0;i<16;++i)
			table[i]=RGB(0,0,i*n);
		setuppalette(table);
		if(n>=16)
			j=-1;
		else if(n<=0)
			j=1;
		delay(50);
	}
	getch();
	clrscr();
	/* using designer palette*/
	putbanner(2,1,"electric blue");
	putbanner(3,2,"ocean green");
	putbanner(4,3,"light green");
	putbanner(5,4,"chalk");
	putbanner(6,5,"autumn orange");
	putbanner(7,6,"sand");
	putbanner(8,7,"walnut");
	putbanner(9,8,"crimson");
	putbanner(10,9,"dusty rose");
	putbanner(11,10,"neon purple");
	putbanner(12,11,"black");
	putbanner(13,12,"cyan");
	putbanner(14,13,"green");
	putbanner(15,14,"yellow");
	putbanner(16,15,"white");
	getch();
	clrscr();
	/* back to same colours */
	r.x.ax=0X0003;
	int 86(0X10,&r,&r);
}
Ejemplo n.º 3
0
static void initpalette(OCTREE tree)
{
	UINT j;

	if (tree == NULL) return;
	if (tree->leaf || tree->level == leaflevel) {
		palette[init_col_num][RED]   = (char) ((init_Cfactor * tree->rgbsum.r) / tree->colorcount + 0.5);
		palette[init_col_num][GREEN] = (char) ((init_Cfactor * tree->rgbsum.g) / tree->colorcount + 0.5);
		palette[init_col_num][BLUE]  = (char) ((init_Cfactor * tree->rgbsum.b) / tree->colorcount + 0.5);
		tree->colorindex = init_col_num;
		tree->leaf = TRUE;
		init_col_num++;
	} else {
		for (j = 0; j < 8; j++)
			initpalette(tree->next[j]);
	}
}
Ejemplo n.º 4
0
//if no palette data is supplied,
//initialize hard coded default palette
//which also corresponds to the default color labels
//defined in vga.h
void initpalette()
{
	char palette[256][3];
	initpaletteblock( 0, 0.0,0.0,0.0, 0.5,0.5,0.5, palette);
	initpaletteblock( 1, 0.1,0.0,0.0, 0.5,0.0,0.0, palette);
	initpaletteblock( 2, 0.0,0.1,0.0, 0.0,0.5,0.0, palette);
	initpaletteblock( 3, 0.0,0.0,0.1, 0.0,0.0,0.5, palette);
	initpaletteblock( 4, 0.9,0.1,0.0, 0.9,0.9,0.0, palette);
	initpaletteblock( 5, 0.0,0.5,0.0, 1.0,1.0,1.0, palette);
	initpaletteblock( 6, 0.0,0.0,0.5, 1.0,1.0,1.0, palette);
	initpaletteblock( 7, 0.5,0.0,0.0, 1.0,0.0,0.0, palette);
	initpaletteblock( 8, 0.0,0.5,0.0, 0.0,1.0,0.0, palette);
	initpaletteblock( 9, 0.0,0.0,0.5, 0.0,0.0,1.0, palette);
	initpaletteblock(10, 0.5,0.0,0.5, 1.0,0.0,1.0, palette);
	initpaletteblock(11, 0.5,0.5,0.0, 1.0,1.0,0.0, palette);
	initpaletteblock(12, 0.0,0.5,0.5, 0.0,1.0,1.0, palette);
	initpaletteblock(13, 0.5,0.5,0.5, 1.0,1.0,1.0, palette);
	initpaletteblock(14, 0.3,0.1,0.1, 1.0,0.0,0.0, palette);
	initpaletteblock(15, 0.5,0.0,0.0, 1.0,1.0,1.0, palette);
	initpalette(palette);
}
Ejemplo n.º 5
0
//Draw time
void clock_and_timer(char *wait) //kresleni casu a screensaver
{
#ifndef POSIX
 struct  time t;
#endif 
 char cas2[32];

 timestr(cas2);
 if (strcmp(lasttime,cas2) == 0 ) return;

#ifndef CLEMTEST
#ifndef AGB
 if((ScreenSaver>0l||lasttime[0]=='*') && SecondsSleeping>(long)ScreenSaver*60l)
 {
 /*
 if(1)
 {
  mouseoff();
//  strcpy(buf,"system\\scrnsvrs\\stin.exe");
//  closebat(buf,RESTART_REDRAW);
//  GLOBAL.willexecute=willexecute(buf);
//  GLOBAL.gotolocation=1;

  execl("system\\scrnsvrs\\stin.exe","system\\scrnsvrs\\stin.exe",NULL);
  graphicsinit(arachne.graphics); // XLOPIF SVGA GRAPHICS
 }
 else
 */
 {
  int j;
  int fullscr[4]={0,0,0,0};
  int x,y,px,py,done=0;

  fullscr[2]=x_maxx();
  fullscr[3]=x_maxy();
  {
#define MAX_CERFS 20
#define MAX_TRACK 100
   int xx[MAX_CERFS],yy[MAX_CERFS],xs[MAX_CERFS],ys[MAX_CERFS],col[MAX_CERFS];
   int x2[MAX_CERFS],y2[MAX_CERFS],xs2[MAX_CERFS],ys2[MAX_CERFS];
   int tracklen[MAX_CERFS];
   int trackcnt[MAX_CERFS];
   int trackbuf[MAX_CERFS];
   int xtr[MAX_CERFS][MAX_TRACK],ytr[MAX_CERFS][MAX_TRACK];
   int xt2[MAX_CERFS][MAX_TRACK],yt2[MAX_CERFS][MAX_TRACK];
   int pom;
   int cerfs=MAX_CERFS/2;
   char barva0[6]={1,3,9,11,7,8};
   char barva1[6]={1,2,3,6,10,14};
   char *barva;
   char *value;
#ifdef HICOLOR
   int dc=1,p=0;
#endif

   //----------------------------screensaver
   mouseoff();
   x_cleardev();
#ifdef LINUX

#define RND(X) (random()*X)

   srandom(time(NULL));
#else

#define RND(X) random(X)

   randomize();
#endif

   value=configvariable(&ARACHNEcfg,"ScreenSaverColors",NULL);
   if(value && *value=='1')
    barva=barva1;
   else
    barva=barva0;

   value=configvariable(&ARACHNEcfg,"ScreenSaverMess",NULL);
   if(value)
   {
    cerfs=atoi(value);
    if(cerfs<1)
     cerfs=1;
    if(cerfs>MAX_CERFS)
     cerfs=MAX_CERFS;
   }

   value=configvariable(&ARACHNEcfg,"ScreenSaverStyle",NULL);

   j=0;
   while(j<cerfs) //deklarace car
   {
    xx[j]=100+RND(fullscr[2]-200);
    yy[j]=100+RND(fullscr[3]-200);

    if(*value=='C')
     x2[j]=10+RND(fullscr[3]/3);
    else
    {
     x2[j]=120+RND(fullscr[2]-240);
     y2[j]=120+RND(fullscr[3]-240);
    }

    if(*value=='R')
     {xs[j]=RND(2);if(xs[j]==0)xs[j]=-1;}
    else
     {xs[j]=RND(3);if(xs[j]==2)xs[j]=-1;}
    ys[j]=RND(2);if(ys[j]==0)ys[j]=-1;

    xs2[j]=RND(2);if(xs2[j]==0)xs2[j]=-1;
    if(*value=='R')
     {ys2[j]=RND(2);if(ys2[j]==0)ys2[j]=-1;}
    else
     {ys2[j]=RND(3);if(ys2[j]==2)ys2[j]=-1;}
    col[j]=barva[RND(6)];
    pom=RND(MAX_TRACK-10)+10;
    tracklen[j]=pom;
    trackcnt[j]=1; //odsud se bude cist
    trackbuf[j]=0; //sem se bude zapisovat
    while(pom>=0)
    {
     xtr[j][pom]=0;
     ytr[j][pom]=0;
     xt2[j][pom]=0;
     yt2[j][pom]=0;
     pom--;
    }
    j+=1;
   }//loop
   j=0;

   ImouseRead( &x, &y );
   ImouseWait();
   px=x;py=y;
   while(!done) //animace
   {
    if(wait!=NULL)
    {
#ifdef POSIX
     time_t t=time(NULL);
     struct tm *gt=gmtime(&t);
    
     sprintf(cas2,"%2d:%02d:%02d",
      gt->tm_hour, gt->tm_min, gt->tm_sec );
#else
     gettime(&t);
     sprintf(cas2,"%2d:%02d:%02d", t.ti_hour, t.ti_min, t.ti_sec );
#endif
     if(strstr(wait,cas2)!=NULL)break;
    }//endif

#ifndef LINUX
    if(g_PrtScr)
    {
     g_PrtScr = 0;
     PrintScreen2BMP(0);
     goto out;
    }
#endif
    
    //mazani stopy
    x_setcolor(0);
#ifndef LINUX    
    if(*value=='C')
     x_circle(xtr[j][trackcnt[j]],ytr[j][trackcnt[j]],xt2[j][trackcnt[j]]);
    else
#endif    
    if(*value=='R')
     x_rect(xtr[j][trackcnt[j]],ytr[j][trackcnt[j]],xt2[j][trackcnt[j]],yt2[j][trackcnt[j]]);
    else
     x_line(xtr[j][trackcnt[j]],ytr[j][trackcnt[j]],xt2[j][trackcnt[j]],yt2[j][trackcnt[j]]);
    if(++trackcnt[j]>tracklen[j])trackcnt[j]=0;
    xtr[j][trackbuf[j]]=xx[j];
    ytr[j][trackbuf[j]]=yy[j];
    xt2[j][trackbuf[j]]=x2[j];
    yt2[j][trackbuf[j]]=y2[j];
    if(++trackbuf[j]>tracklen[j])trackbuf[j]=0;

    //kresleni nove cary
    x_setcolor(col[j]);
#ifndef LINUX
    if(*value=='C')
     x_circle(xx[j],yy[j],x2[j]);
    else 
#endif
    if(*value=='R')
     x_rect(xx[j],yy[j],x2[j],y2[j]);
    else
     x_line(xx[j],yy[j],x2[j],y2[j]);
    xx[j]+=xs[j];
    yy[j]+=ys[j];
    x2[j]+=xs2[j];
    y2[j]+=ys2[j];
    if(xx[j]>=fullscr[2]||xx[j]<=0)xs[j]=-xs[j];
    if(yy[j]>=fullscr[3]||yy[j]<=0)ys[j]=-ys[j];
    if(x2[j]>=fullscr[2]||x2[j]<=0)xs2[j]=-xs2[j];
    if(y2[j]>=fullscr[3]||y2[j]<=0)ys2[j]=-ys2[j];
    j++;
    if(j==cerfs)
     j=0;

    if(*value=='C' || j%10==0)
    {
//!!RAY: Sep 30, 2006 -- CTRL key will now deactivate the screensaver
     if((bioskey(1) || bioskey(2) &4) || ImouseRead( &x, &y ) || x!=px || y!=py)
//     if(bioskey(1) || ImouseRead( &x, &y ) || x!=px || y!=py)
      done=1;
    }
    px=x;py=y;

#ifdef HICOLOR
   if(xg_256 == MM_Hic)
   {
    if(p>20*cerfs)
    {
     dc=-dc;
     p=0;
    }
    p++;
    if(p%cerfs==0)
    {
     int c=1;
     while(c<16)
     {
      if(c%2)
       dc=-dc;
      Iipal[c*3]+=dc;
      if(Iipal[c*3]>63)
       Iipal[c*3]=63;
      if(Iipal[c*3]<0)
       Iipal[c*3]=0;
      Iipal[c*3+1]+=dc;
      if(Iipal[c*3+1]>63)
       Iipal[c*3+1]=63;
      if(Iipal[c*3+1]<0)
       Iipal[c*3+1]=0;
      Iipal[c*3+2]+=dc;
      if(Iipal[c*3+2]>63)
       Iipal[c*3+2]=63;
      if(Iipal[c*3+2]<0)
       Iipal[c*3+2]=0;
      c++;
     }//loop
    }
    x_palett( 16, Iipal);
   }
#endif

   }//loop
   if(bioskey(1))bioskey(0);
   ImouseWait();
   out:
#ifdef HICOLOR
   if(xg_256 == MM_Hic)
    initpalette();
#endif
   x_cleardev();
   RedrawALL();
   DrawTitle(1);
   if(lasttime[1]=='*')
    redraw=4;
   else
    redraw=3;
  }
 }
  SecondsSleeping=0l;
 }//endif screensaver
#endif// AGB
#endif// CLEMTEST

#ifndef GGI //it doesn't make sense to show time in X11 app..
 if(!fullscreen)
 {
  x_setfill(0,7); //sediva
  if(mousey>x_maxy()-30 && mousex>x_maxx()-230)
   mouseoff();
 #ifdef CUSTOMER
  x_bar(x_maxx()-56,x_maxy()-13,x_maxx()-2,x_maxy()-2);
  x_setcolor(0); //cerna
  htmlfont(1,0);
  x_text_ib( x_maxx()-56,x_maxy()-15,(unsigned char *)cas2);

 #elif AGB

  x_bar(x_maxx()-56,x_maxy()-13,x_maxx()-2,x_maxy()-2);
  x_setcolor(0); //cerna
  htmlfont(1,0);
  x_text_ib( x_maxx()-56,x_maxy()-15,(unsigned char *)cas2);

 #else

  x_bar(x_maxx()-206,x_maxy()-13,x_maxx()-156,x_maxy()-2);
  x_setcolor(0); //cerna
//!!glennmcc: Aug 22, 2005
//prevent fontshift >0 from causing the clock to go 'off the right'
  htmlfont(0-user_interface.fontshift,0);
//  htmlfont(1,0);
  x_text_ib( x_maxx()-206,x_maxy()-15,(unsigned char *)cas2);

 #endif
  if(mousey>x_maxy()-30 && mousex>x_maxx()-230)
   mouseon();
 }
#endif

 if(lasttime[0]) //not if time redraw was forced!
 {
  SecondsSleeping++;
  if(GLOBAL.timeout)
   GLOBAL.secondsleft--;
  if(ppplogtime && tcpip)
   draw_time_online();
 }

 strcpy(lasttime,cas2);
}//end sub
Ejemplo n.º 6
0
Archivo: grfx.c Proyecto: j13s/devil
void newpalette(unsigned char *palette) {
    int i, j;
    GrColor colortable[4], nc;
    FILE *f;

    if (init_test & 2) {
        fprintf(errf, "New palette:\n");

        for (i = 0; i < 256; i++) {
            fprintf(errf, " %3d: %3d %3d %3d\n", i, palette[i * 3],
                    palette[i * 3 + 1],
                    palette[i * 3 + 2]);
        }
    }

    w_newpalette(palette);
    my_assert( ( f = fopen(pig.bulbname, "rb") ) != NULL
             && fread(pig.bulb, 1, BULBSIZE * BULBSIZE,
                      f) == BULBSIZE * BULBSIZE );
    fclose(f);
    my_assert( ( f = fopen(pig.brokenbulbname, "rb") ) != NULL
             && fread(pig.brokenbulb, 1, BULBSIZE * BULBSIZE,
                      f) == BULBSIZE * BULBSIZE );
    fclose(f);
    colortable[0] = 0;
    colortable[1] = w_makecolor(100, 200, 255);
    colortable[2] = w_makecolor(255, 255, 0);

    for (i = 0; i < BULBSIZE * BULBSIZE; i++) {
        pig.bulb[i] = colortable[(int)pig.bulb[i]];
    }

    colortable[0] = 0;
    colortable[1] = w_makecolor(75, 75, 75);
    colortable[2] = w_makecolor(100, 200, 255);
    colortable[3] = w_makecolor(255, 255, 255);

    for (i = 0; i < BULBSIZE * BULBSIZE; i++) {
        pig.brokenbulb[i] = colortable[(int)pig.brokenbulb[i]];
    }

    nc = w_makecolor(255, 255, 255);

    for (i = 0; i < 6; i++) {
        if (b_movebts[i]) {
            for (j = 0; j < movebuttondsize[i]; j++) {
                if (movebuttondata[i][j]) {
                    movebuttondata[i][j] = nc;
                }
            }

            w_drawbutton(b_movebts[i]);
        }
    }

    initpalette();

    /* redraw the cursors */
    if (cursor_initialized) {
        colortable[0] = 1;
        colortable[1] = view.color[DOORCOLORS];
        w_initkbstatcursor(control_cursor, cntrlcursor_xsize,
                           cntrlcursor_ysize,
                           CNTRLCURSOR_HOT_X, CNTRLCURSOR_HOT_Y, colortable,
                           ws_ks_ctrl,
                           ws_ks_ctrl | ws_ks_alt);
        w_initkbstatcursor(alt_cursor, altcursor_xsize, altcursor_ysize,
                           ALTCURSOR_HOT_X, ALTCURSOR_HOT_Y, 
                           (GrColorTableP)colortable,
                           ws_ks_alt,
                           ws_ks_ctrl | ws_ks_alt);
    }

    plotlevel();
}
Ejemplo n.º 7
0
void graphicsinit(char *svgamode) //initialization of graphics, mode according to X_LOPIF
{
const short cur[32] =
	 { 0x9FFF, 0x0FFF, 0x07FF, 0x83FF, 0xC1FF, 0xE0FF, 0xF067, 0xF003,
	   0xF001, 0xF000, 0xF800, 0xF800, 0xF800, 0xFC00, 0xFC00, 0xFC00,
	   0x0000, 0x6000, 0x7000, 0x3800, 0x1C00, 0x0E00, 0x0700, 0x0018,
	   0x07EC, 0x07EE, 0x001E, 0x03EE, 0x03EE, 0x001E, 0x00EC, 0x0002 };


  xg_256=MM_Hic; //set Hicolor flag...
  initpalette();
  x_settextjusty(0,2);	// always write text from upper left corner

#ifdef GGI
// printf("Initializing GGI visual target.\n");
 ggiVis = ggiOpen (NULL);
 ggiGetMode (ggiVis, &origMode);
 ggiSetSimpleMode (ggiVis, 800, 600, 1, GT_16BIT);
 SVGAx=799;
 SVGAy=599;
 ggiAddFlags(ggiVis,GGIFLAG_ASYNC);
#else
 strupr(svgamode);
// printf("Console switched to graphics mode.\n");
 if(strstr(svgamode,".I"))
 {
  vga_setmode(G640x480x64K);
  gl_setcontextvga(G640x480x64K);
  SVGAx=639;
  SVGAy=479;
 }
 else
 if(strstr(svgamode,".K"))
 {
  vga_setmode(G1024x768x64K);
  gl_setcontextvga(G1024x768x64K);
  SVGAx=1023;
  SVGAy=767;
 }
 else
 if(strstr(svgamode,".L"))
 {
  vga_setmode(G1280x1024x64K);
  gl_setcontextvga(G1280x1024x64K);
  SVGAx=1279;
  SVGAy=1023;
 }
 if(strstr(svgamode,".M"))
 {
  vga_setmode(G1600x1200x64K);
  gl_setcontextvga(G1600x1200x64K);
  SVGAx=1599;
  SVGAy=1199;
 }
 {
  vga_setmode(G800x600x64K);
  gl_setcontextvga(G800x600x64K);
  SVGAx=799;
  SVGAy=599;
 }
 vga_runinbackground(1);
 vga_oktowrite();
 gl_setwritemode(FONT_COMPRESSED|WRITEMODE_MASKED);
 gl_setfontcolors(0,vga_white());
 //gl_setfont(8,8,gl_font8x8);
 gl_setrgbpalette();
 gl_enableclipping();
#endif
 x_defcurs( (short *)cur, (short *)&cur[16], 15); //mouse kursor
}