Re: Problem in the creation of Graphics context(NSGraphicsContext)
Re: Problem in the creation of Graphics context(NSGraphicsContext)
- Subject: Re: Problem in the creation of Graphics context(NSGraphicsContext)
- From: Richard Charles via Cocoa-dev <email@hidden>
- Date: Wed, 4 Mar 2020 10:00:48 -0700
I have a very similar setup. I tried the following.
NSBundle *bundle = [NSBundle mainBundle];
NSData *data = [NSData dataWithContentsOfFile:[bundle
pathForResource:@"AAScreenShot" ofType:@"jpg"]];
NSBitmapImageRep *imageRep = [NSBitmapImageRep imageRepWithData:data];
NSGraphicsContext *context = [NSGraphicsContext
graphicsContextWithBitmapImageRep:imageRep];
printf("Graphics Context %p\n", context);
Execute the above code and I get a graphics context when the window is in the
high resolution display. Move the window to the secondary normal resolution
display, execute the code, and I get another graphics context. You must be
doing something wrong.
Normally a graphics context is valid for a given display. When the window moves
from one display to another your app needs to detect this a pull another
context.
https://developer.apple.com/library/archive/documentation/GraphicsImaging/Conceptual/OpenGL-MacProgGuide/opengl_contexts/opengl_contexts.html
"A renderer change can occur when the user drags a window from one display to
another or when a display is attached or removed.”
This might not be true with an offscreen context which might remain valid
regardless of the display.
--Richard Charles
> On Mar 3, 2020, at 11:19 PM, Sravan Kumar Lakkimsetti via Cocoa-dev
> <email@hidden> wrote:
>
> Hi,
>
> In our product we use
> https://developer.apple.com/documentation/appkit/nsgraphicscontext/1529827-graphicscontextwithbitmapimagere?language=objc
> to create Graphics Context for drawing on top of image.
>
> This particular API returns null in some cases. One particular case is
> troubling us. Would like to know why this happens and how to resolve.
>
> Here is the problem.
> There are two monitors attached to Mac. Main display is retina display and
> secondary display is non-retina display. The application is moved from main
> display(retina display) to secondary display(non-retina display). In this
> case our application redraws the GUI(to use higher resolution images) In
> this process we are creating graphics context using the above api. This api
> returns null if the main display is retina and secondary display is
> non-retina.
>
> It would be helpful if anyone can suggest on how to identify why this api
> returns null
>
> Thanks
> Sravan
>
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden