I'm currently playing with my brand-new raspberry with adafruit's touch-tft and raspberry Cam.
I noticed, if I run raspivid -p, it displays the preview in a frame on top of the bash.
How can I create an application (java, python, c++(preferred)) to display a GUI without having to startx?
I'd love to use adafruit's touch-tft for a project, but startx needs a lot of resources. Of course it would be cool to have the touch-functionality too.
Edit:
Maybe I expressed myself a little bit confusing: I would like to create an application that doesn't need startx but has some kind of GUI.
The answers below aren't 100% ready to go but they pointed me to the right direction. Since I saw many similar questions I will try to give a step-by-step solution:
Setup your raspberry with adafruit's TFT: https://learn.adafruit.com/adafruit-pitft-28-inch-resistive-touchscreen-display-raspberry-pi/overview (you don't have to replace the TFT with HDMI as standart display)
be sure
FRAMEBUFFER=/dev/fb1 startxis running correctly on the TFT screen, I have my TV plugged in the HDMI port, this way I can use the bash on the TV screen and run x on the TFTFollow this tutorial to create your first pygame: http://www.pygame-doku.laymaxx.de/tut/intro/intro.html (you can just copy&paste,
wget ball.gif)Insert this 2 lines at the beggining: (github.com/notro/fbtft/wiki/Pygame)
import os os.environ["SDL_FBDEV"] = "/dev/fb1"If you want to test the touch-screen to, you can change Line 15: From:
if event.type == pygame.QUIT: sys.exit()To:
if event.type == pygame.MOUSEBUTTONDOWN: sys.exit()This will exit the application if you touch the screen
Save file e.g. pygame1.py and execute with
$python pygame1.py
You should now see a bouncing ball on your TFT while the HDMI output still displays the BASH on your TV (but it isn't active of course) touching the screen will exit the game if you completed step 6
Why I'm doing this? This way you can display a simple GUI with e.g. buttons to do some action, like turn your lights on/off if you use your RPI for home-control.
gedit.