Merge branch 'nightly' into nightly
This commit is contained in:
@@ -365,6 +365,7 @@ display_t make_display(std::variant<gbm::gbm_t::pointer, wl_display *, _XDisplay
|
||||
"EGL_KHR_create_context",
|
||||
"EGL_KHR_surfaceless_context",
|
||||
"EGL_EXT_image_dma_buf_import",
|
||||
"EGL_EXT_image_dma_buf_import_modifiers",
|
||||
};
|
||||
|
||||
for(auto ext : extensions) {
|
||||
|
||||
@@ -192,8 +192,9 @@ std::vector<ctx_t> &proc_t::get_apps() {
|
||||
}
|
||||
|
||||
// Gets application image from application list.
|
||||
// Returns image from assets directory if found there.
|
||||
// Returns default image if image configuration is not set.
|
||||
// returns http content-type header compatible image type
|
||||
// Returns http content-type header compatible image type.
|
||||
std::string proc_t::get_app_image(int app_id) {
|
||||
auto app_index = app_id - 1;
|
||||
if(app_index < 0 || app_index >= _apps.size()) {
|
||||
@@ -201,20 +202,41 @@ std::string proc_t::get_app_image(int app_id) {
|
||||
return SUNSHINE_ASSETS_DIR "/box.png";
|
||||
}
|
||||
|
||||
auto default_image = SUNSHINE_ASSETS_DIR "/box.png";
|
||||
auto app_image_path = _apps[app_index].image_path;
|
||||
if(app_image_path.empty()) {
|
||||
return SUNSHINE_ASSETS_DIR "/box.png";
|
||||
// image is empty, return default box image
|
||||
return default_image;
|
||||
}
|
||||
|
||||
// get the image extension and convert it to lowercase
|
||||
auto image_extension = std::filesystem::path(app_image_path).extension().string();
|
||||
boost::to_lower(image_extension);
|
||||
|
||||
std::error_code code;
|
||||
if(!std::filesystem::exists(app_image_path, code) || image_extension != ".png") {
|
||||
return SUNSHINE_ASSETS_DIR "/box.png";
|
||||
// return the default box image if extension is not "png"
|
||||
if(image_extension != ".png") {
|
||||
return default_image;
|
||||
}
|
||||
|
||||
// return only "content-type" http header compatible image type.
|
||||
// check if image is in assets directory
|
||||
auto full_image_path = std::filesystem::path(SUNSHINE_ASSETS_DIR) / app_image_path;
|
||||
if(std::filesystem::exists(full_image_path)) {
|
||||
return full_image_path.string();
|
||||
}
|
||||
else if(app_image_path == "./assets/steam.png") {
|
||||
// handle old default steam image definition
|
||||
return SUNSHINE_ASSETS_DIR "/steam.png";
|
||||
}
|
||||
|
||||
// check if specified image exists
|
||||
std::error_code code;
|
||||
if(!std::filesystem::exists(app_image_path, code)) {
|
||||
// return default box image if image does not exist
|
||||
return default_image;
|
||||
}
|
||||
|
||||
// image is a png, and not in assets directory
|
||||
// return only "content-type" http header compatible image type
|
||||
return app_image_path;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user