From: Shawn Jefferson (sjefferson_at_sd62.bc.ca)
Date: 2003-09-04 17:37:31
> 4. mask is not really needed: > > if (creg != BAKCOL(bmp->mode)) { > data |= (creg+1) << plot4cshift[bit]; > } This doesn't work (as far as I can tell), since my bit pattern in creg may be 01, 10, or 11. That's why I turn off the pixel to be painted and then repaint it after. Or am I missing something here? > 5. In fact, it is also possible to remove the data variable. See above. > 6. The multiplication will kill your performance, so I would try to work > around it. > > 7. Calling a subroutine for each pixel passing 4 parameters over the stack > is a performance problem for itself. I would suggest to use nested loops > instead that plot whole rows or the complete picture. Doing this, it > would also be possible to eliminate the multiplication (except for the > start). Good points, but I don't see much way around it for a generic plot function that will accept arbitrary bitmap sizes. This is for a general purpose graphics library for the Atari, not fully optimized for a particular purpose. I don't see any way around these two issues with this particular function. >1. and 2. are mentioned explicitly in the docs (coding.xxxx), you may want to >(re-)read this document. The x and y values are signed ints because I copied this function from the one that does clipping, and then removed all the clipping code. I will make them unsigned, since out of bounds values with this function don't make sense. As for the pre-increment, I have never really understood how or why you would use it, and in all examples of C code I have seen, the post-increment operator is used. Old habits are hard to break. I'll try that in the code as well. Thanks for you help, David and Ullrich! ¯ Shawn Jefferson ---------------------------------------------------------------------- To unsubscribe from the list send mail to majordomo_at_musoftware.de with the string "unsubscribe cc65" in the body(!) of the mail.
This archive was generated by hypermail 2.1.3 : 2003-09-04 17:40:13 CEST