diff options
author | Tor Andersson <tor.andersson@artifex.com> | 2018-06-18 16:55:30 +0200 |
---|---|---|
committer | Robin Watts <robin.watts@artifex.com> | 2018-06-22 16:48:50 +0100 |
commit | 66a23e616670fe19e966c833ac4c0db5edf57c7c (patch) | |
tree | b682ae17bbc253c13a36b70100d4c548d1f7ac61 /platform/gl | |
parent | a69f71e89bc9c325bc91fc0ec69f3ca231c83efe (diff) | |
download | mupdf-66a23e616670fe19e966c833ac4c0db5edf57c7c.tar.xz |
Use fz_quad type in structured text and selection/highlighting.
Diffstat (limited to 'platform/gl')
-rw-r--r-- | platform/gl/gl-annotate.c | 13 | ||||
-rw-r--r-- | platform/gl/gl-main.c | 33 |
2 files changed, 29 insertions, 17 deletions
diff --git a/platform/gl/gl-annotate.c b/platform/gl/gl-annotate.c index 9d88dabc..873612c7 100644 --- a/platform/gl/gl-annotate.c +++ b/platform/gl/gl-annotate.c @@ -1040,7 +1040,7 @@ static void do_edit_quad_points(void) { static fz_point pt = { 0, 0 }; static int marking = 0; - fz_rect hits[1000]; + fz_quad hits[1000]; int i, n; if (ui_mouse_inside(&view_page_area)) @@ -1071,12 +1071,17 @@ static void do_edit_quad_points(void) glEnable(GL_BLEND); glColor4f(1, 1, 1, 1); + glBegin(GL_QUADS); for (i = 0; i < n; ++i) { - fz_rect thit = hits[i]; - fz_transform_rect(&thit, &view_page_ctm); - glRectf(thit.x0, thit.y0, thit.x1 + 1, thit.y1 + 1); + fz_quad thit = hits[i]; + fz_transform_quad(&thit, &view_page_ctm); + glVertex2f(thit.ul.x, thit.ul.y); + glVertex2f(thit.ur.x, thit.ur.y); + glVertex2f(thit.lr.x, thit.lr.y); + glVertex2f(thit.ll.x, thit.ll.y); } + glEnd(); glDisable(GL_BLEND); diff --git a/platform/gl/gl-main.c b/platform/gl/gl-main.c index ce63c4d2..726de1c0 100644 --- a/platform/gl/gl-main.c +++ b/platform/gl/gl-main.c @@ -142,7 +142,7 @@ static int search_dir = 1; static int search_page = -1; static int search_hit_page = -1; static int search_hit_count = 0; -static fz_rect search_hit_bbox[5000]; +static fz_quad search_hit_quads[5000]; static char error_message[256]; static void error_dialog(void) @@ -467,7 +467,7 @@ static void do_links(fz_link *link) static void do_page_selection(void) { static fz_point pt = { 0, 0 }; - fz_rect hits[1000]; + fz_quad hits[1000]; int i, n; if (ui_mouse_inside(&view_page_area)) @@ -495,11 +495,17 @@ static void do_page_selection(void) glEnable(GL_BLEND); glColor4f(1, 1, 1, 1); + glBegin(GL_QUADS); for (i = 0; i < n; ++i) { - fz_transform_rect(&hits[i], &view_page_ctm); - glRectf(hits[i].x0, hits[i].y0, hits[i].x1 + 1, hits[i].y1 + 1); + fz_quad thit = hits[i]; + fz_transform_quad(&thit, &view_page_ctm); + glVertex2f(thit.ul.x, thit.ul.y); + glVertex2f(thit.ur.x, thit.ur.y); + glVertex2f(thit.lr.x, thit.lr.y); + glVertex2f(thit.ll.x, thit.ll.y); } + glEnd(); glDisable(GL_BLEND); @@ -519,23 +525,24 @@ static void do_page_selection(void) static void do_search_hits(void) { - fz_rect bounds; - fz_irect area; int i; glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA); glEnable(GL_BLEND); + glColor4f(1, 0, 0, 0.4f); + glBegin(GL_QUADS); for (i = 0; i < search_hit_count; ++i) { - bounds = search_hit_bbox[i]; - fz_transform_rect(&bounds, &view_page_ctm); - fz_irect_from_rect(&area, &bounds); - - glColor4f(1, 0, 0, 0.4f); - glRectf(area.x0, area.y0, area.x1, area.y1); + fz_quad thit = search_hit_quads[i]; + fz_transform_quad(&thit, &view_page_ctm); + glVertex2f(thit.ul.x, thit.ul.y); + glVertex2f(thit.ur.x, thit.ur.y); + glVertex2f(thit.lr.x, thit.lr.y); + glVertex2f(thit.ll.x, thit.ll.y); } + glEnd(); glDisable(GL_BLEND); } @@ -1192,7 +1199,7 @@ void do_main(void) while (glutGet(GLUT_ELAPSED_TIME) < start_time + 200) { search_hit_count = fz_search_page_number(ctx, doc, search_page, search_needle, - search_hit_bbox, nelem(search_hit_bbox)); + search_hit_quads, nelem(search_hit_quads)); if (search_hit_count) { search_active = 0; |