mirror of
https://github.com/RGBCube/serenity
synced 2025-05-14 06:04:57 +00:00
LibPDF+PDFViewer: Extract Renderer::apply_page_rotation()
No behavior change.
This commit is contained in:
parent
5e9395b808
commit
03fab7089a
3 changed files with 15 additions and 9 deletions
|
@ -350,15 +350,7 @@ PDF::PDFErrorOr<NonnullRefPtr<Gfx::Bitmap>> PDFViewer::render_page(u32 page_inde
|
|||
return bitmap;
|
||||
}
|
||||
|
||||
int rotation_count = ((page.rotate + m_rotations) / 90) % 4;
|
||||
if (rotation_count == 1)
|
||||
bitmap = TRY(bitmap->rotated(Gfx::RotationDirection::Clockwise));
|
||||
else if (rotation_count == 2)
|
||||
bitmap = TRY(bitmap->rotated(Gfx::RotationDirection::Flip));
|
||||
else if (rotation_count == 3)
|
||||
bitmap = TRY(bitmap->rotated(Gfx::RotationDirection::CounterClockwise));
|
||||
|
||||
return bitmap;
|
||||
return TRY(PDF::Renderer::apply_page_rotation(bitmap, page, m_rotations));
|
||||
}
|
||||
|
||||
PDF::PDFErrorOr<void> PDFViewer::cache_page_dimensions(bool recalculate_fixed_info)
|
||||
|
|
|
@ -50,6 +50,18 @@ PDFErrorsOr<void> Renderer::render(Document& document, Page const& page, RefPtr<
|
|||
return Renderer(document, page, bitmap, background_color, rendering_preferences).render();
|
||||
}
|
||||
|
||||
ErrorOr<NonnullRefPtr<Gfx::Bitmap>> Renderer::apply_page_rotation(NonnullRefPtr<Gfx::Bitmap> bitmap, Page const& page, int extra_degrees)
|
||||
{
|
||||
int rotation_count = ((page.rotate + extra_degrees) / 90) % 4;
|
||||
if (rotation_count == 1)
|
||||
bitmap = TRY(bitmap->rotated(Gfx::RotationDirection::Clockwise));
|
||||
else if (rotation_count == 2)
|
||||
bitmap = TRY(bitmap->rotated(Gfx::RotationDirection::Flip));
|
||||
else if (rotation_count == 3)
|
||||
bitmap = TRY(bitmap->rotated(Gfx::RotationDirection::CounterClockwise));
|
||||
return bitmap;
|
||||
}
|
||||
|
||||
static void rect_path(Gfx::Path& path, float x, float y, float width, float height)
|
||||
{
|
||||
path.move_to({ x, y });
|
||||
|
|
|
@ -104,6 +104,8 @@ class Renderer {
|
|||
public:
|
||||
static PDFErrorsOr<void> render(Document&, Page const&, RefPtr<Gfx::Bitmap>, Color background_color, RenderingPreferences preferences);
|
||||
|
||||
static ErrorOr<NonnullRefPtr<Gfx::Bitmap>> apply_page_rotation(NonnullRefPtr<Gfx::Bitmap>, Page const&, int extra_degrees = 0);
|
||||
|
||||
struct FontCacheKey {
|
||||
NonnullRefPtr<DictObject> font_dictionary;
|
||||
float font_size;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue