[comp.sys.apple2] QuickDraw II

ujmurphy@KING.MCS.DREXEL.EDU (Jim Murphy) (05/19/91)

albert erroneously wrote:

> quickdraw does draw faster to off-screen grafports because it doesn't have
> to do the 2/4-bit conversion when drawing stuff on-screen (did i get this
> right dave?).

     Wrongo! When drawing to _any_ GrafPort (onscreen or otherwise), QuickDraw
II uses the portInfo record (LocInfo structure) of the GrafPort to determine
what kind of pixel map it is dealing with. It uses the portSCB word to draw to
the port's pixImage at the proper bit depth. This is at either 2 or 4 bit
depth, depending on the portSCB value.

     When QuickDraw II draws to a pixImage, it does not care where in memory
the image is. It has been designed to draw to pixMaps anywhere. Whether the
memory space that QD II has been asked to draw to does not correspond to 
screen memory (either $E1 or $01) does not matter. QD II makes no optimizations
when drawing to offscreen pixMaps.

     I'd suggest that you re-read the beginning of the QuickDraw chapter in
the Apple IIGS Toolbox Reference, Vol. II. You seem to be a bit confused as to
what QuickDraw II actually does. Checking out IIGS Technote #80, "QuickDraw II
Clipping" would also probably be a pretty good idea.


Jim Murphy                             "I know that you believe you understand
Internet:  ujmurphy@mcs.drexel.edu     what you think I said. But I am not sure
GEnie:     J.MURPHY7                   you realize that what you heard is not 
AOL:       Jim Murphy                  what I meant."

jb10320@uxa.cso.uiuc.edu (Jawaid Bazyar) (05/19/91)

ujmurphy@KING.MCS.DREXEL.EDU (Jim Murphy) writes (in a bit of haste):

>albert erroneously wrote:

>> quickdraw does draw faster to off-screen grafports because it doesn't have
>> to do the 2/4-bit conversion when drawing stuff on-screen (did i get this
>> right dave?).

>     Wrongo! When drawing to _any_ GrafPort (onscreen or otherwise), QuickDraw
>II uses the portInfo record (LocInfo structure) of the GrafPort to determine
>what kind of pixel map it is dealing with. 

  Right- but The original assertion stands, if it's reason doesn't.  QuickDraw
II draws much faster to off-screen grafports because off-screen grafports are
in fast RAM.

--
Jawaid Bazyar               |  "Twenty seven faces- with their eyes turned to
Graduated!/Comp Engineering |    the sky. I have got a camera, and an airtight
bazyar@cs.uiuc.edu          |     alibi.."
   Apple II Forever!        |  I need a job... Be privileged to pay me! :-)

ujmurphy@KING.MCS.DREXEL.EDU (Jim Murphy) (05/19/91)

albert, myself, and Jawaid wrote:

> ujmurphy@KING.MCS.DREXEL.EDU (Jim Murphy) writes (in a bit of haste):
>
>>albert erroneously wrote:
>
>>> quickdraw does draw faster to off-screen grafports because it doesn't have
>>> to do the 2/4-bit conversion when drawing stuff on-screen (did i get this
>>> right dave?).
>
>>    Wrongo! When drawing to _any_ GrafPort (onscreen or otherwise), QuickDraw
>>II uses the portInfo record (LocInfo structure) of the GrafPort to determine
>>what kind of pixel map it is dealing with.
>
>  Right- but The original assertion stands, if it's reason doesn't.  QuickDraw
>II draws much faster to off-screen grafports because off-screen grafports are
>in fast RAM.
>
>--
>Jawaid Bazyar               |  "Twenty seven faces- with their eyes turned to
>Graduated!/Comp Engineering |    the sky. I have got a camera, and an airtight
>bazyar@cs.uiuc.edu          |     alibi.."
>   Apple II Forever!        |  I need a job... Be privileged to pay me! :-)

     Well, what I said still stands. The reason I responded in that manner is
that albert was having some serious conceptual problems with how QD II handles
offscreen GrafPorts in weeks past. I think he is still having problems with
QD II.

     It seems that everyone believes that by using offscreen GrafPorts, your
programs will magically run faster. This is not the case, even with the fact
that offscreen pixImages are in fast RAM. It's only a _perceived_ speedup.
Sure, the original draw to an offscreen pixImage would occur at the current
speed of the fast RAM. But the PPToPort that transfers the pixImage to screen
RAM is working with the slow $E1 bank (ok, sure, you can use fUseShadowing).
The whole purpose of offscreen GrafPorts is to hide the fact that a screen
update is a discontinuous series of lines/fills/paints. It is just a technique
to hide this fact from the user.

Jim Murphy                             "I know that you believe you understand
Internet:  ujmurphy@mcs.drexel.edu     what you think I said. But I am not sure
GEnie:     J.MURPHY7                   you realize that what you heard is not 
AOL:       Jim Murphy                  what I meant."

acmfiu@serss0.fiu.edu (ACMFIU) (05/23/91)

i am confused about QuickDraw II. however, i'm less confused now than
before. i have read, reread, reread, etc. both the QD intro and the
Tech Note on clipping. both have helped. i think i just misinterpreted a reply
dave lyons gave me once.

jim, you're correct about the reason for off-screen grafports. that's
exactly why i use them.

albert