From 4df3376ba90ef5d5d88ccba145850c7a23a0d36f Mon Sep 17 00:00:00 2001 From: Manolo Gouy Date: Fri, 26 Feb 2016 15:57:11 +0000 Subject: Rename Fl_Xlib_Graphics_Driver.h to Fl_Xlib_Graphics_Driver.H git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11224 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- .../Xlib/Fl_Translated_Xlib_Graphics_Driver.H | 2 +- src/drivers/Xlib/Fl_Xlib_Graphics_Driver.H | 126 +++++++++++++++++++++ src/drivers/Xlib/Fl_Xlib_Graphics_Driver.cxx | 2 +- src/drivers/Xlib/Fl_Xlib_Graphics_Driver_arci.cxx | 2 +- src/drivers/Xlib/Fl_Xlib_Graphics_Driver_color.cxx | 2 +- .../Xlib/Fl_Xlib_Graphics_Driver_font_xft.cxx | 2 +- src/drivers/Xlib/Fl_Xlib_Graphics_Driver_image.cxx | 2 +- .../Xlib/Fl_Xlib_Graphics_Driver_line_style.cxx | 2 +- src/drivers/Xlib/Fl_Xlib_Graphics_Driver_rect.cxx | 2 +- .../Xlib/Fl_Xlib_Graphics_Driver_vertex.cxx | 2 +- 10 files changed, 135 insertions(+), 9 deletions(-) create mode 100644 src/drivers/Xlib/Fl_Xlib_Graphics_Driver.H (limited to 'src/drivers') diff --git a/src/drivers/Xlib/Fl_Translated_Xlib_Graphics_Driver.H b/src/drivers/Xlib/Fl_Translated_Xlib_Graphics_Driver.H index b90b1c47f..f65078d47 100644 --- a/src/drivers/Xlib/Fl_Translated_Xlib_Graphics_Driver.H +++ b/src/drivers/Xlib/Fl_Translated_Xlib_Graphics_Driver.H @@ -21,7 +21,7 @@ #ifndef FL_DOXYGEN -#include +#include /* graphics driver that translates all graphics coordinates before calling Xlib */ class Fl_Translated_Xlib_Graphics_Driver : public Fl_Xlib_Graphics_Driver { diff --git a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver.H b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver.H new file mode 100644 index 000000000..c8d12d880 --- /dev/null +++ b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver.H @@ -0,0 +1,126 @@ +// +// "$Id$" +// +// Definition of classes Fl_Graphics_Driver, Fl_Surface_Device, Fl_Display_Device +// for the Fast Light Tool Kit (FLTK). +// +// Copyright 2010-2016 by Bill Spitzak and others. +// +// This library is free software. Distribution and use rights are outlined in +// the file "COPYING" which should have been included with this file. If this +// file is missing or damaged, see the license at: +// +// http://www.fltk.org/COPYING.php +// +// Please report all bugs and problems on the following page: +// +// http://www.fltk.org/str.php +// + +/** + \file Fl_Xlib_Graphics_Driver.H + \brief Definition of X11 Xlib graphics driver. + */ + +#ifndef FL_CFG_GFX_XLIB_H +#define FL_CFG_GFX_XLIB_H + +#include + +/** + \brief The Xlib-specific graphics class. + * + This class is implemented only on the Xlib platform. + */ +class FL_EXPORT Fl_Xlib_Graphics_Driver : public Fl_Graphics_Driver { +protected: + static GC gc_; + uchar **mask_bitmap_; + uchar **mask_bitmap() {return mask_bitmap_;} + void mask_bitmap(uchar **value) { mask_bitmap_ = value; } +public: + Fl_Xlib_Graphics_Driver(void); + virtual int has_feature(driver_feature mask) { return mask & NATIVE; } + virtual void *gc() { return gc_; } + char can_do_alpha_blending(); + + // --- bitmap stuff + Fl_Bitmask create_bitmask(int w, int h, const uchar *array); + void delete_bitmask(Fl_Bitmask bm); + void draw(const char* str, int n, int x, int y); + void draw(int angle, const char *str, int n, int x, int y); + void rtl_draw(const char* str, int n, int x, int y); + void font(Fl_Font face, Fl_Fontsize size); + void draw(Fl_Pixmap *pxm, int XP, int YP, int WP, int HP, int cx, int cy); + void draw(Fl_Bitmap *pxm, int XP, int YP, int WP, int HP, int cx, int cy); + void draw(Fl_RGB_Image *img, int XP, int YP, int WP, int HP, int cx, int cy); + void draw_image(const uchar* buf, int X,int Y,int W,int H, int D=3, int L=0); + void draw_image(Fl_Draw_Image_Cb cb, void* data, int X,int Y,int W,int H, int D=3); + void draw_image_mono(const uchar* buf, int X,int Y,int W,int H, int D=1, int L=0); + void draw_image_mono(Fl_Draw_Image_Cb cb, void* data, int X,int Y,int W,int H, int D=1); + fl_uintptr_t cache(Fl_Pixmap *img, int w, int h, const char *const*array); + fl_uintptr_t cache(Fl_Bitmap *img, int w, int h, const uchar *array); + void uncache(Fl_RGB_Image *img, fl_uintptr_t &id_, fl_uintptr_t &mask_); + double width(const char *str, int n); + double width(unsigned int c); + void text_extents(const char*, int n, int& dx, int& dy, int& w, int& h); + int height(); + int descent(); + void copy_offscreen(int x, int y, int w, int h, Fl_Offscreen pixmap, int srcx, int srcy); +#if ! defined(FL_DOXYGEN) + void copy_offscreen_with_alpha(int x, int y, int w, int h, Fl_Offscreen pixmap, int srcx, int srcy); +#endif +protected: + // --- implementation is in src/fl_rect.cxx which includes src/cfg_gfx/xlib_rect.cxx + void point(int x, int y); + void rect(int x, int y, int w, int h); + void rectf(int x, int y, int w, int h); + void line(int x, int y, int x1, int y1); + void line(int x, int y, int x1, int y1, int x2, int y2); + void xyline(int x, int y, int x1); + void xyline(int x, int y, int x1, int y2); + void xyline(int x, int y, int x1, int y2, int x3); + void yxline(int x, int y, int y1); + void yxline(int x, int y, int y1, int x2); + void yxline(int x, int y, int y1, int x2, int y3); + void loop(int x0, int y0, int x1, int y1, int x2, int y2); + void loop(int x0, int y0, int x1, int y1, int x2, int y2, int x3, int y3); + void polygon(int x0, int y0, int x1, int y1, int x2, int y2); + void polygon(int x0, int y0, int x1, int y1, int x2, int y2, int x3, int y3); + // --- clipping + void push_clip(int x, int y, int w, int h); + int clip_box(int x, int y, int w, int h, int &X, int &Y, int &W, int &H); + int not_clipped(int x, int y, int w, int h); + void push_no_clip(); + void pop_clip(); + void restore_clip(); + // --- implementation is in src/fl_vertex.cxx which includes src/cfg_gfx/xxx_rect.cxx + void begin_complex_polygon(); + void transformed_vertex(double xf, double yf); + void vertex(double x, double y); + void end_points(); + void end_line(); + void end_loop(); + void end_polygon(); + void end_complex_polygon(); + void gap(); + void circle(double x, double y, double r); + // --- implementation is in src/fl_arc.cxx which includes src/cfg_gfx/xxx_arc.cxx if needed + // using void Fl_Graphics_Driver::arc(double x, double y, double r, double start, double end); + // --- implementation is in src/fl_arci.cxx which includes src/cfg_gfx/xxx_arci.cxx + void arc(int x, int y, int w, int h, double a1, double a2); + void pie(int x, int y, int w, int h, double a1, double a2); + // --- implementation is in src/fl_line_style.cxx which includes src/cfg_gfx/xxx_line_style.cxx + void line_style(int style, int width=0, char* dashes=0); + // --- implementation is in src/fl_color.cxx which includes src/cfg_gfx/xxx_color.cxx + void color(Fl_Color c); + Fl_Color color() { return color_; } + void color(uchar r, uchar g, uchar b); +}; + + +#endif // FL_CFG_GFX_XLIB_H + +// +// End of "$Id$". +// diff --git a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver.cxx b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver.cxx index 76060a62c..4caa5e138 100644 --- a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver.cxx +++ b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver.cxx @@ -18,7 +18,7 @@ #include "../../config_lib.h" -#include "Fl_Xlib_Graphics_Driver.h" +#include "Fl_Xlib_Graphics_Driver.H" #include #include diff --git a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_arci.cxx b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_arci.cxx index e667fd9ba..f20c47d60 100644 --- a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_arci.cxx +++ b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_arci.cxx @@ -16,7 +16,7 @@ // http://www.fltk.org/str.php // -#include "Fl_Xlib_Graphics_Driver.h" +#include "Fl_Xlib_Graphics_Driver.H" #include /** diff --git a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_color.cxx b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_color.cxx index 53768e236..8e6c1038c 100644 --- a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_color.cxx +++ b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_color.cxx @@ -31,7 +31,7 @@ // being used to index arrays. So I always copy them to an integer // before use. -#include "Fl_Xlib_Graphics_Driver.h" +#include "Fl_Xlib_Graphics_Driver.H" # include "../../Fl_XColor.H" # include # include diff --git a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_font_xft.cxx b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_font_xft.cxx index 274b6ec68..ea2cacbda 100644 --- a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_font_xft.cxx +++ b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_font_xft.cxx @@ -18,7 +18,7 @@ // Select fonts from the FLTK font table. #include "../../flstring.h" -#include "Fl_Xlib_Graphics_Driver.h" +#include "Fl_Xlib_Graphics_Driver.H" #include #include #include diff --git a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_image.cxx b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_image.cxx index 53aa48a13..e1da7df3f 100644 --- a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_image.cxx +++ b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_image.cxx @@ -45,7 +45,7 @@ //////////////////////////////////////////////////////////////// -#include "Fl_Xlib_Graphics_Driver.h" +#include "Fl_Xlib_Graphics_Driver.H" # include # include # include diff --git a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_line_style.cxx b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_line_style.cxx index 5763ea70f..0f47c52e0 100644 --- a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_line_style.cxx +++ b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_line_style.cxx @@ -32,7 +32,7 @@ #include "../../flstring.h" #include -#include "Fl_Xlib_Graphics_Driver.h" +#include "Fl_Xlib_Graphics_Driver.H" // We save the current line width (absolute value) here. // This is currently used only for X11 clipping, see src/fl_rect.cxx. diff --git a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_rect.cxx b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_rect.cxx index 8fee467c3..371f5eec6 100644 --- a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_rect.cxx +++ b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_rect.cxx @@ -34,7 +34,7 @@ #include #include -#include "Fl_Xlib_Graphics_Driver.h" +#include "Fl_Xlib_Graphics_Driver.H" #ifndef SHRT_MAX diff --git a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_vertex.cxx b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_vertex.cxx index 7b7f20f1f..65516b856 100644 --- a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_vertex.cxx +++ b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_vertex.cxx @@ -25,7 +25,7 @@ simple 2D transformations, implemented for X11 Xlib. */ -#include "Fl_Xlib_Graphics_Driver.h" +#include "Fl_Xlib_Graphics_Driver.H" #include #include -- cgit v1.2.3