• R/O
  • HTTP
  • SSH
  • HTTPS

svg-dll: コミット

SVG (SSTP-Viewer Ghost) 用プラグイン


コミットメタ情報

リビジョンb4870d3421a9d4c760423990bd2f76a2b02c959c (tree)
日時2003-04-17 06:54:30
作者naru <bottle@mika...>
コミッターnaru

ログメッセージ

SVG3 - using TPicture, looks fine

変更サマリ

差分

--- a/SVG.dpr
+++ b/SVG.dpr
@@ -8,7 +8,7 @@ library SVG;
88 {$R *.res}
99
1010 uses
11- Windows, Classes, SysUtils, Graphics, IniFiles, Dialogs, PngImage;
11+ Windows, Classes, SysUtils, Graphics, IniFiles, Dialogs, PngImage, jpeg;
1212
1313 const
1414 SurfaceWidth = 48;
@@ -142,7 +142,7 @@ begin
142142 if p > 0 then
143143 begin
144144 Key := Copy(Line, 1, p-1);
145- Val := Copy(Line, p+1, High(integer));
145+ Val := AnsiDequotedStr(Copy(Line, p+1, High(integer)), '"');
146146 end else begin
147147 Key := '';
148148 Val := Line;
@@ -156,8 +156,8 @@ var i, j, k, smin, smax, oldsur: integer;
156156 Key, Val, SurStr, PosStr, SakuraName: String;
157157 Dat, Sur2Pos: TStringList;
158158 begin
159- Sur2Pos := TStringList.Create;
160159 oldsur := -1;
160+ Sur2Pos := TStringList.Create;
161161 try
162162 for i := 1 to Lines.Count-1 do // 1行目は"SVG"の文字列
163163 begin
@@ -167,7 +167,7 @@ begin
167167 SakuraName := Val;
168168 if SakuraName <> Ghost then //別ゴーストの定義ファイルなのでパス
169169 begin
170- Ghost2File.Values[SakuraName] := Ghost; //次からのショートカット
170+ Ghost2File.Values[SakuraName] := FileName; //次からのショートカット
171171 Exit;
172172 end;
173173 end else if SameText(Key, 'surfacefile') then
@@ -198,15 +198,21 @@ begin
198198 for k := smin to smax do
199199 begin
200200 if PosStr = '*' then
201- Sur2Pos.Values[IntToStr(k)] := IntToStr(k)
202- else if PosStr = '-2' then
201+ begin
202+ Sur2Pos.Values[IntToStr(k)] := IntToStr(k);
203+ oldsur := k;
204+ end else if PosStr = '-2' then
205+ begin
203206 Sur2Pos.Values[IntToStr(k)] := '' // 定義解除
204- else if PosStr = '+' then
207+ end else if PosStr = '+' then
205208 begin
206209 Inc(oldsur);
207210 Sur2Pos.Values[IntToStr(k)] := IntToStr(oldsur);
208211 end else if StrToInt(PosStr) >= 0 then
212+ begin
209213 Sur2Pos.Values[IntToStr(k)] := PosStr;
214+ oldsur := StrToInt(PosStr);
215+ end;
210216 end;
211217 except
212218 Continue;
@@ -217,7 +223,7 @@ begin
217223 end;
218224 end;
219225 end;
220- ShowMessage(Sur2Pos.Text);
226+ // ShowMessage(Sur2Pos.Text);
221227 if SakuraName <> Ghost then //sakura=??の指定が抜けている定義ファイルの場合
222228 Result := ''
223229 else
@@ -238,6 +244,7 @@ function LoadDefinitionFile(Ghost: String;
238244 var Lines: TStringList;
239245 begin
240246 Lines := TStringList.Create;
247+ Lines.LoadFromFile(FileName);
241248 try
242249 if System.Pos('SVG3', Lines[0]) > 0 then
243250 Result := LoadDefinitionFileVer3(Ghost, Surface, Lines, FileName, Pos)
@@ -301,7 +308,8 @@ end;
301308 // Ghostで指定されるゴーストのSurface番のサーフィスイメージを実際に読み出す。
302309 // Hで指定されているビットマップに書き出すこと。
303310 function GetImage(Ghost: PChar; Surface: integer; H: HBITMAP): integer; cdecl;
304-var Bmp, Bmp2: TBitmap;
311+var Bmp: TBitmap;
312+ Pic: TPicture;
305313 BmpFile: String;
306314 Position, x, y, nCol: integer;
307315 begin
@@ -320,22 +328,20 @@ begin
320328 end;
321329 end;
322330
331+ OutputDebugString(PChar(BmpFile + ' : ' + IntToStr(Position)));
332+ //ShowMessage(BmpFile + ':' + IntToSTr(Position));
323333 Bmp := TBitmap.Create;
324334 try
325335 Bmp.Handle := H;
326- Bmp2 := TBitmap.Create;
336+ Pic := TPicture.Create;
327337 try
328- Bmp2.LoadFromFile(BmpFile);
329- nCol := Bmp2.Width div SurfaceWidth;
338+ Pic.LoadFromFile(BmpFile);
339+ nCol := Pic.Width div SurfaceWidth;
330340 x := SurfaceWidth * (Position mod nCol);
331341 y := SurfaceHeight * (Position div nCol);
332- Bmp.Canvas.CopyRect(
333- Rect(0, 0, Bmp.Width, Bmp.Height),
334- Bmp2.Canvas,
335- Rect(x, y, x+SurfaceWidth, y+SurfaceHeight)
336- );
342+ Bmp.Canvas.Draw(-x, -y, Pic.Graphic);
337343 finally
338- Bmp2.Free;
344+ Pic.Free;
339345 end;
340346 finally
341347 Bmp.ReleaseHandle;
旧リポジトリブラウザで表示