Artoria2e5 / GDJ

Gdi32 & DirectWrite Jammer
https://arthur2e5.github.io/GDJ
GNU Lesser General Public License v2.1
0 stars 0 forks source link

Implement 'Saturation' and 'FontLink' functionality from gdi++ #16

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
As per the summary title, I would like to request that the 'Saturation' and 
'FontLink' functionality from gdi++ is implemented in gdipp.

My gdi++ settings file is attached for reference.

- I use a value of Saturation=8, which gives the text a slightly softer 
appearance.
- I use the 'FontLink' functionality to ensure that gdi++ renders Japanese 
elements that are sometimes ignored (Explorer filenames, folder tree 
list/desktop, some menus).  Note that without the 'FontLink' configuration 
entries, gdi++ behaves like gdipp.

I realise that Windows XP is not officially supported by this project, 
however functionality is very nearly perfect, thus I would like to 
encourage the developers to resolve the remaining minor XP issues, if 
possible.

Separate PNG files and combined TIF file (open in Photoshop to see both 
layers) attached.

What version of gdipp are you using? On what operating system (with
bitness)?

gdipp 0.5.3 (32bit)
Windows XP SP3 JPN (32bit)

Original issue reported on code.google.com by jmbat...@gmail.com on 16 Mar 2010 at 12:56

Attachments:

GoogleCodeExporter commented 8 years ago
- Saturation is a setting from the gdi++ Helium version, which is a 
closed-source.
There is no way to mimic its effect. Besides, the new gamma settings might also
produce lighter or softer glyphs, depending on your graphic card and monitor. 
Give it
a try.

- Even in Windows XP, there is system-wide font linking functionality. If such
mechanism has been implemented by Microsoft, why bother implement again? gdipp
support the system fontlink list. Please use the system fontlink.

The reason we do not support Windows XP are not only because the GDI behaviors 
are
different, but also we may try to integrate the latest technologies into gdipp, 
such
as DirectWrite, which is only available in Windows 7 and Windows Vista SP2, to
archive better compatibility, performance and effect. Frankly, gdipp does not 
even
work in the developer's virtual machine Windows XP. It may not be simple task to
satisfy backward compatibility.

Original comment by crendk...@gmail.com on 16 Mar 2010 at 2:52

GoogleCodeExporter commented 8 years ago
Thank you for your detailed response.

I was aware of the new gamma settings, however given that my gdi++ settings 
also do 
not adjust the gamma, I thought it might not be possible if saturation could be 
implemented.

Good luck with your XP virtual machine! 

Original comment by jmbat...@gmail.com on 16 Mar 2010 at 3:01

GoogleCodeExporter commented 8 years ago

Original comment by crendk...@gmail.com on 17 Mar 2010 at 8:16

GoogleCodeExporter commented 8 years ago
Hello,

I am happy to report that upgrading to v0.6.1 appears to have resolved some of 
issues 
that I was experiencing (under Windows XP), with desktop, folder tree, and 
Japanese 
text icons now rendering correctly.  Great job!

There are some minor hinting (?) issues affecting the spacing between some 
characters, and for some reason the bold titlebar font is rendered as a normal 
face, 
however for the time being I shall be continuing to use gdipp on my system.

Ah, also please consider adding a changelog and settings explanation page to 
the 
project website.

Many thanks for your support!

Cheers,
James
x

Original comment by jmbat...@gmail.com on 22 Mar 2010 at 12:51

Attachments:

GoogleCodeExporter commented 8 years ago
There are two inter-glyph distance in the rendering function: one from GDI, one 
from
FreeType. I can only choose to follow one of them at a time. The policy is, if 
the
GDI distance is provided, use the GDI distance for better compatibility, 
otherwise
use FreeType distance. Since the GDI distance is pre-calculated base on the 
glyph
width from GDI functions, it might not perfectly fit the glyph generated from
FreeType. Therefore there are inevitably 1 or 2 pixels offset in somewhere. It 
can be
considered as the price of better text effect. There is no free lunch, right?

Original comment by crendk...@gmail.com on 22 Mar 2010 at 1:21

GoogleCodeExporter commented 8 years ago
Ah, I see.

For reference I have attached a screenshot of the same page rendered with gdi++

Do you know how it manages to achieve a more 'balanced' appearance?

James
x

Original comment by jmbat...@gmail.com on 22 Mar 2010 at 1:43

Attachments:

GoogleCodeExporter commented 8 years ago
With gdipp 0.7, I can render my Windows XP virtual machine perfectly. Amazing!

For the inter-glyph distance, what font loader do you use for both gdipp and 
gdi++?

Original comment by crendk...@gmail.com on 22 Mar 2010 at 10:08

GoogleCodeExporter commented 8 years ago
Thank you for pursuing Windows XP compatibility.

Regarding the font loader, gdipp is using Freetype, and I believe gdi++ is also.
I am using largely the default settings with gdipp, with just the shadow 
disabled and 
lcd_filter set to 2.

I shall attach my gdi++ folder/settings for your reference.

Cheers,
James
x

Original comment by jmbat...@gmail.com on 23 Mar 2010 at 1:39

Attachments:

GoogleCodeExporter commented 8 years ago
gdipp by default use FreeType loader. Therefore the distance might be somehow
incompatible. I am reminded again that you are using the gdi++ He version, 
which is
closed-source. I do not know how they implement this part.

Original comment by crendk...@gmail.com on 23 Mar 2010 at 2:29

GoogleCodeExporter commented 8 years ago
support adding fontlink

Original comment by turboc...@gmail.com on 16 Mar 2011 at 9:39