Did you know: All GDI apps render slower under Win7?


Recommended Posts

What?? GDI and the Win32 API's are official. The Direct*D API's are not a requirement to build Windows GUI's. You do know that right?

Uh yea they are if you're wanting to build against Direct2D, what you were whining about being so difficult in the first place, hence "refusing to use the APIs"?

What?? GDI and the Win32 API's are official. The Direct*D API's are not a requirement to build Windows GUI's. You do know that right?

MSDN clearly says one should no longer use GDI for Windows programs:

Technologies that are obsolete and should not be used in new applications.

This is what MSDN says about GDI (legacy graphics).

http://msdn.microsoft.com/en-us/library/ee663279(v=VS.85).aspx

And why would I want to build against Direct2D when I'm coding in C?

And round in circles we go. Oh I don't know, programming new projects for current technology appropriate to the platform versus legacy/depreciated stuff that's getting phased out maybe? If your tools of choice aren't up to the job, it might be time to consider switching to something more appropriate to the platform.

MSDN clearly says one should no longer use GDI for Windows programs:

This is what MSDN says about GDI (legacy graphics).

http://msdn.microsof...e663279(v=VS.85).aspx

Link's busted, fixed it for you. MSDN

MSDN clearly says one should no longer use GDI for Windows programs:

This is what MSDN says about GDI (legacy graphics).

http://msdn.microsof...e663279(v=VS.85).aspx

Ignoring the fact that that page won't load, I, as a developer, wish to target both XP and Windows 7, so GDI is the best solution because it's supported on both platforms, unlike Direct2D. It's built right into the Win32 API, unlike the Direct*D interfaces, which are separate and use COM (horrible to use from most language bindings).

Ignoring the fact that that page won't load, I, as a developer, wish to target both XP and Windows 7, so GDI is the best solution. It's built right into the Win32 API, unlike the Direct*D interfaces, which are separate and use COM (horrible to use from most language bindings).

There is absolutely no excuse for sticking to plain C Win32 API any more. The whole world is moving on. C++/C# is the way forward. Plain C is simply not good enough for today's complex programming needs.

There is absolutely no excuse for sticking to plain C Win32 API any more.

That's what 99% of WIndows programs use lol.

The whole world is moving on. C++/C# is the way forward. Plain C is simply not good enough for today's complex programming needs.

No thanks. I prefer patent unencumbered programming languages like Python, Java, Perl to C#. As far as C++ goes, If I want to use a OO design pattern, again, i'll use Java or Python. I really don't see a use for C++ these days.

That's what 99% of WIndows programs use lol.

LOL! Are you living in 1993? Almost no Windows programs are written in plain-C any more.

No thanks. I prefer patent unencumbered programming languages like Python, Java, Perl to C#. As far as C++ goes, If I want to use a OO design pattern, again, i'll use Java or Python. I really don't see a use for C++ these days.

C# is the most elegant programming language in the world. That's why its popularity is rising exponentially. If you prefer native code instead, C++ is great. But Java is the worst programming language in the history of mankind. It's a complete mess, a lot like Android.

LOL! Are you living in 1993? Almost no Windows programs are written in plain-C any more.

The Win32 API, not C. Reading comprehension?

C# is the most elegant programming language in the world.

Cool story. Bro.

That's why its[C#] popularity is rising exponentially.

Really? From what I've read, It hasn't made an impact. This could be attributed to the fact that it's locked down to Windows of course. I prefer to write portable code.

If you prefer native code instead, C++ is great. But Java is the worst programming language in the history of mankind. It's a complete mess, a lot like Android.

Java is the language of choice for Android, Nuff said.

...

It's built right into the Win32 API, unlike the Direct*D interfaces, which are separate and use COM (horrible to use from most language bindings).

Uh, COM and Direct2D (And DirectWrite/Direct3D/etc.) are part of Win32.

No thanks. I prefer patent unencumbered programming languages like Python, Java, Perl to C#. As far as C++ goes, If I want to use a OO design pattern, again, i'll use Java or Python. I really don't see a use for C++ these days.

Don't tell me you've never read Gosling's explanation about how they had to patent everything at Sun, and how they made contests of who got the most stupid patent?

Fact: If someone tells you his creation is not patent-encumbered, that doesn't mean it isn't. Look at Android and WebM.

Really? From what I've read, It hasn't made an impact. This could be attributed to the fact that it's locked down to Windows of course. I prefer to write portable code.

*cough* dotGNU *cough* Mono *cough*

Also, http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

*cough* dotGNU *cough* Mono *cough*

Also, http://www.tiobe.com...tpci/index.html

