#pragma once class EditorComponent; class MaterialWindow : public wi::gui::Window { public: void Create(EditorComponent* editor); EditorComponent* editor = nullptr; wi::ecs::Entity entity; void SetEntity(wi::ecs::Entity entity); wi::gui::TextInputField materialNameField; wi::gui::Button presetLoadButton; wi::gui::Button presetSaveButton; wi::gui::CheckBox shadowReceiveCheckBox; wi::gui::CheckBox shadowCasterCheckBox; wi::gui::CheckBox useVertexColorsCheckBox; wi::gui::CheckBox specularGlossinessCheckBox; wi::gui::CheckBox occlusionPrimaryCheckBox; wi::gui::CheckBox occlusionSecondaryCheckBox; wi::gui::CheckBox vertexAOCheckBox; wi::gui::CheckBox windCheckBox; wi::gui::CheckBox doubleSidedCheckBox; wi::gui::CheckBox outlineCheckBox; wi::gui::CheckBox preferUncompressedCheckBox; wi::gui::CheckBox disableStreamingCheckBox; wi::gui::CheckBox coplanarCheckBox; wi::gui::CheckBox capsuleShadowCheckBox; wi::gui::ComboBox shaderTypeComboBox; wi::gui::ComboBox blendModeComboBox; wi::gui::ComboBox shadingRateComboBox; wi::gui::ComboBox cameraComboBox; wi::gui::Slider normalMapSlider; wi::gui::Slider roughnessSlider; wi::gui::Slider reflectanceSlider; wi::gui::Slider metalnessSlider; wi::gui::Slider emissiveSlider; wi::gui::Slider saturationSlider; wi::gui::Slider cloakSlider; wi::gui::Slider chromaticAberrationSlider; wi::gui::Slider transmissionSlider; wi::gui::Slider refractionSlider; wi::gui::Slider pomSlider; wi::gui::Slider anisotropyStrengthSlider; wi::gui::Slider anisotropyRotationSlider; wi::gui::Slider displacementMappingSlider; wi::gui::Slider subsurfaceScatteringSlider; wi::gui::Slider texAnimFrameRateSlider; wi::gui::Slider texAnimDirectionSliderU; wi::gui::Slider texAnimDirectionSliderV; wi::gui::Slider texMulSliderX; wi::gui::Slider texMulSliderY; wi::gui::Slider alphaRefSlider; wi::gui::Slider sheenRoughnessSlider; wi::gui::Slider clearcoatSlider; wi::gui::Slider clearcoatRoughnessSlider; wi::gui::Slider blendTerrainSlider; wi::gui::Slider meshblendSlider; wi::gui::Slider interiorScaleXSlider; wi::gui::Slider interiorScaleYSlider; wi::gui::Slider interiorScaleZSlider; wi::gui::Slider interiorOffsetXSlider; wi::gui::Slider interiorOffsetYSlider; wi::gui::Slider interiorOffsetZSlider; wi::gui::Slider interiorRotationSlider; wi::gui::ComboBox colorComboBox; wi::gui::ColorPicker colorPicker; wi::gui::ComboBox textureSlotComboBox; wi::gui::Image textureSlotImage; wi::gui::Button textureSlotLoadButton; wi::gui::Button textureSlotSelectButton; wi::gui::Button textureSlotClearButton; wi::gui::Label textureSlotLabel; wi::gui::TextInputField textureSlotUvsetField; wi::unordered_map uniqueTextures; wi::gui::Window texturePickerWindow; std::deque texturePickerButtons; void RecreateTexturePickerButtons(); void ResizeLayout() override; };