Consistently make Fl_Paged_Device::begin_page call Fl_Surface_Device::push_current.

This commit is contained in:
ManoloFLTK
2021-10-31 14:20:04 +01:00
parent 96034b5657
commit 995a48dd00
4 changed files with 10 additions and 8 deletions
+4 -3
View File
@@ -38,14 +38,15 @@ class Fl_Widget;
A drawing surface other than the computer's display, is typically used as follows:
<ol><li> Create \c surface, an object from a particular Fl_Surface_Device derived class (e.g., Fl_Copy_Surface, Fl_Printer).
<li> Call \c Fl_Surface_Device::push_current(surface); to redirect all graphics requests to \c surface which becomes the new
current drawing surface (not necessary with class Fl_Printer because it is done by Fl_Printer::begin_job()).
<li> Call \c Fl_Surface_Device::push_current(surface); to redirect all graphics requests to
\c surface which becomes the new current drawing surface (not necessary with classes Fl_Printer / Fl_PostScript_File_Device
because it is done by Fl_Paged_Device::begin_page()).
<li> At this point all of the \ref fl_drawings (e.g., fl_rect()) or the \ref fl_attributes or \ref drawing_images functions
(e.g., fl_draw_image(), Fl_Image::draw()) operate on the new current drawing surface.
Drawing surfaces from Fl_Widget_Surface derived classes allow additional ways
to draw to them (e.g., Fl_Printer::print_widget(), Fl_Image_Surface::draw()).
<li> After all drawing requests have been performed, redirect graphics requests back to their previous destination
with \c Fl_Surface_Device::pop_current();.
with \c Fl_Surface_Device::pop_current(); (not necessary with classes Fl_Printer / Fl_PostScript_File_Device).
<li> Delete \c surface.
</ol>
For back-compatibility, it is also possible to use the Fl_Surface_Device::set_current() member function