[comp.sys.mac.programmer] OpenCPort

mbrady@mmm.UUCP (Mark W. Brady) (03/22/89)

I am having problems with a call to OpenCPort. In particular, it is
causing my mac to crash. The relevant code segment looks like:

{ Initialize for offscreen pixel map. }
	  devHandle := NewGDevice( LongInt(-1), LongInt(-1) );
		IF devHandle = GDHandle(0) THEN SysBeep(5);
		SetDeviceAttribute( DevHandle, 0, TRUE ); { sets gdDevType (ie 0) to color }
		devHandle^^.gdType := 2;     { direct color device }
		WITH devHandle^^.gdPMap^^ DO BEGIN
                        rowBytes := 4*640;
			SetRect( bounds, 0, 0, 640, 480 );
			pmVersion := 0;
			packType := 1;
			packSize := 0;
			hRes := 72; { This is just a guess!!! }
			vRes := 72; { This is just a guess!!! }
			pixelType := 16;
			pixelSize := 32;
			cmpCount := 3;
			cmpSize := 8;
			planeBytes := 0;
			pmTable := CTabHandle(0);
			pmReserved := 0
		END;
		{ WZ1 }	
		saveDevice := GetGDevice;
		SetGDevice( devHandle );
		offPort := CGrafPtr( NewPtr( SizeOf( CGrafPtr ) ) );
		Debugger;
		OpenCPort( offPort );
		SetGDevice( saveDevice );

The crash occurs at the call to OpenCPort. As you may know, OpenCPort
creates a port for the current device. I am setting the current device 
to one used as an off screen pix map. This may be a wierd device but it
is probably not my problem since when I delete the call to SetGDevice
( hence allowing the screen be the device ) I still get a crash? Does 
anyone have some experience here which could shed some light on this 
problem?

Another question regarding this code segment: what meaning do vRes and
hRes have in an off screen pix map?

Thanks for your advice.

skip@claris.com (Brian Schipper) (03/23/89)

In article <1244@mmm.UUCP> mbrady@mmm.UUCP (Mark W. Brady) writes:
>I am having problems with a call to OpenCPort. In particular, it is
>causing my mac to crash. The relevant code segment looks like:

>		offPort := CGrafPtr( NewPtr( SizeOf( CGrafPtr ) ) );
                                                     ^^^^^^^^
Oops, I think you want SizeOf( CGrafPort ).

Brian


-- 
Internet: skip@claris.com	             Applelink: SCHIPPER1
UUCP: {ames,apple,decwrl,sun}!claris!skip    Phone: 415-960-2618