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

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

?? cliutil.pas.svn-base

?? Asphyre的傳奇WIL,可以用Asphyre來寫傳奇了
?? SVN-BASE
?? 第 1 頁 / 共 3 頁
字號:
unit cliUtil;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  DXDraws, DXClass, WIL, {Grobal2,} StdCtrls, DirectX, DIB, HUtil32,
  wmutil; //, bmputil;


const
   MAXGRADE = 64;
   DIVUNIT = 4;


type
  TColorEffect = (ceNone, ceGrayScale, ceBright, ceBlack, ceWhite, ceRed, ceGreen, ceBlue, ceYellow, ceFuchsia);

  TNearestIndexHeader = record
    Title: string[30];
    IndexCount: integer;
    desc: array[0..10] of byte;
  end;

function  HasMMX: Boolean;
procedure BuildColorLevels (ctable: TRGBQuads);
procedure BuildNearestIndex (ctable: TRGBQuads);
procedure SaveNearestIndex (flname: string);
function  LoadNearestIndex (flname: string): Boolean;
procedure DrawFog (ssuf: TDirectDrawSurface; fogmask: PByte; fogwidth: integer);
procedure DrawFog2 (ssuf: TDirectDrawSurface; fogmask: PByte; fogwidth: integer);
procedure MakeDark (ssuf: TDirectDrawSurface; darklevel: integer);
procedure FogCopy (PSource: Pbyte; ssx, ssy, swidth, sheight: integer;
                   PDest: Pbyte; ddx, ddy, dwidth, dheight, maxfog: integer);
procedure DrawBlend (dsuf: TDirectDrawSurface; x, y: integer; ssuf: TDirectDrawSurface; blendmode: integer);
procedure DrawBlendEx (dsuf: TDirectDrawSurface; x, y: integer; ssuf: TDirectDrawSurface; ssufleft, ssuftop, ssufwidth, ssufheight, blendmode: integer);
procedure   SpriteCopy(DestX, DestY : integer;
                       SourX, SourY : integer;
                       Size         : TPoint;
                       Sour, Dest   : TDirectDrawSurface);
procedure MMXBlt (ssuf, dsuf: TDirectDrawSurface);
procedure DrawEffect (x, y, width, height: integer; ssuf: TDirectDrawSurface; eff: TColorEffect);

var
   DarkLevel : integer;


implementation

var
  RgbIndexTable: array[0..MAXGRADE-1, 0..MAXGRADE-1, 0..MAXGRADE-1] of byte;
  Color256Mix: array[0..255, 0..255] of byte;
  Color256Anti: array[0..255, 0..255] of byte;
  HeavyDarkColorLevel: array[0..255, 0..255] of byte;
  LightDarkColorLevel: array[0..255, 0..255] of byte;
  DengunColorLevel: array[0..255, 0..255] of byte;
  BrightColorLevel: array[0..255] of byte;
  GrayScaleLevel: array[0..255] of byte;
  RedishColorLevel: array[0..255] of byte;
  BlackColorLevel: array[0..255] of byte;
  WhiteColorLevel: array[0..255] of byte;
  GreenColorLevel: array[0..255] of byte;
  YellowColorLevel: array[0..255] of byte;
  BlueColorLevel: array[0..255] of byte;
  FuchsiaColorLevel: array[0..255] of byte;


function  HasMMX: Boolean;
var
   n: byte;
begin
   asm
      mov   eax, 1
      db $0F,$A2               /// CPUID
      test  edx, 00800000H
      mov   n, 1
      jnz   @@Found
      mov   n, 0
   @@Found:
   end;
   if n = 1 then Result := TRUE
   else Result := FALSE;
end;

