• 0

gdipp - effect of text like Mac OS and Linux distributions for Windows


Question

I think some people know about gdi++ I think it's called, but it's only for 32bit and IMO is a bit poorly coded.

I came across this - http://code.google.com/p/gdipp/

The gdipp project is a replacement of the Windows default font render, which brings to you the effect of text like Mac OS and Linux distributions. It is easy to use, and it is customizable. The two pictures below illustrate the difference.Windows font renderer (ClearType)

ClearType.png

gdipp

gdipp.png

The project is originated as the relaunch of the suspended gdi++.dll project. Like the InkStone project, we found the source code of gdi++.dll project is too complex to manage, and decide to start over a new code base. The goal of gdipp project is to continue the development of gdi++, expand its functionality, improve its performance, provide better compatibility for the current and future Windows versions (potentially at the cost of removing compatibility for old Windows), create detailed and formal documentation, as well as tools to help using it.

The current release supports both 32-bit and 64-bit Windows 7/Vista.

The project is planned to be consisted of several components:

  • gdimm.dll. The main component of the gdipp project, counterpart of gdi++.dll. Most of the font management, text rendering and API simulating is taken place here. gdimm means gdi-- for emphasizing its design idea of simplicity comparing to gdi++.dll.
  • gdipp_loader. accept an executable file path as argument and run it, counterpart of gdi++.exe. If the process is successfully spawned, inject gdimm.dll to the running process, and the new process will render text with gdimm.dll instantly.
  • gdipp_svc. As a Windows service, it injects gdimm.dll to target processes, thus avoid enabling AppInit_DLLs for system-wide API hooking. It also coordinates system-wide glyph caching.
  • application integrator. Modify the import table of a executable to make it load gdimm.dll. The modified program can then be re-distributed to a native Windows environment while rendering with gdimm.dll.
  • preview. Preview rendering result with different configurations of gdimm.dll. Help discovering the best settings for every user.

Note to Windows XP and 2003 users: although the installer does not prevent you from installing gdipp, there are various problems such as explorer cannot start and many text cannot be rendered. Therefore we highly recommend you NOT choose the "Windows Service" and "Registry" load modes.ezgdi could be a better choice.
gdimm.dll plans
  • More functions

Project-scale plans

  • gdipp Preview
  • Kernel-mode hooking (driver)
  • Windows Mobile systems support

Works with 64bit :)

Of course it's an acquired taste, some people find this kind of rendering blurry. The project is fairly new though as you'll see from the change logs, so even if you don't want to use it permanently just now, one to keep an eye on.

Link to comment
Share on other sites

Recommended Posts

  • 0

I came across this ...

Version 0.5.2 doesn't seem to work on x64 apps for me.

Installing as service -> x64 service won't start. As registry -> only 32bit apps render with it.

That being said, it's really good. About 80% of my apps are 32bit anyway, so I'll enjoy them until the x64 components start working :)

Link to comment
Share on other sites

  • 0

Version 0.5.2 doesn't seem to work on x64 apps for me.

Installing as service -> x64 service won't start. As registry -> only 32bit apps render with it.

That being said, it's really good. About 80% of my apps are 32bit anyway, so I'll enjoy them until the x64 components start working :)

Yeah there's a bug in the 0.5.2 installer, remove it from your PC fully just now and restart.

Next, go to command prompt and run as adminstrator, then run the installer from command prompt.

I just renamed it to "install.msi" and put it on C:\, to make it easy to navigate to under the command prompt.

Link to comment
Share on other sites

  • 0

Yeah there's a bug in the 0.5.2 installer, remove it from your PC fully just now and restart.

Next, go to command prompt and run as adminstrator, then run the installer from command prompt.

I just renamed it to "install.msi" and put it on C:\, to make it easy to navigate to under the command prompt.

The elevated cmd didn't work for me, somehow.. :(

Trying to solve Issue 11 (from the project page) by manually copying the .dll caused my x64 apps to crash.

What eventually worked was installing in Registry, and manually populating a registry key with the 64bit dll.

Everything looking nice and smooth now.

Link to comment
Share on other sites

  • 0

Thanks for the propaganda. Just accidentally find this post.

This project is actually not "new". It starts last August, but I just began to be active recently. It is likely to have bugs and errors, especially for the 64-bit components, because I do not have 64-bit OS to debug. Fortunately, it is superior to gdi++ in particular of compatibility and performance aspects. As the functionality and user setting is growing, you should be able to achieve same or better effect than gdi++ sooner or later.

Try the latest 0.5.3 and see if the installer issue is solved.

Link to comment
Share on other sites

  • 0

It looks like the only difference is the text is bolder?

The outline of each character could be different, more anti-aliased. The difference of the Segoe UI font in the snapshot may not be quite decisive, but try fonts like Myriad Pro.

It actually uses FreeType as the rasterizer. FreeType is commonly used in Linux distributions.

Link to comment
Share on other sites

  • 0

This project has come a long way since I was first able to post about it, check out 0.7.3.

Using the registry method and it's fantastic (Y)

