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

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

?? lsys3.cpp

?? ldraw_DOS游戲開發(fā)包
?? CPP
字號:
//////////////////////////////////////////////////////////////////////////
#include <lsys.h>
#include <dos.h>
#include <stdio.h>
#include <mem.h>
#include <malloc.h>
#include <conio.h>
#include <time.h>

void  lFillLine(short x,short y,short len,uchar color);
void  lGetLine(short x,short y,short len,char *p);
void  lScanLine(short x,short y,short len,char *p);
void  lScanLine2(short x,short y,short len,char *p);
void  lpixel(short x, short y, uchar color);
uchar lrpixel(short x, short y);

extern "C" void cdecl LModeXShow(char *vbuf,char *source,short len);
extern "C" void cdecl LVGApageX(short page);
extern "C" void cdecl LMemCpy2X(void *dest,void *source,unsigned long len);
static void lwrite_xline(short x,short y,char *sour,short len);
static void lfill_xline(short x,short y,char color,short len);
////////////////////////////////////////////////////////////////////////////
#define SC_INDEX      0x03c4
#define GC_INDEX      0x03ce

void  lFillLine(short x,short y,short len,uchar color)
{ uchar p1, p2; int lptr,loff; short l1, l2;
  
  if (y<0||x+len-1<0) return;    
  if (x<0) { len+=x; x=0; }
  if (x>=DrawLen||y>=DrawWid) return;
  if (x+len>DrawLen) len=DrawLen-x;
  lptr=DrawLb[y]+x;
  if (DrawBuf!=VideoBuf) memset(DrawBuf+lptr,color,len);
    else 
   { switch (GModeData.GMTYPE)
      { case SVGA_TYPE_256: p1=(lptr>>16); p2=(lptr+len-1)>>16;
                            LVGApageX(p1); loff=lptr&0xffff; 
                            if (p1==p2) memset(DrawBuf+loff,color,len);
                               else
                            { l1=0x10000-loff; l2=len-l1;
                              memset(DrawBuf+loff,color,l1);
                              LVGApageX(p2); memset(DrawBuf,color,l2);
                            } break;
        case SVGA_TYPE_X:   lfill_xline(x,y,color,len); break;
      }
   }
}
void  lGetLine(short x,short y,short len,char *p)
{ uchar p1, p2; int loff; short l1, l2, i;
  register int lptr;
  if (y<0||x+len-1<0) return;
  if (x<0) { len+=x; for (i=0;i<-x;i++,p++) *p=0; x=0; }
  if (x>=DrawLen||y>=DrawWid) return;
  if (x+len>DrawLen) len=DrawLen-x;
  lptr=DrawLb[y]+x;
  if (DrawBuf!=VideoBuf) memcpy(p,DrawBuf+lptr,len);
    else 
   { switch (GModeData.GMTYPE)
      { case SVGA_TYPE_256: p1=(lptr>>16); p2=(lptr+len-1)>>16;
                            LVGApageX(p1); loff=lptr&0xffff; 
                            if (p1==p2) memcpy(p,DrawBuf+loff,len);
                               else
                            { l1=0x10000-loff; l2=len-l1;
                              memcpy(p,DrawBuf+loff,l1); p+=l1;
                              LVGApageX(p2); memcpy(p,DrawBuf,l2);
                            } break;
        case SVGA_TYPE_X:   outp(GC_INDEX,4); 
                            for (i=0;i<len;i++,p++) {
                                outp(GC_INDEX+1,(x+i)&3);
                                *p=VideoBuf[(lptr+i)>>2];
                            } break;
      }
   }
}
void  lScanLine(short x,short y,short len,char *p)
{ uchar p1, p2; int loff; short l1, l2;
  register int lptr;
  if (y<0||x+len-1<0||len<=0) return;
  if (x<0) { len+=x; p-=x; x=0; }
  if (x>=DrawLen||y>=DrawWid) return;
  if (x+len>DrawLen) len=DrawLen-x;
  lptr=DrawLb[y]+x;
  if (DrawBuf!=VideoBuf) memcpy(DrawBuf+lptr,p,len);
    else 
   { switch (GModeData.GMTYPE)
      { case SVGA_TYPE_256: p1=(lptr>>16); p2=(lptr+len-1)>>16;
                            LVGApageX(p1); loff=lptr&0xffff; 
                            if (p1==p2) memcpy(DrawBuf+loff,p,len);
                               else
                            { l1=0x10000-loff; l2=len-l1;
                              memcpy(DrawBuf+loff,p,l1); p+=l1;
                              LVGApageX(p2); memcpy(DrawBuf,p,l2);
                            } break;
        case SVGA_TYPE_X:   lwrite_xline(x,y,p,len); break;
      }
   }
}

