亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? graphic.c

?? Linux下在LCD上顯示圖片的程序 現可顯示大分辨圖片640×480
?? C
?? 第 1 頁 / 共 3 頁
字號:
  /* make masks to mask out untouchable destination */  dest_beg_mask = ~((unsigned char)(-1) >> dest_off);  dest_end_mask = (unsigned char)(-1) >> ((dest_off + w) & 7);  if (dest_end_mask == (unsigned char)(-1)) {    /* bit stupid */    dest_end_mask = 0;  }  //printf("dx=%d\n", dx);  //dump_unit("dest_beg_mask", dest_beg_mask);  //dump_unit("dest_end_mask", dest_end_mask);  for (y = 0; y < h; y++) {    // process one line    register unsigned char *sp;    register unsigned char *dp;    register unsigned char mask = 0;    register unsigned char left, right;    unsigned char s, d;    sp = src;    dp = dest;    for (x = 0; x < dest_n; x++, sp++, dp++) {      // process one unit      if (dx < 0) {	// first, don't care about masks	left = *sp << (-dx);	right = *(sp+1) >> (8 + dx);      } else if (dx > 0) {	// first, don't care about masks	left = *(sp-1) << (8-dx);	right = *(sp) >> (dx);      } else {	left = *sp;	right = 0;      }      s = left | right;      // combine with destination      switch (Mode) {      case MODE_SRC:      default:	d = s;	break;      case MODE_NOT_SRC:	d = ~s;	break;      case MODE_SRC_OR_DST:	d = *dp | s;	break;      case MODE_SRC_AND_DST:	d = *dp & s;	break;      case MODE_SRC_XOR_DST:	d = *dp ^ s;	break;      case MODE_NOT_SRC_OR_DST:	d = *dp | ~s;	break;      case MODE_NOT_SRC_AND_DST:	d = *dp & ~s;	break;      case MODE_NOT_SRC_XOR_DST:	d = *dp ^ ~s;	break;      case MODE_SRC_OR_NOT_DST:	d = ~*dp | s;	break;      case MODE_SRC_AND_NOT_DST:	d = ~*dp & s;	break;      case MODE_SRC_XOR_NOT_DST:	d = ~*dp ^ ~s;	break;      }      mask = 0;      if (x == 0) {	mask |= dest_beg_mask;      }      if (x == dest_n-1) {	mask |= dest_end_mask;      }      *dp = (*dp & mask) | (d & ~mask);    }    src += src_units_per_line;    dest += dest_units_per_line;  }}void patternfill( short dest_x,		 short dest_y, 		 short w,		 short h,		 unsigned char*dest,		 short dest_units_per_line)  {    /* todo: clip */  register char dx;  unsigned short x,y;  unsigned char src_off, dest_off;  short dest_n;  unsigned char dest_beg_mask, dest_end_mask;  const Pattern *pattern = patterns[P_Index];    /* goto line y */  dest += dest_y * dest_units_per_line;    /* goto UNIT-offset x */  dest += dest_x / 8;  /* determine number of affected units per line */    dest_n = (dest_x + w + 8 - 1) / 8 - dest_x / 8;  /* determine PIXEL-offsets */  dest_off = dest_x % 8;    /* make masks to mask out untouchable destination */  dest_beg_mask = ~((unsigned char)(-1) >> dest_off);  dest_end_mask = (unsigned char)(-1) >> ((dest_off + w) % 8);  if (dest_end_mask == (unsigned char)(-1)) {    /* bit stupid */    dest_end_mask = 0;  }    for (y = 0; y < h; y++) {    // process one line    register unsigned char *dp;    register unsigned char mask = 0;    unsigned char s=pattern->data[(dest_y+y)%pattern->height], d;    dp = dest;    for (x = 0; x < dest_n; x++, dp++) {      // combine with destination      switch (Mode) {      case MODE_SRC:      default:	d = s;	break;      case MODE_NOT_SRC:	d = ~s;	break;      case MODE_SRC_OR_DST:	d = *dp | s;	break;      case MODE_SRC_AND_DST:	d = *dp & s;	break;      case MODE_SRC_XOR_DST:	d = *dp ^ s;	break;      case MODE_NOT_SRC_OR_DST:	d = *dp | ~s;	break;      case MODE_NOT_SRC_AND_DST:	d = *dp & ~s;	break;      case MODE_NOT_SRC_XOR_DST:	d = *dp ^ ~s;	break;      case MODE_SRC_OR_NOT_DST:	d = ~*dp | s;	break;      case MODE_SRC_AND_NOT_DST:	d = ~*dp & s;	break;      case MODE_SRC_XOR_NOT_DST:	d = ~*dp ^ ~s;	break;      }      mask = 0;      if (x == 0) {	mask |= dest_beg_mask;      }      if (x == dest_n-1) {	mask |= dest_end_mask;      }      *dp = (*dp & mask) | (d & ~mask);    }    dest += dest_units_per_line;  }}short initgraph(void){  struct fb_var_screeninfo screeninfo;    screen_fd = open("/dev/fb0", O_RDWR);  if (screen_fd == -1)   	{      perror("Unable to open frame buffer device /dev/fb0");      return 0;	 }  if (ioctl(screen_fd, FBIOGET_VSCREENINFO, &screeninfo)==-1) {      perror("Unable to retrieve framebuffer information");      return 0;          }  //screen_width = screeninfo.xres_virtual;  screen_width = 240;//screeninfo.xres_virtual;  //screen_height = screeninfo.yres_virtual;  screen_height = 320;//screeninfo.yres_virtual;  //lyk modified it  //E_Font	= (unsigned char*)(screeninfo.english_font);  //printf("E_Font Address %x %x\n",E_Font,screeninfo.english_font);  //if(!E_Font) 	  //E_Font=(unsigned char*)(0x8804);	  //E_Font=(unsigned char*)(0x8812);   E_Font=fontdata_8x16;//(unsigned char*)(0x0004a690);  screen_ptr = mmap(NULL, ((screen_height * screen_width*2)/4096+1)*4096, PROT_READ|PROT_WRITE, /*0*/MAP_SHARED, screen_fd, 0);  printf("sc_ptr=%x\n",screen_ptr);  if (screen_ptr==MAP_FAILED) {              perror("Unable to mmap frame buffer");	      close(screen_fd);	      return 0;       }    C_Font=fopen(CHINESE_FONT_FILE,"rb");    if(!C_Font)  	{	 perror("Unable to open Chinese font file");	 close(screen_fd);	 return 0;	}  Color=1;	    return 1;}void closegraph(){  if(screen_fd!=-1) {	close(screen_fd);  }  if(C_Font)	  fclose(C_Font);}void XY_clearscreen(unsigned short x1,unsigned short y1,unsigned short x2,unsigned short y2){unsigned short i=0, h_y=y2-y1+1,w_x=x2-x1+1;// for(i=0;i<h_y;i++)//  memset(screen_ptr+240*2*y1+2*x1+i*240*2,0,w_x*2); memset(screen_ptr+240*2*y1+2*x1,0,h_y*w_x*2);}void clearscreen(){	memset(screen_ptr,0,screen_width*screen_height*2);}void clearscreen_white(){        memset(screen_ptr,0xff,screen_width*screen_height*2);}void draw_xbm(short sx, short sy, short width, short height, char* pixel){	short i, j, k, t,l=(width>>=3)*height,m,wid=screen_width>>3;	short d,off;	char *loc=screen_ptr+(off=((sy*screen_width+sx)>>3));          for(k=0,i=0;i<height;i++,k+=wid)          for(j=0;(j<width)&&(j<20);j++) 	{	      d=0;	      for(m=0;m<8;m++)	        if(pixel[k+j]&masktab[m]) d|=masktab[7-m];	      t=k+j;              if((t+off)>=3200) return;	      loc[t]=d;			       	    	}}void draw_bmp(short sx, short sy, short rwidth, short height, char* pixel,unsigned short color,unsigned short groundcolor){	short i, j, k;        char flag=0;	char *loc=screen_ptr+sx*2+sy*240*2;	for(j=0;j<height;j++)	for(k=0;k<rwidth;k++)	 for(i=0;i<8;i++)          {flag= *(pixel+j*rwidth+k) & masktab[i];            if(flag)            {// *(loc+j*240*2+k*16+i*2)=0x00;             // *(loc+j*240*2+k*16+i*2+1)=0x00;	      *(unsigned short*)(loc+j*240*2+k*16+i*2)=color;             }          else{// *(loc+j*240*2+k*16+i*2)=0xff;               // *(loc+j*240*2+k*16+i*2+1)=0xff;		*(unsigned short*)(loc+j*240*2+k*16+i*2)=groundcolor;                              } 	}}void my_draw_bmp(short x,short y,unsigned short width,unsigned short height,char *pixel){short i,j; long aver_size=((width+31)/32)*4; char masktab[8]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01}; for(j=0;(y+j)<ScreenHeight&&(y+j)>=0&&j<height;j++)     //0---height;  for(i=0;(x+i)<ScreenWidth&&(x+i)>=0&&i<width;i++)      //0---width ;          if(*(pixel+j*aver_size+i/8) & masktab[i%8])//judge pixel "0"or "1";                      { *(screen_ptr+(y+j)*ScreenWidth*2+2*(i+x))=0x00;                 *(screen_ptr+(y+j)*ScreenWidth*2+2*(i+x)+1)=0x00;                         }             else{ *(screen_ptr+(y+j)*ScreenWidth*2+2*(i+x))=0xff;                   *(screen_ptr+(y+j)*ScreenWidth*2+2*(i+x)+1)=0xff;                }}inline void color_dot_bmp(short x,short y,char *buf) {if(y>0&&y<ScreenHeight)    if(x>0&&x<ScreenWidth)     {*(screen_ptr+y*240*2+2*x)=*buf;      *(screen_ptr+y*240*2+2*x+1)=*(buf+1);     }  }void color_555_draw_bmp(short x,short y,unsigned short width,unsigned short height,char *buf){   long i,j,offset;    unsigned short tmp,red,green,blue;   for(j=y;j<ScreenHeight&&(j-y)<height;j++)        for(i=x;i<ScreenWidth&&(i-x)<width;i++)           { offset=(j-y)*width*2+(i-x)*2;             tmp=*(unsigned short*)(buf+offset);             red=(tmp&0x7c00)<<1;             green=(tmp&0x03e0)<<1;             tmp&=0x001f;             tmp|=red|green;            *(unsigned short*)(screen_ptr+j*240*2+2*i)=tmp;           } }void color_565_draw_bmp(short x,short y,unsigned short width,unsigned short height,char *buf){   long i,j,offset;    unsigned short tmp,red,green,blue;   for(j=y;j<ScreenHeight&&(j-y)<height;j++)        for(i=x;i<ScreenWidth&&(i-x)<width;i++)           { offset=(j-y)*width*2+(i-x)*2;             tmp=*(unsigned short*)(buf+offset);             /*red=tmp&0xf800;             green=(tmp&0x07e0);             tmp=tmp&0x001f;             tmp=red|green|tmp;             */             *(unsigned short*)(screen_ptr+j*ScreenWidth*2+2*i)=tmp;           /*  *(screen_ptr+j*ScreenWidth*2+2*i)=*(buf+offset);             *(screen_ptr+j*ScreenWidth*2+2*i+1)=*(buf+offset+1);*/                 }}/////////////void testbmp(){long i,j; short k=0x20;for(j=0;j<160;j++){ for(i=0;i<240;i++)     { *(screen_ptr+j*240*2+2*i)=0x00;       *(screen_ptr+j*240*2+2*i+1)=0x40;        }//  k=k+2;}}////////////////////////////*  void ShowBMP_16_color(char *filename,short x,short y){ BMPHEAD bmp_inf;  FILE *fp;  char Tmp,c,*buf,*buf1,*buf2;  int  width,height;  int bmptype=0;  long size,i,j,k;  fp=fopen(filename,"rb");  if(!fp) return;fseek(fp,2L,0);  fread(&bmp_inf.bfSize,1,52,fp);  if(bmp_inf.biBitCount!=16)        {         fclose(fp);         puts("Unsupported 16_color bitmap!\n");         printf("bitcolor=%d\n",bmp_inf.biBitCount);         return;        }s1: printf("%d* %d\n",bmp_inf.biWidth,bmp_inf.biHeight);  size=bmp_inf.biWidth*bmp_inf.biHeight*2;  buf=(char*)malloc(size);  fseek(fp,70L,0);  fread(buf,1,size,fp);  fclose(fp);  for(i=0;i<(bmp_inf.biHeight>>1);i++)    for(k=i*bmp_inf.biWidth*2,j=0;j<bmp_inf.biWidth*2;j++)       {         Tmp=buf[k+j];         buf[k+j]=buf[size-k-bmp_inf.biWidth*2+j];         buf[size-k-bmp_inf.biWidth*2+j]=Tmp;       }     color_555_draw_bmp(x,y, bmp_inf.biWidth,bmp_inf.biHeight,buf); // else//     color_565_draw_bmp(x,y,bmp_inf.biWidth,bmp_inf.biHeight,buf);    free(buf);}*//*void ShowBMP_24_color(char *filename,short x,short y) {BMPHEAD bmp_inf;  FILE *fp;  char Tmp,c,*buf,*buf1,*buf2;  int  width,height;  int bmptype=0;  long size,i,j,k,m;  short red,green,blue;  float redtmp,greentmp,bluetmp;  fp=fopen(filename,"rb");  if(!fp) return;  fseek(fp,2L,0);  fread(&bmp_inf.bfSize,1,52,fp);  if(bmp_inf.biBitCount!=24)        {         fclose(fp);         puts("Unsupported 24_color bitmap!\n");         printf("bitcolor=%d\n",bmp_inf.biBitCount);         return;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲va欧美va人人爽| 一区二区三区在线视频观看| 欧美日韩国产乱码电影| 99国产精品久久久| proumb性欧美在线观看| 91婷婷韩国欧美一区二区| 91免费视频大全| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 成人激情综合网站| 日本高清不卡视频| 欧美日韩一区二区欧美激情| 欧美日韩一二三| 精品少妇一区二区三区免费观看 | 久久97超碰色| 国产盗摄一区二区| 91麻豆国产福利在线观看| 色噜噜狠狠色综合欧洲selulu| 91在线一区二区三区| 欧美色网一区二区| 日韩三级高清在线| 久久欧美一区二区| 亚洲欧美偷拍另类a∨色屁股| 亚洲综合色自拍一区| 喷水一区二区三区| 成人动漫一区二区三区| 欧美日韩一区成人| 久久综合色综合88| 亚洲激情网站免费观看| 日本不卡在线视频| av一区二区不卡| 91精品国产日韩91久久久久久| 日韩精品一区二区三区swag | 欧美三级日韩三级国产三级| 日韩天堂在线观看| 亚洲天堂网中文字| 捆绑调教一区二区三区| 91麻豆免费看片| 精品久久一区二区三区| 伊人色综合久久天天人手人婷| 蜜臀久久99精品久久久久久9 | 亚洲va在线va天堂| 国产不卡视频一区二区三区| 欧美日韩一级视频| 亚洲欧美另类综合偷拍| 九色综合国产一区二区三区| 色先锋久久av资源部| 精品国产91洋老外米糕| 亚洲成人tv网| 99天天综合性| 国产午夜精品一区二区三区嫩草| 亚洲影院免费观看| 99久久精品国产一区| 精品国产污污免费网站入口 | 91精品国产入口在线| 亚洲精品一二三| 粉嫩嫩av羞羞动漫久久久| 欧美日本国产视频| |精品福利一区二区三区| 国产精品1区2区3区| 精品日韩99亚洲| 免费在线观看成人| 欧美一区二区三区视频在线 | 亚洲最大成人网4388xx| 国产91丝袜在线18| 2欧美一区二区三区在线观看视频| 亚洲成人免费在线| 欧美精品乱码久久久久久| 亚洲午夜在线视频| 欧美性猛交xxxx乱大交退制版| 亚洲精品日产精品乱码不卡| 成人av资源在线观看| 中文字幕乱码亚洲精品一区| 国产一区二区三区综合| 久久综合狠狠综合久久综合88| 日韩av中文在线观看| 91精品国产91久久久久久一区二区| 夜夜嗨av一区二区三区中文字幕| 91女神在线视频| 亚洲电影在线播放| 欧美一区二区视频观看视频| 毛片基地黄久久久久久天堂| 欧美一级免费大片| 精品一区二区三区的国产在线播放| 欧美成va人片在线观看| 精品在线你懂的| 日本一区二区在线不卡| 91香蕉视频污在线| 亚洲一区二区欧美日韩| 欧美日韩三级在线| 麻豆免费精品视频| 欧美高清在线精品一区| 91美女片黄在线观看91美女| 亚洲国产综合人成综合网站| 日韩欧美的一区二区| 国内外成人在线视频| 亚洲国产高清aⅴ视频| 色婷婷亚洲精品| 日本不卡的三区四区五区| 久久久久88色偷偷免费| 99国产精品久久久久久久久久久| 亚洲国产成人porn| 久久综合九色综合97_久久久| 不卡视频在线看| 视频一区视频二区在线观看| 久久久久久久综合狠狠综合| 99精品国产99久久久久久白柏| 天天影视涩香欲综合网| 久久精品一区四区| 欧美综合一区二区三区| 国产一区二区精品久久91| 亚洲精品成a人| 久久尤物电影视频在线观看| 色综合色狠狠综合色| 蜜臀国产一区二区三区在线播放| 国产精品毛片大码女人| 91精品国产高清一区二区三区| 福利一区二区在线观看| 免费在线看一区| 亚洲老妇xxxxxx| 国产人成亚洲第一网站在线播放 | 国产suv精品一区二区6| 亚洲成人一区在线| 亚洲视频在线一区观看| 国产亚洲综合在线| 欧美一级片免费看| 欧美日韩国产经典色站一区二区三区| 粉嫩av一区二区三区粉嫩| 免费的成人av| 亚洲国产日韩一区二区| 国产精品不卡一区| 久久综合精品国产一区二区三区| 在线观看91精品国产麻豆| 日本道精品一区二区三区| 国产白丝精品91爽爽久久| 老鸭窝一区二区久久精品| 青青草成人在线观看| 亚洲一区二区三区四区五区中文 | 欧美亚洲动漫另类| 本田岬高潮一区二区三区| 国产毛片精品国产一区二区三区| 天天综合天天做天天综合| 亚洲综合一二三区| 亚洲一区二区三区自拍| 亚洲视频一区二区免费在线观看| 欧美国产激情一区二区三区蜜月| 精品处破学生在线二十三| 6080国产精品一区二区| 欧美亚洲一区三区| 欧美亚洲综合在线| 欧美日韩中文国产| 欧美日韩专区在线| 欧美男男青年gay1069videost| 日本高清不卡aⅴ免费网站| 在线精品视频一区二区| 欧美日韩精品欧美日韩精品| 欧美亚洲自拍偷拍| 555www色欧美视频| 欧美v日韩v国产v| 亚洲精品一区二区精华| 久久免费美女视频| 中文字幕巨乱亚洲| 亚洲婷婷综合色高清在线| 一区二区三区在线观看视频 | 欧美一区二区视频网站| 日韩女优视频免费观看| 国产视频亚洲色图| 中文字幕二三区不卡| 亚洲精品欧美激情| 日韩电影免费在线看| 国产精品一品视频| 99re6这里只有精品视频在线观看| 色综合中文综合网| 精品无人码麻豆乱码1区2区 | 国产成人高清在线| 色婷婷久久久亚洲一区二区三区| 欧美日韩不卡一区二区| 精品日韩av一区二区| 中文字幕不卡在线| 亚洲综合自拍偷拍| 国产综合色产在线精品| 91污在线观看| 日韩视频在线你懂得| 国产精品国产三级国产专播品爱网| 亚洲三级免费观看| 免费久久精品视频| gogo大胆日本视频一区| 欧美日韩日本视频| 欧美激情一区二区三区蜜桃视频| 亚洲精品国产第一综合99久久 | 91视频www| 欧美电视剧在线看免费| 日韩美女啊v在线免费观看| 三级久久三级久久久| jizzjizzjizz欧美| 精品国产不卡一区二区三区| 夜色激情一区二区| 成人免费视频播放| 日韩欧美一级精品久久| 亚洲午夜精品在线| 成人h精品动漫一区二区三区|