Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Major update to introduce a working Document class (#220)
* [Build] MSVC builds now turn off exception handling when in release mode. * [Build] Address analysis on Linux now disables audio and forces the need for a static build * [Build] Fixed issue with the Core module referencing libs that might be disabled * [Core] Aligned BaseClass to 64-bit for Linux builds; The BaseClass' Owner pointer will now be cleared if an object is locked at the time of termination * [Core] Changed the BaseClass OwnerID field to a direct Owner pointer * [Core] Changed the ERR type values from standard C to strongly typed C++ * [Core] Corrected bug in the calculation of the Time class' Timestamp field * [Core] Fixed bug in pf::vector erase() functionality * [Core] Minor optimisations made to the setFields() method and object::Create() * [Core] Renamed JET type CROSSED_INTO to CROSSED_IN; JTYPE FEEDBACK type to CROSSING; JET ENTERED_AREA to CROSSED_INTO and LEFT_AREA to CROSSED_OUT * [Core] Refactored higher tier log messaging * [Core] Significantly shrunk the DateTime structure by using smaller types * [Document] Introduced the Document class * [Fluid] Fixed buffer overflow issue when reporting errors * [Fluid] Reading a field from a terminated object will no longer cause a segfault * [Fluid] String fields marked with ALLOC are now terminated correctly. * [Font] Moved the freetype library to the 3rdparty folder; Upgraded freetype-2.10.2 to freetype-2.13.2 * [Font] Refreshed the pre-installed truetype fonts in order to support variable font parameters * [Font] Added RefreshFonts() as a public API function; Added support for font family aliases * [Font] Added support for meta information when querying fonts; It is now possible to define hinting preferences in the font database * [Font] Removed Angle field; Changed GlyphSpacing field to a multiplier * [Font] Removed ConvertCoords(), SetDefaultSize(), StringSize(), InstallFont(), RemoveFont() * [Font] Removed truetype support from the Font class as it is now supported by the Vector API * [Font] Simplified font resolution; Added ResolveFamilyName() * [Font] The GetFontList() function now returns an Axes string for variable fonts * [Font] Variable font axes information is now written to the fonts.cfg file * [Picture] Removed resizing functionality from the Picture class * [SVG] Added a guard against duplicated IDs when in the scope of a <use> or <symbol> element * [SVG] Added support for 'mask' and 'clip-path', 'xOffset' and 'yOffset' attributes to the <svg> element * [SVG] Altered the <use> element code to more accurately follow W3C guidelines * [SVG] Fixed animation bugs * [SVG] Fixed issue with the inheritance of opacity values. * [SVG] Improved <mask> and <image> parsing * [SVG] Improved Target field support, reduces the creation of a second viewport when a VectorScene is targeted. * [SVG] Improved metric parsing * [SVG] Modified clip-path support to ensure that a clip-path can only be created once * [SVG] Improved support for currentColor * [Scripts] Added missing alias name check for font dialog. * [Scripts] Changed existing scripts to use vector typeset functionaliity * [Scripts] Fixed an IDL bug affecting char based lookups * [Scripts] Fixed remaining Font Dialog issues * [UI] Allow SECONDARY button click events to be sent to input receivers. * [UI] Cleaned up the dialog script; Improved Dialog window sizing control * [UI] Removed unnecessary fill instructions from SVG icon files * [UI] Stale clipboard files are now removed automatically * [UI] Added radial, spiral, screen-wipe FX * [Vector] Fixed clipping bug in mask rendering * [Vector] Improved support for variable font metrics and caching * [Vector] Added DisplaySize and LineSpacing fields to VectorText; Addressed some DPI issues in rendering and metrics management * [Vector] Added Point field to VectorText * [Vector] Added TClipRectangle * [Vector] Added a glyph caching system to speed up VectorText * [Vector] Added correct scaling support to rounded rectangle path generation. * [Vector] Added extensive support for clipping paths and masked paths * [Vector] Added support for client-defined clip masks to the Viewport class. * [Vector] Added support for preserveAspectRatio * [Vector] Added support for stroked clip masks * [Vector] Added vecGetFontHandle(), vecGetFontMetrics(), vecStringWidth(), vecCharWidth(), vecFlushMatrix() * [Vector] Changed rounded rectangle's path computation to use standard arc commands for path building * [Vector] Corrected clip mask positioning issues in ClipBuffer::draw_userspace() * [Vector] Corrected the application of stroke values in calc_full_boundary(); Removed redundant ClipMask boundary code * [Vector] Custom path generation now takes the scale of parent viewports into consideration * [Vector] Deprecated redundant scanline class from AGG * [Vector] Elliptical path generation now takes the scale of parent viewports into consideration * [Vector] Enhanced clip-mask support for all fill operations * [Vector] Fixed VectorViewport's support for custom clip paths. * [Vector] Fixed clipping boundary issue in cases where a clipping zone axis is inversed * [Vector] Fixed crash caused by set_clip_region() returning ERR_Okay in the event of a clipping problem. * [Vector] Fixed crashes caused when a ClosePath command is followed by any command declaring a relative position. * [Vector] Fixed dimension setting issues with Viewports that reference fill patterns * [Vector] Fixed incorrect setting of the PageHeight when in RESIZE mode. * [Vector] Fixed issue with clip-paths ignoring the viewbox X,Y values * [Vector] Fixed issue with the Vector's Filter field not supporting HostScene redirection * [Vector] Fixed outstanding issues with BlurFX <feGaussianBlur> support * [Vector] Font objects are now cached globally rather than once-per-VectorText * [Vector] Gaussian Blur effect will scale if in bounding-box mode * [Vector] Gradient fills now support masks. * [Vector] Implemented local freetype support in VectorText * [Vector] Improved the VectorSpiral class so that path generation can be more effectively controlled. * [Vector] Improved userspace support for clipping paths. * [Vector] Merged generate_clip() with calc_full_boundary(); strokes can now be taken into account when calculating boundaries. * [Vector] Modified VectorFilter get_source_bitmap() to explicitly copy the source graphic's clipping region. * [Vector] Mouse wheel events will now "bubble-up" if not consumed by the first vector to receive the event * [Vector] Overhauled the base Vector's bounds management with TClipRectangle * [Vector] Path generation for VectorText will now always compute the Transform matrix because the FinalX/Y values need to be accounted for. * [Vector] Raised the minimum stroke size from 100 to 2000 pixels * [Vector] Removed Transform field from VectorClip; Improved VectorClip memory management * [Vector] Removed calls to approximation_scale() from path generators and applied to the scene graph renderer instead. * [Vector] Removed mTransform and mApplyTransform state management in favour of applying a transform matrix directly to VectorPattern * [Vector] Reworked clipping to use stacked bitmap buffers * [Vector] Rewrote ClipBuffer::draw_userspace() to match the VectorPattern's drawing method * [Vector] Simplified clipping routines further; Fixed VFX issues that had been inadvertently introduced * [Vector] The SceneRenderer is now allocated dynamically and no longer stored in the VectorScene. * [Vector] The VectorClip is no longer a member of the Vector class * [Vector] The mouse cursor state will now be refreshed whenever vector paths are updated. * [Vector] VectorFilter now supports an AspectRatio field * [Vector] VectorGroup now resets its dirty marker when refreshed * [Vector] VectorGroups now support bounding-box clip paths * [Vector] VectorPolygon now supports scaled values for X1,Y1,X2,Y2 * [Vector] VectorScene input handler now ignores events that are received for other surfaces. * [Vector] Vectors that define clip-masks now declare boundaries that include the clip-mask and the vector path, whichever is smallest. * [Vector] When retrieving a viewport's width and height, preference is now given to returning the vpViewWidth and vpViewHeight viewbox values if they are defined. * [AGG] Disabled pod_allocator * [AGG] Removed agg_font_cache_manager.h; agg_trans_double_path class; redundant glyph files; agg::pod_vector from the blur filter; agg_blur.h * [AGG] agg_rasterizer_cells: No longer requires a destructor; Reduced use of the custom pod_vector class; Changed m_cells field to a std::vector * [Win32] Clicking in the non-client area of a window will now be registered as a secondary input event. * [Win32] Movement in the non-client area of a window will now be registered as a secondary input event. * [X11] Improved X11 synchronisation on program closure. * [X11] Switched to using pixmap buffers for X11 window graphics.
- Loading branch information