Added line_join::miter_or_bevel with old behavior of line_join::miter and changed behavior of line_join::miter so that it now always miters (within an implementation defined limit).
Fixed a long-standing bug with the window where the addition of the menu was eating 20 pixels of client rect space; now the window properly resizes itself when the menu is added so it gets the desired initial size. Renamed the overload of make_surface that creates an image_surface to be make_image_surface and to return the proper type. Added rgba_color::transparent_black. Added compositing_operation::default_op and set it to over. Renamed compositing_operation::xor_compositing_operation to compositing_operation::xor_op. Added an operator*(const rgba_color&, double) to allow easier pre-multiplied alpha setting. Added surface::map_to_image() to simplify the case where you want to map the whole surface. Added a function to test out the various compositing_operators.