<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: &#8216;Discrete&#8217; NSLevelIndicatorCell too slow</title>
	<atom:link href="http://toxicsoftware.com/discrete-nslevelindicatorcell-too-slow/feed/" rel="self" type="application/rss+xml" />
	<link>http://toxicsoftware.com/discrete-nslevelindicatorcell-too-slow/</link>
	<description>RANDOMIZE USR 0</description>
	<lastBuildDate>Thu, 17 Dec 2009 15:12:52 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: schwa</title>
		<link>http://toxicsoftware.com/discrete-nslevelindicatorcell-too-slow/comment-page-1/#comment-22037</link>
		<dc:creator>schwa</dc:creator>
		<pubDate>Tue, 27 Jun 2006 14:43:47 +0000</pubDate>
		<guid isPermaLink="false">http://toxicsoftware.com/discrete-nslevelindicatorcell-too-slow/#comment-22037</guid>
		<description>&lt;p&gt;Hey Ken,&lt;br&gt;&lt;br&gt;I took out my code and replaced it with your simple clipping fix.&lt;br&gt;&lt;br&gt;It certainly improved performance over the non-posed version but I think the caching version is still the fastest. Which is a shame, as your code is certainly cleaner and simpler.&lt;br&gt;&lt;br&gt;You can compare all three versions here: &lt;a href=&quot;http://toxic-public.googlecode.com//trunk/Misc/CachingLevelIndicator/Output/&quot;&gt;http://toxic-public.googlecode.com//trunk/Misc/...&lt;/a&gt;&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Hey Ken,<br /><br />I took out my code and replaced it with your simple clipping fix.<br /><br />It certainly improved performance over the non-posed version but I think the caching version is still the fastest. Which is a shame, as your code is certainly cleaner and simpler.<br /><br />You can compare all three versions here: <a href="http://toxic-public.googlecode.com//trunk/Misc/CachingLevelIndicator/Output/"></a><a href="http://toxic-public.googlecode.com//trunk/Misc/.." rel="nofollow">http://toxic-public.googlecode.com//trunk/Misc/..</a>.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: schwa</title>
		<link>http://toxicsoftware.com/discrete-nslevelindicatorcell-too-slow/comment-page-1/#comment-425</link>
		<dc:creator>schwa</dc:creator>
		<pubDate>Tue, 27 Jun 2006 13:43:47 +0000</pubDate>
		<guid isPermaLink="false">http://toxicsoftware.com/discrete-nslevelindicatorcell-too-slow/#comment-425</guid>
		<description>&lt;p&gt;Hey Ken,&lt;/p&gt;

&lt;p&gt;I took out my code and replaced it with your simple clipping fix.&lt;/p&gt;

&lt;p&gt;It certainly improved performance over the non-posed version but I think the caching version is still the fastest. Which is a shame, as your code is certainly cleaner and simpler.&lt;/p&gt;

&lt;p&gt;You can compare all three versions here: http://toxic-public.googlecode.com//trunk/Misc/CachingLevelIndicator/Output/&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Hey Ken,</p>

<p>I took out my code and replaced it with your simple clipping fix.</p>

<p>It certainly improved performance over the non-posed version but I think the caching version is still the fastest. Which is a shame, as your code is certainly cleaner and simpler.</p>

