X-Git-Url: https://hackdaworld.org/gitweb/?p=physik%2Fnlsop.git;a=blobdiff_plain;f=dfbapi.c;h=b922cc4d7febf045bd40b335d2c2db6199e7fd33;hp=18cf9cca7d9d331aad23ce61793c2691a9beb84b;hb=HEAD;hpb=05932e953d5a9c5c83c608a9c26c3d542b46fe63 diff --git a/dfbapi.c b/dfbapi.c index 18cf9cc..b922cc4 100644 --- a/dfbapi.c +++ b/dfbapi.c @@ -97,7 +97,7 @@ int d3_lattice_release(d3_lattice *d3_l) int dx_lattice_get_color(unsigned char *status,unsigned char *r,unsigned char *g,unsigned char *b,unsigned char mode) { *g=0; - if(!mode) + if((!mode)||mode==3) { if((*status)&RED) { @@ -185,10 +185,10 @@ int d2_lattice_draw(d2_lattice *d2_l,int x,int y,int arg_c,char **arg_v,unsigned return 1; } -int d3_lattice_draw(d3_lattice *d3_l,int x,int y,int z,int arg_c,char **arg_v,unsigned char mode,int max_extra) +int d3_lattice_draw(d3_lattice *d3_l,int x,int y,int z,int arg_c,char **arg_v,unsigned char mode,int max_extra,u32 *p1,u32 max1,u32 *p2,u32 max2) { int x_c,y_c,z_c; - int i; + int i,sum; unsigned char foobar; unsigned char r,g,b,a; @@ -199,7 +199,23 @@ int d3_lattice_draw(d3_lattice *d3_l,int x,int y,int z,int arg_c,char **arg_v,un { for(z_c=0;z_cmax_z;z_c++) { - if(!mode) dx_lattice_get_color((*d3_l).status+x_c+y_c*d3_l->max_x+z_c*d3_l->max_x*d3_l->max_y,&r,&g,&b,mode); + if((!mode)||mode==3) + { + sum=0; + for(i=-2;i<=2;i++) + if(*(d3_l->status+x_c+((y_c+i+d3_l->max_y)%d3_l->max_y)*d3_l->max_x+z_c*d3_l->max_x*d3_l->max_y)&RED) sum+=0xff; + g=0; b=0; + r=(unsigned char)(sum/5); + } + if(mode==3) + { + if(d3_l->max_x*p1[z_c]/max1==x_c) + { + r=0xff; + g=0xff; + b=0xff; + } + } if(mode==1) { foobar=(unsigned char)(*(d3_l->extra+x_c+y_c*d3_l->max_x+z_c*d3_l->max_x*d3_l->max_y)*255/max_extra); @@ -229,7 +245,16 @@ int d3_lattice_draw(d3_lattice *d3_l,int x,int y,int z,int arg_c,char **arg_v,un { for(z_c=0;z_cmax_z;z_c++) { - if(!mode) dx_lattice_get_color((*d3_l).status+x_c+y_c*d3_l->max_x+z_c*d3_l->max_x*d3_l->max_y,&r,&g,&b,mode); + if((!mode)||mode==3) dx_lattice_get_color((*d3_l).status+x_c+y_c*d3_l->max_x+z_c*d3_l->max_x*d3_l->max_y,&r,&g,&b,mode); + if(mode==3) + { + if((int)(d3_l->max_y*(1.0*p2[z_c]/max2))==y_c) + { + r=0xff; + g=0xff; + b=0xff; + } + } if(mode==1) { foobar=(unsigned char)(*(d3_l->extra+x_c+y_c*d3_l->max_x+z_c*d3_l->max_x*d3_l->max_y)*255/max_extra); @@ -259,7 +284,7 @@ int d3_lattice_draw(d3_lattice *d3_l,int x,int y,int z,int arg_c,char **arg_v,un { for(y_c=0;y_cmax_y;y_c++) { - if(!mode) dx_lattice_get_color((*d3_l).status+x_c+y_c*d3_l->max_x+z_c*d3_l->max_x*d3_l->max_y,&r,&g,&b,mode); + if((!mode)||mode==3) dx_lattice_get_color((*d3_l).status+x_c+y_c*d3_l->max_x+z_c*d3_l->max_x*d3_l->max_y,&r,&g,&b,mode); if(mode==1) { foobar=(unsigned char)(*(d3_l->extra+x_c+y_c*d3_l->max_x+z_c*d3_l->max_x*d3_l->max_y)*255/max_extra); @@ -296,32 +321,12 @@ int d3_lattice_draw(d3_lattice *d3_l,int x,int y,int z,int arg_c,char **arg_v,un d3_l->p_surface->DrawRectangle(d3_l->p_surface, d3_l->info_x,d3_l->info_y, d3_l->info_w,d3_l->info_h); - /* old style - d3_l->p_surface->DrawLine(d3_l->p_surface, - d3_l->info_x+d3_l->info_w/2, - d3_l->info_y, - d3_l->info_x+d3_l->info_w/2, - d3_l->info_y+d3_l->info_h); - */ d3_l->p_surface->SetColor(d3_l->p_surface,0x80,0x80,0xff,0xff); for(i=1;i<=arg_c;i++) - { - // 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+2*d3_l->fakt_y+d3_l->font_h+(i-1)*d3_l->font_h, DSTF_LEFT); - // } else - // { - /* old style - 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+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); @@ -359,9 +364,11 @@ int scan_event(d3_lattice *d3_l,int *x,int *y,int *z,int *q,int *esc,int *switch 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_END && *z<=d3_l->max_z-10) *z+=10; + if(ke.key_id==DIKI_HOME && *z>=10) *z-=10; if(ke.key_id==DIKI_Q) *q=1; if(ke.key_id==DIKI_ESCAPE) *esc=1; - if(ke.key_id==DIKI_M) *switchmode=(*switchmode+1)%3; + if(ke.key_id==DIKI_M) *switchmode=(*switchmode+1)%4; if(ke.key_id==DIKI_1) *bmp=1; if(ke.key_id==DIKI_2) *bmp=2; if(ke.key_id==DIKI_3) *bmp=3;