[quote author=James C4S link=topic=165382.msg1234148#msg1234148 date=1368054226]
epepke:
What I would like to find, or build if necessary, is something quite like the original QuickDraw for the Mac with color extensions.
The Arduino Uno has 2K of RAM while the Mega boards has 8K. This should be a serious consideration in any implementation with something graphics related.
You might be looking more for a board based on a microprocessor instead of the Arduino's microcontroller[/quote]
Please accept my apologies, but I'm struggling to understand this as a caveat, if indeed it is.
I admit that I am new to TFTs, but as far as I can tell from the one I have, you set the XY and the direction of scan, and then you send pixel colors until you stop. These colors are laid down sequentially. Of course, there is raster memory, but that is in the TFT, and I don't have to worry about it, as I don't need transfer modes other than copy.
It's a simple scanline algorithm; the only complexity is in the weaving. Bresenham line-drawers, which I've seen in some of the libraries I've downloaded, require one Bresenham runner. With polygons (actually combinations of lines and elliptical curves, for which there is also a Bresenham algorithm) I require 2, and clipping to a clip path requires an extra set of 2. This is multiplied by the number of active extents, but this is always 1 for convex structures. Concave structures require more memory, sometimes, but I should note at this point that even Silicon Graphics didn't implement concave scanline conversion. Patterns are done while assembling the scan line, and if I limit it to original QuickDraw patterms, that means one 16-bit integer in memory. Furthermore, as I'll be using pointers, the memory in use during the scanline conversion will be smaller than expected compared to most line-drawing algorithms I've seen per vertex/runner. Fat lines do not significanly increase memory, though they require, say, a 6-sided polygon to represent a fat line using rectangular pens, or a 4-sided polygon for butt caps. However, the vertices can be generated on the fly, with only 3 in memory at once.
So I don't really see how 2K is any kind of serious limitation. It might be a limitation for someone wanting to use the graphics library if they want to do something hideously complex, but I figure they can either do on-the-fly generation or keep complex polygons in something like an SD card.
I do recall that the original QuickDraw had a 3K data structure, but 1) that was for some complex CopyBits operations that really aren't necessary, and 2) 3K was purely arbitrary and could easily be reduced.
As for the rest, I'm really not all that conscious of nomenclature. I'm 51, and I recall when the world's most powerful computers were nothing compared to an Arduino. So it isn't very important to me whether something is called a processor or a controller or a hoojimongle, and I get enough word-based thought from politics. I have been thinking about a Raspberry Pi for some time, and while I find it really impressive as a concept and implementation, I also find it somewhat baroque. The last time I was doing the microprocessor thing was about 1995, and the only stable platform I could find was the MC86HC11 (if memory serves), and it kind of sucked. When I was able to find a nice programmable chip with on-board persistent memory (I was even willing to put up with the UV window), and enough pins including on-board A-D conversion, I'd get an engineering sample and then be told by the manufacturer that they were going to stop production in a few months, which rather shell-shocked me. A small-time Joe such as I simply does not have the clout to entice a big manufacturer to keep making what I want.
When I saw the Arduino (accidentally, in a Radio Shack of all places), I said, "That's it." The capabilities and the price seemed to me about right. I ordered online a small Arduino with a break-out board for $10, a pittance, and the chip itself seems to be $3 in unit quantities. I got an Esplora and an Uno for prototyping. I noticed that functionally similar chips were made in different form factors, even by different manufacturers, and I figured that the Arduino community in general had enough clout to keep these things made for a while. So I remembered many things I had wanted to do decades ago but which were not feasible. I was genuinely excited. It reminded me of how, when I was a kid, we read Radio Electronics and Popular Electronics and ordered stuff from Poly Paks, Herbach and Rademan, and later Jameco and Digi-Key. It had depressed me that this kind of spirit seemed to have gone away for a couple of decades (except in just software for commodity computers), because I think it's an essentially healthy thing for the future. Seeing the Arduino tempered my cynicism, and I have been hopeful.