Commit Graph

49 Commits

Author SHA1 Message Date
Birunthan Mohanathas
ca41a4575c Gfx: Handle failed creation of D2D text layout 2013-10-15 17:09:41 +03:00
Birunthan Mohanathas
67948705f4 Gfx: Improve D2D compatibility with GDI+ with zero height text when calculating lines 2013-10-08 20:15:36 +03:00
Brian Ferguson
35f2e1591e Gfx: Fix non-zero height for empty strings with D2D
http://rainmeter.net/forum/viewtopic.php?p=92801
2013-10-08 20:10:57 +03:00
Birunthan Mohanathas
15c65384f6 Gfx: Try to load D2D only on Win7+ 2013-10-06 19:14:32 +03:00
Birunthan Mohanathas
2fb733ef75 Gfx: Remove __D2DParams 2013-10-06 17:07:00 +03:00
Birunthan Mohanathas
21d9c0698f Gfx: Additional changes to d003db6 2013-09-29 17:57:21 +03:00
Birunthan Mohanathas
d003db6531 Gfx: Add __D2DParams option to allow testing D2D text rendering options 2013-09-29 11:28:28 +03:00
Birunthan Mohanathas
c1aa191235 Gfx: Use GDI+ instead of D2D when drawing scaled images 2013-09-28 17:51:42 +03:00
Birunthan Mohanathas
12e0564f3e Gfx: Avoid clipping with D2D when not needed 2013-08-12 18:50:24 +03:00
Birunthan Mohanathas
180adbc759 Gfx: Fix text Y position for D2D with vertical Center/Bottom alignments 2013-08-11 11:42:23 +03:00
Birunthan Mohanathas
027feabf86 Gfx: Make bottom overhanging characters visible with D2D 2013-08-10 17:01:48 +03:00
Birunthan Mohanathas
b8333dc66d Gfx: Fix clipping with D2D when a transformation has been applied 2013-08-10 16:58:30 +03:00
Birunthan Mohanathas
6e04fd983f Gfx: Make AccurateText=0 more consistent with GDI+ for D2D
The height is now based on a formula that should be exactly equal to that provided by GDI+. The padding should now be equal on the left and right sides now. There may be some discrepancies in overall width, but it should always be reasonably to close to GDI+.

