sdlxReadSurfacePixelFloat function surface
Retrieves a single pixel from a surface as RGBA in the sRGB colorspace.
This function prioritizes correctness over speed: it is suitable for unit tests, but is not intended for use in a game engine.
\param surface the surface to read. \param x the horizontal coordinate, 0 <= x < width. \param y the vertical coordinate, 0 <= y < height. \param r a pointer filled in with the red channel, normally in the range 0-1, or NULL to ignore this channel. \param g a pointer filled in with the green channel, normally in the range 0-1, or NULL to ignore this channel. \param b a pointer filled in with the blue channel, normally in the range 0-1, or NULL to ignore this channel. \param a a pointer filled in with the alpha channel, normally in the range 0-1, or NULL to ignore this channel. \returns true on success or false on failure; call SDL_GetError() for more information.
\threadsafety This function can be called on different threads with different surfaces.
\since This function is available since SDL 3.2.0.
extern SDL_DECLSPEC bool SDLCALL SDL_ReadSurfacePixelFloat(SDL_Surface *surface, int x, int y, float *r, float *g, float *b, float *a)
See also:
Implementation
SdlxFColor? sdlxReadSurfacePixelFloat(
Pointer<SdlSurface> surface,
SdlxPoint point,
) => ffi.using((arena) {
final rPointer = arena<Float>();
final gPointer = arena<Float>();
final bPointer = arena<Float>();
final aPointer = arena<Float>();
final result = sdlReadSurfacePixelFloat(
surface,
point.x,
point.y,
rPointer,
gPointer,
bPointer,
aPointer,
);
if (!result) {
return null;
}
return SdlxFColor(
rPointer.value,
gPointer.value,
bPointer.value,
aPointer.value,
);
});