1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 08:18:11 +00:00
serenity/Userland/Libraries/LibSoftGPU
Jelle Raaijmakers db0616c67a LibSoftGPU: Generalize pixel buffers and standardize on BGRA8888
Between the OpenGL client and server, a lot of data type and color
conversion needs to happen. We are performing these conversions both in
`LibSoftGPU` and `LibGL`, which is not ideal. Additionally, some
concepts like the color, depth and stencil buffers should share their
logic but have separate implementations.

This is the first step towards generalizing our `LibSoftGPU` frame
buffer: a generalized `Typed3DBuffer` is introduced for arbitrary 3D
value storage and retrieval, and `Typed2DBuffer` wraps around it to
provide in an easy-to-use 2D pixel buffer. The color, depth and stencil
buffers are replaced by `Typed2DBuffer` and are now managed by the new
`FrameBuffer` class.

The `Image` class now uses multiple `Typed3DBuffer`s for layers and
mipmap levels. Additionally, the textures are now always stored as
BGRA8888, only converting between formats when reading or writing
pixels.

Ideally this refactor should have no functional changes, but some
graphical glitches in Grim Fandango seem to be fixed and most OpenGL
ports get an FPS boost on my machine. :^)
2022-02-22 23:48:59 +00:00
..
Buffer LibSoftGPU: Generalize pixel buffers and standardize on BGRA8888 2022-02-22 23:48:59 +00:00
Light LibGL+LibSoftGPU: Remove unused variable specular_exponent 2022-01-18 01:48:51 +02:00
AlphaBlendFactors.h LibSoftGPU: Move alpha blend factor setup out of triangle rasterization 2022-01-09 16:21:13 +03:30
Clipper.cpp LibSoftGPU: Dispatch based on ClipPlane enum at compile-time 2022-02-10 10:33:31 +00:00
Clipper.h LibSoftGPU: Dispatch based on ClipPlane enum at compile-time 2022-02-10 10:33:31 +00:00
CMakeLists.txt LibSoftGPU: Generalize pixel buffers and standardize on BGRA8888 2022-02-22 23:48:59 +00:00
Config.h LibSoftGPU: Configure stats overlay period 2022-01-22 08:57:31 +03:30
Device.cpp LibSoftGPU: Generalize pixel buffers and standardize on BGRA8888 2022-02-22 23:48:59 +00:00
Device.h LibSoftGPU: Generalize pixel buffers and standardize on BGRA8888 2022-02-22 23:48:59 +00:00
DeviceInfo.h LibSoftGPU: Announce NPOT texture support via DeviceInfo struct 2022-01-19 19:57:49 +01:00
Enums.h LibSoftGPU: Generalize pixel buffers and standardize on BGRA8888 2022-02-22 23:48:59 +00:00
Image.cpp LibSoftGPU: Generalize pixel buffers and standardize on BGRA8888 2022-02-22 23:48:59 +00:00
Image.h LibSoftGPU: Generalize pixel buffers and standardize on BGRA8888 2022-02-22 23:48:59 +00:00
ImageDataLayout.h LibSoftGPU: Add methods to read and write image data 2021-12-24 05:10:28 -08:00
ImageFormat.h Everywhere: Remove redundant inline keyword 2022-01-29 21:45:17 +02:00
PixelQuad.h LibGL+LibSoftGPU: Add multiple texture coordinates to vertex struct 2022-01-19 19:57:49 +01:00
Sampler.cpp LibSoftGPU: Use bitwise and instead of modulus operator for POT textures 2022-01-09 16:21:13 +03:30
Sampler.h LibSoftGPU: Vectorize texture sampling and shading 2022-01-09 16:21:13 +03:30
SIMD.h LibSoftGPU: Add SIMD.h with SoftGPU specific SIMD functions 2022-01-09 16:21:13 +03:30
Triangle.h LibGL+LibSoftGPU: Move Vertex and Triangle structs to LibSoftGPU 2021-12-24 05:10:28 -08:00
Vertex.h LibGL+LibSoftGPU: Add multiple texture coordinates to vertex struct 2022-01-19 19:57:49 +01:00