Commit Graph

230 Commits

Author SHA1 Message Date
Alistair Leslie-Hughes b8449062eb gdiplus: Implement GdipGetPenTransform.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-04 14:41:05 +09:00
Sebastian Lackner 1250af4986 gdiplus: Use helper function for HeapReAlloc calls.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-29 10:49:17 +09:00
Sebastian Lackner ff1b209be8 gdiplus: Use helper function for HeapAlloc calls.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-29 10:49:14 +09:00
Sebastian Lackner aa70a90c6e gdiplus: Do not use GdipAlloc and GdipFree in internal functions.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-11 13:44:22 +09:00
Nikolay Sivov 0a15e163db gdiplus: Implement trivial case of GdipCreateRegionRgnData for empty and infinite regions. 2015-06-10 15:50:44 +09:00
Andrew Eikum 1d5914b777 gdiplus: Avoid unnecessary pre-multiplied alpha conversions in GdipDrawImagePointsRect.
We can avoid doing a pre-multiplied alpha conversion by detecting
whether we need to perform any graphics operations ahead of time.
2015-04-06 12:04:15 +09:00
Piotr Caban 821932dab9 gdiplus: Fix animated gif frames composition. 2015-03-13 21:52:48 +09:00
Piotr Caban b3a9c698e8 gdiplus: Don't store stream reference in GpImage, it's done by IWICBitmapDecoder. 2015-03-13 21:52:45 +09:00
Piotr Caban a181997855 gdiplus: Don't create new instance of IWICBitmapDecoder to encode every frame of animation. 2015-03-13 21:52:40 +09:00
Vincent Povirk 2d487e22d6 gdiplus: Move metafile functions to metafile.c. 2014-01-29 12:38:46 +01:00
Vincent Povirk 6518edfa5f gdiplus: Implement writing SetPageTransform records. 2014-01-17 11:00:28 +01:00
Vincent Povirk 681cd545ea gdiplus: Set world transform when drawing metafiles. 2013-11-25 15:15:52 +01:00
Vincent Povirk c491d52821 gdiplus: Write FillRects records to metafiles. 2013-11-25 15:15:52 +01:00
Dmitry Timoshkov f5d807b7d7 gdiplus: Get rid of no longer needed path and region fields. 2013-11-12 14:14:46 +01:00
Michael Stefaniuc 9fefae61da gdiplus: Avoid using CONST. 2013-09-23 11:54:47 +02:00
Dmitry Timoshkov 14f34c15d1 gdiplus: Store graphics clipping region in device coordinates. 2013-07-19 11:58:23 +02:00
Dmitry Timoshkov 6ab04040e5 gdiplus: GdipMeasureCharacterRanges should treat empty layout extents as infinite when StringFormatFlagsNoClip is specified.
Unlike GdipMeasureString which always treats empty layout extents as infinite.
2013-03-15 11:43:24 +01:00
Vincent Povirk 7b004c1714 gdiplus: Store the image type on a Graphics object in case the image is freed. 2013-03-04 11:15:38 +01:00
Vincent Povirk 81d9ffa041 gdiplus: Always use AlphaBlend to draw to 32-bit DIB's. 2012-12-06 12:59:56 +01:00
Dmitry Timoshkov 39ec8ce67e gdiplus: Store transformation matrix directly in the objects. 2012-11-08 15:37:49 +01:00
Dmitry Timoshkov 0a81a34643 gdiplus: Avoid GdipCloneMatrix calls for the graphics transformation matrix. 2012-11-07 11:58:27 +01:00
Vincent Povirk 91a3e5fc10 gdiplus: Reimplement GdipCreateMetafileFromEmf without using IPicture. 2012-11-01 10:50:45 +01:00
Dmitry Timoshkov 915df87aa5 gdiplus: Add an ability to cache bitmap properties and use distinct metadata loaders for different image formats. 2012-09-21 17:07:09 +02:00
Dmitry Timoshkov b8f4252290 gdiplus: Add support for generic typographic string format. 2012-09-04 17:15:39 +02:00
Dmitry Timoshkov 10c84dfe3b gdiplus: Rename roundr() to gdip_round() to make it clearer that it's an internal helper. 2012-08-21 11:47:11 +02:00
Dmitry Timoshkov 6bb353858e gdiplus: Replace convert_unit() by a clearer units_to_pixels() helper. 2012-08-15 13:53:31 +02:00
Dmitry Timoshkov 889be9d447 gdiplus: get_font_hfont helper should transform returned font height using font and device unit/resolution/scale. 2012-08-14 16:41:56 +02:00
Dmitry Timoshkov e536a128f7 gdiplus: Store device resolution in the graphics object. 2012-07-26 11:07:41 +02:00
Dmitry Timoshkov 9288acda1d gdiplus: GdipGetFontHeight should convert height from font to device units. 2012-07-18 17:17:38 +02:00
Dmitry Timoshkov ed8a3304c4 gdiplus: Factor out units_to_pixels() helper. 2012-07-18 17:17:31 +02:00
Dmitry Timoshkov 87f8e560c2 gdiplus: Pass complete palette info to convert_pixels(). 2012-07-17 13:09:40 +02:00
Dmitry Timoshkov a46c1f780a gdiplus: Use public ColorPalette structure to store image palette. 2012-07-17 13:09:39 +02:00
Dmitry Timoshkov 174b74bab2 gdiplus: Increase refcount of the source stream when loading a bitmap instead of cloning it. 2012-06-28 11:37:03 +02:00
Dmitry Timoshkov b72d236ca8 gdiplus: When loading a bitmap frame save its IWICMetadataReader interface. 2012-06-26 19:40:44 +02:00
Dmitry Timoshkov 9e12bc0175 gdiplus: Create a copy of the source stream when loading an image. 2012-06-19 13:44:07 +02:00
Francois Gouget 15846adef0 gdiplus: Make get_font_hfont() static. 2012-06-12 11:11:32 +02:00
Dmitry Timoshkov 007d642e53 gdiplus: Save total and current frame in the image structure. 2012-05-17 17:44:25 +02:00
Dmitry Timoshkov 5e4d64d18e gdiplus: Create 'const' friendly internal entries for font APIs. 2012-05-14 17:49:02 +02:00
Dmitry Timoshkov 83e88af325 gdiplus: Fetch font family metrics from truetype font data. 2012-05-11 15:43:42 +02:00
Dmitry Timoshkov c626528a91 gdiplus: Use OUTLINETEXTMETRIC instead of LOGFONT to store GpFont metrics. 2012-05-11 15:42:09 +02:00
Dmitry Timoshkov 54b69043eb gdiplus: Derive GpFont from GpFontFamily. 2012-05-09 12:03:33 +02:00
Dmitry Timoshkov e43fce0da9 gdiplus: Do not rely on an enumerated font size being equal to otmEMSquare. 2012-04-24 18:42:17 +02:00
Vincent Povirk 075775a81b gdiplus: Implement accessors for graphics rendering origin. 2012-04-24 11:37:46 +02:00
Vincent Povirk 52bf030b84 gdiplus: Implement GdipGetPathGradientTransform. 2012-04-02 12:37:55 +02:00
Vincent Povirk 5254a76a0c gdiplus: Implement path gradient preset blend accessors. 2012-04-02 12:37:43 +02:00
Vincent Povirk 673377a7b9 gdiplus: Store copies of remap tables in ImageAttributes objects. 2012-03-26 18:15:02 +02:00
Vincent Povirk eef459968a gdiplus: Detect hotkey prefixes when drawing strings. 2012-03-26 12:41:28 +02:00
Vincent Povirk 7e90dc3dc7 gdiplus: Implement path gradient surround color accessors. 2012-03-15 19:56:13 +01:00
Vincent Povirk 96d66f1666 gdiplus: Store a real path in path gradient brushes. 2012-03-13 10:27:35 +01:00
Dmitry Timoshkov b39425f3cf gdiplus: Create GDI bitmap only when needed. 2012-03-12 10:43:53 +01:00
Dmitry Timoshkov 0d7bc4b325 gdiplus: Create GDI brush only when needed. 2012-03-09 11:30:46 +01:00
Vincent Povirk fda2fc7684 gdiplus: Implement GdipPlayMetafileRecord for EMF records. 2011-07-08 13:40:42 +02:00
Vincent Povirk 44c57121ea gdiplus: Implement GetDC for metafiles. 2011-07-08 11:26:14 +02:00
Vincent Povirk d436e51872 gdiplus: Add basic metafile recording support. 2011-05-23 11:15:41 +02:00
Marcus Meissner 3ed1339219 gdiplus: Mark internal symbols as having hidden visibility. 2011-04-26 15:31:27 +02:00
Vincent Povirk 11f0662c60 gdiplus: Don't settle on a font size until absolutely necessary.
When we create a new font, we should store its height in a REAL field so
we don't have to round it. Further, when we calculate the width, we should
base the calculation on the metrics of a font at the height we will use, to
prevent rounding errors when the graphics transform will enlarge the font.
2011-04-05 13:36:56 +02:00
Vincent Povirk 32baa8ba4e gdiplus: Add helper for translating GpFont to HFONT. 2011-04-05 13:36:56 +02:00
Vincent Povirk 8a036abc5c gdiplus: Implement software rendering of texture brushes. 2011-03-11 11:48:08 +01:00
Alexandre Julliard b3c333e916 gdiplus: Use signed types in convert_pixels to avoid problems on 64-bit. 2011-03-10 14:10:11 +01:00
Maarten Lankhorst b8a1e6c687 gdiplus: Implement GdipAddPathString. 2011-03-03 17:47:15 +01:00
Vincent Povirk 546b1a5cb4 gdiplus: Copy only the area requested when (un)locking bitmaps. 2011-02-25 11:06:36 +01:00
Vincent Povirk 86d58dc6c8 gdiplus: Store an ImageAttributes in texture brushes. 2011-02-15 17:01:43 +01:00
Vincent Povirk b7e664bc5c gdiplus: Add a software implementation of hatch brushes. 2011-01-24 12:13:54 +01:00
Vincent Povirk 9d0cd09597 gdiplus: Add a fallback method for getting HDC's from Graphics objects.
Native does this in more cases (at least for all bitmap graphics
objects), but using gdi32 objects when we can should perform better.
2010-08-18 09:42:58 +02:00
Vincent Povirk 9a6eabf0b5 gdiplus: Create HBITMAP-less bitmap objects for exotic pixel formats. 2010-08-17 11:55:33 +02:00
Vincent Povirk 85a5710688 gdiplus: Don't require an HDC for the convert_unit function. 2010-08-17 11:55:33 +02:00
Vincent Povirk 0ae0c0c09e gdiplus: Implement GdipSetImageAttributesWrapMode. 2010-05-10 10:01:48 +02:00
Vincent Povirk 6b53cb27bc gdiplus: Fix the non-trivial case in color_over. 2010-04-19 14:54:05 +02:00
Vincent Povirk 5433969ec8 gdiplus: Don't use gdi32 to draw to bitmaps with formats it can't handle. 2010-03-29 12:19:48 +02:00
Vincent Povirk af7b8efc94 gdiplus: Store a reference to the image in image graphics contexts. 2010-03-29 12:19:38 +02:00
Justin Chevrier 78f9177d9d gdiplus: Implement GdipSetImageAttributesRemapTable with updated test. 2010-03-04 12:30:17 +01:00
Vincent Povirk 70c9e4fb3d gdiplus: Store an image in texture brushes, and use it when cloning. 2010-02-15 12:20:00 +01:00
Vincent Povirk 318ba28630 gdiplus: Don't use gdi32 to do pixel format conversion. 2010-02-08 17:14:43 +01:00
Vincent Povirk 762845ca8c gdiplus: Implement GdipSetImageAttributesGamma. 2010-02-01 12:08:59 +01:00
Vincent Povirk 1aea88cac1 gdiplus: Implement GdipGetImage*Resolution. 2009-12-28 12:57:37 +01:00
Vincent Povirk 7ded3d83c6 gdiplus: Add some traces for the values of point arguments. 2009-12-28 11:54:27 +01:00
Hans Leidekker 9f63f7d949 gdiplus: Implement GdipGet/SetStringFormatMeasurableCharacterRanges. 2009-12-22 13:48:26 +01:00
Vincent Povirk 0c9991c583 gdiplus: Implement GdipSetImageAttributesColorMatrix. 2009-12-21 15:01:23 +01:00
Vincent Povirk 39dc81cc80 gdiplus: Implement GdipSetImagePalette. 2009-12-14 12:04:03 +01:00
Alexandre Julliard 0065a115c6 gdiplus: Remove a useless inline specifier. 2009-10-19 11:44:39 +02:00
Vincent Povirk 8bdabe3a18 gdiplus: Store preset blends in linear gradient brushes. 2009-09-15 17:34:35 -05:00
Vincent Povirk 0595fc5e03 gdiplus: Implement GdipGetImageRawFormat. 2009-09-15 17:34:12 -05:00
Vincent Povirk 895c6d8e1e gdiplus: Use AlphaBlend for 32-bit images with alpha channels. 2009-08-29 16:48:56 +02:00
Vincent Povirk 7fdc0208e8 gdiplus: Return the real image bits from LockBits when possible. 2009-08-29 16:48:55 +02:00
Vincent Povirk d87adf2a60 gdiplus: Don't use IPicture to manage the HDC associated with a GpBitmap. 2009-08-29 16:48:55 +02:00
Vincent Povirk e48524ceb6 gdiplus: Add and use an HBITMAP field in GpBitmap objects. 2009-08-29 16:48:55 +02:00
Andrew Eikum 2032b0d354 gdiplus: Implement GdipIsVisibleRegionRect. 2009-08-26 15:05:46 +02:00
Vincent Povirk 55ec1d9150 gdiplus: Store color key information in ImageAttributes. 2009-08-03 14:55:41 +02:00
Andrew Eikum 632aef3d8b gdiplus: Implement GdipBeginContainer2 and GdipEndContainer. 2009-07-07 12:33:10 +02:00
Vincent Povirk 60167dfb74 gdiplus: Implement partially transparent solid fill brushes. 2009-05-21 16:17:52 +02:00
Vincent Povirk ef4d0d970d gdiplus: Populate the installed font collection. 2009-05-14 17:23:03 +02:00
Vincent Povirk 3dd5ce7874 gdiplus: Add a trace to GdipDrawString. 2009-05-14 11:13:29 +02:00
Vincent Povirk 173a1f6f79 gdiplus: Store the rectangle in line gradient brushes. 2009-05-08 12:21:11 +02:00
Vincent Povirk b05cf906d1 gdiplus: Add blend information to linear gradient brushes. 2009-04-29 13:07:07 +02:00
Vincent Povirk 8a3d9ff773 gdiplus: Only release device contexts created internally. 2009-04-27 13:23:00 +02:00
Chris Wulff a2a94a49bc gdiplus: Partial implementation of GdipCreateHatchBrush. 2009-01-12 14:36:37 +01:00
Hans Leidekker 8656f6db50 gdiplus: Better implementation of GdipGetFontHeightGivenDPI. 2008-12-01 14:01:14 +01:00
Vincent Povirk 08aa0cac74 gdiplus: Implement GdipRegionGetHRgn for paths. 2008-11-25 13:11:44 +01:00
Vincent Povirk f3cad17a9b gdiplus: Implement CachedBitmap based on Image. 2008-11-24 14:36:50 +01:00
Hans Leidekker ea323d1349 gdiplus: Implement GdipNewPrivateFontCollection and GdipDeletePrivateFontCollection. 2008-11-24 14:25:10 +01:00