summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* fb: do a better greyscale to color raster conversion.HEADmasterrodri2 days1-4/+23
|
* turn the camera rendering options into a bitmap.rodri3 days3-20/+26
|
* render: discard non-colors.rodri3 days1-15/+19
|
* fb: little memdrawing optimization.rodri4 days1-1/+4
|
* add a workspace setup script.rodri4 days1-0/+4
|
* change the raster format to RGBA32. draw to any image format. clean up.rodri5 days7-53/+181
| | | | | | | | | | | | | | | | got rid of the bullshit dance between XRGB32 and RGBA32, now all rasters are RGBA32 and premultiply alpha before loading up an image and drawing over the destination. this lets the user compose their own scenes with correct transparency. no more mediocre clearcolor. as a consequence drawing got slower, but if i get the turbo drawing pool working properly that should go away. textures also take alpha pre-multiplied channels into account, dividing them when sampling, so loading transparent textures will show the correct colors.
* fix a use-after-free when profiling rasterizer times.rodri6 days4-4/+99
| | | | | | | | | | this commit also includes the turbo drawing pool. the experiment was successful in getting reasonable drawing times to a fullhd image, but the process causes glitches when moving the objects around, which is unacceptable. it's been commented out for now.
* doc: changes. added references.rodri7 days3-906/+1411
|
* texture: clamp the coordinates instead of aborting when out of bounds.rodri7 days1-1/+2
|
* render: increase queue sizes.rodri8 days1-3/+3
|
* render: clip the triangle bbox against the wr directly at the tiler.rodri8 days1-12/+5
|
* render: only store rendertimes if profiling is enabled.rodri8 days1-12/+16
|
* allocate renderjob times dynamically for the parallel stages.rodri8 days3-9/+10
|
* remove unnecessary copying. profile individual stage procs.rodri9 days6-88/+124
|
* render: get more accurate stage completion times.rodri2024-09-011-31/+31
|
* unify shaders into a single interface.rodri2024-09-014-62/+90
|
* doc: changes.rodri2024-09-013-897/+943
|
* render: remove pointless for-loop.rodri2024-08-311-24/+25
|
* fb: draw FLOAT32 rasters in greyscale color.rodri2024-08-311-23/+39
|
* render: get rid of useless temporary.rodri2024-08-311-3/+2
|
* implement a general raster interface for the framebuffers.rodri2024-08-296-108/+345
| | | | | | | | | | | | | | | got a bit tired of having to add a ulong *buf every time i needed to get some data out of the shaders, so i made it possible to create as many extra buffers as needed, which then can be addressed from the fragment shader and drawn using the same drawing routines that were used for the color buffer. these so called Rasters are very similar to the OpenGL FBOs, in case you are familiar, but we address them by strings instead of numbers. and they can also be used as textures if you create one (see alloctexture) and then memdraw into it after every shot.
* replace f?(min|max) functions with type-agnostic macros.rodri2024-08-273-28/+2
| | | | | this simplifies the code and serves as another shadeop to use on application shaders.
* scene: add a method to get an entity from a scene.rodri2024-08-252-0/+13
|
* methods to add primitives and materials to a Model.rodri2024-08-233-3/+25
|
* fix the A-buffer so that it handles multiple render passes.rodri2024-08-212-12/+16
|
* color: add ACES tone mapping functions.rodri2024-08-192-0/+73
|
* fb: a better clipped drawing procedure.rodri2024-08-191-14/+12
|
* correct the light types constants.rodri2024-08-172-4/+4
|
* unify drawing routines and add clipped fb drawing support.rodri2024-08-174-33/+70
| | | | | | now changing the viewport offset will correctly show the portion of the framebuffer that's visible, including support for upscaled views.
* color: rgba2xrgb ≠ swabl.rodri2024-08-131-2/+2
|
* fixes.rodri2024-08-132-3/+3
|
* fix FPINVAL error. knob for fb clear color. general improvements.rodri2024-08-115-10/+23
|
* experimental A-buffer implementation.rodri2024-08-104-15/+132
| | | | | | | | | very simple, without anti-aliasing, made for getting OIT (order independent transparency) rendering of arbitrary objects. also added switches for blending, depth testing and the A-buffer to the camera.
* doc: new content.rodri2024-08-073-1139/+1334
|
* update the mkfile.rodri2024-08-071-0/+1
|
* offset fb during drawing based on viewport config. move OBJ-related ↵rodri2024-08-075-315/+359
| | | | procedures to its own unit.
* fix a double-free. add a generic value-swapping macro.rodri2024-08-055-55/+13
|
* make the depth buffer 32-bit.rodri2024-08-046-8/+9
|
* fix line interpolation during rasterization.rodri2024-08-024-7/+46
| | | | | | | vertex attributes were not being updated after clipping with their corresponding work rectangles, nor when reordering the points before rasterization, which caused serious artifacts.
* fb: fix the destination drawing rectangle.rodri2024-08-021-2/+2
|
* add a viewport upscale filters interface.rodri2024-08-023-44/+109
|
* doc: write about the scene, the viewport. organize things better.rodri2024-07-233-1079/+1314
|
* doc: write about the renderer, with a little introduction.rodri2024-07-223-612/+1229
|
* reduce the volume of Camera.times records. clean up.rodri2024-07-203-20/+19
|
* implement pixel art upscaling filters scale[23]x. tidy up some code.rodri2024-07-164-13/+100
|
* fix stack overflow, skybox fov sensibility and scene duplication.rodri2024-07-154-15/+30
| | | | | | | | | putting the duplicate camera in a local variable turned out to be a bad idea. bring the dynamic version back. the skybox rendering was affected by the camera fov, which made it look like it was not really at infinity, so set it always to 90°.
* initial viewport upscaling support.rodri2024-07-143-2/+76
|
* small improvements and a skybox bugfix.rodri2024-07-143-18/+15
|
* new camera interface.rodri2024-07-133-20/+74
|
* enable culling and add a camera knob for it.rodri2024-07-132-15/+19
|