summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/fb.c4
-rw-r--r--src/fb.h2
-rw-r--r--src/modules/julia/julia.c2
3 files changed, 7 insertions, 1 deletions
diff --git a/src/fb.c b/src/fb.c
index 4d1a562..96e8e3a 100644
--- a/src/fb.c
+++ b/src/fb.c
@@ -172,7 +172,9 @@ static void fb_page_new(fb_t *fb, drmModeModeInfoPtr mode)
page->public_page.fragment.buf = map;
page->public_page.fragment.width = mode->hdisplay;
+ page->public_page.fragment.frame_width = mode->hdisplay;
page->public_page.fragment.height = mode->vdisplay;
+ page->public_page.fragment.frame_height = mode->vdisplay;
page->public_page.fragment.stride = create_dumb.pitch - (mode->hdisplay * 4);
page->next = fb->inactive_pages;
@@ -338,6 +340,8 @@ void fb_fragment_divide(fb_fragment_t *fragment, unsigned n_fragments, fb_fragme
fragments[i].y = y;
fragments[i].width = fragment->width;
fragments[i].height = slice;
+ fragments[i].frame_width = fragment->frame_width;
+ fragments[i].frame_height = fragment->frame_height;
fragments[i].stride = fragment->stride;
buf += pitch * slice;
diff --git a/src/fb.h b/src/fb.h
index e8d818f..c1cee17 100644
--- a/src/fb.h
+++ b/src/fb.h
@@ -14,6 +14,8 @@ typedef struct fb_fragment_t {
uint32_t *buf; /* pointer to the first pixel in the fragment */
unsigned x, y; /* absolute coordinates of the upper left corner of this fragment */
unsigned width, height; /* width and height of this fragment */
+ unsigned frame_width; /* width of the frame this fragment is part of */
+ unsigned frame_height; /* height of the frame this fragment is part of */
unsigned stride; /* number of bytes from the end of one row to the start of the next */
} fb_fragment_t;
diff --git a/src/modules/julia/julia.c b/src/modules/julia/julia.c
index 9e3dba2..ed8e30c 100644
--- a/src/modules/julia/julia.c
+++ b/src/modules/julia/julia.c
@@ -86,7 +86,7 @@ static void julia_render_fragment(fb_fragment_t *fragment)
unsigned stride = fragment->stride / 4, width = fragment->width, height = fragment->height;
uint32_t *buf = fragment->buf;
float real, imag;
- float realstep = 3.6f / (float)width, imagstep = 3.6f / (float)height;
+ float realstep = 3.6f / (float)fragment->frame_width, imagstep = 3.6f / (float)fragment->frame_height;
/* Rather than just sweeping creal,cimag from -2.0-+2.0, I try to keep things confined
* to an interesting (visually) range. TODO: could certainly use refinement.
© All Rights Reserved