{"head":"bf16a2f62adaa999329af66f1849a6110d8122fd","size":5,"push_id":44884069,"shas":[["945e2fdd74807fb19846577678185501be3d261a","828d338a9b04221c9cbe286f50cd389f68de4ecf@sharpsteen.net","MuPDF: Experimental interface\n\nPlaying around with using MuPDF instead of Poppler to render pages:\n\n  http://mupdf.com\n\nMuPDF is written in C, so I have added a C++ header, `MuPDF.hpp`, that wraps\nthe C functions into a C++ class that can hopefully be used in a similar\nfashion to Poppler's `Poppler::Document`. Currently the `MuPDF::Document` just\nloads a filename and initializes top-level MuPDF objects.\n\n`PDFDocumentScene` has been hacked to hold a reference to `MuPDF::Document` in\nparallel with `Poppler::Document`. The goal is to replace page rendering with\nsomething based on MuPDF in order to assess efficiency.\n\nIf things look good, may explore further.","Charlie Sharpsteen"],["56e68b93afc89cfe4685f088fed63885b8bc6bee","828d338a9b04221c9cbe286f50cd389f68de4ecf@sharpsteen.net","MuPDF: Load number of pages in document","Charlie Sharpsteen"],["f0630145ec79f0ece183b4618ce8b159a6c766bc","828d338a9b04221c9cbe286f50cd389f68de4ecf@sharpsteen.net","MuPDF: Add page class\n\nNew class `MuPDF::Page` which is roughly analogous to `Poppler::Page`.\n`PDFPageGraphicsItem` now carries one of these around in parallel to the\nPoppler page. Some notes:\n\n  - Bounding boxes are roughly the same---MuPDF seems to round up as it reports\n    round numbers while Poppler is returning decimals.\n\n  - MuPDF takes half as long to create Page objects---or twice as long if the page\n    display list is generated during initialization. This list is a parsed\n    representation of the PDF page and its creation could be deferred until\n    rendering time. The display list is the key component Poppler lacks and\n    must re-generate for every render call.","Charlie Sharpsteen"],["a932c13001173b5415ee1e509ca56648584f52cb","828d338a9b04221c9cbe286f50cd389f68de4ecf@sharpsteen.net","MuPDF: New macro for MuPDF-specifc debugging\n\nMoved all debugging statements that compare MuPDF against Poppler from `DEBUG`\nto `MU_DEBUG`. This makes them easy to remove without disturbing other\ndebugging output.","Charlie Sharpsteen"],["bf16a2f62adaa999329af66f1849a6110d8122fd","828d338a9b04221c9cbe286f50cd389f68de4ecf@sharpsteen.net","MuPDF: Implement page rendering\n\nMost rendering code taken from the `mupdf` example application included in the\nMuPDF source:\n\n  http://git.ghostscript.com/?p=mupdf.git;a=blob;f=apps/pdfapp.c\n\nSeems to work ok---somehow managed to introduce a deadlock that occurs if the\nviewer is scrolled too fast. Possibly related to running Poppler and MuPDF\nagainst the same PDF file at the same time.","Charlie Sharpsteen"]],"ref":"refs/heads/mupdf-backend"}