Our scheme may appears a bit unusual, basically we want the most-common calls AddLine AddRect etc. to not have to perform any check so we always have a command ready in the stack. The cost of figuring out if a new command has to be added or if we can merge is paid in those Update** functions only.
source not stored for this graph (policy: none)