Люди придумали ФИГУРЫ с событиями, а Я - как у MNG формата, придумал картинки с событиями. Не rect, а определение цвета. Не лагает.
http://solovei95.github.com/jng/dev/
Алгоритм очень сложный, советую изучить внимательно и найти баги (по возможности пофиксить).