aboutsummaryrefslogtreecommitdiff
path: root/src/QuickMedia.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/QuickMedia.cpp')
-rw-r--r--src/QuickMedia.cpp39
1 files changed, 21 insertions, 18 deletions
diff --git a/src/QuickMedia.cpp b/src/QuickMedia.cpp
index 79f1f74..4de65d2 100644
--- a/src/QuickMedia.cpp
+++ b/src/QuickMedia.cpp
@@ -645,12 +645,17 @@ namespace QuickMedia {
set_resource_loader_root_path(resources_root.c_str());
if(!circle_mask_shader.loadFromFile(resources_root + "shaders/circle_mask.glsl", sf::Shader::Type::Fragment)) {
- fprintf(stderr, "Failed to load %s/shaders/circle_mask.glsl", resources_root.c_str());
+ fprintf(stderr, "Failed to load %s/shaders/circle_mask.glsl\n", resources_root.c_str());
+ abort();
+ }
+
+ if(!rounded_rectangle_shader.loadFromFile(resources_root + "shaders/rounded_rectangle.glsl", sf::Shader::Type::Fragment)) {
+ fprintf(stderr, "Failed to load %s/shaders/rounded_rectangle.glsl\n", resources_root.c_str());
abort();
}
if(!loading_icon.loadFromFile(resources_root + "images/loading_icon.png")) {
- fprintf(stderr, "Failed to load %s/images/loading_icon.png", resources_root.c_str());
+ fprintf(stderr, "Failed to load %s/images/loading_icon.png\n", resources_root.c_str());
abort();
}
loading_icon.setSmooth(true);
@@ -1177,13 +1182,13 @@ namespace QuickMedia {
}
std::unique_ptr<Body> Program::create_body() {
- auto body = std::make_unique<Body>(this, loading_icon);
+ auto body = std::make_unique<Body>(this, loading_icon, &rounded_rectangle_shader);
body->thumbnail_mask_shader = &circle_mask_shader;
return body;
}
std::unique_ptr<SearchBar> Program::create_search_bar(const std::string &placeholder, int search_delay) {
- auto search_bar = std::make_unique<SearchBar>(&plugin_logo, placeholder);
+ auto search_bar = std::make_unique<SearchBar>(&plugin_logo, &rounded_rectangle_shader, placeholder);
search_bar->text_autosearch_delay = search_delay;
return search_bar;
}
@@ -1290,7 +1295,7 @@ namespace QuickMedia {
tab.page->on_navigate_to_page(tab.body.get());
}
- Tabs ui_tabs;
+ Tabs ui_tabs(&rounded_rectangle_shader);
for(auto &tab : tabs) {
ui_tabs.add_tab(tab.page->get_title());
}
@@ -2936,7 +2941,7 @@ namespace QuickMedia {
});
};
- Entry comment_input("Press i to begin writing a comment...");
+ Entry comment_input("Press i to begin writing a comment...", &rounded_rectangle_shader);
comment_input.draw_background = false;
comment_input.set_editable(false);
@@ -3328,9 +3333,9 @@ namespace QuickMedia {
void Program::chat_login_page() {
assert(strcmp(plugin_name, "matrix") == 0);
- SearchBar login_input(nullptr, "Username");
- SearchBar password_input(nullptr, "Password", true);
- SearchBar homeserver_input(nullptr, "Homeserver");
+ SearchBar login_input(nullptr, &rounded_rectangle_shader, "Username");
+ SearchBar password_input(nullptr, &rounded_rectangle_shader, "Password", true);
+ SearchBar homeserver_input(nullptr, &rounded_rectangle_shader, "Homeserver");
sf::Text status_text("", *FontLoader::get_font(FontLoader::FontType::LATIN), std::floor(18 * get_ui_scale()));
@@ -3566,31 +3571,28 @@ namespace QuickMedia {
std::vector<ChatTab> tabs;
ChatTab pinned_tab;
- pinned_tab.body = std::make_unique<Body>(this, loading_icon);
+ pinned_tab.body = create_body();
pinned_tab.body->thumbnail_max_size = CHAT_MESSAGE_THUMBNAIL_MAX_SIZE;
- pinned_tab.body->thumbnail_mask_shader = &circle_mask_shader;
pinned_tab.body->attach_side = AttachSide::BOTTOM;
pinned_tab.body->line_separator_color = sf::Color::Transparent;
tabs.push_back(std::move(pinned_tab));
ChatTab messages_tab;
- messages_tab.body = std::make_unique<Body>(this, loading_icon);
+ messages_tab.body = create_body();
messages_tab.body->thumbnail_max_size = CHAT_MESSAGE_THUMBNAIL_MAX_SIZE;
- messages_tab.body->thumbnail_mask_shader = &circle_mask_shader;
messages_tab.body->attach_side = AttachSide::BOTTOM;
messages_tab.body->line_separator_color = sf::Color::Transparent;
tabs.push_back(std::move(messages_tab));
// ChatTab users_tab;
- // users_tab.body = std::make_unique<Body>(this, loading_icon);
+ // users_tab.body = create_body();
// users_tab.body->thumbnail_max_size = CHAT_MESSAGE_THUMBNAIL_MAX_SIZE;
- // users_tab.body->thumbnail_mask_shader = &circle_mask_shader;
// users_tab.body->attach_side = AttachSide::TOP;
// //users_tab.body->line_separator_color = sf::Color::Transparent;
// users_tab.text = sf::Text("Users", *FontLoader::get_font(FontLoader::FontType::LATIN), tab_text_size);
// tabs.push_back(std::move(users_tab));
- Tabs ui_tabs(back_color);
+ Tabs ui_tabs(&rounded_rectangle_shader, back_color);
const int PINNED_TAB_INDEX = ui_tabs.add_tab("Pinned messages (0)");
const int MESSAGES_TAB_INDEX = ui_tabs.add_tab("Messages");
ui_tabs.set_selected(MESSAGES_TAB_INDEX);
@@ -3855,7 +3857,7 @@ namespace QuickMedia {
ui_tabs.set_text(PINNED_TAB_INDEX, "Pinned messages (" + std::to_string(tabs[PINNED_TAB_INDEX].body->items.size()) + ")");
};
- Body url_selection_body(this, loading_icon);
+ Body url_selection_body(this, loading_icon, &rounded_rectangle_shader);
std::unordered_set<std::string> fetched_messages_set;
auto filter_existing_messages = [&fetched_messages_set](Messages &messages) {
@@ -3895,7 +3897,7 @@ namespace QuickMedia {
read_marker_timeout_ms = 0;
redraw = true;
- Entry chat_input("Press i to begin writing a message...");
+ Entry chat_input("Press i to begin writing a message...", &rounded_rectangle_shader);
chat_input.draw_background = false;
chat_input.set_editable(false);
@@ -5096,6 +5098,7 @@ namespace QuickMedia {
room_avatar_texture_size.x *= room_avatar_sprite.getScale().x;
room_avatar_texture_size.y *= room_avatar_sprite.getScale().y;
room_avatar_sprite.setPosition(body_pos.x, room_name_total_height * 0.5f - room_avatar_texture_size.y * 0.5f + 5.0f);
+ circle_mask_shader.setUniform("resolution", sf::Vector2f(room_avatar_texture_size.x, room_avatar_texture_size.y));
window.draw(room_avatar_sprite, &circle_mask_shader);
room_name_text_offset_x += room_avatar_texture_size.x + 10.0f;
}