• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Re: Question regarding NSView's drawRect
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Re: Question regarding NSView's drawRect


  • Subject: Re: Re: Question regarding NSView's drawRect
  • From: "David Chan" <email@hidden>
  • Date: Tue, 31 Oct 2006 11:35:29 +0800

Thank you for the replies guys. I think reloading and releasing the
data everytime drawRect is called will harm the performance and that
will be undesirable. I will try to cache the drawing in NSImage and
monitor its memory usage.

Thanks..

On 10/30/06, Ricky Sharp <email@hidden> wrote:

On Oct 30, 2006, at 2:21 AM, Dominik Pich wrote:

> DrawRect will be called whenever at least a portion of a view is
> visible (e.g. if it WAS hidden by an overlapping window)
> Try not to intercept those calls but always honor draw requests.

Exactly.

> If you really draw the same very often, cache your drawing in an
> NSImage and then blit only that onscreen.

Or, since the original poster was concerned about memory usage, you
can always have drawRect: do this:

- (void)drawRect:(NSRect)aRect
{
     // load all images here and build up drawing objects (colors,
attributes for text, etc.)

     // do drawing

     // release images, drawing objects, etc.
}

This, of course, will incur a performance penalty.

--
> Am Oct 30, 2006 um 8:28 AM schrieb David Chan:
>
>> Hi all, I have a question regarding NSView. I have an application
>> that
>> keep many subclassed NSView objects. Users shall be able to navigate
>> around and depending on their  action, certain NSView objects will be
>> shown and other will be hidden or moved to other window
>>
>> Now.. I actually only need to use drawRect once for every object -
>> when I first created the objects. I will neither need to scroll
>> nor do
>> anything that will require redrawing of the NSView objects. By right,
>> it should be safe to release all the image data objects I use after
>> the drawRect returns; and that is my intention in order to minimize
>> the memory usage. But it seems that there are certain occasions where
>> the Application would call drawRect on its own. This will be a
>> problem
>> because all the image data will no longer be there.
>>
>> So my question is.. Is it possible for me to intercept this so that
>> the drawRect will not be called? Or maybe there can be other
>> workaround so that my App will not need to redraw the NSView
>> unnecessarily?

___________________________________________________________
Ricky A. Sharp         mailto:email@hidden
Instant Interactive(tm)   http://www.instantinteractive.com


_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden


References: 
 >Question regarding NSView's drawRect (From: "David Chan" <email@hidden>)
 >Re: Question regarding NSView's drawRect (From: Dominik Pich <email@hidden>)
 >Re: Question regarding NSView's drawRect (From: Ricky Sharp <email@hidden>)

  • Prev by Date: Re: Re: Scrolling text in Status Item - adding a menu
  • Next by Date: Re: [SOLVED] How to provide a custom name for an untitled document?
  • Previous by thread: Re: Question regarding NSView's drawRect
  • Next by thread: Bindings master/detail question
  • Index(es):
    • Date
    • Thread