diff options
author | rodri <rgl@antares-labs.eu> | 2024-09-20 21:44:07 +0000 |
---|---|---|
committer | rodri <rgl@antares-labs.eu> | 2024-09-20 21:44:07 +0000 |
commit | d8f71404ffd54af08bc84dbb04e60cb07e83a021 (patch) | |
tree | 51eea850a374f92569332ddb3bca7fcc021f6142 /graphics.h | |
parent | 2fd16cbf190d5c37fc627f79bf586f66129fea46 (diff) | |
download | libgraphics-d8f71404ffd54af08bc84dbb04e60cb07e83a021.tar.gz libgraphics-d8f71404ffd54af08bc84dbb04e60cb07e83a021.tar.bz2 libgraphics-d8f71404ffd54af08bc84dbb04e60cb07e83a021.zip |
implement clipped drawing. take branching out of the upscaler loop.
the rasterizers now produce a bbox of used fragments/pixels that
are unified at the end of every job/frame. we use that when
drawing so only the part that was rasterized gets sent to devdraw.
Diffstat (limited to 'graphics.h')
-rw-r--r-- | graphics.h | 5 |
1 files changed, 5 insertions, 0 deletions
@@ -258,6 +258,8 @@ struct Renderjob Scene *scene; Shadertab *shaders; Channel *donec; + Rectangle *cliprects; /* one per rasterizer */ + int ncliprects; struct { /* renderer, entityproc, tilers, rasterizers */ @@ -302,6 +304,7 @@ struct Raster struct Framebuf { Rectangle r; + Rectangle clipr; Raster *rasters; /* [0] color, [1] depth, [n] user-defined */ Abuf abuf; /* A-buffer */ @@ -432,6 +435,8 @@ void freecubemap(Cubemap*); Color samplecubemap(Cubemap*, Point3, Color(*)(Texture*, Point2)); /* util */ +Point minpt(Point, Point); +Point maxpt(Point, Point); Point2 modulapt2(Point2, Point2); Point2 minpt2(Point2, Point2); Point2 maxpt2(Point2, Point2); |