void  lScanLine2(short x,short y,short len,char *p)
{ uchar p1, p2; int loff; short l1, l2, i;
  register int lptr;
  if (y<0||x+len-1<0||len<=0) return;
  if (x<0) { len+=x; p-=x; x=0; }
  if (x>=DrawLen||y>=DrawWid) return;
  if (x+len>DrawLen) len=DrawLen-x;
  lptr=DrawLb[y]+x;
  if (DrawBuf!=VideoBuf) LMemCpy2X(DrawBuf+lptr,p,len);
    else 
   { switch (GModeData.GMTYPE)
      { case SVGA_TYPE_256: p1=(lptr>>16); p2=(lptr+len-1)>>16;
                            LVGApageX(p1); loff=lptr&0xffff; 
                            if (p1==p2) LMemCpy2X(DrawBuf+loff,p,len);
                               else
                            { l1=0x10000-loff; l2=len-l1;
                              LMemCpy2X(DrawBuf+loff,p,l1); p+=l1;
                              LVGApageX(p2); LMemCpy2X(DrawBuf,p,l2);
                            } break;
        case SVGA_TYPE_X:   outp(SC_INDEX,2); 
                            for (i=0;i<len;i++,p++) if (*p) {
                                outp(SC_INDEX+1, 1<< ((x+i)&3) );
                                VideoBuf[(lptr+i)>>2]=*p;
                            }   break;
      }
   }
}

