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; }
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--; } } }
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; }
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; }
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; }
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); }
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); } }
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); } }
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); } }
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); } }
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); } }
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); } }
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; }
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); } }
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; }
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; }
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; }
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(); }
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)); } }
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; } } } */ }
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; }