[Feat] (MG_Impl/Program): glAttachShader

This commit is contained in:
2025-08-11 15:50:24 +08:00
parent 4ec815a383
commit 429618a00a
3 changed files with 27 additions and 3 deletions
@@ -4,8 +4,19 @@
namespace MobileGL {
namespace MG_State {
namespace GLState {
void ProgramObject::AttachShader(SharedPtr<ShaderObject> shader) {
bool ProgramObject::ShaderIsAttached(SharedPtr<ShaderObject> shader) {
auto it = std::find_if(m_shaders.begin(), m_shaders.end(),
[shader](const SharedPtr<ShaderObject>& s) {
return s.get() == shader.get();
});
return it != m_shaders.end();
}
bool ProgramObject::AttachShader(SharedPtr<ShaderObject> shader) {
if (ShaderIsAttached(shader))
return false;
m_shaders.emplace_back(shader);
return true;
}
SizeT ProgramObject::DetachShader(SharedPtr<ShaderObject> shader) {