Compare commits
6 Commits
fd51ee9046
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0d3696c0c5 | ||
|
|
811a673b0d | ||
|
|
aef9593095 | ||
|
|
4dc22c012e | ||
|
|
aa8bacc18f | ||
|
|
47278807f6 |
2
external/solanaceae_tox
vendored
2
external/solanaceae_tox
vendored
Submodule external/solanaceae_tox updated: 83367b2d2e...51b81d1a8a
@@ -22,13 +22,12 @@
|
||||
}
|
||||
},
|
||||
"ImGuiFonts": {
|
||||
"atlas_extra_text": "🥰💀✌️🌴🐢🐐🍄⚽🍻👑📸😬👀🚨🏡🐦🔥🍋🟩🍄🟫🙂↕️🕊️🏆😻🌟🧿🍀🎨🍜",
|
||||
"size": 20,
|
||||
"fonts": {
|
||||
"entries": {
|
||||
"/nix/store/7fjwhgbz16i08xm171arr081bqpivv7k-hack-font-3.003/share/fonts/truetype/Hack-Regular.ttf": true,
|
||||
"/nix/store/g4hlmhda2xmap333kqnzlsz01k8djnp6-noto-fonts-24.3.1/share/fonts/noto/NotoSans[wdth,wght].ttf": true,
|
||||
"/nix/store/d7mgcvb59anvaz69cjghbb42616c7xfg-noto-fonts-monochrome-emoji-3.000/share/fonts/noto/NotoEmoji.ttf": true
|
||||
"/nix/store/ihpjyw2nvm924kf84898v9zqizhbwvn6-hack-font-3.003/share/fonts/truetype/Hack-Regular.ttf": true,
|
||||
"/home/user/Downloads/TwitterColorEmoji-SVGinOT-15.1.0/TwitterColorEmoji-SVGinOT.ttf": true
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,7 +65,7 @@ std::optional<TextureEntry> BitsetImageLoader::haveToTexture(TextureUploaderI& t
|
||||
BitsetImageLoader::BitsetImageLoader(void) {
|
||||
}
|
||||
|
||||
TextureLoaderResult BitsetImageLoader::load(TextureUploaderI& tu, ObjectHandle o, uint32_t w, uint32_t h) {
|
||||
TextureLoaderResult BitsetImageLoader::load(TextureUploaderI& tu, ObjectHandle o, uint32_t /*w*/, uint32_t /*h*/) {
|
||||
if (!static_cast<bool>(o)) {
|
||||
std::cerr << "BIL error: trying to load invalid object\n";
|
||||
return {};
|
||||
|
||||
@@ -156,8 +156,6 @@ bool renderContactBig(
|
||||
ImGui::EndTooltip();
|
||||
}
|
||||
|
||||
ImVec2 post_curser_pos = ImGui::GetCursorPos();
|
||||
|
||||
ImVec2 img_curser {
|
||||
orig_curser_pos.x + ImGui::GetStyle().FramePadding.x,
|
||||
orig_curser_pos.y + ImGui::GetStyle().FramePadding.y
|
||||
|
||||
@@ -24,6 +24,24 @@ struct AudioFrame2 {
|
||||
Span<int16_t> // non owning variant, for direct consumption
|
||||
> buffer;
|
||||
|
||||
AudioFrame2(void) = default;
|
||||
AudioFrame2(const AudioFrame2&) = default;
|
||||
AudioFrame2(AudioFrame2&& other) :
|
||||
sample_rate(other.sample_rate),
|
||||
channels(other.channels),
|
||||
buffer(std::move(other.buffer))
|
||||
{}
|
||||
AudioFrame2(uint32_t sample_rate_, size_t channels_, const std::variant<std::vector<int16_t>, Span<int16_t>>& buffer_) :
|
||||
sample_rate(sample_rate_),
|
||||
channels(channels_),
|
||||
buffer(buffer_)
|
||||
{}
|
||||
AudioFrame2(uint32_t sample_rate_, size_t channels_, std::variant<std::vector<int16_t>, Span<int16_t>>&& buffer_) :
|
||||
sample_rate(sample_rate_),
|
||||
channels(channels_),
|
||||
buffer(std::move(buffer_))
|
||||
{}
|
||||
|
||||
// helpers
|
||||
Span<int16_t> getSpan(void) const {
|
||||
if (std::holds_alternative<std::vector<int16_t>>(buffer)) {
|
||||
|
||||
@@ -28,7 +28,7 @@ struct LockedFrameStream2 : public FrameStream2I<FrameType> {
|
||||
FrameType new_frame = std::move(_frames.front());
|
||||
_frames.pop_front();
|
||||
|
||||
return std::move(new_frame);
|
||||
return new_frame;
|
||||
}
|
||||
|
||||
bool push(const FrameType& value) {
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
#include "../audio_stream_pop_reframer.hpp"
|
||||
|
||||
// "thin" wrapper around sdl audio streams
|
||||
// we dont needs to get fance, as they already provide everything we need
|
||||
// we dont needs to get fancy, as they already provide everything we need
|
||||
struct SDLAudio2StreamReader : public AudioFrame2Stream2I {
|
||||
std::unique_ptr<SDL_AudioStream, decltype(&SDL_DestroyAudioStream)> _stream;
|
||||
|
||||
|
||||
@@ -6,9 +6,14 @@
|
||||
#include "./image_scaler.hpp"
|
||||
|
||||
ImageLoaderI::ImageResult ImageLoaderI::ImageResult::crop(int32_t c_x, int32_t c_y, int32_t c_w, int32_t c_h) const {
|
||||
// TODO: proper error handling
|
||||
assert(c_x+c_w <= width);
|
||||
assert(c_y+c_h <= height);
|
||||
if (
|
||||
c_x < 0 || c_y < 0 || c_w < 1 || c_h < 1 ||
|
||||
int64_t(c_x) + int64_t(c_w) > int64_t(width) || int64_t(c_y) + int64_t(c_h) > int64_t(height)
|
||||
) {
|
||||
// unreachable
|
||||
assert(false && "invalid image crop");
|
||||
return *this;
|
||||
}
|
||||
|
||||
ImageLoaderI::ImageResult new_image;
|
||||
new_image.width = c_w;
|
||||
@@ -19,7 +24,7 @@ ImageLoaderI::ImageResult ImageLoaderI::ImageResult::crop(int32_t c_x, int32_t c
|
||||
auto& new_frame = new_image.frames.emplace_back();
|
||||
new_frame.ms = input_frame.ms;
|
||||
|
||||
// TODO: improve this, this is super inefficent
|
||||
// TODO: improve this, this is inefficent
|
||||
for (int64_t y = c_y; y < c_y + c_h; y++) {
|
||||
for (int64_t x = c_x; x < c_x + c_w; x++) {
|
||||
new_frame.data.push_back(input_frame.data.at(y*width*4+x*4+0));
|
||||
|
||||
@@ -89,8 +89,8 @@ std::vector<uint8_t> ImageEncoderSTBPNG::encodeToMemoryRGBA(const ImageResult& i
|
||||
struct Context {
|
||||
std::vector<uint8_t> new_data;
|
||||
} context;
|
||||
auto write_f = +[](void* context, void* data, int size) -> void {
|
||||
Context* ctx = reinterpret_cast<Context*>(context);
|
||||
auto write_f = +[](void* context_, void* data, int size) -> void {
|
||||
Context* ctx = reinterpret_cast<Context*>(context_);
|
||||
uint8_t* d = reinterpret_cast<uint8_t*>(data);
|
||||
ctx->new_data.insert(ctx->new_data.cend(), d, d + size);
|
||||
};
|
||||
@@ -126,8 +126,8 @@ std::vector<uint8_t> ImageEncoderSTBJpeg::encodeToMemoryRGBA(const ImageResult&
|
||||
struct Context {
|
||||
std::vector<uint8_t> new_data;
|
||||
} context;
|
||||
auto write_f = +[](void* context, void* data, int size) -> void {
|
||||
Context* ctx = reinterpret_cast<Context*>(context);
|
||||
auto write_f = +[](void* context_, void* data, int size) -> void {
|
||||
Context* ctx = reinterpret_cast<Context*>(context_);
|
||||
uint8_t* d = reinterpret_cast<uint8_t*>(data);
|
||||
ctx->new_data.insert(ctx->new_data.cend(), d, d + size);
|
||||
};
|
||||
|
||||
@@ -15,11 +15,13 @@
|
||||
|
||||
#include "./start_screen.hpp"
|
||||
|
||||
#ifdef __ANDROID__
|
||||
#include <filesystem>
|
||||
#endif
|
||||
|
||||
#include <memory>
|
||||
#include <iostream>
|
||||
#include <string_view>
|
||||
#include <thread>
|
||||
#include <chrono>
|
||||
|
||||
#ifdef TOMATO_BREAKPAD
|
||||
|
||||
Reference in New Issue
Block a user