PostScript output: initialise member variables in Fl_Cairo_Graphics_Driver constructor.

Also, remove inadequate Fl_Surface_Device::push_current(this) call in Fl_Posix_Printer_Driver::begin_job().
This commit is contained in:
ManoloFLTK 2021-12-02 10:54:40 +01:00
parent 2db94dcb4c
commit 596a937530
5 changed files with 11 additions and 12 deletions

View File

@ -44,17 +44,13 @@ public:
};
Clip * clip_;
int lang_level_;
int gap_;
int pages_;
cairo_t *cr() { return cairo_; }
PangoLayout *pango_layout() {return pango_layout_;}
void check_status(void);
enum SHAPE shape_;
int linewidth_;// need for clipping, lang level 1-2
int linestyle_;//
unsigned char cr_,cg_,cb_;
char linedash_[256];//should be enough
void concat(); // transform ror scalable dradings...
@ -68,9 +64,6 @@ public:
int left_margin;
int top_margin;
double pw_, ph_;
uchar bg_r, bg_g, bg_b;
void transformed_draw(const char* s, int n, double x, double y); //precise text placing
// implementation of drawing methods

View File

@ -64,7 +64,14 @@ static void draw_image_cb(void *data, int x, int y, int w, uchar *buf) {
}
Fl_Cairo_Graphics_Driver::Fl_Cairo_Graphics_Driver() : Fl_Graphics_Driver() {}
Fl_Cairo_Graphics_Driver::Fl_Cairo_Graphics_Driver() : Fl_Graphics_Driver() {
cairo_ = NULL;
pango_layout_ = NULL;
clip_ = NULL;
scale_x = scale_y = 1;
angle = 0;
left_margin = top_margin = 0;
}
Fl_Cairo_Graphics_Driver::~Fl_Cairo_Graphics_Driver() {}
@ -192,8 +199,6 @@ void Fl_Cairo_Graphics_Driver::polygon(int x0, int y0, int x1, int y1, int x2, i
}
void Fl_Cairo_Graphics_Driver::line_style(int style, int width, char* dashes) {
linewidth_=width;
linestyle_=style;
if(dashes){
if(dashes != linedash_)
strcpy(linedash_,dashes);

View File

@ -327,7 +327,6 @@ int Fl_Posix_Printer_Driver::begin_job(int pages, int *firstpage, int *lastpage,
return 2;
}
ps->close_command(pclose);
Fl_Surface_Device::push_current(this);
return ps->start_postscript(pages, format, layout); // start printing
}

View File

@ -122,9 +122,9 @@ static const double dashes_cap[5][7]={
Fl_PostScript_Graphics_Driver::Fl_PostScript_Graphics_Driver(void)
{
close_cmd_ = 0;
#if ! USE_PANGO
//lang_level_ = 3;
lang_level_ = 2;
#if ! USE_PANGO
mask = 0;
#endif
ps_filename_ = NULL;

View File

@ -48,6 +48,8 @@ public:
enum Fl_Paged_Device::Page_Format page_format_;
char *ps_filename_;
int nPages;
double pw_, ph_;
uchar bg_r, bg_g, bg_b;
Fl_PostScript_Graphics_Driver();
~Fl_PostScript_Graphics_Driver();