Transparency Layer Slowdowns
As the documentation mentions, a transparency layer allows subsequent drawing to be rendered in a separate, fully transparent buffer before being composited to the destination context. In the absence...
View ArticleSSE Optimized Compositing
As part of a graphics API I’ve been working on (for my own use, it’s hardly ready for production,) I decided to try learning SSE optimization by making the compositing routine faster. I came up with an...
View ArticleKey Value Observing Improvements
Key value observing is quite a useful tool, no doubt about it. But it has a singularly annoying manner of informing the observer of a change. The -[NSObject...
View ArticleKey Value Observing Improvements v1.2
Hot on the heels of the 1.1 bug fix release comes version a freshly rewritten 1.2 with API cleanup, bug fixes, and a great new feature. Lately, I’ve been using observers to allow an object to observe...
View ArticleKey Value Observing Improvements v1.2.2
Quick bug fix update: 1.2.2 Fixes a crash due to a missing implementation of __KVOAdditions__dealloc__original__ on NSObject. 1.2.1 now runs on the iPhone. The new updates are in SVN at...
View ArticleUnits of mach_absolute_time()
As programmers on OS X are well aware, the units of mach_absolute_time() have been nanoseconds since 10.2, although this was only documented since 10.5. As the iPhone runs a slimmed down version of OS...
View ArticleHouses in Minecraft
So I’ve been playing Minecraft, focusing mainly on the creative aspect, although I play the new Beta client and run my own server locally so I get the features added post-classic. I’ve turned off...
View ArticleCubic Spline Interpolation
Cubic spline interpolation is a simple way to obtain a smooth curve from a set of discrete points (knots). It has both C1 (first derivative) and C2 (second derivative) continuity, enabling it to...
View ArticleWhen you need std::remove_const
I ran across an interesting case where I needed to use std::remove_const to ensure a template parameter wasn’t const by default. I had something like this: const Matrix<4> m4 = Identity;...
View ArticleUnderstanding Memory: Part 1
This article is meant for programmers who have some familiarity with writing and compiling simple code in C/C++. It assumes the reader knows basic data types like int and double and how to define and...
View Article