What is quickdraw?

DudetheCreator
Unregistered
 
Post: #1
What is Quickdraw? I have seen it in Interface Builder (NSquickdrawview) and some old games under the "options" menu. I think Wolfenstein 3d has that option.

What is it? Some older version of openGL?
Quote this message in a reply
Moderator
Posts: 1,560
Joined: 2003.10
Post: #2
QuickDraw was Apple's 2D graphics API, invented by Bill Atkinson, in Mac OS <= 9. It still works in Mac OS X, but is being deprecated in 10.4. It has nothing to do with OpenGL.

- Alex Diener
Quote this message in a reply
Sage
Posts: 1,232
Joined: 2002.10
Post: #3
GIYF

QuickDraw actually predates the Macintosh; it was developed in the early 80's for the Lisa. It was extended several times (Color QuickDraw, QuickDraw GX, QuickDraw 3D) but is now deprecated in OS X. You should not develop anything new with it; use Quartz or OpenGL instead.
Quote this message in a reply
Moderator
Posts: 102
Joined: 2003.07
Post: #4
aren't GWorlds part of QuickDraw? since quartz is so god awfully slow that seems to be the prefered drawing api for games (aside from OpenGL of course)although I guess you really should just use OGL to do your 2D graphics

-CarbonX
Quote this message in a reply
Moderator
Posts: 3,571
Joined: 2003.06
Post: #5
DudetheCreator Wrote:What is Quickdraw?
That question just made me feel really old... Blink

I'm sure there is some sort of shrine for it somewhere in Apple's museum since it was the backbone API of all things graphical on the Mac for what seemed like ever. I still have all my old programming books that use it. Sheesh, it seems like just yesterday when I take a quick glance through some of them...

Anyway, yeah, GWorlds were a QuickDraw thing. As has already been stated, QuickDraw was replaced by Quartz for OS X. Pretty much anything that needs any performance should be written using OpenGL. Quartz is okay and it's not very difficult to use but it's a slow dog and it ain't cross platform compatible.
Quote this message in a reply
Moderator
Posts: 434
Joined: 2002.09
Post: #6
AnotherJake Wrote:That question just made me feel really old... Blink

I was about to say the same thing- you beat me to it.

Quickdraw was a really big deal. Here are some fun anecdotes relating to the original development of QuickDraw.
http://www.folklore.org/ProjectView.py?p...ail=medium
Actually that website is chock full of great anecdotes and stories about early Apple, some technical, some revealing of the personalities involved, most both. All the stories I read were written by actual team members who were there. It's great fun and a huge timesink. (O'Reilly has apparently just published a reworked version of the site as a book, which I think I will have to get.)

Anyway, the 6 QuickDraw related stories are great. How the "marching ants" selection mechanism was invented, why rounded rectangles were included as a drawing primitive, stuff like that. "The single most significant component of the original Macintosh technology was QuickDraw..." Maybe it wil help you will understand why some of us feel old when a younger Macintosh programmer hasn't even heard of it. QuickDraw was THE fundamental of Macintosh programming, underlying the entire Macintosh experience.

Measure twice, cut once, curse three or four times.
Quote this message in a reply
DudetheCreator
Unregistered
 
Post: #7
Thanks. I havn't really bothered to learn any of this because I don't understand the "Big Picture". Well not quite, two reasons, a) too lazy, I have got to fix that one... or b) don't know how to get started

Oh well, thanks for the info.
Quote this message in a reply
Moderator
Posts: 434
Joined: 2002.09
Post: #8
DudetheCreator Wrote:Thanks. I havn't really bothered to learn any of this because I don't understand the "Big Picture". Well not quite, two reasons, a) too lazy, I have got to fix that one... or b) don't know how to get started

Oh well, thanks for the info.

We're not saying you should have learned about Quickdraw! It was just a reality check for us oldtimers that it's not a fundamental part of Mac programming any more.

