Drawing directly on the screen (frame buffer) is actually much faster than using X when you are using Broadcom's VideoCore (OpenVG) library. The major resources you need to look at, including examples and source code, are already pre-installed on Rapsberry Pi. For example, try this in console mode:
You will see a full screen GUI is shown. You may also want to look at a very nice wrapper library that makes using OpenVG much easier, which includes additional very nice examples.
For starting up a program automatically, you can add it in your
/etc/rc.local file, just before
exit 0, like this:
if [ "$_IP" ]; then
printf "My IP address is %s\n" "$_IP"
/your/path/your_fancy_gui &>/dev/null &
Note you need to use
& to put the program in the background, or the system boot sequence would be stopped there until you program quits.