Commit Graph

1853 Commits

Author SHA1 Message Date
Alexandre Julliard 351e58318a gdi32: Fix text justification to properly handle logical coordinates. 2012-12-11 20:45:38 +01:00
Alexandre Julliard a3cf48afad gdi32: Add a level of pointers to the glyph cache to avoid the need for locking individual glyphs. 2012-12-11 12:03:33 +01:00
Alexandre Julliard b057c5f140 gdi32: Fix handling of font orientation in advanced graphics mode. 2012-12-10 17:36:23 +01:00
Alexandre Julliard 75fff47f94 gdi32: Add ref counting to the font objects and simplify the cache management. 2012-12-10 13:42:23 +01:00
Alexandre Julliard 06dced4eaa gdi32: Keep track of the number of fonts on the unused list. 2012-12-07 14:39:49 +01:00
Alexandre Julliard d3c128346b gdi32: Simplify list processing by using the LIST_FOR_EACH_ENTRY macro. 2012-12-07 14:29:28 +01:00
Francois Gouget 166e7c7381 gdi32: Make make_rgb_colorref() static. 2012-12-07 12:35:29 +01:00
Alexandre Julliard 8cca615f02 gdi32: Don't store a font pointer in the generic part of the DC. 2012-12-05 21:13:54 +01:00
Alexandre Julliard baedf81b11 gdi32: Don't create a separate font handle for linked fonts. 2012-12-05 21:13:29 +01:00
Alexandre Julliard 6144824965 gdi32: Remove special handling for linked fonts in ExtTextOut. 2012-12-05 20:23:50 +01:00
Alexandre Julliard 491123e17b gdi32: Support getting character codes instead of glyphs in ExtTextOut for the path driver. 2012-12-05 17:46:53 +01:00
Alexandre Julliard 78626cdbaa gdi32: Support caching glyphs by character code and not only by glyph index. 2012-12-05 17:46:47 +01:00
Alexandre Julliard e8b6701fe1 gdi32: Store and return ABC metrics from get_glyph_outline. 2012-12-04 18:14:56 +01:00
Alexandre Julliard 3a4864714d gdi32: Don't copy unnecessary rows when shrinking in DELETESCANS mode. 2012-12-03 18:24:46 +01:00
Alexandre Julliard db3a8d6c0c gdi32: Avoid binary ROPs when shrinking in DELETESCANS mode. 2012-12-03 18:24:46 +01:00
Alexandre Julliard 6f6e919e2b gdi32: Avoid binary ROPs when stretching in DELETESCANS mode. 2012-12-03 18:24:45 +01:00
Alexandre Julliard 2d3385eec9 gdi32: Avoid computing grayscale glyph intensities when not needed. 2012-11-30 19:12:17 +01:00
Alexandre Julliard abdce5c2c8 gdi32: Use the faster memset for vertical gradients. 2012-11-30 19:12:17 +01:00
Alexandre Julliard d10d95608c gdi32: Make blend_subpixel inline. 2012-11-30 19:12:17 +01:00
Alexandre Julliard a796ad5ed8 gdi32: Avoid creating a copy of the pattern bits for the R2_COPYPEN case. 2012-11-29 19:40:19 +01:00
Alexandre Julliard 7339308e16 gdi32: Add faster implementation of the pattern_rects primitive when we don't need an AND mask. 2012-11-29 19:40:13 +01:00
Alexandre Julliard 2aff4696b6 gdi32: Add assembly helpers for filling solid rectangles. 2012-11-29 12:31:13 +01:00
Alexandre Julliard cb7917f9c8 gdi32: Add faster implementations of the solid_rects primitive for the common case of R2_COPYPEN. 2012-11-29 12:17:55 +01:00
Alexandre Julliard 6050a025bb gdi32: Add a font glyph cache in the DIB engine. 2012-11-28 12:22:40 +01:00
Alexandre Julliard 4ad5287496 gdi32: Fully reset the DC state before deleting it. 2012-11-27 19:45:30 +01:00
Huw Davies e6f1930116 gdi32: Simplify the point type checking logic. 2012-11-27 17:00:05 +01:00
Alexandre Julliard 1c4cf1a2db gdi32: Fix coordinate mapping of arc limits. 2012-11-19 16:35:23 +01:00
Alexandre Julliard ebaf5ea176 gdi32: Don't load bitmap glyphs when using subpixel rendering in GetGlyphOutline. 2012-11-15 21:21:39 +01:00
Piotr Caban 4f07c49547 gdi32: Added GetGlyphOutlineW tests on glyph that contains empty contour. 2012-11-13 16:57:02 +01:00
Piotr Caban b696558f04 gdi32: Ignore contours containing one point in get_glyph_outline function. 2012-11-13 16:55:55 +01:00
Alexandre Julliard af3f3cb1b2 gdi32: Avoid using the system GL headers. 2012-11-07 18:12:03 +01:00
Alexandre Julliard 86c41dc468 gdi32: Take into account the FontSmoothing key for anti-aliasing. 2012-11-06 16:02:27 +01:00
Alexandre Julliard ff8647ea39 gdi32: Avoid opening the desktop registry key multiple times. 2012-11-06 16:02:19 +01:00
Alexandre Julliard 7fdba1f3dd gdi32: Use the fontconfig anti-aliasing setup even for non-fontconfig fonts. 2012-11-06 11:47:28 +01:00
Alexandre Julliard ddba05547f gdi32: Get rid of the non-standard flags in GetRasterizerCaps. 2012-11-06 11:00:48 +01:00
Alexandre Julliard 5c02c352d9 gdi32: Determine the default anti-aliasing parameters in the null driver SelectFont entry point. 2012-11-05 16:15:25 +01:00
Alexandre Julliard 9d888b371f gdi32: Set the font anti-aliasing flags from the fontconfig information if available. 2012-11-02 19:47:09 +01:00
Alexandre Julliard 123da6f888 gdi32: Move checking of the subpixel support and gasp flags to freetype.c. 2012-11-02 17:21:45 +01:00
Alexandre Julliard 9cdb0e1ca6 gdi32: Disable anti-aliasing when necessary in the various drivers. 2012-11-02 16:41:26 +01:00
Alexandre Julliard ccc034c27e gdi32: Store the anti-aliasing flags in the DC when selecting a font. 2012-11-02 16:41:23 +01:00
Alexandre Julliard 6164d533a9 gdi32: Add a parameter to return anti-aliasing flags in the SelectFont driver entry point. 2012-11-02 16:41:21 +01:00
Alexandre Julliard a04f73808e gdi32: Store the fontconfig anti-aliasing flags for each font. 2012-11-01 15:09:16 +01:00
Alexandre Julliard 24cdd74c6f gdi32: Store the font file name in Unicode in the font cache. 2012-11-01 15:09:15 +01:00
Alexandre Julliard c1f8a0bf61 gdi32: Avoid some redundant registry calls while loading the font cache. 2012-11-01 15:09:15 +01:00
Huw Davies 9247328371 gdi32: Implement sub-pixel glyph smoothing. 2012-10-30 18:09:00 +01:00
André Hentschel 0f7bc2d8cc gdi32: Avoid memory leaks (coverity). 2012-10-29 10:34:54 +01:00
Huw Davies 7cd8dc6bf2 gdi32: Use a symbol charmap if all else fails. 2012-10-26 16:29:29 +02:00
Huw Davies 8ef70039d3 gdi32: Simplify the code for charmap selection. 2012-10-26 16:29:26 +02:00
Alexandre Julliard 86abd84167 gdi32: Fix mapping of symbol font glyphs even when no encoding is specified. 2012-10-25 11:54:33 +02:00
André Hentschel f5df798611 gdi32: Fix free of address-of expression (coverity). 2012-10-25 11:48:15 +02:00
André Hentschel cf95218f08 gdi32: Fix copy-paste error (coverity). 2012-10-24 19:38:20 +02:00
Alexandre Julliard 4396a79ede gdi32: Add a DC hook flag to reset the DC state. 2012-10-24 18:24:03 +02:00
Alexandre Julliard 77c1856d43 gdi32: Remove an unused DC field. 2012-10-24 18:22:29 +02:00
Alexandre Julliard 5c1a752d61 gdi32: Export a function to retrieve the module handle of the graphics driver for a DC. 2012-10-22 15:16:00 +02:00
Alexandre Julliard b0ba7c765e gdi32: Update the ref count of stock objects when deleting a DC. 2012-10-21 12:18:46 +02:00
Huw Davies aa9827b08e gdi32: Move the string rendering code to a common function. 2012-10-19 18:09:52 +02:00
Huw Davies e6c349d69f gdi32: Use the helper to draw the glyphs. 2012-10-19 18:09:49 +02:00
Huw Davies 3e7517328d gdi32: Pass individual x, y co-ords to draw_glyph rather than a POINT. 2012-10-19 18:09:46 +02:00
Huw Davies 3ef520650c gdi32: Pass a dib_info structure to draw_glyph. 2012-10-19 18:09:44 +02:00
Qian Hong 648a8ce40e gdi32/tests: Fixed typo in localized name tests. 2012-10-19 11:18:20 +02:00
Qian Hong 16f2a1948e gdi32/tests: Declared system_lang_id as a global variable. 2012-10-19 11:18:11 +02:00
Qian Hong f9546329b6 gdi32/tests: Marked EnumFontFamiliesEx_default_charset test on Arabic locale as broken. 2012-10-19 11:17:59 +02:00
Qian Hong 284b382aba gdi32/tests: Skip some broken bitmap font metrics tests on Arabic locale. 2012-10-19 11:17:47 +02:00
Qian Hong b31dababde gdi32/tests: Fixed broken value in bitmap font metrics on Arabic locale. 2012-10-19 11:17:38 +02:00
Qian Hong ec9166b1ac gdi32/tests: Fixed broken bitmap font metrics test on CJK locales. 2012-10-19 11:17:25 +02:00
Qian Hong 416664babd gdi32/tests: Fixed broken value in bitmap font metrics on Japanese locale. 2012-10-19 11:17:15 +02:00
Alexandre Julliard 446bff7897 gdi32/tests: Avoid deleting invalid objects. 2012-10-18 22:28:45 +02:00
Huw Davies 64e2ad5709 gdi32: Make get_glyph_bitmap return a dib_info structure in order to avoid code duplication. 2012-10-18 19:22:14 +02:00
Alexandre Julliard 091c342f32 gdi32: Add a generation count in the high word of GDI handles. 2012-10-17 21:38:07 +02:00
Alexandre Julliard df357093cc gdi32: Get rid of the GDIOBJHDR type. 2012-10-17 13:48:45 +02:00
Alexandre Julliard 3964aa4a8d gdi32: Get rid of the METAFILEOBJ type, instead store a pointer to the metafile data. 2012-10-17 13:46:40 +02:00
Alexandre Julliard 89ecf02ca5 gdi32: Get rid of the RGNOBJ type, instead store a pointer to the region itself. 2012-10-17 13:28:25 +02:00
Alexandre Julliard dfeeedcf74 gdi32: Store the object flags directly in the GDI handle table. 2012-10-17 13:27:54 +02:00
Alexandre Julliard b95dd7e831 gdi32: Store the object selection count directly in the GDI handle table. 2012-10-17 13:17:56 +02:00
Alexandre Julliard 5f14ff42a8 gdi32: Process the object HDC list outside of the critical section. 2012-10-17 13:10:23 +02:00
Alexandre Julliard 2e693d00c9 gdi32: Store the HDC list directly in the GDI handle table. 2012-10-17 13:10:23 +02:00
Alexandre Julliard cf3cafdc18 gdi32: Store the object function table directly in the GDI handle table. 2012-10-17 13:10:22 +02:00
Alexandre Julliard 2bdf447744 gdi32: Store the object type directly in the GDI handle table. 2012-10-17 13:10:21 +02:00
Alexandre Julliard 36f2b09632 gdi32: Always return the full DIB surface in GetImage and adjust coordinates accordingly.
Based on a patch by Ken Thomases.
2012-10-15 15:25:04 +02:00
Alexandre Julliard 2f92af70e0 gdi32: Add helper functions for converting between handle and index.
Also rename all instances of "large handles" since that's the only handle type now.
2012-10-12 11:36:24 +02:00
Daniel Lehman ea6e0a833b gdi32: Use HandleToULong inline function to convert handle to index instead of casting. 2012-10-12 11:27:58 +02:00
Alexandre Julliard 6e325afaa7 gdi32: Handle a missing source alpha directly in the blend_rect primitive instead of modifying the source data. 2012-10-10 20:34:08 +02:00
Alexandre Julliard 76272e0773 gdi32: Use BI_BITFIELDS to indicate that a 32-bpp DIB doesn't have an alpha channel. 2012-10-10 20:34:08 +02:00
Alexandre Julliard 34b70728f3 gdi32: Limit the allocation size to the useful data when converting DIB bits. 2012-10-10 20:34:07 +02:00
Alexandre Julliard 86cf1126a5 gdi32: Return the full DIB height in GetImage instead of clipping to the visible rect. 2012-10-10 20:34:07 +02:00
Huw Davies 0941fefbc0 gdi32: Correctly map the 256-level bitmap to the 5, 17 and 65-level bitmaps. 2012-10-01 12:12:15 +02:00
Francois Gouget f77605c765 gdi32: Make dibdrv_wgl{Describe,Set}PixelFormat() static. 2012-10-01 11:59:58 +02:00
Alexandre Julliard 7eb49ae703 gdi32: Enumerate a default charset if no other valid charset was found. 2012-09-27 14:39:24 +02:00
Alexandre Julliard f0e4062773 gdi32: Allow GetCharABCWidths on all scalable fonts, not just TrueType ones. 2012-09-27 13:13:43 +02:00
Francois Gouget 5f55a71b70 Assorted spelling fixes. 2012-09-24 22:27:29 +02:00
Alexandre Julliard e95cff0332 gdi32: Always update the DC before looking for the physdev pointer. 2012-09-20 21:07:04 +02:00
Michael Stefaniuc f824030a49 gdi32: Don't bother using the register storage class specifier. 2012-09-14 15:41:45 +02:00
Qian Hong df8be7b81a gdi32: Prepend at in get_outline_text_metrics for vertical fonts. 2012-09-12 16:04:53 +02:00
Qian Hong 2f76f35e46 gdi32/tests: Added more tests for vertical fonts. 2012-09-12 16:04:47 +02:00
Qian Hong 97904fd1ff gdi32: Prepend at when create vertical font face. 2012-09-12 16:04:34 +02:00
Qian Hong 8f91b51674 gdi32/tests: Added tests for vertical fonts. 2012-09-12 16:04:25 +02:00
Qian Hong 6c1e264e8e gdi32: Fixed localized font full name (UNIQUE ID). 2012-09-12 16:04:03 +02:00
Qian Hong de5972081e gdi32: Fixed get_name_table_entry for symbol fonts. 2012-09-11 11:15:33 +02:00
Qian Hong 84954c0dbe gdi32/tests: Added tests for symbol fonts. 2012-09-11 11:15:30 +02:00
Qian Hong 80dbd4e9cf gdi32: Fixed localized font style name. 2012-09-11 11:15:27 +02:00
Qian Hong 4461612e33 gdi32/tests: Better trace in test_fullname2_helper. 2012-09-11 11:14:37 +02:00
Qian Hong e7dcb0e260 gdi32/tests: Fixed a typo in style name test. 2012-09-11 11:14:32 +02:00
Marcus Meissner f5c5a30724 gdi32: Fixed passed buffer size. 2012-09-10 11:39:43 +02:00
Alexandre Julliard 05c32b9b89 gdi32: Move the SwapBuffers entry point to the OpenGL driver. 2012-09-10 11:38:28 +02:00
Qian Hong 245308597f gdi32: Fixed family and face name on non English locale. 2012-09-07 13:33:47 +02:00
Qian Hong 733aca30f4 gdi32: Read otmpFullName from TT_NAME_ID_UNIQUE_ID. 2012-09-07 13:32:56 +02:00
Qian Hong abc8f2c6c2 gdi32: Read otmpFaceName from TT_NAME_ID_FULL_NAME. 2012-09-07 13:32:35 +02:00
Qian Hong 180185d890 gdi32/tests: Added font name tests on English locale. 2012-09-07 13:32:06 +02:00
Alexandre Julliard 27b0b88a0b gdi32: Add a graphics driver to render windows contents through the DIB engine. 2012-09-06 12:24:25 +02:00
Alexandre Julliard 01c9c1cbc2 gdi32: Let user32 specify the device rectangle when setting the visible region. 2012-09-05 21:56:56 +02:00
Alexandre Julliard bf528c5e9c gdi32: Allow removing a driver from the stack based on its function table. 2012-08-21 12:59:18 +02:00
Alexandre Julliard 0f5cc668ba gdi32: Add a helper function to find a specific driver in the DC stack. 2012-08-21 12:54:01 +02:00
Dmitry Timoshkov c8d61899db gdi32: Make sure that pattern info is initialized before being used. 2012-08-20 10:52:57 +02:00
Michael Stefaniuc 4d3a7aa268 gdi32: Avoid TRUE:FALSE conditional expressions. 2012-08-13 17:29:23 +02:00
Alexandre Julliard 747d1631d5 gdi32: Compute the line parameters using the cropped coordinates to avoid overflows. 2012-07-31 17:59:12 +02:00
Alexandre Julliard 96e80c2623 gdi32: Move DescribePixelFormat and SetPixelFormat to the WGL driver. 2012-07-30 22:12:13 +02:00
Alexandre Julliard 6714f16c74 gdi32: Clip solid pen regions to the DIB rectangle to avoid overflows. 2012-07-30 17:13:36 +02:00
Alexandre Julliard a9151e5da3 gdi32: Limit line drawing coordinates to reasonable values to avoid overflows. 2012-07-30 17:13:36 +02:00
Alexandre Julliard 78d12e7fcc gdi32: Add a helper function to initialize Bresenham parameters for line drawing. 2012-07-30 17:13:35 +02:00
Alexandre Julliard 35eef16ba7 gdi32: Support OpenGL in bitmaps through libOSMesa. 2012-07-27 17:05:16 +02:00
Alexandre Julliard 592e6aa942 gdi32: Work around a gcc array out of bounds warning. 2012-07-23 14:52:32 +02:00
Alexandre Julliard 4c0779006e opengl32: Move the wgl functions to the main OpenGL function table. 2012-07-19 22:50:37 +02:00
Alexandre Julliard 6a8ded433b gdi32: Remove left-over debug trace. 2012-07-19 20:27:39 +02:00
Alexandre Julliard 7c9d35e575 gdi32: PatBlt needs to bypass the brush for ROPs that don't make use of it. 2012-07-19 15:42:31 +02:00
Francois Gouget 7b782d435e gdi32: Remove an unused wgl debugging channel. 2012-07-11 10:00:47 -05:00
Alexandre Julliard 4c3cc50104 gdi32: Fix bitmap glyph allocation size in ExtTextOut fallback implementation. 2012-07-02 10:58:57 +02:00
Alexandre Julliard 83be88953b opengl32: Make the WGL driver context-specific. 2012-06-29 20:41:36 +02:00
Alexandre Julliard d89f7f2563 opengl32: Move checks of the context thread id to opengl32. 2012-06-29 20:41:35 +02:00
Alexandre Julliard 0045ec9dfb opengl32: Use proper handles for GL contexts and pass a context pointer to the WGL driver functions. 2012-06-29 20:41:34 +02:00
Alexandre Julliard e059d565ab gdi32: Add a null WGL driver. 2012-06-28 18:52:27 +02:00
Alexandre Julliard 6a9dcd51a2 gdi32: Remove the remaining OpenGL entry points from the DC driver. 2012-06-28 18:52:23 +02:00
Alexandre Julliard edfc7f0de0 opengl32: Move wglGetProcAddress to the WGL driver. 2012-06-28 16:14:55 +02:00
Alexandre Julliard 8a13afedd6 opengl32: Move GetPixelFormat to the WGL driver. 2012-06-28 15:53:14 +02:00
Alexandre Julliard bbdf77a311 opengl32: Move wglCreateContext to the WGL driver. 2012-06-28 15:47:31 +02:00
Alexandre Julliard 3bcb8057a1 opengl32: Move wglCreateContextAttribsARB to the WGL driver. 2012-06-28 15:07:44 +02:00
Alexandre Julliard 7a031d9b92 opengl32: Add the concept of a WGL driver. 2012-06-28 14:37:31 +02:00
Alexandre Julliard db25d4022a winex11: Simplify wglSetPixelFormatWINE and export it as a standard extension function. 2012-06-28 13:13:01 +02:00
Stefan Leichter db21158faa gdi32: Spelling fix. 2012-06-28 11:37:03 +02:00
Alexandre Julliard 4a367c5719 winex11: Export wglMakeCurrent and wglMakeContextCurrentARB as standard extension functions. 2012-06-28 01:44:03 +02:00
Alexandre Julliard 67e7eda96c gdi32: Forward SwapBuffers to opengl32 which in turn calls GdiSwapBuffers. 2012-06-26 12:24:15 +02:00
Alexandre Julliard c013945728 gdi32: Forward SetPixelFormat to opengl32 which in turn calls GdiSetPixelFormat. 2012-06-26 12:24:15 +02:00
Alexandre Julliard e9f270bd41 gdi32: Forward DescribePixelFormat to opengl32 which in turn calls GdiDescribePixelFormat. 2012-06-26 12:24:14 +02:00
Alexandre Julliard 81cd178ae1 winex11: Move ChoosePixelFormat implementation to opengl32 and base it on DescribePixelFormat. 2012-06-26 12:24:09 +02:00
Alexandre Julliard ee21554893 gdi32: Remove OpenGL functions that don't use an HDC from the driver entry points. 2012-06-25 16:25:57 +02:00
Alexandre Julliard 1c2f9255f4 gdi32: Fix StretchDIBits return value when destination is clipped. 2012-06-22 14:39:28 +02:00
Dan Kegel b85270e3a5 gdi32: Add test for SelectClipRgn in metafiles, make it pass. 2012-06-20 10:50:15 +02:00
Akihiro Sagawa f503afd86f gdi32: Remove an outdated comment in struct DefaultFontInfo. 2012-06-18 11:59:40 +02:00
Akihiro Sagawa 2bb416baa8 gdi32: Fix East-Asian font parameters. 2012-06-18 11:59:40 +02:00
Akihiro Sagawa afdc84cf03 gdi32/tests: Make GetStockObject tests pass on East-Asian machines. 2012-06-18 11:59:39 +02:00
Alexandre Julliard b61925e1ea gdi32: Fix the contents of the region data in metafiles. 2012-06-18 10:54:30 +02:00