procedure BuildNearestIndex (ctable: TRGBQuads);
var
   r, g, b, rr, gg, bb, color, MinDif, ColDif: Integer;
   MatchColor: Byte;
   pal0, pal1, pal2: TRGBQuad;

   procedure BuildMix;
   var
      i, j, n: integer;
   begin
      for i:=0 to 255 do begin
         pal0 := ctable[i];
         for j:=0 to 255 do begin
            pal1 := ctable[j];
            pal1.rgbRed := pal0.rgbRed div 2 + pal1.rgbRed div 2;
            pal1.rgbGreen := pal0.rgbGreen div 2 + pal1.rgbGreen div 2;
            pal1.rgbBlue := pal0.rgbBlue div 2 + pal1.rgbBlue div 2;
            MinDif := 768;
            MatchColor := 0;
            for n:=0 to 255 do begin
               pal2 := ctable[n];
               ColDif := Abs(pal2.rgbRed - pal1.rgbRed) +
                         Abs(pal2.rgbGreen - pal1.rgbGreen) +
                         Abs(pal2.rgbBlue - pal1.rgbBlue);
               if ColDif < MinDif then begin
                  MinDif := ColDif;
                  MatchColor := n;
               end;
            end;
            Color256Mix[i, j] := MatchColor;
         end;
      end;
   end;
   procedure BuildAnti;
   var
      i, j, n, ever: integer;
   begin
      for i:=0 to 255 do begin
         pal0 := ctable[i];
         for j:=0 to 255 do begin
            pal1 := ctable[j];
            ever := _MAX(pal0.rgbRed, pal0.rgbGreen);
            ever := _MAX(ever, pal0.rgbBlue);
//            pal1.rgbRed := _MIN(255, Round (pal0.rgbRed  + (255-ever)/255 * pal1.rgbRed));
//            pal1.rgbGreen := _MIN(255, Round (pal0.rgbGreen  + (255-ever)/255 * pal1.rgbGreen));
//         pal1.rgbBlue := _MIN(255, Round (pal0.rgbBlue  + (255-ever)/255 * pal1.rgbBlue));
            pal1.rgbRed := _MIN(255, Round (pal0.rgbRed  + (255-pal0.rgbRed)/255 * pal1.rgbRed));
            pal1.rgbGreen := _MIN(255, Round (pal0.rgbGreen  + (255-pal0.rgbGreen)/255 * pal1.rgbGreen));
            pal1.rgbBlue := _MIN(255, Round (pal0.rgbBlue  + (255-pal0.rgbBlue)/255 * pal1.rgbBlue));
            MinDif := 768;
            MatchColor := 0;
            for n:=0 to 255 do begin
               pal2 := ctable[n];
               ColDif := Abs(pal2.rgbRed - pal1.rgbRed) +
                         Abs(pal2.rgbGreen - pal1.rgbGreen) +
                         Abs(pal2.rgbBlue - pal1.rgbBlue);
               if ColDif < MinDif then begin
                  MinDif := ColDif;
                  MatchColor := n;
               end;
            end;
            Color256Anti[i, j] := MatchColor;
         end;
      end;
   end;
   procedure BuildColorLevels;
   var
      n, i, j, rr, gg, bb: integer;
   begin
      for n:=0 to 30 do begin
         for i:=0 to 255 do begin
            pal1 := ctable[i];
            rr := _MIN(Round(pal1.rgbRed * (n+1) / 31) - 5, 255);      //(n + (n-1)*3) / 121);
            gg := _MIN(Round(pal1.rgbGreen * (n+1) / 31) - 5, 255);  //(n + (n-1)*3) / 121);
            bb := _MIN(Round(pal1.rgbBlue * (n+1) / 31) - 5, 255);    //(n + (n-1)*3) / 121);
            pal1.rgbRed := _MAX(0, rr);
            pal1.rgbGreen := _MAX(0, gg);
            pal1.rgbBlue := _MAX(0, bb);
            MinDif := 768;
            MatchColor := 0;
            for j:=0 to 255 do begin
               pal2 := ctable[j];
               ColDif := Abs(pal2.rgbRed - pal1.rgbRed) +
                         Abs(pal2.rgbGreen - pal1.rgbGreen) +
                         Abs(pal2.rgbBlue - pal1.rgbBlue);
               if ColDif < MinDif then begin
                  MinDif := ColDif;
                  MatchColor := j;
               end;
            end;
            HeavyDarkColorLevel[n, i] := MatchColor;
         end;
      end;
      for n:=0 to 30 do begin
         for i:=0 to 255 do begin
            pal1 := ctable[i];
            pal1.rgbRed := _MIN(Round(pal1.rgbRed * (n*3+47) / 140), 255);
            pal1.rgbGreen := _MIN(Round(pal1.rgbGreen * (n*3+47) / 140), 255);
            pal1.rgbBlue := _MIN(Round(pal1.rgbBlue * (n*3+47) / 140), 255);
            MinDif := 768;
            MatchColor := 0;
            for j:=0 to 255 do begin
               pal2 := ctable[j];
               ColDif := Abs(pal2.rgbRed - pal1.rgbRed) +
                         Abs(pal2.rgbGreen - pal1.rgbGreen) +
                         Abs(pal2.rgbBlue - pal1.rgbBlue);
               if ColDif < MinDif then begin
                  MinDif := ColDif;
                  MatchColor := j;
               end;
            end;
            LightDarkColorLevel[n, i] := MatchColor;
         end;
      end;
      for n:=0 to 30 do begin
         for i:=0 to 255 do begin
            pal1 := ctable[i];
            pal1.rgbRed := _MIN(Round(pal1.rgbRed * (n*3+120) / 214), 255);
            pal1.rgbGreen := _MIN(Round(pal1.rgbGreen * (n*3+120) / 214), 255);
            pal1.rgbBlue := _MIN(Round(pal1.rgbBlue * (n*3+120) / 214), 255);
            MinDif := 768;
            MatchColor := 0;
            for j:=0 to 255 do begin
               pal2 := ctable[j];
               ColDif := Abs(pal2.rgbRed - pal1.rgbRed) +
                         Abs(pal2.rgbGreen - pal1.rgbGreen) +
                         Abs(pal2.rgbBlue - pal1.rgbBlue);
               if ColDif < MinDif then begin
                  MinDif := ColDif;
                  MatchColor := j;
               end;
            end;
            DengunColorLevel[n, i] := MatchColor;
         end;
      end;

      {for i:=0 to 255 do begin
         HeavyDarkColorLevel[0, i] := HeavyDarkColorLevel[1, i];
         LightDarkColorLevel[0, i] := LightDarkColorLevel[1, i];
         DengunColorLevel[0, i] := DengunColorLevel[1, i];
      end;}
      for n:=31 to 255 do
         for i:=0 to 255 do begin
            HeavyDarkColorLevel[n, i] := HeavyDarkColorLevel[30, i];
            LightDarkColorLevel[n, i] := LightDarkColorLevel[30, i];
            DengunColorLevel[n, i] := DengunColorLevel[30, i];
         end;

   end;