Can't even think about using Cleartype again now.

Link to comment
Share on other sites

  • 0

This project has come a long way since I was first able to post about it, check out 0.7.3.

Using the registry method and it's fantastic (Y)

Can't even think about using Cleartype again now.

Agreed, it's really well integrated since last couple of updates and looks so sweet! wink.gif

Link to comment
Share on other sites

  • 0

Singlehandedly the greatest piece of software ever released on a Windows environment. A+++++ - I want to donate.

Link to comment
Share on other sites

  • 0

I tried using it; I had to turn it off a while later as it was putting shadowed text almost everywhere.

Link to comment
Share on other sites

  • 0

:blink:

Isn't font rendering one of the most-complained about things that people have about Linux? (I personally like how my fonts look in Linux, but it is a matter of personal taste).

Link to comment
Share on other sites

  • 0

some people like the blurry look and some don't. i tried this and it really made me go mehhh.

Yeah, for me it has a lot to do with a screen's pixel density. The smooth font rendering in OSX looks great on my Macbook's screen but I don't like it when hooked up to my desktop monitor which has a much lower PPI.

Link to comment
Share on other sites

  • 0

I'm not sure I'm getting this right. So this app makes the text looks like it does on OSX or Linux, no ClearType? If so, why on earth would someone want to do that?! I have OSX on dual-boot with W7 x64, and I HATE the text rendering. :blink:

Link to comment
Share on other sites

  • 0

Yup, it's really quite up to personal opinion on this one.

I could see Microsoft getting a lot of complaints shipping something similar with Windows as default, however it does rock mine and some other people's boats (Y)

Link to comment
Share on other sites

  • 0

IMO fonts look better if you get rid of the shadow effect. Do this by setting 'shadow/alpha' to 0 in "C:\Program Files (x86)\gdipp\setting.xml"

Example

<shadow>

<offset_x>1</offset_x>

<offset_y>1</offset_y>

<alpha></alpha> <-----------------------------------------

</shadow>

Link to comment
Share on other sites

  • 0

IMO fonts look better if you get rid of the shadow effect. Do this by setting 'shadow/alpha' to 0 in "C:\Program Files (x86)\gdipp\setting.xml"

Example

<shadow>

<offset_x>1</offset_x>

<offset_y>1</offset_y>

<alpha></alpha> <-----------------------------------------

</shadow>

Yeah when you do that it's like an improved version of cleartype, rather than going all out and trying to mimic OSX/Linux.

All the settings here with explanations.

Link to comment
Share on other sites

  • 0

You guys DO know that there's a ClearType wizard (at least in Win 7) that has many text "versions", and some of them look exactly like this. but without the shadow, right? :unsure:

Link to comment
Share on other sites

  • 0

You guys DO know that there's a ClearType wizard (at least in Win 7) that has many text "versions", and some of them look exactly like this. but without the shadow, right? :unsure:

It doesn't really look anything like this...

Anyway, a new update is out, looks like some of the shadowing is tweaked.

0.7.4 (Rev 251f67d245)

  • Global:
    • Create minidump under the "crash_dump" subdirectory in the gdipp directory when process is crashed because of gdipp.
    • Create as separate dll.
    • Add <version> in setting.
    • Add rule for VirtualBox.exe in default setting.xml.
    • Remove <font> in <exclude>. Use <renderer>0</renderer> instead.
    • Default value of <alpha> in <shadow> is changed to 8.
    • Add gdipp Demo settings to the default setting.xml.
    • Default value of <count> in <demo> is changed to 5000.
    • Rename <rand_text> to <random_text>.

  • gdimm:
    • Fix bug that the bold style is not working if the font has no separate bold file.
    • Redraw process foreground window when unloading.
    • Optimize rendering performance.

  • Demo:
    • Use WTL as the UI library

http://gdipp.googlecode.com/

Link to comment
Share on other sites

  • 0

0.7.5 (Rev 691c0b922d)

  • Global:
    • Rename setting.xml to gdipp_setting.xml.
    • The "embolden" setting is now integer based. 1.0 in previous versions is equivalent to 64 now.
    • More comprehensive minidump.

  • gdimm:
    • Optimize rendering performance by using glyph bitmap cache.
    • Optimize performance of the setting cache.
    • Better italic style detection.
    • Emulate GDI that only have 3 classes of bold weight.
    • Better redraw mechanism after gdimm is loaded and before unloaded.

  • gdipp Demo
    • Better COM initialization mechanism.

  • gdipp Preview
    • Add prototype of gdipp Preview.

Link to comment
Share on other sites

  • 0

0.7.6 (Rev e49a7cb2e1)

  • Global:
    • Default zero_alpha to 1.

  • gdimm:
    • Use reference count to manage cached glyph. Better compatibility in multi-threaded environments.
    • Redrawing for injection only affects active windows of the target process.
    • Decrease embolden weight for artifical bold font faces.
    • Fix bug that gdipp crashes process when point size is very small.
    • Various code changes and optimizations.

Link to comment
Share on other sites

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.