DeerEngine/roe/Editor/Properties/ShaderProperties.as

52 lines
1.2 KiB
ActionScript

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) {
UI::drawIcon("shader", 32);
} else {
UI::drawIcon("empty", 32);
}
UI::dragDropTarget("SHADER", any(shaderComponent), setShaderComponent);
if (shaderComponent.hasShader) {
UI::sameline();
UI::space();
UI::sameline();
UI::titleCenterY(shaderComponent.getShader(), 32);
UI::dragDropTarget("SHADER", any(shaderComponent), setShaderComponent);
}
UI::space(20, 20);
if (UI::button("Clear")) {
shaderComponent.clear();
}
}
void removeShaderComponent(any@ entity) {
Entity ent;
entity.retrieve(ent);
if (UI::menuItem("Remove")) {
ent.removeShaderComponent();
}
}