void setShaderComponent(any@ shaderComponent_data, any@ shader_data) { string shader; shader_data.retrieve(shader); ShaderComponent shaderComponent; shaderComponent_data.retrieve(shaderComponent); shaderComponent.setShader(shader); } void renderShaderComponent(any@ data) { Entity entity; data.retrieve(entity); if (!entity.hasShaderComponent()) return; ShaderComponent shaderComponent = entity.getShaderComponent(); if (shaderComponent.hasShader) { drawIcon("shader", 32); } else { drawIcon("empty", 32); } dragDropTarget("SHADER", any(shaderComponent), setShaderComponent); if (shaderComponent.hasShader) { sameline(); space(); sameline(); titleCenterY(shaderComponent.getShader(), 32); dragDropTarget("SHADER", any(shaderComponent), setShaderComponent); } space(20, 20); if (button("Clear")) { shaderComponent.clear(); } } void removeShaderComponent(any@ entity) { Entity ent; entity.retrieve(ent); if (menuItem("Remove")) { ent.removeShaderComponent(); } }