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.

    Thanks!



  • @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

    https://github.com/pseuudonym404/tuxracer-touch



  • 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:

    1. sudo apt install libsdl2-dev
      clickable create
      I chose option [7] main-cpp - C++/QML App (built using CMake with a main.cpp)

    2. 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.

    3. 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:
      add_executable(${PROJECT_NAME} main.cpp)
      find_package(SDL2 REQUIRED)
      include_directories(${SDL2_INCLUDE_DIRS})
      set(SDL2_LIBRARIES "-lSDL2")
      target_link_libraries(${PROJECT_NAME} ${SDL2_LIBRARIES})

    4. 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:

    #include <SDL.h>

    int main(int argc, char *argv[])
    {
    SDL_Init(SDL_INIT_VIDEO);

    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);
    SDL_RenderClear(renderer);
    SDL_RenderPresent(renderer);

    SDL_Delay(5000);

    SDL_DestroyWindow(window);
    SDL_Quit();

    return 0;
    }



  • @Craig any news regarding your port of SDL game ?



  • Some of you may find these demos usable:
    https://gitlab.com/zub2/SDLDemo
    https://gitlab.com/zub2/MirGLESDemo

    However with the Mir upgrade things should become a bit easier as regular Wayland-compiled SDL stuff should start working there. That is if I understand it correctly.



  • @Craig I just came across this thread and tried out what you mentioned. You'll need to bundle sdl2 with your app to be able to use it (Ubuntu Touch doesn't have it preinstalled). But it looks like @zubozrout 's demo might be a good place to start for that.