Not sure about this; for myself I would say that a graphics system that does not respect clipping with some primitives and does with some others is confusing (how to remember which is which? Does a textured triangle, which is both a blit and a primitive, respect clipping?)
Hmm, what about this: We are most probably going to have a family of "styled" drawing functions (where style may include dithering, font, bgcolor, transparency, quality), be it through some drawing context or otherwise. Let the "styled" functions respect clipping and the "crude" ones not. ("crude" probably means only blit, putpixel, rect).
Sounds logical, but my experience speaks differently (sorry). There are two technical arguments against this:
1. Doing clipping at lower levels is pretty easy while clipping higher-level primitives is much more challenging (clipping horizontal lines that form a rectangle is trivial; clipping the whole rectangle means ritual dances with vectors and the result might not be a triangle anymore).
2. Low-level primitives require clipping anyway (drawing over screen borders must be safe - unless you want the user to compute all clipping at higher levels, which is a pretty sadistic approach). Allowing the user to specify the rectangle manually brings no additional cost.
Best regards,
Jiri Dluhos