Files
XCEngine/editor/src/panels/MaterialInspectorMaterialStateIO.h

40 lines
1.0 KiB
C++

#pragma once
#include "MaterialInspectorMaterialState.h"
#include <XCEngine/Core/Asset/ResourceHandle.h>
#include <string>
#include <vector>
namespace XCEngine {
namespace Resources {
class Material;
class Shader;
}
namespace Editor {
bool IsTextureMaterialPropertyType(::XCEngine::Resources::MaterialPropertyType type);
std::vector<MaterialPropertyState> CollectMaterialPropertyStates(
const ::XCEngine::Resources::Material& material);
void SyncMaterialAssetStateWithShader(
const ::XCEngine::Resources::ResourceHandle<::XCEngine::Resources::Shader>& shaderHandle,
MaterialAssetState& state);
bool ResetMaterialPropertyStateToShaderDefault(
const ::XCEngine::Resources::ResourceHandle<::XCEngine::Resources::Shader>& shaderHandle,
const std::string& propertyName,
MaterialAssetState& state);
void ApplyMaterialAuthoringPresenceToState(
const std::string& sourceText,
MaterialAssetState& state);
std::string BuildMaterialAssetFileText(const MaterialAssetState& state);
} // namespace Editor
} // namespace XCEngine