Both of which have fallen into disuse and have questionable compatibility with Microsoft's implementation, as evidenced by Canonical's recent decision to exclude Mono from future Ubuntu releases.

  • 1 month later...

Thanks for this post, I thought I was the only one noticing this.

I use a certain application maximized on my Windows 7 x64 workstation having upgraded from Windows XP. The application shows objects, about 200 of them on screen, and when I go to scroll, it is noticeably slower and somewhat flicky under Windows 7. Since the developer must support XP I doubt I'll see any improvement for a long time. Would be better for MS to fix this.

@Joey S and @Tilt090

not to sound rude (unlike Tilt sounds from my perspective)

but grow up and stop living in the past. Things change, in the world of technology you need to learn to adapt

So if I get this straight, an application must use D2D/DW or suffer a major performance drop on post-XP era Windows?

where are you getting the "major" from? as has been stated, it's a barely noticeable performance drop under most hardware

The most important GDI operations are hardware accelerated under Windows 7, so the majority of users wouldn't notice any slowdowns.

The main problem with using GDI rendering is that it's pretty crappy, the speed has nothing to do with it.

so its decided win7 is slower eh.. and since people will continue to develop for gdi its a no brainer to move to the faster os ... snicker snicker...

And consider how old GDI is.

GDI goes back to 9x/NT4 - and was optimized to GDI+ in ME/2K Professional.

GDI+ is a crapton faster than GDI - and that was merely in ME and Windows 2000 Professional. GDI+ had one major issue (which it still has) - backward-compatibility issues with GDI-only displays.

How many GDI-only applications are there today?

And isn't that reality still the case with those GDI-only applications that exist today? (Backward-compatibility with older versions of Windows.)

The only GDI-only application I even know of is *Opera* - which is designed with WayBack compatibility first and foremost. (Even Mozilla isn't GDI-only, and hasn't been on Windows for a while.)

Not one messaging client is GDI-only. (That includes Facebook Messenger, by the way.)

GDI+ is a software version of GDI that can do AA (One big difference), it's often quite slower than GDI.

*Often quite slower* on what hardware?

On low-end- non-accelerated onboard graphics of the G41 (Intel) or earlier sort?

*Often quite slower* on what hardware?

On low-end- non-accelerated onboard graphics of the G41 (Intel) or earlier sort?

Adding software AA to stuff makes it slower on ANY kind of hardware. the difference is wether you hardware is fast enough for you not to notice or not.

*Often quite slower* on what hardware?

On low-end- non-accelerated onboard graphics of the G41 (Intel) or earlier sort?

The GPU doesn't come into it since GDI+ runs on the CPU, you could have a GTX 570 or a simple framebuffer device, GDI+ will still be slower in most cases (GDI+ might win when it comes to 32bit textures, but only because GDI doesn't support them "well" :laugh:)

