Ejemplo n.º 1
0
int print_board(void)
{
    int i=0;
    int j=0;
    memset((u32_t *)fb_v.memo,0,fb_v.w*fb_v.h*fb_v.bpp/8);
    memset(chess_board,0,B_X*B_Y);                          //清屏
    current_player=1;
    current_color=BLACK;
    for (j=10; j<ST_Y+(SPACE*B_Y); j++)                   //打印棋盘并着色
    {
        for (i=20; i<ST_X+(SPACE*B_X); i++) 
        {
            fb_one_pixel(i,j,YELLOW);
        }
    }
    for (i=0; i<B_Y; i++)                                 //给格上色
    {
        fb_line(ST_X,ST_Y+i*SPACE,ST_X+(B_X-1)*SPACE,ST_Y+i*SPACE,BLACK);
    }
    for (i=0; i<B_X; i++) 
    {
        fb_line(ST_X+i*SPACE,ST_Y,ST_X+i*SPACE,ST_Y+(B_Y-1)*SPACE,BLACK);
    }
    fb_circle(60,100,18,BLACK);
    fb_circle(60,200,18,WHITE);
    return 0;
}
Ejemplo n.º 2
0
void fb_circle(fb_info fb,int x0, int y0, int r, u32_t color)
{
    int x = 0;
    int y = r;
    int p = 3 - 2 * r;
    while(x <= y)
    {
        draw_pix(fb,x0 + x, y0 + y, color);
        draw_pix(fb,x0 + y, y0 + x, color);
        draw_pix(fb,x0 + x, y0 - y, color);
        draw_pix(fb,x0 + y, y0 - x, color);
        draw_pix(fb,x0 - x, y0 + y, color);
        draw_pix(fb,x0 - y, y0 + x, color);
        draw_pix(fb,x0 - x, y0 - y, color);
        draw_pix(fb,x0 - y, y0 - x, color);

        fb_line(fb, x0 + x, y0 + y, x0 - x, y0 + y, color);
        fb_line(fb, x0 + y, y0 + x, x0 - y, y0 + x, color);
        fb_line(fb, x0 + y, y0 - x, x0 - y, y0 - x, color);
        fb_line(fb, x0 + x, y0 - y, x0 - x, y0 - y, color);
        x++;
        if(p < 0)
            p += 4 * x + 6;
        else
        {
            p += 4 * (x - y) + 10;
            y--;
        }
    }
}
Ejemplo n.º 3
0
int display_midtoside(const char *filename, fb_info fb_inf)
{
    fb_info jpeg_inf;

    u8_t *buf24 = decode_jpeg(filename, &jpeg_inf);
    u8_t * scale_buf = scale24(buf24, fb_inf, jpeg_inf);
    u32_t *buf32 = rgb24to32(scale_buf, fb_inf);

    int i,j = 50000,m = 5;
    for(i=0; i<=fb_inf.h/2-1; i++)
    {
        fb_line(fb_inf.h/2 - 1 - i);
       
        fb_line(fb_inf.h/2+i);
        while(m--)
        {
            while(j--);
        j = 50000;
        }
        m = 5;
        if(*status_p == 0) goto dong05;
    }
dong05:
    free(buf24);
    free(scale_buf);
    free(buf32);

    return 0;
}
Ejemplo n.º 4
0
int main(int argc, const char *argv[])
{
	init_data();
/*	int i,j;

	for (j = 0; j < 100; j++) 
	{
		for (i = 0; i < 100; i++) 
		{
			fb_one_pixel(500+i, 300+j, 0x00ff0000);			
		}
	}
	fb_line(0, 0, fb_v.w-1, fb_v.h-1, 0x000000ff);
	fb_line(300, 500, 310, 200, 0xf00000ff);
	fb_line(1023, 0, 0, fb_v.h-1, 0x000000ff);
	fb_circle(512, 384, 100, 0x00ff0000);
	fb_circle(100, 100, 100, 0x00ff0000);
*/
	int i,j;
	for (i = 0; i < 25; i++) 
	{
		fb_line(153, i*30, 993, i*30, 0xf00000ff);	
	}
	
	for (j = 0; j < 29; j++) 
	{
		fb_line(153+j*30, 0, 153+j*30, 720, 0xf00000ff);	
	}

    return 0;
}
Ejemplo n.º 5
0
int fb_circle_fill(int x0, int y0, int r, u32_t color)
{
    int x = 0;
    int y = r;
    int p = 3 - 2 * r;

    while (x <= y) 
    {
        fb_line(x0+x, y0+y, x0-x, y0+y, color);
        fb_line(x0+y, y0+x, x0-y, y0+x, color);
        fb_line(x0+x, y0-y, x0-x, y0-y, color);
        fb_line(x0+y, y0-x, x0-y, y0-x, color);

        if (p < 0) 
        {
            p += 4 * x + 6;
        }
        else 
        {
            y--;
            p += 4 * (x - y) + 10;
        }
        x++;
    }
    
    return 0;
}
Ejemplo n.º 6
0
void fb_rect(int y_min, int y_max, int x_min, int x_max, int color){
	// On dessine la ligne supérieure
	fb_line(x_min, y_min, x_max, y_min, color);
	// On dessine la ligne droite
	fb_line(x_max, y_min, x_max, y_max, color);
	// On dessine la ligne inf�rieure
	fb_line(x_max, y_max, x_min, y_max, color);
	// On dessine la ligne gauche
	fb_line(x_min, y_max, x_min, y_min, color);
}
Ejemplo n.º 7
0
void print_board(void)
{
	int i = 0;
	for (i = 0; i < Y_NUM; i++)
	{
		fb_line(ST_X,ST_Y+SPACE*i,ST_X+(X_NUM-1)*SPACE,ST_Y+SPACE*i,0x00ffffff);
	}
	for (i = 0; i < X_NUM; i++)
	{
		fb_line(ST_X+SPACE*i,ST_Y,ST_X+SPACE*i,ST_Y+(Y_NUM-1)*SPACE,0x00ffffff);
	}
}
Ejemplo n.º 8
0
void print_board(u32_t color)
{
	int i = 0; 
	
	for(i = 0; i < Size_X; i++)
	{
		fb_line(Starting_X+Space*i, Starting_Y, Starting_X+Space*i, Starting_Y+Space*(Size_Y-1), color);	
	}
	for(i = 0; i < Size_Y; i++)
	{
		fb_line(Starting_X, Starting_Y+Space*i, Starting_X+Space*(Size_X-1), Starting_Y+Space*i, color);	
	}
}
Ejemplo n.º 9
0
void fb_button(button_t button){
	int title_size = 8*strlen(button.label);
	// On dessine le tour
	fb_rect(button.y, button.y + button.height, button.x, button.x + button.width, LU_GREY);
	// On dessine le rebord gauche
	fb_line(button.x + 1, button.y + 2, button.x + 1, button.y + button.height - 1, LU_BLACK);
	// On dessine le rebord inférieur
	fb_line(button.x + 1, button.y + button.height - 1, button.x + button.width - 1, button.y + button.height - 1, LU_BLACK);
	// On fait le calcul pour le placement du titre
	if(button.width > title_size && button.height > 10){
		// On affiche le titre
		fb_print_string_transparent(LU_GREY, button.label, button.x + (button.width-title_size)/2, button.y + (button.height-8)/2);
	}
}
Ejemplo n.º 10
0
void print_board(void)  //ge zi
{
    int i=0;
    for(i=0; i<P_NUM; i++)
    {
        fb_line(STARTING_X, STARTING_Y+i*SPACE, STARTING_X+(V_NUM-1)*SPACE, STARTING_Y+i*SPACE, 0x008b6904);

    }
    for(i=0; i<V_NUM; i++)
    {
        fb_line(STARTING_X+i*SPACE, STARTING_Y, STARTING_X+i*SPACE, STARTING_Y+(P_NUM-1)*SPACE, 0x008b6904);

    }
}
Ejemplo n.º 11
0
void drow_background(u32_t color)
{
	int i = 0;

	for(i = 0 - BAR; i < (Size_Y-1)*Space + BAR; i++)
	{
		fb_line(Starting_X - BAR, Starting_Y+i, Starting_X + (Size_X-1)*Space + BAR, Starting_Y+i,color);
	}
}
Ejemplo n.º 12
0
void print_board(int h_num, int v_num, v_info_t fb_v)
{
    int i;
    int w, h;
    w = fb_v.w;
    h = fb_v.h;

    //v
    for (i = 0; i < 30; i++)
    {
        fb_line(START_X+i*SPACE, START_Y,START_X+i*SPACE, START_Y+(P_NUM-1)*SPACE, 0x00ff0000);
    }
    //h
    for (i = 0; i < 24; i++)
    {
        fb_line( START_X, START_Y+i*SPACE, START_X+(V_NUM-1)*SPACE, START_Y+i*SPACE, 0x00ff0000);
    }
}
Ejemplo n.º 13
0
int fb_circle(int x0, int y0, int r, u32_t color)
{
	int x = 0;
	int y = r;
	int p = 3-2*r;
	
	while (x <= y) 
	{
//	#if 0
		fb_one_pixel(x0 + x, y0 + y, color);	
		fb_one_pixel(x0 + y, y0 + x, color);
		
		fb_one_pixel(x0 + x, y0 - y, color);	
		fb_one_pixel(x0 + y, y0 - x, color);
		
		fb_one_pixel(x0 - x, y0 + y, color);	
		fb_one_pixel(x0 - y, y0 + x, color);
	
		fb_one_pixel(x0 - x, y0 - y, color);	
		fb_one_pixel(x0 - y, y0 - x, color);
//	#endif

		fb_line(x0+x, y0+y, x0-x ,y0+y, color);
		fb_line(x0+y, y0+x, x0-y ,y0+x, color);
		fb_line(x0+y, y0-x, x0-y ,y0-x, color);
		fb_line(x0+x, y0-y, x0-x ,y0-y, color);

		if (p < 0) 
		{
			p += 4*x+6;
		}
		else 
		{
			p += 4*(x-y)+10;
			y--;
		}
		x++;
	}


	return 0;
}
Ejemplo n.º 14
0
void print_board(void)
{
	int i = 0;
	int j = 0;
	for(j=ST_Y-20; j<Y_NUM*SPACE+30; j++)
	{
		for(i=ST_X-80; i<X_NUM*SPACE+SPACE*2+50; i++)
		{
			fb_one_pixel(i, j, YELLOW);
		}
	}
	for(i=0; i<Y_NUM; i++)
	{
		fb_line(ST_X, ST_Y+i*SPACE, ST_X+(X_NUM-1)*SPACE, ST_Y+i*SPACE, 0x00ffff00);
	}
	for(i=0; i<X_NUM; i++)
	{
		fb_line(ST_X+i*SPACE, ST_Y, ST_X+i*SPACE, ST_Y+(Y_NUM-1)*SPACE, 0x00ffff00);
	}
}
Ejemplo n.º 15
0
int board_print(u32_t color_line, u32_t color_bg)
{
    int i, j;

    for (j = ST_Y - SPACE; j < ST_Y+B_X*SPACE; j++) 
    {
        for (i = ST_X - SPACE*2; i < ST_X + (B_Y+2)*SPACE; i++) 
        {
            fb_pixel(i, j, color_bg);
        }
    }

    for (i = 0; i < B_Y; i++) 
    {
        fb_line(ST_X, ST_Y+(i*SPACE), ST_X+(B_X-1)*SPACE, ST_Y+(i*SPACE), color_line);
    }

    for (i = 0; i < B_X; i++) 
    {
        fb_line(ST_X+(i*SPACE), ST_Y, ST_X+(i*SPACE), ST_Y+(B_Y-1)*SPACE, color_line);
    }
    
    return 0;
}
Ejemplo n.º 16
0
int fb_circle(int x0,int y0,int r,u32_t color)
{
	int x = 0;
	int y = r;
	int p = 3-2*r;
	while(x <= y)
	{
		/*画实心圆:n条线组成了圆*/
		fb_line(x0+x,y0+y,x0-x,y0+y,color);//前两个坐标确定画圆的第一条线
		fb_line(x0+y,y0+x,x0-y,y0+x,color);//前两个坐标与y=x对称 只需交换x与y;后两个坐标与y轴对称 只需将x换成-x
		fb_line(x0+y,y0-x,x0-y,y0-x,color);//前两个坐标与x轴对称 后两个坐标同上
		fb_line(x0+x,y0-y,x0-x,y0-y,color);//同上
		/*画空心圆*/
		/*fb_one_pixel(x0+x,y0+y,color);
		fb_one_pixel(x0+y,y0+x,color);
		fb_one_pixel(x0+y,y0-x,color);
		fb_one_pixel(x0+x,y0-y,color);
	        	
		fb_one_pixel(x0-x,y0+y,color);
		fb_one_pixel(x0-y,y0+x,color);
		fb_one_pixel(x0-y,y0-x,color);
		fb_one_pixel(x0-x,y0-y,color);*/
		x++;
		if(p<0)
		{
			p += 4*x+6;
		}
		else
		{
			y--;
			p += 4*(x-y)+10;
		}
	
	}
	return 0;
}
Ejemplo n.º 17
0
int main(int argc, const char *argv[])
{
    init_data();                              
    print_board();
    mouse_doing();
//    save_bg(500, 300);
//    draw_cursor(500, 300);
//    sleep(1);
//    restore_bg(500, 300);
//    draw_cursor(600, 500);
#if 0 
    int i, j;
    for (i = 0; i < 100; i++)                       /*纵坐标*/
    {
        for (j = 0; j < 100; j++)                   /*横坐标*/ 
        {
            fb_one_pixel(500 + j, 300 + i, 0x0000ff00);
        }
    }
#endif
//    fb_line(0, 0, fb_v.w-1, fb_v.h-1, 0x00ff0000);   
//    fb_line(fb_v.w-1, 0, 0, fb_v.h-1, 0x00ff0000);
//    fb_line(300, fb_v.h-1, 500, 0, 0x0000ff00);
//    fb_line(0, 0, fb_v.w-1, 0, 0x00ffffff);
//    fb_line(0, 0, 0, fb_v.h-1, 0x00ffffff);
//    fb_line(fb_v.w-1, fb_v.h-1, fb_v.w-1, 0, 0x00ffffff);
//    fb_line(fb_v.w-1, fb_v.h-1, 0, fb_v.h-1, 0x00ffffff);
//      fb_circle(500, 300, 300, 0x00ff0000);
#if 1
    int i;
    for (i = 0; i < fb_v.w; i++)
    {
        fb_line(0, 0+i*30, fb_v.w-1, 0+i*30, 0x00ffffff);
    }

    printf("location:\n");
    scanf("%d",&i);

    fb_circle(st_x+i*space, st_y+i*space, 10, 0x0000ff00);
#endif
    return 0;
}
Ejemplo n.º 18
0
void main(void)
{
    FBDEV fbdev;
    memset(&fbdev,0,sizeof(FBDEV));
    strcpy(fbdev.dev,"/dev/fb0");
    if (fb_open(&fbdev) == FALSE) 
    {
        printf("open frame buffer error\n");
        return ;
    }
    fb_memset((void *)(fbdev.fb_mem + fbdev.fb_mem_offset),0,fbdev.fb_fix.smem_len);
    //画点得函数:
    fb_drawpixel(&fbdev,512,384,0x00ff0000);
    fb_drawpixel(&fbdev,513,384,0x00ff0000);
    fb_drawpixel(&fbdev,512,385,0x00ff0000);
    fb_drawpixel(&fbdev,513,385,0x00ff0000);
    //画直线得函数:
    //fb_drawline(&fbdev,200,100,0x0000ff00);
    fb_line(&fbdev,100,200,300,500,0x000000ff);
    fb_circle(&fbdev,512,348,50,0x00ff0000);
    fb_close(&fbdev);
    getchar();
}
Ejemplo n.º 19
0
static void
fb_docmd(WINDISPLAY *mod, struct TVRequest *req)
{
	switch (req->tvr_Req.io_Command)
	{
		case TVCMD_OPENWINDOW:
			fb_openwindow(mod, req);
			break;
		case TVCMD_CLOSEWINDOW:
			fb_closewindow(mod, req);
			break;
		case TVCMD_OPENFONT:
			fb_openfont(mod, req);
			break;
		case TVCMD_CLOSEFONT:
			fb_closefont(mod, req);
			break;
		case TVCMD_GETFONTATTRS:
			fb_getfontattrs(mod, req);
			break;
		case TVCMD_TEXTSIZE:
			fb_textsize(mod, req);
			break;
		case TVCMD_QUERYFONTS:
			fb_queryfonts(mod, req);
			break;
		case TVCMD_GETNEXTFONT:
			fb_getnextfont(mod, req);
			break;
		case TVCMD_SETINPUT:
			fb_setinput(mod, req);
			break;
		case TVCMD_GETATTRS:
			fb_getattrs(mod, req);
			break;
		case TVCMD_SETATTRS:
			fb_setattrs(mod, req);
			break;
		case TVCMD_ALLOCPEN:
			fb_allocpen(mod, req);
			break;
		case TVCMD_FREEPEN:
			fb_freepen(mod, req);
			break;
		case TVCMD_SETFONT:
			fb_setfont(mod, req);
			break;
		case TVCMD_CLEAR:
			fb_clear(mod, req);
			break;
		case TVCMD_RECT:
			fb_rect(mod, req);
			break;
		case TVCMD_FRECT:
			fb_frect(mod, req);
			break;
		case TVCMD_LINE:
			fb_line(mod, req);
			break;
		case TVCMD_PLOT:
			fb_plot(mod, req);
			break;
		case TVCMD_TEXT:
			fb_drawtext(mod, req);
			break;
		case TVCMD_DRAWSTRIP:
			fb_drawstrip(mod, req);
			break;
		case TVCMD_DRAWTAGS:
			fb_drawtags(mod, req);
			break;
		case TVCMD_DRAWFAN:
			fb_drawfan(mod, req);
			break;
		case TVCMD_COPYAREA:
			fb_copyarea(mod, req);
			break;
		case TVCMD_SETCLIPRECT:
			fb_setcliprect(mod, req);
			break;
		case TVCMD_UNSETCLIPRECT:
			fb_unsetcliprect(mod, req);
			break;
		case TVCMD_DRAWBUFFER:
			fb_drawbuffer(mod, req);
			break;
		default:
			TDBPRINTF(TDB_INFO,("Unknown command code: %08x\n",
			req->tvr_Req.io_Command));
	}
}
Ejemplo n.º 20
0
void print_board(void)  //ge zi
{
    float h=10.0;
    int i=0;
    int c=0;
    //int a,b
    int q;
    int d=1;
    int x,y,w1,w2;
    for(i=0; i<P_NUM; i++)
    {
        fb_line(STARTING_X, STARTING_Y+i*SPACE, STARTING_X+(V_NUM-1)*SPACE, STARTING_Y+i*SPACE, 0x008b6904);

    }
    for(i=0; i<V_NUM; i++)
    {
        fb_line(STARTING_X+i*SPACE, STARTING_Y, STARTING_X+i*SPACE, STARTING_Y+(P_NUM-1)*SPACE, 0x008b6904);

    }
    
    //scanf("%d",&d);
    //getchar();

   /* while(1)                         // que ren qi zi zuo biao 
    {
        //if(d==0) break;
        if(d==1)
        {
            x=STARTING_X;
            y=STARTING_Y;
            printf("star\n");
            //scanf("%d %d",&a,&b);
            //getchar();
            //if(a==0)
            //break;
            for(i=0;i<24;i++)
            {
                for(c=0;c<31;c++)
                {    
                    x=STARTING_X + 30*c;
                    if(c==30)
                    {
                        y+=30;
                    }
                    
                    if((abs(mx-x)<15) && (abs(my-y)<15))
                    { 
                            
                        if(w1==x && w2==y)
                        break;
                        w1=x;
                        w2=y;
                        mx=x;
                        my=y;
                        if(q%2==0)
                        {
                           //  yuan(a,b,10,0x00ffffff);
                           fb_one_pixel(mx,my,0x000000ff);
    //for(h=10.0;h>0;h-=0.01)
    //{
    //circle(a, b,h,0x00ffffff, 0);
    //}
                            fb_circle(mx,my,13,0x00ffffff);
                        } 
                        if(q%2==1)
                        {
                           // yuan(a,b,10,0x00000000);
                           //fb_one_pixel(a,b,0x000000ff);
                           //
                           //
                           //
                           //for(h=10.0;h>0;h-=0.01)
                           //{
                           //circle(a, b,h,0x00000000, 0);
                           //}
                           //
                           //
                           //
                            //fb_circle(a,b,13,0x00000000);
                            
                        }
                        q++;
                        break;
                    } 
                 }

                    if((abs(mx-x)<15) && (abs(my-y)<15))
                    break;
             } 

         }    
     }  */

}
Ejemplo n.º 21
0
int fb_circle(int x0, int y0, int r, u32_t color)    //  hua yuan
{
    int x = 0;
    int y = r;
    
    int p = 3-2*r;

    while(x <= y)
    {
#if 0
        fb_one_pixel(x0+x, y0+y, color);         //hua  kong xin  huan  
        fb_one_pixel(x0+y, y0+x, color);
        fb_one_pixel(x0+x, y0-y, color);
        fb_one_pixel(x0+y, y0-x, color);
        fb_one_pixel(x0-x, y0+y, color);
        fb_one_pixel(x0-y, y0+x, color);
        fb_one_pixel(x0-x, y0-y, color);
        fb_one_pixel(x0-y, y0-x, color);
        
        
        

        fb_line(x0, y0,x0+x,y0+y, color);         //bu wan zheng de  shi xin huan
        fb_line(x0, y0,x0+y,y0+x, color);         
        fb_line(x0, y0,x0+x,y0-y, color);         
        fb_line(x0, y0,x0+y,y0-x, color);         
        fb_line(x0, y0,x0-x,y0+y, color);         
        fb_line(x0, y0,x0-y,y0+x, color);         
        fb_line(x0, y0,x0-x,y0-y, color);         
        fb_line(x0, y0,x0-y,y0-x, color);      


#endif
        fb_line(x0+x, y0+y, x0-x, y0+y, color);   // shi xin yuan
        fb_line(x0+y, y0+x, x0-y, y0+x, color);
        fb_line(x0+y, y0-x, x0-y, y0-x, color);
        fb_line(x0+x, y0-y, x0-x, y0-y, color);
        
        if(p < 0)
        {
            p += 4*x+6;
        }
        else
        {
            p += 4*(x-y) + 10;
            y--;
        }
        x++;
    
    }
    return 0;
}