Compare commits

...

11 Commits

Author SHA1 Message Date
e45b50befc try switching inserts before end for windows 2024-05-28 15:15:15 +02:00
77005cba4b sys and print what 2024-05-28 15:15:15 +02:00
c1af43ce54 switch cd to debug temp 2024-05-28 15:15:15 +02:00
2a94c72df9 try catch? 2024-05-28 15:15:15 +02:00
b13a87a405 hacky sdl 2024-05-28 15:15:15 +02:00
a5ec166794 fix lock recursion (on eg windows) 2024-05-28 15:09:37 +02:00
35a0d97170 only build tomato and its dependencies 2024-05-28 09:07:58 +02:00
d0ab985349 manually update vcpkg 2024-05-28 08:55:45 +02:00
b65b9b284b make the window default to 720p 2024-05-28 08:35:11 +02:00
18db2e3aaa forgot message3 2024-05-26 21:45:07 +02:00
46ceb2cd61 file2 refactor and tox filetransfer ported to file2 2024-05-26 21:40:15 +02:00
15 changed files with 68 additions and 24 deletions

View File

@ -7,7 +7,8 @@ on:
branches: [ master ]
env:
BUILD_TYPE: RelWithDebInfo
#BUILD_TYPE: RelWithDebInfo
BUILD_TYPE: Debug
BRANCH_NAME: ${{ github.head_ref || github.ref_name }}
jobs:
@ -28,7 +29,7 @@ jobs:
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
- name: Build
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} -j 4
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} -j 4 -t tomato
- name: Determine tag name
id: tag
@ -67,6 +68,12 @@ jobs:
with:
submodules: recursive
- name: update vcpkg
shell: bash
run: |
cd C:/vcpkg
git pull
- name: Install Dependencies
run: vcpkg install libsodium:x64-windows-static pthreads:x64-windows-static pkgconf:x64-windows
@ -82,7 +89,7 @@ jobs:
run: cmake -G Ninja -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows-static -DSDL3IMAGE_VENDORED=ON -DSDL3IMAGE_DEPS_SHARED=ON -DSDL3IMAGE_JXL=OFF -DSDL3IMAGE_AVIF=OFF -DPKG_CONFIG_EXECUTABLE=C:/vcpkg/installed/x64-windows/tools/pkgconf/pkgconf.exe
- name: Build
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} -t tomato
- name: Determine tag name
id: tag
@ -121,6 +128,12 @@ jobs:
with:
submodules: recursive
- name: update vcpkg
shell: bash
run: |
cd C:/vcpkg
git pull
- name: Install Dependencies
run: vcpkg install libsodium:x64-windows-static pthreads:x64-windows-static pkgconf:x64-windows
@ -136,7 +149,7 @@ jobs:
run: cmake -G Ninja -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows-static -DTOMATO_ASAN=ON -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded -DSDL3IMAGE_VENDORED=ON -DSDL3IMAGE_DEPS_SHARED=ON -DSDL3IMAGE_JXL=OFF -DSDL3IMAGE_AVIF=OFF -DPKG_CONFIG_EXECUTABLE=C:/vcpkg/installed/x64-windows/tools/pkgconf/pkgconf.exe
- name: Build
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} -j 4
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} -j 4 -t tomato
- name: Determine tag name
id: tag

View File

@ -27,7 +27,7 @@ jobs:
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
- name: Build
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} -j 4
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} -j 4 -t tomato
macos:
timeout-minutes: 10
@ -46,7 +46,7 @@ jobs:
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
- name: Build
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} -j 4
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} -j 4 -t tomato
windows:
timeout-minutes: 15
@ -58,6 +58,12 @@ jobs:
with:
submodules: recursive
- name: update vcpkg
shell: bash
run: |
cd C:/vcpkg
git pull
- name: Install Dependencies
run: vcpkg install libsodium:x64-windows-static pthreads:x64-windows-static pkgconf:x64-windows
@ -73,5 +79,5 @@ jobs:
run: cmake -G Ninja -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows-static -DSDL3IMAGE_VENDORED=ON -DSDL3IMAGE_DEPS_SHARED=ON -DSDL3IMAGE_JXL=OFF -DSDL3IMAGE_AVIF=OFF -DPKG_CONFIG_EXECUTABLE=C:/vcpkg/installed/x64-windows/tools/pkgconf/pkgconf.exe
- name: Build
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} -j 4
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} -j 4 -t tomato

