hmm.. Just went back to testing and noticed I had made one mistake. I had forgot to tell Brushes to be hardware brushes, which makes them take the advantage of SDL. By doing that, 10k rectangles when drawn took 9886 of time to move the test distance, while moving 10k similar sized hardware brushes with SDL took only about 8900 units of time. That was surprising, didnt expect using brushes to be faster than using plain drawing.