summaryrefslogtreecommitdiff
path: root/platform/win32
AgeCommit message (Collapse)Author
2016-11-11Add pdf_layer configuration API.Robin Watts
Add API to: * allow enumeration of layer configs (OCCDs) within PDF files. * allow selection of layer configs. * allow enumeration of the "UI" (or "Human readable") form of layer configs. * allow selection/toggling of entries in the UI.
2016-11-04Disable 64bit OpenSSL builds as we have no lib.Robin Watts
2016-11-04MSVS: More solution fixes.Robin Watts
In particular ensure that curl builds properly for 32 and 64bit modes.
2016-11-04MSVS: Remove superfluous configurations from libfonts.vcprojRobin Watts
No point in building libfonts in anything other than release mode. It's just data. This avoids needless rebuilds in batch builds.
2016-11-04MSVS: Remove superfluous configurations from generated.vcprojRobin Watts
No point in building the 'generated' tools in anything other than debug mode. This avoids repeatedly building the same thing in batch builds.
2016-11-04MSVS: Add libluratech to project.Robin Watts
This will only be built in "DebugCommercial" "ReleaseCommercial" and "MementoCommercial" configuration builds. A note on the way MSVS solutions work; libluratech is listed as a dependency of the executables - this applies to ALL configurations. In order to stop normal builds failing when we have no source, we set each non "Commercial" configuration to not build libluratech. The linker still looks for the output from the libluratech stage to link in though, so for all non "Commercial" configurations, we have the libluratech stage set to produce output named " ". This is copied into the linker command line, and all is happy. The sole downside to this is that if we try to build libluratech in "Debug" (say) rather than "DebugCommercial", the build will fail at the library making step. This will never happen unless we manually try to build that project in that configuration though.
2016-10-28win32: Clean up namedump.obj and namedump.exe in generate.batTor Andersson
2016-10-19Rename internal headers to follow pattern *-imp.h.Sebastian Rasmussen
2016-10-10Update VS solution with new font.Robin Watts
2016-10-07Update Noto fonts.Tor Andersson
New Devanagari serif font, several other updated fonts.
2016-10-06Hide internals of fz_colorspaceRobin Watts
The implementation does not need to be in the public API.
2016-10-05Move fz_font definition to be private.Robin Watts
Move the definition of fz_font to be in a private header file rather than in the public API. Add accessors for specific parts of the structure and use them as appropriate. The font flags, and the harfbuzz records remain public. This means that only 3 files now need access to the font implementation (font.c, pdf-font.c and pdf-type3.c). This may be able to be improved further in future.
2016-09-26Update OpenJPEG to the latest (git) version.Robin Watts
Part of the change in this code is to require opj_malloc and co. Sadly, opj_malloc and co do not take a context field, so a we need to wrap calls to openjpeg with a lock. I am reusing the freetype lock here for simplicity.
2016-09-27Add newly added files missing from VS project.Sebastian Rasmussen
2016-09-16MSVS: Make libfonts consistent with other projectsRobin Watts
Its output directory was set differently.
2016-09-16MSVS: Correct paths to java files and add missing ones.Robin Watts
Not used, other than for the convenience of editing/searching.
2016-09-09Add newly added files missing from VS project.Robin Watts
2016-07-14Fix whitespace and indentation.Tor Andersson
2016-07-11MSVC: Add DebugJava/ReleaseJava configurations.Robin Watts
These build the mupdf desktop java viewer.
2016-07-08Fix Windows builds.Robin Watts
generated.sh was broken (wrong font path). load_pnm.c had been omitted from VS projects.
2016-06-29Add Source Han Sans CJK per-language fonts.Tor Andersson
Import fonts from v1.004.
2016-06-27MSVC: Add DebugGProof configurationRobin Watts
Allows testing of SUPPORT_GPROOF builds on windows.
2016-06-22Update font names in libfonts.vcprojMichael Vrhel
Font names changed with the update of the base 14 fonts to the latest release from URW. The project file had to be updated with the new names. Also the Droid font names had changed so generate.bat was updated.
2016-06-20Add simple muraster.Robin Watts
A cutdown mudraw that only copes with simple raster output.
2016-06-17Update base 14 fonts to the latest release from URW.Tor Andersson
The fonts are now under the SIL Open Font License! Converted with AFDKO tool 'tx': tx -cff +F +S +T -b -n -gx $EXCL -a *.t1 $EXCL is the list of PUA glyphs used by PCL that we don't need in mupdf. The Dingbats and Symbol fonts have only been regenerated from the old version, since there are no new glyphs (but several problems) in the newest version.
2016-06-16Split image output functions into separate files.Tor Andersson
2016-06-16MSVC: 64bit fixes.Robin Watts
Update libfonts build directory; this was causing many warnings because the debugging information was being put in the wrong place. Also ensure that libfonts is build for the different 64bit configs.
2016-06-14MSVC: Reorder objects in project file.Robin Watts
Presumably because the files were hand edited before, and MSVC likes to alphasort.
2016-06-14Add TIFF SGI LUV decoding.Robin Watts
2016-06-14MSVC 64bit fixesRobin Watts
libfonts wasn't being generated in 64bit configs. murun had the wrong include path in 64bit configs. generated was being invoked wrongly in 64bit configs.
2016-06-06Add FZ_ENABLE_JS configuration define.Tor Andersson
2016-05-31MSVC: Enable Function level linkingRobin Watts
Just a few places in the MSVC projects didn't have this enabled.
2016-05-29fix usage vcprojRobin Watts
2016-05-27Add facility to track usage of functions.Robin Watts
Use this for plotters so we can see which ones are being used in any given build. Build with -DTRACK_USAGE to enable.
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-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-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-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-04epub: Add stripped Charis SIL font to use as the default font for EPUB.Tor Andersson
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-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-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-07MSVC: Solution tweaks.Robin Watts
Add Memento configurations for mupdf-gl and libglfw to solve build warnings.
2016-03-01MSVC: Add mujs include path to mutool build.Robin Watts
Required to find mujs.h
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.