ladybird/Userland/Libraries/LibSoftGPU
Jelle Raaijmakers eb7c3d16fb LibGL+LibGPU+LibSoftGPU: Implement flexible pixel format conversion
A GPU (driver) is now responsible for reading and writing pixels from
and to user data. The client (LibGL) is responsible for specifying how
the user data must be interpreted or written to.

This allows us to centralize all pixel format conversion in one class,
`LibSoftGPU::PixelConverter`. For both the input and output image, it
takes a specification containing the image dimensions, the pixel type
and the selection (basically a clipping rect), and converts the pixels
from the input image to the output image.

Effectively this means we now support almost all OpenGL 1.5 formats,
and all custom logic has disappeared from:
  - `glDrawPixels`
  - `glReadPixels`
  - `glTexImage2D`
  - `glTexSubImage2D`

The new logic is still unoptimized, but on my machine I experienced no
noticeable slowdown. :^)
2022-08-27 12:28:05 +02:00
..
Buffer LibGL+LibGPU+LibSoftGPU: Implement flexible pixel format conversion 2022-08-27 12:28:05 +02:00
AlphaBlendFactors.h LibSoftGPU: Move alpha blend factor setup out of triangle rasterization 2022-01-09 16:21:13 +03:30
Clipper.cpp LibGL+LibGPU+LibSoftGPU: Implement and expose glClipPlane 2022-05-11 23:09:47 +02:00
Clipper.h LibGL+LibGPU+LibSoftGPU: Implement and expose glClipPlane 2022-05-11 23:09:47 +02:00
CMakeLists.txt LibGL+LibGPU+LibSoftGPU: Implement flexible pixel format conversion 2022-08-27 12:28:05 +02:00
Config.h LibGL+LibGPU+LibSoftGPU: Implement and expose glClipPlane 2022-05-11 23:09:47 +02:00
Device.cpp LibGL+LibGPU+LibSoftGPU: Implement flexible pixel format conversion 2022-08-27 12:28:05 +02:00
Device.h LibGL+LibGPU+LibSoftGPU: Implement flexible pixel format conversion 2022-08-27 12:28:05 +02:00
Image.cpp LibGL+LibGPU+LibSoftGPU: Implement flexible pixel format conversion 2022-08-27 12:28:05 +02:00
Image.h LibGL+LibGPU+LibSoftGPU: Implement flexible pixel format conversion 2022-08-27 12:28:05 +02:00
PixelConverter.cpp LibGL+LibGPU+LibSoftGPU: Implement flexible pixel format conversion 2022-08-27 12:28:05 +02:00
PixelConverter.h LibGL+LibGPU+LibSoftGPU: Implement flexible pixel format conversion 2022-08-27 12:28:05 +02:00
PixelQuad.h LibGL+LibGPU+LibSoftGPU: Implement point and line drawing 2022-05-09 21:49:48 +02:00
Sampler.cpp LibGL+LibGPU+LibSoftGPU: Add virtual base class for Images 2022-04-06 11:32:24 +02:00
Sampler.h LibGL+LibGPU+LibSoftGPU: Move SamplerConfig to LibGPU 2022-04-06 11:32:24 +02:00
SIMD.h LibGL+LibGPU+LibSoftGPU: Implement point and line drawing 2022-05-09 21:49:48 +02:00
Triangle.h LibGL+LibGPU+LibSoftGPU: Implement point and line drawing 2022-05-09 21:49:48 +02:00