Code cleanup for #1377
This commit is contained in:
@@ -125,6 +125,8 @@ namespace FlaxEditor.GUI.Timeline.Tracks
|
||||
fov = cam.FieldOfView;
|
||||
customAspectRatio = cam.CustomAspectRatio;
|
||||
view.RenderLayersMask = cam.RenderLayersMask;
|
||||
view.Flags = cam.RenderFlags;
|
||||
view.Mode = cam.RenderMode;
|
||||
}
|
||||
|
||||
// Try to evaluate camera properties based on the animated tracks
|
||||
|
||||
@@ -10,7 +10,6 @@ using FlaxEditor.Viewport.Cameras;
|
||||
using FlaxEditor.Viewport.Widgets;
|
||||
using FlaxEngine;
|
||||
using FlaxEngine.GUI;
|
||||
using FlaxEngine.Utilities;
|
||||
using Newtonsoft.Json;
|
||||
using JsonSerializer = FlaxEngine.Json.JsonSerializer;
|
||||
|
||||
@@ -496,34 +495,16 @@ namespace FlaxEditor.Viewport
|
||||
viewLayers.AddButton("Copy layers", () => Clipboard.Text = JsonSerializer.Serialize(Task.View.RenderLayersMask));
|
||||
viewLayers.AddButton("Paste layers", () =>
|
||||
{
|
||||
object obj;
|
||||
try
|
||||
{
|
||||
obj = JsonConvert.DeserializeObject(Clipboard.Text, typeof(LayersMask), JsonSerializer.Settings);
|
||||
Task.ViewLayersMask = JsonSerializer.Deserialize<LayersMask>(Clipboard.Text);
|
||||
}
|
||||
catch
|
||||
{
|
||||
obj = null;
|
||||
}
|
||||
if (obj != null && obj is LayersMask layer)
|
||||
{
|
||||
RenderView view = Task.View;
|
||||
view.RenderLayersMask = layer;
|
||||
Task.View = view;
|
||||
}
|
||||
});
|
||||
viewLayers.AddButton("Reset layers", () =>
|
||||
{
|
||||
RenderView view = Task.View;
|
||||
view.RenderLayersMask = LayersMask.Default;
|
||||
Task.View = view;
|
||||
}).Icon = Editor.Instance.Icons.Rotate32;
|
||||
viewLayers.AddButton("Disable layers", () =>
|
||||
{
|
||||
RenderView view = Task.View;
|
||||
view.RenderLayersMask = new LayersMask(0);
|
||||
Task.View = view;
|
||||
}).Icon = Editor.Instance.Icons.Rotate32;
|
||||
viewLayers.AddButton("Reset layers", () => Task.ViewLayersMask = LayersMask.Default).Icon = Editor.Instance.Icons.Rotate32;
|
||||
viewLayers.AddButton("Disable layers", () => Task.ViewLayersMask = new LayersMask(0)).Icon = Editor.Instance.Icons.Rotate32;
|
||||
viewLayers.AddSeparator();
|
||||
var layers = LayersAndTagsSettings.GetCurrentLayers();
|
||||
if (layers != null && layers.Length > 0)
|
||||
@@ -542,10 +523,8 @@ namespace FlaxEditor.Viewport
|
||||
{
|
||||
int layerIndex = (int)button.Tag;
|
||||
LayersMask mask = new LayersMask(layerIndex);
|
||||
RenderView view = Task.View;
|
||||
view.RenderLayersMask ^= mask;
|
||||
Task.View = view;
|
||||
button.Icon = (Task.View.RenderLayersMask & mask) != 0 ? Style.Current.CheckBoxTick : SpriteHandle.Invalid;
|
||||
Task.ViewLayersMask ^= mask;
|
||||
button.Icon = (Task.ViewLayersMask & mask) != 0 ? Style.Current.CheckBoxTick : SpriteHandle.Invalid;
|
||||
}
|
||||
};
|
||||
viewLayers.VisibleChanged += WidgetViewLayersShowHide;
|
||||
@@ -557,18 +536,12 @@ namespace FlaxEditor.Viewport
|
||||
viewFlags.AddButton("Copy flags", () => Clipboard.Text = JsonSerializer.Serialize(Task.ViewFlags));
|
||||
viewFlags.AddButton("Paste flags", () =>
|
||||
{
|
||||
object obj;
|
||||
try
|
||||
{
|
||||
obj = JsonConvert.DeserializeObject(Clipboard.Text, typeof(ViewFlags), JsonSerializer.Settings);
|
||||
Task.ViewFlags = JsonSerializer.Deserialize<ViewFlags>(Clipboard.Text);
|
||||
}
|
||||
catch
|
||||
{
|
||||
obj = null;
|
||||
}
|
||||
if (obj != null && obj is ViewFlags flags)
|
||||
{
|
||||
Task.ViewFlags = flags;
|
||||
}
|
||||
});
|
||||
viewFlags.AddButton("Reset flags", () => Task.ViewFlags = ViewFlags.DefaultEditor).Icon = Editor.Instance.Icons.Rotate32;
|
||||
@@ -587,7 +560,7 @@ namespace FlaxEditor.Viewport
|
||||
{
|
||||
var v = (ViewFlags)button.Tag;
|
||||
Task.ViewFlags ^= v;
|
||||
button.Icon = (Task.View.Flags & v) != 0 ? Style.Current.CheckBoxTick : SpriteHandle.Invalid;
|
||||
button.Icon = (Task.ViewFlags & v) != 0 ? Style.Current.CheckBoxTick : SpriteHandle.Invalid;
|
||||
}
|
||||
};
|
||||
viewFlags.VisibleChanged += WidgetViewFlagsShowHide;
|
||||
@@ -599,18 +572,12 @@ namespace FlaxEditor.Viewport
|
||||
debugView.AddButton("Copy view", () => Clipboard.Text = JsonSerializer.Serialize(Task.ViewMode));
|
||||
debugView.AddButton("Paste view", () =>
|
||||
{
|
||||
object obj;
|
||||
try
|
||||
{
|
||||
obj = JsonConvert.DeserializeObject(Clipboard.Text, typeof(ViewMode), JsonSerializer.Settings);
|
||||
Task.ViewMode = JsonSerializer.Deserialize<ViewMode>(Clipboard.Text);
|
||||
}
|
||||
catch
|
||||
{
|
||||
obj = null;
|
||||
}
|
||||
if (obj != null && obj is ViewMode mode)
|
||||
{
|
||||
Task.ViewMode = mode;
|
||||
}
|
||||
});
|
||||
debugView.AddSeparator();
|
||||
@@ -1185,9 +1152,9 @@ namespace FlaxEditor.Viewport
|
||||
_isVirtualMouseRightDown = false; // Cancel when mouse right or escape is pressed
|
||||
if (_wasVirtualMouseRightDown)
|
||||
wasControllingMouse = true;
|
||||
if (_isVirtualMouseRightDown)
|
||||
if (_isVirtualMouseRightDown)
|
||||
_isControllingMouse = _isVirtualMouseRightDown;
|
||||
|
||||
|
||||
if (wasControllingMouse != _isControllingMouse)
|
||||
{
|
||||
if (_isControllingMouse)
|
||||
@@ -1698,15 +1665,14 @@ namespace FlaxEditor.Viewport
|
||||
return;
|
||||
|
||||
var ccm = (ContextMenu)cm;
|
||||
var layersMask = Task.ViewLayersMask;
|
||||
foreach (var e in ccm.Items)
|
||||
{
|
||||
if (e is ContextMenuButton b && b != null && b.Tag != null)
|
||||
{
|
||||
int layerIndex = (int)b.Tag;
|
||||
LayersMask mask = new LayersMask(layerIndex);
|
||||
b.Icon = (Task.View.RenderLayersMask & mask) != 0
|
||||
? Style.Current.CheckBoxTick
|
||||
: SpriteHandle.Invalid;
|
||||
b.Icon = (layersMask & mask) != 0 ? Style.Current.CheckBoxTick : SpriteHandle.Invalid;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,5 +39,19 @@ namespace FlaxEngine
|
||||
View = view;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The rendering mask for layers. Used to exclude objects from rendering (via <see cref="View"/> property).
|
||||
/// </summary>
|
||||
public LayersMask ViewLayersMask
|
||||
{
|
||||
get => View.RenderLayersMask;
|
||||
set
|
||||
{
|
||||
var view = View;
|
||||
view.RenderLayersMask = value;
|
||||
View = view;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -176,7 +176,7 @@ void RenderView::SetProjector(float nearPlane, float farPlane, const Float3& pos
|
||||
CullingFrustum = Frustum;
|
||||
}
|
||||
|
||||
void RenderView::CopyFrom(Camera* camera, Viewport* viewport)
|
||||
void RenderView::CopyFrom(const Camera* camera, const Viewport* viewport)
|
||||
{
|
||||
const Vector3 cameraPos = camera->GetPosition();
|
||||
LargeWorlds::UpdateOrigin(Origin, cameraPos);
|
||||
@@ -193,7 +193,7 @@ void RenderView::CopyFrom(Camera* camera, Viewport* viewport)
|
||||
CullingFrustum = Frustum;
|
||||
RenderLayersMask = camera->RenderLayersMask;
|
||||
Flags = camera->RenderFlags;
|
||||
Mode = camera->RenderView;
|
||||
Mode = camera->RenderMode;
|
||||
}
|
||||
|
||||
void RenderView::GetWorldMatrix(const Transform& transform, Matrix& world) const
|
||||
|
||||
@@ -103,7 +103,7 @@ namespace FlaxEngine
|
||||
TemporalAAJitter = Float4.Zero;
|
||||
RenderLayersMask = camera.RenderLayersMask;
|
||||
Flags = camera.RenderFlags;
|
||||
Mode = camera.RenderView;
|
||||
Mode = camera.RenderMode;
|
||||
|
||||
UpdateCachedData();
|
||||
}
|
||||
|
||||
@@ -295,10 +295,12 @@ public:
|
||||
/// <param name="angle">Camera's FOV angle (in degrees)</param>
|
||||
void SetProjector(float nearPlane, float farPlane, const Float3& position, const Float3& direction, const Float3& up, float angle);
|
||||
|
||||
// Copy view data from camera
|
||||
// @param camera Camera to copy its data
|
||||
// @param camera The custom viewport to use for view/projection matrices override.
|
||||
void CopyFrom(Camera* camera, Viewport* viewport = nullptr);
|
||||
/// <summary>
|
||||
/// Copies view data from camera to the view.
|
||||
/// </summary>
|
||||
/// <param name="camera">The camera to copy its data.</param>
|
||||
/// <param name="viewport">The custom viewport to use for view/projection matrices override.</param>
|
||||
void CopyFrom(const Camera* camera, const Viewport* viewport = nullptr);
|
||||
|
||||
public:
|
||||
FORCE_INLINE DrawPass GetShadowsDrawPassMask(ShadowsCastingMode shadowsMode) const
|
||||
|
||||
@@ -416,7 +416,7 @@ void Camera::Serialize(SerializeStream& stream, const void* otherObj)
|
||||
SERIALIZE_MEMBER(OrthoScale, _orthoScale);
|
||||
SERIALIZE(RenderLayersMask);
|
||||
SERIALIZE(RenderFlags);
|
||||
SERIALIZE(RenderView);
|
||||
SERIALIZE(RenderMode);
|
||||
}
|
||||
|
||||
void Camera::Deserialize(DeserializeStream& stream, ISerializeModifier* modifier)
|
||||
@@ -432,7 +432,7 @@ void Camera::Deserialize(DeserializeStream& stream, ISerializeModifier* modifier
|
||||
DESERIALIZE_MEMBER(OrthoScale, _orthoScale);
|
||||
DESERIALIZE(RenderLayersMask);
|
||||
DESERIALIZE(RenderFlags);
|
||||
DESERIALIZE(RenderView);
|
||||
DESERIALIZE(RenderMode);
|
||||
}
|
||||
|
||||
void Camera::OnEnable()
|
||||
|
||||
@@ -145,7 +145,7 @@ public:
|
||||
/// Describes frame rendering modes for this camera.
|
||||
/// </summary>
|
||||
API_FIELD(Attributes = "EditorOrder(120), EditorDisplay(\"Camera\")")
|
||||
ViewMode RenderView = ViewMode::Default;
|
||||
ViewMode RenderMode = ViewMode::Default;
|
||||
|
||||
public:
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user