1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 05:37:34 +00:00

LibSoftGPU: Add methods to read and write image data

This adds two methods, write_texels and read_texels, to the Image class.
Conversion between image formats happens automatically. The layout of
the client image data is passed in via ImageDataLayout struct.
This commit is contained in:
Stephan Unverwerth 2021-12-22 18:07:01 +01:00 committed by Brian Gianforcaro
parent 2a72d14336
commit b41ad28654
3 changed files with 62 additions and 0 deletions

View file

@ -10,6 +10,7 @@
#include <AK/Vector.h>
#include <LibGfx/Vector3.h>
#include <LibGfx/Vector4.h>
#include <LibSoftGPU/ImageDataLayout.h>
#include <LibSoftGPU/ImageFormat.h>
namespace SoftGPU {
@ -38,6 +39,9 @@ public:
pack_color(color, texel_pointer(layer, level, x, y, z), m_format);
}
void write_texels(unsigned layer, unsigned level, Vector3<unsigned> const& offset, Vector3<unsigned> const& size, void const* data, ImageDataLayout const& layout);
void read_texels(unsigned layer, unsigned level, Vector3<unsigned> const& offset, Vector3<unsigned> const& size, void* data, ImageDataLayout const& layout) const;
private:
void const* texel_pointer(unsigned layer, unsigned level, unsigned x, unsigned y, unsigned z) const
{