Fl_Image_Surface Class Reference

Directs all graphics requests to an Fl_Image. More...

#include <Fl_Image_Surface.H>

Inheritance diagram for Fl_Image_Surface:
Fl_Surface_Device Fl_Device

List of all members.

Public Member Functions

const char * class_name ()
 Returns the name of the class of this object.
void draw (Fl_Widget *, int delta_x=0, int delta_y=0)
 Draws a widget in the image surface.
void draw_decorated_window (Fl_Window *win, int delta_x=0, int delta_y=0)
 Draws a window and its borders and title bar to the image drawing surface.
 Fl_Image_Surface (int w, int h, int highres=0)
 Constructor with optional high resolution.
Fl_Shared_Imagehighres_image ()
 Returns a possibly high resolution image made of all drawings sent to the Fl_Image_Surface object.
Fl_RGB_Imageimage ()
 Returns an image made of all drawings sent to the Fl_Image_Surface object.
void set_current ()
 Make this surface the current drawing surface.
 ~Fl_Image_Surface ()
 The destructor.

Static Public Attributes

static const char * class_id = "Fl_Image_Surface"
 A string that identifies each subclass of Fl_Device.

Detailed Description

Directs all graphics requests to an Fl_Image.

After creation of an Fl_Image_Surface object, call set_current() on it, and all subsequent graphics requests will be recorded in the image. It's possible to draw widgets (using Fl_Image_Surface::draw()) or to use any of the Drawing functions or the Color & Font functions. Finally, call image() on the object to obtain a newly allocated Fl_RGB_Image object.
Fl_GL_Window objects can be drawn in the image as well.


Usage example:

 Fl_Widget *g = ...; // a widget you want to draw in an image
 Fl_Image_Surface *img_surf = new Fl_Image_Surface(g->w(), g->h()); // create an Fl_Image_Surface object
 img_surf->set_current(); // direct graphics requests to the image
 fl_color(FL_WHITE); fl_rectf(0, 0, g->w(), g->h()); // draw a white background
 img_surf->draw(g); // draw the g widget in the image
 Fl_RGB_Image* image = img_surf->image(); // get the resulting image
 delete img_surf; // delete the img_surf object
 Fl_Display_Device::display_device()->set_current();  // direct graphics requests back to the display

Constructor & Destructor Documentation

Fl_Image_Surface::Fl_Image_Surface ( int  w,
int  h,
int  highres = 0 
)

Constructor with optional high resolution.

Parameters:
w and
h give the size in pixels of the resulting image.
highres if non-zero, the surface pixel size is twice as high and wide as w and h, which is useful to draw it later on a high resolution display (e.g., retina display). This is implemented for the Mac OS platform only. If highres is non-zero, use Fl_Image_Surface::highres_image() to get the image data.
Version:
1.3.4 and requires compilation with -DFL_ABI_VERSION=10304 (1.3.3 without the highres parameter)

Member Function Documentation

const char* Fl_Image_Surface::class_name (  )  [inline, virtual]

Returns the name of the class of this object.

Use of the class_name() function is discouraged because it will be removed from future FLTK versions.

The class of an instance of an Fl_Device subclass can be checked with code such as:

   if ( instance->class_name() == Fl_Printer::class_id ) { ... }

Reimplemented from Fl_Surface_Device.

void Fl_Image_Surface::draw ( Fl_Widget widget,
int  delta_x = 0,
int  delta_y = 0 
)

Draws a widget in the image surface.

Parameters:
widget any FLTK widget (e.g., standard, custom, window, GL view) to draw in the image
delta_x and
delta_y give the position in the image of the top-left corner of the widget
void Fl_Image_Surface::draw_decorated_window ( Fl_Window win,
int  delta_x = 0,
int  delta_y = 0 
)

Draws a window and its borders and title bar to the image drawing surface.

Parameters:
win an FLTK window to draw in the image
delta_x and
delta_y give the position in the image of the top-left corner of the window's title bar
Fl_Shared_Image * Fl_Image_Surface::highres_image (  ) 

Returns a possibly high resolution image made of all drawings sent to the Fl_Image_Surface object.

The Fl_Image_Surface object should have been constructed with Fl_Image_Surface(W, H, 1). The returned image is scaled to a size of WxH drawing units and may have a pixel size twice as wide and high. The returned object should be deallocated with Fl_Shared_Image::release() after use.

Version:
1.3.4 and requires compilation with -DFL_ABI_VERSION=10304
Fl_RGB_Image * Fl_Image_Surface::image (  ) 

Returns an image made of all drawings sent to the Fl_Image_Surface object.

The returned object contains its own copy of the RGB data. Prefer Fl_Image_Surface::highres_image() if the surface was constructed with the highres option on.

void Fl_Image_Surface::set_current ( void   )  [virtual]

Make this surface the current drawing surface.

This surface will receive all future graphics requests.

Reimplemented from Fl_Surface_Device.


Member Data Documentation

const char * Fl_Image_Surface::class_id = "Fl_Image_Surface" [static]

A string that identifies each subclass of Fl_Device.

Function class_name() applied to a device of this class returns this string.

Reimplemented from Fl_Surface_Device.


The documentation for this class was generated from the following files: