[poppler] Question on how to ensure API compatibility

Adam Reichold adamreichold at myopera.com
Sun Aug 5 06:30:13 PDT 2012


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hello again,

On 05.08.2012 15:20, Albert Astals Cid wrote:
> El Diumenge, 5 d'agost de 2012, a les 13:15:54, Adam Reichold va
> escriure: Hello everyone,
> 
> I am currently investigating how to enable the use of Thomas
> Freitag's multi-threading patch via the Qt4 frontend. So far, I
> think that calling displayPageSlice with fMT = true in
> renderToImage and using a per-page SplashOutputDev for doing so
> should suffice.
> 
> I would like to go about this by adding a parameter to 
> DocumentData::getOuputDev which forces creation of a new output
> device instead of using the per-document one.
> 
> Now what I am unsure about is whether adding a parameter with
> default value like "bool renderPerPage = false" to the
> Page::renderToImage method would break API (or ABI) compatibility?
> If so, would adding another overload adding this parameter help or
> should I add another method which is then called by
> Page::renderToImage?
> 
> Sorry, for these rather basic questions. I have no experience in 
> writing shared libraries.
> 
>> We do not care about API/ABI compatibility at the poppler/ level,
>> we only care about it at the qt4/ glib/ cpp/ levels.

Exactly, that's why I am unsure whether I can change

QImage renderToImage(double xres=72.0, double yres=72.0, int x=-1, int
y=-1, int w=-1, int h=-1, Rotation rotate = Rotate0) const;

to

QImage renderToImage(double xres=72.0, double yres=72.0, int x=-1, int
y=-1, int w=-1, int h=-1, Rotation rotate = Rotate0, bool
multiThreading = false) const;

in "Poppler::Page" defined in "qt4/src/poppler-qt4.h" without breaking
something. Recompiling is obviously fine, but would applications that
were linked against Poppler before that change still work?

Regards, Adam.

>> Cheers, Albert
> 
> 
> Best regards, Adam.
> 
> P.S.: Of course doing so would keep setting render hints unlocked. 
> Personally, I think documenting this would be enough.
>> _______________________________________________ poppler mailing
>> list poppler at lists.freedesktop.org 
>> http://lists.freedesktop.org/mailman/listinfo/poppler
> _______________________________________________ poppler mailing
> list poppler at lists.freedesktop.org 
> http://lists.freedesktop.org/mailman/listinfo/poppler
> 
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQEcBAEBAgAGBQJQHnVlAAoJEPSSjE3STU34kfsIAKWmfpEyBam6k/R6IKtMHnvB
40YaWJZk+KdDopHEUAmvhZn4SRSu2XSh9rpJXTzJsbKA/6EBhfTtsM5IHToQgzpW
r631FDHc/PTfvA6maY+9vNEbb+gMOKczGmQAbfi/Jw+FlaJZdMWLha6TyOj9gjYa
IepBCiAQMC1D6NLz/npbhpsR8ZlMDN0x+hPu2oTfvWMH2/AUbMfOFDYejYJ06LUy
Hn/wg7KuegbpHv0LR+Yd3z5R3T70C2MP1Tzu7hNR5B5rfhS0GWkNOXz0upKfyIDu
kAJxPmbDEEu8smKH2d9ktE2wPQ4myCL8WfrgF58ZZV3mJ1TTJ6z999jsu5qwais=
=TDii
-----END PGP SIGNATURE-----


More information about the poppler mailing list