summaryrefslogtreecommitdiff
path: root/riscos
diff options
context:
space:
mode:
Diffstat (limited to 'riscos')
-rw-r--r--riscos/plotters.c1
-rw-r--r--riscos/print.c19
-rw-r--r--riscos/save_draw.c1
-rw-r--r--riscos/window.c22
4 files changed, 15 insertions, 28 deletions
diff --git a/riscos/plotters.c b/riscos/plotters.c
index 18b53701a..bfba10c39 100644
--- a/riscos/plotters.c
+++ b/riscos/plotters.c
@@ -77,6 +77,7 @@ const struct plotter_table ro_plotters = {
NULL,
NULL,
ro_plot_path,
+ true
};
int ro_plot_origin_x = 0;
diff --git a/riscos/print.c b/riscos/print.c
index 10296ebf3..e1474aa96 100644
--- a/riscos/print.c
+++ b/riscos/print.c
@@ -119,8 +119,8 @@ static bool print_fonts_plot_bitmap(int x, int y, int width, int height,
static bool print_fonts_plot_bitmap_tile(int x, int y, int width, int height,
struct bitmap *bitmap, colour bg,
bool repeat_x, bool repeat_y, struct content *content);
-static bool print_fonts_plot_group_start(const char *name);
-static bool print_fonts_plot_group_end(void);
+static bool print_fonts_plot_path(float *p, unsigned int n, colour fill, float width,
+ colour c, float *transform);
static void print_fonts_callback(void *context,
const char *font_name, unsigned int font_size,
const char *s8, unsigned short *s16, unsigned int n,
@@ -141,10 +141,11 @@ static const struct plotter_table print_fonts_plotters = {
print_fonts_plot_arc,
print_fonts_plot_bitmap,
print_fonts_plot_bitmap_tile,
- print_fonts_plot_group_start,
- print_fonts_plot_group_end,
NULL,
- NULL
+ NULL,
+ NULL,
+ print_fonts_plot_path,
+ false
};
@@ -629,6 +630,7 @@ bool print_document(struct gui_window *g, const char *filename)
}
plot = ro_plotters;
+ plot.option_knockout = false;
ro_plot_set_scale(print_scale);
ro_gui_current_redraw_gui = g;
current_redraw_browser = NULL; /* we don't want to print the
@@ -863,11 +865,8 @@ bool print_fonts_plot_bitmap_tile(int x, int y, int width, int height,
{
return true;
}
-bool print_fonts_plot_group_start(const char *name)
-{
- return true;
-}
-bool print_fonts_plot_group_end(void)
+bool print_fonts_plot_path(float *p, unsigned int n, colour fill, float width,
+ colour c, float *transform)
{
return true;
}
diff --git a/riscos/save_draw.c b/riscos/save_draw.c
index fd4208a52..dd9d32990 100644
--- a/riscos/save_draw.c
+++ b/riscos/save_draw.c
@@ -79,6 +79,7 @@ const struct plotter_table ro_save_draw_plotters = {
ro_save_draw_group_end,
NULL,
ro_save_draw_path,
+ false
};
static struct pencil_diagram *ro_save_draw_diagram;
diff --git a/riscos/window.c b/riscos/window.c
index 5da8662b6..571ed9af0 100644
--- a/riscos/window.c
+++ b/riscos/window.c
@@ -45,7 +45,6 @@
#include "css/css.h"
#include "desktop/browser.h"
#include "desktop/frames.h"
-#include "desktop/knockout.h"
#include "desktop/plotters.h"
#include "desktop/textinput.h"
#include "desktop/tree.h"
@@ -1409,11 +1408,9 @@ void ro_gui_window_redraw_all(void)
void ro_gui_window_redraw(wimp_draw *redraw)
{
osbool more;
- bool knockout = true;
struct gui_window *g = (struct gui_window *)ro_gui_wimp_event_get_user_data(redraw->w);
float scale = g->bw->scale;
struct content *c = g->bw->current_content;
- int clip_x0, clip_y0, clip_x1, clip_y1, clear_x1, clear_y1;
os_error *error;
/* Handle no content quickly
@@ -1435,15 +1432,6 @@ void ro_gui_window_redraw(wimp_draw *redraw)
ro_gui_current_redraw_gui = g;
current_redraw_browser = g->bw;
- /* rendering textplain has no advantages using knockout rendering other
- * than to slow things down. */
- if (c->type == CONTENT_TEXTPLAIN
-#ifdef WITH_NS_SVG
- || c->type == CONTENT_SVG
-#endif
- )
- knockout = false;
-
/* HTML rendering handles scale itself */
if (c->type == CONTENT_HTML)
scale = 1;
@@ -1456,6 +1444,8 @@ void ro_gui_window_redraw(wimp_draw *redraw)
return;
}
while (more) {
+ int clip_x0, clip_y0, clip_x1, clip_y1, clear_x1, clear_y1;
+
ro_plot_origin_x = redraw->box.x0 - redraw->xscroll;
ro_plot_origin_y = redraw->box.y1 - redraw->yscroll;
clip_x0 = (redraw->clip.x0 - ro_plot_origin_x) / 2;
@@ -1468,10 +1458,7 @@ void ro_gui_window_redraw(wimp_draw *redraw)
if (ro_gui_current_redraw_gui->option.buffer_everything)
ro_gui_buffer_open(redraw);
- if (knockout) {
- knockout_plot_start(&plot);
- plot.clip(clip_x0, clip_y0, clip_x1, clip_y1);
- }
+ plot.clip(clip_x0, clip_y0, clip_x1, clip_y1);
if (c->type != CONTENT_HTML)
plot.clg(0x00ffffff);
@@ -1481,8 +1468,7 @@ void ro_gui_window_redraw(wimp_draw *redraw)
clip_x0, clip_y0, clip_x1, clip_y1,
g->bw->scale,
0xFFFFFF);
- if (knockout)
- knockout_plot_end();
+
if (ro_gui_current_redraw_gui->option.buffer_everything)
ro_gui_buffer_close();