From b13a87a405373cfeae879e4e9e327547cffb2afd Mon Sep 17 00:00:00 2001 From: Green Sky Date: Sat, 25 May 2024 12:17:59 +0200 Subject: [PATCH 1/5] hacky sdl --- external/sdl/CMakeLists.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/external/sdl/CMakeLists.txt b/external/sdl/CMakeLists.txt index 2327684a..da21da83 100644 --- a/external/sdl/CMakeLists.txt +++ b/external/sdl/CMakeLists.txt @@ -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) From 2a94c72df919f89e3cc5245d54ce141a9ba81a23 Mon Sep 17 00:00:00 2001 From: Green Sky Date: Sat, 25 May 2024 14:16:30 +0200 Subject: [PATCH 2/5] try catch? --- src/chat_gui4.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/chat_gui4.cpp b/src/chat_gui4.cpp index 7c0d6e26..18ecd56a 100644 --- a/src/chat_gui4.cpp +++ b/src/chat_gui4.cpp @@ -1,5 +1,6 @@ #include "./chat_gui4.hpp" +#include #include #include #include @@ -26,6 +27,7 @@ #include #include #include +#include #include namespace Components { @@ -164,7 +166,15 @@ void ChatGui4::setClipboardData(std::vector mime_types, std::shared // 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"; + } catch (const std::exception& e) { + std::cerr << "CG error: setting clipboard data threw exception!\n"; + } catch (...) { + std::cerr << "CG error: setting clipboard data threw!\n"; + } } ChatGui4::ChatGui4( From c1af43ce5405f7ed5d3844537d4a9b438dc4cb0c Mon Sep 17 00:00:00 2001 From: Green Sky Date: Sat, 25 May 2024 14:18:50 +0200 Subject: [PATCH 3/5] switch cd to debug temp --- .github/workflows/cd.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 17c3e598..0392335b 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -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: From 77005cba4b2d7c66c2373efa7ee2080a73b631e4 Mon Sep 17 00:00:00 2001 From: Green Sky Date: Sat, 25 May 2024 15:00:11 +0200 Subject: [PATCH 4/5] sys and print what --- src/chat_gui4.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/chat_gui4.cpp b/src/chat_gui4.cpp index 18ecd56a..2f9df150 100644 --- a/src/chat_gui4.cpp +++ b/src/chat_gui4.cpp @@ -28,6 +28,7 @@ #include #include #include +#include #include namespace Components { @@ -170,8 +171,13 @@ void ChatGui4::setClipboardData(std::vector mime_types, std::shared 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"; } From e45b50befc3d713009065f68f73168eb965c1767 Mon Sep 17 00:00:00 2001 From: Green Sky Date: Sat, 25 May 2024 15:09:44 +0200 Subject: [PATCH 5/5] try switching inserts before end for windows --- src/chat_gui/send_image_popup.cpp | 2 +- src/image_loader_qoi.cpp | 2 +- src/image_loader_sdl_bmp.cpp | 2 +- src/image_loader_sdl_image.cpp | 2 +- src/image_loader_stb.cpp | 4 ++-- src/image_loader_webp.cpp | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/chat_gui/send_image_popup.cpp b/src/chat_gui/send_image_popup.cpp index 555cba14..ced59079 100644 --- a/src/chat_gui/send_image_popup.cpp +++ b/src/chat_gui/send_image_popup.cpp @@ -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"; diff --git a/src/image_loader_qoi.cpp b/src/image_loader_qoi.cpp index bed0fd63..098a3d81 100644 --- a/src/image_loader_qoi.cpp +++ b/src/image_loader_qoi.cpp @@ -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; diff --git a/src/image_loader_sdl_bmp.cpp b/src/image_loader_sdl_bmp.cpp index f9f9e56c..4845fc5a 100644 --- a/src/image_loader_sdl_bmp.cpp +++ b/src/image_loader_sdl_bmp.cpp @@ -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); diff --git a/src/image_loader_sdl_image.cpp b/src/image_loader_sdl_image.cpp index a1a06d35..a65c7f24 100644 --- a/src/image_loader_sdl_image.cpp +++ b/src/image_loader_sdl_image.cpp @@ -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); diff --git a/src/image_loader_stb.cpp b/src/image_loader_stb.cpp index d983f636..a944595c 100644 --- a/src/image_loader_stb.cpp +++ b/src/image_loader_stb.cpp @@ -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; diff --git a/src/image_loader_webp.cpp b/src/image_loader_webp.cpp index 01cd9fb4..eb775030 100644 --- a/src/image_loader_webp.cpp +++ b/src/image_loader_webp.cpp @@ -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());