#include <Fl_Device.H>
Public Member Functions | |
virtual | ~Fl_Graphics_Driver () |
The destructor. | |
Static Public Attributes | |
static const char * | device_type = "Fl_Graphics_Driver" |
A string that identifies each subclass of Fl_Device. | |
Protected Member Functions | |
virtual void | arc (int x, int y, int w, int h, double a1, double a2) |
see fl_arc(int x, int y, int w, int h, double a1, double a2). | |
virtual void | arc (double x, double y, double r, double start, double end) |
see fl_arc(double x, double y, double r, double start, double end). | |
virtual void | begin_complex_polygon () |
see fl_begin_complex_polygon(). | |
virtual void | begin_line () |
see fl_begin_line(). | |
virtual void | begin_loop () |
see fl_begin_loop(). | |
virtual void | begin_points () |
see fl_begin_points(). | |
virtual void | begin_polygon () |
see fl_begin_polygon(). | |
virtual void | circle (double x, double y, double r) |
see fl_circle(double x, double y, double r). | |
virtual int | clip_box (int x, int y, int w, int h, int &X, int &Y, int &W, int &H) |
see fl_clip_box(int x, int y, int w, int h, int &X, int &Y, int &W, int &H). | |
virtual void | color (uchar r, uchar g, uchar b) |
see fl_color(uchar r, uchar g, uchar b). | |
virtual void | color (Fl_Color c) |
see fl_color(Fl_Color c). | |
virtual void | curve (double X0, double Y0, double X1, double Y1, double X2, double Y2, double X3, double Y3) |
see fl_curve(double X0, double Y0, double X1, double Y1, double X2, double Y2, double X3, double Y3). | |
virtual void | draw (Fl_Bitmap *bm, int XP, int YP, int WP, int HP, int cx, int cy) |
Draws an Fl_Bitmap object to the device. | |
virtual void | draw (Fl_Pixmap *pxm, int XP, int YP, int WP, int HP, int cx, int cy) |
Draws an Fl_Pixmap object to the device. | |
virtual void | draw (Fl_RGB_Image *rgb, int XP, int YP, int WP, int HP, int cx, int cy) |
Draws an Fl_RGB_Image object to the device. | |
virtual void | draw (int angle, const char *str, int n, int x, int y) |
see fl_draw(int angle, const char *str, int n, int x, int y). | |
virtual void | draw (const char *str, int n, int x, int y) |
see fl_draw(const char *str, int n, int x, int y). | |
virtual void | draw_image (Fl_Draw_Image_Cb cb, void *data, int X, int Y, int W, int H, int D=3) |
see fl_draw_image(Fl_Draw_Image_Cb cb, void* data, int X,int Y,int W,int H, int D). | |
virtual void | draw_image (const uchar *buf, int X, int Y, int W, int H, int D=3, int L=0) |
see fl_draw_image(const uchar* buf, int X,int Y,int W,int H, int D, int L). | |
virtual void | draw_image_mono (Fl_Draw_Image_Cb cb, void *data, int X, int Y, int W, int H, int D=1) |
see fl_draw_image_mono(Fl_Draw_Image_Cb cb, void* data, int X,int Y,int W,int H, int D). | |
virtual void | draw_image_mono (const uchar *buf, int X, int Y, int W, int H, int D=1, int L=0) |
see fl_draw_image_mono(const uchar* buf, int X,int Y,int W,int H, int D, int L). | |
virtual void | end_complex_polygon () |
see fl_end_complex_polygon(). | |
virtual void | end_line () |
see fl_end_line(). | |
virtual void | end_loop () |
see fl_end_loop(). | |
virtual void | end_points () |
see fl_end_points(). | |
virtual void | end_polygon () |
see fl_end_polygon(). | |
Fl_Graphics_Driver () | |
The constructor. | |
virtual void | font (Fl_Font face, Fl_Fontsize size) |
see fl_font(Fl_Font face, Fl_Fontsize size). | |
virtual void | gap () |
see fl_gap(). | |
virtual void | line (int x, int y, int x1, int y1, int x2, int y2) |
see fl_line(int x, int y, int x1, int y1, int x2, int y2). | |
virtual void | line (int x, int y, int x1, int y1) |
see fl_line(int x, int y, int x1, int y1). | |
virtual void | line_style (int style, int width=0, char *dashes=0) |
see fl_line_style(int style, int width, char* dashes). | |
virtual void | loop (int x0, int y0, int x1, int y1, int x2, int y2, int x3, int y3) |
see fl_loop(int x0, int y0, int x1, int y1, int x2, int y2, int x3, int y3). | |
virtual void | loop (int x0, int y0, int x1, int y1, int x2, int y2) |
see fl_loop(int x0, int y0, int x1, int y1, int x2, int y2). | |
virtual int | not_clipped (int x, int y, int w, int h) |
see fl_not_clipped(int x, int y, int w, int h). | |
virtual void | pie (int x, int y, int w, int h, double a1, double a2) |
see fl_pie(int x, int y, int w, int h, double a1, double a2). | |
virtual void | point (int x, int y) |
see fl_point(int x, int y). | |
virtual void | polygon (int x0, int y0, int x1, int y1, int x2, int y2, int x3, int y3) |
see fl_polygon(int x0, int y0, int x1, int y1, int x2, int y2, int x3, int y3). | |
virtual void | polygon (int x0, int y0, int x1, int y1, int x2, int y2) |
see fl_polygon(int x0, int y0, int x1, int y1, int x2, int y2). | |
virtual void | pop_clip () |
see fl_pop_clip(). | |
virtual void | push_clip (int x, int y, int w, int h) |
see fl_push_clip(int x, int y, int w, int h). | |
virtual void | push_no_clip () |
see fl_push_no_clip(). | |
virtual void | rect (int x, int y, int w, int h) |
see fl_rect(int x, int y, int w, int h). | |
virtual void | rectf (int x, int y, int w, int h) |
see fl_rectf(int x, int y, int w, int h). | |
virtual void | rtl_draw (const char *str, int n, int x, int y) |
see fl_rtl_draw(const char *str, int n, int x, int y). | |
virtual void | transformed_vertex (double xf, double yf) |
see fl_transformed_vertex(double xf, double yf). | |
virtual void | vertex (double x, double y) |
see fl_vertex(double x, double y). | |
virtual void | xyline (int x, int y, int x1, int y2, int x3) |
see fl_xyline(int x, int y, int x1, int y2, int x3). | |
virtual void | xyline (int x, int y, int x1, int y2) |
see fl_xyline(int x, int y, int x1, int y2). | |
virtual void | xyline (int x, int y, int x1) |
see fl_xyline(int x, int y, int x1). | |
virtual void | yxline (int x, int y, int y1, int x2, int y3) |
see fl_yxline(int x, int y, int y1, int x2, int y3). | |
virtual void | yxline (int x, int y, int y1, int x2) |
see fl_yxline(int x, int y, int y1, int x2). | |
virtual void | yxline (int x, int y, int y1) |
see fl_yxline(int x, int y, int y1). | |
Friends | |
void | fl_arc (int x, int y, int w, int h, double a1, double a2) |
Draw ellipse sections using integer coordinates. | |
void | fl_arc (double x, double y, double r, double start, double end) |
Add a series of points to the current path on the arc of a circle; you can get elliptical paths by using scale and rotate before calling fl_arc(). | |
void | fl_begin_complex_polygon () |
Starts drawing a complex filled polygon. | |
void | fl_begin_line () |
Starts drawing a list of lines. | |
void | fl_begin_loop () |
Starts drawing a closed sequence of lines. | |
void | fl_begin_points () |
Starts drawing a list of points. | |
void | fl_begin_polygon () |
Starts drawing a convex filled polygon. | |
class | Fl_Bitmap |
void | fl_circle (double x, double y, double r) |
fl_circle() is equivalent to fl_arc(x,y,r,0,360), but may be faster. | |
int | fl_clip_box (int x, int y, int w, int h, int &X, int &Y, int &W, int &H) |
Intersects the rectangle with the current clip region and returns the bounding box of the result. | |
void | fl_color (uchar r, uchar g, uchar b) |
Set the color for all subsequent drawing operations. | |
void | fl_color (Fl_Color c) |
Sets the color for all subsequent drawing operations. | |
void | fl_curve (double X0, double Y0, double X1, double Y1, double X2, double Y2, double X3, double Y3) |
Add a series of points on a Bezier curve to the path. | |
void | fl_draw (int angle, const char *str, int n, int x, int y) |
Draws an array of n characters starting at the given location, rotating angle degrees counterclockwise. | |
void | fl_draw (const char *str, int n, int x, int y) |
Draws an array of n characters starting at the given location. | |
void | fl_draw_image (Fl_Draw_Image_Cb cb, void *data, int X, int Y, int W, int H, int D) |
Draw image using callback function to generate image data. | |
void | fl_draw_image (const uchar *buf, int X, int Y, int W, int H, int D, int L) |
Draw an 8-bit per color RGB or luminance image. | |
FL_EXPORT void | fl_draw_image_mono (Fl_Draw_Image_Cb cb, void *data, int X, int Y, int W, int H, int D) |
Draw gray-scale image using callback function to generate image data. | |
void | fl_draw_image_mono (const uchar *buf, int X, int Y, int W, int H, int D, int L) |
Draw a gray-scale (1 channel) image. | |
void | fl_end_complex_polygon () |
Ends complex filled polygon, and draws. | |
void | fl_end_line () |
Ends list of lines, and draws. | |
void | fl_end_loop () |
Ends closed sequence of lines, and draws. | |
void | fl_end_points () |
Ends list of points, and draws. | |
void | fl_end_polygon () |
Ends convex filled polygon, and draws. | |
void | fl_font (Fl_Font face, Fl_Fontsize size) |
Sets the current font, which is then used in various drawing routines. | |
void | fl_gap () |
Call fl_gap() to separate loops of the path. | |
void | fl_line (int x, int y, int x1, int y1, int x2, int y2) |
Draws a line from (x,y) to (x1,y1) and another from (x1,y1) to (x2,y2). | |
void | fl_line (int x, int y, int x1, int y1) |
Draws a line from (x,y) to (x1,y1). | |
void | fl_line_style (int style, int width, char *dashes) |
Sets how to draw lines (the "pen"). | |
void | fl_loop (int x0, int y0, int x1, int y1, int x2, int y2, int x3, int y3) |
Outlines a 4-sided polygon with lines. | |
void | fl_loop (int x0, int y0, int x1, int y1, int x2, int y2) |
Outlines a 3-sided polygon with lines. | |
int | fl_not_clipped (int x, int y, int w, int h) |
Does the rectangle intersect the current clip region? | |
void | fl_pie (int x, int y, int w, int h, double a1, double a2) |
Draw filled ellipse sections using integer coordinates. | |
class | Fl_Pixmap |
void | fl_point (int x, int y) |
Draws a single pixel at the given coordinates. | |
void | fl_polygon (int x0, int y0, int x1, int y1, int x2, int y2, int x3, int y3) |
Fills a 4-sided polygon. | |
void | fl_polygon (int x0, int y0, int x1, int y1, int x2, int y2) |
Fills a 3-sided polygon. | |
void | fl_pop_clip () |
Restores the previous clip region. | |
class | Fl_PostScript_Graphics_Driver |
void | fl_push_clip (int x, int y, int w, int h) |
Intersects the current clip region with a rectangle and pushes this new region onto the stack. | |
void | fl_push_no_clip () |
Pushes an empty clip region onto the stack so nothing will be clipped. | |
void | fl_rect (int x, int y, int w, int h) |
Draws a 1-pixel border inside the given bounding box. | |
void | fl_rectf (int x, int y, int w, int h) |
Colors with current color a rectangle that exactly fills the given bounding box. | |
class | Fl_RGB_Image |
void | fl_rtl_draw (const char *str, int n, int x, int y) |
Draws an array of n characters right to left starting at given location. | |
void | fl_transformed_vertex (double xf, double yf) |
Adds coordinate pair to the vertex list without further transformations. | |
void | fl_vertex (double x, double y) |
Adds a single vertex to the current path. | |
void | fl_xyline (int x, int y, int x1, int y2, int x3) |
Draws a horizontal line from (x,y) to (x1,y), then a vertical from (x1,y) to (x1,y2) and then another horizontal from (x1,y2) to (x3,y2). | |
void | fl_xyline (int x, int y, int x1, int y2) |
Draws a horizontal line from (x,y) to (x1,y), then vertical from (x1,y) to (x1,y2). | |
void | fl_xyline (int x, int y, int x1) |
Draws a horizontal line from (x,y) to (x1,y). | |
void | fl_yxline (int x, int y, int y1, int x2, int y3) |
Draws a vertical line from (x,y) to (x,y1) then a horizontal from (x,y1) to (x2,y1), then another vertical from (x2,y1) to (x2,y3). | |
void | fl_yxline (int x, int y, int y1, int x2) |
Draws a vertical line from (x,y) to (x,y1), then a horizontal from (x,y1) to (x2,y1). | |
void | fl_yxline (int x, int y, int y1) |
Draws a vertical line from (x,y) to (x,y1). |
The protected virtual methods of this class are those that a graphics driver should implement to support all of FLTK drawing functions.
The public API for drawing operations is functionally presented in Drawing Things in FLTK and as function lists in the Drawing functions and Color & Font functions modules.
Fl_Graphics_Driver::Fl_Graphics_Driver | ( | ) | [inline, protected] |
The constructor.
void Fl_Graphics_Driver::arc | ( | int | x, | |
int | y, | |||
int | w, | |||
int | h, | |||
double | a1, | |||
double | a2 | |||
) | [protected, virtual] |
void Fl_Graphics_Driver::arc | ( | double | x, | |
double | y, | |||
double | r, | |||
double | start, | |||
double | end | |||
) | [protected, virtual] |
void Fl_Graphics_Driver::begin_complex_polygon | ( | ) | [protected, virtual] |
void Fl_Graphics_Driver::begin_line | ( | ) | [protected, virtual] |
see fl_begin_line().
void Fl_Graphics_Driver::begin_loop | ( | ) | [protected, virtual] |
see fl_begin_loop().
void Fl_Graphics_Driver::begin_points | ( | ) | [protected, virtual] |
see fl_begin_points().
void Fl_Graphics_Driver::begin_polygon | ( | ) | [protected, virtual] |
see fl_begin_polygon().
void Fl_Graphics_Driver::circle | ( | double | x, | |
double | y, | |||
double | r | |||
) | [protected, virtual] |
int Fl_Graphics_Driver::clip_box | ( | int | x, | |
int | y, | |||
int | w, | |||
int | h, | |||
int & | X, | |||
int & | Y, | |||
int & | W, | |||
int & | H | |||
) | [protected, virtual] |
see fl_color(uchar r, uchar g, uchar b).
Reimplemented in Fl_Quartz_Graphics_Driver, Fl_GDI_Graphics_Driver, and Fl_Xlib_Graphics_Driver.
virtual void Fl_Graphics_Driver::color | ( | Fl_Color | c | ) | [inline, protected, virtual] |
see fl_color(Fl_Color c).
Reimplemented in Fl_Quartz_Graphics_Driver, Fl_GDI_Graphics_Driver, and Fl_Xlib_Graphics_Driver.
void Fl_Graphics_Driver::curve | ( | double | X0, | |
double | Y0, | |||
double | X1, | |||
double | Y1, | |||
double | X2, | |||
double | Y2, | |||
double | X3, | |||
double | Y3 | |||
) | [protected, virtual] |
virtual void Fl_Graphics_Driver::draw | ( | Fl_Bitmap * | bm, | |
int | XP, | |||
int | YP, | |||
int | WP, | |||
int | HP, | |||
int | cx, | |||
int | cy | |||
) | [inline, protected, virtual] |
Draws an Fl_Bitmap object to the device.
Specifies a bounding box for the image, with the origin (upper left-hand corner) of the image offset by the cx and cy arguments.
Reimplemented in Fl_Quartz_Graphics_Driver, Fl_GDI_Graphics_Driver, Fl_Xlib_Graphics_Driver, and Fl_PostScript_Graphics_Driver.
virtual void Fl_Graphics_Driver::draw | ( | Fl_Pixmap * | pxm, | |
int | XP, | |||
int | YP, | |||
int | WP, | |||
int | HP, | |||
int | cx, | |||
int | cy | |||
) | [inline, protected, virtual] |
Draws an Fl_Pixmap object to the device.
Specifies a bounding box for the image, with the origin (upper left-hand corner) of the image offset by the cx and cy arguments.
Reimplemented in Fl_Quartz_Graphics_Driver, Fl_GDI_Graphics_Driver, Fl_Xlib_Graphics_Driver, and Fl_PostScript_Graphics_Driver.
virtual void Fl_Graphics_Driver::draw | ( | Fl_RGB_Image * | rgb, | |
int | XP, | |||
int | YP, | |||
int | WP, | |||
int | HP, | |||
int | cx, | |||
int | cy | |||
) | [inline, protected, virtual] |
Draws an Fl_RGB_Image object to the device.
Specifies a bounding box for the image, with the origin (upper left-hand corner) of the image offset by the cx and cy arguments.
Reimplemented in Fl_Quartz_Graphics_Driver, Fl_GDI_Graphics_Driver, Fl_Xlib_Graphics_Driver, and Fl_PostScript_Graphics_Driver.
virtual void Fl_Graphics_Driver::draw | ( | int | angle, | |
const char * | str, | |||
int | n, | |||
int | x, | |||
int | y | |||
) | [inline, protected, virtual] |
see fl_draw(int angle, const char *str, int n, int x, int y).
Reimplemented in Fl_Quartz_Graphics_Driver, Fl_GDI_Graphics_Driver, and Fl_Xlib_Graphics_Driver.
virtual void Fl_Graphics_Driver::draw | ( | const char * | str, | |
int | n, | |||
int | x, | |||
int | y | |||
) | [inline, protected, virtual] |
see fl_draw(const char *str, int n, int x, int y).
Reimplemented in Fl_Quartz_Graphics_Driver, Fl_GDI_Graphics_Driver, and Fl_Xlib_Graphics_Driver.
virtual void Fl_Graphics_Driver::draw_image | ( | Fl_Draw_Image_Cb | cb, | |
void * | data, | |||
int | X, | |||
int | Y, | |||
int | W, | |||
int | H, | |||
int | D = 3 | |||
) | [inline, protected, virtual] |
virtual void Fl_Graphics_Driver::draw_image | ( | const uchar * | buf, | |
int | X, | |||
int | Y, | |||
int | W, | |||
int | H, | |||
int | D = 3 , |
|||
int | L = 0 | |||
) | [inline, protected, virtual] |
virtual void Fl_Graphics_Driver::draw_image_mono | ( | Fl_Draw_Image_Cb | cb, | |
void * | data, | |||
int | X, | |||
int | Y, | |||
int | W, | |||
int | H, | |||
int | D = 1 | |||
) | [inline, protected, virtual] |
virtual void Fl_Graphics_Driver::draw_image_mono | ( | const uchar * | buf, | |
int | X, | |||
int | Y, | |||
int | W, | |||
int | H, | |||
int | D = 1 , |
|||
int | L = 0 | |||
) | [inline, protected, virtual] |
void Fl_Graphics_Driver::end_complex_polygon | ( | ) | [protected, virtual] |
void Fl_Graphics_Driver::end_line | ( | ) | [protected, virtual] |
see fl_end_line().
void Fl_Graphics_Driver::end_loop | ( | ) | [protected, virtual] |
see fl_end_loop().
void Fl_Graphics_Driver::end_points | ( | ) | [protected, virtual] |
see fl_end_points().
void Fl_Graphics_Driver::end_polygon | ( | ) | [protected, virtual] |
see fl_end_polygon().
virtual void Fl_Graphics_Driver::font | ( | Fl_Font | face, | |
Fl_Fontsize | size | |||
) | [inline, protected, virtual] |
see fl_font(Fl_Font face, Fl_Fontsize size).
Reimplemented in Fl_Quartz_Graphics_Driver, Fl_GDI_Graphics_Driver, and Fl_Xlib_Graphics_Driver.
void Fl_Graphics_Driver::gap | ( | ) | [protected, virtual] |
see fl_gap().
void Fl_Graphics_Driver::line | ( | int | x, | |
int | y, | |||
int | x1, | |||
int | y1, | |||
int | x2, | |||
int | y2 | |||
) | [protected, virtual] |
void Fl_Graphics_Driver::line | ( | int | x, | |
int | y, | |||
int | x1, | |||
int | y1 | |||
) | [protected, virtual] |
void Fl_Graphics_Driver::line_style | ( | int | style, | |
int | width = 0 , |
|||
char * | dashes = 0 | |||
) | [protected, virtual] |
void Fl_Graphics_Driver::loop | ( | int | x0, | |
int | y0, | |||
int | x1, | |||
int | y1, | |||
int | x2, | |||
int | y2, | |||
int | x3, | |||
int | y3 | |||
) | [protected, virtual] |
void Fl_Graphics_Driver::loop | ( | int | x0, | |
int | y0, | |||
int | x1, | |||
int | y1, | |||
int | x2, | |||
int | y2 | |||
) | [protected, virtual] |
int Fl_Graphics_Driver::not_clipped | ( | int | x, | |
int | y, | |||
int | w, | |||
int | h | |||
) | [protected, virtual] |
void Fl_Graphics_Driver::pie | ( | int | x, | |
int | y, | |||
int | w, | |||
int | h, | |||
double | a1, | |||
double | a2 | |||
) | [protected, virtual] |
void Fl_Graphics_Driver::point | ( | int | x, | |
int | y | |||
) | [protected, virtual] |
void Fl_Graphics_Driver::polygon | ( | int | x0, | |
int | y0, | |||
int | x1, | |||
int | y1, | |||
int | x2, | |||
int | y2, | |||
int | x3, | |||
int | y3 | |||
) | [protected, virtual] |
void Fl_Graphics_Driver::polygon | ( | int | x0, | |
int | y0, | |||
int | x1, | |||
int | y1, | |||
int | x2, | |||
int | y2 | |||
) | [protected, virtual] |
void Fl_Graphics_Driver::pop_clip | ( | ) | [protected, virtual] |
see fl_pop_clip().
void Fl_Graphics_Driver::push_clip | ( | int | x, | |
int | y, | |||
int | w, | |||
int | h | |||
) | [protected, virtual] |
void Fl_Graphics_Driver::push_no_clip | ( | ) | [protected, virtual] |
see fl_push_no_clip().
void Fl_Graphics_Driver::rect | ( | int | x, | |
int | y, | |||
int | w, | |||
int | h | |||
) | [protected, virtual] |
void Fl_Graphics_Driver::rectf | ( | int | x, | |
int | y, | |||
int | w, | |||
int | h | |||
) | [protected, virtual] |
virtual void Fl_Graphics_Driver::rtl_draw | ( | const char * | str, | |
int | n, | |||
int | x, | |||
int | y | |||
) | [inline, protected, virtual] |
see fl_rtl_draw(const char *str, int n, int x, int y).
Reimplemented in Fl_Quartz_Graphics_Driver, Fl_GDI_Graphics_Driver, and Fl_Xlib_Graphics_Driver.
void Fl_Graphics_Driver::transformed_vertex | ( | double | xf, | |
double | yf | |||
) | [protected, virtual] |
void Fl_Graphics_Driver::vertex | ( | double | x, | |
double | y | |||
) | [protected, virtual] |
void Fl_Graphics_Driver::xyline | ( | int | x, | |
int | y, | |||
int | x1, | |||
int | y2, | |||
int | x3 | |||
) | [protected, virtual] |
void Fl_Graphics_Driver::xyline | ( | int | x, | |
int | y, | |||
int | x1, | |||
int | y2 | |||
) | [protected, virtual] |
void Fl_Graphics_Driver::xyline | ( | int | x, | |
int | y, | |||
int | x1 | |||
) | [protected, virtual] |
void Fl_Graphics_Driver::yxline | ( | int | x, | |
int | y, | |||
int | y1, | |||
int | x2, | |||
int | y3 | |||
) | [protected, virtual] |
void Fl_Graphics_Driver::yxline | ( | int | x, | |
int | y, | |||
int | y1, | |||
int | x2 | |||
) | [protected, virtual] |
void Fl_Graphics_Driver::yxline | ( | int | x, | |
int | y, | |||
int | y1 | |||
) | [protected, virtual] |
void fl_arc | ( | int | x, | |
int | y, | |||
int | w, | |||
int | h, | |||
double | a1, | |||
double | a2 | |||
) | [friend] |
Draw ellipse sections using integer coordinates.
These functions match the rather limited circle drawing code provided by X and WIN32. The advantage over using fl_arc with floating point coordinates is that they are faster because they often use the hardware, and they draw much nicer small circles, since the small sizes are often hard-coded bitmaps.
If a complete circle is drawn it will fit inside the passed bounding box. The two angles are measured in degrees counterclockwise from 3 o'clock and are the starting and ending angle of the arc, a2
must be greater or equal to a1
.
fl_arc() draws a series of lines to approximate the arc. Notice that the integer version of fl_arc() has a different number of arguments than the double version fl_arc(double x, double y, double r, double start, double end)
[in] | x,y,w,h | bounding box of complete circle |
[in] | a1,a2 | start and end angles of arc measured in degrees counter-clockwise from 3 o'clock. a2 must be greater than or equal to a1 . |
void fl_arc | ( | double | x, | |
double | y, | |||
double | r, | |||
double | start, | |||
double | end | |||
) | [friend] |
Add a series of points to the current path on the arc of a circle; you can get elliptical paths by using scale and rotate before calling fl_arc().
[in] | x,y,r | center and radius of circular arc |
[in] | start,end | angles of start and end of arc measured in degrees counter-clockwise from 3 o'clock. If end is less than start then it draws the arc in a clockwise direction. |
void fl_begin_complex_polygon | ( | ) | [friend] |
Starts drawing a complex filled polygon.
The polygon may be concave, may have holes in it, or may be several disconnected pieces. Call fl_gap() to separate loops of the path.
To outline the polygon, use fl_begin_loop() and replace each fl_gap() with fl_end_loop();fl_begin_loop() pairs.
void fl_begin_points | ( | ) | [friend] |
Starts drawing a list of points.
Points are added to the list with fl_vertex()
void fl_circle | ( | double | x, | |
double | y, | |||
double | r | |||
) | [friend] |
fl_circle() is equivalent to fl_arc(x,y,r,0,360), but may be faster.
It must be the only thing in the path: if you want a circle as part of a complex polygon you must use fl_arc()
[in] | x,y,r | center and radius of circle |
int fl_clip_box | ( | int | x, | |
int | y, | |||
int | w, | |||
int | h, | |||
int & | X, | |||
int & | Y, | |||
int & | W, | |||
int & | H | |||
) | [friend] |
Intersects the rectangle with the current clip region and returns the bounding box of the result.
Returns non-zero if the resulting rectangle is different to the original. This can be used to limit the necessary drawing to a rectangle. W
and H
are set to zero if the rectangle is completely outside the region.
[in] | x,y,w,h | position and size of rectangle |
[out] | X,Y,W,H | position and size of resulting bounding box. W and H are set to zero if the rectangle is completely outside the region. |
Set the color for all subsequent drawing operations.
The closest possible match to the RGB color is used. The RGB color is used directly on TrueColor displays. For colormap visuals the nearest index in the gray ramp or color cube is used. If no valid graphical context (fl_gc) is available, the foreground is not set for the current window.
[in] | r,g,b | color components |
void fl_color | ( | Fl_Color | c | ) | [friend] |
Sets the color for all subsequent drawing operations.
For colormapped displays, a color cell will be allocated out of fl_colormap
the first time you use a color. If the colormap fills up then a least-squares algorithm is used to find the closest color. If no valid graphical context (fl_gc) is available, the foreground is not set for the current window.
[in] | c | color |
void fl_curve | ( | double | X0, | |
double | Y0, | |||
double | X1, | |||
double | Y1, | |||
double | X2, | |||
double | Y2, | |||
double | X3, | |||
double | Y3 | |||
) | [friend] |
Add a series of points on a Bezier curve to the path.
The curve ends (and two of the points) are at X0,Y0 and X3,Y3.
[in] | X0,Y0 | curve start point |
[in] | X1,Y1 | curve control point |
[in] | X2,Y2 | curve control point |
[in] | X3,Y3 | curve end point |
void fl_draw_image | ( | Fl_Draw_Image_Cb | cb, | |
void * | data, | |||
int | X, | |||
int | Y, | |||
int | W, | |||
int | H, | |||
int | D = 3 | |||
) | [friend] |
Draw image using callback function to generate image data.
You can generate the image as it is being drawn, or do arbitrary decompression of stored data, provided it can be decompressed to individual scan lines easily.
[in] | cb | callback function to generate scan line data |
[in] | data | user data passed to callback function |
[in] | X,Y | |
[in] | W,H | |
[in] | D |
cb
is called with the void*
data
user data pointer to allow access to a structure of information about the image, and the x
, y
, and w
of the scan line desired from the image. 0,0 is the upper-left corner of the image, not X
, Y
. A pointer to a buffer to put the data into is passed. You must copy w
pixels from scanline y
, starting at pixel x
, to this buffer.
Due to cropping, less than the whole image may be requested. So x
may be greater than zero, the first y
may be greater than zero, and w
may be less than W
. The buffer is long enough to store the entire W
* D
pixels, this is for convenience with some decompression schemes where you must decompress the entire line at once: decompress it into the buffer, and then if x
is not zero, copy the data over so the x'th
pixel is at the start of the buffer.
You can assume the y's
will be consecutive, except the first one may be greater than zero.
If D
is 4 or more, you must fill in the unused bytes with zero.
void fl_draw_image | ( | const uchar * | buf, | |
int | X, | |||
int | Y, | |||
int | W, | |||
int | H, | |||
int | D = 3 , |
|||
int | L = 0 | |||
) | [friend] |
Draw an 8-bit per color RGB or luminance image.
[in] | buf | points at the "r" data of the top-left pixel. Color data must be in r,g,b order. |
[in] | X,Y | position where to put top-left corner of image |
[in] | W,H | size of the image |
[in] | D | delta to add to the pointer between pixels. it may be any value greater than or equal to 3, or it can be negative to flip the image horizontally |
[in] | L | delta to add to the pointer between lines (if 0 is passed it uses W * D ), and may be larger than W * D to crop data, or negative to flip the image vertically |
show()
of any window in your program to get rid of the dithering if possible: Fl::visual(FL_RGB);
abs(D)
is less than 3, or by calling fl_draw_image_mono(). Only one 8-bit sample is used for each pixel, and on screens with different numbers of bits for red, green, and blue only gray colors are used. Setting D
greater than 1 will let you display one channel of a color image.
FL_EXPORT void fl_draw_image_mono | ( | Fl_Draw_Image_Cb | cb, | |
void * | data, | |||
int | X, | |||
int | Y, | |||
int | W, | |||
int | H, | |||
int | D | |||
) | [friend] |
Draw gray-scale image using callback function to generate image data.
void fl_draw_image_mono | ( | const uchar * | buf, | |
int | X, | |||
int | Y, | |||
int | W, | |||
int | H, | |||
int | D = 1 , |
|||
int | L = 0 | |||
) | [friend] |
Draw a gray-scale (1 channel) image.
void fl_font | ( | Fl_Font | face, | |
Fl_Fontsize | size | |||
) | [friend] |
Sets the current font, which is then used in various drawing routines.
You may call this outside a draw context if necessary to call fl_width(), but on X this will open the display.
The font is identified by a face
and a size
. The size of the font is measured in pixels and not "points". Lines should be spaced size
pixels apart or more.
void fl_gap | ( | ) | [friend] |
void fl_line_style | ( | int | style, | |
int | width = 0 , |
|||
char * | dashes = 0 | |||
) | [friend] |
Sets how to draw lines (the "pen").
If you change this it is your responsibility to set it back to the default using fl_line_style(0)
.
[in] | style | A bitmask which is a bitwise-OR of a line style, a cap style, and a join style. If you don't specify a dash type you will get a solid line. If you don't specify a cap or join type you will get a system-defined default of whatever value is fastest. |
[in] | width | The thickness of the lines in pixels. Zero results in the system defined default, which on both X and Windows is somewhat different and nicer than 1. |
[in] | dashes | A pointer to an array of dash lengths, measured in pixels. The first location is how long to draw a solid portion, the next is how long to draw the gap, then the solid, etc. It is terminated with a zero-length entry. A NULL pointer or a zero-length array results in a solid line. Odd array sizes are not supported and result in undefined behavior. |
The dashes
array does not work under Windows 95, 98 or Me, since those operating systems do not support complex line styles.
int fl_not_clipped | ( | int | x, | |
int | y, | |||
int | w, | |||
int | h | |||
) | [friend] |
Does the rectangle intersect the current clip region?
[in] | x,y,w,h | position and size of rectangle |
void fl_pie | ( | int | x, | |
int | y, | |||
int | w, | |||
int | h, | |||
double | a1, | |||
double | a2 | |||
) | [friend] |
Draw filled ellipse sections using integer coordinates.
Like fl_arc(), but fl_pie() draws a filled-in pie slice. This slice may extend outside the line drawn by fl_arc(); to avoid this use w - 1 and h - 1.
[in] | x,y,w,h | bounding box of complete circle |
[in] | a1,a2 | start and end angles of arc measured in degrees counter-clockwise from 3 o'clock. a2 must be greater than or equal to a1 . |
void fl_polygon | ( | int | x0, | |
int | y0, | |||
int | x1, | |||
int | y1, | |||
int | x2, | |||
int | y2, | |||
int | x3, | |||
int | y3 | |||
) | [friend] |
Fills a 4-sided polygon.
The polygon must be convex.
void fl_polygon | ( | int | x0, | |
int | y0, | |||
int | x1, | |||
int | y1, | |||
int | x2, | |||
int | y2 | |||
) | [friend] |
Fills a 3-sided polygon.
The polygon must be convex.
void fl_pop_clip | ( | ) | [friend] |
Restores the previous clip region.
You must call fl_pop_clip() once for every time you call fl_push_clip(). Unpredictable results may occur if the clip stack is not empty when you return to FLTK.
void fl_push_clip | ( | int | x, | |
int | y, | |||
int | w, | |||
int | h | |||
) | [friend] |
Intersects the current clip region with a rectangle and pushes this new region onto the stack.
[in] | x,y,w,h | position and size |
void fl_rect | ( | int | x, | |
int | y, | |||
int | w, | |||
int | h | |||
) | [friend] |
Draws a 1-pixel border inside the given bounding box.
This function is meant for quick drawing of simple boxes. The behavior is undefined for line widths that are not 1.
void fl_transformed_vertex | ( | double | xf, | |
double | yf | |||
) | [friend] |
Adds coordinate pair to the vertex list without further transformations.
[in] | xf,yf | transformed coordinate |
void fl_vertex | ( | double | x, | |
double | y | |||
) | [friend] |
Adds a single vertex to the current path.
[in] | x,y | coordinate |
const char * Fl_Graphics_Driver::device_type = "Fl_Graphics_Driver" [static] |
A string that identifies each subclass of Fl_Device.
Function type() applied to a device of this class returns this string.
Reimplemented from Fl_Device.
Reimplemented in Fl_Quartz_Graphics_Driver, Fl_GDI_Graphics_Driver, Fl_Xlib_Graphics_Driver, and Fl_PostScript_Graphics_Driver.