PDA

View Full Version : Will QuickDraw survive in 10.5?




brettbolt
Feb 5, 2006, 06:24 PM
Has it been decided yet whether QuickDraw will still be available in 10.5?

After having just completed the transition to Universal Binary, I'm not looking forward to converting thousands of lines of QuickDraw code to Quartz2D!



bousozoku
Feb 5, 2006, 07:03 PM
They've not made any announcements about discontinuing QuickDraw that I've seen so I expect it to continue. However, it might be a good idea to get started on something you should have begun years ago. ;)

Of course, Adobe, etc. should have gotten a start on it, too.

brettbolt
Feb 5, 2006, 07:28 PM
I wish I had the chance to convert it years ago. :) Its hard for me to start a 2 month task like this until I know that I absolutely have to.

I can understand Apple not wanting developers to use QuickDraw in new code, but pulling support un-necessarily would break a lot of apps.

bousozoku
Feb 5, 2006, 08:09 PM
Indeed. I'm surprised that Apple didn't create a tool to help convert QuickDraw code to Quartz or OpenGL code. Maybe they did and they're just keeping it to themselves rather than beautify it for the outside world.

I would bet that QuickDraw has only lasted this long because Adobe and others complained that they wouldn't be able to re-write their applications. It wouldn't be surprising that it could be confined to the Classic environment within a couple of years.

Catfish_Man
Feb 5, 2006, 08:23 PM
Indeed. I'm surprised that Apple didn't create a tool to help convert QuickDraw code to Quartz or OpenGL code. Maybe they did and they're just keeping it to themselves rather than beautify it for the outside world.

This seems like it would be an almost impossible task. The APIs are not very similar at all...

bousozoku
Feb 5, 2006, 08:48 PM
This seems like it would be an almost impossible task. The APIs are not very similar at all...

I've done similar work for other machines. I even did some preliminary work on a Direct3D->OpenGL conversion tool.

Catfish_Man
Feb 5, 2006, 08:53 PM
I've done similar work for other machines. I was even did some preliminary work on a Direct3D->OpenGL conversion tool.

Interesting. I'd heard about p2c (pascal->C converter), but that at least remains logically identical. Automated conversion between dissimilar APIs sounds like it would cause intense headaches

HiRez
Feb 6, 2006, 12:13 AM
Even if QuickDraw is still supported as an API, I very much doubt it will be supported by Quartz 2D Extreme, and possibly a bunch of other newer Apple technologies will not play nicely with it.

Catfish_Man
Feb 6, 2006, 02:51 AM
Even if QuickDraw is still supported as an API, I very much doubt it will be supported by Quartz 2D Extreme, and possibly a bunch of other newer Apple technologies will not play nicely with it.

It's documented that using QuickDraw turns off Q2DX for that window.

brettbolt
Feb 6, 2006, 03:29 AM
The demise of QuickDraw will affect many Windows developers too! (Apple implemented QuickDraw using the Win32 API in their QuickTime for Windows SDK). This is because QuickTime uses many QuickDraw structures (like GWorlds). I know because I am one of the many "QuickTime for Windows" licensors.

My code (Natural Scene Designer Pro) makes extensive use of GWorlds and CopyBits. I realize that Mac OS X performs double buffering automatically, but I find GWorlds to be a convenient way to store and manipulate bitmaps.

I'll really miss the functionality of CopyBits, for which Apple says there is no direct replacement in Quartz. One thing I give credit to Microsoft for is that they are not making their Win32 bitmap transfer functions like "BitBlt" obsolete.

bousozoku
Feb 6, 2006, 03:53 AM
Are they still using QuickDraw for version 7 of QuickTime? I've seen that major things have been re-written for it but I didn't really pay too much attention.

The hardware device context was always a bit easier for me to use (closer to Digital Research's GEM) than GWorlds but then, I was also using Borland's Object Windows Library, which was amazing.

I always thought that QuickDraw was suffering from Multiple Personality Disorder in the way that it handled (or didn't handle) multiple graphic devices like printers and displays and scanners.

HiRez
Feb 6, 2006, 05:59 AM
Hmm, it would seem odd for them to break QuickTime, I have to think that everything in QuickTime will be still usable. Maybe they're rewriting the QT QD code under the covers and leaving the API the same. Frankly, I think QuickTime could use a complete rewrite as an object-oriented API with Objective-C wrappings, it's quite crufty with all those Pascal strings, FSSpecRefs, QuickDraw and other Mac Toolbox structures, various memory management schemes, etc. It's a mammoth undertaking, but QT is IMO the heart and soul of the Mac, it deserves to be a first-class, modern API.

Thomas Harte
Feb 6, 2006, 10:53 AM
They've not made any announcements about discontinuing QuickDraw that I've seen so I expect it to continue.
But they have added this to the QuickDraw Reference page in the developer help files:

Important: Quickdraw has been deprecated for deployment targets Mac OS X version 10.4 and later. The replacement API is Quartz. Because of the fundamental differences in the imaging models and design goals between Quickdraw and Quartz, there is no direct correspondence between Quickdraw and Quartz concepts and interfaces. For certain purposes, some Quickdraw functions may still be needed during a transition period; nevertheless, most of them have been deprecated to express the overriding goal of eliminating the use of Quickdraw in the future.

So, start abandoning Quickdraw (whichever capitalisation you use) now if you didn't years ago.

bousozoku
Feb 6, 2006, 12:41 PM
But they have added this to the QuickDraw Reference page in the developer help files:



So, start abandoning Quickdraw (whichever capitalisation you use) now if you didn't years ago.

That's a great catch. Thanks!

brettbolt
Feb 6, 2006, 02:59 PM
"Abandoning" sounds nice and easy, I like it.

Maybe it will work if I just comment out all of the offending 3,950 QuickDraw calls? :D

brettbolt
Feb 6, 2006, 02:59 PM
I just saw this in the "Quartz Programming Guide for QuickDraw Developers" --

Note: The QuickDraw API is deprecated in Mac OS X v10.4. That means that Apple no longer plans to develop QuickDraw software or documentation. ... So it sounds like QD will be around for a while, but there won't be new documentation for it.

bousozoku
Feb 6, 2006, 03:32 PM
I just saw this in the "Quartz Programming Guide for QuickDraw Developers" --

So it sounds like QD will be around for a while, but there won't be new documentation for it.

Better get started. :p

brettbolt
Feb 6, 2006, 05:19 PM
Better get started. :pYessir. 3,950 calls to convert. Will do 1 a day. Will take me 11 years.:)

Fukui
Feb 6, 2006, 05:30 PM
I just saw this in the "Quartz Programming Guide for QuickDraw Developers" --

So it sounds like QD will be around for a while, but there won't be new documentation for it.
Perhaps, but once someone scales their UI (coming in 10.5), your app is gonna look... not nice.