1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-16 19:45:07 +00:00
Commit graph

221 commits

Author SHA1 Message Date
Stephan Unverwerth
de0069188f LibSoftGPU: Remove OpenGL type for polygon mode
Replaces the GLenum used to setup polygon mode in RasterizerOptions with
our own enum.
2021-12-24 05:10:28 -08:00
Stephan Unverwerth
f4d29bf665 LibSoftGPU: Remove OpenGL type for fog mode
Replaces the GLenum used to set up the fog mode in RasterizerOptions
with out own enum.
2021-12-24 05:10:28 -08:00
Stephan Unverwerth
74ed7713fa LibSoftGPU: Remove OpenGL type for depth test func
Replaces the GLenum used in the RasterizerConfig for selecting the depth
test function with out own enum.
2021-12-24 05:10:28 -08:00
Stephan Unverwerth
33e601800c LibSoftGPU: Remove OpenGL type for draw buffer selection
Replaces the GLenum used in RasterizerConfig to select the draw buffer
with a simple boolean that disabled color output when the draw buffer
is set to GL_NONE on the OpenGL side.
2021-12-24 05:10:28 -08:00
Stephan Unverwerth
1904be0370 LibSoftGPU: Remove OpenGL type for culled side selection
Replaces the GLenum in RasterizerConfig, that selects the triangle sides
to be culled, with two booleans.
2021-12-24 05:10:28 -08:00
Stephan Unverwerth
24c76741e8 LibSoftGPU: Remove OpenGL type for front face selection
Replaces the GLenum used for selecting the frontface in the rasterizer
config with out own enum.
2021-12-24 05:10:28 -08:00
Stephan Unverwerth
c720cd00db LibSoftGPU: Remove OpenGL type for alpha blend factors
Replaces the GLenum used for configuring alpha blend factors in the
SoftGPU device with out own enum.
2021-12-24 05:10:28 -08:00
Stephan Unverwerth
40bd73bdef LibSoftGPU: Remove OpenGL type for alpha test func
Replaces the OpenGL enum used for setting the alpha test func in
RasterizerOptions with out own enum.
2021-12-24 05:10:28 -08:00
Stephan Unverwerth
7d49015403 LibSoftGPU: Remove simple OpenGL types from RasterizerConfig
Replace GLfloat and GLboolean types in RasterizerConfig with their c++
native equivalent.
2021-12-24 05:10:28 -08:00
Stephan Unverwerth
d8c17c8838 LibGL+LibSoftGPU: Use device samplers for rendering
We now sample textures from the device owned image samplers.
Passing of enabled texture units has been simplified by only passing a
list of texture unit indices.
2021-12-24 05:10:28 -08:00
Stephan Unverwerth
908a6339ec LibSoftGPU: Add legacy texture env mode to sampler config 2021-12-24 05:10:28 -08:00
Stephan Unverwerth
b41ad28654 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.
2021-12-24 05:10:28 -08:00
Stephan Unverwerth
2a72d14336 LibSoftGPU: Make samplers part of device
This adds a sampler array to the device implementation and adds a method
`set_sampler_config` to configure samplers.
2021-12-24 05:10:28 -08:00
Stephan Unverwerth
b8bb72abbe LibSoftGPU: Add device method for creating images 2021-12-24 05:10:28 -08:00
Stephan Unverwerth
91ccf9958f LibSoftGPU: Add Image class
This serves as the storage for all image types. 1D, 2D, 3D, Cube and
image arrays.

Upon construction a full mipmap chain is generated and the image is
immutable afterwards with respect to its layout.
2021-12-24 05:10:28 -08:00
Stephan Unverwerth
a9e27b9a0f LibSoftGPU: Rename class SoftwareRasterizer to Device
This class does everything related to rendering now. It is the software
implementation of a full GPU device.
2021-12-24 05:10:28 -08:00
Stephan Unverwerth
178b28b469 LibGL: Remove unused GLStruct.h 2021-12-24 05:10:28 -08:00
Stephan Unverwerth
251f3c007f LibGL+LibSoftGPU: Move Vertex and Triangle structs to LibSoftGPU 2021-12-24 05:10:28 -08:00
Stephan Unverwerth
73ba208ee7 LibGL+LibSoftGPU: Move primitive assembly and clipping into LibSoftGPU 2021-12-24 05:10:28 -08:00
Stephan Unverwerth
2f35135743 LibGL+LibSoftGPU: Add face culling state to rasterizer options 2021-12-24 05:10:28 -08:00
Stephan Unverwerth
ad3d5d43bd LibGL+LibSoftGPU: Move rendering related code to LibSoftGPU library
This introduces a new library, LibSoftGPU, that incorporates all
rendering related features that formerly resided within LibGL itself.

Going forward we will make both libraries completely independent from
each other allowing LibGL to load different, possibly accelerated,
rendering backends.
2021-12-24 05:10:28 -08:00