In addition, this makes D2D behavior match GDI+ when a newline character is the last character of the text.
2013-08-10 13:54:53 +03:00
Birunthan Mohanathas
63f5eed742 Fix build bustage caused by 38ec6c3 2013-08-10 13:13:04 +03:00
Birunthan Mohanathas
616f986181 Gfx: Make D2D clip text that overflows the bounding box similarly to GDI+ 2013-08-10 12:13:59 +03:00
Birunthan Mohanathas
38ec6c3832 Gfx: Fix incorrect text X-position for StringAlign=Center with D2D 2013-08-10 12:08:15 +03:00
Brian Ferguson
1e82a1659f D2D: Undo recent W/H calculations and revert back to 37fd105 calculations 2013-08-02 15:42:37 -06:00
Brian Ferguson
9d525b1c1a D2D: More tweaks (partially reverts ccb2731)
Should account for extra padding when #CRLF# is used.
2013-08-02 14:32:07 -06:00
Birunthan Mohanathas
6b8d8a65d0 Gfx: Suppress int to float conversion warning 2013-07-31 13:15:26 +03:00
Birunthan Mohanathas
3c8c8a1f5e Gfx: Additional change to 37fd105 2013-07-31 13:12:15 +03:00
Birunthan Mohanathas
37fd105650 Gfx: Add Util::GetAdjustedDWriteTextLayoutMetrics to reduce code duplication 2013-07-31 13:09:48 +03:00
Brian Ferguson
572f2da0d2 D2D: Tweaks 2013-07-30 17:01:16 -06:00
Birunthan Mohanathas
20cac72e9b Gfx: Implement GDI+ fallback 2013-07-30 22:57:46 +03:00
Birunthan Mohanathas
44300e2f41 Gfx: Change to use D2D 1.1 2013-07-30 22:38:51 +03:00
Brian Ferguson
12dcf4628a D2D: Tweaks 2013-07-28 22:33:27 -06:00
Brian Ferguson
2dda00a071 D2D: Tweaks to spacing 2013-07-28 12:01:35 -06:00
Brian Ferguson
6aab840dfb D2D: Adjusted character spacing for AccurateText=0 2013-07-28 11:20:28 -06:00
Brian Ferguson
52b5e2584a D2D: Removed centering of text within W/H (from 481442b) due to conflict with different alignments and a meter's defined W/H. 2013-07-28 01:10:19 -06:00
Brian Ferguson
481442bc19 D2D: Tweaked formula that calculates the width/height of text using AccurateText=0 to better match GDI+. Also centers the text inside the adjusted width/height. 2013-07-28 00:00:22 -06:00
Brian Ferguson
b27bf1ee63 Added "AccurateText" option [Rainmeter] section of a skin.
When AccurateText=0 (default) and UseD2D=0, inaccurate GDI+ measuring of text is used
When AccurateText=1 and UseD2D=0, Accurate measuring occurs similar to D2D
When AccurateText=0 and UseD2D=1, D2D adds padding to the text similar to GDI+
When AccurateText=1 and UseD2D=1, Accurate measuring occurs using D2D
2013-07-25 14:53:02 -06:00
Brian Ferguson
96f27fffcb Reverted 32fc794 and cd35729 2013-07-20 10:09:37 -06:00
Brian Ferguson
cd35729a17 Fixed typo in 32fc794 2013-06-30 00:15:36 -06:00
Brian Ferguson
32fc7948ee CanvasD2D: Fix for trailing whitespace
http://rainmeter.net/forum/viewtopic.php?p=89139#p89139
2013-06-29 23:44:56 -06:00
Birunthan Mohanathas
18d5ee383d Gfx: Wrap pointers with std::unique_ptr 2013-05-01 14:38:52 +03:00
Birunthan Mohanathas
eb5044b6fb Gfx: Change COM pointers to use WRL::ComPtr 2013-05-01 14:10:31 +03:00
Birunthan Mohanathas
c7e172f906 Gfx: Fix D2D DrawBitmap when source X/Y is not 0 2013-04-14 18:06:28 +03:00
Birunthan Mohanathas
ad9149b143 Gfx: Move WIC files to Util 2013-04-12 17:09:42 +03:00
Birunthan Mohanathas
3827353c08 Gfx: Implement DWrite interfaces required for loading fonts 2013-04-12 17:05:21 +03:00
Birunthan Mohanathas
53c6966819 Gfx: Tweaks 2013-04-08 17:21:47 +03:00
Birunthan Mohanathas
12bd890aef Gfx: Cosmetics 2013-04-07 14:32:41 +03:00
Birunthan Mohanathas
2f8f67e2cf Gfx: Make D2D font family name handling more consistent with GDI+ 2013-04-07 14:30:50 +03:00
Brian Ferguson
d0704a69d0 Cosmetics: Fixes VS2012 syntax highlighting 2013-04-05 15:07:51 -06:00
Brian Ferguson
59b3dea21c Gfx: Added support for TransformationMatrix and Angle (for String meters) 2013-04-05 02:35:20 -06:00
Birunthan Mohanathas
e5100d9a9f Gfx: Make text rendering with D2D more efficient by reusing layout 2013-03-28 15:51:12 +02:00
Birunthan Mohanathas
056277ce4f Gfx: Tweaks 2013-03-28 14:45:10 +02:00
Birunthan Mohanathas
5bf776090d Gfx: Avoid creating D2D render target when not necessary 2013-03-28 14:44:43 +02:00
Birunthan Mohanathas
c6374f7c12 Minor tweaks and fixes 2013-03-28 14:26:55 +02:00
Birunthan Mohanathas
5f03d7b235 Gfx: Fix rendering issues in some cases
It seems that Direct2D does not expect the underlying pixel data of the render target to change outside of the target draw commands while the render target exists. As a result, Direct2D may in some cases overwrite changes to the pixel data. This change changes the render target to be (re)created for each batch of Direct2D drawing operations as a temporary solution. As a side effect, a DIB section is now used as the render target bitmap.
2013-03-26 21:29:05 +02:00
Birunthan Mohanathas
82970d1cce Gfx: Add initial work
Gfx provides support for rendering with both Direct2D and GDI+.
2013-03-25 17:37:20 +02:00