C++ and SDL with Clickable. A little help please.
I've written a program in C++ and SDL2 and would like to publish it to the Ubuntu Touch open store. I have installed clickable and I've gotten the "Hello World" screen on my tablet. I added the SDL dependencies to the clickable.json file.
Could someone be kind enough to tell me how/where to put my C++ files and what settings to make in the CMakeLists.txt file? I have four .cpp and four .h files. I wont need to use Qml.
When I run clickable it almost compiles, but it appears to not be able to link to the SDL libraries.
@craig hi, I've pinged some people who can help you
I'm interested in this too. SDL seems to be the only way to get GPU acceleration on Ubuntu Touch currently. A step by step tutorial on how to set up an SDL project would be awesome.
I remember a great app witch uses SDL2 , but seems not using clickable wrapper
Thanks to all for your input and suggestions so far. I ran searches online for "CMakeLists.txt SDL tutorial", and read many tutorials. This is what I have so far that seems to almost work:
sudo apt install libsdl2-dev
I chose option  main-cpp - C++/QML App (built using CMake with a main.cpp)
I replaced the main.cpp file in my project directory with a very small 512 byte SDL test program. It just produces a blank screen for 5 seconds and then quits. I compiled and tested it with the Code::Blocks IDE and it works fine there.
I added these lines to my CMakeLists.txt file in my project directory and finally I got it to link up with the SDL library:
I run clickable from my project directory and it compiles the program just fine and sends it to my Ubuntu Touch tablet where I see the logo.svg flash on the screen for only 1 second. Finally, no error messages not being able to link up with SDL. However, I don't get the expected blank screen for 5 seconds. The logo.svg shows on the screen along with my project name for only 1 second, but it seems to quit before running the program which should show a blank screen for 5 seconds. On my tablet I now have the logo.svg icon displayed as one of my apps. When I click on it the icon shows along with the app name for about 1 second and then closes.
Does anyone know what I need to tweak to get SDL to run on UT through clickable? Then, like Wendigo said, we will have a working SDL recipe for UT/clickable for other app developers.
Here's the source of the main.cpp:
int main(int argc, char *argv)
SDL_Window *window = SDL_CreateWindow( "SDL2Test", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, 0 );
SDL_SetWindowFullscreen( window, SDL_TRUE );
SDL_Renderer *renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_SOFTWARE);
SDL_SetRenderDrawColor(renderer, 255, 0, 0, SDL_ALPHA_OPAQUE);
@Craig any news regarding your port of SDL game ?
@zubozrout thanks for sharing, it works nicely. I've compiled sdl2 also in a project that only requires audio, i will post the source link here whenever i will publish it
for reference, it helps understand about clickable and dependencies : https://docs.ubports.com/en/latest/appdev/guides/dependencies.html
Thank you for your response. I ran "clickable create" and entered this option:
 main-cpp - C++/QML App (built using CMake with a main.cpp)
My project name is "mytest". I ran "clickable" and my USB connected tablet running Ubuntu Touch shows the app with "Hello World!". Good!
Next, I changed the main.cpp file so that is has the SDL test C++ code that you see in this posting. Also, I tried to make changes to the clickable.json file so the dependencies can be met, like so:
I saw clickable downloading the SDL2 files for armhf architecture. Looked good. But I get these error messages:
[ 90%] Linking CXX executable mytest
CMakeFiles/mytest.dir/main.cpp.o: In function
main': main.cpp:(.text+0xc): undefined reference toSDL_Init'
main.cpp:(.text+0x2e): undefined reference to `SDL_CreateWindow'
What should I adjust to get this test SDL test program working? Thanks!
I managed to build this fine (getting some warnings btw) but the app won't start. I get
Command 'echo "sleep 1s && ubuntu-app-launch zub.sdldemo_SDLDemo_0.2" | ssh phablet@ubuntu-phablet' returned non-zero exit status 255.
And I can neither grab any log (neither with
clickable logsnor with Logviewer) as the log file doesn't exist.
@mymike not sure but i had that also, try replacing in apparmor file
@mymike what do you think about turning your demo into a template for clickable? It could be really great way to get more people creating/porting SDL apps.
@bhdouglass of course! but I don't know how that app work, neither how to make a clickable template. I'll may have a look at it when I'll find some time, but if someone else wants to do it before me, no problem, just do it!
@lduboeuf just for sharing, published a sample app that using only SDL2 audio https://github.com/lduboeuf/sfxr-qt. I've used template from @zubozrout SDL2 and it works fine.
On my device, sounds are not good quality ( some noises ) , not sure if it is hardware pb or something in-between ( on Desktop it plays fine ).