Measure twice, cut once, curse three or four times.
Quote this message in a reply
Moderator
Posts: 771
Joined: 2003.04
Post: #9
I started programming in a very simple language called Logo, that was pretty straightforward, and made a few simple games.
Then I moved to Pascal and then C, and found a book called "Tricks of the Graphics Gurus", that allowed me to do advanced stuff like writing colored pixels with assembler!
Very slow, very complicated.
Then, I discovered Macs. I thought: Wow it's ALL graphical ALL the time! This is going to be so much easier. I spent about to months reading about the Memory Manager, QuickDraw, the SoundManager. I couldn't believe how bloated even the simplest app was: tons of headers to include, lots of initializations, just to show up a window.
Then, more bloated code for interacting with the user.
I was about to give up when I discovered DrawSprockets (yet another dead API now).
I made my first 3D demo, which was slow, used QuickDraw and a simple Painter's algorithm (draw the stuff that's farther away first, so it gets covered when drawing close-up objects), and even added some music using another old API (PlayerPro - non-Apple).
About 2 months later, I started reading about the upcoming changes: Mac OS X!
DrawSprockets was being deprecated, QuickDraw was being replaced by Quartz, lots of changes to the Toolbox (the set of APIs used by the pre X Mac OSs).
Oh, and a new language, Obj-C, that looked like this:
Code:
-(ID)iDont(int)a;
+(ID)getThisAtAll;
...
[[[[[someWeirdThing hello:@"I'm strange"] but:[you better:@"get used]] to:@"me"] alloc] init];


So, I thought: "Should I spend months learning all this weird stuff?"
In the end, I started doing some OpenGL & C++ experiments in OS 9, following NeHe, since not only did that look great, but it was also easy to follow and had the source code for both OS 9 and X.
When I finally got Mac OS X installed, the first thing I noticed were the free developer tools. My CodeWarrior release was years old by then, so I jumped right into this new tools, and even gave Obj-C and Cocoa a try.
I couldn't believe how much better a development environment OS X was: no more "Bombs" and Restarts after every single bug, a great GUI creator.

This is definitely the best of times to become a mac programmer - I consider 80% of what I did before OS X a big_waste_of_time!

You never heard about QuickDraw? Bombs? Errors Type 11?
CONSIDER YOURSELF LUCKY! Wink
Quote this message in a reply
Moderator
Posts: 3,571
Joined: 2003.06
Post: #10
PowerMacX Wrote:CONSIDER YOURSELF LUCKY! Wink
Amen! The *only* thing I feel even *slightly* sorry about for the new generation of Mac programmers is that they may never get to see what it's like to REALLY bomb a machine with a bad pointer. QuickDraw is dead and that's a *good* thing.
Quote this message in a reply
⌘-R in Chief
Posts: 1,247
Joined: 2002.05
Post: #11
@Kyle: Quartz can be made to draw pictures faster QuickDraw believe it or not!
Quote this message in a reply
Moderator
Posts: 529
Joined: 2003.03
Post: #12
You guys need to stop confusing Dude. He was obviously asking about this Quickdraw.

"Yes, well, that's the sort of blinkered, Philistine pig-ignorance I've come to expect from you non-creative garbage."
Quote this message in a reply
Member
Posts: 23
Joined: 2002.08
Post: #13
El Ka-bong!! LOL

[EDIT]In an attempt to make my post a little less OT, I decided to add the following:

I too started graphics development with QuickDraw. Hell, I tried to write my first 3D engine with it (thanks to the Black Art of Mac Game Programming). I love OpenGL, but QuickDraw and learning it the hard way definitely has lead to a better understanding of graphics pipelines. Although, I have to admit, that my first black & white blitted game was written after I started learning OpenGL. Go figure![/EDIT]
Quote this message in a reply
Moderator
Posts: 434
Joined: 2002.09
Post: #14
AnotherJake Wrote:Amen! The *only* thing I feel even *slightly* sorry about for the new generation of Mac programmers is that they may never get to see what it's like to REALLY bomb a machine with a bad pointer. QuickDraw is dead and that's a *good* thing.

You are comparing apples to oranges. The Mac Toolbox gave you incredible power for the time. Including a bunch of headers was a very small price to pay. (System bombs are an unrelated topic.)

The QuickDraw "revolution" must be placed in its proper context, which is 1980-1985. I do feel sorry for anyone who was learning it in 1995. But if your app was well-behaved and followed the API rules strictly on the early Macs, there was a pretty good chance that it would either run as-is, or with very minor changes, 10 years later (including the transition to color and then to 32-bit System 7. In some cases even through to 8, 9 and X. Not to mention the transition away from Pascal to C, then C++.)
For that matter I believe such programs are not hard to Carbonize either.

Now is a great time to be a Mac programmer, I agree. But programming the Mac Toolbox after suffering the Apple ][, TRS-80 and other home computers? That was a great time as well.

Measure twice, cut once, curse three or four times.
Quote this message in a reply
Moderator
Posts: 3,571
Joined: 2003.06
Post: #15
MattDiamond Wrote:You are comparing apples to oranges.
Nay, I am celebrating progress. My first computer was a TRS-80, so I know exactly where you're coming from, but you read my post wrong, I wasn't dissing QuickDraw. Let me restate it. QuickDraw was the shit, but I'm glad that it's gone. AND I don't miss restarting my computer every friggin' time I leave a dangling pointer hanging around somewhere, among many other things.

QuickDraw is D.E.D, and this is a *good* thing.
Quote this message in a reply
Post Reply 

Possibly Related Threads...
Thread: Author Replies: Views: Last Post
  QuickDraw(CopyBits) vs CoreGraphics(CGContextDrawImage) cloke 6 5,702 Aug 7, 2004 03:06 PM
Last Post: arekkusu