Update inkscape to 0.92.4
All poppler patches merged upstream. Feedback and tweaks by Raphael Graf. Thanks!
This commit is contained in:
parent
e96fa506fd
commit
0cfc819b68
@ -1,14 +1,12 @@
|
||||
# $OpenBSD: Makefile,v 1.72 2019/01/18 20:08:55 sthen Exp $
|
||||
# $OpenBSD: Makefile,v 1.73 2019/01/22 06:40:13 rsadowski Exp $
|
||||
|
||||
COMMENT = SVG vector drawing application
|
||||
|
||||
DISTNAME = inkscape-0.92.3
|
||||
CATEGORIES = graphics
|
||||
REVISION = 3
|
||||
DISTNAME = inkscape-0.92.4
|
||||
|
||||
CATEGORIES = graphics
|
||||
|
||||
MASTER_SITES = https://media.inkscape.org/dl/resources/file/
|
||||
HOMEPAGE = https://www.inkscape.org/
|
||||
EXTRACT_SUFX = .tar.bz2
|
||||
|
||||
MAINTAINER = Rafael Sadowski <rsadowski@openbsd.org>
|
||||
|
||||
@ -19,15 +17,18 @@ WANTLIB += ${COMPILER_LIBCXX} ICE Magick++-6.Q16 MagickCore-6.Q16
|
||||
WANTLIB += MagickWand-6.Q16 SM X11 Xcomposite Xcursor Xdamage
|
||||
WANTLIB += Xext Xfixes Xi Xinerama Xrandr Xrender Xt aspell atk-1.0
|
||||
WANTLIB += atkmm-1.6 bz2 c cairo cairomm-1.0 djvulibre enchant
|
||||
WANTLIB += exif expat ffi fftw3 fontconfig freetype gc gdk-x11-2.0
|
||||
WANTLIB += gdk_pixbuf-2.0 gdkmm-2.4 gio-2.0 giomm-2.4 glib-2.0
|
||||
WANTLIB += glibmm-2.4 gmodule-2.0 gobject-2.0 graphite2 gsl gslcblas
|
||||
WANTLIB += gthread-2.0 gtk-x11-2.0 gtkmm-2.4 gtkspell harfbuzz
|
||||
WANTLIB += iconv intl jasper jbig jpeg lcms2 lzma m openjp2 pango-1.0
|
||||
WANTLIB += pangocairo-1.0 pangoft2-1.0 pangomm-1.4 pcre pixman-1
|
||||
WANTLIB += png poppler poppler-glib popt potrace raw_r sigc-2.0
|
||||
WANTLIB += tiff webp webpmux xcb xcb-render xcb-shm xml2 xslt
|
||||
WANTLIB += z
|
||||
WANTLIB += exif expat ffi fftw3 fontconfig freetype fribidi gc
|
||||
WANTLIB += gdk-x11-2.0 gdk_pixbuf-2.0 gdkmm-2.4 gio-2.0 giomm-2.4
|
||||
WANTLIB += glib-2.0 glibmm-2.4 gmodule-2.0 gobject-2.0 graphite2
|
||||
WANTLIB += gsl gslcblas gthread-2.0 gtk-x11-2.0 gtkmm-2.4 gtkspell
|
||||
WANTLIB += harfbuzz iconv intl jasper jbig jpeg lcms2 lzma m openjp2
|
||||
WANTLIB += pango-1.0 pangocairo-1.0 pangoft2-1.0 pangomm-1.4 pcre
|
||||
WANTLIB += pixman-1 png16 poppler poppler-glib popt potrace raw_r
|
||||
WANTLIB += sigc-2.0 tiff webp webpmux xcb xcb-render xcb-shm xml2
|
||||
WANTLIB += xslt z
|
||||
|
||||
MASTER_SITES = https://media.inkscape.org/dl/resources/file/
|
||||
EXTRACT_SUFX = .tar.bz2
|
||||
|
||||
MODULES= textproc/intltool \
|
||||
lang/python \
|
||||
@ -67,6 +68,7 @@ LIB_DEPENDS = devel/boehm-gc \
|
||||
|
||||
RUN_DEPENDS = devel/desktop-file-utils \
|
||||
devel/gettext \
|
||||
fonts/liberation-fonts \
|
||||
textproc/py-lxml \
|
||||
x11/gtk+3,-guic
|
||||
|
||||
|
@ -1,2 +1,2 @@
|
||||
SHA256 (inkscape-0.92.3.tar.bz2) = BjKWwFpl16kqD2J0hbZiIUh6z8ZKJPcS61I3xL14FrI=
|
||||
SIZE (inkscape-0.92.3.tar.bz2) = 31606442
|
||||
SHA256 (inkscape-0.92.4.tar.bz2) = V+wtqBd7NmFKUT4oIu/XOvch5pD33ca9Cl+7FSW0UV4=
|
||||
SIZE (inkscape-0.92.4.tar.bz2) = 31929728
|
||||
|
@ -1,16 +0,0 @@
|
||||
$OpenBSD: patch-src_extension_internal_pdfinput_pdf-input_cpp,v 1.3 2019/01/04 21:09:06 kili Exp $
|
||||
|
||||
Fix with new poppler. From archlinux.
|
||||
|
||||
Index: src/extension/internal/pdfinput/pdf-input.cpp
|
||||
--- src/extension/internal/pdfinput/pdf-input.cpp.orig
|
||||
+++ src/extension/internal/pdfinput/pdf-input.cpp
|
||||
@@ -793,7 +793,7 @@ PdfInput::open(::Inkscape::Extension::Input * /*mod*/,
|
||||
dlg->getImportSettings(prefs);
|
||||
|
||||
// Apply crop settings
|
||||
- PDFRectangle *clipToBox = NULL;
|
||||
+ _POPPLER_CONST PDFRectangle *clipToBox = NULL;
|
||||
double crop_setting;
|
||||
sp_repr_get_double(prefs, "cropTo", &crop_setting);
|
||||
|
@ -1,15 +0,0 @@
|
||||
$OpenBSD: patch-src_extension_internal_pdfinput_pdf-input_h,v 1.1 2019/01/04 21:09:06 kili Exp $
|
||||
|
||||
Fix with new poppler. From archlinux.
|
||||
|
||||
Index: src/extension/internal/pdfinput/pdf-input.h
|
||||
--- src/extension/internal/pdfinput/pdf-input.h.orig
|
||||
+++ src/extension/internal/pdfinput/pdf-input.h
|
||||
@@ -15,6 +15,7 @@
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_POPPLER
|
||||
+#include "poppler-transition-api.h"
|
||||
|
||||
#include <gtkmm/dialog.h>
|
||||
|
@ -1,184 +0,0 @@
|
||||
$OpenBSD: patch-src_extension_internal_pdfinput_pdf-parser_cpp,v 1.13 2019/01/04 21:09:06 kili Exp $
|
||||
|
||||
Fix with new poppler. From archlinux.
|
||||
|
||||
Index: src/extension/internal/pdfinput/pdf-parser.cpp
|
||||
--- src/extension/internal/pdfinput/pdf-parser.cpp.orig
|
||||
+++ src/extension/internal/pdfinput/pdf-parser.cpp
|
||||
@@ -36,9 +36,9 @@ extern "C" {
|
||||
#include "pdf-parser.h"
|
||||
#include "util/units.h"
|
||||
|
||||
+#include "glib/poppler-features.h"
|
||||
#include "goo/gmem.h"
|
||||
-#include "goo/GooTimer.h"
|
||||
-#include "goo/GooHash.h"
|
||||
+#include "goo/GooString.h"
|
||||
#include "GlobalParams.h"
|
||||
#include "CharTypes.h"
|
||||
#include "Object.h"
|
||||
@@ -295,8 +295,8 @@ PdfParser::PdfParser(XRef *xrefA,
|
||||
int /*pageNum*/,
|
||||
int rotate,
|
||||
Dict *resDict,
|
||||
- PDFRectangle *box,
|
||||
- PDFRectangle *cropBox) :
|
||||
+ _POPPLER_CONST PDFRectangle *box,
|
||||
+ _POPPLER_CONST PDFRectangle *cropBox) :
|
||||
xref(xrefA),
|
||||
builder(builderA),
|
||||
subPage(gFalse),
|
||||
@@ -318,7 +318,7 @@ PdfParser::PdfParser(XRef *xrefA,
|
||||
builder->setDocumentSize(Inkscape::Util::Quantity::convert(state->getPageWidth(), "pt", "px"),
|
||||
Inkscape::Util::Quantity::convert(state->getPageHeight(), "pt", "px"));
|
||||
|
||||
- double *ctm = state->getCTM();
|
||||
+ const double *ctm = state->getCTM();
|
||||
double scaledCTM[6];
|
||||
for (int i = 0; i < 6; ++i) {
|
||||
baseMatrix[i] = ctm[i];
|
||||
@@ -353,7 +353,7 @@ PdfParser::PdfParser(XRef *xrefA,
|
||||
PdfParser::PdfParser(XRef *xrefA,
|
||||
Inkscape::Extension::Internal::SvgBuilder *builderA,
|
||||
Dict *resDict,
|
||||
- PDFRectangle *box) :
|
||||
+ _POPPLER_CONST PDFRectangle *box) :
|
||||
xref(xrefA),
|
||||
builder(builderA),
|
||||
subPage(gTrue),
|
||||
@@ -572,7 +572,7 @@ const char *PdfParser::getPreviousOperator(unsigned in
|
||||
|
||||
void PdfParser::execOp(Object *cmd, Object args[], int numArgs) {
|
||||
PdfOperator *op;
|
||||
- char *name;
|
||||
+ const char *name;
|
||||
Object *argPtr;
|
||||
int i;
|
||||
|
||||
@@ -620,7 +620,7 @@ void PdfParser::execOp(Object *cmd, Object args[], int
|
||||
(this->*op->func)(argPtr, numArgs);
|
||||
}
|
||||
|
||||
-PdfOperator* PdfParser::findOp(char *name) {
|
||||
+PdfOperator* PdfParser::findOp(const char *name) {
|
||||
int a = -1;
|
||||
int b = numOps;
|
||||
int cmp = -1;
|
||||
@@ -1752,7 +1752,7 @@ void PdfParser::doShadingPatternFillFallback(GfxShadin
|
||||
GBool stroke, GBool eoFill) {
|
||||
GfxShading *shading;
|
||||
GfxPath *savedPath;
|
||||
- double *ctm, *btm, *ptm;
|
||||
+ const double *ctm, *btm, *ptm;
|
||||
double m[6], ictm[6], m1[6];
|
||||
double xMin, yMin, xMax, yMax;
|
||||
double det;
|
||||
@@ -1994,7 +1994,7 @@ void PdfParser::doFunctionShFill1(GfxFunctionShading *
|
||||
GfxColor color0M, color1M, colorM0, colorM1, colorMM;
|
||||
GfxColor colors2[4];
|
||||
double functionColorDelta = colorDeltas[pdfFunctionShading-1];
|
||||
- double *matrix;
|
||||
+ const double *matrix;
|
||||
double xM, yM;
|
||||
int nComps, i, j;
|
||||
|
||||
@@ -2174,7 +2174,7 @@ void PdfParser::doPatchMeshShFill(GfxPatchMeshShading
|
||||
}
|
||||
}
|
||||
|
||||
-void PdfParser::fillPatch(GfxPatch *patch, int nComps, int depth) {
|
||||
+void PdfParser::fillPatch(_POPPLER_CONST GfxPatch *patch, int nComps, int depth) {
|
||||
GfxPatch patch00 = blankPatch();
|
||||
GfxPatch patch01 = blankPatch();
|
||||
GfxPatch patch10 = blankPatch();
|
||||
@@ -2582,7 +2582,11 @@ void PdfParser::opShowSpaceText(Object args[], int /*n
|
||||
}
|
||||
}
|
||||
|
||||
+#if POPPLER_CHECK_VERSION(0,64,0)
|
||||
+void PdfParser::doShowText(const GooString *s) {
|
||||
+#else
|
||||
void PdfParser::doShowText(GooString *s) {
|
||||
+#endif
|
||||
GfxFont *font;
|
||||
int wMode;
|
||||
double riseX, riseY;
|
||||
@@ -2591,17 +2595,21 @@ void PdfParser::doShowText(GooString *s) {
|
||||
double x, y, dx, dy, tdx, tdy;
|
||||
double originX, originY, tOriginX, tOriginY;
|
||||
double oldCTM[6], newCTM[6];
|
||||
- double *mat;
|
||||
+ const double *mat;
|
||||
Object charProc;
|
||||
Dict *resDict;
|
||||
Parser *oldParser;
|
||||
+#if POPPLER_CHECK_VERSION(0,64,0)
|
||||
+ const char *p;
|
||||
+#else
|
||||
char *p;
|
||||
+#endif
|
||||
int len, n, uLen;
|
||||
|
||||
font = state->getFont();
|
||||
wMode = font->getWMode();
|
||||
|
||||
- builder->beginString(state, s);
|
||||
+ builder->beginString(state);
|
||||
|
||||
// handle a Type 3 char
|
||||
if (font->getType() == fontType3 && 0) {//out->interpretType3Chars()) {
|
||||
@@ -2732,7 +2740,11 @@ void PdfParser::opXObject(Object args[], int /*numArgs
|
||||
{
|
||||
Object obj1, obj2, obj3, refObj;
|
||||
|
||||
+#if POPPLER_CHECK_VERSION(0,64,0)
|
||||
+ const char *name = args[0].getName();
|
||||
+#else
|
||||
char *name = args[0].getName();
|
||||
+#endif
|
||||
#if defined(POPPLER_NEW_OBJECT_API)
|
||||
if ((obj1 = res->lookupXObject(name)).isNull()) {
|
||||
#else
|
||||
@@ -3657,7 +3669,6 @@ void PdfParser::opBeginImage(Object /*args*/[], int /*
|
||||
Stream *PdfParser::buildImageStream() {
|
||||
Object dict;
|
||||
Object obj;
|
||||
- char *key;
|
||||
Stream *str;
|
||||
|
||||
// build dictionary
|
||||
@@ -3675,26 +3686,17 @@ Stream *PdfParser::buildImageStream() {
|
||||
obj.free();
|
||||
#endif
|
||||
} else {
|
||||
- key = copyString(obj.getName());
|
||||
-#if defined(POPPLER_NEW_OBJECT_API)
|
||||
- obj = parser->getObj();
|
||||
-#else
|
||||
- obj.free();
|
||||
- parser->getObj(&obj);
|
||||
-#endif
|
||||
- if (obj.isEOF() || obj.isError()) {
|
||||
- gfree(key);
|
||||
+ Object obj2;
|
||||
+ _POPPLER_CALL(obj2, parser->getObj);
|
||||
+ if (obj2.isEOF() || obj2.isError()) {
|
||||
+ _POPPLER_FREE(obj);
|
||||
break;
|
||||
}
|
||||
-#if defined(POPPLER_NEW_OBJECT_API)
|
||||
- dict.dictAdd(key, std::move(obj));
|
||||
+ _POPPLER_DICTADD(dict, obj.getName(), obj2);
|
||||
+ _POPPLER_FREE(obj);
|
||||
+ _POPPLER_FREE(obj2);
|
||||
}
|
||||
- obj = parser->getObj();
|
||||
-#else
|
||||
- dict.dictAdd(key, &obj);
|
||||
- }
|
||||
- parser->getObj(&obj);
|
||||
-#endif
|
||||
+ _POPPLER_CALL(obj, parser->getObj);
|
||||
}
|
||||
if (obj.isEOF()) {
|
||||
error(errSyntaxError, getPos(), "End of file in inline image");
|
@ -1,72 +0,0 @@
|
||||
$OpenBSD: patch-src_extension_internal_pdfinput_pdf-parser_h,v 1.1 2019/01/04 21:09:06 kili Exp $
|
||||
|
||||
Fix with new poppler. From archlinux and upstream.
|
||||
|
||||
Index: src/extension/internal/pdfinput/pdf-parser.h
|
||||
--- src/extension/internal/pdfinput/pdf-parser.h.orig
|
||||
+++ src/extension/internal/pdfinput/pdf-parser.h
|
||||
@@ -9,6 +9,7 @@
|
||||
#define PDF_PARSER_H
|
||||
|
||||
#ifdef HAVE_POPPLER
|
||||
+#include "poppler-transition-api.h"
|
||||
|
||||
#ifdef USE_GCC_PRAGMAS
|
||||
#pragma interface
|
||||
@@ -25,7 +26,7 @@ namespace Inkscape {
|
||||
// TODO clean up and remove using:
|
||||
using Inkscape::Extension::Internal::SvgBuilder;
|
||||
|
||||
-#include "goo/gtypes.h"
|
||||
+#include "glib/poppler-features.h"
|
||||
#include "Object.h"
|
||||
|
||||
class GooString;
|
||||
@@ -127,11 +128,14 @@ class PdfParser { (public)
|
||||
|
||||
// Constructor for regular output.
|
||||
PdfParser(XRef *xrefA, SvgBuilder *builderA, int pageNum, int rotate,
|
||||
- Dict *resDict, PDFRectangle *box, PDFRectangle *cropBox);
|
||||
+ Dict *resDict,
|
||||
+ _POPPLER_CONST PDFRectangle *box,
|
||||
+ _POPPLER_CONST PDFRectangle *cropBox);
|
||||
|
||||
// Constructor for a sub-page object.
|
||||
PdfParser(XRef *xrefA, Inkscape::Extension::Internal::SvgBuilder *builderA,
|
||||
- Dict *resDict, PDFRectangle *box);
|
||||
+ Dict *resDict,
|
||||
+ _POPPLER_CONST PDFRectangle *box);
|
||||
|
||||
virtual ~PdfParser();
|
||||
|
||||
@@ -185,7 +189,7 @@ class PdfParser { (public)
|
||||
|
||||
void go(GBool topLevel);
|
||||
void execOp(Object *cmd, Object args[], int numArgs);
|
||||
- PdfOperator *findOp(char *name);
|
||||
+ PdfOperator *findOp(const char *name);
|
||||
GBool checkArg(Object *arg, TchkType type);
|
||||
int getPos();
|
||||
|
||||
@@ -256,7 +260,7 @@ class PdfParser { (public)
|
||||
double x2, double y2, GfxColor *color2,
|
||||
int nComps, int depth);
|
||||
void doPatchMeshShFill(GfxPatchMeshShading *shading);
|
||||
- void fillPatch(GfxPatch *patch, int nComps, int depth);
|
||||
+ void fillPatch(_POPPLER_CONST GfxPatch *patch, int nComps, int depth);
|
||||
void doEndPath();
|
||||
|
||||
// path clipping operators
|
||||
@@ -287,7 +291,12 @@ class PdfParser { (public)
|
||||
void opMoveShowText(Object args[], int numArgs);
|
||||
void opMoveSetShowText(Object args[], int numArgs);
|
||||
void opShowSpaceText(Object args[], int numArgs);
|
||||
+#if POPPLER_CHECK_VERSION(0,64,0)
|
||||
+ void doShowText(const GooString *s);
|
||||
+#else
|
||||
void doShowText(GooString *s);
|
||||
+#endif
|
||||
+
|
||||
|
||||
// XObject operators
|
||||
void opXObject(Object args[], int numArgs);
|
@ -1,57 +0,0 @@
|
||||
$OpenBSD: patch-src_extension_internal_pdfinput_poppler-transition-api_h,v 1.1 2019/01/04 21:09:06 kili Exp $
|
||||
|
||||
Fix with new poppler. From archlinux and upstream.
|
||||
|
||||
Index: src/extension/internal/pdfinput/poppler-transition-api.h
|
||||
--- src/extension/internal/pdfinput/poppler-transition-api.h.orig
|
||||
+++ src/extension/internal/pdfinput/poppler-transition-api.h
|
||||
@@ -0,0 +1,49 @@
|
||||
+#ifndef SEEN_POPPLER_TRANSITION_API_H
|
||||
+#define SEEN_POPPLER_TRANSITION_API_H
|
||||
+
|
||||
+#include <glib/poppler-features.h>
|
||||
+
|
||||
+#if POPPLER_CHECK_VERSION(0, 72, 0)
|
||||
+#define getCString c_str
|
||||
+#endif
|
||||
+
|
||||
+#if POPPLER_CHECK_VERSION(0,71,0)
|
||||
+typedef bool GBool;
|
||||
+#define gTrue true
|
||||
+#define gFalse false
|
||||
+#endif
|
||||
+
|
||||
+#if POPPLER_CHECK_VERSION(0,70,0)
|
||||
+#define _POPPLER_CONST const
|
||||
+#else
|
||||
+#define _POPPLER_CONST
|
||||
+#endif
|
||||
+
|
||||
+#if POPPLER_CHECK_VERSION(0,69,0)
|
||||
+#define _POPPLER_DICTADD(dict, key, obj) (dict).dictAdd(key, std::move(obj))
|
||||
+#elif POPPLER_CHECK_VERSION(0,58,0)
|
||||
+#define _POPPLER_DICTADD(dict, key, obj) (dict).dictAdd(copyString(key), std::move(obj))
|
||||
+#else
|
||||
+#define _POPPLER_DICTADD(dict, key, obj) (dict).dictAdd(copyString(key), &obj)
|
||||
+#endif
|
||||
+
|
||||
+#if POPPLER_CHECK_VERSION(0,58,0)
|
||||
+#define POPPLER_NEW_OBJECT_API
|
||||
+#define _POPPLER_FREE(obj)
|
||||
+#define _POPPLER_CALL(ret, func) (ret = func())
|
||||
+#define _POPPLER_CALL_ARGS(ret, func, ...) (ret = func(__VA_ARGS__))
|
||||
+#else
|
||||
+#define _POPPLER_FREE(obj) (obj).free()
|
||||
+#define _POPPLER_CALL(ret, func) (*func(&ret))
|
||||
+#define _POPPLER_CALL_ARGS(ret, func, ...) (*func(__VA_ARGS__, &ret))
|
||||
+#endif
|
||||
+
|
||||
+#if POPPLER_CHECK_VERSION(0, 29, 0)
|
||||
+#define POPPLER_EVEN_NEWER_NEW_COLOR_SPACE_API
|
||||
+#endif
|
||||
+
|
||||
+#if POPPLER_CHECK_VERSION(0, 25, 0)
|
||||
+#define POPPLER_EVEN_NEWER_COLOR_SPACE_API
|
||||
+#endif
|
||||
+
|
||||
+#endif
|
@ -1,119 +0,0 @@
|
||||
$OpenBSD: patch-src_extension_internal_pdfinput_svg-builder_cpp,v 1.4 2019/01/04 21:09:06 kili Exp $
|
||||
|
||||
Fix with new poppler. From archlinux.
|
||||
|
||||
Index: src/extension/internal/pdfinput/svg-builder.cpp
|
||||
--- src/extension/internal/pdfinput/svg-builder.cpp.orig
|
||||
+++ src/extension/internal/pdfinput/svg-builder.cpp
|
||||
@@ -625,7 +625,7 @@ gchar *SvgBuilder::_createPattern(GfxPattern *pattern,
|
||||
if ( pattern != NULL ) {
|
||||
if ( pattern->getType() == 2 ) { // Shading pattern
|
||||
GfxShadingPattern *shading_pattern = static_cast<GfxShadingPattern *>(pattern);
|
||||
- double *ptm;
|
||||
+ const double *ptm;
|
||||
double m[6] = {1, 0, 0, 1, 0, 0};
|
||||
double det;
|
||||
|
||||
@@ -672,7 +672,7 @@ gchar *SvgBuilder::_createTilingPattern(GfxTilingPatte
|
||||
|
||||
Inkscape::XML::Node *pattern_node = _xml_doc->createElement("svg:pattern");
|
||||
// Set pattern transform matrix
|
||||
- double *p2u = tiling_pattern->getMatrix();
|
||||
+ const double *p2u = tiling_pattern->getMatrix();
|
||||
double m[6] = {1, 0, 0, 1, 0, 0};
|
||||
double det;
|
||||
det = _ttm[0] * _ttm[3] - _ttm[1] * _ttm[2]; // see LP Bug 1168908
|
||||
@@ -698,7 +698,7 @@ gchar *SvgBuilder::_createTilingPattern(GfxTilingPatte
|
||||
pattern_node->setAttribute("patternUnits", "userSpaceOnUse");
|
||||
// Set pattern tiling
|
||||
// FIXME: don't ignore XStep and YStep
|
||||
- double *bbox = tiling_pattern->getBBox();
|
||||
+ const double *bbox = tiling_pattern->getBBox();
|
||||
sp_repr_set_svg_double(pattern_node, "x", 0.0);
|
||||
sp_repr_set_svg_double(pattern_node, "y", 0.0);
|
||||
sp_repr_set_svg_double(pattern_node, "width", bbox[2] - bbox[0]);
|
||||
@@ -751,7 +751,7 @@ gchar *SvgBuilder::_createTilingPattern(GfxTilingPatte
|
||||
*/
|
||||
gchar *SvgBuilder::_createGradient(GfxShading *shading, double *matrix, bool for_shading) {
|
||||
Inkscape::XML::Node *gradient;
|
||||
- Function *func;
|
||||
+ _POPPLER_CONST Function *func;
|
||||
int num_funcs;
|
||||
bool extend0, extend1;
|
||||
|
||||
@@ -865,7 +865,7 @@ static bool svgGetShadingColorRGB(GfxShading *shading,
|
||||
|
||||
#define INT_EPSILON 8
|
||||
bool SvgBuilder::_addGradientStops(Inkscape::XML::Node *gradient, GfxShading *shading,
|
||||
- Function *func) {
|
||||
+ _POPPLER_CONST Function *func) {
|
||||
int type = func->getType();
|
||||
if ( type == 0 || type == 2 ) { // Sampled or exponential function
|
||||
GfxRGB stop1, stop2;
|
||||
@@ -877,9 +877,9 @@ bool SvgBuilder::_addGradientStops(Inkscape::XML::Node
|
||||
_addStopToGradient(gradient, 1.0, &stop2, 1.0);
|
||||
}
|
||||
} else if ( type == 3 ) { // Stitching
|
||||
- StitchingFunction *stitchingFunc = static_cast<StitchingFunction*>(func);
|
||||
- double *bounds = stitchingFunc->getBounds();
|
||||
- double *encode = stitchingFunc->getEncode();
|
||||
+ auto stitchingFunc = static_cast<_POPPLER_CONST StitchingFunction*>(func);
|
||||
+ const double *bounds = stitchingFunc->getBounds();
|
||||
+ const double *encode = stitchingFunc->getEncode();
|
||||
int num_funcs = stitchingFunc->getNumFuncs();
|
||||
|
||||
// Add stops from all the stitched functions
|
||||
@@ -890,7 +890,7 @@ bool SvgBuilder::_addGradientStops(Inkscape::XML::Node
|
||||
svgGetShadingColorRGB(shading, bounds[i + 1], &color);
|
||||
// Add stops
|
||||
if (stitchingFunc->getFunc(i)->getType() == 2) { // process exponential fxn
|
||||
- double expE = (static_cast<ExponentialFunction*>(stitchingFunc->getFunc(i)))->getE();
|
||||
+ double expE = (static_cast<_POPPLER_CONST ExponentialFunction*>(stitchingFunc->getFunc(i)))->getE();
|
||||
if (expE > 1.0) {
|
||||
expE = (bounds[i + 1] - bounds[i])/expE; // approximate exponential as a single straight line at x=1
|
||||
if (encode[2*i] == 0) { // normal sequence
|
||||
@@ -1022,7 +1022,7 @@ void SvgBuilder::updateFont(GfxState *state) {
|
||||
if (font->getName()) {
|
||||
_font_specification = font->getName()->getCString();
|
||||
} else {
|
||||
- _font_specification = (char*) "Arial";
|
||||
+ _font_specification = "Arial";
|
||||
}
|
||||
|
||||
// Prune the font name to get the correct font family name
|
||||
@@ -1030,7 +1030,7 @@ void SvgBuilder::updateFont(GfxState *state) {
|
||||
char *font_family = NULL;
|
||||
char *font_style = NULL;
|
||||
char *font_style_lowercase = NULL;
|
||||
- char *plus_sign = strstr(_font_specification, "+");
|
||||
+ const char *plus_sign = strstr(_font_specification, "+");
|
||||
if (plus_sign) {
|
||||
font_family = g_strdup(plus_sign + 1);
|
||||
_font_specification = plus_sign + 1;
|
||||
@@ -1148,7 +1148,7 @@ void SvgBuilder::updateFont(GfxState *state) {
|
||||
Inkscape::CSSOStringStream os_font_size;
|
||||
double css_font_size = _font_scaling * state->getFontSize();
|
||||
if ( font->getType() == fontType3 ) {
|
||||
- double *font_matrix = font->getFontMatrix();
|
||||
+ const double *font_matrix = font->getFontMatrix();
|
||||
if ( font_matrix[0] != 0.0 ) {
|
||||
css_font_size *= font_matrix[3] / font_matrix[0];
|
||||
}
|
||||
@@ -1193,7 +1193,7 @@ void SvgBuilder::updateTextPosition(double tx, double
|
||||
void SvgBuilder::updateTextMatrix(GfxState *state) {
|
||||
_flushText();
|
||||
// Update text matrix
|
||||
- double *text_matrix = state->getTextMat();
|
||||
+ const double *text_matrix = state->getTextMat();
|
||||
double w_scale = sqrt( text_matrix[0] * text_matrix[0] + text_matrix[2] * text_matrix[2] );
|
||||
double h_scale = sqrt( text_matrix[1] * text_matrix[1] + text_matrix[3] * text_matrix[3] );
|
||||
double max_scale;
|
||||
@@ -1361,7 +1361,7 @@ void SvgBuilder::_flushText() {
|
||||
_glyphs.clear();
|
||||
}
|
||||
|
||||
-void SvgBuilder::beginString(GfxState *state, GooString * /*s*/) {
|
||||
+void SvgBuilder::beginString(GfxState *state) {
|
||||
if (_need_font_update) {
|
||||
updateFont(state);
|
||||
}
|
@ -1,59 +0,0 @@
|
||||
$OpenBSD: patch-src_extension_internal_pdfinput_svg-builder_h,v 1.1 2019/01/04 21:09:06 kili Exp $
|
||||
|
||||
Fix with new poppler. From archlinux.
|
||||
|
||||
Index: src/extension/internal/pdfinput/svg-builder.h
|
||||
--- src/extension/internal/pdfinput/svg-builder.h.orig
|
||||
+++ src/extension/internal/pdfinput/svg-builder.h
|
||||
@@ -15,6 +15,7 @@
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_POPPLER
|
||||
+#include "poppler-transition-api.h"
|
||||
|
||||
class SPDocument;
|
||||
namespace Inkscape {
|
||||
@@ -29,7 +30,6 @@ namespace Inkscape {
|
||||
#include <glibmm/ustring.h>
|
||||
|
||||
#include "CharTypes.h"
|
||||
-class GooString;
|
||||
class Function;
|
||||
class GfxState;
|
||||
struct GfxColor;
|
||||
@@ -81,7 +81,7 @@ struct SvgGlyph {
|
||||
bool style_changed; // Set to true if style has to be reset
|
||||
SPCSSAttr *style;
|
||||
int render_mode; // Text render mode
|
||||
- char *font_specification; // Pointer to current font specification
|
||||
+ const char *font_specification; // Pointer to current font specification
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -136,7 +136,7 @@ class SvgBuilder { (public)
|
||||
void clearSoftMask(GfxState *state);
|
||||
|
||||
// Text handling
|
||||
- void beginString(GfxState *state, GooString *s);
|
||||
+ void beginString(GfxState *state);
|
||||
void endString(GfxState *state);
|
||||
void addChar(GfxState *state, double x, double y,
|
||||
double dx, double dy,
|
||||
@@ -175,7 +175,7 @@ class SvgBuilder { (public)
|
||||
void _addStopToGradient(Inkscape::XML::Node *gradient, double offset,
|
||||
GfxRGB *color, double opacity);
|
||||
bool _addGradientStops(Inkscape::XML::Node *gradient, GfxShading *shading,
|
||||
- Function *func);
|
||||
+ _POPPLER_CONST Function *func);
|
||||
gchar *_createTilingPattern(GfxTilingPattern *tiling_pattern, GfxState *state,
|
||||
bool is_stroke=false);
|
||||
// Image/mask creation
|
||||
@@ -203,7 +203,7 @@ class SvgBuilder { (public)
|
||||
|
||||
SPCSSAttr *_font_style; // Current font style
|
||||
GfxFont *_current_font;
|
||||
- char *_font_specification;
|
||||
+ const char *_font_specification;
|
||||
double _font_scaling;
|
||||
bool _need_font_update;
|
||||
Geom::Affine _text_matrix;
|
Loading…
Reference in New Issue
Block a user