forked from Green-Sky/tomato
Compare commits
5 Commits
master
...
clipboard_
Author | SHA1 | Date | |
---|---|---|---|
e45b50befc | |||
77005cba4b | |||
c1af43ce54 | |||
2a94c72df9 | |||
b13a87a405 |
3
.github/workflows/cd.yml
vendored
3
.github/workflows/cd.yml
vendored
@ -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:
|
||||
|
5
external/sdl/CMakeLists.txt
vendored
5
external/sdl/CMakeLists.txt
vendored
@ -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)
|
||||
|
@ -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";
|
||||
|
@ -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 {
|
||||
@ -164,7 +167,20 @@ void ChatGui4::setClipboardData(std::vector<std::string> mime_types, std::shared
|
||||
// release lock, since on some platforms the callback is called immediatly
|
||||
}
|
||||
|
||||
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(
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
|
@ -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());
|
||||
|
Loading…
Reference in New Issue
Block a user