Commit Graph

1974 Commits

Author SHA1 Message Date
Kusanagi Kouichi 35c84cddcc gdi32: Use helper functions when loading font from cache. 2012-03-30 15:30:01 +02:00
Huw Davies 88a2620b14 gdi32: Add support for loading scalable font resources. 2012-03-30 15:29:40 +02:00
Huw Davies 105caa28bf gdi32: Implement CreateScalableFontResource.
Based on patches by Jeremy White and Dmitry Timoshkov.
2012-03-29 18:16:06 +02:00
Huw Davies 7ac623f380 gdi32: Add a helper to create a new FreeType face. 2012-03-29 18:15:39 +02:00
Huw Davies 0318951aac gdi32: Separate face creation from face insertion. 2012-03-27 13:43:53 +02:00
Huw Davies 2489c3285c gdi32: Remove the loop over bitmap sizes. FreeType lists different sizes as separate faces.
Windows format bitmap fonts have been enumerated as separate faces
since FreeType 2.1.5, since we require 2.1.9 for bitmap support we can
safely drop this loop.
2012-03-27 13:43:50 +02:00
Huw Davies 8d50bb6711 gdi32: Add a helper to free a face object and fix a potential memory leak. 2012-03-27 13:43:46 +02:00
Huw Davies b5115f77bc gdi32: Add a helper to retrieve the fontsignature. 2012-03-27 13:43:42 +02:00
Huw Davies 45d79feaf5 gdi32: Add a helper to retrieve a bitmap font's internal leading. 2012-03-27 13:43:36 +02:00
Huw Davies afae44da25 gdi32: Add a helper to retrieve the ntm flags. 2012-03-27 13:43:34 +02:00
Huw Davies 37eb386739 gdi32: Add a helper to retrieve the font version. 2012-03-27 13:43:31 +02:00
Huw Davies e27a633b93 gdi32: Add a helper to create a family. 2012-03-27 13:43:29 +02:00
Huw Davies 7ad330deef gdi32: Add a helper to retrieve the family pointer. 2012-03-27 13:43:26 +02:00
Huw Davies c6af1d5416 gdi32: Add a helper to retrieve the family names and simplify the logic. 2012-03-27 13:43:24 +02:00
Huw Davies 18d19e7f18 gdi32: Remove unused variable. 2012-03-16 16:52:51 +01:00
Huw Davies 41fb856961 gdi32: Correctly propagate the enumproc's return value. 2012-03-14 17:33:54 +01:00
Kusanagi Kouichi 6a49adeee6 gdi32: find_face_from_filename() needs to take font replacements into account. 2012-03-14 17:28:05 +01:00
Kusanagi Kouichi d77104b93d gdi32: Remove unused parameters and code, and a useless wrapper function. 2012-03-13 10:38:04 +01:00
Kusanagi Kouichi eab0257492 gdi32: Simplify font replacement loading. 2012-03-13 10:37:51 +01:00
Kusanagi Kouichi 4bb0e2d076 gdi32: Add a helper function to get face list from family. 2012-03-13 10:37:45 +01:00
Kusanagi Kouichi fc03398cd5 gdi32: Add a helper function to create a full name from a family name and a style name. 2012-03-13 10:37:01 +01:00
Kusanagi Kouichi d696d5fee8 gdi32: Move font signature of font link from Face to SYSTEM_LINKS. 2012-03-13 10:36:45 +01:00
Kusanagi Kouichi e86519c9b3 gdi32: Add a helper function to find font link. 2012-03-13 10:36:19 +01:00
Alexandre Julliard 53c53126d5 gdi32: Fix rounding error for odd ellipse sizes in CreateRoundRectRgn. 2012-03-09 11:38:12 +01:00
Alexandre Julliard 78c3af9f18 gdi32: Fix missing increment of integer data in GetCharABCWidthsFloat. 2012-03-02 17:03:45 +01:00
Alexandre Julliard fd40d65cfa gdi32: Avoid using uninitialized value in DIB pattern enhmetafile record. 2012-02-24 17:04:06 +01:00
Alexandre Julliard c65de04789 gdi32: Use 64-bit values when computing ellipses to avoid overflows. 2012-02-24 15:55:45 +01:00
Alexandre Julliard 556267bde4 gdi32: Avoid overflows for invalid coordinates in line clipping. 2012-02-22 11:28:33 +01:00
Alexandre Julliard 32057bf132 gdi32: Don't paint the text rectangle in transparent mode unless a rectangle is explicitly specified. 2012-02-21 17:20:48 +01:00
Kusanagi Kouichi 4dc04ae867 gdi32: Initialize font signature of "System" font link. 2012-02-21 15:01:03 +01:00
Alexandre Julliard 21498d6c11 gdi32: Paint everything in ExtFloodFill when the DIB doesn't have a clip region. 2012-02-19 20:34:27 +01:00
Alexander Kochetkov 86de76b9e1 gdi32: Fix text baseline calculation in compatible mode. 2012-02-16 18:51:55 +01:00
Alexandre Julliard 691c37ca9f gdi32: Fix font orientation when mirroring in compatible mode.
Inspired by a patch from Alexander Kochetkov.
2012-02-16 18:51:55 +01:00
Kusanagi Kouichi 758796e704 gdi32: Add traces for skipped font replacements. 2012-02-15 16:27:11 +01:00
Kusanagi Kouichi 15a6aefb8f gdi32: Use find_family_from_any_name to find a replacement family. 2012-02-15 16:27:11 +01:00
Aric Stewart 05a9d4ce94 gdi32: Rebuild the internal SystemLink every time. 2012-02-14 19:15:48 +01:00
Alexandre Julliard b3ab012a42 gdi32: Don't clip to the visible rectangle for screen DCs. 2012-02-14 12:31:47 +01:00
Aric Stewart 85a71387da gdi32: Load fonts from default Mac external font paths. 2012-02-09 11:58:48 -06:00
Akihiro Sagawa 39f748f083 gdi32/tests: Reorder tests to avoid side-effects. 2012-02-09 11:54:39 -06:00
Huw Davies d3bfa44d53 gdi32: Intersect the background text box with the clip rectangle in device units. 2012-02-09 09:34:43 -06:00
Huw Davies 1eca24bd6b gdi32: Rename a shadow variable. 2012-02-09 09:34:38 -06:00
Akihiro Sagawa 286854fb06 gdi32: Consider whether the logical font face is vertical when selecting. 2012-02-08 13:54:40 -06:00
Akihiro Sagawa c683ad72b2 gdi32/tests: Add tests for East Asian font selection. 2012-02-08 13:54:33 -06:00
Aric Stewart f83762e678 gdi32: Allow font replacements to be specified either in localized name or English name. 2012-02-08 10:53:40 -06:00
Akihiro Sagawa d53dc01143 gdi32: Restore the vertical font flag from the cache. 2012-02-07 14:03:12 -06:00
Aric Stewart e7a79b5565 gdi32: Keep our internal generated system links separate and append them to any user defined system links. 2012-02-07 09:35:50 -06:00
Aric Stewart a8a2f87135 gdi32: In update_system_links if the font we are trying to link has already been substituted or localized we need to check against that name also. 2012-02-01 16:42:43 +01:00
Alistair Leslie-Hughes c5235eeab0 gdi32: Add EnhMetafile PolyBezier, PolyBezierTo support. 2012-01-19 21:08:55 +01:00
Huw Davies 3dc4f259e9 gdi32: The clip region should stop the flooding. 2012-01-19 21:08:50 +01:00
Huw Davies b2c3ca090f gdi32/tests: Add tests for ExtFloodFill. 2012-01-18 16:27:45 +01:00
Huw Davies d69868e464 gdi32: Implement ExtFloodFill. 2012-01-18 16:27:42 +01:00
Huw Davies ff4045b110 gdi32: Use separate x and y parameters in the get_pixel primitive. 2012-01-18 16:27:39 +01:00
Alexandre Julliard 7e9d5a1771 gdi32: Negative destination sizes are allowed after coordinate mapping in GdiAlphaBlend. 2012-01-18 16:03:36 +01:00
Alexandre Julliard f8fa169da0 gdi32: Store foreground/background color even when passed CLR_INVALID. 2012-01-12 15:53:07 +01:00
Alexandre Julliard 9ecc1e0702 gdi32: Simplify the CreateCompatibleBitmap implementation. 2012-01-12 15:53:04 +01:00
Alexandre Julliard fbbf3ba408 gdi32: Get rid of the CreateDIBSection driver entry point. 2012-01-10 16:13:29 +01:00
Alexandre Julliard 71ea68b657 gdi32: Use the bitmap part of the DIBSECTION structure for the DDB object information. 2012-01-10 16:13:29 +01:00
Alexandre Julliard e896af4065 gdi32: Always store a DIBSECTION structure in the bitmap object. 2012-01-10 16:13:29 +01:00
Alexandre Julliard 8a9be0a30b gdi32: Get rid of the get_bitmap_funcs function.
DIBs no longer use the display driver functions.
2012-01-10 16:13:28 +01:00
Alexandre Julliard 66774baba3 gdi32: Use the bpp info from the bitmap structure now that it's identical to the DIB one. 2012-01-10 16:13:28 +01:00
Alexandre Julliard 8946a33c4b gdi32: Simplify CreateDIBSection and avoid using the reference DC if not needed. 2012-01-10 16:13:27 +01:00
Alexandre Julliard a51b2c8bd5 gdi32: Add a separate set of GDI object functions for DIBs. 2012-01-10 16:13:27 +01:00
Kusanagi Kouichi fecb1d8b6f gdi32: GetGlyphIndices doesn't substitute glyph. 2012-01-10 11:22:41 +01:00
Alexandre Julliard 62eaaa796b gdi32/tests: Remove device capabilities test that fails on XP. 2012-01-09 16:27:41 +01:00
Huw Davies 7994f2c03b gdi32: Don't create the outline region twice. 2012-01-09 15:23:17 +01:00
Alexandre Julliard 9c112996d0 gdi32: Stop forwarding object selection calls to x11drv. 2012-01-09 12:14:34 +01:00
Alexandre Julliard dc1aeeb2f8 gdi32: Get rid of the SetDIBColorTable driver entry point. 2012-01-07 13:27:08 +01:00
Alexandre Julliard 867be0e3e3 gdi32: Add an empty ExtEscape DIB driver entry point. 2012-01-06 19:24:12 +01:00
Alexandre Julliard 56331e2a9a gdi32: Don't allow Get/SetDeviceGammaRamp on DIBs or memory DCs. 2012-01-06 19:24:12 +01:00
Alexandre Julliard bf718448f3 gdi32: Add a stub for the ExtFloodFill entry point. 2012-01-06 19:24:11 +01:00
Alexandre Julliard ff31a448b3 gdi32: Implement Arc, ArcTo, Chord, and Pie, using line segments for now. 2012-01-06 19:24:02 +01:00
Alexandre Julliard 92d5b41599 gdi32: Add a helper function for computing the device rect for PS_INSIDEFRAME. 2012-01-06 19:22:22 +01:00
Alexandre Julliard 5ff285629e gdi32: Implement Ellipse and RoundRect, using line segments for now. 2012-01-06 19:22:12 +01:00
Alexandre Julliard 3e51dd7515 gdi32: Use a better algorithm for CreateRoundRectRgn. 2012-01-06 12:53:20 +01:00
Alexandre Julliard 94ffc49e02 gdi32: Draw rectangles in the order specified by the current arc direction. 2012-01-05 20:54:07 +01:00
Alexandre Julliard 4b524f91e2 gdi32/tests: Add some tests for brushed and dashed wide pens. 2012-01-04 18:17:05 +01:00
Alexandre Julliard d858041a19 gdi32: Get rid of the pen deferring support, all pen styles are implemented now. 2012-01-04 16:53:17 +01:00
Alexandre Julliard c82d2a034f gdi32: Implement dashed wide lines. 2012-01-04 16:06:21 +01:00
Alexandre Julliard bc5428600b gdi32: Add a helper function for drawing multiple line segments. 2012-01-04 16:06:01 +01:00
Alexandre Julliard a59c53b312 gdi32: Add a helper function for drawing a wide line segment. 2012-01-04 15:50:31 +01:00
Alexandre Julliard 8b1bab524b gdi32: Skip empty segments at the beginning and end of a line to make sure the caps are correct. 2012-01-04 15:10:10 +01:00
Alexandre Julliard 5f2371c229 gdi32: Only create the round cap region once per call. 2012-01-04 15:02:05 +01:00
Alexandre Julliard 618425ac4c gdi32: Fix skipping of zero-length dashes. 2012-01-04 14:57:52 +01:00
Marcus Meissner 15162ddf3c gdi32: Check return value of REGION_UnionRectWithRegion (Coverity). 2012-01-03 12:37:57 +01:00
Alexandre Julliard 5721cbf0e8 gdi32: Add stubs for the OpenGL entry points in the DIB driver. 2012-01-03 12:37:16 +01:00
Alexandre Julliard ccfbcfaf53 gdi32: Calculate the image size in GradientFill only once we have the correct bit count. 2012-01-02 21:46:46 +01:00
Alexandre Julliard 2c9c9f78fb gdi32: Don't bother computing interior regions when the brush is null. 2011-12-30 12:53:35 +01:00
Alexandre Julliard 488bf107a9 gdi32: Implement brushed pens. 2011-12-30 11:04:35 +01:00
Alexandre Julliard 4e03247427 gdi32: Define a structure to make the brush state independent from the physdev. 2011-12-30 11:04:33 +01:00
Alexandre Julliard cc9836bda0 gdi32: Pass a brush_pattern structure to the SelectPen entry point for brushed pens. 2011-12-30 11:04:29 +01:00
Alexandre Julliard f85bb35280 gdi32: Pass a brush_pattern structure to the SelectBrush entry point. 2011-12-30 11:04:26 +01:00
Alexandre Julliard a1fdd5856f gdi32: Store the pattern brush information for geometric pens. 2011-12-30 11:04:23 +01:00
Alexandre Julliard ee89ce2982 gdi32: Add sanity checks for brush hatch styles. 2011-12-30 11:04:16 +01:00
Alexandre Julliard 8bf48557ef gdi32: Add a structure to store all the extra information needed for a pattern brush. 2011-12-29 19:20:55 +01:00
Alexandre Julliard 5a67227078 gdi32/tests: Get rid of Win9x compatibility in the pen tests. 2011-12-29 19:20:50 +01:00
Alexandre Julliard 63a9217539 gdi32: Add checks for invalid color usage values. 2011-12-29 16:18:39 +01:00
Alexandre Julliard c1c8c92875 gdi32: Add helpers to paint a region with the brush or pen. 2011-12-29 10:10:45 +01:00
Alexandre Julliard 579afe5cc6 gdi32: Implement PolyPolygon in the DIB driver. 2011-12-29 09:57:58 +01:00
Alexandre Julliard f5549ae1d0 gdi32: Use a region to render geometric and wide pens in LineTo. 2011-12-29 09:57:41 +01:00
Alexandre Julliard da8ae11300 gdi32: Use a region to render geometric and wide pens in Rectangle. 2011-12-29 09:53:25 +01:00
Alexandre Julliard 64ed56366c gdi32: Use a region to render geometric and wide pens in PolyPolyline. 2011-12-29 00:02:24 +01:00
Alexandre Julliard 9ee690c984 gdi32: Implement returning a region for 1-pixel wide dashed pen lines. 2011-12-28 23:03:03 +01:00
Alexandre Julliard 3188c30229 gdi32: Implement returning a region for 1-pixel wide solid pen lines. 2011-12-28 23:02:42 +01:00
Alexandre Julliard 0429d9181f gdi32: Add support for updating a region from the pen backend functions instead of painting directly. 2011-12-28 23:02:10 +01:00
Alexandre Julliard f155db574f gdi32: Add support for 1-pixel wide PS_USERSTYLE pens. 2011-12-28 17:42:32 +01:00
Alexandre Julliard 305be80e2f gdi32: Add support for PS_ALTERNATE pens. 2011-12-28 17:42:27 +01:00
Alexandre Julliard e364809a90 gdi32: Add support for 1-pixel wide geometric dashed pens. 2011-12-28 17:42:14 +01:00
Alexandre Julliard bbd7f4e0e3 gdi32: Fix handling of invalid pen styles. 2011-12-28 16:33:35 +01:00
Alexandre Julliard 881f635ce9 gdi32: Extended pens are always transparent. 2011-12-28 16:33:31 +01:00
Alexandre Julliard 5f03c6c81b gdi32: Wide cosmetic pens don't support dashes. 2011-12-28 13:53:15 +01:00
Alexandre Julliard ab63eb5c40 gdi32: Fix the scaling of the width of cosmetic pens. 2011-12-28 13:53:12 +01:00
Alexandre Julliard 9b8d920cb7 gdi32: Pass the clip region to the brush_rect helper and add a similar helper for pens. 2011-12-28 11:28:21 +01:00
Alexandre Julliard 18c20964e1 gdi32: Add support for PS_INSIDEFRAME pens when drawing rectangles. 2011-12-28 11:17:41 +01:00
Alexandre Julliard c861284a02 gdi32: Add a helper function to add a rectangle to a region. 2011-12-28 11:04:30 +01:00
Alexandre Julliard 0c840f66ed gdi32: Compute the correct rectangle interior when using wide pens. 2011-12-27 20:53:35 +01:00
Akihiro Sagawa 70c2222180 gdi32: Avoid making a DBCS character in range. 2011-12-27 16:55:09 +01:00
Alexandre Julliard a80eafe8d7 gdi32: Re-create the brush bits only when the ROP has really changed. 2011-12-27 16:55:02 +01:00
Alexandre Julliard 8b3271c3b0 gdi32: Avoid making a copy of the device clipping region in the DIB driver. 2011-12-27 15:48:29 +01:00
Alexandre Julliard 56373bc491 gdi32: Use the get_clipped_rects helper in the blitting functions. 2011-12-27 15:41:21 +01:00
Alexandre Julliard d0f110e2a9 gdi32: Use the get_clipped_rects helper in the pen functions. 2011-12-27 15:00:00 +01:00
Alexandre Julliard 63ebfc591e gdi32: Use the get_clipped_rects helper in the text functions. 2011-12-27 14:58:52 +01:00
Alexandre Julliard b761d0e1c6 gdi32: Add a helper function to compute the list of rectangles to paint after clipping. 2011-12-27 14:57:23 +01:00
Alexandre Julliard 4333b7d370 gdi32/tests: Add tests for PALETTEINDEX colors. 2011-12-23 13:43:49 +01:00
Alexandre Julliard 73b9c86384 gdi32: Always use proper RGB colors for monochrome DDB pattern brushes. 2011-12-22 21:18:38 +01:00
Alexandre Julliard 8f929ae04d gdi32: Add a common helper for computing pen and brush masks. 2011-12-22 20:10:31 +01:00
Alexandre Julliard 56532d0cf7 gdi32: Recompute the foreground masks on every use to support PALETTEINDEX colors. 2011-12-22 19:50:29 +01:00
Alexandre Julliard e166ec0bb0 gdi32: Recompute the background masks on every use to support PALETTEINDEX colors. 2011-12-22 19:50:07 +01:00
Alexandre Julliard 9237638c0e gdi32: Recompute the pen masks on every use to support PALETTEINDEX colors. 2011-12-22 19:49:23 +01:00
Alexandre Julliard 43373c29ef gdi32: Recompute the brush masks on every use to support PALETTEINDEX colors. 2011-12-22 19:47:40 +01:00
Huw Davies 8caa0a05bd gdi32/tests: Add tests for geometric solid pens. 2011-12-22 17:19:19 +01:00
Huw Davies 7c2351566a gdi32: Add support for geometric solid pens. 2011-12-22 17:19:19 +01:00
Alexandre Julliard 7f3a7ae585 gdi32: Fix handling of COLORREFs with illegal values for the high byte. 2011-12-22 17:19:13 +01:00
Kusanagi Kouichi 53385314d0 gdi32: Substitute glyph for vertical font only. 2011-12-20 20:06:33 +01:00
Kusanagi Kouichi 69a26387b3 gdi32: Add vertical fonts to font list. 2011-12-20 20:06:32 +01:00
Kusanagi Kouichi 65f809248f gdi32: Split AddFontToList into two functions. 2011-12-20 20:06:32 +01:00
Kusanagi Kouichi 4dfe084bba gdi32: Merge two ifs. 2011-12-20 20:06:31 +01:00
Kusanagi Kouichi 6c268cf1c5 gdi32: Use find_family_from_name and LIST_FOR_EACH instead of open-coding them. 2011-12-20 20:06:31 +01:00
Kusanagi Kouichi 5bdbf6c681 gdi32: Add a helper function to convert a string from A to W. 2011-12-20 20:06:30 +01:00
Alexandre Julliard a585659e31 gdi32: Remove support for deferring brush calls to X11, all brush types are supported now. 2011-12-19 20:15:42 +01:00
Francois Gouget 2ae10acb61 gdi32: Avoid hardcoding the Unicode string literal lengths. 2011-12-16 17:40:41 +01:00
Alexandre Julliard 19fe3f0c77 gdi32/tests: Add tests for device capabilities on memory DCs. 2011-12-16 12:09:02 +01:00
Alexandre Julliard 6752d3478f gdi32/tests: Add some tests for behavior of 32-bit DDBs. 2011-12-14 17:54:45 +01:00
Kusanagi Kouichi b5446ddb45 gdi32: Don't remove leading '@' from face name. 2011-12-13 18:59:12 +01:00
Kusanagi Kouichi bf8a100639 gdi32: Don't use preferred family name. 2011-12-13 18:59:11 +01:00
Kusanagi Kouichi ad58ca235c gdi32/tests: Add tests for vertical font. 2011-12-13 18:59:10 +01:00
Alexandre Julliard 38766d4d19 gdi32/tests: Fix some test failures on old Windows versions. 2011-12-13 14:00:20 +01:00
Alexandre Julliard 9f410413a6 gdi32: Implement GetPixel in the null driver using GetImage. 2011-12-13 14:00:05 +01:00
Alexandre Julliard 0c194895a2 gdi32: Remove some color table size checks, we use full-size color tables now. 2011-12-12 20:52:59 +01:00
Alexandre Julliard 49ae736022 gdi32: Implement GetNearestColor in the DIB driver. 2011-12-12 20:20:06 +01:00
Alexandre Julliard cae4ef81e6 gdi32: init_dib_info() can no longer fail, and no longer requires freeing. 2011-12-12 20:02:22 +01:00
Alexandre Julliard d357392b8b gdi32: Remove support for private color maps. 2011-12-12 20:02:17 +01:00
Alexandre Julliard 70d8341a67 gdi32: Pass the correct depth to PutImage for SetBitmapBits on a DIB. 2011-12-12 15:50:38 +01:00
Alexandre Julliard f85a28faf6 gdi32/tests: Add tests for 1-bpp DDB pattern brushes. 2011-12-12 15:50:38 +01:00
Alexandre Julliard 65a2c885f1 gdi32: Don't create a default color table for pattern brushes, use the DC colors instead. 2011-12-12 15:50:37 +01:00
Alexandre Julliard d5fe87e2e8 gdi32: Select the pattern brush only when first used. 2011-12-12 15:50:37 +01:00
Alexandre Julliard d353c95d47 gdi32: Add a flag to request a default color table from init_dib_info. 2011-12-12 15:50:33 +01:00
Alexandre Julliard c5895ead6a gdi32: Use the default DIB color table to create system and halftone palettes. 2011-12-12 11:30:50 +01:00
Alexandre Julliard 3a9cabb8c4 gdi32: Store the default color tables as static data. 2011-12-12 11:21:52 +01:00
Alexandre Julliard 27eb63b082 gdi32: GetCharABCWidthsFloatW must succeed with non-TrueType fonts. 2011-12-12 11:14:25 +01:00
Alexandre Julliard 2e42ab1527 gdi32/tests: Fix some test failures on Windows. 2011-12-10 18:08:35 +01:00
Alexandre Julliard 8db263d2eb gdi32: Simplify computation of the DIB header size for internal BITMAPINFO structures. 2011-12-10 13:35:59 +01:00
Alexandre Julliard 82e1a4616c gdi32: Make sure that biSizeImage always contains the correct size in internal BITMAPINFO structures. 2011-12-10 13:35:59 +01:00
Alexandre Julliard 25e2fae2a8 gdi32: Always use biClrUsed for the number of colors of internal BITMAPINFO structures. 2011-12-10 13:35:42 +01:00
Huw Davies ac7e9f6dcc gdi32/tests: Add some tests for wide pens. 2011-12-09 21:15:31 +01:00
Huw Davies e155a8054b gdi32: Add support for wide cosmetic pens. 2011-12-09 21:15:30 +01:00
Alexandre Julliard 98670510f4 gdi32/tests: Add tests for DIB_PAL_COLORS and DIB palettes with missing entries. 2011-12-09 21:15:23 +01:00
Alexandre Julliard 494bfa866a gdi32: Remove the nb_colors fields in the bitmap object, we always allocate a full size color table. 2011-12-09 21:15:22 +01:00
Alexandre Julliard c441ebc21d gdi32: Fix handling of DIB_PAL_COLORS in the various DIB functions. 2011-12-09 21:15:22 +01:00
Alexandre Julliard 647a4d5844 gdi32: Always allocate a full-size color table when creating a DIB section. 2011-12-09 21:15:16 +01:00
Alexandre Julliard 91d19b4b17 gdi32: Add a helper to build a color table from the DIB_PAL_COLORS bitmap info. 2011-12-08 21:31:59 +01:00
Alexandre Julliard 71199eab77 gdi32: Don't make a copy of the DIB color table when selecting it into a DC. 2011-12-08 20:00:55 +01:00
Alexandre Julliard 910fb48291 gdi32: Use PutImage directly to set the initial bitmap bits. 2011-12-08 19:58:47 +01:00
Alexandre Julliard df9e0ccf5c gdi32: Use the convert_bits helper function in SetDIBits and SetDIBitsToDevice. 2011-12-08 19:53:44 +01:00
Alexandre Julliard 72fae39ce0 gdi32: Add missing check for empty visible rects in the non-stretching case. 2011-12-08 18:00:00 +01:00
Alexandre Julliard 5b17ba887b gdi32: Rename the CLIPPING_UpdateGCRegion function.
We haven't used a GC here for a long time now.
2011-12-07 17:49:54 +01:00
Alexandre Julliard b9f09abdcc gdi32: Don't store the metaclip region, recompute it as needed. 2011-12-07 17:49:47 +01:00
Alexandre Julliard fb37752f53 gdi32: Only store a total visible region when it's a combination of other regions. 2011-12-07 17:48:29 +01:00
Alexandre Julliard ddfe35867d gdi32: Only create the DC visible region when necessary.
Most DCs can simply use the visible rectangle instead.
2011-12-07 16:50:57 +01:00
Alexandre Julliard 1f15ffa1e6 gdi32: Make sure DCs are fully zero-initialized. 2011-12-07 15:53:54 +01:00
Francois Gouget 22cb047ed4 gdi32: Make init_dib_info() static. 2011-12-06 17:53:15 +01:00
Alexandre Julliard 7534d47b1b gdi32: Pass the total visible region in the SetDeviceClipping driver entry point. 2011-12-06 15:51:00 +01:00
Alexandre Julliard 5a1a6e935a gdi32: Maintain a region inside gdi32 to keep track of the total visible region. 2011-12-06 15:50:59 +01:00
Alexandre Julliard 1e2dd7cad8 gdi32: Add a helper function to clip a rectangle to the DC visible rect. 2011-12-06 15:50:59 +01:00
Alexandre Julliard 25e300dcad gdi32: Add a null driver implementation for Polyline and Polygon. 2011-12-05 22:29:16 +01:00
Alexandre Julliard 360d4bc548 gdi32: Use the DIB engine and PutImage for the null driver triangular gradient implementation. 2011-12-05 17:19:32 +01:00
Alexandre Julliard 8e8cdc78e6 gdi32: Add more parameter checks in GdiGradientFill. 2011-12-05 16:36:08 +01:00
Alexandre Julliard 7ea59c107f gdi32: Use dithering also for 1-bpp gradients. 2011-12-05 16:36:08 +01:00
Alexandre Julliard 59f347b75c gdi32/tests: Add more gradient tests. 2011-12-05 16:36:07 +01:00
Alexandre Julliard 743b37df3d gdi32: Implement triangular gradients in the DIB engine. 2011-12-05 16:36:03 +01:00
Huw Davies 4ce3af3fad gdi32: Add support for checking the font's gasp flags. 2011-12-02 17:25:54 +01:00
Alexandre Julliard c5bddce3aa gdi32: Add some parameter checks in GdiGradientFill. 2011-12-02 14:00:18 +01:00
Alexandre Julliard 4c6807199e gdi32: Use the DIB engine and PutImage for the null driver rectangular gradient implementation. 2011-11-30 12:59:11 +01:00
Alexandre Julliard f2ec760a80 gdi32/tests: Add tests for rectangular gradients in DIBs. 2011-11-29 15:12:31 +01:00
Alexandre Julliard a135e47167 gdi32: Don't set gradient alpha channel for 8888 bitmaps created with bitfields. 2011-11-29 15:12:28 +01:00
Alexandre Julliard a869fc47bd gdi32: Implement 8-bpp and 4-bpp gradient dithering. 2011-11-29 15:12:26 +01:00
Alexandre Julliard ce2f542267 gdi32: Implement 16-bpp gradient dithering. 2011-11-29 15:12:23 +01:00
Alexandre Julliard e19a362407 gdi32: Implement rectangular gradients in the DIB engine. 2011-11-29 15:12:20 +01:00
Huw Davies 0ab46cd5e9 gdi32: Avoid reading past the end of the indices array.
Spotted by Marcus Meissner.
2011-11-24 17:17:07 +01:00
Huw Davies 224e51fcf5 gdi32: Add an option to allow pen_lines to draw a closed figure. 2011-11-24 17:17:04 +01:00
Alexandre Julliard 79691e7afa gdi32: Specify an initial allocation size for paths to avoid some reallocations. 2011-11-23 14:00:22 +01:00
Alexandre Julliard c2491ccc2d gdi32: Get rid of the Hungarian line noise in the gdi_path structure. 2011-11-23 13:37:14 +01:00
Alexandre Julliard aefb608752 gdi32: Get rid of the GdiPath typedef. 2011-11-23 13:32:22 +01:00
Alexandre Julliard ccc3b9caae gdi32: Get rid of the no longer needed path states. 2011-11-23 13:25:31 +01:00
Alexandre Julliard 2201d08834 gdi32: Only store the path in the DC when it's closed.
Open paths are stored only in the path physdev.
2011-11-23 13:24:12 +01:00
Alexandre Julliard a214a3c3da gdi32: Store a pointer to the path in the DC and make the path structure opaque. 2011-11-22 12:07:24 +01:00
Alexandre Julliard ddc9860a42 gdi32: Return a new path from PATH_WidenPath instead of replacing the DC path. 2011-11-22 12:07:18 +01:00
Alexandre Julliard f388827c8d gdi32: Return a new path from PATH_FlattenPath instead of replacing the DC path. 2011-11-22 12:05:35 +01:00
Alexandre Julliard ac1643caec gdi32: Return the region directly from PATH_PathToRegion. 2011-11-22 11:31:27 +01:00
Alexandre Julliard 7698b636e7 gdi32: Add helper functions for allocating and freeing paths. 2011-11-22 11:25:21 +01:00
Alexandre Julliard 26b1bfa52b gdi32: Use reallocs when growing a path instead of doing it by hand. 2011-11-22 11:23:53 +01:00
Alexandre Julliard 670f25cc8f gdi32: Add support for anti-aliasing in the null driver text output fallback. 2011-11-21 12:15:53 +01:00
Alexandre Julliard 1b63d5a610 gdi32: Add a helper function to determine anti-aliasing flags. 2011-11-21 11:52:30 +01:00
Alexandre Julliard 5282ffadad gdi32: Add a null driver fallback implementation for non-antialiased text output. 2011-11-21 11:52:26 +01:00
Huw Davies 04396063c8 gdi32: Add solid_line primitives. 2011-11-21 11:51:47 +01:00
Huw Davies f168f838f1 gdi32: Simplify the Bresenham line drawing. 2011-11-21 11:51:23 +01:00
Alexandre Julliard ffaf0c4966 gdi32: Don't mark a local variable static. 2011-11-17 17:34:14 +01:00
Huw Davies 666f83bc0f gdi32: Add a helper to retrieve the octant bias. 2011-11-16 17:00:23 +01:00
Huw Davies 48b1e66309 gdi32: Use an array of masks to simplify the bitmap conversion. 2011-11-16 17:00:19 +01:00
Huw Davies 6c9c9107d4 gdi32: Return valid anti-alias format bitmaps if the glyph is a monochrome bitmap. 2011-11-16 17:00:15 +01:00
Huw Davies f3fab96393 gdi32: Add a helper to return the maximum level to use for a given anti-aliasing format. 2011-11-16 17:00:10 +01:00
Huw Davies d43d17e248 gdi32/tests: Add tests for text rendering. 2011-11-14 15:25:28 +01:00
Huw Davies e9612c1af0 gdi32: Add support for drawing text in the dib driver. 2011-11-14 15:25:28 +01:00
Huw Davies 5c6f630b98 gdi32: Add draw_glyph primitives. 2011-11-14 15:25:28 +01:00
Huw Davies 18520f2e63 gdi32: Calculate the min/max color component intensities for 17 glyph levels. 2011-11-14 15:25:27 +01:00
Huw Davies f284f5970a gdi32: Move the ETO_OPAQUE rectangle drawing to the dib driver. 2011-11-14 15:25:27 +01:00
Huw Davies 5990091bbf gdi32: Expose a solid_rects function. 2011-11-14 15:25:27 +01:00
Huw Davies 15fabcdefe gdi32: Keep track of the text pixel color. 2011-11-14 15:25:27 +01:00
Marcus Meissner 4222ccf1cf gdi32: Fixed loop end setting (Coverity). 2011-11-14 15:25:19 +01:00
Dmitry Timoshkov 6acf226fa1 gdi32: Remove a duplicated line of code. 2011-11-09 11:39:02 +01:00
Alexandre Julliard 5e1599d8c0 gdi32: Don't set the bitmap owner when selecting a pattern brush. 2011-11-08 20:13:18 +01:00
Alexandre Julliard 0c5d619bd3 gdi32: Use the CopyBitmap entry point to copy the bitmap of a pattern brush. 2011-11-08 19:26:30 +01:00
Alexandre Julliard 26f5e2c6e7 gdi32: Implement the CopyBitmap entry point in the null driver. 2011-11-08 19:25:37 +01:00
Alexandre Julliard 9391c6a757 gdi32: Add a CopyBitmap driver entry point. 2011-11-08 19:25:05 +01:00
Alexandre Julliard cc673f44c7 gdi32: Grab the bits directly for DIB pattern brushes instead of duplicating the bitmap. 2011-11-08 19:24:17 +01:00
Alexandre Julliard c88f4d452f gdi32: Get rid of the get_bitmap_image helper. 2011-11-08 19:24:13 +01:00
Alexandre Julliard 03496d6fba gdi32: Avoid copying the brush pattern if the format matches the DC. 2011-11-08 13:32:36 +01:00
Alexandre Julliard bb162ba4b4 gdi32: Reselect the pattern brush on every use if it's mapped with DIB_PAL_COLORS. 2011-11-08 13:18:01 +01:00
Alexandre Julliard b47debddf5 gdi32: Return the original brush data in GetObject. 2011-11-07 21:06:21 +01:00
Akihiro Sagawa 35a928a0f8 gdi32: Use the translated string as a charset name. 2011-11-07 19:34:47 +01:00
Akihiro Sagawa b5db70f1ca gdi32: Add a string table resource for the translation. 2011-11-07 17:28:00 +01:00
Alexandre Julliard 03e0d96b9e gdi32: Retrieve the brush pattern bits from the cache for enhanced metafiles. 2011-11-07 13:43:30 +01:00
Alexandre Julliard 7d0b65c4d1 gdi32: Retrieve the brush pattern bits from the cache for metafiles. 2011-11-07 13:42:57 +01:00
Alexandre Julliard 199409a27b gdi32: Fix positioning of font underlines and strikeouts. 2011-11-07 13:41:18 +01:00
Alexandre Julliard 6098a0457b gdi32/tests: Avoid some array bounds warnings. 2011-11-07 11:43:46 +01:00
Alexandre Julliard bfb41db3a2 gdi32: Set the mono color map in BitBlt also for the initial PutImage attempt. 2011-11-04 13:24:03 +01:00
Alexandre Julliard 278899d1e8 gdi32: Return failure when GetPixel is not supported. 2011-11-04 11:00:57 +01:00
Alexandre Julliard 37b56554a6 gdi32: Add support for pattern brushes in the DIB driver. 2011-11-03 12:50:13 +01:00
Alexandre Julliard 457c9650de gdi32: Retrieve the bits of a pattern brush when it's selected into a different type of DC. 2011-11-03 12:50:13 +01:00
Alexandre Julliard 8277ac3f7c gdi32: Don't free bitmap bits when changing the owner, we may still have pointers to them. 2011-11-03 12:50:10 +01:00
Alexandre Julliard 24ac8c66bb gdi32: Pass the full brush contents in the SelectBrush driver entry point. 2011-11-02 21:41:15 +01:00
Alexandre Julliard 20ecd97bee gdi32: Store internal brush data in separate fields in the brush object. 2011-11-02 21:04:53 +01:00
Alexandre Julliard 7f7dd82c7b gdi32: Sanitize the DIB information for DIB pattern brushes. 2011-11-02 12:22:44 +01:00
Alexandre Julliard 6bf6575c5c gdi32: Store a pointer instead of a global handle for DIB pattern brushes. 2011-11-02 12:02:27 +01:00
Alexandre Julliard 8afcff3c79 gdi32/tests: Add some tests for palette-relative pattern brushes. 2011-11-02 11:47:43 +01:00
Alexandre Julliard 4ec87b3e8d gdi32: Add some brush tests. 2011-11-01 14:12:16 +01:00
Alexandre Julliard 95cba0c0f4 gdi32: Add a DC driver entry point for GdiGradientFill. 2011-10-31 23:51:38 +01:00
Alexandre Julliard afd962121b gdi32/tests: Add some tests for the behavior of a printer DC. 2011-10-31 20:23:20 +01:00
Alexandre Julliard f1f5f33468 gdi32: Emulate DDB support using the DIB driver when the graphics driver doesn't support bitmaps. 2011-10-31 20:21:15 +01:00
Alexandre Julliard c9bdcbafab gdi32: Allocate the bits for a DDB the first time it's used in any DIB driver call. 2011-10-31 20:06:37 +01:00
Huw Davies 1c1fff557d gdi32: Pass a NULL user-style array to ExtCreatePen if the user-style count is zero. 2011-10-28 17:26:44 +02:00
Alexandre Julliard 418424d362 gdi32: Add path entry points for functions that behave differently with an open path. 2011-10-28 13:18:42 +02:00
Alexandre Julliard e5db8969ac gdi32: Always start a new stroke when the path ends with a closed figure. 2011-10-28 13:18:23 +02:00
Alexandre Julliard e5ff45992e gdi32: Add a helper function to add multiple points at once to a path. 2011-10-28 13:18:10 +02:00
Alexandre Julliard fbafa45e84 gdi32: Pass a HDC instead of a DC pointer to internal path functions. 2011-10-28 13:07:52 +02:00
Alexandre Julliard 26aaaa1269 gdi32: Fix a misplaced release_dc_ptr call. 2011-10-28 11:29:34 +02:00
Alexandre Julliard bb21ac85b3 gdi32: Add a helper function to copy BITMAPINFO structures to avoid copying uninitialized data. 2011-10-27 14:19:44 +02:00
Ken Thomases 14efc6eb24 gdi32: Allow ~-based paths in HKCU\Software\Wine\Fonts:Path. 2011-10-27 12:24:52 +02:00
Alexandre Julliard c441d57452 gdi32: Implement the ExtTextOut entry point in the path driver. 2011-10-26 23:16:52 +02:00
Alexandre Julliard 613972efe5 gdi32: Implement the polyline entry points in the path driver. 2011-10-26 23:16:51 +02:00
Alexandre Julliard d4889bef47 gdi32: Implement the polygon entry points in the path driver. 2011-10-26 23:16:51 +02:00
Alexandre Julliard ac00dfc984 gdi32: Implement the Bezier entry points in the path driver. 2011-10-26 23:16:19 +02:00
Alexandre Julliard 4d9cc24128 gdi32: Implement the arc entry points in the path driver. 2011-10-26 20:10:00 +02:00
Alexandre Julliard f8040958f5 gdi32: Implement the Rectangle and RoundRect entry points in the path driver. 2011-10-26 20:05:24 +02:00
Alexandre Julliard 364e216462 gdi32: Add a helper function to start a new path stroke. 2011-10-26 20:02:10 +02:00
Alexandre Julliard fc5e29486d gdi32: Implement the LineTo entry point in the path driver. 2011-10-26 19:58:51 +02:00
Alexandre Julliard 2c1ec7fc3b gdi32: Implement the MoveTo entry point in the path driver. 2011-10-26 19:57:28 +02:00
Alexandre Julliard 8a7bf0a2ab gdi32: Push a path driver on the DC stack when a path is opened. 2011-10-26 19:53:22 +02:00
Alexandre Julliard 97a261d573 gdi32: Avoid directly modifying the cursor position in the DC structure in PolyDraw. 2011-10-26 19:47:27 +02:00
Alexandre Julliard ba2ea23574 gdi32: Always use a polygon to draw text strike-outs and underlines. 2011-10-26 14:14:36 +02:00
Alexandre Julliard ef34c47c4b gdi32: Move internal path functions to the top of the file to avoid forward declarations. 2011-10-26 14:14:32 +02:00
Alexandre Julliard f44c1e6533 gdi32/tests: Add tests for path open/closed states. 2011-10-26 12:41:56 +02:00
Henri Verbeet aa7bbe1376 gdi32: Update the DC in ExtEscape().
Specifically, X11DRV_FLUSH_GL_DRAWABLE needs correct clip rects.
2011-10-26 12:41:33 +02:00
Alexandre Julliard 7fbb16d4ba gdi32: Implement GdiRealizationInfo as a standard driver entry point. 2011-10-26 12:41:32 +02:00
Alexandre Julliard 8796831a9f gdi32: Implement FontIsLinked as a standard driver entry point. 2011-10-26 12:41:32 +02:00
Alexandre Julliard e31c51b65e gdi32: Implement GetFontData as a standard driver entry point. 2011-10-26 12:41:31 +02:00
Alexandre Julliard 441d6cfcd4 gdi32: Implement GetTextFace as a standard driver entry point. 2011-10-26 12:41:31 +02:00
Alexandre Julliard a2de6a8766 gdi32: Implement GetTextExtentExPointI as a standard driver entry point. 2011-10-26 12:41:30 +02:00
Alexandre Julliard 1740f34ffb gdi32: Implement GetTextCharsetInfo as a standard driver entry point. 2011-10-26 12:41:30 +02:00
Alexandre Julliard ce8d7b4601 gdi32: Implement GetOutlineTextMetrics as a standard driver entry point. 2011-10-26 12:41:29 +02:00
Alexandre Julliard 0c96820104 gdi32: Implement GetKerningPairs as a standard driver entry point. 2011-10-26 12:41:29 +02:00
Alexandre Julliard 6376b4cf6f gdi32: Implement GetGlyphOutline as a standard driver entry point. 2011-10-25 16:57:28 +02:00
Alexandre Julliard ff96c4dd4e gdi32: Implement GetGlyphIndices as a standard driver entry point. 2011-10-25 16:57:27 +02:00
Alexandre Julliard 90ecea9739 gdi32: Implement GetFontUnicodeRanges as a standard driver entry point. 2011-10-25 16:57:27 +02:00
Alexandre Julliard 23c7c0469c gdi32: Reimplement GetCharABCWidthsFloat using the integer version. 2011-10-25 16:57:27 +02:00
Alexandre Julliard 27208a0ec5 gdi32: Implement GetCharABCWidthsI as a standard driver entry point. 2011-10-25 16:57:27 +02:00
Alexandre Julliard e5a0fa7089 gdi32: Implement GetCharABCWidths as a standard driver entry point. 2011-10-25 16:57:26 +02:00
Alexandre Julliard a8444d7fd1 gdi32: Add driver entry points for a number of font functions. 2011-10-24 23:45:37 +02:00
Alexandre Julliard 2b1b11d681 gdi32: Rename the EnumDeviceFonts entry point to EnumFonts since it's not limited to device fonts. 2011-10-24 23:34:33 +02:00
Alexandre Julliard cbd81d391c gdi32: Implement EnumDeviceFonts as a standard driver entry point. 2011-10-24 23:34:28 +02:00
Alexandre Julliard 873bf81d3b gdi32: Don't return outline metrics for bitmap fonts. 2011-10-24 23:34:05 +02:00
Alexandre Julliard 20070d0838 gdi32: Implement GetTextMetrics as a standard driver entry point. 2011-10-24 20:03:53 +02:00
Alexandre Julliard ca4177997c gdi32: Add a few helper functions for computing font metrics. 2011-10-24 20:03:09 +02:00
Thomas Faber 0a44501a4e gdi32/tests: Test GetTextExtentExPoint behavior with zero and negative max extent values. 2011-10-24 19:37:07 +02:00
Huw Davies f53d73a017 gdi32: Add a fake 1-entry color table for 1-bpp ddbs. 2011-10-21 16:46:19 +02:00
Alexandre Julliard 5c1c7a6576 gdi32: Implement GetCharWidthW as a standard driver entry point. 2011-10-20 17:05:11 +02:00
Alexandre Julliard 6ad9eb805c gdi32: Implement GetTextExtentExPointW as a standard driver entry point. 2011-10-20 17:04:35 +02:00
Alexandre Julliard 328328bb2c gdi32: Add an intermediate variable to avoid array bounds warnings. 2011-10-20 12:46:21 +02:00
Alexandre Julliard 86b4fe7b0e gdi32/tests: Add intermediate pointers to color tables to simplify the code and avoid array bounds warnings. 2011-10-20 12:34:58 +02:00
Alexandre Julliard ef0fe44327 gdi32: Implement SelectFont as a standard driver entry point. 2011-10-19 18:22:05 +02:00
Alexandre Julliard 885a4a5c08 gdi32: Add an initial Freetype font driver. 2011-10-19 18:22:01 +02:00
Alexandre Julliard 6bb001da6f gdi32: Add support for pushing a font driver on the DC driver stack. 2011-10-19 18:21:56 +02:00
Huw Davies 595dbe2eba gdi32: Fix character code metrics for bitmap fonts. 2011-10-19 17:38:33 +02:00
Huw Davies 6aece157a0 gdi32/tests: Remove the no longer used todo functionality of the test_color macro. 2011-10-19 16:59:32 +02:00
Huw Davies 2e72434340 gdi32/tests: Add tests for GetPixel. 2011-10-19 16:59:29 +02:00
Huw Davies f6c7e96a61 gdi32: Implement GetPixel. 2011-10-19 16:59:25 +02:00
Huw Davies 70be58c17d gdi32: Add get_pixel primitives. 2011-10-19 16:59:21 +02:00
Huw Davies 07e652b330 gdi32/tests: Add tests for SetPixel. 2011-10-19 16:59:04 +02:00
Huw Davies 2ac6a1bbf6 gdi32: Implement SetPixel. 2011-10-19 16:58:57 +02:00
Huw Davies ddbaa9491a gdi32: Add pixel_to_colorref primitives. 2011-10-19 16:58:51 +02:00
Huw Davies b700660075 gdi32/tests: Add tests for non-rgb colorrefs. 2011-10-19 16:58:46 +02:00
Huw Davies a3b5f270a8 gdi32: Add support for non-rgb colorrefs. 2011-10-19 16:58:40 +02:00
Huw Davies 0967de74db gdi32: Introduce a unified function to perform COLORREF to pixel color mapping. 2011-10-19 16:58:31 +02:00
Marcus Meissner 06935e9323 gdi32: Remove a incorrect sizeof from pointer arithmetic (Coverity). 2011-10-18 15:17:07 +02:00
Huw Davies ffe5e20b78 gdi32/tests: Remove unused legacy values. 2011-10-18 15:13:04 +02:00
Alexandre Julliard 013f5a9b23 gdi32: Return the correct error code when selecting objects in a metafile. 2011-10-18 15:03:29 +02:00
Alexandre Julliard 5267c1316b gdi32: Get rid of the DC_FUNCTIONS typedef. 2011-10-17 20:39:54 +02:00
Huw Davies 4dbc0690ef gdi32/tests: Add some StretchDIBits tests. 2011-10-17 17:45:09 +02:00
Huw Davies c9a7bb715d gdi32: Implement nulldrv_StretchDIBits using the PutImage gdi driver function. 2011-10-17 17:45:08 +02:00
Huw Davies a01844b013 gdi32: Make the convert_bits and stretch_bits helpers external. 2011-10-17 17:45:08 +02:00
Huw Davies 64f6e9bc58 gdi32: Move the intersection of vis rects into a separate function. 2011-10-17 17:45:08 +02:00
Huw Davies 2127e9444d gdi32: Allow a caller to build_rle_bitmap to not request the clip region. 2011-10-17 17:45:08 +02:00
Alexandre Julliard bfdac3e885 gdi32: Add a fall back implementation of BlendImage using client-side blending. 2011-10-17 17:45:05 +02:00
Alexandre Julliard 78d50cafb2 gdi32/tests: Add test cases for DIB blending. 2011-10-17 17:44:25 +02:00
Alexandre Julliard a3a574fae0 gdi32: Implement a BlendImage entry point in the DIB driver. 2011-10-14 21:32:40 +02:00
Daniel Santos 7a4349bb99 gdi32: Remove PS_USERSTYLE FIXME and workarounds. 2011-10-14 20:26:44 +02:00
Alexandre Julliard b7a15ae7fa gdi32: Overlapping rectangles are not allowed in GdiAlphaBlend. 2011-10-14 20:26:43 +02:00
Alexandre Julliard deb195869c gdi32/tests: Add more tests for various palette formats as destination. 2011-10-14 13:12:27 +02:00
Alexandre Julliard 5500e97d19 gdi32/tests: Add more tests for arbitrary 32-bpp bitfields as destination. 2011-10-14 13:12:27 +02:00
Alexandre Julliard 1af12ff9b5 gdi32/tests: Add tests for DIB conversions from various source formats. 2011-10-14 13:12:21 +02:00
Alexandre Julliard a9be526a9c gdi32: Use a reduced precision for RGB to palette mapping in DIB conversions. 2011-10-14 00:47:05 +02:00
Alexandre Julliard e79033e6fa gdi32: Add a helper for RGB to color index mapping to avoid redundant shifts. 2011-10-13 20:03:07 +02:00
Alexandre Julliard 34310d4479 gdi32: Add a check for null bitfields in SetDIBits. 2011-10-13 20:02:01 +02:00
Alexandre Julliard a413916802 gdi32: Get rid of the return value in DIB conversion functions, they never fail now. 2011-10-13 20:01:50 +02:00
Alexandre Julliard 587f492fdf gdi32: Add support for arbitrary DIB bitfields for 16-bpp conversions. 2011-10-13 20:01:34 +02:00
Alexandre Julliard b084e52bf6 gdi32: Add support for arbitrary DIB bitfields for 32-bpp conversions. 2011-10-13 20:01:14 +02:00
Alexandre Julliard 8a41d75e29 gdi32: Add a helper function to look up color table entries, and default to 0 for missing entries. 2011-10-12 20:52:46 +02:00
Alexandre Julliard d1d8b4de0b gdi32: Move some common code out of the individual copy_rect functions. 2011-10-12 20:52:46 +02:00
Alexandre Julliard 8f4d50ea4b gdi32: Add an all-one alpha channel when converting a DIB for blending. 2011-10-12 20:52:46 +02:00
Huw Davies db6fe9ee9b gdi32: Use the helper to get the bounding rectangle. 2011-10-12 17:10:09 +02:00
Huw Davies 3b9669017b gdi32: Add the liberation fonts to the default fallback lists. 2011-10-12 17:10:03 +02:00
Huw Davies 230b42055c gdi32: Move to a more scalable mechanism for picking the default fonts. 2011-10-12 17:09:58 +02:00
Huw Davies 5bd304bd0e gdi32: The text extents functions fail if passed a negative count. 2011-10-11 19:43:12 +02:00
Huw Davies a7b5d86655 gdi32: Add a helper to retrieve the bounding rectangle. 2011-10-11 15:43:18 +02:00
Alexandre Julliard 6c07876e87 gdi32: Add an AlphaBlend entry point in the DIB driver. 2011-10-11 15:34:50 +02:00
Huw Davies bb47bab3cd gdi32: Now that we require a less ancient freetype, we can assume several other functions are also present. 2011-10-11 13:37:50 +02:00
Huw Davies 6ee2eaeff2 gdi32: Remove no longer needed include file. 2011-10-11 13:37:50 +02:00
Alexandre Julliard 2adcb2b94a gdi32/tests: Add tests for GdiAlphaBlend with source alpha. 2011-10-11 13:37:42 +02:00
Huw Davies 570e68b822 gdi32: Require that we have freetype's FT_Load_Sfnt_Table function and remove the hacky fallback. 2011-10-10 15:42:38 +02:00
Huw Davies 5bd2db4521 gdi32: Move some common default fonts to the head of the font list. 2011-10-06 16:47:22 -05:00
Huw Davies 17e72c816b gdi32: Load the font properties from the cache if it exists. 2011-10-06 16:47:20 -05:00
Huw Davies a155292f98 gdi32: Cache the loaded font list properties. 2011-10-06 16:47:17 -05:00
Huw Davies 63070bdf89 gdi32: Move the font list initialisation to a separate function. 2011-10-06 16:47:14 -05:00
Huw Davies ab1373d847 gdi32: Keep track of the english family name if there's a localised name as well. 2011-10-06 16:47:11 -05:00
Huw Davies 9969b8dec1 gdi32: Display the depth of a bitmap rather than the total number colors. 2011-10-05 11:38:24 -05:00
Thomas Faber 1354d15a05 gdi32/tests: Fix MSVC build in bitmap.c. 2011-10-04 15:30:02 -05:00
Thomas Faber 4125651366 gdi32/tests: Fix MSVC build in icm.c. 2011-10-04 15:28:55 -05:00
Marcus Meissner 9437705c2a dibdrv: Mark get_rop_codes as hidden. 2011-10-03 15:50:54 -05:00
Andrew Talbot ee77f52163 gdi32: Mark a fall-through in a switch statement. 2011-09-30 10:30:29 -05:00
Huw Davies b4430319f1 gdi32: Use a separate variable to indicate the default has been retrieved. 2011-09-28 17:25:10 +02:00
Huw Davies 9b7ea6f417 gdi32: Forward StretchBlt calls from the dib driver to the null driver. 2011-09-27 18:46:16 +02:00
Huw Davies 268b8382cd gdi32: Implement stretch_bitmapinfo. 2011-09-27 18:46:04 +02:00
Huw Davies 15c4754e80 gdi32: stretch_bitmapinfo may need to adjust the dst visrect. 2011-09-27 18:15:23 +02:00
Huw Davies c6e483cbd1 gdi32: Make clip_line external. 2011-09-27 18:15:21 +02:00
Francois Gouget 3de330db54 tests: Remove unneeded assert.h includes. 2011-09-27 10:59:56 +02:00
Francois Gouget 262a77057d gdi32: The GetKerningPairsA() test should pass on all the platforms we care about now. 2011-09-27 10:59:46 +02:00
Francois Gouget a87797fbe2 gdi32/tests: Use if(0) instead of #if 0 to make sure code still compiles. 2011-09-27 10:58:26 +02:00
Alexandre Julliard 922d9f5cf7 winex11: Force the alpha channel to zero for mono->color blits. 2011-09-26 15:25:05 +02:00
André Hentschel 3373e1e587 gdi32: Add traces for the gamma functions. 2011-09-26 12:20:35 +02:00
Alexandre Julliard 7029559ed6 gdi32: Avoid rounding errors with visible rectangles in mirroring blits. 2011-09-23 14:17:05 +02:00
Michael Stefaniuc a68cbe98d4 gdi32/tests: Remove casts to the type of the casted expression. 2011-09-22 19:51:49 +02:00
Huw Davies 4156460d49 gdi32/tests: Add some tests to show the 1 pixel dst sizes are a special case. 2011-09-22 19:51:34 +02:00
Huw Davies abc76c27a7 gdi32/tests: Update the StretchBlt tests to use a 16x16 bitmap. 2011-09-22 17:24:42 +02:00
Alexandre Julliard 0e91f9990e gdi32/tests: Add some tests for overlapping blits. 2011-09-22 13:14:08 +02:00
Alexandre Julliard 7bcd8fa20e gdi32: Copy bits in the correct order for the overlap case in the individual copy_rect functions. 2011-09-22 10:22:56 +02:00
Alexandre Julliard 5fd305c31f gdi32: Add helper functions for copying a DIB line. 2011-09-22 10:18:14 +02:00
Alexandre Julliard 3ace501190 gdi32: Copy DIB rectangles in the correct order when source and destination overlap. 2011-09-22 10:11:27 +02:00
Huw Davies 7a356abeb6 gdi32/tests: Remove legacy support from the StretchBlt tests and fix the expected results in the one case that used it. 2011-09-21 17:13:15 +02:00
Alexandre Julliard b6153354dd gdi32/tests: Add a test for alpha channel handling in StretchBlt. 2011-09-20 20:06:31 +02:00
Alexandre Julliard 514b006df2 gdi32: Force colors to black and white for 1-bpp source in AlphaBlend. 2011-09-20 16:21:40 +02:00
André Hentschel 61034406db gdi32/tests: Add a second test about non-uniform ramps. 2011-09-20 16:21:37 +02:00
André Hentschel 321224d2f6 winex11: Multiply the error tolerance by the table caused error magnification. 2011-09-19 13:20:05 +02:00
André Hentschel 0644fd499f gdi32/tests: Add a test about non-uniform ramps. 2011-09-19 13:19:59 +02:00
Alexandre Julliard c819e4bdea gdi32: Add a null driver fallback for AlphaBlend, using a new BlendImage driver entry point. 2011-09-14 11:57:45 +02:00
Alexandre Julliard 27516babd6 gdi32: Add a couple of helper functions for converting and stretching DIBs. 2011-09-14 11:25:19 +02:00
Alexandre Julliard 7696168dce gdi32: Add a placeholder function for DIB stretching. 2011-09-14 11:17:02 +02:00
Alexandre Julliard 497c3982b6 gdi32: Move coordinate checks into the common part of GdiAlphaBlend. 2011-09-13 17:17:52 +02:00
Josh Juran b27e814de6 gdi32: Simplify logic in WineEngGetFontData(). 2011-09-12 10:07:21 +02:00
Huw Davies fcea548464 gdi32: The offsets should be signed. 2011-09-09 17:33:11 +02:00
Huw Davies 5bd003edaa gdi32: When creating a dib_info from a ddb, always make a copy of the colour map. 2011-09-08 11:10:55 +02:00
Alexandre Julliard 2a5cabc22d gdi32: Move DIB driver definitions to dibdrv.h. 2011-09-08 10:41:35 +02:00
Alexandre Julliard d12d98511c gdi32: Allocate the DIB driver on first use, and free it only upon DC destruction. 2011-09-08 10:41:19 +02:00
Alexandre Julliard a28ddddcbc gdi32: Leave it up to the driver to push the new device on the DC stack in CreateDC. 2011-09-07 18:13:29 +02:00
Alexandre Julliard c331a1a6cd gdi32: Don't allow CreateCompatibleDC on a metafile DC. 2011-09-07 18:13:28 +02:00
Alexandre Julliard cef1832bfb gdi32: Add a driver entry point for CreateCompatibleDC. 2011-09-07 18:13:06 +02:00
Alexandre Julliard 901c1997cb gdi32: Make the push/pop_dc_driver functions available to the drivers. 2011-09-07 14:39:46 +02:00
Alexandre Julliard 9a63a25b9d gdi32: Don't free a driver when it's popped from the stack. 2011-09-07 12:08:16 +02:00
Alexandre Julliard f4e9bdb904 gdi32: Always set biClrUsed in internal BITMAPINFO structures. 2011-09-07 12:07:15 +02:00
Alexandre Julliard 6ae21b9345 gdi32: Add RLE support in SetDIBitsToDevice. 2011-09-06 14:44:47 +02:00
Alexandre Julliard 3a260497be winex11: Get rid of the SetDIBitsToDevice implementation. 2011-09-06 14:44:11 +02:00
Alexandre Julliard 6f275874f3 gdi32: Add a SetDIBitsToDevice implementation in the null driver using PutImage. 2011-09-06 14:38:25 +02:00
Alexandre Julliard 4266fcb28d gdi32: Fix coordinate mapping in Get/SetBoundsRect, with tests. 2011-09-04 16:47:38 +02:00
Alexandre Julliard a0f1b20464 gdi32: Make the BITMAPINFO parameters non-const in driver entry points since we are always passing a copy. 2011-09-02 15:56:01 +02:00
Dmitry Timoshkov dfb4d2e960 gdi32: Add a buch of CreateScalableFontResource() tests. 2011-09-01 18:06:39 +02:00
Alexandre Julliard bcc21c9b79 winex11: Fix SetDIBitsToDevice coordinate mapping for negative values. 2011-09-01 18:06:18 +02:00
Alexandre Julliard e1ca5c38e2 winex11: Fix SetDIBitsToDevice coordinate mapping in RTL mode. 2011-09-01 12:41:00 +02:00
Alexandre Julliard 67b1f29d61 gdi32/tests: Add some SetDIBitsToDevice tests, based on the similar SetDIBits tests. 2011-09-01 12:39:15 +02:00
Alexandre Julliard e7c523b135 gdi32: Use SetDIBits to set the initial bits of a DDB. 2011-08-31 11:36:23 +02:00
Alexandre Julliard 5f35075c8b gdi32: Only use the hdc parameter in SetDIBits when needed. 2011-08-31 11:36:23 +02:00
Alexandre Julliard edb48a06ee gdi32: Allow SetDIBits to use the null driver. 2011-08-31 11:36:23 +02:00
Alexandre Julliard 6f066ec18a gdi32: Forward the null driver PutImage to the DIB driver since the bits are in DIB format. 2011-08-31 11:36:05 +02:00
Alexandre Julliard bff79eb2b9 gdi32: Forward the null driver GetImage to the DIB driver since the bits are in DIB format. 2011-08-30 20:13:52 +02:00
Alexandre Julliard 79ef408cd7 gdi32: Add a helper function to initialize DIB info from a bitmap object. 2011-08-29 19:51:24 +02:00
Alexandre Julliard a13df5ce6c gdi32: Store the initial bitmap bits with DIB alignment. 2011-08-29 19:44:17 +02:00
Alexandre Julliard 987a18a55c gdi32: Remove an unused variable. 2011-08-29 12:08:26 +02:00
Alexandre Julliard afa7817d6e gdi32/tests: Simplify the DIB byte width computation. 2011-08-29 12:08:21 +02:00
Alexandre Julliard 4e3c649b9c gdi32: Add parameter validation in GetDIBits. 2011-08-29 12:08:21 +02:00
Alexandre Julliard 82ef9f960d gdi32/tests: Make sure the bitmap info is initialized in the GetDIBits test. 2011-08-26 11:15:16 +02:00
Francois Gouget c992ca277d Assorted spelling fixes. 2011-08-24 19:07:46 +02:00
André Hentschel 56e804eea4 winex11: Reject too bright gamma ramps. 2011-08-24 14:03:03 +02:00
Hans Leidekker 58cdb6405f gdi32/tests: Accept one more return value from EnumICMProfilesA. 2011-08-24 12:14:47 +02:00
Grazvydas Ignotas bf235df2c6 gdi32/tests: Add additional font to fullnames test. 2011-08-24 12:14:46 +02:00
Grazvydas Ignotas 5c2976eebc gdi32/tests: Check for exact fonts before doing fullname test. 2011-08-24 12:14:46 +02:00
Grazvydas Ignotas 4a463e0650 gdi32: Use correct name for elfFullName. 2011-08-24 12:14:46 +02:00
Huw Davies 75e2e9cf3f gdi32: Add an exception handler to catch bad pointers passed by an application. 2011-08-23 16:53:56 +02:00
Huw Davies 597edc503f gdi32: Remove an unneeded level of indentation. 2011-08-23 16:53:55 +02:00
Huw Davies 1def8d635a gdi32: Add support for all of the ternary rops. 2011-08-23 16:53:55 +02:00
Huw Davies 95f1abc8d8 gdi32: Add a copy_rect helper function. 2011-08-23 16:53:55 +02:00
Huw Davies ff307d573a gdi32: Move the dib driver's GetImage and PutImage to a new source file. 2011-08-23 16:53:55 +02:00
André Hentschel c36b392a72 gdi32: Initial gamma setting tests. 2011-08-23 16:53:49 +02:00
Austin English 4cdd01fc82 gdi32/tests: Remove win9x hacks. 2011-08-22 17:22:07 +02:00
Huw Davies 925fa10865 gdi32: Change the object-level brush function to accept a stand-alone dib and a separate clip region. 2011-08-22 16:19:40 +02:00
Huw Davies c6f6c3f727 gdi32: Implement Polyline and PolyPolyline in the dib driver. 2011-08-22 16:19:24 +02:00
Huw Davies 0f40ad8a3d gdi32: Move to using a multi-line pen object-level function. 2011-08-22 16:19:15 +02:00
Huw Davies 1e83fd0076 gdi32: Use the gdi_image_bits structure to maintain the dib driver's bits. 2011-08-22 16:18:54 +02:00
Huw Davies 2e908e067c gdi32: Simplify dibdrv_PutImage a little. 2011-08-22 16:18:24 +02:00
Huw Davies de213f2c66 gdi32: Avoid directly accessing the bits ptr where possible. 2011-08-22 16:18:13 +02:00
Huw Davies a55ec17b74 gdi32: Use the dib driver GetImage and PutImage implementations in GetBitmapBits and SetBitmapBits when appropriate. 2011-08-22 16:18:08 +02:00
Huw Davies e82f88d5ee gdi32: Add a helper to retrieve the bitmap functions. 2011-08-22 16:18:04 +02:00
Huw Davies cb82c45b3a gdi32: Allow SetBitmapBits to set incomplete scanlines. 2011-08-22 16:16:08 +02:00
Huw Davies bdc3b9c0a9 gdi32: Avoid a possible unnecessary conversion if PutImage is called with zero biClrUsed. 2011-08-22 16:15:45 +02:00
Huw Davies 40742c2f72 gdi32: Fix colour table comparison. 2011-08-22 16:15:13 +02:00
André Hentschel 8134b93516 gdi32/tests: Consistently print out all infos about non-equal rects. 2011-08-22 16:14:33 +02:00
Huw Davies c5f484597f gdi32: Simplify dibdrv_GetImage by merging the stand-alone and selected bitmap cases. 2011-08-05 15:24:58 +02:00
Huw Davies 37423cec7c gdi32: Fix dibdrv_PutImage for the selected bitmap case. 2011-08-05 15:22:48 +02:00
Alexandre Julliard 3a1194edd7 gdi32: Always use BI_BITFIELDS for 16-bpp in GetImage. 2011-08-05 15:22:43 +02:00
Alexandre Julliard c668354cc0 gdi32: Always set compression to BI_BITFIELDS for 16-bpp DIB sections. 2011-08-05 13:41:18 +02:00
Alexandre Julliard cf4c565fd2 gdi32: Validate the DIB parameters in functions that take a BITMAPINFO. 2011-08-05 13:39:14 +02:00
Alexandre Julliard 805f083f34 gdi32: Add a missing release in the error path. 2011-08-05 10:58:16 +02:00
Huw Davies 33532613a8 gdi32: Don't load a font replacement if any face of the real family exists. 2011-08-04 18:42:33 +02:00
Frédéric Delanoy 760faf01a9 tests: Assorted spelling fixes. 2011-08-04 18:27:37 +02:00
Huw Davies b94616864d gdi32: If possible use the GetImage driver entry to fill the colour table for GetDIBits. 2011-08-04 18:27:36 +02:00
Huw Davies d947f6ef08 gdi32: Simplify the code a little by using a separate variable for the return value. 2011-08-04 18:27:36 +02:00
Huw Davies d88151704e gdi32/tests: Add some GetDIBits tests with zero lines and bits parameters. 2011-08-04 18:27:36 +02:00
Huw Davies 3a2d8b74cf gdi32/tests: Simplify some of the tests. 2011-08-04 18:27:36 +02:00
Alexandre Julliard e5ce32e54d gdi32: Get rid of the DIB_GetBitmapInfo function. 2011-08-04 18:27:35 +02:00
Alexandre Julliard 3d0f272a0d gdi32: Create a sanitized BITMAPINFOHEADER in CreateDIBitmap. 2011-08-04 18:27:17 +02:00
Alexandre Julliard a2c99c7353 gdi32: Create a sanitized BITMAPINFOHEADER in GetDIBits. 2011-08-04 18:25:59 +02:00
Alexandre Julliard f234ce9dcc gdi32: Move initialization of a correct BITMAPINFOHEADER to a separate function. 2011-08-04 18:23:41 +02:00
Alexandre Julliard f825f5db8c gdi32: Create a sanitized BITMAPINFO in SetDIBitsToDevice and pass that to the drivers. 2011-08-04 18:23:25 +02:00
Alexandre Julliard d0d98046c6 gdi32: Create a sanitized BITMAPINFO in StretchDIBits and pass that to the drivers. 2011-08-04 18:23:00 +02:00
Alexandre Julliard 7deda05185 gdi32: Create a sanitized BITMAPINFO in CreateDIBSection and pass that to the driver. 2011-08-04 18:21:49 +02:00
Alexandre Julliard c309883a70 gdi32: Update the coordinates in convert_bitmapinfo to reflect the position in the destination bitmap. 2011-08-03 20:26:44 +02:00
Alexandre Julliard 2ba1a43703 gdi32: Use the visrect coordinates in dibdrv_PutImage. 2011-08-03 19:59:46 +02:00
Alexandre Julliard 1aa35bea9a gdi32: Use GetImage to retrieve the brush bits in enhanced metafiles. 2011-08-03 14:15:48 +02:00
Alexandre Julliard 91976a5b74 gdi32: Use GetImage to retrieve the brush bits in metafiles. 2011-08-03 14:15:47 +02:00
Alexandre Julliard 6d00196aea gdi32: Get rid of the SetBitmapBits driver entry point. 2011-08-03 14:15:47 +02:00
Alexandre Julliard 09eb59d3c6 gdi32: Set the initial bits of a bitmap from the gdi side. 2011-08-03 14:15:47 +02:00
Alexandre Julliard 107849916f gdi32: Reimplement SetBitmapBits using the PutImage driver entry point. 2011-08-03 14:15:28 +02:00
Alexandre Julliard 76b5c1dcac gdi32: Partial implementation of PutImage in the null driver for DDBs. 2011-08-03 12:31:52 +02:00
Huw Davies e81e73149f gdi32: Actually use the dib driver's Get/PutImage if the bitmap is a dib. 2011-08-02 20:47:52 +02:00
Huw Davies d4076d438c gdi32: Add a PutImage implementation to the dib driver. 2011-08-02 20:47:52 +02:00
Huw Davies 1da138ced0 gdi32: Move the colour setting to a separate function. 2011-08-02 20:47:52 +02:00
Huw Davies 2521bf3cc2 gdi32: Add a copy_rect primitive. 2011-08-02 20:47:52 +02:00
Huw Davies 76b0626ff2 gdi32: Add a function to retrieve the rop codes. 2011-08-02 20:47:51 +02:00
Huw Davies 4b50743f87 gdi32: Simplify the calculation of the rop masks. 2011-08-02 20:47:51 +02:00
Frédéric Delanoy b5a33dab88 dlls: Assorted spelling fixes. 2011-08-02 20:47:51 +02:00
Alexandre Julliard 2116493653 gdi32: Fix the blend function handling for the AlphaBlend enhanced metafile record. 2011-07-29 20:08:53 +02:00
Huw Davies d61e1ffaab gdi32: Use the helper to retrieve the number of colours. 2011-07-28 18:37:39 +02:00
Huw Davies 3460665c50 gdi32: Add an inline helper to return the number of colour entries in a dib. 2011-07-28 18:37:39 +02:00
Huw Davies 3f62946272 gdi32/tests: Add tests for GetDIBits using non-trivial source and destination areas. 2011-07-28 18:37:39 +02:00
Huw Davies 863eb31bba gdi32: Better handling of non-trivial source and destination areas. 2011-07-28 18:37:39 +02:00
Austin English c30c441ea7 gdi32/tests: Remove win9x hacks. 2011-07-27 12:25:30 +02:00
Alexandre Julliard 366174b213 gdi32: Get rid of the GetBitmapBits driver entry point. 2011-07-25 20:32:41 +02:00
Alexandre Julliard 1724c73534 gdi32: Reimplement GetBitmapBits using the GetImage driver function. 2011-07-25 19:56:52 +02:00
Alexandre Julliard d33e0d2c86 gdi32: Add an inline helper to retrieve a DDB byte width. 2011-07-25 19:56:43 +02:00
Alexandre Julliard dcfe0c48ea gdi32: Implement GetImage in the DIB driver. 2011-07-25 19:51:55 +02:00
Alexandre Julliard bb3a1bdcac gdi32: Implement GetImage in the null driver. 2011-07-25 19:50:19 +02:00
Alexandre Julliard 8a906250eb gdi32: Get rid of the SetDIBits driver entry point. 2011-07-25 19:47:03 +02:00
Huw Davies 046ec2d132 gdi32/tests: Add some SetDIBits tests. 2011-07-25 13:40:56 +02:00
Huw Davies 3cb26488bd gdi32: Rewrite SetDIBits to use the PutImage gdi driver function. 2011-07-25 13:40:53 +02:00