pdfium/core/fxge/win32/cgdi_printer_driver.h
Aryan 673e86511b Replace GetDeviceCaps with specific getter methods
This CL replaces GetDeviceCaps() with explicit virtual getter methods
for retrieving specific device properties. This change introduces
GetPixelWidth(), GetPixelHeight(), GetBitsPerPixel(), GetHorzSize(), and
GetVertSize() to RenderDeviceDriverIface and its implementations.

Previously, `GetDeviceCaps()` relied on integer constants to fetch
various properties. This CL removes the `FXDC_*` defines in favour of
direct accessors, making the interface is now more expressive and
consistent with modern C++ practices.

Note that `FXDC_RENDER_CAPS` is intentionally left unchanged and will be
handled separately in a follow-up CL.

Change-Id: I033ac3b0e0111c6587f43b3f1a14a624d6fe96f7
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/144090
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Andy Phan <andyphan@chromium.org>
2026-03-24 10:18:05 -07:00

58 lines
2.0 KiB
C++

// Copyright 2020 The PDFium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
#ifndef CORE_FXGE_WIN32_CGDI_PRINTER_DRIVER_H_
#define CORE_FXGE_WIN32_CGDI_PRINTER_DRIVER_H_
#include <windows.h>
#include <memory>
#include "core/fxge/win32/cgdi_device_driver.h"
class CGdiPrinterDriver final : public CGdiDeviceDriver {
public:
explicit CGdiPrinterDriver(HDC hDC);
~CGdiPrinterDriver() override;
private:
// CGdiPrinterDriver:
int GetHorzSize() const override;
int GetVertSize() const override;
bool SetDIBits(RetainPtr<const CFX_DIBBase> bitmap,
uint32_t color,
const FX_RECT& src_rect,
int left,
int top,
BlendMode blend_type) override;
bool StretchDIBits(RetainPtr<const CFX_DIBBase> bitmap,
uint32_t color,
int dest_left,
int dest_top,
int dest_width,
int dest_height,
const FX_RECT* pClipRect,
const FXDIB_ResampleOptions& options,
BlendMode blend_type) override;
StartResult StartDIBits(RetainPtr<const CFX_DIBBase> bitmap,
float alpha,
uint32_t color,
const CFX_Matrix& matrix,
const FXDIB_ResampleOptions& options,
BlendMode blend_type) override;
bool DrawDeviceText(pdfium::span<const TextCharPos> pCharPos,
CFX_Font* font,
const CFX_Matrix& mtObject2Device,
float font_size,
uint32_t color,
const CFX_TextRenderOptions& options) override;
const int horz_size_;
const int vert_size_;
};
#endif // CORE_FXGE_WIN32_CGDI_PRINTER_DRIVER_H_