40 lines
1.0 KiB
C++
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
|