raster pushed a commit to branch master.
http://git.enlightenment.org/core/enlightenment.git/commit/?id=5b48077b19072457304814a14899c3c75c455f02
commit 5b48077b19072457304814a14899c3c75c455f02
Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com>
Date: Fri Mar 12 16:09:56 2021 +0000
comp - fps debug - dont use null pixel ptrs for debug data
@fix
---
src/bin/e_comp.c | 70 +++++++++++++++++++++++++++++---------------------------
1 file changed, 36 insertions(+), 34 deletions(-)
diff --git a/src/bin/e_comp.c b/src/bin/e_comp.c
index 9b7f1842a..fbdc1e13e 100644
--- a/src/bin/e_comp.c
+++ b/src/bin/e_comp.c
@@ -570,43 +570,45 @@ e_comp_fps_update(void)
evas_object_image_alpha_set(e_comp->canvas->fps_gr, EINA_TRUE);
pixstride = evas_object_image_stride_get(e_comp->canvas->fps_gr);
pix = evas_object_image_data_get(e_comp->canvas->fps_gr, EINA_TRUE);
-
- memset(pix, 0, pixstride * pixh);
-
- // go backwards from newest to oldest
- start = e_comp->frame_event_now + E_COMP_FRAME_EVENT_COUNT - 1;
- end = e_comp->frame_event_now + E_COMP_FRAME_EVENT_COUNT ;
- for (i = start;;)
+ if (pix)
{
- iind = i % E_COMP_FRAME_EVENT_COUNT;
- i--;
- if (iind == (end % E_COMP_FRAME_EVENT_COUNT)) break;
-
- info0 = e_comp->frame_events[iind].info[0];
- px = (t - e_comp->frame_events[iind].t) * pixscale;
- px = pixw - px - 1;
- if (px < 0) break;
- if (info0 == E_COMP_FRAME_EVENT_RENDER2_END)
- _e_comp_fps_draw_point(pix, pixstride, pixw, 0, 0xffffffff, px);
- else if (info0 == E_COMP_FRAME_EVENT_RENDER2_BEGIN)
- _e_comp_fps_draw_point(pix, pixstride, pixw, 1, 0xffffee88, px);
- else if (info0 == E_COMP_FRAME_EVENT_RENDER_END)
- _e_comp_fps_draw_point(pix, pixstride, pixw, 2, 0xffff9944, px);
- else if (info0 == E_COMP_FRAME_EVENT_RENDER_BEGIN)
- _e_comp_fps_draw_point(pix, pixstride, pixw, 3, 0xffff4433, px);
- else if (info0 == E_COMP_FRAME_EVENT_IDLE_ENTER)
- _e_comp_fps_draw_point(pix, pixstride, pixw, 4, 0xff994499, px);
- else if (info0 == E_COMP_FRAME_EVENT_IDLE_EXIT)
- _e_comp_fps_draw_point(pix, pixstride, pixw, 5, 0xffff88ff, px);
- else if (info0 == E_COMP_FRAME_EVENT_HANDLE_DAMAGE)
- _e_comp_fps_draw_point(pix, pixstride, pixw, 6, 0xff44ff22, px);
- else if (info0 == E_COMP_FRAME_EVENT_CLIENT_DAMAGE)
- _e_comp_fps_draw_point(pix, pixstride, pixw, 7, 0xff4466ff, px);
+ memset(pix, 0, pixstride * pixh);
+
+ // go backwards from newest to oldest
+ start = e_comp->frame_event_now + E_COMP_FRAME_EVENT_COUNT - 1;
+ end = e_comp->frame_event_now + E_COMP_FRAME_EVENT_COUNT ;
+ for (i = start;;)
+ {
+ iind = i % E_COMP_FRAME_EVENT_COUNT;
+ i--;
+ if (iind == (end % E_COMP_FRAME_EVENT_COUNT)) break;
+
+ info0 = e_comp->frame_events[iind].info[0];
+ px = (t - e_comp->frame_events[iind].t) * pixscale;
+ px = pixw - px - 1;
+ if (px < 0) break;
+ if (info0 == E_COMP_FRAME_EVENT_RENDER2_END)
+ _e_comp_fps_draw_point(pix, pixstride, pixw, 0,
0xffffffff, px);
+ else if (info0 == E_COMP_FRAME_EVENT_RENDER2_BEGIN)
+ _e_comp_fps_draw_point(pix, pixstride, pixw, 1,
0xffffee88, px);
+ else if (info0 == E_COMP_FRAME_EVENT_RENDER_END)
+ _e_comp_fps_draw_point(pix, pixstride, pixw, 2,
0xffff9944, px);
+ else if (info0 == E_COMP_FRAME_EVENT_RENDER_BEGIN)
+ _e_comp_fps_draw_point(pix, pixstride, pixw, 3,
0xffff4433, px);
+ else if (info0 == E_COMP_FRAME_EVENT_IDLE_ENTER)
+ _e_comp_fps_draw_point(pix, pixstride, pixw, 4,
0xff994499, px);
+ else if (info0 == E_COMP_FRAME_EVENT_IDLE_EXIT)
+ _e_comp_fps_draw_point(pix, pixstride, pixw, 5,
0xffff88ff, px);
+ else if (info0 == E_COMP_FRAME_EVENT_HANDLE_DAMAGE)
+ _e_comp_fps_draw_point(pix, pixstride, pixw, 6,
0xff44ff22, px);
+ else if (info0 == E_COMP_FRAME_EVENT_CLIENT_DAMAGE)
+ _e_comp_fps_draw_point(pix, pixstride, pixw, 7,
0xff4466ff, px);
+ }
+ evas_object_image_data_set(e_comp->canvas->fps_gr, pix);
+ evas_object_image_data_update_add(e_comp->canvas->fps_gr,
+ 0, 0, pixw, pixh);
}
- evas_object_image_data_set(e_comp->canvas->fps_gr, pix);
- evas_object_image_data_update_add(e_comp->canvas->fps_gr,
- 0, 0, pixw, pixh);
evas_object_color_set(e_comp->canvas->fps_bg, 0, 0, 0, 192);
evas_object_geometry_set(e_comp->canvas->fps_bg, bx, by, bw, bh);
evas_object_geometry_set(e_comp->canvas->fps_gr, gx, gy, gw, gh);