void  lpixel(short x, short y, uchar color)
{ register int lptr;
  if (x<0||y<0||x>=DrawLen||y>=DrawWid) return;
  if (DrawBuf!=VideoBuf) DrawBuf[DrawLb[y]+x]=color;
   else
    { if (x>=DrawLen||y>=DrawWid) return;
      lptr=LineBase[y]+x;
      switch (GModeData.GMTYPE)
       { case SVGA_TYPE_256: LVGApageX(lptr>>16); 
                             VideoBuf[lptr&0xffff]=color;
                             break;
         case SVGA_TYPE_X  : outpw(0x3c4,(0x0100<<(x&3))|2);
                             VideoBuf[lptr>>2]=color;
                             break;
       }  
    }
}
uchar lrpixel(short x, short y)
{ register int lptr; uchar color;
  if (x<0||y<0||x>=DrawLen||y>=DrawWid) return 0;
  if (DrawBuf!=VideoBuf) color=DrawBuf[DrawLb[y]+x];
   else
    { if (x>=DrawLen||y>=DrawWid) return 0;
      lptr=LineBase[y]+x; 
      switch (GModeData.GMTYPE)
       { case SVGA_TYPE_256: LVGApageX(lptr>>16); 
                             color=VideoBuf[lptr&0xffff];
                             break;
         case SVGA_TYPE_X  : outpw(GC_INDEX,((x&3)<<8)|4);
                             color=VideoBuf[lptr>>2];
                             break;
       }   
    }
  return color;
}
static void lwrite_xline(short x,short y,char *sour,short len)
{ short i;
  char *dest=VideoBuf+y*(GModeData.LEN>>2);
  outp(SC_INDEX,2);  
  while ( (x&3) && (len>0) ) {
    outp(SC_INDEX+1,1<<(x&3));
    dest[x>>2]=*sour;
    x++; sour++; len--;
  }
  if ( len>=4 ) {
    i=len-(len&3);
    LModeXShow(dest+(x>>2),sour,i);
    x+=i; sour+=i;
  }  outp(SC_INDEX,2);  len&=3;
  while ( len>0 ) {
    outp(SC_INDEX+1,1<<(x&3));
    dest[x>>2]=*sour;
    sour++; x++; len--;
  }                
}
static void lfill_xline(short x,short y,char color,short len)
{ short i,j;
  char *dest=VideoBuf+y*(GModeData.LEN>>2);
  outp(SC_INDEX,2);  
  while ( (x&3) && (len>0) ) {
    outp(SC_INDEX+1,1<<(x&3));
    dest[x>>2]=color;
    x++; len--;
  }
  if ( len>=4 ) {
    i=len>>2;
    outp(SC_INDEX+1,0x0f);
    for (j=0;j<i;j++) dest[(x>>2)+j]=color;
    x+=(i<<2); 
  }  outp(SC_INDEX,2);  len&=3;
  while ( len>0 ) {
    outp(SC_INDEX+1,1<<(x&3));
    dest[x>>2]=color;
    x++; len--;
  }                
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一本大道av一区二区在线播放| 亚洲欧美日韩国产一区二区三区| 国产精品亚洲一区二区三区妖精 | 菠萝蜜视频在线观看一区| 亚洲国产日日夜夜| 国产婷婷精品av在线| 在线成人午夜影院| proumb性欧美在线观看| 九九国产精品视频| 午夜精品在线看| 亚洲精品视频在线| 久久久精品一品道一区| 日韩欧美亚洲国产另类| 欧美怡红院视频| 美女一区二区三区在线观看| 蜜桃久久精品一区二区| 亚洲精品成人在线| 国产精品欧美综合在线| 精品精品国产高清一毛片一天堂| 在线亚洲精品福利网址导航| 99国产精品久久| 成人午夜视频在线观看| 久草中文综合在线| 日韩和欧美一区二区| 亚洲国产成人精品视频| 亚洲欧洲综合另类在线| 中文字幕一区二区三区精华液 | 91一区在线观看| 国产91色综合久久免费分享| 九一久久久久久| 久久国内精品自在自线400部| 日韩经典一区二区| 亚洲综合一二三区| 亚洲一区二区三区中文字幕在线| 亚洲色图欧美偷拍| 国产精品久久久久精k8| 久久成人久久爱| 亚洲精品欧美二区三区中文字幕| 国产精品嫩草影院com| 亚洲精品伦理在线| 亚洲美女在线一区| 自拍偷在线精品自拍偷无码专区| 中文字幕在线一区二区三区| 中文字幕不卡在线| 国产精品国产精品国产专区不蜜| 国产日韩欧美精品一区| 中文字幕第一区二区| 国产欧美精品在线观看| 国产精品久久久久久久久免费丝袜| 国产精品久久毛片a| 国产精品国产精品国产专区不蜜 | 在线成人免费观看| 欧美肥妇毛茸茸| 日韩一区二区在线播放| 欧美不卡一区二区| 26uuu色噜噜精品一区二区| 久久久精品国产免费观看同学| 久久精品一级爱片| 中文字幕一区二区三区色视频| 亚洲乱码国产乱码精品精可以看 | 国产精品素人一区二区| 亚洲欧洲国产日韩| 亚洲蜜臀av乱码久久精品蜜桃| 亚洲一区精品在线| 日韩国产欧美三级| 国产精品一区2区| 色噜噜久久综合| 日韩一级片在线播放| 久久精子c满五个校花| 亚洲嫩草精品久久| 日韩电影在线免费观看| 国产另类ts人妖一区二区| 99久久99久久精品免费观看| 欧美群妇大交群中文字幕| 精品国产不卡一区二区三区| 中文字幕制服丝袜一区二区三区| 亚洲一区二三区| 精品一区二区影视| 91在线视频在线| 91精品国产欧美一区二区| 久久精品亚洲精品国产欧美kt∨ | 韩国精品在线观看| 99久久伊人精品| 欧美一区二区三区精品| 国产精品―色哟哟| 亚洲成av人片www| 国产成人av电影在线| 欧美视频精品在线| 老司机免费视频一区二区三区| 免费观看30秒视频久久| 大尺度一区二区| 欧美精品三级在线观看| 国产精品热久久久久夜色精品三区| 亚洲444eee在线观看| av亚洲精华国产精华| 日韩丝袜美女视频| 一区二区三区在线视频播放| 国产在线播放一区三区四| 精品婷婷伊人一区三区三| 欧美国产日韩a欧美在线观看| 日韩电影在线免费看| 一本大道av一区二区在线播放| 久久久久国产成人精品亚洲午夜| 亚洲一区在线观看视频| www.欧美日韩| 久久先锋影音av| 免费美女久久99| 欧美综合天天夜夜久久| 国产精品美女视频| 精品亚洲成a人| 日韩三级在线免费观看| 性感美女久久精品| 日本韩国欧美一区二区三区| 中文字幕精品一区二区精品绿巨人| 蜜桃av一区二区三区电影| 欧美三级视频在线播放| 亚洲精品日日夜夜| 99精品欧美一区| 国产精品国产三级国产aⅴ中文| 国产一区二区三区国产| 精品国产伦一区二区三区观看体验 | 自拍av一区二区三区| 国产91精品免费| 久久久亚洲国产美女国产盗摄| 麻豆精品视频在线观看视频| 欧美日本一区二区| 午夜久久久久久久久| 欧美日韩国产中文| 亚洲欧美一区二区不卡| 91一区二区在线| 亚洲视频免费观看| 91麻豆精品一区二区三区| 亚洲欧美在线观看| av不卡在线播放| 最新国产精品久久精品| caoporm超碰国产精品| 国产女人18水真多18精品一级做| 国产精品69毛片高清亚洲| 久久精品欧美日韩精品| 国产69精品一区二区亚洲孕妇| 久久精品亚洲精品国产欧美| 国产成人啪免费观看软件| 国产欧美日韩视频一区二区| 国产不卡免费视频| 中文字幕中文在线不卡住| 色婷婷综合久久久久中文 | 高清成人免费视频| 亚洲国产精品ⅴa在线观看| 波多野结衣一区二区三区| 亚洲免费在线看| 欧美日韩国产小视频在线观看| 亚洲国产综合人成综合网站| 欧美一级理论片| 国产成人av电影| 一区二区三区精品在线观看| 欧美日韩免费观看一区三区| 日韩成人免费看| 精品伦理精品一区| 成人av网站在线观看免费| 亚洲精品乱码久久久久久久久 | 国产成a人亚洲精品| 亚洲天堂2014| 欧美日韩国产综合久久| 激情国产一区二区| 国产精品久久精品日日| 精品1区2区3区| 乱一区二区av| 1000精品久久久久久久久| 欧美日韩一区视频| 国内一区二区在线| 亚洲丝袜精品丝袜在线| 在线电影院国产精品| 国产成人亚洲精品青草天美| 亚洲理论在线观看| 欧美videos中文字幕| 91在线精品一区二区三区| 视频一区在线播放| 国产欧美va欧美不卡在线| 欧美在线小视频| 国产一区二区女| 亚洲一区电影777| 久久久久亚洲蜜桃| 在线精品国精品国产尤物884a| 狠狠色狠狠色综合| 一区二区三区欧美日| 亚洲精品一区在线观看| 色菇凉天天综合网| 韩国av一区二区三区在线观看| 亚洲综合丝袜美腿| 国产清纯美女被跳蛋高潮一区二区久久w| 色婷婷av一区二区三区gif| 激情五月婷婷综合网| 亚洲一区二区三区四区五区中文| 久久日一线二线三线suv| 欧美视频一区二区三区在线观看| 国产一区二区三区免费| 无码av免费一区二区三区试看| 国产精品三级电影| 久久理论电影网| 欧美一级高清大全免费观看|