Various fixes required by device virtualization in fl_vertex.cxx

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@9239 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
Manolo Gouy 2012-02-17 09:47:04 +00:00
parent da5c3c2cbc
commit 435e7f5e23

View File

@ -132,7 +132,7 @@ void Fl_Graphics_Driver::end_points() {
void Fl_Graphics_Driver::end_line() {
if (n < 2) {
fl_end_points();
end_points();
return;
}
#if defined(USE_X11)
@ -158,14 +158,14 @@ void Fl_Graphics_Driver::fixloop() { // remove equal points from closed path
void Fl_Graphics_Driver::end_loop() {
fixloop();
if (n>2) fl_transformed_vertex((COORD_T)p[0].x, (COORD_T)p[0].y);
fl_end_line();
if (n>2) transformed_vertex((COORD_T)p[0].x, (COORD_T)p[0].y);
end_line();
}
void Fl_Graphics_Driver::end_polygon() {
fixloop();
if (n < 3) {
fl_end_line();
end_line();
return;
}
#if defined(USE_X11)
@ -190,7 +190,7 @@ void Fl_Graphics_Driver::end_polygon() {
}
void Fl_Graphics_Driver::begin_complex_polygon() {
fl_begin_polygon();
begin_polygon();
gap_ = 0;
#if defined(WIN32)
numcount = 0;
@ -200,7 +200,7 @@ void Fl_Graphics_Driver::begin_complex_polygon() {
void Fl_Graphics_Driver::gap() {
while (n>gap_+2 && p[n-1].x == p[gap_].x && p[n-1].y == p[gap_].y) n--;
if (n > gap_+2) {
fl_transformed_vertex((COORD_T)p[gap_].x, (COORD_T)p[gap_].y);
transformed_vertex((COORD_T)p[gap_].x, (COORD_T)p[gap_].y);
#if defined(WIN32)
counts[numcount++] = n-gap_;
#endif
@ -211,9 +211,9 @@ void Fl_Graphics_Driver::gap() {
}
void Fl_Graphics_Driver::end_complex_polygon() {
fl_gap();
gap();
if (n < 3) {
fl_end_line();
end_line();
return;
}
#if defined(USE_X11)
@ -242,8 +242,8 @@ void Fl_Graphics_Driver::end_complex_polygon() {
// See fl_arc.c for portable version.
void Fl_Graphics_Driver::circle(double x, double y,double r) {
double xt = fl_transform_x(x,y);
double yt = fl_transform_y(x,y);
double xt = transform_x(x,y);
double yt = transform_y(x,y);
double rx = r * (m.c ? sqrt(m.a*m.a+m.c*m.c) : fabs(m.a));
double ry = r * (m.b ? sqrt(m.b*m.b+m.d*m.d) : fabs(m.d));
int llx = (int)rint(xt-rx);