equal
deleted
inserted
replaced
126 PNG_FILTER_TYPE_DEFAULT = 0; |
126 PNG_FILTER_TYPE_DEFAULT = 0; |
127 |
127 |
128 |
128 |
129 |
129 |
130 procedure writefunc(png: png_structp; buffer: png_bytep; size: QWord); cdecl; |
130 procedure writefunc(png: png_structp; buffer: png_bytep; size: QWord); cdecl; |
131 var |
131 begin |
132 p: Pbyte; |
|
133 i: Integer; |
|
134 begin |
|
135 //TStream(png_get_io_ptr(png)).Write(buffer^, size); |
|
136 BlockWrite(DumpFile, buffer^, size); |
132 BlockWrite(DumpFile, buffer^, size); |
137 { p:= PByte(buffer^); |
|
138 for i:=0 to pred(size) do |
|
139 begin |
|
140 Write(DumpFile, p^); |
|
141 inc(p); |
|
142 end;} |
|
143 end; |
133 end; |
144 |
134 |
145 function IntToStrPad(i: Integer): string; |
135 function IntToStrPad(i: Integer): string; |
146 var |
136 var |
147 s: string; |
137 s: string; |
395 randr, randg, randb: Single; |
385 randr, randg, randb: Single; |
396 randh: Single; |
386 randh: Single; |
397 begin |
387 begin |
398 sz:= surf^.w * surf^.h; |
388 sz:= surf^.w * surf^.h; |
399 p:= surf^.pixels; |
389 p:= surf^.pixels; |
400 //randr:=Random; |
|
401 //randg:=Random; |
|
402 //randb:=1 - min(randr, randg); |
|
403 randh:=Random; |
390 randh:=Random; |
404 HSVToRGB(randh, 1.0, 1.0, randr, randg, randb); |
391 HSVToRGB(randh, 1.0, 1.0, randr, randg, randb); |
405 for i:=0 to pred(sz) do |
392 for i:=0 to pred(sz) do |
406 begin |
393 begin |
407 a:= p[3]; |
394 a:= p[3]; |
420 p[3]:=255; |
407 p[3]:=255; |
421 inc(p, 4); |
408 inc(p, 4); |
422 end; |
409 end; |
423 end; |
410 end; |
424 |
411 |
|
412 procedure DebugChecker(surf: PSDL_Surface); |
|
413 var |
|
414 sz: Integer; |
|
415 p, q: PByte; |
|
416 randr, randg, randb: Single; |
|
417 randrb, randgb, randbb: Byte; |
|
418 randh: Single; |
|
419 x, y: Integer; |
|
420 begin |
|
421 sz:= surf^.w * surf^.h; |
|
422 p:= surf^.pixels; |
|
423 randh:=Random; |
|
424 HSVToRGB(randh, 1.0, 1.0, randr, randg, randb); |
|
425 randrb:= Trunc(255*randr); |
|
426 randgb:= Trunc(255*randg); |
|
427 randbb:= Trunc(255*randb); |
|
428 |
|
429 p:= surf^.pixels; |
|
430 for y:=0 to Pred(surf^.h) do |
|
431 begin |
|
432 q:= p; |
|
433 for x:=0 to Pred(surf^.w) do |
|
434 begin |
|
435 if ((x xor y) and 1) = 1 then |
|
436 begin |
|
437 q[0]:= randrb; |
|
438 q[1]:= randgb; |
|
439 q[2]:= randbb; |
|
440 q[3]:= 255; |
|
441 end else |
|
442 begin |
|
443 q[0]:= 0; |
|
444 q[1]:= 0; |
|
445 q[2]:= 0; |
|
446 q[3]:= 255; |
|
447 end; |
|
448 inc(q, 4); |
|
449 end; |
|
450 inc(p, surf^.pitch); |
|
451 end; |
|
452 |
|
453 end; |
|
454 |
|
455 |
425 procedure Upload(var info: AtlasInfo; sprite: Rectangle; surf: PSDL_Surface); |
456 procedure Upload(var info: AtlasInfo; sprite: Rectangle; surf: PSDL_Surface); |
426 var |
457 var |
427 sp: PTexture; |
458 sp: PTexture; |
428 i, j, stride: Integer; |
459 i, j, stride: Integer; |
429 scanline: PByte; |
460 scanline: PByte; |
440 SDLTry(SDL_LockSurface(surf) >= 0, true); |
471 SDLTry(SDL_LockSurface(surf) >= 0, true); |
441 |
472 |
442 //if GrayScale then |
473 //if GrayScale then |
443 // Surface2GrayScale(surf); |
474 // Surface2GrayScale(surf); |
444 //DebugColorize(surf); |
475 //DebugColorize(surf); |
|
476 DebugChecker(surf); |
445 |
477 |
446 glBindTexture(GL_TEXTURE_2D, info.TextureInfo.id); |
478 glBindTexture(GL_TEXTURE_2D, info.TextureInfo.id); |
447 if (sp^.isRotated) then |
479 if (sp^.isRotated) then |
448 begin |
480 begin |
449 scanline:= surf^.pixels; |
481 scanline:= surf^.pixels; |