begin
   BuildMix;
   BuildAnti;
   BuildColorLevels;
end;

procedure BuildColorLevels (ctable: TRGBQuads);
var
   n, i, j, MinDif, ColDif: integer;
   pal1, pal2: TRGBQuad;
   MatchColor: byte;
begin
   BrightColorLevel[0] := 0;
   for i:=1 to 255 do begin
      pal1 := ctable[i];
      pal1.rgbRed := _MIN(Round(pal1.rgbRed * 1.3), 255);
      pal1.rgbGreen := _MIN(Round(pal1.rgbGreen * 1.3), 255);
      pal1.rgbBlue := _MIN(Round(pal1.rgbBlue * 1.3), 255);
      MinDif := 768;
      MatchColor := 0;
      for j:=1 to 255 do begin
         pal2 := ctable[j];
         ColDif := Abs(pal2.rgbRed - pal1.rgbRed) +
                   Abs(pal2.rgbGreen - pal1.rgbGreen) +
                   Abs(pal2.rgbBlue - pal1.rgbBlue);
         if ColDif < MinDif then begin
            MinDif := ColDif;
            MatchColor := j;
         end;
      end;
      BrightColorLevel[i] := MatchColor;
   end;
   GrayScaleLevel[0] := 0;
   for i:=1 to 255 do begin
      pal1 := ctable[i];
      n := (pal1.rgbRed + pal1.rgbGreen + pal1.rgbBlue) div 3;
      pal1.rgbRed := n; //Round(pal1.rgbRed * (n*3+25) / 118);
      pal1.rgbGreen := n; //Round(pal1.rgbGreen * (n*3+25) / 118);
      pal1.rgbBlue := n; //Round(pal1.rgbBlue * (n*3+25) / 118);
      MinDif := 768;
      MatchColor := 0;
      for j:=1 to 255 do begin
         pal2 := ctable[j];
         ColDif := Abs(pal2.rgbRed - pal1.rgbRed) +
                   Abs(pal2.rgbGreen - pal1.rgbGreen) +
                   Abs(pal2.rgbBlue - pal1.rgbBlue);
         if ColDif < MinDif then begin
            MinDif := ColDif;
            MatchColor := j;
         end;
      end;
      GrayScaleLevel[i] := MatchColor;
   end;
   BlackColorLevel[0] := 0;
   for i:=1 to 255 do begin
      pal1 := ctable[i];
      n := Round ((pal1.rgbRed + pal1.rgbGreen + pal1.rgbBlue) / 3 * 0.6);
      pal1.rgbRed := n; //_MAX(8, Round(pal1.rgbRed * 0.7));
      pal1.rgbGreen := n; //_MAX(8, Round(pal1.rgbGreen * 0.7));
      pal1.rgbBlue := n; //_MAX(8, Round(pal1.rgbBlue * 0.7));
      MinDif := 768;
      MatchColor := 0;
      for j:=1 to 255 do begin
         pal2 := ctable[j];
         ColDif := Abs(pal2.rgbRed - pal1.rgbRed) +
                   Abs(pal2.rgbGreen - pal1.rgbGreen) +
                   Abs(pal2.rgbBlue - pal1.rgbBlue);
         if ColDif < MinDif then begin
            MinDif := ColDif;
            MatchColor := j;
         end;
      end;
      BlackColorLevel[i] := MatchColor;
   end;
   WhiteColorLevel[0] := 0;
   for i:=1 to 255 do begin
      pal1 := ctable[i];
      n := _MIN (Round ((pal1.rgbRed + pal1.rgbGreen + pal1.rgbBlue) / 3 * 1.6), 255);
      pal1.rgbRed := n; //_MAX(8, Round(pal1.rgbRed * 0.7));
      pal1.rgbGreen := n; //_MAX(8, Round(pal1.rgbGreen * 0.7));
      pal1.rgbBlue := n; //_MAX(8, Round(pal1.rgbBlue * 0.7));
      MinDif := 768;
      MatchColor := 0;
      for j:=1 to 255 do begin
         pal2 := ctable[j];
         ColDif := Abs(pal2.rgbRed - pal1.rgbRed) +
                   Abs(pal2.rgbGreen - pal1.rgbGreen) +
                   Abs(pal2.rgbBlue - pal1.rgbBlue);
         if ColDif < MinDif then begin
            MinDif := ColDif;
            MatchColor := j;
         end;
      end;
      WhiteColorLevel[i] := MatchColor;
   end;
   RedishColorLevel[0] := 0;
   for i:=1 to 255 do begin
      pal1 := ctable[i];
      n := (pal1.rgbRed + pal1.rgbGreen + pal1.rgbBlue) div 3;
      pal1.rgbRed := n;
      pal1.rgbGreen := 0;
      pal1.rgbBlue := 0;
      MinDif := 768;
      MatchColor := 0;
      for j:=1 to 255 do begin
         pal2 := ctable[j];
         ColDif := Abs(pal2.rgbRed - pal1.rgbRed) +
                   Abs(pal2.rgbGreen - pal1.rgbGreen) +
                   Abs(pal2.rgbBlue - pal1.rgbBlue);
         if ColDif < MinDif then begin
            MinDif := ColDif;
            MatchColor := j;
         end;
      end;
      RedishColorLevel[i] := MatchColor;
   end;
   GreenColorLevel[0] := 0;
   for i:=1 to 255 do begin
      pal1 := ctable[i];
      //n := (pal1.rgbRed + pal1.rgbGreen + pal1.rgbBlue) div 5;
      //pal1.rgbRed := 0;//_MIN(Round(n / 2), 255);
      //pal1.rgbGreen := _MIN(Round(n), 255);
      //pal1.rgbBlue := 0;//_MIN(Round(n / 2), 255);
      n := (pal1.rgbRed + pal1.rgbGreen + pal1.rgbBlue) div 3;
      pal1.rgbRed := 0;
      pal1.rgbGreen := n;
      pal1.rgbBlue := 0;
      //pal1.rgbRed := _MIN(Round (pal1.rgbRed / 3), 255);
      //pal1.rgbGreen := _MIN(Round (pal1.rgbGreen * 1.5), 255);
      //pal1.rgbBlue := _MIN(Round (pal1.rgbBlue / 3), 255);
      MinDif := 768;
      MatchColor := 0;
      for j:=1 to 255 do begin
         pal2 := ctable[j];
         ColDif := Abs(pal2.rgbRed - pal1.rgbRed) +
                   Abs(pal2.rgbGreen - pal1.rgbGreen) +
                   Abs(pal2.rgbBlue - pal1.rgbBlue);
         if ColDif < MinDif then begin
            MinDif := ColDif;
            MatchColor := j;
         end;
      end;
      GreenColorLevel[i] := MatchColor;
   end;
   YellowColorLevel[0] := 0;
   for i:=1 to 255 do begin
      pal1 := ctable[i];
      n := (pal1.rgbRed + pal1.rgbGreen + pal1.rgbBlue) div 3;
      pal1.rgbRed := n;
      pal1.rgbGreen := n;
      pal1.rgbBlue := 0;
      MinDif := 768;
      MatchColor := 0;
      for j:=1 to 255 do begin
         pal2 := ctable[j];
         ColDif := Abs(pal2.rgbRed - pal1.rgbRed) +
                   Abs(pal2.rgbGreen - pal1.rgbGreen) +
                   Abs(pal2.rgbBlue - pal1.rgbBlue);
         if ColDif < MinDif then begin
            MinDif := ColDif;
            MatchColor := j;
         end;
      end;
      YellowColorLevel[i] := MatchColor;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美性色综合网| 亚洲成人第一页| 日韩三级视频在线看| 色狠狠一区二区三区香蕉| 成人午夜在线视频| 国产69精品久久久久777| 国产成都精品91一区二区三| 国产成人a级片| av亚洲精华国产精华精| 91日韩在线专区| 欧美日韩五月天| 欧美一级高清片在线观看| 精品国产乱码久久久久久浪潮| 欧美不卡一区二区三区四区| 亚洲精品一区二区三区福利| 中文字幕巨乱亚洲| 亚洲色图一区二区| 日韩电影在线观看网站| 国产露脸91国语对白| av资源网一区| 91精品国产综合久久国产大片| 久久久久久影视| 国产精品免费免费| 偷拍亚洲欧洲综合| 国产成人免费9x9x人网站视频| 91老师片黄在线观看| 3atv一区二区三区| 国产精品视频一区二区三区不卡| 亚洲午夜日本在线观看| 国产老妇另类xxxxx| 欧洲精品一区二区| 久久精品一区八戒影视| 亚洲一区二区三区自拍| 国模一区二区三区白浆| 欧美在线观看一区| 欧美国产禁国产网站cc| 五月激情综合网| 不卡一区二区在线| 日韩欧美不卡一区| 亚洲综合色区另类av| 国产一区二区三区观看| 欧美日韩一区二区在线视频| 久久久精品蜜桃| 美国十次综合导航| 欧美在线观看视频在线| 中文字幕 久热精品 视频在线| 污片在线观看一区二区| 色天使久久综合网天天| 国产日产欧美一区二区三区| 日韩电影在线观看电影| 色综合色狠狠综合色| 欧美经典一区二区| 极品美女销魂一区二区三区免费 | 亚洲欧美日韩国产一区二区三区 | 97久久精品人人爽人人爽蜜臀| 欧美一级二级在线观看| 亚洲一区电影777| 97精品国产97久久久久久久久久久久| 欧美精品一区二区三区蜜桃视频| 亚洲一区二区三区四区不卡| 91视频一区二区三区| 国产精品天天看| 国产.欧美.日韩| 国产免费久久精品| 国产精品亚洲人在线观看| 欧美xxxx在线观看| 精品综合久久久久久8888| 欧美日韩成人激情| 偷拍日韩校园综合在线| 欧美美女网站色| 成人性生交大片| 国产精品私房写真福利视频| 国产精品99久久久久久久女警| 精品国精品国产| 国产一区二区久久| 欧美国产欧美综合| 成人美女在线观看| 最新欧美精品一区二区三区| 91蜜桃免费观看视频| 亚洲乱码国产乱码精品精的特点| 91在线视频免费91| 亚洲成人动漫精品| 欧美成人一级视频| 国产不卡一区视频| 亚洲精品国产视频| 在线成人av网站| 免费观看成人av| 久久精品这里都是精品| 北岛玲一区二区三区四区| 亚洲视频免费看| 欧美精品一级二级三级| 麻豆成人免费电影| 亚洲国产激情av| 欧美图片一区二区三区| 免费美女久久99| 中文字幕第一区二区| 在线亚洲一区观看| 日韩av网站免费在线| 精品国一区二区三区| 91色综合久久久久婷婷| 午夜成人在线视频| 国产三区在线成人av| 欧美中文字幕一区二区三区亚洲| 日本v片在线高清不卡在线观看| 久久精品综合网| 欧美日韩一区小说| 国产成人免费视| 日本大胆欧美人术艺术动态 | 99re8在线精品视频免费播放| 午夜视频一区二区| 久久久久99精品国产片| 欧美亚一区二区| 国产一区二区三区四| 亚洲国产视频网站| 国产欧美日韩不卡| 欧美一区日韩一区| 91免费看视频| 国产精品99久久久| 日本va欧美va精品发布| 亚洲美女少妇撒尿| 久久女同精品一区二区| 欧美高清精品3d| 一本一道综合狠狠老| 国产精选一区二区三区| 五月婷婷综合在线| 亚洲三级小视频| 日本一区免费视频| 欧美本精品男人aⅴ天堂| 在线观看国产日韩| 日韩精品影音先锋| 欧美美女网站色| 91成人免费电影| 91极品视觉盛宴| 成人一区在线观看| 国产高清一区日本| 精品亚洲国产成人av制服丝袜| 日韩国产一区二| 午夜久久久影院| 亚洲成人在线免费| 亚洲精品成a人| 一区二区在线观看视频 | 欧美日韩视频在线观看一区二区三区| 成人av在线看| 不卡一区二区在线| 99麻豆久久久国产精品免费 | www.av精品| 成人aaaa免费全部观看| 国产成人超碰人人澡人人澡| 国产精品综合av一区二区国产馆| 六月丁香婷婷久久| 久久成人18免费观看| 久久精品国产77777蜜臀| 美女在线视频一区| 九九热在线视频观看这里只有精品| 日本欧美在线看| 另类小说一区二区三区| 狠狠色丁香久久婷婷综| 国产成人aaaa| 一本久久综合亚洲鲁鲁五月天 | 亚洲免费观看高清完整| 国产精品美女久久久久久 | 精品美女在线观看| 精品国产乱子伦一区| 久久噜噜亚洲综合| 中文字幕免费不卡| 亚洲男人电影天堂| 日韩制服丝袜av| 国精品**一区二区三区在线蜜桃| 国产高清不卡二三区| 色综合色狠狠综合色| 欧美精品视频www在线观看| 欧美大肚乱孕交hd孕妇| 国产欧美日韩视频在线观看| 亚洲色欲色欲www| 舔着乳尖日韩一区| 国内国产精品久久| 色就色 综合激情| 欧美成人a在线| 亚洲欧洲成人自拍| 日韩av网站在线观看| 高清日韩电视剧大全免费| 91福利在线看| 亚洲欧洲一区二区三区| 亚洲地区一二三色| 日本欧美大码aⅴ在线播放| 成人精品高清在线| 91精品福利在线一区二区三区 | 一本大道久久a久久综合| 欧美巨大另类极品videosbest| 精品国产成人系列| 亚洲一区二区在线免费观看视频| 精品亚洲成a人在线观看| 日本精品视频一区二区| 久久综合九色综合欧美就去吻 | 美女视频黄频大全不卡视频在线播放 | 成人免费黄色大片| 欧美人狂配大交3d怪物一区| 国产精品情趣视频| 激情文学综合插| 欧美电影在线免费观看|