aboutsummaryrefslogtreecommitdiff
path: root/viewport.c
diff options
context:
space:
mode:
authorrodri <rgl@antares-labs.eu>2024-03-26 10:42:23 +0000
committerrodri <rgl@antares-labs.eu>2024-03-26 10:42:23 +0000
commit02c06cfbc711c01d22bb0c52f8440f7060c10916 (patch)
treef5272530117eb133813c05949ebc8919544eb4f2 /viewport.c
parent0874435504c0816c0e5f11a2e852507626fe185e (diff)
downloadlibgraphics-02c06cfbc711c01d22bb0c52f8440f7060c10916.tar.gz
libgraphics-02c06cfbc711c01d22bb0c52f8440f7060c10916.tar.bz2
libgraphics-02c06cfbc711c01d22bb0c52f8440f7060c10916.zip
pass a Viewport in the Renderjob instead of a fb.
do the frame buffer clearing and swapping as part of the rendering process, not within shootcamera.
Diffstat (limited to 'viewport.c')
-rw-r--r--viewport.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/viewport.c b/viewport.c
index 0e9b9c5..2089d50 100644
--- a/viewport.c
+++ b/viewport.c
@@ -20,6 +20,12 @@ viewport_memdraw(Viewport *v, Memimage *dst)
v->fbctl->memdraw(v->fbctl, dst);
}
+static Framebuf *
+viewport_getfb(Viewport *v)
+{
+ return v->fbctl->fb[v->fbctl->idx^1]; /* address the back buffer */
+}
+
Viewport *
mkviewport(Rectangle r)
{
@@ -32,6 +38,7 @@ mkviewport(Rectangle r)
v->fbctl = mkfbctl(r);
v->draw = viewport_draw;
v->memdraw = viewport_memdraw;
+ v->getfb = viewport_getfb;
return v;
}