It is more efficient to do it that way, especially as BlitzMax was originally mainly designed around working with OpenGL, which is a state machine - ie you set the state of something like `current color` and it stays that way until you set it to something else. That way it is more efficient to access what color to use, rather than having to pass the color every single time with every single graphics command.
So yes, to do it `the old less efficient way`, you have to deliberately set the `current` color inbetween stuff to stop it interfering with things in an undesirable way. Or alternatively you can restructure your code with this in mind. Draw your image before the SetColor for example.
So yes, to do it `the old less efficient way`, you have to deliberately set the `current` color inbetween stuff to stop it interfering with things in an undesirable way. Or alternatively you can restructure your code with this in mind. Draw your image before the SetColor for example.