WindowServer: New API for Scaled Blit

This commit is contained in:
Christopher Dumas 2019-06-06 08:34:13 -07:00 committed by Andreas Kling
parent 90d924a97c
commit 908d9458c7
4 changed files with 6 additions and 6 deletions

View file

@ -1,5 +1,5 @@
[Screen]
Width=1080
Width=1024
Height=768
[Cursor]
@ -36,4 +36,4 @@ MenuSelectionColor=132,53,26
DoubleClickSpeed=250
[Background]
Mode=center
Mode=scaled

View file

@ -107,7 +107,7 @@ void WSCompositor::compose()
float hscale = (float)m_wallpaper->size().width() / (float)ws.size().width();
float vscale = (float)m_wallpaper->size().height() / (float)ws.size().height();
m_back_painter->blit_scaled(dirty_rect.location(), *m_wallpaper, dirty_rect, hscale, vscale);
m_back_painter->blit_scaled(dirty_rect, *m_wallpaper, dirty_rect, hscale, vscale);
}
}
}

View file

@ -204,9 +204,9 @@ void Painter::draw_bitmap(const Point& p, const GlyphBitmap& bitmap, Color color
}
}
void Painter::blit_scaled(const Point& position, const GraphicsBitmap& source, const Rect& src_rect, float hscale, float vscale)
void Painter::blit_scaled(const Rect& dst_rect_raw, const GraphicsBitmap& source, const Rect& src_rect, float hscale, float vscale)
{
auto dst_rect = Rect(position, src_rect.size()).translated(translation());
auto dst_rect = Rect(dst_rect_raw.location(), dst_rect_raw.size()).translated(translation());
auto clipped_rect = dst_rect.intersected(clip_rect());
if (clipped_rect.is_empty())
return;

View file

@ -29,7 +29,7 @@ public:
void blit_dimmed(const Point&, const GraphicsBitmap&, const Rect& src_rect);
void blit_tiled(const Point&, const GraphicsBitmap&, const Rect& src_rect);
void blit_offset(const Point&, const GraphicsBitmap&, const Rect& src_rect, const Point&);
void blit_scaled(const Point&, const GraphicsBitmap&, const Rect&, float, float);
void blit_scaled(const Rect&, const GraphicsBitmap&, const Rect&, float, float);
void draw_text(const Rect&, const StringView&, const Font&, TextAlignment = TextAlignment::TopLeft, Color = Color::Black, TextElision = TextElision::None);
void draw_text(const Rect&, const StringView&, TextAlignment = TextAlignment::TopLeft, Color = Color::Black, TextElision = TextElision::None);
void draw_glyph(const Point&, char, Color);