mirror of
https://github.com/fltk/fltk.git
synced 2026-05-25 17:42:14 +08:00
Fix: Drawing bugs on Windows at very large scales (#1144)
This commit is contained in:
@@ -1199,7 +1199,6 @@ void Fl_Scalable_Graphics_Driver::draw_image_mono_unscaled(Fl_Draw_Image_Cb cb,
|
||||
float Fl_Scalable_Graphics_Driver::override_scale() {
|
||||
float s = scale();
|
||||
if (s != 1.f) {
|
||||
push_no_clip();
|
||||
scale(1.f);
|
||||
}
|
||||
return s;
|
||||
@@ -1208,7 +1207,6 @@ float Fl_Scalable_Graphics_Driver::override_scale() {
|
||||
void Fl_Scalable_Graphics_Driver::restore_scale(float s) {
|
||||
if (s != 1.f) {
|
||||
scale(s);
|
||||
pop_clip();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1493,7 +1493,8 @@ char Fl_Cairo_Graphics_Driver::can_do_alpha_blending() {
|
||||
float Fl_Cairo_Graphics_Driver::override_scale() {
|
||||
float s = scale();
|
||||
if (s != 1.f && Fl_Display_Device::display_device()->is_current()) {
|
||||
scale(1);
|
||||
cairo_scale(cairo_, 1./s, 1./s);
|
||||
Fl_Graphics_Driver::scale(1);
|
||||
}
|
||||
return s;
|
||||
}
|
||||
@@ -1501,7 +1502,8 @@ float Fl_Cairo_Graphics_Driver::override_scale() {
|
||||
|
||||
void Fl_Cairo_Graphics_Driver::restore_scale(float s) {
|
||||
if (s != 1.f && Fl_Display_Device::display_device()->is_current()) {
|
||||
scale(s);
|
||||
cairo_scale(cairo_, s, s);
|
||||
Fl_Graphics_Driver::scale(s);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -159,13 +159,15 @@ void Fl_Quartz_Graphics_Driver::cache_size(Fl_Image *img, int &width, int &heigh
|
||||
float Fl_Quartz_Graphics_Driver::override_scale() {
|
||||
float s = scale();
|
||||
if (s != 1.f && Fl_Display_Device::display_device()->is_current()) {
|
||||
scale(1);
|
||||
CGContextScaleCTM(gc_, 1./s, 1./s);
|
||||
Fl_Graphics_Driver::scale(1);
|
||||
}
|
||||
return s;
|
||||
}
|
||||
|
||||
void Fl_Quartz_Graphics_Driver::restore_scale(float s) {
|
||||
if (s != 1.f && Fl_Display_Device::display_device()->is_current()) {
|
||||
scale(s);
|
||||
CGContextScaleCTM(gc_, s, s);
|
||||
Fl_Graphics_Driver::scale(s);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user