summaryrefslogtreecommitdiff
path: root/libs/cairo-1.16.0/perf/micro/twin.c
diff options
context:
space:
mode:
authorsanine <sanine.not@pm.me>2022-10-12 12:03:23 -0500
committersanine <sanine.not@pm.me>2022-10-12 12:03:23 -0500
commit530ffd0b7d3c39757b20f00716e486b5caf89aff (patch)
tree76b35fdf57317038acf6b828871f6ae25fce2ebe /libs/cairo-1.16.0/perf/micro/twin.c
parent3dbe9332e47c143a237db12440f134caebd1cfbe (diff)
add cairo
Diffstat (limited to 'libs/cairo-1.16.0/perf/micro/twin.c')
-rw-r--r--libs/cairo-1.16.0/perf/micro/twin.c59
1 files changed, 59 insertions, 0 deletions
diff --git a/libs/cairo-1.16.0/perf/micro/twin.c b/libs/cairo-1.16.0/perf/micro/twin.c
new file mode 100644
index 0000000..99433bd
--- /dev/null
+++ b/libs/cairo-1.16.0/perf/micro/twin.c
@@ -0,0 +1,59 @@
+#define WIDTH 1350
+#define HEIGHT 900
+
+#include "cairo-perf.h"
+
+static cairo_time_t
+do_twin (cairo_t *cr,
+ int width,
+ int height,
+ int loops)
+{
+ int i, j, h;
+ unsigned char s[2] = {0, 0};
+
+ cairo_set_source_rgb (cr, 1.0, 1.0, 1.0); /* white */
+ cairo_paint (cr);
+ cairo_set_source_rgb (cr, 0, 0, 0);
+
+ cairo_select_font_face (cr,
+ "@cairo:",
+ CAIRO_FONT_SLANT_NORMAL,
+ CAIRO_FONT_WEIGHT_NORMAL);
+
+ cairo_perf_timer_start ();
+
+ while (loops--) {
+ h = 2;
+ for (i = 8; i < 48; i >= 24 ? i+=3 : i++) {
+ cairo_set_font_size (cr, i);
+ for (j = 33; j < 128; j++) {
+ if (j == 33 || (j == 80 && i > 24)) {
+ h += i + 2;
+ cairo_move_to (cr, 10, h);
+ }
+ s[0] = j;
+ cairo_text_path (cr, (const char *) s);
+ }
+ }
+ cairo_fill (cr);
+ }
+
+ cairo_perf_timer_stop ();
+ return cairo_perf_timer_elapsed ();
+}
+
+cairo_bool_t
+twin_enabled (cairo_perf_t *perf)
+{
+ return cairo_perf_can_run (perf, "twin", NULL);
+}
+
+void
+twin (cairo_perf_t *perf,
+ cairo_t *cr,
+ int width,
+ int height)
+{
+ cairo_perf_run (perf, "twin", do_twin, NULL);
+}