diff --git a/config.c b/config.c index af8661b..227d004 100644 --- a/config.c +++ b/config.c @@ -24,6 +24,8 @@ cDesignerConfig::cDesignerConfig() { numCustomTokens = 10; //Frames per Second to display animations FPS = 50; + //Fixes some issues with openGL + fixForopenGL = 0; //remember current skin and theme, osd size and osd fonts SetSkin(); SetOSDSize(); @@ -517,6 +519,7 @@ bool cDesignerConfig::SetupParse(const char *Name, const char *Value) { else if (!strcasecmp(Name, "RerunMaxChannel")) rerunMaxChannel = atoi(Value); else if (!strcasecmp(Name, "NumCustomTokens")) numCustomTokens = atoi(Value); else if (!strcasecmp(Name, "FPS")) FPS = atoi(Value); + else if (!strcasecmp(Name, "FixForopenGL")) fixForopenGL = atoi(Value); else pluginSetupParam = false; if (!pluginSetupParam) { diff --git a/config.h b/config.h index 50860de..70ca435 100644 --- a/config.h +++ b/config.h @@ -116,6 +116,7 @@ public: int rerunMaxChannel; int numCustomTokens; int FPS; + int fixForopenGL; //TemplateReload on Setup Close bool setupCloseDoReload; }; diff --git a/designer.c b/designer.c index b6f35b1..a59ea04 100644 --- a/designer.c +++ b/designer.c @@ -171,6 +171,7 @@ void cSkinDesigner::ListCustomTokens(void) { } skindesignerapi::ISkinDisplayPlugin *cSkinDesigner::GetDisplayPlugin(int plugId) { + Init(); map::iterator hit = pluginViews.find(plugId); if (hit == pluginViews.end()) return NULL; @@ -235,6 +236,14 @@ void cSkinDesigner::Init(void) { watch.Stop("templates loaded and caches created"); } } + else if (config.fixForopenGL) + { + dsyslog ("skindesigner: fix for openGL activ"); + if (imgCache) + delete imgCache; + imgCache = new cImageCache(); + imgCache->SetPathes(); + } } void cSkinDesigner::DeleteViews(void) { diff --git a/po/de_DE.po b/po/de_DE.po index ed3ed5e..9493890 100644 --- a/po/de_DE.po +++ b/po/de_DE.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: vdr-skindesigner 0.0.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-07-15 13:04+0200\n" +"POT-Creation-Date: 2020-09-21 12:13+0200\n" "PO-Revision-Date: 2014-09-27 11:02+0200\n" "Last-Translator: Louis Braun \n" "Language-Team: \n" @@ -87,6 +87,9 @@ msgstr "Skin gelöscht" msgid "Plugin Setup" msgstr "" +msgid "Workaround for openGL" +msgstr "" + msgid "Frames per Second to display animations" msgstr "Frames pro Sekunde für Animationen" diff --git a/po/fi_FI.po b/po/fi_FI.po index c28beb4..c181149 100644 --- a/po/fi_FI.po +++ b/po/fi_FI.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: vdr-skindesigner 0.2.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-07-15 13:04+0200\n" +"POT-Creation-Date: 2020-09-21 12:13+0200\n" "PO-Revision-Date: 2015-01-25 01:25+0200\n" "Last-Translator: Rolf Ahrenberg\n" "Language-Team: Finnish\n" @@ -87,6 +87,9 @@ msgstr "Ulkoasu poistettu" msgid "Plugin Setup" msgstr "Yleiset" +msgid "Workaround for openGL" +msgstr "" + msgid "Frames per Second to display animations" msgstr "" diff --git a/po/it_IT.po b/po/it_IT.po index b639395..9b8ac98 100644 --- a/po/it_IT.po +++ b/po/it_IT.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: vdr-skindesigner 0.0.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-07-15 13:04+0200\n" +"POT-Creation-Date: 2020-09-21 12:13+0200\n" "PO-Revision-Date: 2015-08-09 11:02+0200\n" "Last-Translator: fiveten_59\n" "Language-Team: Italian\n" @@ -87,6 +87,9 @@ msgstr "Skin eliminata" msgid "Plugin Setup" msgstr "Plugin Setup" +msgid "Workaround for openGL" +msgstr "" + msgid "Frames per Second to display animations" msgstr "" diff --git a/setup.c b/setup.c index c24d7d7..76c1ab2 100644 --- a/setup.c +++ b/setup.c @@ -134,6 +134,7 @@ cSkinDesignerSetup::cSkinDesignerSetup(skindesignerapi::cPluginStructure *skinPr rerunMaxChannel = config.rerunMaxChannel; numCustomTokens = config.numCustomTokens; FPS = config.FPS; + fixForopenGL = config.fixForopenGL; menuDisplayStyle[0] = tr("after one another"); menuDisplayStyle[1] = tr("at one go"); #ifndef DO_NOT_USE_SKININSTALLER @@ -276,6 +277,7 @@ void cSkinDesignerSetup::Store(void) { config.rerunMaxChannel = rerunMaxChannel; config.numCustomTokens = numCustomTokens; config.FPS = FPS; + config.fixForopenGL = fixForopenGL; config.InitSetupIterator(); cSkinSetup *skinSetup = NULL; @@ -302,6 +304,7 @@ void cSkinDesignerSetup::Store(void) { SetupStore("RerunMaxChannel", rerunMaxChannel); SetupStore("NumCustomTokens", numCustomTokens); SetupStore("FPS", FPS); + SetupStore("FixForopenGL", fixForopenGL); } cOsdItem *cSkinDesignerSetup::InfoItem(const char *label) { @@ -314,6 +317,7 @@ cOsdItem *cSkinDesignerSetup::InfoItem(const char *label) { void cSkinDesignerSetup::PluginSetup(void) { Add(InfoItem(tr("Plugin Setup"))); + Add(new cMenuEditBoolItem(tr("Workaround for openGL"), &fixForopenGL)); Add(new cMenuEditIntItem(tr("Frames per Second to display animations"), &FPS, 10, 60)); Add(new cMenuEditIntItem(tr("Maximum number of custom tokens"), &numCustomTokens, 0, 100)); diff --git a/setup.h b/setup.h index ed199c7..e812e7b 100644 --- a/setup.h +++ b/setup.h @@ -51,6 +51,7 @@ private: int rerunMaxChannel; int numCustomTokens; int FPS; + int fixForopenGL; const char *menuDisplayStyle[2]; void Setup(void); virtual void Store(void); diff --git a/skindesigner.c b/skindesigner.c index f88c074..394868c 100644 --- a/skindesigner.c +++ b/skindesigner.c @@ -20,7 +20,7 @@ #endif -static const char *VERSION = "1.2.8.4"; +static const char *VERSION = "1.2.8.5"; static const char *DESCRIPTION = trNOOP("Skin Designer"); class cPluginSkinDesigner : public cPlugin, public skindesignerapi::SkindesignerAPI {