The reason for the polygon brush to be different than the other brushes, is that it is a lot faster to draw using graphicscard primitives instead of generating a texture and drawing that. At least that is what I'm told :) I have not tested it.
To create a polygon texture you simply have to use your imagination. One way of creating a simply polygon algorithm is to draw lines from one point to the next with the thickness of a border. Then you fill the polygon texture with white by iterating each
pixel in the texture and see if the current pixel is inside or outside the border. There are several ways of checking if the pixel is inside the polygon or not, it all depends on what requirements you have to the texture. Should it support holes, should it
be optimized for convex polygons and so on.
The simples way is to check if you have passed the border of the polygon. Since you made your border beforehand you can simply check if you have gone from a black pixel (border) to an uncolored pixel (inside polygon). When you reach the border again, you
will be outside the polygon.