mirror of
https://github.com/fltk/fltk.git
synced 2026-06-01 06:14:28 +08:00
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:
+10
-10
@@ -132,7 +132,7 @@ void Fl_Graphics_Driver::end_points() {
|
|||||||
|
|
||||||
void Fl_Graphics_Driver::end_line() {
|
void Fl_Graphics_Driver::end_line() {
|
||||||
if (n < 2) {
|
if (n < 2) {
|
||||||
fl_end_points();
|
end_points();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#if defined(USE_X11)
|
#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() {
|
void Fl_Graphics_Driver::end_loop() {
|
||||||
fixloop();
|
fixloop();
|
||||||
if (n>2) fl_transformed_vertex((COORD_T)p[0].x, (COORD_T)p[0].y);
|
if (n>2) transformed_vertex((COORD_T)p[0].x, (COORD_T)p[0].y);
|
||||||
fl_end_line();
|
end_line();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Fl_Graphics_Driver::end_polygon() {
|
void Fl_Graphics_Driver::end_polygon() {
|
||||||
fixloop();
|
fixloop();
|
||||||
if (n < 3) {
|
if (n < 3) {
|
||||||
fl_end_line();
|
end_line();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#if defined(USE_X11)
|
#if defined(USE_X11)
|
||||||
@@ -190,7 +190,7 @@ void Fl_Graphics_Driver::end_polygon() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Fl_Graphics_Driver::begin_complex_polygon() {
|
void Fl_Graphics_Driver::begin_complex_polygon() {
|
||||||
fl_begin_polygon();
|
begin_polygon();
|
||||||
gap_ = 0;
|
gap_ = 0;
|
||||||
#if defined(WIN32)
|
#if defined(WIN32)
|
||||||
numcount = 0;
|
numcount = 0;
|
||||||
@@ -200,7 +200,7 @@ void Fl_Graphics_Driver::begin_complex_polygon() {
|
|||||||
void Fl_Graphics_Driver::gap() {
|
void Fl_Graphics_Driver::gap() {
|
||||||
while (n>gap_+2 && p[n-1].x == p[gap_].x && p[n-1].y == p[gap_].y) n--;
|
while (n>gap_+2 && p[n-1].x == p[gap_].x && p[n-1].y == p[gap_].y) n--;
|
||||||
if (n > gap_+2) {
|
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)
|
#if defined(WIN32)
|
||||||
counts[numcount++] = n-gap_;
|
counts[numcount++] = n-gap_;
|
||||||
#endif
|
#endif
|
||||||
@@ -211,9 +211,9 @@ void Fl_Graphics_Driver::gap() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Fl_Graphics_Driver::end_complex_polygon() {
|
void Fl_Graphics_Driver::end_complex_polygon() {
|
||||||
fl_gap();
|
gap();
|
||||||
if (n < 3) {
|
if (n < 3) {
|
||||||
fl_end_line();
|
end_line();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#if defined(USE_X11)
|
#if defined(USE_X11)
|
||||||
@@ -242,8 +242,8 @@ void Fl_Graphics_Driver::end_complex_polygon() {
|
|||||||
// See fl_arc.c for portable version.
|
// See fl_arc.c for portable version.
|
||||||
|
|
||||||
void Fl_Graphics_Driver::circle(double x, double y,double r) {
|
void Fl_Graphics_Driver::circle(double x, double y,double r) {
|
||||||
double xt = fl_transform_x(x,y);
|
double xt = transform_x(x,y);
|
||||||
double yt = fl_transform_y(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 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));
|
double ry = r * (m.b ? sqrt(m.b*m.b+m.d*m.d) : fabs(m.d));
|
||||||
int llx = (int)rint(xt-rx);
|
int llx = (int)rint(xt-rx);
|
||||||
|
|||||||
Reference in New Issue
Block a user