This topic is now closed to further replies.
  • Posts

    • AdGuard Family lifetime deal now only $14.97 by Steven Parker Today's highlighted Neowin Deal comes via our Apps + Software section, where you can get a lifetime subscription and save 91% on a lifetime AdGuard Family Plan. AdGuard is a unique program that has all the necessary features for what they claim to be "the best web experience." The software combines the an advanced ad blocker, a privacy protection module, and a parental control tool—all working in one app. This software deals with annoying ads, hides your data from a multitude of trackers, protects you from malware attacks, and even lets you restrict your kids from accessing inappropriate content. Install AdGuard and see the internet as it was supposed to be: clean and safe. Get rid of annoying banners, pop-ups & video ads once and for all Hide your data from the multitude of trackers & activity analyzers that swarm the web Avoid fraudulent and phishing website and malware attacks Protect your kids online by restricting them from accessing inappropriate & adult content Good to know Family Plan Length of access: lifetime This plan is only available to new users Redemption deadline: redeem your code within 30 days of purchase Max number of devices: 9 Access options: desktop & mobile Software version: AdGuard Family Updates included A lifetime subscription of AdGuard Family Plan normally costs $169.99, but this deal can be yours for just $14.97, that's a saving of $157.02. For full terms, specifications, and license info please click the link below. Get this AdGuard Family lifetime deal for just $14.97 (was $169.99) Although priced in U.S. dollars, this deal is available for digital purchase worldwide. As an online publication, Neowin too relies on ads for operating costs and, if you use an ad blocker, we'd appreciate being whitelisted. In addition, we have an ad-free subscription for $28 a year, which is another way to show support! Support queries If you have queries or need support for any of the Neowin Deals, please use the contact form here. Neowin Deals are managed and sold by StackCommerce who represent Neowin on an affiliate basis. Why we post these deals We post these because we earn commission on each sale so as not to rely solely on advertising, which many of our readers block. It all helps toward paying staff reporters, servers and hosting costs. So for those that keep moaning and complaining, be thankful we're still online for you to even do that. Other ways to support Neowin Whitelist Neowin by not blocking our ads Create a free member account to see fewer ads Make a donation to support our day to day running costs Subscribe to Neowin - for $14 a year, or $28 a year for an ad-free experience Disclosure: Neowin benefits from revenue of each sale made through our branded deals site powered by StackCommerce.
    • Passkeys: Think of them like a broken heart necklace. Imagine one of those heart necklaces that breaks into two matching pieces. One person keeps one half, and the other person keeps the other half. With passkeys, the website has one half, and you have the other half. If the website gets hacked and someone steals its half, that stolen piece is useless by itself. It cannot unlock your account without your matching half. This particular heart necklace is one of a kind, there is only one in existence. Your half of the necklace has to be stored somewhere. It might be stored on your phone, tablet, computer, security key, or a password manager that can sync it between all your devices. A security key is a small physical device that you keep with you, kind of like a house key, car key, or flash drive. I would not usually recommend a security key as the first option for the average person. For most people, it is easier to use their phone, computer, or a password manager that can sync passkeys between their devices. A security key is more like a spare key you keep in a safe place, just in case you lose access to your other devices or your password manager. Some security keys plug into your computer. Some plug into your phone or tablet. Some get tapped against your device. The idea is simple: a security key can hold another passkey for the same website. Think of it like creating a second one-of-a-kind heart necklace for the same account. One necklace could be paired with your password manager, while another necklace could be paired with your security key. That means the website has more than one matching half on file. One half matches the passkey in your password manager. Another half matches the passkey stored on your security key. So, if you lose access to your phone, computer, or password manager, you would still be able to log in using the passkey stored on your security key. Think of it like keeping an extra special necklace piece on a tiny keychain, stored somewhere safe. The website still has the matching half for that security key, but your half is safely stored inside the little key. A passkey does not automatically exist on every device you own. It lives wherever you save it. If your half is stored on one device, then that device is the one that has the matching piece. For example, if you create the passkey on your Windows computer and it is only saved to that computer, your iPhone does not automatically have that same half. If you create it on your iPhone and it only stays on that iPhone, your Android phone does not automatically have it either. That is where password managers come in. A password manager can act like a protected jewelry box for your passkeys. Instead of your half of the necklace being locked to only one device, the password manager can securely sync that half to your other approved devices. For example, Apple Passwords and iCloud Keychain can sync passkeys between your Apple devices. Google Password Manager can sync passkeys with your Google account. But password managers such as 1Password and Bitwarden can sync passkeys between everything, your phones, tablets and computers. Now, you might ask: “What happens if I lose access to the device that has my passkey?” That depends on where your passkey was saved and what recovery options the website gives you. If your passkey was synced through a password manager, you may be able to sign in from another device that has access to that same password manager. For example, if your passkey is saved in iCloud Keychain, Google Password Manager, 1Password, or Bitwarden, another approved device may still have access to it. If your passkey was saved only on one phone, computer, or security key, and you lose that device, then you may not have your half of the necklace anymore. In that case, you would usually need to use the website’s backup login or account recovery options. A lot of websites that support passkeys still let you fall back to your regular password. So if you lose access to your passkey, the site may still let you log in with your password, a code sent to your email, a text message, a recovery code, or some other account recovery process. That is convenient, but it is also important to understand: if the website still allows password login, then your password still matters. Passkeys are safer than passwords, but if your account still has a password as a backup, you should still use a strong, unique password and turn on two-factor authentication if the website offers it. This is why it is a good idea to have more than one safe way back into important accounts. For example, you might keep your passkey in a syncing password manager, add a second trusted device, save recovery codes somewhere safe, or set up a backup security key. A passkey is very secure, but just like a real key, you need a backup plan in case you lose access to it. Now, you might ask: “What stops a hacker from copying my half of the necklace?” That’s the important part: your half is protected. It is not something you type in, and it is not something the website gets to keep. Think of your half as being locked inside a tiny safe on your phone, computer, security key, or password manager. That safe only opens when you approve it with your fingerprint, face, PIN, or device password. When you log in, the website does not need to see your half. It only needs proof that your half matches its half. Your actual half is not handed over to the website. This is different from a password. With a password, you type the secret into the website. If you type it into a fake website, the hacker now has it. With a passkey, you are not typing your secret into the website. Your device is proving you have the matching half without giving the half away. That also helps protect you from fake websites. If someone makes a fake login page that looks like the real site, your device can tell it is not the real match. It will not use your passkey there. Now, could someone use your passkey if they stole your device, got into your password manager, or somehow unlocked the safe that holds your half? Yes, that is why your device password, PIN, fingerprint, face unlock, and password manager security still matter. But a hacker cannot just steal your passkey from the website or trick you into typing it into a fake page like they can with a password. That is why passkeys are safer than passwords. The two matching pieces have to come together, like two lovebirds who were once separated and are finally reunited.
    • Newegg offers insane combo deal on Amazon Prime Day 2026 that beats Steam Machine by Sayan Sen Building a PC is undoubtedly difficult nowadays but with this epic combo deal, Newegg is trying to make it as easy for you as it is possible. If you are making a new one or even upgrading an old system to a new Windows 11 device, this combo bundle is truly unmissable as you get AMD's Ryzen 9800X3D, a compatible X870 motherboard, a 240mm AIO liquid cooler and finally a Samsung 990 PRO SSD all for under $1000 (purchase link under the specs table down below). This should beat out the newly launched Steam Machine from Valve in terms of performance and performance per dollar especially if you are willing to set Linux up on it. Essentially with this combo you will get the AMD Ryzen 7 9800X3D 8-core 3D V cache CPU, Samsung's 990 PRO 2TB NVMe SSD, the MSI MAG X870 TOMAHAWK WIFI ATX Motherboard, and finally the Cooler Master Elite Liquid 240. Thanks to that massive vertically stacked L3 cache, the X3D desktop processors, including the 9800X3D, also come with the benefit of not needing fast memory. Even DDR5-5600 should be plenty for it. The technical specifications of the Ryzen 7 9800X3D are given in the table below: Specification Value Architecture Zen 5 Cores / Threads 8 / 16 Base Clock 4.7 GHz Max Boost Clock Up to 5.2 GHz L1 Cache 640 KB L2 Cache 8 MB L3 Cache 96 MB Total Cache 104 MB CPU Core Process TSMC 4nm FinFET I/O Die Process TSMC 6nm FinFET Socket AM5 Default TDP 120W Max Temperature (Tjmax) 95°C Thermal Solution Not included Memory Type DDR5 Max Capacity 256 GB Memory Speeds 2x1R: DDR5-5600 2x2R: DDR5-5600 4x1R: DDR5-3600 4x2R: DDR5-3600 PCIe Version PCIe 5.0 PCIe Lanes (Total/Usable) 28 / 24 USB 3.2 Gen 2 (10Gbps) 4 USB 2.0 1 Graphics Cores 2 CU RDNA 2 Frequency 2200 MHz DisplayPort over USB-C Yes Overclocking Unlocked Up next we have the tech specs for the MSI MAG X870 TOMAHAWK WIFI Motherboard: Specification Value Chipset AMD X870 CPU Support AMD Ryzen 9000 / 8000 / 7000 Series Desktop Processors Socket AM5 Memory Slots 4 × DDR5 UDIMM Maximum Memory Capacity 256GB Memory Support DDR5 8400–5600 MT/s (OC), DDR5 5600–4800 MT/s (JEDEC) Integrated Graphics Outputs 1 × HDMI 2.1 FRL (up to 8K 60Hz) 2 × USB4 Type-C with DisplayPort 1.4 HBR3 (up to 4K 60Hz) Expansion Slots PCI_E1: PCIe 5.0 x16 (CPU) PCI_E2: PCIe 3.0 x1 (Chipset) PCI_E3: PCIe 4.0 x4 (Chipset) Audio Realtek ALC4080 Codec 7.1-Channel USB High Performance Audio Supports up to 32-bit/384kHz playback on front panel S/PDIF output M.2 Slots 4 × M.2 M2_1: PCIe 5.0 x4 (CPU, 22110/2280) M2_2: PCIe 5.0 x4 (CPU, 2280/2260) M2_3: PCIe 4.0 x2 (Chipset, 2280/2260) M2_4: PCIe 4.0 x4 (Chipset, 2280/2260) SATA Ports 4 × SATA 6Gb/s RAID Support RAID 0, 1, 5, 10 for M.2 NVMe storage devices Rear USB Ports 4 × USB 2.0 3 × USB 5Gbps Type-A 2 × USB 10Gbps Type-A 1 × USB 10Gbps Type-C 2 × USB4 40Gbps Type-C Front USB Headers 4 × USB 2.0 4 × USB 5Gbps Type-A 1 × USB 20Gbps Type-C LAN Realtek 8126-CG 5G LAN Wireless Wi-Fi 7 (M.2 Key-E module pre-installed) Supports 2.4GHz / 5GHz / 6GHz bands Up to 5.8Gbps Supports 802.11 a/b/g/n/ac/ax/be Bluetooth Bluetooth 5.4, MLO, 4KQAM Internal Power Connectors 1 × 24-pin ATX Power 2 × CPU Power Connectors 1 × PCIe 8-pin Power Connector Fan Headers 1 × CPU Fan 1 × Combo Fan (Pump/System) 6 × System Fan RGB Headers 3 × Addressable V2 RGB (JARGB_V2) 1 × RGB LED (JRGB) Other Internal Headers 1 × EZ Conn-header 2 × Front Panel Headers 1 × Chassis Intrusion 1 × Front Audio 1 × TPM 2.0 Header Debug Features 4 × EZ Debug LEDs 1 × EZ Digit Debug LED Rear I/O Ports Clear CMOS Button Flash BIOS Button HDMI 2 × USB 40Gbps Type-C 1 × USB 10Gbps Type-C 4 × USB 10Gbps Type-A 3 × USB 5Gbps Type-A 4 × USB 2.0 5G LAN Port Wi-Fi/Bluetooth Antenna Connectors Audio Connectors Form Factor ATX The Samsung 990 PRO is a PCIe Gen4 NVMe SSD and still one of the fastest drives available today for under $500. Speaking of fast, sequential reads and writes are rated at 7450 MB/s and 6900 MB/s, respectively. The random throughputs for reads and writes are 1400K IOPS and 1550K IOPS, respectively. The 990 PRO is based on Samsung's 7th Gen V-NAND flash, and it too is TLC. It packs 2 gigs of LPDDR4 DRAM cache, which helps the random performance. The endurance rating for this is 1200 TBW (terabytes written), which should be sufficient for most users. The Samsung 990 PRO is compatible with the PlayStation 5, but if you are going to use the 990 PRO on a PC, check out the Samsung Magician app that lets you track your drive's health, update its firmware, customize various settings, and more. The tech specs are given below: Specification Value Interface PCIe Gen 4.0 x4, NVMe 2.0 Form Factor M.2 2280 Controller Samsung In-house Controller NAND Flash 3D TLC DRAM Cache 2GB LPDDR4 Sequential Read (Max) 7,450 MB/s Sequential Write (Max) 6,900 MB/s Random Read (4K) Up to 1,400,000 IOPS Random Write (4K) Up to 1,550,000 IOPS TBW (Endurance) 1,200 TBW MTBF 1,500,000 hours Operating Temperature 0°C to 70°C Storage Temperature -40°C to 85°C Shock Resistance 1,500G / 0.5ms Heatsink No Get the combo deal at this link: AMD Ryzen 7 9800X3D, Samsung 990 PRO 2TB, MSI MAG X870 TOMAHAWK WIFI motherboard, Cooler Master Elite Liquid 240: $784.99 + $25 off with promo code FTTF77: $759.99 (Sold and Shipped by Newegg US) Good to know This Newegg deal is U.S. specific, and not available in other regions unless specified. We only use first-party seller links (at the time of article publishing); ensure that you purchase from a first-party seller link only. Check out Today's Deals on Amazon | or our recent tech deals. Become a Prime member (for Students or SNAP) via Neowin Get Prime Access - Prime for half price (for qualifying Medicaid, EBT, SNAP) Subscribe to Prime Video, Audible Plus, Music Unlimited or Kindle Unlimited via Neowin As an Amazon Associate, we earn from qualifying purchases.
    • I heard from a lot of people that driver support for the latest games when RDNA first came out (Radeon 5000 series) was pretty bad, but if you didn't buy the card on day one, or were not trying to play the latest titles, then you were isolated from that issue. Other than that, it's been good and only getting better.
  • Recent Achievements

    • One Month Later
      timbobit earned a badge
      One Month Later
    • One Month Later
      nates earned a badge
      One Month Later
    • Week One Done
      Almohandis earned a badge
      Week One Done
    • Rookie
      dorf went up a rank
      Rookie
    • First Post
      mike_rumble earned a badge
      First Post
  • Popular Contributors

    1. 1
      +primortal
      469
    2. 2
      +Edouard
      165
    3. 3
      PsYcHoKiLLa
      104
    4. 4
      Michael Scrip
      87
    5. 5
      Steven P.
      71
  • Tell a friend

    Love Neowin? Tell a friend!