<p>You can compare all three versions here: <a href="http://toxic-public.googlecode.com//trunk/Misc/CachingLevelIndicator/Output/" rel="nofollow">http://toxic-public.googlecode.com//trunk/Misc/CachingLevelIndicator/Output/</a></p>]]></content:encoded>
	</item>
	<item>
		<title>By: ken</title>
		<link>http://toxicsoftware.com/discrete-nslevelindicatorcell-too-slow/comment-page-1/#comment-22036</link>
		<dc:creator>ken</dc:creator>
		<pubDate>Tue, 27 Jun 2006 07:52:30 +0000</pubDate>
		<guid isPermaLink="false">http://toxicsoftware.com/discrete-nslevelindicatorcell-too-slow/#comment-22036</guid>
		<description>&lt;p&gt;I think I recognize this one..&lt;br&gt;&lt;br&gt;Try writing a subclass with this as its only implementation:&lt;br&gt;&lt;br&gt;- (void)drawWithFrame:(NSRect)cellFrame inView:(NSView *)controlView {&lt;br&gt;    [NSGraphicsContext saveGraphicsState];&lt;br&gt;    NSRectClip(cellFrame);&lt;br&gt;    [super drawWithFrame:cellFrame inView:controlView];&lt;br&gt;    [NSGraphicsContext restoreGraphicsState];&lt;br&gt;}&lt;br&gt;&lt;br&gt;The issue is with CG transparency layers (see CGContextBeginTransparencyLayer).  They&#039;re a nice, clean way to a bunch of drawing, then put a shadow or a focus ring on the whole thing.  Problem is, when you composite a transparency layer, it&#039;ll do calculations over the whole clip.  It happens that when a cell is drawn in a tableview, the only clip is to the whole table.  &lt;br&gt;&lt;br&gt;That&#039;s, uh, bad.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>I think I recognize this one..<br /><br />Try writing a subclass with this as its only implementation:<br /><br />- (void)drawWithFrame:(NSRect)cellFrame inView:(NSView *)controlView {<br />    [NSGraphicsContext saveGraphicsState];<br />    NSRectClip(cellFrame);<br />    [super drawWithFrame:cellFrame inView:controlView];<br />    [NSGraphicsContext restoreGraphicsState];<br />}<br /><br />The issue is with CG transparency layers (see CGContextBeginTransparencyLayer).  They&#39;re a nice, clean way to a bunch of drawing, then put a shadow or a focus ring on the whole thing.  Problem is, when you composite a transparency layer, it&#39;ll do calculations over the whole clip.  It happens that when a cell is drawn in a tableview, the only clip is to the whole table.  <br /><br />That&#39;s, uh, bad.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: ken</title>
		<link>http://toxicsoftware.com/discrete-nslevelindicatorcell-too-slow/comment-page-1/#comment-422</link>
		<dc:creator>ken</dc:creator>
		<pubDate>Tue, 27 Jun 2006 06:52:30 +0000</pubDate>
		<guid isPermaLink="false">http://toxicsoftware.com/discrete-nslevelindicatorcell-too-slow/#comment-422</guid>
		<description>&lt;p&gt;I think I recognize this one..&lt;/p&gt;

&lt;p&gt;Try writing a subclass with this as its only implementation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;(void)drawWithFrame:(NSRect)cellFrame inView:(NSView *)controlView {
[NSGraphicsContext saveGraphicsState];
NSRectClip(cellFrame);
[super drawWithFrame:cellFrame inView:controlView];
[NSGraphicsContext restoreGraphicsState];
}&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The issue is with CG transparency layers (see CGContextBeginTransparencyLayer).  They&#039;re a nice, clean way to a bunch of drawing, then put a shadow or a focus ring on the whole thing.  Problem is, when you composite a transparency layer, it&#039;ll do calculations over the whole clip.  It happens that when a cell is drawn in a tableview, the only clip is to the whole table.&lt;/p&gt;

&lt;p&gt;That&#039;s, uh, bad.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>I think I recognize this one..</p>

<p>Try writing a subclass with this as its only implementation:</p>

<ul>
<li>(void)drawWithFrame:(NSRect)cellFrame inView:(NSView *)controlView {
[NSGraphicsContext saveGraphicsState];
NSRectClip(cellFrame);
[super drawWithFrame:cellFrame inView:controlView];
[NSGraphicsContext restoreGraphicsState];
}</li>
</ul>

<p>The issue is with CG transparency layers (see CGContextBeginTransparencyLayer).  They&#8217;re a nice, clean way to a bunch of drawing, then put a shadow or a focus ring on the whole thing.  Problem is, when you composite a transparency layer, it&#8217;ll do calculations over the whole clip.  It happens that when a cell is drawn in a tableview, the only clip is to the whole table.</p>