View File

@ -8,12 +8,17 @@ if (NOT TARGET SDL3::SDL3)
#TODO: pic ?
FetchContent_Declare(SDL3
#[[
GIT_REPOSITORY https://github.com/libsdl-org/SDL
#GIT_TAG 0429f5d6a36fc35b551bcc2acd4a40c2db6dab82 # tip when looking
#GIT_TAG 14f584a94bfd49cf1524db75bf3c419fdf9436cd # tip 26-04-2024
GIT_TAG 06d6f2cb2518622593570985589700910cf4399f # 13-05-2024 - before
# made changes that break imgui release 1.90.6
#GIT_TAG 1103294d33f47ab4c697bb22a9cf27c79c658630 # tip 15-05-2024
]]
GIT_REPOSITORY https://github.com/Green-Sky/SDL.git
GIT_TAG windows_clipboard_fixes
FIND_PACKAGE_ARGS # for the future
)
FetchContent_MakeAvailable(SDL3)

View File

@ -152,7 +152,7 @@ void SendImagePopup::sendMemory(
// copy paste data to memory
original_data.clear();
original_data.insert(original_data.begin(), data, data+data_size);
original_data.insert(original_data.cend(), data, data+data_size);
if (!load()) {
std::cerr << "SIP: failed to load image from memory\n";

View File

@ -1,5 +1,6 @@
#include "./chat_gui4.hpp"
#include <exception>
#include <solanaceae/message3/components.hpp>
#include <solanaceae/tox_messages/components.hpp>
#include <solanaceae/contact/components.hpp>
@ -26,6 +27,8 @@
#include <fstream>
#include <iomanip>
#include <sstream>
#include <stdexcept>
#include <system_error>
#include <variant>
namespace Components {
@ -154,13 +157,30 @@ void ChatGui4::setClipboardData(std::vector<std::string> mime_types, std::shared
std::vector<const char*> tmp_mimetype_list;
std::lock_guard lg{_set_clipboard_data_mutex};
for (const auto& mime_type : mime_types) {
tmp_mimetype_list.push_back(mime_type.data());
_set_clipboard_data[mime_type] = data;
{
std::lock_guard lg{_set_clipboard_data_mutex};
for (const auto& mime_type : mime_types) {
tmp_mimetype_list.push_back(mime_type.data());
_set_clipboard_data[mime_type] = data;
}
// release lock, since on some platforms the callback is called immediatly
}
SDL_SetClipboardData(clipboard_callback, nullptr, this, tmp_mimetype_list.data(), tmp_mimetype_list.size());
try {
SDL_SetClipboardData(clipboard_callback, nullptr, this, tmp_mimetype_list.data(), tmp_mimetype_list.size());
} catch (const std::runtime_error& e) {
std::cerr << "CG error: setting clipboard data threw runtime_error!\n";
std::cerr << "what: " << e.what() << "\n";
} catch (const std::system_error& e) {
std::cerr << "CG error: setting clipboard data threw system_error!\n";
std::cerr << "what: " << e.what() << "\n";
} catch (const std::exception& e) {
std::cerr << "CG error: setting clipboard data threw exception!\n";
std::cerr << "what: " << e.what() << "\n";
} catch (...) {
std::cerr << "CG error: setting clipboard data threw!\n";
}
}
ChatGui4::ChatGui4(

View File

@ -41,7 +41,7 @@ ImageLoaderQOI::ImageResult ImageLoaderQOI::loadFromMemoryRGBA(const uint8_t* da
auto& new_frame = res.frames.emplace_back();
new_frame.ms = 0;
new_frame.data.insert(new_frame.data.cbegin(), img_data, img_data+(desc.width*desc.height*4));
new_frame.data.insert(new_frame.data.cend(), img_data, img_data+(desc.width*desc.height*4));
free(img_data);
return res;

View File

@ -47,7 +47,7 @@ ImageLoaderSDLBMP::ImageResult ImageLoaderSDLBMP::loadFromMemoryRGBA(const uint8
auto& new_frame = res.frames.emplace_back();
new_frame.ms = 0;
new_frame.data.insert(new_frame.data.cbegin(), (const uint8_t*)conv_surf->pixels, ((const uint8_t*)conv_surf->pixels) + (surf->w*surf->h*4));
new_frame.data.insert(new_frame.data.cend(), (const uint8_t*)conv_surf->pixels, ((const uint8_t*)conv_surf->pixels) + (surf->w*surf->h*4));
SDL_UnlockSurface(conv_surf);
SDL_DestroySurface(conv_surf);

View File

@ -99,7 +99,7 @@ ImageLoaderSDLImage::ImageResult ImageLoaderSDLImage::loadFromMemoryRGBA(const u
auto& new_frame = res.frames.emplace_back();
new_frame.ms = anim->delays[i];
new_frame.data.insert(new_frame.data.cbegin(), (const uint8_t*)conv_surf->pixels, ((const uint8_t*)conv_surf->pixels) + (anim->w*anim->h*4));
new_frame.data.insert(new_frame.data.cend(), (const uint8_t*)conv_surf->pixels, ((const uint8_t*)conv_surf->pixels) + (anim->w*anim->h*4));
SDL_UnlockSurface(conv_surf);
SDL_DestroySurface(conv_surf);

View File

@ -41,7 +41,7 @@ ImageLoaderSTB::ImageResult ImageLoaderSTB::loadFromMemoryRGBA(const uint8_t* da
for (int i = 0; i < z; i++) {
auto& new_frame = res.frames.emplace_back();
new_frame.ms = delays[i];
new_frame.data.insert(new_frame.data.cbegin(), img_data + (i*stride), img_data + ((i+1)*stride));
new_frame.data.insert(new_frame.data.cend(), img_data + (i*stride), img_data + ((i+1)*stride));
}
stbi_image_free(delays); // hope this is right
@ -62,7 +62,7 @@ ImageLoaderSTB::ImageResult ImageLoaderSTB::loadFromMemoryRGBA(const uint8_t* da
auto& new_frame = res.frames.emplace_back();
new_frame.ms = 0;
new_frame.data.insert(new_frame.data.cbegin(), img_data, img_data+(x*y*4));
new_frame.data.insert(new_frame.data.cend(), img_data, img_data+(x*y*4));
stbi_image_free(img_data);
return res;

View File

@ -78,7 +78,7 @@ ImageLoaderWebP::ImageResult ImageLoaderWebP::loadFromMemoryRGBA(const uint8_t*
auto& new_frame = res.frames.emplace_back();
new_frame.ms = timestamp-prev_timestamp;
prev_timestamp = timestamp;
new_frame.data.insert(new_frame.data.end(), buf, buf+(res.width*res.height*4));
new_frame.data.insert(new_frame.data.cend(), buf, buf+(res.width*res.height*4));
}
assert(anim_info.frame_count == res.frames.size());

View File

@ -32,7 +32,7 @@ int main(int argc, char** argv) {
// more RAII
std::unique_ptr<SDL_Window, decltype(&SDL_DestroyWindow)> window {
SDL_CreateWindow("tomato", 640, 480, SDL_WINDOW_RESIZABLE),
SDL_CreateWindow("tomato", 1280, 720, SDL_WINDOW_RESIZABLE),
&SDL_DestroyWindow
};