X-Git-Url: https://hackdaworld.org/gitweb/?p=physik%2Fnlsop.git;a=blobdiff_plain;f=dfbapi.c;h=3b0c895250212e170d7b551d60030cd8c3435c90;hp=aeb6cffe723350fd088ff01d85c1f606209d043b;hb=f271c1142da782420ef76f1f85750949094e4269;hpb=e28fcecc54036e7258172b96e97df4a8131f0d9a diff --git a/dfbapi.c b/dfbapi.c index aeb6cff..3b0c895 100644 --- a/dfbapi.c +++ b/dfbapi.c @@ -11,14 +11,11 @@ /* two dimensional lattice */ -int d2_lattice_init(int *argc,char **argv,d2_lattice *d2_l,int x,int y) +int d2_lattice_init(int *argc,char **argv,d2_lattice *d2_l) { DFBSurfaceDescription surface_dsc; DFBFontDescription font_dsc; - d2_l->max_x=x; - d2_l->max_y=y; - DirectFBInit(argc,&argv); DirectFBCreate(&(d2_l->dfb)); d2_l->dfb->SetCooperativeLevel(d2_l->dfb,DFSCL_FULLSCREEN); @@ -48,15 +45,11 @@ int d2_lattice_init(int *argc,char **argv,d2_lattice *d2_l,int x,int y) } else return 1; } -int d3_lattice_init(int *argc,char **argv,d3_lattice *d3_l,int x,int y,int z) +int d3_lattice_init(int *argc,char **argv,d3_lattice *d3_l) { DFBSurfaceDescription surface_dsc; DFBFontDescription font_dsc; - d3_l->max_x=x; - d3_l->max_y=y; - d3_l->max_z=z; - DirectFBInit(argc,&argv); DirectFBCreate(&(d3_l->dfb)); d3_l->dfb->SetCooperativeLevel(d3_l->dfb,DFSCL_FULLSCREEN); @@ -232,7 +225,7 @@ int d3_lattice_draw(d3_lattice *d3_l,int x,int y,int z,int arg_c,char **arg_v) d3_l->p_surface->SetColor(d3_l->p_surface,r,g,b,a); d3_l->p_surface->DrawRectangle(d3_l->p_surface, x_c*d3_l->fakt_x+X_GAP, - y_c*d3_l->fakt_x+d3_l->info_x, + y_c*d3_l->fakt_y+d3_l->info_y, d3_l->fakt_x,d3_l->fakt_y); } } @@ -257,35 +250,38 @@ int d3_lattice_draw(d3_lattice *d3_l,int x,int y,int z,int arg_c,char **arg_v) d3_l->p_surface->SetColor(d3_l->p_surface,0x80,0x80,0xff,0xff); for(i=1;i<=arg_c;i++) { - if(i<8) + if(i<13) { d3_l->p_surface->DrawString(d3_l->p_surface,arg_v[i],-1, d3_l->info_x+d3_l->fakt_x, - d3_l->info_y+d3_l->fakt_y+d3_l->font_h+(i-1)*2*d3_l->font_h, + d3_l->info_y+2*d3_l->fakt_y+d3_l->font_h+(i-1)*d3_l->font_h, DSTF_LEFT); } else { d3_l->p_surface->DrawString(d3_l->p_surface,arg_v[i],-1, d3_l->info_x+d3_l->info_w/2+d3_l->fakt_x, - d3_l->info_y+d3_l->fakt_y+d3_l->font_h+(i%8-1)*2*d3_l->font_h, + d3_l->info_y+2*d3_l->fakt_y+d3_l->font_h+(i%13-1)*d3_l->font_h, DSTF_LEFT); } } + /* now we flip all to surface */ + d3_l->p_surface->Flip(d3_l->p_surface,NULL,0); + return 1; } -int 2d_event_init(2d_lattice *2d_l) +int d2_event_init(d2_lattice *d2_l) { - 2d_l->dfb->GetInputDevice(2d_l->dfb,DIDID_KEYBOARD,&(2d_l->keyboard)); - 2d_l->keyboard->CreateEventBuffer(2d_l->keyboard,&(2d_l->k_buffer)); + d2_l->dfb->GetInputDevice(d2_l->dfb,DIDID_KEYBOARD,&(d2_l->keyboard)); + d2_l->keyboard->CreateEventBuffer(d2_l->keyboard,&(d2_l->k_buffer)); return 1; } int d3_event_init(d3_lattice *d3_l) { - d3_l->dfb->GetInputDevice(d3_l->dfb,DIDID_KEYBOARD,&(3d_l->keyboard)); + d3_l->dfb->GetInputDevice(d3_l->dfb,DIDID_KEYBOARD,&(d3_l->keyboard)); d3_l->keyboard->CreateEventBuffer(d3_l->keyboard,&(d3_l->k_buffer)); return 1; @@ -295,16 +291,17 @@ int scan_event(d3_lattice *d3_l,int *x,int *y,int *z,int *q,int *esc) { DFBInputEvent ke; + d3_l->k_buffer->WaitForEvent(d3_l->k_buffer); d3_l->k_buffer->GetEvent(d3_l->k_buffer,DFB_EVENT(&ke)); if(ke.type==DIET_KEYPRESS) { if(ke.key_id==DIKI_LEFT && *x!=0) *x-=1; if(ke.key_id==DIKI_RIGHT && *x!=d3_l->max_x-1) *x+=1; - if(ke.key_id==DIET_DOWN && *y!=0) *y-=1; - if(ke.key_id==DIET_UP && *y!=d3_l->max_y-1) *y+=1; - if(ke.key_id==DIET_PAGE_DOWN && *z!=0) *z-=1; - if(ke.key_id==DIET_PAGE_UP && *z!=d3_l->mac_z-1) *z+=1; - if(ke.key_id==DIKI_Q) *quit=1; + if(ke.key_id==DIKI_UP && *y!=0) *y-=1; + if(ke.key_id==DIKI_DOWN && *y!=d3_l->max_y-1) *y+=1; + if(ke.key_id==DIKI_PAGE_UP && *z!=0) *z-=1; + if(ke.key_id==DIKI_PAGE_DOWN && *z!=d3_l->max_z-1) *z+=1; + if(ke.key_id==DIKI_Q) *q=1; if(ke.key_id==DIKI_ESCAPE) *esc=1; }