<p>That&#8217;s, uh, bad.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: schwa</title>
		<link>http://toxicsoftware.com/discrete-nslevelindicatorcell-too-slow/comment-page-1/#comment-22035</link>
		<dc:creator>schwa</dc:creator>
		<pubDate>Tue, 27 Jun 2006 02:59:12 +0000</pubDate>
		<guid isPermaLink="false">http://toxicsoftware.com/discrete-nslevelindicatorcell-too-slow/#comment-22035</guid>
		<description>&lt;p&gt;Anything I post in my public subversion repository is public domain unless stated overwise. Do with it what you will.&lt;br&gt;&lt;br&gt;I should make an exception for you though Chrisâ€¦ How about commercial - $1,000,000 per seat?&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Anything I post in my public subversion repository is public domain unless stated overwise. Do with it what you will.<br /><br />I should make an exception for you though Chrisâ€¦ How about commercial &#8211; $1,000,000 per seat?</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Chris</title>
		<link>http://toxicsoftware.com/discrete-nslevelindicatorcell-too-slow/comment-page-1/#comment-22034</link>
		<dc:creator>Chris</dc:creator>
		<pubDate>Tue, 27 Jun 2006 02:56:09 +0000</pubDate>
		<guid isPermaLink="false">http://toxicsoftware.com/discrete-nslevelindicatorcell-too-slow/#comment-22034</guid>
		<description>&lt;p&gt;License on your CCachingLevelIndicatorCell?&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>License on your CCachingLevelIndicatorCell?</p>]]></content:encoded>
	</item>
	<item>
		<title>By: schwa</title>
		<link>http://toxicsoftware.com/discrete-nslevelindicatorcell-too-slow/comment-page-1/#comment-22033</link>
		<dc:creator>schwa</dc:creator>
		<pubDate>Tue, 27 Jun 2006 02:30:03 +0000</pubDate>
		<guid isPermaLink="false">http://toxicsoftware.com/discrete-nslevelindicatorcell-too-slow/#comment-22033</guid>
		<description>&lt;p&gt;Thanks for the support. It shouldn&#039;t be too difficult to fix I&#039;d imagine.&lt;br&gt;&lt;br&gt;Awesome treehouse(s) by the way.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Thanks for the support. It shouldn&#39;t be too difficult to fix I&#39;d imagine.<br /><br />Awesome treehouse(s) by the way.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: corbin</title>
		<link>http://toxicsoftware.com/discrete-nslevelindicatorcell-too-slow/comment-page-1/#comment-22032</link>
		<dc:creator>corbin</dc:creator>
		<pubDate>Tue, 27 Jun 2006 02:12:29 +0000</pubDate>
		<guid isPermaLink="false">http://toxicsoftware.com/discrete-nslevelindicatorcell-too-slow/#comment-22032</guid>
		<description>&lt;p&gt;You rock for logging this bug AND putting the link into your page. More people need to do this; it will help issues like this get fixed. thanks!&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>You rock for logging this bug AND putting the link into your page. More people need to do this; it will help issues like this get fixed. thanks!</p>]]></content:encoded>
	</item>
	<item>
		<title>By: schwa</title>
		<link>http://toxicsoftware.com/discrete-nslevelindicatorcell-too-slow/comment-page-1/#comment-419</link>
		<dc:creator>schwa</dc:creator>
		<pubDate>Tue, 27 Jun 2006 01:59:12 +0000</pubDate>
		<guid isPermaLink="false">http://toxicsoftware.com/discrete-nslevelindicatorcell-too-slow/#comment-419</guid>
		<description>&lt;p&gt;Anything I post in my public subversion repository is public domain unless stated overwise. Do with it what you will.&lt;/p&gt;

&lt;p&gt;I should make an exception for you though Chrisâ€¦ How about commercial - $1,000,000 per seat?&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Anything I post in my public subversion repository is public domain unless stated overwise. Do with it what you will.</p>

<p>I should make an exception for you though Chrisâ€¦ How about commercial &#8211; $1,000,000 per seat?</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Chris</title>
		<link>http://toxicsoftware.com/discrete-nslevelindicatorcell-too-slow/comment-page-1/#comment-418</link>
		<dc:creator>Chris</dc:creator>
		<pubDate>Tue, 27 Jun 2006 01:56:09 +0000</pubDate>
		<guid isPermaLink="false">http://toxicsoftware.com/discrete-nslevelindicatorcell-too-slow/#comment-418</guid>
		<description>&lt;p&gt;License on your CCachingLevelIndicatorCell?&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>License on your CCachingLevelIndicatorCell?</p>]]></content:encoded>
	</item>
</channel>
</rss>
