diff options
| author | Manolo Gouy <Manolo> | 2011-02-24 18:02:11 +0000 |
|---|---|---|
| committer | Manolo Gouy <Manolo> | 2011-02-24 18:02:11 +0000 |
| commit | 27987c6ee00273948920015c1da851f150279154 (patch) | |
| tree | 44322dc981ccd297b4d52e53f46d91e27468fccf | |
| parent | 278c821ff46f9232b0ab9f0e08077b5c8c773178 (diff) | |
Made struct matrix a subclass of Fl_Graphics_Device class to avoid collision
with application-defined names.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8471 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
| -rw-r--r-- | FL/Fl_Device.H | 23 | ||||
| -rw-r--r-- | src/Fl_Device.cxx | 2 | ||||
| -rw-r--r-- | src/fl_rect.cxx | 4 | ||||
| -rw-r--r-- | src/fl_vertex.cxx | 2 |
4 files changed, 16 insertions, 15 deletions
diff --git a/FL/Fl_Device.H b/FL/Fl_Device.H index 41428e434..953d9fb4b 100644 --- a/FL/Fl_Device.H +++ b/FL/Fl_Device.H @@ -55,15 +55,6 @@ FL_EXPORT extern Fl_Graphics_Driver *fl_graphics_driver; */ typedef void (*Fl_Draw_Image_Cb)(void* data,int x,int y,int w,uchar* buf); -#define REGION_STACK_SIZE 10 -#define REGION_STACK_MAX (REGION_STACK_SIZE - 1) - -#define MATRIX_STACK_SIZE 32 -#define MATRIX_STACK_MAX (MATRIX_STACK_SIZE - 1) -/** A 2D coordinate transformation matrix - */ -struct matrix {double a, b, c, d, x, y;}; - // typedef what the x,y fields in a point are: #ifdef WIN32 typedef int COORD_T; @@ -97,6 +88,8 @@ public: virtual const char *class_name() {return class_id;}; }; +#define FL_REGION_STACK_SIZE 10 +#define FL_MATRIX_STACK_SIZE 32 /** \brief A virtual class subclassed for each graphics driver FLTK uses. * @@ -106,19 +99,27 @@ public: in the \ref fl_drawings and \ref fl_attributes modules. */ class FL_EXPORT Fl_Graphics_Driver : public Fl_Device { +public: + /** A 2D coordinate transformation matrix + */ + struct matrix {double a, b, c, d, x, y;}; +private: + static const matrix m0; Fl_Font font_; // current font Fl_Fontsize size_; // current font size Fl_Color color_; // current color enum {LINE, LOOP, POLYGON, POINT_}; int sptr; - matrix stack[MATRIX_STACK_SIZE]; + static const int matrix_stack_size = FL_MATRIX_STACK_SIZE; + matrix stack[FL_MATRIX_STACK_SIZE]; matrix m; int n, p_size, gap_; XPOINT *p; int what; int fl_clip_state_number; int rstackptr; - Fl_Region rstack[REGION_STACK_MAX]; + static const int region_stack_max = FL_REGION_STACK_SIZE - 1; + Fl_Region rstack[FL_REGION_STACK_SIZE]; #ifdef WIN32 int numcount; int counts[20]; diff --git a/src/Fl_Device.cxx b/src/Fl_Device.cxx index 70d7f5fa3..54a3224a3 100644 --- a/src/Fl_Device.cxx +++ b/src/Fl_Device.cxx @@ -51,7 +51,7 @@ void Fl_Surface_Device::set_current(void) _surface = this; } -static matrix m0 = {1, 0, 0, 1, 0, 0}; +const Fl_Graphics_Driver::matrix Fl_Graphics_Driver::m0 = {1, 0, 0, 1, 0, 0}; Fl_Graphics_Driver::Fl_Graphics_Driver() { font_ = 0; diff --git a/src/fl_rect.cxx b/src/fl_rect.cxx index 703dd82bd..adba7a909 100644 --- a/src/fl_rect.cxx +++ b/src/fl_rect.cxx @@ -590,14 +590,14 @@ void Fl_Graphics_Driver::push_clip(int x, int y, int w, int h) { # error unsupported platform #endif } - if (rstackptr < REGION_STACK_MAX) rstack[++rstackptr] = r; + if (rstackptr < region_stack_max) rstack[++rstackptr] = r; else Fl::warning("fl_push_clip: clip stack overflow!\n"); fl_restore_clip(); } // make there be no clip (used by fl_begin_offscreen() only!) void Fl_Graphics_Driver::push_no_clip() { - if (rstackptr < REGION_STACK_MAX) rstack[++rstackptr] = 0; + if (rstackptr < region_stack_max) rstack[++rstackptr] = 0; else Fl::warning("fl_push_no_clip: clip stack overflow!\n"); fl_restore_clip(); } diff --git a/src/fl_vertex.cxx b/src/fl_vertex.cxx index 478d85474..c63c8c54a 100644 --- a/src/fl_vertex.cxx +++ b/src/fl_vertex.cxx @@ -45,7 +45,7 @@ #include <stdlib.h> void Fl_Graphics_Driver::push_matrix() { - if (sptr==MATRIX_STACK_SIZE) + if (sptr==matrix_stack_size) Fl::error("fl_push_matrix(): matrix stack overflow."); else stack[sptr++] = m; |
