1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 08:48:11 +00:00
serenity/Userland/Libraries/LibGPU
Jelle Raaijmakers a20bf80b05 LibGL+LibGPU+LibSoftGPU: Implement point and line drawing
Implement (anti)aliased point drawing and anti-aliased line drawing.
Supported through LibGL's `GL_POINTS`, `GL_LINES`, `GL_LINE_LOOP` and
`GL_LINE_STRIP`.

In order to support this, `LibSoftGPU`s rasterization logic was
reworked. Now, any primitive can be drawn by invoking `rasterize()`
which takes care of the quad loop and fragment testing logic. Three
callbacks need to be passed:

* `set_coverage_mask`: the primitive needs to provide initial coverage
   mask information so fragments can be discarded early.
* `set_quad_depth`: fragments survived stencil testing, so depth values
  need to be set so depth testing can take place.
* `set_quad_attributes`: fragments survived depth testing, so fragment
  shading is going to take place. All attributes like color, tex coords
  and fog depth need to be set so alpha testing and eventually,
  fragment rasterization can take place.

As of this commit, there are four instantiations of this function:

* Triangle rasterization
* Points - aliased
* Points - anti-aliased
* Lines - anti-aliased

In order to standardize vertex processing for all primitive types,
things like vertex transformation, lighting and tex coord generation
are now taking place before clipping.
2022-05-09 21:49:48 +02:00
..
CMakeLists.txt LibGL+LibGPU+LibSoftGPU: Load SoftGPU driver dynamically 2022-04-06 11:32:24 +02:00
Config.h LibGL+LibGPU+LibSoftGPU: Move Vertex.h to LibGPU 2022-04-06 11:32:24 +02:00
Device.h LibGL+LibGPU+LibSoftGPU: Implement point and line drawing 2022-05-09 21:49:48 +02:00
DeviceInfo.h LibGL+LibGPU+LibSoftGPU: Move DeviceConfig to LibGPU 2022-04-06 11:32:24 +02:00
Driver.cpp LibGPU: Don't dlopen using absolute path 2022-04-07 17:11:22 +02:00
Driver.h LibGL+LibGPU+LibSoftGPU: Load SoftGPU driver dynamically 2022-04-06 11:32:24 +02:00
Enums.h LibGL+LibGPU+LibSoftGPU: Implement point and line drawing 2022-05-09 21:49:48 +02:00
Image.h LibGL+LibGPU+LibSoftGPU: Add virtual base class for Images 2022-04-06 11:32:24 +02:00
ImageDataLayout.h LibGL+LibGPU+LibSoftGPU: Move ImageDataLayout.h to LibGPU 2022-04-06 11:32:24 +02:00
ImageFormat.h LibGL+LibGPU+LibSoftGPU: Move ImageFormat.h to LibGPU 2022-04-06 11:32:24 +02:00
Light.h LibGL+LibGPU+LibSoftGPU: Move Light.h to LibGPU 2022-04-06 11:32:24 +02:00
LightModelParameters.h LibGPU+LibSoftGPU: Move LightModelParameters into LibGPU 2022-04-06 11:32:24 +02:00
Material.h LibGL+LibGPU+LibSoftGPU: Move Material.h to LibGPU 2022-04-06 11:32:24 +02:00
RasterizerOptions.h LibGL+LibGPU: Copy line width to rasterizer in glLineWidth 2022-05-09 21:49:48 +02:00
RasterPosition.h LibGPU+LibSoftGPU: Move RasterPosition into its own header in LibGPU 2022-04-06 11:32:24 +02:00
SamplerConfig.h LibGL+LibSoftGPU: Add GL_ADD Texture Environment 2022-04-09 11:40:33 +02:00
StencilConfiguration.h LibGL+LibGPU+LibSoftGPU: Move StencilConfiguration.h to LibGPU 2022-04-06 11:32:24 +02:00
TexCoordGenerationConfig.h LibGL+LibGPU+LibSoftGPU: Move TexCoordGenerationConfig into LibGPU 2022-04-06 11:32:24 +02:00
Vertex.h LibGL+LibGPU+LibSoftGPU: Move Vertex.h to LibGPU 2022-04-06 11:32:24 +02:00