summaryrefslogtreecommitdiff
path: root/src/render
diff options
context:
space:
mode:
authorvaxerski <vaxry@vaxry.net>2025-01-14 17:52:19 +0100
committervaxerski <vaxry@vaxry.net>2025-01-14 17:52:32 +0100
commit25add26881d7b98d2b80eb7a95d3aee0449b72b9 (patch)
tree95f71cc8df8552cea932d6260dba9d3598f28b50 /src/render
parentf16f170433540d85cf672217bca2d64c6db9eb01 (diff)
renderer: unload background texture if it's disabled
ref #9031
Diffstat (limited to 'src/render')
-rw-r--r--src/render/OpenGL.cpp21
-rw-r--r--src/render/OpenGL.hpp4
2 files changed, 17 insertions, 8 deletions
diff --git a/src/render/OpenGL.cpp b/src/render/OpenGL.cpp
index 3a4781e7..b68448ae 100644
--- a/src/render/OpenGL.cpp
+++ b/src/render/OpenGL.cpp
@@ -2699,10 +2699,6 @@ void CHyprOpenGLImpl::initMissingAssetTexture() {
void CHyprOpenGLImpl::initAssets() {
initMissingAssetTexture();
- static auto PFORCEWALLPAPER = CConfigValue<Hyprlang::INT>("misc:force_default_wallpaper");
-
- const auto FORCEWALLPAPER = std::clamp(*PFORCEWALLPAPER, static_cast<int64_t>(-1L), static_cast<int64_t>(2L));
-
m_pLockDeadTexture = loadAsset("lockdead.png");
m_pLockDead2Texture = loadAsset("lockdead2.png");
@@ -2712,9 +2708,20 @@ void CHyprOpenGLImpl::initAssets() {
"unknown"),
CHyprColor{0.9F, 0.9F, 0.9F, 0.7F}, 20, true);
- // create the default background texture
- {
- std::string texPath = std::format("{}", "wall");
+ ensureBackgroundTexturePresence();
+}
+
+void CHyprOpenGLImpl::ensureBackgroundTexturePresence() {
+ static auto PNOWALLPAPER = CConfigValue<Hyprlang::INT>("misc:disable_hyprland_logo");
+ static auto PFORCEWALLPAPER = CConfigValue<Hyprlang::INT>("misc:force_default_wallpaper");
+
+ const auto FORCEWALLPAPER = std::clamp(*PFORCEWALLPAPER, static_cast<int64_t>(-1L), static_cast<int64_t>(2L));
+
+ if (*PNOWALLPAPER)
+ m_pBackgroundTexture.reset();
+ else if (!m_pBackgroundTexture) {
+ // create the default background texture
+ std::string texPath = "wall";
// get the adequate tex
if (FORCEWALLPAPER == -1) {
diff --git a/src/render/OpenGL.hpp b/src/render/OpenGL.hpp
index 3f117a5a..2b600a03 100644
--- a/src/render/OpenGL.hpp
+++ b/src/render/OpenGL.hpp
@@ -223,6 +223,8 @@ class CHyprOpenGLImpl {
void setDamage(const CRegion& damage, std::optional<CRegion> finalDamage = {});
+ void ensureBackgroundTexturePresence();
+
uint32_t getPreferredReadFormat(PHLMONITOR pMonitor);
std::vector<SDRMFormat> getDRMFormats();
EGLImageKHR createEGLImage(const Aquamarine::SDMABUFAttrs& attrs);
@@ -293,7 +295,7 @@ class CHyprOpenGLImpl {
CShader m_sFinalScreenShader;
CTimer m_tGlobalTimer;
- SP<CTexture> m_pMissingAssetTexture, m_pBackgroundTexture, m_pLockDeadTexture, m_pLockDead2Texture, m_pLockTtyTextTexture;
+ SP<CTexture> m_pMissingAssetTexture, m_pBackgroundTexture, m_pLockDeadTexture, m_pLockDead2Texture, m_pLockTtyTextTexture; // TODO: don't always load lock
void logShaderError(const GLuint&, bool program = false);
GLuint createProgram(const std::string&, const std::string&, bool dynamic = false);