summaryrefslogtreecommitdiff
path: root/platform
AgeCommit message (Collapse)Author
2016-05-24fz_pixmap revamp: add stride and make alpha optionalRobin Watts
fz_pixmaps now have an explicit stride value. By default no change from before, but code all copes with extra gaps at the end of the line. The alpha data in fz_pixmaps is no longer compulsory. mudraw: use rgb not rgba (ppmraw), cmyk not cmyka (pkmraw). Update halftone code to not expect alpha plane. Update PNG writing to cope with alpha less input. Also hide repeated params within the png output context. ARM code needs updating.
2016-05-24Fix -p password option for MuPDF on Windows.Robin Watts
2016-05-20murun: Add graftObject to javascript bindings.Tor Andersson
Add some paranoid checks to pdf_graft_object to prevent user errors from crashing mupdf.
2016-05-04Update mupdf-curl to cope with https.Robin Watts
Spot https and pass to curl. If curl isn't built with https support we'll fail, but then we'd fail anyway without trying.
2016-04-27Add fz_close_device function.Tor Andersson
Garbage collected languages need a way to signal that they are done with a device other than freeing it. Call it implicitly on fz_drop_device; so take care not to call it again in case it has been explicitly called already.
2016-04-27Fix 696543: Don't launch search with empty string.Tor Andersson
2016-04-26MSVC: Fix MSVC builds.Robin Watts
Some new files hadn't been added to the solution, and we were calling strcasecmp instead of fz_strcasecmp.
2016-04-26Change order of arguments to pdf_add_page etc.Tor Andersson
Resources are defined before they are used; so it's only logical to have the resource dictionary before the content buffer in the argument list.
2016-04-26svg: Add SVG parser.Tor Andersson
svg: Implement graphics state stack. svg: Use idmap for symbol and use elements. svg: Put viewport and viewBox in state stack. svg: Rebase to version 1.9 master.
2016-04-22thirdparty: Update to openjpeg 2.1.0.Sebastian Rasmussen
2016-04-21Bump patch-level.Tor Andersson
2016-04-21ios: Fix memory leak of outline controller.Tor Andersson
2016-04-21ios: Regenerate app icons from original source image.Tor Andersson
The original app icon is in docs/logo/mupdf-simplified-logo.png mutool draw -o Icon-120.png -w 120 mupdf-simplified-logo.png mutool draw -o Icon-167.png -w 167 mupdf-simplified-logo.png mutool draw -o Icon-72.png -w 72 mupdf-simplified-logo.png mutool draw -o Icon-72@2x.png -w 144 mupdf-simplified-logo.png mutool draw -o Icon-76.png -w 76 mupdf-simplified-logo.png mutool draw -o Icon-76@2x.png -w 152 mupdf-simplified-logo.png mutool draw -o Icon.png -w 57 mupdf-simplified-logo.png mutool draw -o Icon@2x.png -w 114 mupdf-simplified-logo.png
2016-04-20Fix bug 696718 by deferring creation of the outline until it's about to be ↵fredrossperry
shown.
2016-04-19add 167x167 iconfredrossperry
2016-04-19Add mutool mergeMichael Vrhel
This commit adds a page merging tool. The tool demonstrates the use of object grafting. The object grafting function recursively goes through the object to add all referenced objects. A map is maintained to ensure that objects that have already been copied are not copied again.
2016-04-12Fixes for building on XCode 7.3, and to use copies of images from the ↵fredrossperry
Android viewer project.
2016-04-06Update platform/android/viewer/ReadMe.txtRobin Watts
Update description to cover the fact that we no longer need cygwin, and to strongly suggest using the Android Studio supplied SDK/NDKs.
2016-04-06Bump version number.Tor Andersson
2016-04-06Fix java build for Bidi enum renames.Tor Andersson
2016-04-04epub: Add stripped Charis SIL font to use as the default font for EPUB.Tor Andersson
2016-03-31Initialize disabled document writing flags to zeroSebastian Rasmussen
Also remove redundant assignments. Fixes http://bugs.ghostscript.com/show_bug.cgi?id=695968
2016-03-31android: Add new example viewer.Tor Andersson
Thanks to Fred Ross-Perry.
2016-03-31Reorganize java and android source.Tor Andersson
platform/java and platform/android are reorganized: platform/java The new JNI Java classes, mupdf_native.{c,h}, Makefile and Makejar. platform/java/example The example desktop viewer classes. platform/android/viewer The original demo viewer. ndk-build is used to build libmupdf_java.so, making reference to mupdf_native.{c,h} in platform/java.
2016-03-28MSVC: More solution tweaking.Robin Watts
Avoid library warnings when including libfonts.
2016-03-24MSVC: Add in missing font.Robin Watts
I missed a font while reworking the generate.bat font generation.
2016-03-23Fix MSVC builds.Robin Watts
Update generate.bat to generate generate/fontname.c files rather than generate/fontname.{ttc,ttf,cff} etc. Add a new libfonts target that builds those, and make libmupdf depend on it. Fix build problem in load-bmp.c - don't declare in the middle of blocks.
2016-03-23Exclude AndroidDrawDevice from the Android app build.fredrossperry
2016-03-23Compile embedded fonts in separate C files.Tor Andersson
Also change unsigned char into const char for embedded data.
2016-03-21Add .ps output to mutool draw.Robin Watts
Simple PS wrapped images with flate compression.
2016-03-21jni: Use system freetype and zlib.Tor Andersson
AWT pulls in the system freetype library, which in turn pulls in system zlib. Avoid symbol collisions and possible header/library conflicts by using the system libraries for desktop java builds.
2016-03-21Fix uninitialized value errors.Tor Andersson
2016-03-16glyph plotter; Use repeated inclusion of headerRobin Watts
To avoid having to duplicate a fairly large block of code several times, use repeated inclusion of a header with some macros to generate optimised glyph plotters.
2016-03-14Remove begin_page and end_page device calls.Tor Andersson
To be moved into a new document writer interface later.
2016-03-14Build java on 32-bit linux.Tor Andersson
2016-03-14Fix TextWalker.showGlyph signature string.Tor Andersson
2016-03-11Bug 696634: Android: Allow filenames including hash.Robin Watts
We were converting from a File to a filename then to a Uri using Uri.parse, but Uri.parse has problems with hash marks. Instead convert direct from File to Uri.
2016-03-11Implement fz_text_language support functions.Robin Watts
Add code to convert to and from fz_text_language codes from ISO 639 language strings. No validation is carried out.
2016-03-07MSVC: Solution tweaks.Robin Watts
Add Memento configurations for mupdf-gl and libglfw to solve build warnings.
2016-03-01Don't use pdf_page struct when creating pages.Tor Andersson
2016-03-01MSVC: Add mujs include path to mutool build.Robin Watts
Required to find mujs.h
2016-02-29jni: Use boolean wmode in text and font classes.Tor Andersson
2016-02-29jni: Add font and image constructors.Tor Andersson
2016-02-29jni: Fix scissor rect arguments to clipping functions.Tor Andersson
2016-02-29jni: Add page navigation buttons to java desktop viewer.Tor Andersson
2016-02-29jni: Various cleanups.Tor Andersson
jni: Various cleanups. Fix gcc and clang warnings. Android specific functions are guarded by HAVE_ANDROID define. The java guts of the android stuff is removed for now, to be added back in later. Set up a makefile and simple tests to build for desktop java. Rerig device classes to: Device, NativeDevice, JavaDevice and DrawDevice. Add Pixmap class. Regularize naming. General cleanups and abbreviate naming. Use to_JavaClass and from_JavaClass rather than fz_mupdf_struct_from_JavaClass and JavaClass_from_fz_mupdf_struct. Check for exceptions thrown by java devices and path processor. Tweak constructors and finalizers to remove the JavaDevice subclass. Use toString when rethrowing java exceptions as fitz exceptions.
2016-02-29jni: Update build files for moved java sources.Tor Andersson
2016-02-29jni: Move java bindings to platform/java.Tor Andersson
Move the platform independent java code from platform/android to platform/java. The plan is that we can call 'make mupdf.jar' (or 'nmake mupdf.jar') there, and then use the resultant mupdf.jar/mupdf_native.h files in whatever platform specific project (such as the android bindings) we like. Keep the android specific class (AndroidDrawDevice) in the usual place in platform/android. Update the android ant script to include mupdf.jar.
2016-02-29jni: First attempt at generic JNI bindings.Robin Watts
The purpose of JNI bindings is to allow MuPDF to be driven from Java. There are several possible use cases here. Firstly, and most simply a java application can ask the core of MuPDF to open a document and render it using the existing devices to produce output on a standard Java bitmap. Secondly, a java application might want to drive the device interface itself, making use of the standard MuPDF devices (such as using the rendering engine to render high quality graphics). Thirdly, a java application might want to implement its own device and then call MuPDF to run the document to that device (perhaps to do custom text or image extraction). The first of these cases requires a simple reflection of the main document and standard device classes in JNI. The second of these cases requires the actual device interface itself to be made available as a java interface, together with the ability to construct and manipulate data types like paths, text and fonts so the Java code can build the required objects to pass to implementers of the device interface. The final case requires a reflection layer whereby calls through the device interface in C can be turned into method calls to a Java interface. All of this is attempted in this commit. Some highlights: For each type in the C (such as fz_colorspace) we have a corresponding java class (such as ColorSpace). Where the 'fz_' types are reference counted (such as an fz_colorspace), the java objects (such as ColorSpace) simply take a reference to a pointer to the underlying fz type. Java accessor methods are then provided to manipulate these types. Where the 'fz_' types are not reference counted (such as an fz_rect), the data is actually contained within the Java object itself (such as Rect, RectI and Transform). We add a VS jni project. This doesn't do anything except make the files accessible for editing in the IDE. As much as possible, the Java layers do nothing (other than some programmer friendly type overloading), construction (unavoidable, as can't be done in JNI) and boiler-plate destruction. All the smartness is done in the C. Due to Java and C's differing approach to constness, we need to be careful that a java device does not destructively alter objects passed to it. For example, consider running a display list through a device implemented in java. If the java device were to change a Font object passed to it, this might affect other objects in the display list that shared the same underlying fz_font. Possibly we can achieve this by having an 'isConst' flag on java objects that are created from device calls and passed to the Java device (see the Text class, for an attempt at this currently). This could alternatively be achieved by cloning every such piece of data (see the path code for an example of this approach), but this is probably slow. Better to clone 'just in time' as the first write operation is done to the object.
2016-02-29js: Add "mutool run" tool to run javascript scripts.Tor Andersson
Use an API similar to the JNI bindings.