使用SDL2从表面/纹理中读取像素的RGBA值吗?

问题描述 投票:-1回答:1

如何在Free Pascal中使用SDL2从表面或纹理读取给定坐标x和y处特定像素的RGBA值?

pascal sdl-2
1个回答
0
投票
var
    spriteSheetTexture: PSDL_texture;
    pixel: ^UInt8;
    pixelCnt: byte;
    SDLRect: TSDL_rect;

spriteSheetSurface:=SDL_loadBMP(PChar('spr4\sprite sheets\spr'+fVal(spriteSheetNum)+'.spr'));
SDLRect.x:=0; SDLRect.y:=0; SDLRect.w:=1; SDLRect.h:=1;
SDL_renderReadPixels(SDLRenderer, @SDLRect, 0, pixel, spriteSheetSurface^.pitch);
for pixelCnt:=0 to 3 do
    writeLn(pixel[pixelCnt]);

实际上,它似乎不起作用。无论我读取哪个像素,pixel都会为每个索引返回零。

© www.soinside.com 2019 - 2024. All rights reserved.