1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-19 04:57:39 +00:00
serenity/Userland/Libraries/LibGL/Tex
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
..
MipMap.h LibGL: Remove image storage from MipMap 2021-12-24 05:10:28 -08:00
NameAllocator.cpp LibGL: Make glDeleteTextures skip over 0 names 2021-12-11 23:15:24 +01:00
NameAllocator.h LibGL: Make glDeleteTextures skip over 0 names 2021-12-11 23:15:24 +01:00
Sampler2D.h LibGL: Add border_color to Sampler2D 2022-04-09 11:40:33 +02:00
Texture.h LibGL+LibGPU+LibSoftGPU: Add virtual base class for Images 2022-04-06 11:32:24 +02:00
Texture2D.cpp LibGL+LibGPU+LibSoftGPU: Implement flexible pixel format conversion 2022-08-27 12:28:05 +02:00
Texture2D.h LibGL+LibGPU+LibSoftGPU: Implement flexible pixel format conversion 2022-08-27 12:28:05 +02:00
TextureUnit.h LibGL: Better handling of texture targets and default textures 2022-03-08 15:32:35 +01:00