mirror of
https://github.com/Almamu/linux-wallpaperengine.git
synced 2025-09-14 13:56:48 +08:00
+ added support for alpha and color loading for images
Signed-off-by: Alexis Maiquez <almamu@almamu.com>
This commit is contained in:
parent
816e0a6ddf
commit
afe7452340
@ -16,11 +16,15 @@ CImage::CImage (
|
|||||||
const glm::vec3& scale,
|
const glm::vec3& scale,
|
||||||
const glm::vec3& angles,
|
const glm::vec3& angles,
|
||||||
const glm::vec2& size,
|
const glm::vec2& size,
|
||||||
std::string alignment) :
|
std::string alignment,
|
||||||
|
const glm::vec3& color,
|
||||||
|
float alpha) :
|
||||||
CObject (visible, id, std::move(name), Type, origin, scale, angles),
|
CObject (visible, id, std::move(name), Type, origin, scale, angles),
|
||||||
m_size (size),
|
m_size (size),
|
||||||
m_material (material),
|
m_material (material),
|
||||||
m_alignment (std::move(alignment))
|
m_alignment (std::move(alignment)),
|
||||||
|
m_color (color),
|
||||||
|
m_alpha (alpha)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -37,6 +41,8 @@ WallpaperEngine::Core::CObject* CImage::fromJSON (
|
|||||||
auto image_it = data.find ("image");
|
auto image_it = data.find ("image");
|
||||||
auto size_val = jsonFindDefault <std::string> (data, "size", "0.0 0.0"); // this one might need some adjustment
|
auto size_val = jsonFindDefault <std::string> (data, "size", "0.0 0.0"); // this one might need some adjustment
|
||||||
auto alignment = jsonFindDefault <std::string> (data, "alignment", "center");
|
auto alignment = jsonFindDefault <std::string> (data, "alignment", "center");
|
||||||
|
auto alpha = jsonFindDefault <float> (data, "alpha", 1.0);
|
||||||
|
auto color_val = jsonFindDefault <std::string> (data, "color", "1.0 1.0 1.0");
|
||||||
|
|
||||||
json content = json::parse (WallpaperEngine::FileSystem::loadFullFile ((*image_it).get <std::string> (), container));
|
json content = json::parse (WallpaperEngine::FileSystem::loadFullFile ((*image_it).get <std::string> (), container));
|
||||||
|
|
||||||
@ -51,7 +57,9 @@ WallpaperEngine::Core::CObject* CImage::fromJSON (
|
|||||||
scale,
|
scale,
|
||||||
angles,
|
angles,
|
||||||
WallpaperEngine::Core::aToVector2 (size_val),
|
WallpaperEngine::Core::aToVector2 (size_val),
|
||||||
alignment
|
alignment,
|
||||||
|
WallpaperEngine::Core::aToVector3 (color_val),
|
||||||
|
alpha
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -70,5 +78,14 @@ const std::string& CImage::getAlignment () const
|
|||||||
return this->m_alignment;
|
return this->m_alignment;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const float CImage::getAlpha () const
|
||||||
|
{
|
||||||
|
return this->m_alpha;
|
||||||
|
}
|
||||||
|
|
||||||
|
const glm::vec3& CImage::getColor () const
|
||||||
|
{
|
||||||
|
return this->m_color;
|
||||||
|
}
|
||||||
|
|
||||||
const std::string CImage::Type = "image";
|
const std::string CImage::Type = "image";
|
@ -31,6 +31,8 @@ namespace WallpaperEngine::Core::Objects
|
|||||||
const Images::CMaterial* getMaterial () const;
|
const Images::CMaterial* getMaterial () const;
|
||||||
const glm::vec2& getSize () const;
|
const glm::vec2& getSize () const;
|
||||||
const std::string& getAlignment () const;
|
const std::string& getAlignment () const;
|
||||||
|
const float getAlpha () const;
|
||||||
|
const glm::vec3& getColor () const;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
CImage (
|
CImage (
|
||||||
@ -42,7 +44,9 @@ namespace WallpaperEngine::Core::Objects
|
|||||||
const glm::vec3& scale,
|
const glm::vec3& scale,
|
||||||
const glm::vec3& angles,
|
const glm::vec3& angles,
|
||||||
const glm::vec2& size,
|
const glm::vec2& size,
|
||||||
std::string alignment
|
std::string alignment,
|
||||||
|
const glm::vec3& color,
|
||||||
|
float alpha
|
||||||
);
|
);
|
||||||
|
|
||||||
static const std::string Type;
|
static const std::string Type;
|
||||||
@ -51,5 +55,7 @@ namespace WallpaperEngine::Core::Objects
|
|||||||
glm::vec2 m_size;
|
glm::vec2 m_size;
|
||||||
Images::CMaterial* m_material;
|
Images::CMaterial* m_material;
|
||||||
std::string m_alignment;
|
std::string m_alignment;
|
||||||
|
float m_alpha;
|
||||||
|
glm::vec3 m_color;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -467,8 +467,8 @@ void CPass::setupUniforms ()
|
|||||||
// register variables like brightness and alpha with some default value
|
// register variables like brightness and alpha with some default value
|
||||||
this->addUniform ("g_Brightness", 1.0f); // TODO: GET FROM THE IMAGE
|
this->addUniform ("g_Brightness", 1.0f); // TODO: GET FROM THE IMAGE
|
||||||
this->addUniform ("g_UserAlpha", 1.0f);
|
this->addUniform ("g_UserAlpha", 1.0f);
|
||||||
this->addUniform ("g_Alpha", 1.0f); // TODO: GET FROM THE IMAGE
|
this->addUniform ("g_Alpha", this->m_material->getImage ()->getImage ()->getAlpha ());
|
||||||
this->addUniform ("g_Color", glm::vec3 {1.0f, 1.0f, 1.0f}); // TODO: GET FROM THE IMAGE
|
this->addUniform ("g_Color", this->m_material->getImage ()->getImage ()->getColor ());
|
||||||
// add some external variables
|
// add some external variables
|
||||||
this->addUniform ("g_Time", &g_Time);
|
this->addUniform ("g_Time", &g_Time);
|
||||||
// add model-view-projection matrix
|
// add model-view-projection matrix
|
||||||
|
Loading…
Reference in New Issue
Block a user