mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 17:47:44 +00:00
LibPDF: Move color space creation from name or array into ColorSpace
No behavior change.
This commit is contained in:
parent
1dfd49ef99
commit
3dca11c4e2
3 changed files with 15 additions and 10 deletions
|
@ -31,6 +31,19 @@ PDFErrorOr<ColorSpaceFamily> ColorSpaceFamily::get(DeprecatedFlyString const& fa
|
||||||
return Error(Error::Type::MalformedPDF, "Unknown ColorSpace family"_string);
|
return Error(Error::Type::MalformedPDF, "Unknown ColorSpace family"_string);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PDFErrorOr<NonnullRefPtr<ColorSpace>> ColorSpace::create(Document* document, NonnullRefPtr<Object> color_space_object)
|
||||||
|
{
|
||||||
|
// "A color space is defined by an array object whose first element is a name object identifying the color space family.
|
||||||
|
// The remaining array elements, if any, are parameters that further characterize the color space;
|
||||||
|
// their number and types vary according to the particular family.
|
||||||
|
// For families that do not require parameters, the color space can be specified simply by the family name itself instead of an array."
|
||||||
|
if (color_space_object->is<NameObject>())
|
||||||
|
return ColorSpace::create(color_space_object->cast<NameObject>()->name());
|
||||||
|
if (color_space_object->is<ArrayObject>())
|
||||||
|
return ColorSpace::create(document, color_space_object->cast<ArrayObject>());
|
||||||
|
return Error { Error::Type::MalformedPDF, "Color space must be name or array" };
|
||||||
|
}
|
||||||
|
|
||||||
PDFErrorOr<NonnullRefPtr<ColorSpace>> ColorSpace::create(DeprecatedFlyString const& name)
|
PDFErrorOr<NonnullRefPtr<ColorSpace>> ColorSpace::create(DeprecatedFlyString const& name)
|
||||||
{
|
{
|
||||||
// Simple color spaces with no parameters, which can be specified directly
|
// Simple color spaces with no parameters, which can be specified directly
|
||||||
|
|
|
@ -50,6 +50,7 @@ private:
|
||||||
|
|
||||||
class ColorSpace : public RefCounted<ColorSpace> {
|
class ColorSpace : public RefCounted<ColorSpace> {
|
||||||
public:
|
public:
|
||||||
|
static PDFErrorOr<NonnullRefPtr<ColorSpace>> create(Document*, NonnullRefPtr<Object>);
|
||||||
static PDFErrorOr<NonnullRefPtr<ColorSpace>> create(DeprecatedFlyString const&);
|
static PDFErrorOr<NonnullRefPtr<ColorSpace>> create(DeprecatedFlyString const&);
|
||||||
static PDFErrorOr<NonnullRefPtr<ColorSpace>> create(Document*, NonnullRefPtr<ArrayObject>);
|
static PDFErrorOr<NonnullRefPtr<ColorSpace>> create(Document*, NonnullRefPtr<ArrayObject>);
|
||||||
|
|
||||||
|
|
|
@ -980,16 +980,7 @@ PDFErrorOr<NonnullRefPtr<ColorSpace>> Renderer::get_color_space_from_resources(V
|
||||||
|
|
||||||
PDFErrorOr<NonnullRefPtr<ColorSpace>> Renderer::get_color_space_from_document(NonnullRefPtr<Object> color_space_object)
|
PDFErrorOr<NonnullRefPtr<ColorSpace>> Renderer::get_color_space_from_document(NonnullRefPtr<Object> color_space_object)
|
||||||
{
|
{
|
||||||
// "A color space is defined by an array object whose first element is a name object identifying the color space family.
|
return ColorSpace::create(m_document, color_space_object);
|
||||||
// The remaining array elements, if any, are parameters that further characterize the color space;
|
|
||||||
// their number and types vary according to the particular family.
|
|
||||||
// For families that do not require parameters, the color space can be specified simply by the family name itself instead of an array."
|
|
||||||
|
|
||||||
// Pattern cannot be a name in these cases
|
|
||||||
if (color_space_object->is<NameObject>()) {
|
|
||||||
return ColorSpace::create(color_space_object->cast<NameObject>()->name());
|
|
||||||
}
|
|
||||||
return ColorSpace::create(m_document, color_space_object->cast<ArrayObject>());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Gfx::AffineTransform const& Renderer::calculate_text_rendering_matrix()
|
Gfx::AffineTransform const& Renderer::calculate_text_rendering_matrix()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue