Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

swimlikehell

macrumors member
Original poster
Aug 31, 2006
46
0
I know you will probaly thing i am stupid but i am just starting out so please help. I am trying to do multiple image functions using carbon and they all need CGContectRef. what was wondering was how i can go about finding that i am making a basic sketch program. any help will be much appreciated. Thanks
 

MrFrankly

macrumors regular
Jan 11, 2006
112
0
I'm not entirely sure what you're trying to do. Your description isn't totally clear. But you say you're just starting out. Writing graphics programs can be quite complex to start out with. Did you already try writing console applications, or just simple GUI applications?
 

swimlikehell

macrumors member
Original poster
Aug 31, 2006
46
0
i have done a little of both, the start of my code is this, im trying to find out what i need to do to call this function:


void MyColoredPatternPainting (CGContextRef myContext, CGRect rect)
{
CGPatternRef pattern;
CGColorSpaceRef patternSpace;
float alpha = 1,
width, height;
static const CGPatternCallbacks callbacks = {0, &MyDrawPattern, NULL};

CGContextSaveGState (myContext);
patternSpace = CGColorSpaceCreatePattern (NULL);
CGContextSetFillColorSpace (myContext, patternSpace);
CGColorSpaceRelease (patternSpace);

pattern = CGPatternCreate (NULL,
CGRectMake (0, 0, H_PSIZE, V_PSIZE),
CGAffineTransformMake (1, 0, 0, 1, 0, 0),
H_PATTERN_SIZE,
V_PATTERN_SIZE,
kCGPatternTilingConstantSpacing,
true,
&callbacks);

CGContextSetFillPattern (myContext, pattern, &alpha);
CGPatternRelease (pattern);
CGContextFillRect (myContext, rect);
CGContextRestoreGState (myContext);
}*/
 

kpua

macrumors 6502
Jul 25, 2006
294
0
Sounds like you're trying to do some lower level stuff, which is fine, but not to be attempted without some consulting the docs.

I suggest you search for "Graphics Context" within Xcode and look at the both the Cocoa and Quartz 2D references.

To answer your immediate question though, a CGContextRef for display on the screen cannot be created from the Quartz/CG APIs. You can either obtain the current graphics context from a Cocoa app using the following code:

Code:
CGContextRef myContext = [[NSGraphicsContext currentContext] graphicsPort];

... or you can obtain it from a Carbon HIView, but that code is too complicated to post here. You can find it in the documentation though.

Alternatively, you can create a bitmap image, OpenGL, or printing CGContextRef if that's what you intend to do. Again, look to the docs for those.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.