Format more engine code

This commit is contained in:
Wojtek Figat
2022-06-14 20:17:00 +02:00
parent 7c923198e0
commit b49e5e9984
219 changed files with 348 additions and 1236 deletions

View File

@@ -86,7 +86,6 @@ API_ENUM() enum class AlphaBlendMode : byte
class AlphaBlend
{
public:
/// <summary>
/// Converts the input alpha value from a linear 0-1 value into the output alpha described by blend mode.
/// </summary>

View File

@@ -12,7 +12,6 @@
struct NodeAnimationData
{
public:
/// <summary>
/// The target node name.
/// </summary>
@@ -34,7 +33,6 @@ public:
LinearCurve<Float3> Scale;
public:
/// <summary>
/// Initializes a new instance of the <see cref="NodeAnimationData"/> class.
/// </summary>
@@ -46,7 +44,6 @@ public:
}
public:
/// <summary>
/// Evaluates the animation transformation at the specified time (only for the curves with non-empty data).
/// </summary>
@@ -98,7 +95,6 @@ public:
struct AnimationData
{
public:
/// <summary>
/// The duration of the animation (in frames).
/// </summary>
@@ -125,7 +121,6 @@ public:
Array<NodeAnimationData> Channels;
public:
/// <summary>
/// Gets the length of the animation (in seconds).
/// </summary>

View File

@@ -11,7 +11,6 @@
class AnimationsService : public EngineService
{
public:
AnimationsService()
: EngineService(TEXT("Animations"), -10)
{

View File

@@ -14,7 +14,7 @@ class Asset;
/// </summary>
API_CLASS(Static) class FLAXENGINE_API Animations
{
DECLARE_SCRIPTING_TYPE_NO_SPAWN(Animations);
DECLARE_SCRIPTING_TYPE_NO_SPAWN(Animations);
/// <summary>
/// The system for Animations update.

View File

@@ -286,15 +286,12 @@ template<class T, typename KeyFrame = LinearCurveKeyframe<T>>
class CurveBase
{
public:
typedef Span<KeyFrame> KeyFrameData;
protected:
T _default;
public:
/// <summary>
/// Initializes a new instance of the <see cref="Curve"/> class.
/// </summary>
@@ -320,7 +317,6 @@ public:
}
public:
/// <summary>
/// Gets the default value for the keyframes.
/// </summary>
@@ -338,7 +334,6 @@ public:
}
public:
/// <summary>
/// Evaluates the animation curve value at the specified time.
/// </summary>
@@ -466,7 +461,6 @@ public:
}
protected:
/// <summary>
/// Returns a pair of keys that can be used for interpolating to field the value at the provided time.
/// </summary>
@@ -507,16 +501,13 @@ template<class T, typename KeyFrame = LinearCurveKeyframe<T>>
class Curve : public CurveBase<T, KeyFrame>
{
public:
typedef CurveBase<T, KeyFrame> Base;
using KeyFrameCollection = Array<KeyFrame>;
private:
KeyFrameCollection _keyframes;
public:
/// <summary>
/// Initializes a new instance of the <see cref="Curve"/> class.
/// </summary>
@@ -552,7 +543,6 @@ public:
}
public:
/// <summary>
/// Gets the length of the animation curve, from time zero to last keyframe.
/// </summary>
@@ -627,7 +617,6 @@ public:
}
public:
/// <summary>
/// Evaluates the animation curve value at the specified time.
/// </summary>
@@ -745,7 +734,6 @@ public:
}
public:
FORCE_INLINE KeyFrame& operator[](int32 index)
{
return _keyframes[index];

View File

@@ -135,21 +135,21 @@ bool AnimGraphBase::onNodeLoaded(Node* n)
// Check if this node needs a state container
switch (n->GroupID)
{
// Tools
// Tools
case 7:
switch (n->TypeID)
{
// Time
// Time
case 5:
ADD_BUCKET(AnimationBucketInit);
break;
}
break;
// Animation
// Animation
case 9:
switch (n->TypeID)
{
// Output
// Output
case 1:
_rootNode = n;
if (_rootNode->Values.Count() < 1)
@@ -158,16 +158,16 @@ bool AnimGraphBase::onNodeLoaded(Node* n)
_rootNode->Values[0] = (int32)RootMotionMode::NoExtraction;
}
break;
// Animation
// Animation
case 2:
ADD_BUCKET(AnimationBucketInit);
n->Assets[0] = (Asset*)Content::LoadAsync<Animation>((Guid)n->Values[0]);
break;
// Blend with Mask
// Blend with Mask
case 11:
n->Assets[0] = (Asset*)Content::LoadAsync<SkeletonMask>((Guid)n->Values[1]);
break;
// Multi Blend 1D
// Multi Blend 1D
case 12:
{
ADD_BUCKET(MultiBlendBucketInit);
@@ -183,7 +183,7 @@ bool AnimGraphBase::onNodeLoaded(Node* n)
Sorting::SortArray(n->Data.MultiBlend1D.IndicesSorted, ANIM_GRAPH_MULTI_BLEND_MAX_ANIMS, &SortMultiBlend1D, n);
break;
}
// Multi Blend 2D
// Multi Blend 2D
case 13:
{
ADD_BUCKET(MultiBlendBucketInit);
@@ -239,13 +239,13 @@ bool AnimGraphBase::onNodeLoaded(Node* n)
break;
}
// Blend Pose
// Blend Pose
case 14:
{
ADD_BUCKET(BlendPoseBucketInit);
break;
}
// State Machine
// State Machine
case 18:
{
ADD_BUCKET(StateMachineBucketInit);
@@ -261,7 +261,7 @@ bool AnimGraphBase::onNodeLoaded(Node* n)
break;
}
// Entry
// Entry
case 19:
{
const auto entryTargetId = (int32)n->Values[0];
@@ -273,7 +273,7 @@ bool AnimGraphBase::onNodeLoaded(Node* n)
_rootNode = entryTarget;
break;
}
// State
// State
case 20:
{
// Load the graph
@@ -370,19 +370,19 @@ bool AnimGraphBase::onNodeLoaded(Node* n)
break;
}
// State Output
// State Output
case 21:
{
_rootNode = n;
break;
}
// Rule Output
// Rule Output
case 22:
{
_rootNode = n;
break;
}
// Animation Graph Function
// Animation Graph Function
case 24:
{
auto& data = n->Data.AnimationGraphFunction;
@@ -401,9 +401,9 @@ bool AnimGraphBase::onNodeLoaded(Node* n)
data.Graph = LoadSubGraph(graphData.Get(), graphData.Length(), TEXT("Animation Graph Function"));
break;
}
// Transform Node (local/model space)
// Get Node Transform (local/model space)
// IK Aim, Two Bone IK
// Transform Node (local/model space)
// Get Node Transform (local/model space)
// IK Aim, Two Bone IK
case 25:
case 26:
case 28:
@@ -418,7 +418,7 @@ bool AnimGraphBase::onNodeLoaded(Node* n)
data.NodeIndex = -1;
break;
}
// Copy Node
// Copy Node
case 27:
{
auto& data = n->Data.CopyNode;
@@ -442,7 +442,7 @@ bool AnimGraphBase::onNodeLoaded(Node* n)
}
}
break;
// Custom
// Custom
case 13:
{
// Clear data

View File

@@ -167,7 +167,6 @@ enum class RootMotionMode
class AnimGraphStateTransition
{
public:
/// <summary>
/// The transition flag types.
/// </summary>
@@ -195,7 +194,6 @@ public:
};
public:
/// <summary>
/// The destination state node.
/// </summary>
@@ -230,9 +228,8 @@ DECLARE_ENUM_OPERATORS(AnimGraphStateTransition::FlagTypes);
/// <seealso cref="GraphParameter" />
API_CLASS() class AnimGraphParameter : public VisjectGraphParameter
{
DECLARE_SCRIPTING_TYPE_WITH_CONSTRUCTOR_IMPL(AnimGraphParameter, VisjectGraphParameter);
DECLARE_SCRIPTING_TYPE_WITH_CONSTRUCTOR_IMPL(AnimGraphParameter, VisjectGraphParameter);
public:
AnimGraphParameter(const AnimGraphParameter& other)
: AnimGraphParameter()
{
@@ -271,7 +268,6 @@ class FLAXENGINE_API AnimGraphInstanceData
{
friend AnimGraphExecutor;
public:
// ---- Quick documentation ----
// AnimGraphInstanceData holds a single animation graph instance playback data.
// It has parameters (the same layout as graph) that can be modified per instance (eg. by game scripts).
@@ -335,7 +331,6 @@ public:
};
public:
/// <summary>
/// The instance data version number. Used to sync the Anim Graph data with the instance state. Handles Anim Graph reloads to ensure data is valid.
/// </summary>
@@ -392,7 +387,6 @@ public:
Array<AnimGraphSlot, InlinedAllocation<4>> Slots;
public:
/// <summary>
/// Clears this container data.
/// </summary>
@@ -409,7 +403,6 @@ public:
void Invalidate();
private:
struct Event
{
AnimEvent* Instance;
@@ -433,7 +426,6 @@ struct AnimGraphTransitionData
class AnimGraphBox : public VisjectGraphBox
{
public:
AnimGraphBox()
{
}
@@ -452,7 +444,6 @@ public:
class AnimGraphNode : public VisjectGraphNode<AnimGraphBox>
{
public:
struct MultiBlend1DData
{
/// <summary>
@@ -575,7 +566,6 @@ public:
};
public:
/// <summary>
/// The animation graph.
/// </summary>
@@ -592,13 +582,11 @@ public:
AdditionalData Data;
public:
AnimGraphNode()
{
}
public:
/// <summary>
/// Gets the per-node node transformations cache (cached).
/// </summary>
@@ -614,7 +602,6 @@ public:
class AnimGraphBase : public VisjectGraph<AnimGraphNode, AnimGraphBox, AnimGraphParameter>
{
protected:
AnimGraph* _graph;
Node* _rootNode = nullptr;
@@ -624,7 +611,6 @@ protected:
}
public:
/// <summary>
/// The sub graphs nested in this graph.
/// </summary>
@@ -651,7 +637,6 @@ public:
int32 BucketsCountTotal;
public:
/// <summary>
/// Finalizes an instance of the <see cref="AnimGraphBase"/> class.
/// </summary>
@@ -661,7 +646,6 @@ public:
}
public:
/// <summary>
/// Gets the root node of the graph (cache don load).
/// </summary>
@@ -680,7 +664,6 @@ public:
AnimSubGraph* LoadSubGraph(const void* data, int32 dataLength, const Char* name);
public:
// [Graph]
bool Load(ReadStream* stream, bool loadMeta) override;
void Clear() override;
@@ -689,7 +672,6 @@ public:
#endif
protected:
// [Graph]
bool onNodeLoaded(Node* n) override;
};
@@ -707,7 +689,6 @@ class AnimSubGraph : public AnimGraphBase
friend AnimGraphParameter;
public:
/// <summary>
/// Initializes a new instance of the <see cref="AnimSubGraph" /> class.
/// </summary>
@@ -730,7 +711,6 @@ class AnimGraph : public AnimGraphBase
friend AnimGraphExecutor;
private:
typedef void (*InitBucketHandler)(AnimGraphInstanceData::Bucket&);
bool _isFunction, _isRegisteredForScriptingEvents;
@@ -740,7 +720,6 @@ private:
Asset* _owner;
public:
/// <summary>
/// Initializes a new instance of the <see cref="AnimGraph"/> class.
/// </summary>
@@ -758,7 +737,6 @@ public:
~AnimGraph();
public:
/// <summary>
/// The Anim Graph data version number. Used to sync the Anim Graph data with the instances state. Handles Anim Graph reloads to ensure data is valid.
/// </summary>
@@ -773,7 +751,6 @@ public:
AssetReference<SkinnedModel> BaseModel;
public:
/// <summary>
/// Determines whether this graph is ready for the animation evaluation.
/// </summary>
@@ -787,7 +764,6 @@ public:
bool CanUseWithSkeleton(SkinnedModel* other) const;
private:
void ClearCustomNode(Node* node);
bool InitCustomNode(Node* node);
@@ -798,7 +774,6 @@ private:
void OnScriptsLoaded();
public:
// [Graph]
bool Load(ReadStream* stream, bool loadMeta) override;
bool onParamCreated(Parameter* p) override;
@@ -829,7 +804,6 @@ class AnimGraphExecutor : public VisjectExecutor
{
friend AnimGraphNode;
private:
AnimGraph& _graph;
RootMotionMode _rootMotionMode = RootMotionMode::NoExtraction;
int32 _skeletonNodesCount = 0;
@@ -838,7 +812,6 @@ private:
static ThreadLocal<AnimGraphContext> Context;
public:
/// <summary>
/// Initializes the managed runtime calls.
/// </summary>
@@ -851,7 +824,6 @@ public:
explicit AnimGraphExecutor(AnimGraph& graph);
public:
/// <summary>
/// Updates the graph animation.
/// </summary>
@@ -891,7 +863,6 @@ public:
void ResetBuckets(AnimGraphContext& context, AnimGraphBase* graph);
private:
Value eatBox(Node* caller, Box* box) override;
Graph* GetCurrentGraph() const override;

View File

@@ -516,7 +516,7 @@ void AnimGraphExecutor::ProcessGroupParameters(Box* box, Node* node, Value& valu
auto& context = Context.Get();
switch (node->TypeID)
{
// Get
// Get
case 1:
{
// Get parameter
@@ -628,7 +628,7 @@ void AnimGraphExecutor::ProcessGroupTools(Box* box, Node* nodeBase, Value& value
auto node = (AnimGraphNode*)nodeBase;
switch (node->TypeID)
{
// Time
// Time
case 5:
{
auto& bucket = context.Data->State[node->BucketIndex].Animation;
@@ -655,11 +655,11 @@ void AnimGraphExecutor::ProcessGroupAnimation(Box* boxBase, Node* nodeBase, Valu
auto node = (AnimGraphNode*)nodeBase;
switch (node->TypeID)
{
// Animation Output
// Animation Output
case 1:
value = tryGetValue(box, Value::Null);
break;
// Animation
// Animation
case 2:
{
const auto anim = node->Assets[0].As<Animation>();
@@ -670,7 +670,7 @@ void AnimGraphExecutor::ProcessGroupAnimation(Box* boxBase, Node* nodeBase, Valu
switch (box->ID)
{
// Animation
// Animation
case 0:
{
const float length = anim ? anim->GetLength() : 0.0f;
@@ -690,21 +690,21 @@ void AnimGraphExecutor::ProcessGroupAnimation(Box* boxBase, Node* nodeBase, Valu
break;
}
// Normalized Time
// Normalized Time
case 1:
value = startTimePos + bucket.TimePosition;
if (anim && anim->IsLoaded())
value.AsFloat /= anim->GetLength();
break;
// Time
// Time
case 2:
value = startTimePos + bucket.TimePosition;
break;
// Length
// Length
case 3:
value = anim ? anim->GetLength() : 0.0f;
break;
// Is Playing
// Is Playing
case 4:
// If anim was updated during this or a previous frame
value = bucket.LastUpdateFrame >= context.CurrentFrameIndex - 1;
@@ -712,7 +712,7 @@ void AnimGraphExecutor::ProcessGroupAnimation(Box* boxBase, Node* nodeBase, Valu
}
break;
}
// Transform Bone (local/model space)
// Transform Bone (local/model space)
case 3:
case 4:
{
@@ -762,7 +762,7 @@ void AnimGraphExecutor::ProcessGroupAnimation(Box* boxBase, Node* nodeBase, Valu
value = nodes;
break;
}
// Local To Model
// Local To Model
case 5:
{
// [Deprecated on 15.05.2020, expires on 15.05.2021]
@@ -794,7 +794,7 @@ void AnimGraphExecutor::ProcessGroupAnimation(Box* boxBase, Node* nodeBase, Valu
value = dst;*/
break;
}
// Model To Local
// Model To Local
case 6:
{
// [Deprecated on 15.05.2020, expires on 15.05.2021]
@@ -833,7 +833,7 @@ void AnimGraphExecutor::ProcessGroupAnimation(Box* boxBase, Node* nodeBase, Valu
value = dst;*/
break;
}
// Copy Bone
// Copy Bone
case 7:
{
// [Deprecated on 13.05.2020, expires on 13.05.2021]
@@ -885,7 +885,7 @@ void AnimGraphExecutor::ProcessGroupAnimation(Box* boxBase, Node* nodeBase, Valu
value = nodes;
break;
}
// Get Bone Transform
// Get Bone Transform
case 8:
{
// [Deprecated on 13.05.2020, expires on 13.05.2021]
@@ -899,7 +899,7 @@ void AnimGraphExecutor::ProcessGroupAnimation(Box* boxBase, Node* nodeBase, Valu
value = Variant(Transform::Identity);
break;
}
// Blend
// Blend
case 9:
{
const float alpha = Math::Saturate((float)tryGetValue(node->GetBox(3), node->Values[0]));
@@ -909,12 +909,12 @@ void AnimGraphExecutor::ProcessGroupAnimation(Box* boxBase, Node* nodeBase, Valu
{
value = tryGetValue(node->GetBox(1), Value::Null);
}
// Only B
// Only B
else if (Math::NearEqual(alpha, 1.0f, ANIM_GRAPH_BLEND_THRESHOLD))
{
value = tryGetValue(node->GetBox(2), Value::Null);
}
// Blend A and B
// Blend A and B
else
{
const auto valueA = tryGetValue(node->GetBox(1), Value::Null);
@@ -938,7 +938,7 @@ void AnimGraphExecutor::ProcessGroupAnimation(Box* boxBase, Node* nodeBase, Valu
break;
}
// Blend Additive
// Blend Additive
case 10:
{
const float alpha = Math::Saturate((float)tryGetValue(node->GetBox(3), node->Values[0]));
@@ -948,7 +948,7 @@ void AnimGraphExecutor::ProcessGroupAnimation(Box* boxBase, Node* nodeBase, Valu
{
value = tryGetValue(node->GetBox(1), Value::Null);
}
// Blend A and B
// Blend A and B
else
{
const auto valueA = tryGetValue(node->GetBox(1), Value::Null);
@@ -985,7 +985,7 @@ void AnimGraphExecutor::ProcessGroupAnimation(Box* boxBase, Node* nodeBase, Valu
break;
}
// Blend with Mask
// Blend with Mask
case 11:
{
const float alpha = Math::Saturate((float)tryGetValue(node->GetBox(3), node->Values[0]));
@@ -996,7 +996,7 @@ void AnimGraphExecutor::ProcessGroupAnimation(Box* boxBase, Node* nodeBase, Valu
{
value = tryGetValue(node->GetBox(1), Value::Null);
}
// Blend A and B with mask
// Blend A and B with mask
else
{
auto valueA = tryGetValue(node->GetBox(1), Value::Null);
@@ -1033,7 +1033,7 @@ void AnimGraphExecutor::ProcessGroupAnimation(Box* boxBase, Node* nodeBase, Valu
break;
}
// Multi Blend 1D
// Multi Blend 1D
case 12:
{
ASSERT(box->ID == 0);
@@ -1122,7 +1122,7 @@ void AnimGraphExecutor::ProcessGroupAnimation(Box* boxBase, Node* nodeBase, Valu
break;
}
// Multi Blend 2D
// Multi Blend 2D
case 13:
{
ASSERT(box->ID == 0);
@@ -1304,7 +1304,7 @@ void AnimGraphExecutor::ProcessGroupAnimation(Box* boxBase, Node* nodeBase, Valu
break;
}
// Blend Pose
// Blend Pose
case 14:
{
ASSERT(box->ID == 0);
@@ -1353,7 +1353,7 @@ void AnimGraphExecutor::ProcessGroupAnimation(Box* boxBase, Node* nodeBase, Valu
break;
}
// Get Root Motion
// Get Root Motion
case 15:
{
auto pose = tryGetValue(node->GetBox(2), Value::Null);
@@ -1384,7 +1384,7 @@ void AnimGraphExecutor::ProcessGroupAnimation(Box* boxBase, Node* nodeBase, Valu
}
break;
}
// Set Root Motion
// Set Root Motion
case 16:
{
auto pose = tryGetValue(node->GetBox(1), Value::Null);
@@ -1402,7 +1402,7 @@ void AnimGraphExecutor::ProcessGroupAnimation(Box* boxBase, Node* nodeBase, Valu
value = nodes;
break;
}
// Add Root Motion
// Add Root Motion
case 17:
{
auto pose = tryGetValue(node->GetBox(1), Value::Null);
@@ -1420,7 +1420,7 @@ void AnimGraphExecutor::ProcessGroupAnimation(Box* boxBase, Node* nodeBase, Valu
value = nodes;
break;
}
// State Machine
// State Machine
case 18:
{
const int32 maxTransitionsPerUpdate = node->Values[2].AsInt;
@@ -1581,51 +1581,51 @@ void AnimGraphExecutor::ProcessGroupAnimation(Box* boxBase, Node* nodeBase, Valu
break;
}
// Entry
// Entry
case 19:
{
// Not used
CRASH;
break;
}
// State
// State
case 20:
{
// Not used
CRASH;
break;
}
// State Output
// State Output
case 21:
value = box->HasConnection() ? eatBox(nodeBase, box->FirstConnection()) : Value::Null;
break;
// Rule Output
// Rule Output
case 22:
value = box->HasConnection() ? eatBox(nodeBase, box->FirstConnection()) : Value::Null;
break;
// Transition Source State Anim
// Transition Source State Anim
case 23:
{
const AnimGraphTransitionData& transitionsData = context.TransitionData;
switch (box->ID)
{
// Length
// Length
case 0:
value = transitionsData.Length;
break;
// Time
// Time
case 1:
value = transitionsData.Position;
break;
// Normalized Time
// Normalized Time
case 2:
value = transitionsData.Position / transitionsData.Length;
break;
// Remaining Time
// Remaining Time
case 3:
value = transitionsData.Length - transitionsData.Position;
break;
// Remaining Normalized Time
// Remaining Normalized Time
case 4:
value = 1.0f - (transitionsData.Position / transitionsData.Length);
break;
@@ -1634,7 +1634,7 @@ void AnimGraphExecutor::ProcessGroupAnimation(Box* boxBase, Node* nodeBase, Valu
}
break;
}
// Animation Graph Function
// Animation Graph Function
case 24:
{
// Load function graph
@@ -1683,7 +1683,7 @@ void AnimGraphExecutor::ProcessGroupAnimation(Box* boxBase, Node* nodeBase, Valu
context.GraphStack.Pop();
break;
}
// Transform Bone (local/model space)
// Transform Bone (local/model space)
case 25:
case 26:
{
@@ -1741,7 +1741,7 @@ void AnimGraphExecutor::ProcessGroupAnimation(Box* boxBase, Node* nodeBase, Valu
value = nodes;
break;
}
// Copy Node
// Copy Node
case 27:
{
// Get input
@@ -1790,7 +1790,7 @@ void AnimGraphExecutor::ProcessGroupAnimation(Box* boxBase, Node* nodeBase, Valu
value = nodes;
break;
}
// Get Node Transform (model space)
// Get Node Transform (model space)
case 28:
{
// Get input
@@ -1802,7 +1802,7 @@ void AnimGraphExecutor::ProcessGroupAnimation(Box* boxBase, Node* nodeBase, Valu
value = Variant(Transform::Identity);
break;
}
// Aim IK
// Aim IK
case 29:
{
// Get input
@@ -1847,7 +1847,7 @@ void AnimGraphExecutor::ProcessGroupAnimation(Box* boxBase, Node* nodeBase, Valu
value = nodes;
break;
}
// Get Node Transform (local space)
// Get Node Transform (local space)
case 30:
{
// Get input
@@ -1859,7 +1859,7 @@ void AnimGraphExecutor::ProcessGroupAnimation(Box* boxBase, Node* nodeBase, Valu
value = Variant(Transform::Identity);
break;
}
// Two Bone IK
// Two Bone IK
case 31:
{
// Get input
@@ -2023,7 +2023,7 @@ void AnimGraphExecutor::ProcessGroupFunction(Box* boxBase, Node* node, Value& va
return;
switch (node->TypeID)
{
// Function Input
// Function Input
case 1:
{
// Find the function call

View File

@@ -12,7 +12,6 @@
class FLAXENGINE_API InverseKinematics
{
public:
/// <summary>
/// Rotates a node so it aims at a target. Solves the transformation (rotation) that needs to be applied to the node such that a provided forward vector (in node local space) aims at the target position (in skeleton model space).
/// </summary>

View File

@@ -13,9 +13,8 @@
/// </summary>
API_CLASS(NoSpawn) class FLAXENGINE_API SceneAnimation final : public BinaryAsset
{
DECLARE_BINARY_ASSET_HEADER(SceneAnimation, 1);
DECLARE_BINARY_ASSET_HEADER(SceneAnimation, 1);
public:
/// <summary>
/// The animation timeline track data.
/// </summary>
@@ -412,12 +411,10 @@ public:
};
private:
BytesContainer _data;
MemoryWriteStream _runtimeData;
public:
/// <summary>
/// The frames amount per second of the timeline animation.
/// </summary>
@@ -439,14 +436,12 @@ public:
int32 TrackStatesCount;
public:
/// <summary>
/// Gets the animation duration (in seconds).
/// </summary>
API_PROPERTY() float GetDuration() const;
public:
/// <summary>
/// Gets the serialized timeline data.
/// </summary>
@@ -466,14 +461,12 @@ public:
#endif
public:
// [BinaryAsset]
#if USE_EDITOR
void GetReferences(Array<Guid>& output) const override;
#endif
protected:
// [SceneAnimationBase]
LoadResult load() override;
void unload(bool isReloading) override;

View File

@@ -13,7 +13,7 @@
/// </summary>
API_CLASS() class FLAXENGINE_API SceneAnimationPlayer : public Actor, public IPostFxSettingsProvider
{
DECLARE_SCENE_OBJECT(SceneAnimationPlayer);
DECLARE_SCENE_OBJECT(SceneAnimationPlayer);
/// <summary>
/// Describes the scene animation updates frequency.
@@ -32,7 +32,6 @@ DECLARE_SCENE_OBJECT(SceneAnimationPlayer);
};
private:
enum class PlayState
{
Stopped,
@@ -74,7 +73,6 @@ private:
} _postFxSettings;
public:
/// <summary>
/// The scene animation to play.
/// </summary>
@@ -136,7 +134,6 @@ public:
bool UsePrefabObjects = false;
public:
/// <summary>
/// Gets the value that determines whether the scene animation is playing.
/// </summary>
@@ -209,7 +206,6 @@ public:
API_FUNCTION() void MapTrack(const StringView& from, const Guid& to);
private:
void Restore(SceneAnimation* anim, int32 stateIndexOffset);
bool TickPropertyTrack(int32 trackIndex, int32 stateIndexOffset, SceneAnimation* anim, float time, const SceneAnimation::Track& track, TrackInstance& state, void* target);
typedef Array<SceneAnimation*, FixedAllocation<8>> CallStack;
@@ -219,7 +215,6 @@ private:
void ResetState();
public:
// [Actor]
bool HasContentLoaded() const override;
void Serialize(SerializeStream& stream, const void* otherObj) override;
@@ -237,7 +232,6 @@ public:
void Blend(PostProcessSettings& other, float weight) override;
protected:
// [Actor]
void BeginPlay(SceneBeginData* data) override;
void EndPlay() override;

View File

@@ -23,19 +23,17 @@
/// </summary>
API_CLASS(Abstract, NoSpawn) class FLAXENGINE_API Asset : public ManagedScriptingObject
{
DECLARE_SCRIPTING_TYPE_NO_SPAWN(Asset);
DECLARE_SCRIPTING_TYPE_NO_SPAWN(Asset);
friend Content;
friend LoadAssetTask;
friend class ContentService;
public:
/// <summary>
/// The asset loading result.
/// </summary>
DECLARE_ENUM_7(LoadResult, Ok, Failed, MissingDataChunk, CannotLoadData, CannotLoadStorage, CannotLoadInitData, InvalidData);
protected:
volatile int64 _refCount;
ContentLoadTask* _loadingTask;
@@ -45,7 +43,6 @@ protected:
int8 _isVirtual : 1; // Indicates that asset is pure virtual (generated or temporary, has no storage so won't be saved)
public:
/// <summary>
/// Initializes a new instance of the <see cref="Asset"/> class.
/// </summary>
@@ -54,7 +51,6 @@ public:
explicit Asset(const SpawnParams& params, const AssetInfo* info);
public:
typedef Delegate<Asset*> EventType;
/// <summary>
@@ -78,7 +74,6 @@ public:
CriticalSection Locker;
public:
/// <summary>
/// Gets asset's reference count. Asset will be automatically unloaded when this reaches zero.
/// </summary>
@@ -101,7 +96,6 @@ public:
}
public:
/// <summary>
/// Gets the path to the asset storage file. In Editor it reflects the actual file, in cooked Game, it fakes the Editor path to be informative for developers.
/// </summary>
@@ -143,7 +137,6 @@ public:
#endif
public:
/// <summary>
/// Reloads the asset.
/// </summary>
@@ -195,7 +188,6 @@ public:
void DeleteManaged();
protected:
/// <summary>
/// Creates the loading tasks sequence (allows to inject custom tasks to asset loading logic).
/// </summary>
@@ -225,7 +217,6 @@ protected:
virtual void unload(bool isReloading) = 0;
protected:
virtual bool IsInternalType() const;
bool onLoad(LoadAssetTask* task);
@@ -237,7 +228,6 @@ protected:
#endif
public:
// [ManagedScriptingObject]
String ToString() const override;
void OnDeleteObject() override;

View File

@@ -10,7 +10,7 @@
/// </summary>
API_STRUCT() struct AssetInfo
{
DECLARE_SCRIPTING_TYPE_MINIMAL(AssetInfo);
DECLARE_SCRIPTING_TYPE_MINIMAL(AssetInfo);
/// <summary>
/// Unique ID.
@@ -28,7 +28,6 @@ DECLARE_SCRIPTING_TYPE_MINIMAL(AssetInfo);
API_FIELD() String Path;
public:
/// <summary>
/// Initializes a new instance of the <see cref="AssetInfo"/> struct.
/// </summary>
@@ -51,7 +50,6 @@ public:
}
public:
/// <summary>
/// Gets the string.
/// </summary>

View File

@@ -10,15 +10,12 @@
class FLAXENGINE_API AssetReferenceBase
{
public:
typedef Delegate<> EventType;
protected:
Asset* _asset = nullptr;
public:
/// <summary>
/// The asset loaded event (fired when asset gets loaded or is already loaded after change).
/// </summary>
@@ -48,7 +45,6 @@ public:
~AssetReferenceBase();
public:
/// <summary>
/// Gets the asset ID or Guid::Empty if not set.
/// </summary>
@@ -71,7 +67,6 @@ public:
String ToString() const;
protected:
void OnSet(Asset* asset);
void OnLoaded(Asset* asset);
void OnUnloaded(Asset* asset);
@@ -84,12 +79,10 @@ template<typename T>
API_CLASS(InBuild) class AssetReference : public AssetReferenceBase
{
public:
typedef T AssetType;
typedef AssetReference<T> Type;
public:
/// <summary>
/// Initializes a new instance of the <see cref="AssetReference"/> class.
/// </summary>
@@ -139,7 +132,6 @@ public:
}
public:
FORCE_INLINE AssetReference& operator=(const AssetReference& other)
{
OnSet(other.Get());
@@ -220,7 +212,6 @@ public:
}
public:
/// <summary>
/// Sets the asset reference.
/// </summary>

View File

@@ -14,14 +14,14 @@ class AnimEvent;
/// </summary>
API_CLASS(NoSpawn) class FLAXENGINE_API Animation : public BinaryAsset
{
DECLARE_BINARY_ASSET_HEADER(Animation, 1);
DECLARE_BINARY_ASSET_HEADER(Animation, 1);
/// <summary>
/// Contains basic information about the animation asset contents.
/// </summary>
API_STRUCT() struct FLAXENGINE_API InfoData
{
DECLARE_SCRIPTING_TYPE_NO_SPAWN(InfoData);
DECLARE_SCRIPTING_TYPE_NO_SPAWN(InfoData);
/// <summary>
/// Length of the animation in seconds.
@@ -62,14 +62,12 @@ DECLARE_BINARY_ASSET_HEADER(Animation, 1);
};
private:
#if USE_EDITOR
bool _registeredForScriptingReload = false;
void OnScriptsReloadStart();
#endif
public:
/// <summary>
/// The animation data.
/// </summary>
@@ -92,7 +90,6 @@ public:
Dictionary<SkinnedModel*, NodeToChannel> MappingCache;
public:
/// <summary>
/// Gets the length of the animation (in seconds).
/// </summary>
@@ -160,16 +157,13 @@ public:
#endif
private:
void OnSkinnedModelUnloaded(Asset* obj);
public:
// [BinaryAsset]
void OnScriptingDispose() override;
protected:
// [BinaryAsset]
LoadResult load() override;
void unload(bool isReloading) override;

View File

@@ -10,9 +10,8 @@
/// </summary>
API_CLASS(NoSpawn) class FLAXENGINE_API AnimationGraph : public BinaryAsset
{
DECLARE_BINARY_ASSET_HEADER(AnimationGraph, 1);
DECLARE_BINARY_ASSET_HEADER(AnimationGraph, 1);
public:
/// <summary>
/// The animation graph.
/// </summary>
@@ -24,7 +23,6 @@ public:
AnimGraphExecutor GraphExecutor;
public:
/// <summary>
/// Gets the base model asset used for the animation preview and the skeleton layout source.
/// </summary>
@@ -58,20 +56,17 @@ public:
API_FUNCTION() bool SaveSurface(BytesContainer& data);
private:
void FindDependencies(AnimGraphBase* graph);
#endif
public:
// [BinaryAsset]
#if USE_EDITOR
void GetReferences(Array<Guid>& output) const override;
#endif
protected:
// [BinaryAsset]
LoadResult load() override;
void unload(bool isReloading) override;

View File

@@ -147,7 +147,6 @@ void AnimationGraphFunction::ProcessGraphForSignature(AnimGraphBase* graph, bool
p.Type = GetGraphFunctionTypeName_Deprecated(node.Values[0]);
#endif
p.Name = name;
}
}
else if (node.Type == GRAPH_NODE_MAKE_TYPE(16, 2)) // Function Output

View File

@@ -10,9 +10,8 @@
/// </summary>
API_CLASS(NoSpawn) class FLAXENGINE_API AnimationGraphFunction : public BinaryAsset
{
DECLARE_BINARY_ASSET_HEADER(AnimationGraphFunction, 1);
DECLARE_BINARY_ASSET_HEADER(AnimationGraphFunction, 1);
public:
/// <summary>
/// The loaded anim graph function graph data (serialized anim graph).
/// </summary>
@@ -59,11 +58,9 @@ public:
#endif
private:
void ProcessGraphForSignature(AnimGraphBase* graph, bool canUseOutputs);
protected:
// [BinaryAsset]
LoadResult load() override;
void unload(bool isReloading) override;

View File

@@ -9,5 +9,5 @@
/// </summary>
API_CLASS(NoSpawn) class FLAXENGINE_API CubeTexture : public TextureBase
{
DECLARE_BINARY_ASSET_HEADER(CubeTexture, TexturesSerializedVersion);
DECLARE_BINARY_ASSET_HEADER(CubeTexture, TexturesSerializedVersion);
};

View File

@@ -9,10 +9,9 @@
/// </summary>
API_CLASS(NoSpawn) class FLAXENGINE_API IESProfile : public TextureBase
{
DECLARE_BINARY_ASSET_HEADER(IESProfile, TexturesSerializedVersion);
DECLARE_BINARY_ASSET_HEADER(IESProfile, TexturesSerializedVersion);
public:
struct CustomDataLayout
{
float Brightness;
@@ -20,7 +19,6 @@ public:
};
public:
/// <summary>
/// The light brightness in Lumens, imported from IES profile.
/// </summary>
@@ -32,7 +30,6 @@ public:
API_FIELD() float TextureMultiplier;
protected:
// [BinaryAsset]
bool init(AssetInitData& initData) override;
};

View File

@@ -12,13 +12,11 @@ class MaterialShader;
/// </summary>
API_CLASS(NoSpawn) class FLAXENGINE_API Material : public ShaderAssetTypeBase<MaterialBase>
{
DECLARE_BINARY_ASSET_HEADER(Material, ShadersSerializedVersion);
DECLARE_BINARY_ASSET_HEADER(Material, ShadersSerializedVersion);
private:
MaterialShader* _materialShader = nullptr;
public:
/// <summary>
/// Tries to load surface graph from the asset.
/// </summary>
@@ -39,7 +37,6 @@ public:
#endif
public:
// [MaterialBase]
bool IsMaterialInstance() const override;
@@ -58,7 +55,6 @@ public:
#endif
protected:
// [MaterialBase]
LoadResult load() override;
void unload(bool isReloading) override;

View File

@@ -12,9 +12,8 @@
/// <seealso cref="FlaxEngine.BinaryAsset" />
API_CLASS(Abstract, NoSpawn) class FLAXENGINE_API MaterialBase : public BinaryAsset, public IMaterial
{
DECLARE_ASSET_HEADER(MaterialBase);
DECLARE_ASSET_HEADER(MaterialBase);
public:
/// <summary>
/// The material parameters collection.
/// </summary>
@@ -32,7 +31,6 @@ public:
virtual bool IsMaterialInstance() const = 0;
public:
/// <summary>
/// Gets the material parameters collection.
/// </summary>
@@ -78,7 +76,6 @@ public:
API_FUNCTION() MaterialInstance* CreateVirtualInstance();
public:
// [BinaryAsset]
#if USE_EDITOR
void GetReferences(Array<Guid>& output) const override

View File

@@ -10,9 +10,8 @@
/// </summary>
API_CLASS(NoSpawn) class FLAXENGINE_API MaterialFunction : public BinaryAsset
{
DECLARE_BINARY_ASSET_HEADER(MaterialFunction, 1);
DECLARE_BINARY_ASSET_HEADER(MaterialFunction, 1);
public:
#if COMPILE_WITH_MATERIAL_GRAPH
/// <summary>
@@ -60,7 +59,6 @@ public:
#endif
protected:
// [BinaryAsset]
LoadResult load() override;
void unload(bool isReloading) override;

View File

@@ -9,13 +9,11 @@
/// </summary>
API_CLASS(NoSpawn) class FLAXENGINE_API MaterialInstance : public MaterialBase
{
DECLARE_BINARY_ASSET_HEADER(MaterialInstance, 4);
DECLARE_BINARY_ASSET_HEADER(MaterialInstance, 4);
private:
MaterialBase* _baseMaterial = nullptr;
public:
/// <summary>
/// Gets the base material. If value gets changed parameters collection is restored to the default values of the new material.
/// </summary>
@@ -43,14 +41,12 @@ public:
#endif
private:
void OnBaseSet();
void OnBaseUnset();
void OnBaseUnloaded(Asset* p);
void OnBaseParamsChanged();
public:
// [MaterialBase]
bool IsMaterialInstance() const override;
#if USE_EDITOR
@@ -67,7 +63,6 @@ public:
void Bind(BindParameters& params) override;
protected:
// [MaterialBase]
LoadResult load() override;
void unload(bool isReloading) override;

View File

@@ -13,16 +13,14 @@ class StreamModelLODTask;
/// </summary>
API_CLASS(NoSpawn) class FLAXENGINE_API Model : public ModelBase
{
DECLARE_BINARY_ASSET_HEADER(Model, 25);
DECLARE_BINARY_ASSET_HEADER(Model, 25);
friend Mesh;
friend StreamModelLODTask;
private:
int32 _loadedLODs = 0;
StreamModelLODTask* _streamingTask = nullptr;
public:
/// <summary>
/// Model level of details. The first entry is the highest quality LOD0 followed by more optimized versions.
/// </summary>
@@ -34,14 +32,12 @@ public:
API_FIELD(ReadOnly) SDFData SDF;
public:
/// <summary>
/// Finalizes an instance of the <see cref="Model"/> class.
/// </summary>
~Model();
public:
/// <summary>
/// Gets a value indicating whether this instance is initialized.
/// </summary>
@@ -103,7 +99,6 @@ public:
}
public:
/// <summary>
/// Requests the LOD data asynchronously (creates task that will gather chunk data or null if already here).
/// </summary>
@@ -127,7 +122,6 @@ public:
}
public:
/// <summary>
/// Determines if there is an intersection between the Model and a Ray in given world using given instance.
/// </summary>
@@ -156,7 +150,6 @@ public:
API_FUNCTION() BoundingBox GetBox(int32 lodIndex = 0) const;
public:
/// <summary>
/// Draws the meshes. Binds vertex and index buffers and invokes the draw calls.
/// </summary>
@@ -185,7 +178,6 @@ public:
void Draw(const RenderContext& renderContext, const Mesh::DrawInfo& info);
public:
/// <summary>
/// Setups the model LODs collection including meshes creation.
/// </summary>
@@ -205,7 +197,7 @@ public:
API_FUNCTION() bool Save(bool withMeshDataFromGpu = false, const StringView& path = StringView::Empty);
#endif
/// <summary>
/// Generates the Sign Distant Field for this model.
/// </summary>
@@ -223,7 +215,6 @@ public:
API_FUNCTION() void SetSDF(const SDFData& sdf);
private:
/// <summary>
/// Initializes this model to an empty collection of LODs with meshes.
/// </summary>
@@ -232,7 +223,6 @@ private:
bool Init(const Span<int32>& meshesCountPerLod);
public:
// [ModelBase]
void SetupMaterialSlots(int32 slotsCount) override;
int32 GetLODsCount() const override;
@@ -251,7 +241,6 @@ public:
Task* CreateStreamingTask(int32 residency) override;
protected:
// [ModelBase]
LoadResult load() override;
void unload(bool isReloading) override;

View File

@@ -9,16 +9,14 @@
/// </summary>
API_CLASS(NoSpawn) class FLAXENGINE_API RawDataAsset : public BinaryAsset
{
DECLARE_BINARY_ASSET_HEADER(RawDataAsset, 1);
DECLARE_BINARY_ASSET_HEADER(RawDataAsset, 1);
public:
/// <summary>
/// The bytes array stored in the asset.
/// </summary>
API_FIELD() Array<byte> Data;
public:
#if USE_EDITOR
/// <summary>
@@ -31,7 +29,6 @@ public:
#endif
protected:
// [BinaryAsset]
LoadResult load() override;
void unload(bool isReloading) override;

View File

@@ -12,20 +12,17 @@ class GPUShader;
/// </summary>
API_CLASS(NoSpawn) class FLAXENGINE_API Shader : public ShaderAssetTypeBase<BinaryAsset>
{
DECLARE_BINARY_ASSET_HEADER(Shader, ShadersSerializedVersion);
DECLARE_BINARY_ASSET_HEADER(Shader, ShadersSerializedVersion);
private:
GPUShader* _shader;
public:
/// <summary>
/// Finalizes an instance of the <see cref="Shader"/> class.
/// </summary>
~Shader();
public:
/// <summary>
/// The GPU shader object (not null).
/// </summary>
@@ -40,7 +37,6 @@ public:
}
protected:
// [BinaryAsset]
LoadResult load() override;
void unload(bool isReloading) override;

View File

@@ -14,14 +14,12 @@ class MemoryWriteStream;
/// </summary>
API_CLASS(NoSpawn) class FLAXENGINE_API SkeletonMask : public BinaryAsset
{
DECLARE_BINARY_ASSET_HEADER(SkeletonMask, 2);
DECLARE_BINARY_ASSET_HEADER(SkeletonMask, 2);
private:
Array<String> _maskedNodes;
BitArray<> _mask;
public:
/// <summary>
/// The referenced skinned model skeleton that defines the masked nodes hierarchy.
/// </summary>
@@ -47,7 +45,6 @@ public:
}
public:
/// <summary>
/// Gets the per-skeleton-node boolean mask (read-only).
/// </summary>
@@ -66,11 +63,9 @@ public:
#endif
private:
void OnSkeletonUnload();
public:
// [BinaryAsset]
#if USE_EDITOR
void GetReferences(Array<Guid>& output) const override
@@ -83,7 +78,6 @@ public:
#endif
protected:
// [BinaryAsset]
LoadResult load() override;
void unload(bool isReloading) override;

View File

@@ -14,16 +14,14 @@ class StreamSkinnedModelLODTask;
/// </summary>
API_CLASS(NoSpawn) class FLAXENGINE_API SkinnedModel : public ModelBase
{
DECLARE_BINARY_ASSET_HEADER(SkinnedModel, 4);
DECLARE_BINARY_ASSET_HEADER(SkinnedModel, 4);
friend SkinnedMesh;
friend StreamSkinnedModelLODTask;
private:
int32 _loadedLODs = 0;
StreamSkinnedModelLODTask* _streamingTask = nullptr;
public:
/// <summary>
/// Model level of details. The first entry is the highest quality LOD0 followed by more optimized versions.
/// </summary>
@@ -35,14 +33,12 @@ public:
SkeletonData Skeleton;
public:
/// <summary>
/// Finalizes an instance of the <see cref="SkinnedModel"/> class.
/// </summary>
~SkinnedModel();
public:
/// <summary>
/// Gets a value indicating whether this instance is initialized.
/// </summary>
@@ -154,7 +150,6 @@ public:
API_PROPERTY() Array<String> GetBlendShapes();
public:
/// <summary>
/// Requests the LOD data asynchronously (creates task that will gather chunk data or null if already here).
/// </summary>
@@ -170,7 +165,6 @@ public:
void GetLODData(int32 lodIndex, BytesContainer& data) const;
public:
/// <summary>
/// Determines if there is an intersection between the SkinnedModel and a Ray in given world using given instance.
/// </summary>
@@ -199,7 +193,6 @@ public:
API_FUNCTION() BoundingBox GetBox(int32 lodIndex = 0) const;
public:
/// <summary>
/// Draws the meshes. Binds vertex and index buffers and invokes the draw calls.
/// </summary>
@@ -218,7 +211,6 @@ public:
void Draw(RenderContext& renderContext, const SkinnedMesh::DrawInfo& info);
public:
/// <summary>
/// Setups the model LODs collection including meshes creation.
/// </summary>
@@ -256,7 +248,6 @@ public:
#endif
private:
/// <summary>
/// Initializes this skinned model to an empty collection of meshes. Ensure to init SkeletonData manually after the call.
/// </summary>
@@ -265,7 +256,6 @@ private:
bool Init(const Span<int32>& meshesCountPerLod);
public:
// [ModelBase]
void SetupMaterialSlots(int32 slotsCount) override;
int32 GetLODsCount() const override;
@@ -284,7 +274,6 @@ public:
Task* CreateStreamingTask(int32 residency) override;
protected:
// [ModelBase]
LoadResult load() override;
void unload(bool isReloading) override;

View File

@@ -9,7 +9,7 @@
/// </summary>
API_CLASS(NoSpawn) class FLAXENGINE_API Texture : public TextureBase
{
DECLARE_BINARY_ASSET_HEADER(Texture, TexturesSerializedVersion);
DECLARE_BINARY_ASSET_HEADER(Texture, TexturesSerializedVersion);
/// <summary>
/// Gets the texture format type.
@@ -22,7 +22,6 @@ DECLARE_BINARY_ASSET_HEADER(Texture, TexturesSerializedVersion);
API_PROPERTY() bool IsNormalMap() const;
public:
#if USE_EDITOR
/// <summary>

View File

@@ -54,15 +54,15 @@ bool VisualScriptGraph::onNodeLoaded(Node* n)
{
switch (n->GroupID)
{
// Function
// Function
case 16:
switch (n->TypeID)
{
// Invoke Method
// Invoke Method
case 4:
n->Data.InvokeMethod.Method = nullptr;
break;
// Get/Set Field
// Get/Set Field
case 7:
case 8:
n->Data.GetSetField.Field = nullptr;
@@ -176,7 +176,7 @@ void VisualScriptExecutor::ProcessGroupParameters(Box* box, Node* node, Value& v
{
switch (node->TypeID)
{
// Get
// Get
case 3:
{
int32 paramIndex;
@@ -200,7 +200,7 @@ void VisualScriptExecutor::ProcessGroupParameters(Box* box, Node* node, Value& v
}
break;
}
// Set
// Set
case 4:
{
int32 paramIndex;
@@ -235,11 +235,11 @@ void VisualScriptExecutor::ProcessGroupTools(Box* box, Node* node, Value& value)
{
switch (node->TypeID)
{
// This Instance
// This Instance
case 19:
value = ThreadStacks.Get().Stack->Instance;
break;
// Cast
// Cast
case 25:
{
if (box->ID == 0)
@@ -297,7 +297,7 @@ void VisualScriptExecutor::ProcessGroupTools(Box* box, Node* node, Value& value)
}
break;
}
// Cast Value
// Cast Value
case 26:
{
if (box->ID == 0)
@@ -375,7 +375,7 @@ void VisualScriptExecutor::ProcessGroupFunction(Box* boxBase, Node* node, Value&
{
switch (node->TypeID)
{
// Method Override
// Method Override
case 3:
{
if (boxBase->ID == 0)
@@ -392,7 +392,7 @@ void VisualScriptExecutor::ProcessGroupFunction(Box* boxBase, Node* node, Value&
}
break;
}
// Invoke Method
// Invoke Method
case 4:
{
// Call Impulse or Pure Method
@@ -604,14 +604,14 @@ void VisualScriptExecutor::ProcessGroupFunction(Box* boxBase, Node* node, Value&
}
break;
}
// Return
// Return
case 5:
{
auto& scope = ThreadStacks.Get().Stack->Scope;
scope->FunctionReturn = tryGetValue(node->GetBox(1), Value::Zero);
break;
}
// Function
// Function
case 6:
{
if (boxBase->ID == 0)
@@ -630,7 +630,7 @@ void VisualScriptExecutor::ProcessGroupFunction(Box* boxBase, Node* node, Value&
}
break;
}
// Get Field
// Get Field
case 7:
{
auto& cache = node->Data.GetSetField;
@@ -716,7 +716,7 @@ void VisualScriptExecutor::ProcessGroupFunction(Box* boxBase, Node* node, Value&
}
break;
}
// Get Field
// Get Field
case 8:
{
auto& cache = node->Data.GetSetField;
@@ -809,7 +809,7 @@ void VisualScriptExecutor::ProcessGroupFunction(Box* boxBase, Node* node, Value&
eatBox(node, returnedImpulse->FirstConnection());
break;
}
// Bind/Unbind
// Bind/Unbind
case 9:
case 10:
{
@@ -937,7 +937,7 @@ void VisualScriptExecutor::ProcessGroupFlow(Box* boxBase, Node* node, Value& val
{
switch (node->TypeID)
{
// If
// If
case 1:
{
const bool condition = (bool)tryGetValue(node->GetBox(1), Value::Zero);
@@ -946,7 +946,7 @@ void VisualScriptExecutor::ProcessGroupFlow(Box* boxBase, Node* node, Value& val
eatBox(node, boxBase->FirstConnection());
break;
}
// For Loop
// For Loop
case 2:
{
const auto scope = ThreadStacks.Get().Stack->Scope;
@@ -959,7 +959,7 @@ void VisualScriptExecutor::ProcessGroupFlow(Box* boxBase, Node* node, Value& val
}
switch (boxBase->ID)
{
// Loop
// Loop
case 0:
{
if (iteratorIndex == scope->ReturnedValues.Count())
@@ -980,13 +980,13 @@ void VisualScriptExecutor::ProcessGroupFlow(Box* boxBase, Node* node, Value& val
eatBox(node, boxBase->FirstConnection());
break;
}
// Break
// Break
case 3:
// Reset loop iterator
if (iteratorIndex != scope->ReturnedValues.Count())
scope->ReturnedValues[iteratorIndex].Value.AsInt = MAX_int32 - 1;
break;
// Index
// Index
case 5:
if (iteratorIndex != scope->ReturnedValues.Count())
value = scope->ReturnedValues[iteratorIndex].Value;
@@ -994,7 +994,7 @@ void VisualScriptExecutor::ProcessGroupFlow(Box* boxBase, Node* node, Value& val
}
break;
}
// While Loop
// While Loop
case 3:
{
const auto scope = ThreadStacks.Get().Stack->Scope;
@@ -1007,7 +1007,7 @@ void VisualScriptExecutor::ProcessGroupFlow(Box* boxBase, Node* node, Value& val
}
switch (boxBase->ID)
{
// Loop
// Loop
case 0:
{
if (iteratorIndex == scope->ReturnedValues.Count())
@@ -1027,13 +1027,13 @@ void VisualScriptExecutor::ProcessGroupFlow(Box* boxBase, Node* node, Value& val
eatBox(node, boxBase->FirstConnection());
break;
}
// Break
// Break
case 2:
// Reset loop iterator
if (iteratorIndex != scope->ReturnedValues.Count())
scope->ReturnedValues[iteratorIndex].Value.AsInt = -1;
break;
// Index
// Index
case 4:
if (iteratorIndex != scope->ReturnedValues.Count())
value = scope->ReturnedValues[iteratorIndex].Value;
@@ -1041,7 +1041,7 @@ void VisualScriptExecutor::ProcessGroupFlow(Box* boxBase, Node* node, Value& val
}
break;
}
// Sequence
// Sequence
case 4:
{
const int32 count = (int32)node->Values[0];
@@ -1053,7 +1053,7 @@ void VisualScriptExecutor::ProcessGroupFlow(Box* boxBase, Node* node, Value& val
}
break;
}
// Branch On Enum
// Branch On Enum
case 5:
{
const Value v = tryGetValue(node->GetBox(1), Value::Null);
@@ -1075,7 +1075,7 @@ void VisualScriptExecutor::ProcessGroupFlow(Box* boxBase, Node* node, Value& val
}
break;
}
// Delay
// Delay
case 6:
{
boxBase = node->GetBox(2);
@@ -1115,7 +1115,7 @@ void VisualScriptExecutor::ProcessGroupFlow(Box* boxBase, Node* node, Value& val
}
break;
}
// Array For Each
// Array For Each
case 7:
{
const auto scope = ThreadStacks.Get().Stack->Scope;
@@ -1135,7 +1135,7 @@ void VisualScriptExecutor::ProcessGroupFlow(Box* boxBase, Node* node, Value& val
}
switch (boxBase->ID)
{
// Loop
// Loop
case 0:
{
if (iteratorIndex == scope->ReturnedValues.Count())
@@ -1173,18 +1173,18 @@ void VisualScriptExecutor::ProcessGroupFlow(Box* boxBase, Node* node, Value& val
eatBox(node, boxBase->FirstConnection());
break;
}
// Break
// Break
case 2:
// Reset loop iterator
if (iteratorIndex != scope->ReturnedValues.Count())
scope->ReturnedValues[iteratorIndex].Value.AsInt = MAX_int32 - 1;
break;
// Item
// Item
case 4:
if (iteratorIndex != scope->ReturnedValues.Count() && arrayIndex != scope->ReturnedValues.Count())
value = scope->ReturnedValues[arrayIndex].Value.AsArray()[(int32)scope->ReturnedValues[iteratorIndex].Value];
break;
// Index
// Index
case 5:
if (iteratorIndex != scope->ReturnedValues.Count())
value = (int32)scope->ReturnedValues[iteratorIndex].Value;
@@ -1702,13 +1702,13 @@ void VisualScriptingBinaryModule::OnScriptsReloading()
{
switch (node.Type)
{
// Invoke Method
// Invoke Method
case GRAPH_NODE_MAKE_TYPE(16, 4):
{
node.Data.InvokeMethod.Method = nullptr;
break;
}
// Get/Set Field
// Get/Set Field
case GRAPH_NODE_MAKE_TYPE(16, 7):
case GRAPH_NODE_MAKE_TYPE(16, 8):
{
@@ -2224,7 +2224,7 @@ String VisualScripting::GetStackTrace()
String node;
switch (frame->Node->Type)
{
// Get/Set Parameter
// Get/Set Parameter
case GRAPH_NODE_MAKE_TYPE(6, 3):
case GRAPH_NODE_MAKE_TYPE(6, 4):
{
@@ -2233,19 +2233,19 @@ String VisualScripting::GetStackTrace()
node += param ? param->Name : ((Guid)frame->Node->Values[0]).ToString();
break;
}
// Method Override
// Method Override
case GRAPH_NODE_MAKE_TYPE(16, 3):
node = (StringView)frame->Node->Values[0];
node += TEXT("()");
break;
// Invoke Method
// Invoke Method
case GRAPH_NODE_MAKE_TYPE(16, 4):
node = (StringView)frame->Node->Values[0];
node += TEXT(".");
node += (StringView)frame->Node->Values[1];
node += TEXT("()");
break;
// Function
// Function
case GRAPH_NODE_MAKE_TYPE(16, 6):
node = String(frame->Script->GetScriptTypeName());
for (int32 i = 0; i < frame->Script->_methods.Count(); i++)

View File

@@ -33,7 +33,6 @@ class VisualScriptExecutor : public VisjectExecutor
{
friend VisualScripting;
public:
/// <summary>
/// Initializes a new instance of the <see cref="VisualScriptExecutor"/> class.
/// </summary>
@@ -58,12 +57,11 @@ private:
/// <seealso cref="BinaryAsset" />
API_CLASS(NoSpawn, Sealed) class FLAXENGINE_API VisualScript : public BinaryAsset
{
DECLARE_BINARY_ASSET_HEADER(VisualScript, 1);
DECLARE_BINARY_ASSET_HEADER(VisualScript, 1);
friend VisualScripting;
friend VisualScriptExecutor;
friend VisualScriptingBinaryModule;
public:
/// <summary>
/// Visual Script flag types.
/// </summary>
@@ -90,7 +88,7 @@ public:
/// </summary>
API_STRUCT() struct Metadata
{
DECLARE_SCRIPTING_TYPE_MINIMAL(Metadata);
DECLARE_SCRIPTING_TYPE_MINIMAL(Metadata);
/// <summary>
/// The base class typename.
@@ -147,7 +145,6 @@ public:
};
private:
Dictionary<Guid, Instance> _instances;
ScriptingTypeHandle _scriptingTypeHandle;
ScriptingTypeHandle _scriptingTypeHandleCached;
@@ -160,7 +157,6 @@ private:
#endif
public:
/// <summary>
/// The Visual Script graph.
/// </summary>
@@ -172,7 +168,6 @@ public:
API_FIELD(ReadOnly) Metadata Meta;
public:
/// <summary>
/// Gets the typename of the Visual Script. Identifies it's scripting type.
/// </summary>
@@ -280,7 +275,6 @@ public:
#endif
public:
// [BinaryAsset]
#if USE_EDITOR
void GetReferences(Array<Guid>& output) const override
@@ -293,14 +287,12 @@ public:
#endif
protected:
// [BinaryAsset]
LoadResult load() override;
void unload(bool isReloading) override;
AssetChunksFlag getChunksToPreload() const override;
private:
void CacheScriptingType();
};
@@ -312,25 +304,21 @@ class FLAXENGINE_API VisualScriptingBinaryModule : public BinaryModule
{
friend VisualScript;
private:
StringAnsi _name;
public:
/// <summary>
/// Initializes a new instance of the <see cref="VisualScriptingBinaryModule"/> class.
/// </summary>
VisualScriptingBinaryModule();
public:
/// <summary>
/// The visual script assets loaded into the module with exposes scripting types. Order matches the Types array.
/// </summary>
Array<AssetReference<VisualScript>> Scripts;
private:
static ScriptingObject* VisualScriptObjectSpawn(const ScriptingObjectSpawnParams& params);
#if USE_EDITOR
void OnScriptsReloading();
@@ -338,7 +326,6 @@ private:
static void OnEvent(ScriptingObject* object, Span<Variant> parameters, ScriptingTypeHandle eventType, StringView eventName);
public:
// [BinaryModule]
const StringAnsi& GetName() const override;
bool IsLoaded() const override;
@@ -363,7 +350,6 @@ public:
class FLAXENGINE_API VisualScripting
{
public:
struct NodeBoxValue
{
uint32 NodeId;

View File

@@ -12,7 +12,6 @@
class AssetsContainer : public Array<AssetReference<Asset>>
{
public:
/// <summary>
/// Loads an asset.
/// </summary>

View File

@@ -459,12 +459,10 @@ const String& BinaryAsset::GetPath() const
class InitAssetTask : public ContentLoadTask
{
private:
WeakAssetReference<BinaryAsset> _asset;
FlaxStorage::LockData _dataLock;
public:
/// <summary>
/// Initializes a new instance of the <see cref="InitAssetTask"/> class.
/// </summary>
@@ -477,7 +475,6 @@ public:
}
public:
// [ContentLoadTask]
bool HasReference(Object* obj) const override
{
@@ -485,7 +482,6 @@ public:
}
protected:
// [ContentLoadTask]
Result run() override
{
@@ -507,6 +503,7 @@ protected:
return Result::Ok;
}
void OnEnd() override
{
_dataLock.Release();

View File

@@ -21,23 +21,20 @@
/// <seealso cref="Asset" />
API_CLASS(Abstract, NoSpawn) class FLAXENGINE_API BinaryAsset : public Asset
{
DECLARE_ASSET_HEADER(BinaryAsset);
DECLARE_ASSET_HEADER(BinaryAsset);
protected:
AssetHeader _header;
FlaxStorageReference _storageRef; // Allow asset to have missing storage reference but only before asset is loaded or if it's virtual
bool _isSaving;
Array<BinaryAsset*> _dependantAssets;
public:
/// <summary>
/// Finalizes an instance of the <see cref="BinaryAsset"/> class.
/// </summary>
~BinaryAsset();
public:
/// <summary>
/// The asset storage container.
/// </summary>
@@ -58,7 +55,6 @@ public:
#endif
public:
/// <summary>
/// Gets the asset serialized version.
/// </summary>
@@ -87,7 +83,6 @@ public:
bool InitVirtual(AssetInitData& initData);
public:
#if USE_EDITOR
#if COMPILE_WITH_ASSETS_IMPORTER
@@ -128,7 +123,6 @@ public:
bool HasDependenciesModified() const;
protected:
/// <summary>
/// Called when one of the asset dependencies gets modified (it was saved or reloaded or reimported).
/// </summary>
@@ -140,7 +134,6 @@ protected:
#endif
protected:
/// <summary>
/// Initializes the specified asset.
/// </summary>
@@ -161,7 +154,6 @@ protected:
}
public:
/// <summary>
/// Gets the asset chunk.
/// </summary>
@@ -293,7 +285,6 @@ public:
#endif
protected:
/// <summary>
/// Load data from the chunks
/// </summary>
@@ -301,13 +292,11 @@ protected:
virtual LoadResult load() = 0;
private:
#if USE_EDITOR
void OnStorageReloaded(FlaxStorage* storage, bool failed);
#endif
public:
// [Asset]
#if USE_EDITOR
void OnDeleteObject() override;
@@ -315,7 +304,6 @@ public:
const String& GetPath() const final override;
protected:
// [Asset]
ContentLoadTask* createLoadingTask() override;
LoadResult loadAsset() override;

View File

@@ -578,7 +578,7 @@ bool AssetsCache::IsEntryValid(Entry& e)
return isValid;
}
}
// Check for json resource
// Check for json resource
else if (JsonStorageProxy::IsValidExtension(extension))
{
// Check Json storage layer

View File

@@ -40,7 +40,6 @@ DECLARE_ENUM_OPERATORS(AssetsCacheFlags);
class FLAXENGINE_API AssetsCache
{
public:
/// <summary>
/// The registry entry structure.
/// </summary>
@@ -75,7 +74,6 @@ public:
typedef Dictionary<String, Guid> PathsMapping;
private:
bool _isDirty;
CriticalSection _locker;
Registry _registry;
@@ -83,14 +81,12 @@ private:
String _path;
public:
/// <summary>
/// Initializes a new instance of the <see cref="AssetsCache"/> class.
/// </summary>
AssetsCache();
public:
/// <summary>
/// Gets amount of registered assets
/// </summary>
@@ -104,7 +100,6 @@ public:
}
public:
/// <summary>
/// Init registry
/// </summary>
@@ -127,7 +122,6 @@ public:
static bool Save(const StringView& path, const Registry& entries, const PathsMapping& pathsMapping, const AssetsCacheFlags flags = AssetsCacheFlags::None);
public:
/// <summary>
/// Finds the asset path by id. In editor it returns the actual asset path, at runtime it returns the mapped asset path.
/// </summary>

View File

@@ -66,7 +66,6 @@ bool findAsset(const Guid& id, const String& directory, Array<String>& tmpCache,
class ContentService : public EngineService
{
public:
ContentService()
: EngineService(TEXT("Content"), -600)
{
@@ -294,7 +293,7 @@ bool Content::GetAssetInfo(const StringView& path, AssetInfo& info)
return Cache.FindAsset(path, info);
}
}
// Check for json resource
// Check for json resource
else if (JsonStorageProxy::IsValidExtension(extension))
{
// Check Json storage layer
@@ -1081,7 +1080,7 @@ bool findAsset(const Guid& id, const String& directory, Array<String>& tmpCache,
LOG(Error, "Cannot open file '{0}' error code: {1}", path, 0);
}
}
// Check for json resource
// Check for json resource
else if (JsonStorageProxy::IsValidExtension(extension))
{
// Check Json storage layer

View File

@@ -15,7 +15,7 @@ class AssetsCache;
// Content and assets statistics container.
API_STRUCT() struct FLAXENGINE_API ContentStats
{
DECLARE_SCRIPTING_TYPE_MINIMAL(ContentStats);
DECLARE_SCRIPTING_TYPE_MINIMAL(ContentStats);
// Amount of asset objects in memory.
API_FIELD() int32 AssetsCount = 0;
@@ -32,11 +32,10 @@ DECLARE_SCRIPTING_TYPE_MINIMAL(ContentStats);
/// </summary>
API_CLASS(Static) class FLAXENGINE_API Content
{
DECLARE_SCRIPTING_TYPE_NO_SPAWN(Content);
DECLARE_SCRIPTING_TYPE_NO_SPAWN(Content);
friend Engine;
friend Asset;
public:
/// <summary>
/// The time between content pool updates.
/// </summary>
@@ -48,7 +47,6 @@ public:
static TimeSpan AssetsUnloadInterval;
public:
/// <summary>
/// Gets the assets registry.
/// </summary>
@@ -56,7 +54,6 @@ public:
static AssetsCache* GetRegistry();
public:
/// <summary>
/// Finds the asset info by id.
/// </summary>
@@ -87,7 +84,6 @@ public:
API_FUNCTION() static Array<Guid, HeapAllocation> GetAllAssetsByType(const MClass* type);
public:
/// <summary>
/// Gets the asset factory used by the given asset type id.
/// </summary>
@@ -103,7 +99,6 @@ public:
static IAssetFactory* GetAssetFactory(const AssetInfo& assetInfo);
public:
/// <summary>
/// Generates temporary asset path.
/// </summary>
@@ -111,7 +106,6 @@ public:
API_FUNCTION() static String CreateTemporaryAssetPath();
public:
/// <summary>
/// Gets content statistics.
/// </summary>
@@ -263,7 +257,6 @@ public:
static bool IsAssetTypeIdInvalid(const ScriptingTypeHandle& type, const ScriptingTypeHandle& assetType);
public:
/// <summary>
/// Finds the asset with at given path. Checks all loaded assets.
/// </summary>
@@ -279,7 +272,6 @@ public:
API_FUNCTION() static Asset* GetAsset(const Guid& id);
public:
/// <summary>
/// Deletes the specified asset.
/// </summary>
@@ -293,7 +285,6 @@ public:
API_FUNCTION(Attributes="HideInEditor") static void DeleteAsset(const StringView& path);
public:
#if USE_EDITOR
/// <summary>
@@ -364,13 +355,11 @@ public:
API_EVENT() static Delegate<Asset*> AssetReloading;
private:
static void tryCallOnLoaded(Asset* asset);
static void onAssetLoaded(Asset* asset);
static void onAssetUnload(Asset* asset);
static Asset* load(const Guid& id, const ScriptingTypeHandle& type, AssetInfo& assetInfo);
private:
static void deleteFileSafety(const StringView& path, const Guid& id);
};

View File

@@ -19,7 +19,6 @@ class FlaxStorage;
class FLAXENGINE_API BinaryAssetFactoryBase : public IAssetFactory
{
public:
/// <summary>
/// Initializes the specified asset. It's called in background before actual asset loading.
/// </summary>
@@ -28,7 +27,6 @@ public:
bool Init(BinaryAsset* asset);
protected:
virtual BinaryAsset* Create(const AssetInfo& info) = 0;
virtual bool IsVersionSupported(uint32 serializedVersion) const = 0;
#if USE_EDITOR
@@ -36,7 +34,6 @@ protected:
#endif
public:
// [IAssetFactory]
Asset* New(const AssetInfo& info) override;
Asset* NewVirtual(const AssetInfo& info) override;
@@ -50,7 +47,6 @@ template<typename T>
class BinaryAssetFactory : public BinaryAssetFactoryBase
{
public:
// [BinaryAssetFactoryBase]
bool IsVersionSupported(uint32 serializedVersion) const override
{
@@ -58,7 +54,6 @@ public:
}
protected:
// [BinaryAssetFactoryBase]
BinaryAsset* Create(const AssetInfo& info) override
{

View File

@@ -15,7 +15,6 @@ class IAssetUpgrader;
class FLAXENGINE_API IAssetFactory
{
public:
typedef Dictionary<StringView, IAssetFactory*> Collection;
/// <summary>
@@ -28,7 +27,6 @@ public:
}
public:
/// <summary>
/// Finalizes an instance of the <see cref="IAssetFactory"/> class.
/// </summary>
@@ -37,7 +35,6 @@ public:
}
public:
/// <summary>
/// Determines whenever the virtual assets are supported by this asset tpe factory.
/// </summary>

View File

@@ -13,16 +13,15 @@
class FLAXENGINE_API JsonAssetFactoryBase : public IAssetFactory
{
protected:
virtual JsonAssetBase* Create(const AssetInfo& info) = 0;
public:
// [IAssetFactory]
Asset* New(const AssetInfo& info) override
{
return Create(info);
}
Asset* NewVirtual(const AssetInfo& info) override
{
return Create(info);
@@ -37,7 +36,6 @@ template<typename T>
class JsonAssetFactory : public JsonAssetFactoryBase
{
protected:
// [JsonAssetFactoryBase]
JsonAssetBase* Create(const AssetInfo& info) override
{

View File

@@ -12,13 +12,11 @@
/// <seealso cref="Asset" />
API_CLASS(Abstract, NoSpawn) class FLAXENGINE_API JsonAssetBase : public Asset
{
DECLARE_SCRIPTING_TYPE_NO_SPAWN(JsonAssetBase);
DECLARE_SCRIPTING_TYPE_NO_SPAWN(JsonAssetBase);
protected:
String _path;
protected:
/// <summary>
/// Initializes a new instance of the <see cref="JsonAssetBase"/> class.
/// </summary>
@@ -27,7 +25,6 @@ protected:
explicit JsonAssetBase(const SpawnParams& params, const AssetInfo* info);
public:
/// <summary>
/// The parsed json document.
/// </summary>
@@ -63,7 +60,6 @@ public:
#endif
public:
// [Asset]
const String& GetPath() const override;
#if USE_EDITOR
@@ -71,7 +67,6 @@ public:
#endif
protected:
// [Asset]
LoadResult loadAsset() override;
void unload(bool isReloading) override;
@@ -86,12 +81,11 @@ protected:
/// <seealso cref="JsonAssetBase" />
API_CLASS(NoSpawn) class FLAXENGINE_API JsonAsset : public JsonAssetBase
{
DECLARE_ASSET_HEADER(JsonAsset);
DECLARE_ASSET_HEADER(JsonAsset);
private:
ScriptingType::Dtor _dtor;
public:
/// <summary>
/// The scripting type of the deserialized unmanaged object instance (e.g. PhysicalMaterial).
/// </summary>
@@ -113,7 +107,6 @@ public:
}
protected:
// [JsonAssetBase]
LoadResult loadAsset() override;
void unload(bool isReloading) override;

View File

@@ -16,7 +16,6 @@ class ContentLoadTask : public Task
friend LoadingThread;
public:
/// <summary>
/// Describes work type
/// </summary>
@@ -28,14 +27,12 @@ public:
DECLARE_ENUM_5(Result, Ok, AssetLoadError, MissingReferences, LoadDataError, TaskFailed);
private:
/// <summary>
/// Task type
/// </summary>
Type _type;
protected:
/// <summary>
/// Initializes a new instance of the <see cref="ContentLoadTask"/> class.
/// </summary>
@@ -46,7 +43,6 @@ protected:
}
public:
/// <summary>
/// Gets a task type.
/// </summary>
@@ -57,7 +53,6 @@ public:
}
public:
/// <summary>
/// Checks if async task is loading given asset resource
/// </summary>
@@ -69,11 +64,9 @@ public:
}
protected:
virtual Result run() = 0;
public:
// [Task]
String ToString() const override
{
@@ -84,7 +77,6 @@ public:
}
protected:
// [Task]
void Enqueue() override;
bool Run() override;

View File

@@ -31,7 +31,6 @@ using namespace ContentLoadingManagerImpl;
class ContentLoadingManagerService : public EngineService
{
public:
ContentLoadingManagerService()
: EngineService(TEXT("Content Loading Manager"), -500)
{

View File

@@ -14,13 +14,11 @@ class ContentLoadTask;
class LoadingThread : public IRunnable
{
protected:
volatile int64 _exitFlag;
Thread* _thread;
int32 _totalTasksDoneCount;
public:
/// <summary>
/// Init
/// </summary>
@@ -32,7 +30,6 @@ public:
~LoadingThread();
public:
/// <summary>
/// Gets the thread identifier.
/// </summary>
@@ -40,7 +37,6 @@ public:
uint64 GetID() const;
public:
/// <summary>
/// Returns true if thread has empty exit flag, so it can continue it's work
/// </summary>
@@ -61,7 +57,6 @@ public:
void Join();
public:
/// <summary>
/// Starts thread execution.
/// </summary>
@@ -76,7 +71,6 @@ public:
void Run(ContentLoadTask* task);
public:
// [IRunnable]
String ToString() const override;
int32 Run() override;
@@ -93,7 +87,6 @@ class ContentLoadingManager
friend Asset;
public:
/// <summary>
/// Checks if current execution context is thread used to load assets.
/// </summary>
@@ -110,7 +103,6 @@ public:
static LoadingThread* GetCurrentLoadThread();
public:
/// <summary>
/// Gets amount of enqueued tasks to perform.
/// </summary>

View File

@@ -170,7 +170,6 @@ public:
}
public:
/// <summary>
/// Gets the asset (or null if unassigned).
/// </summary>

View File

@@ -39,7 +39,6 @@ struct FLAXENGINE_API AssetHeader
FlaxChunk* Chunks[ASSET_FILE_DATA_CHUNKS];
public:
/// <summary>
/// Initializes a new instance of the <see cref="AssetHeader"/> struct.
/// </summary>
@@ -51,7 +50,6 @@ public:
}
public:
/// <summary>
/// Gets the chunks.
/// </summary>
@@ -154,7 +152,6 @@ struct FLAXENGINE_API AssetInitData
#endif
public:
/// <summary>
/// Gets the hash code.
/// </summary>

View File

@@ -14,14 +14,12 @@ class FlaxPackage;
class FLAXENGINE_API ContentStorageManager
{
public:
/// <summary>
/// Auto-release timeout for unused asset chunks.
/// </summary>
static TimeSpan UnusedDataChunksLifetime;
public:
/// <summary>
/// Gets the assets data storage container.
/// </summary>
@@ -78,7 +76,6 @@ public:
static void EnsureUnlocked();
public:
/// <summary>
/// Determines whether the specified path can be a binary asset file (based on it's extension).
/// </summary>
@@ -94,7 +91,6 @@ public:
static bool IsFlaxStorageExtension(const String& extension);
public:
/// <summary>
/// Gets the packages.
/// </summary>

View File

@@ -29,7 +29,6 @@ DECLARE_ENUM_OPERATORS(FlaxChunkFlags);
class FLAXENGINE_API FlaxChunk
{
public:
/// <summary>
/// Chunk of data location info
/// </summary>
@@ -68,7 +67,6 @@ public:
};
public:
/// <summary>
/// The chunk location in file.
/// </summary>
@@ -90,7 +88,6 @@ public:
BytesContainer Data;
public:
/// <summary>
/// Initializes a new instance of the <see cref="FlaxChunk"/> class.
/// </summary>
@@ -106,7 +103,6 @@ public:
}
public:
/// <summary>
/// Gets this chunk data pointer.
/// </summary>

View File

@@ -10,11 +10,9 @@
class FLAXENGINE_API FlaxFile : public FlaxStorage
{
protected:
Entry _asset;
public:
/// <summary>
/// Initializes a new instance of the <see cref="FlaxFile"/> class.
/// </summary>
@@ -22,7 +20,6 @@ public:
FlaxFile(const StringView& path);
public:
// [FlaxStorage]
String ToString() const override;
bool IsPackage() const override;
@@ -35,7 +32,6 @@ public:
void Dispose() override;
protected:
// [FlaxStorage]
bool GetEntry(const Guid& id, Entry& e) override;
void AddEntry(Entry& e) override;

View File

@@ -11,11 +11,9 @@
class FLAXENGINE_API FlaxPackage : public FlaxStorage
{
protected:
Dictionary<Guid, Entry> _entries;
public:
/// <summary>
/// Initializes a new instance of the <see cref="FlaxPackage"/> class.
/// </summary>
@@ -23,7 +21,6 @@ public:
FlaxPackage(const StringView& path);
public:
// [FlaxStorage]
String ToString() const override;
bool IsPackage() const override;
@@ -36,7 +33,6 @@ public:
void Dispose() override;
protected:
// [FlaxStorage]
bool GetEntry(const Guid& id, Entry& e) override;
void AddEntry(Entry& e) override;

View File

@@ -27,7 +27,6 @@ class FLAXENGINE_API FlaxStorage : public Object
friend class BinaryAsset;
public:
/// <summary>
/// Magic code stored in file header to identify contents.
/// </summary>
@@ -88,7 +87,6 @@ public:
};
protected:
// State
uint32 _refCount;
DateTime _lastRefLostTime;
@@ -104,24 +102,20 @@ protected:
String _path;
protected:
explicit FlaxStorage(const StringView& path);
private:
// Used by FlaxStorageReference:
void AddRef();
void RemoveRef();
public:
/// <summary>
/// Finalizes an instance of the <see cref="FlaxStorage"/> class.
/// </summary>
virtual ~FlaxStorage();
public:
/// <summary>
/// Locks the storage chunks data to prevent disposing them. Also ensures that file handles won't be closed while chunks are locked.
/// </summary>
@@ -147,7 +141,6 @@ public:
static LockData Invalid;
private:
FlaxStorage* _storage;
LockData(FlaxStorage* storage)
@@ -158,14 +151,13 @@ public:
}
public:
LockData(const LockData& other)
: _storage(other._storage)
{
if (_storage)
_storage->LockChunks();
}
LockData(LockData&& other) noexcept
: _storage(other._storage)
{
@@ -208,7 +200,6 @@ public:
other._storage = nullptr;
return *this;
}
};
/// <summary>
@@ -228,7 +219,6 @@ public:
LockData LockSafe();
public:
/// <summary>
/// Gets the references count.
/// </summary>
@@ -335,7 +325,6 @@ public:
}
public:
/// <summary>
/// Loads package from the file.
/// </summary>
@@ -417,7 +406,6 @@ public:
virtual void Dispose();
public:
/// <summary>
/// Ticks this instance.
/// </summary>
@@ -428,7 +416,6 @@ public:
#endif
public:
#if USE_EDITOR
/// <summary>
@@ -489,7 +476,6 @@ public:
#endif
protected:
bool LoadAssetHeader(const Entry& e, AssetInitData& data);
void AddChunk(FlaxChunk* chunk);
virtual void AddEntry(Entry& e) = 0;

View File

@@ -10,11 +10,9 @@
struct FLAXENGINE_API FlaxStorageReference
{
private:
FlaxStorage* _storage;
public:
FlaxStorageReference(FlaxStorage* storage)
: _storage(storage)
{
@@ -36,14 +34,12 @@ public:
}
public:
FORCE_INLINE FlaxStorage* Get() const
{
return _storage;
}
public:
FlaxStorageReference& operator=(const FlaxStorageReference& other)
{
if (this != &other)

View File

@@ -14,7 +14,6 @@ struct AssetInfo;
class FLAXENGINE_API JsonStorageProxy
{
public:
/// <summary>
/// Determines whether the specified extension can be a json resource file.
/// </summary>

View File

@@ -16,7 +16,6 @@
class AudioClipUpgrader : public BinaryAssetUpgrader
{
public:
/// <summary>
/// Initializes a new instance of the <see cref="AudioClipUpgrader"/> class.
/// </summary>
@@ -30,7 +29,6 @@ public:
}
private:
// ============================================
// Version 1:
// Designed: 26.02.2018
@@ -88,32 +86,32 @@ private:
int32 numSamples;
switch (oldHeader.Format)
{
case AudioFormat::Raw:
{
numSamples = chunk->Size() / (oldHeader.Info.BitDepth / 8);
break;
}
case AudioFormat::Vorbis:
{
case AudioFormat::Raw:
{
numSamples = chunk->Size() / (oldHeader.Info.BitDepth / 8);
break;
}
case AudioFormat::Vorbis:
{
#if COMPILE_WITH_OGG_VORBIS
OggVorbisDecoder decoder;
MemoryReadStream stream(chunk->Get(), chunk->Size());
AudioDataInfo outInfo;
if (!decoder.Open(&stream, outInfo, 0))
{
LOG(Warning, "Audio data open failed (OggVorbisDecoder).");
return true;
}
numSamples = outInfo.NumSamples;
OggVorbisDecoder decoder;
MemoryReadStream stream(chunk->Get(), chunk->Size());
AudioDataInfo outInfo;
if (!decoder.Open(&stream, outInfo, 0))
{
LOG(Warning, "Audio data open failed (OggVorbisDecoder).");
return true;
}
numSamples = outInfo.NumSamples;
#else
LOG(Warning, "OggVorbisDecoder is disabled.");
return true;
#endif
break;
}
default:
LOG(Warning, "Unknown audio data format.");
return true;
break;
}
default:
LOG(Warning, "Unknown audio data format.");
return true;
}
newHeader.SamplesPerChunk[chunkIndex] = numSamples;
}

View File

@@ -24,7 +24,6 @@ struct FLAXENGINE_API AssetMigrationContext
AssetInitData Output;
public:
/// <summary>
/// Allocates the chunk in the output data so upgrader can write to it.
/// </summary>
@@ -68,7 +67,6 @@ typedef bool (*UpgradeHandler)(AssetMigrationContext& context);
class FLAXENGINE_API BinaryAssetUpgrader : public IAssetUpgrader
{
public:
struct Upgrader
{
uint32 CurrentVersion;
@@ -77,12 +75,10 @@ public:
};
private:
Upgrader const* _upgraders;
int32 _upgradersCount;
public:
/// <summary>
/// Upgrades the specified asset data serialized version.
/// </summary>
@@ -114,7 +110,6 @@ public:
}
public:
/// <summary>
/// Copies all the chunks from the input data to the output container.
/// </summary>
@@ -179,7 +174,6 @@ public:
}
protected:
BinaryAssetUpgrader()
{
_upgraders = nullptr;
@@ -193,7 +187,6 @@ protected:
}
public:
// [IAssetUpgrader]
bool ShouldUpgrade(uint32 serializedVersion) const override
{

View File

@@ -14,7 +14,6 @@
class FontAssetUpgrader : public BinaryAssetUpgrader
{
public:
/// <summary>
/// Initializes a new instance of the <see cref="FontAssetUpgrader"/> class.
/// </summary>
@@ -29,7 +28,6 @@ public:
}
private:
// ============================================
// Version 1:
// Designed: long time ago in a galaxy far far away

View File

@@ -12,7 +12,6 @@
class FLAXENGINE_API IAssetUpgrader
{
public:
/// <summary>
/// Finalizes an instance of the <see cref="IAssetUpgrader"/> class.
/// </summary>
@@ -21,7 +20,6 @@ public:
}
public:
/// <summary>
/// Checks if given asset version should be converted.
/// </summary>

View File

@@ -17,7 +17,6 @@
class MaterialInstanceUpgrader : public BinaryAssetUpgrader
{
public:
/// <summary>
/// Initializes a new instance of the <see cref="MaterialInstanceUpgrader"/> class.
/// </summary>
@@ -32,7 +31,6 @@ public:
}
private:
// ============================================
// Version 4:
// Designed: 5/18/2017

View File

@@ -19,7 +19,6 @@
class ModelAssetUpgrader : public BinaryAssetUpgrader
{
public:
/// <summary>
/// Initializes a new instance of the <see cref="ModelAssetUpgrader"/> class.
/// </summary>
@@ -36,7 +35,6 @@ public:
}
private:
// ============================================
// Version 25:
// The same as version 24 except Vertex Buffer 1 has `Color32 Color` component per vertex added

View File

@@ -15,7 +15,6 @@
class ShaderAssetUpgrader : public BinaryAssetUpgrader
{
public:
/// <summary>
/// Initializes a new instance of the <see cref="ShaderAssetUpgrader"/> class.
/// </summary>
@@ -29,7 +28,6 @@ public:
}
private:
// ============================================
// Version 18:
// Designed: 7/24/2019

View File

@@ -17,7 +17,6 @@
class SkeletonMaskUpgrader : public BinaryAssetUpgrader
{
public:
/// <summary>
/// Initializes a new instance of the <see cref="SkeletonMaskUpgrader"/> class.
/// </summary>
@@ -31,7 +30,6 @@ public:
}
private:
static bool Upgrade_1_To_2(AssetMigrationContext& context)
{
ASSERT(context.Input.SerializedVersion == 1 && context.Output.SerializedVersion == 2);
@@ -85,7 +83,7 @@ private:
if (context.AllocateChunk(0))
return true;
MemoryWriteStream stream(4096);
const Guid skeletonId = skeleton.GetID();
stream.Write(&skeletonId);
stream.WriteInt32(nodesMask.Count());

View File

@@ -21,7 +21,6 @@
class SkinnedModelAssetUpgrader : public BinaryAssetUpgrader
{
public:
/// <summary>
/// Initializes a new instance of the <see cref="SkinnedModelAssetUpgrader"/> class.
/// </summary>
@@ -37,7 +36,6 @@ public:
}
private:
static bool Upgrade_1_To_2(AssetMigrationContext& context)
{
ASSERT(context.Input.SerializedVersion == 1 && context.Output.SerializedVersion == 2);

View File

@@ -26,7 +26,6 @@
class TextureAssetUpgrader : public BinaryAssetUpgrader
{
public:
/// <summary>
/// Initializes a new instance of the <see cref="TextureAssetUpgrader"/> class.
/// </summary>
@@ -40,7 +39,6 @@ public:
}
private:
// ============================================
// Versions 1, 2 and 3:
// Designed: long time ago in a galaxy far far away
@@ -178,10 +176,10 @@ private:
case PixelFormat::R32G32B32A32_UInt:
case PixelFormat::R32G32B32A32_SInt:
return PixelFormatOld::PF_R32G32B32A32;
//case PixelFormat::R32G32B32_Typeless:
//case PixelFormat::R32G32B32_Float:
//case PixelFormat::R32G32B32_UInt:
//case PixelFormat::R32G32B32_SInt:
//case PixelFormat::R32G32B32_Typeless:
//case PixelFormat::R32G32B32_Float:
//case PixelFormat::R32G32B32_UInt:
//case PixelFormat::R32G32B32_SInt:
case PixelFormat::R16G16B16A16_Typeless:
case PixelFormat::R16G16B16A16_Float:
case PixelFormat::R16G16B16A16_UNorm:
@@ -231,7 +229,7 @@ private:
case PixelFormat::D24_UNorm_S8_UInt:
case PixelFormat::R24_UNorm_X8_Typeless:
return PixelFormatOld::PF_DepthStencil;
//case PixelFormat::X24_Typeless_G8_UInt:
//case PixelFormat::X24_Typeless_G8_UInt:
case PixelFormat::R8G8_Typeless:
case PixelFormat::R8G8_UNorm:
case PixelFormat::R8G8_UInt:
@@ -256,9 +254,9 @@ private:
case PixelFormat::A8_UNorm:
return PixelFormatOld::PF_A8;
case PixelFormat::R1_UNorm:
//case PixelFormat::R9G9B9E5_Sharedexp:
//case PixelFormat::R8G8_B8G8_UNorm:
//case PixelFormat::G8R8_G8B8_UNorm:
//case PixelFormat::R9G9B9E5_Sharedexp:
//case PixelFormat::R8G8_B8G8_UNorm:
//case PixelFormat::G8R8_G8B8_UNorm:
case PixelFormat::BC1_Typeless:
case PixelFormat::BC1_UNorm:
case PixelFormat::BC1_UNorm_sRGB:
@@ -281,20 +279,20 @@ private:
return PixelFormatOld::PF_BC5;
case PixelFormat::B5G6R5_UNorm:
return PixelFormatOld::PF_B5G6R5;
//case PixelFormat::B5G5R5A1_UNorm:
//case PixelFormat::B8G8R8A8_UNorm:
//case PixelFormat::B8G8R8X8_UNorm:
//case PixelFormat::R10G10B10_Xr_Bias_A2_UNorm:
//case PixelFormat::B8G8R8A8_Typeless:
//case PixelFormat::B8G8R8A8_UNorm_sRGB:
//case PixelFormat::B8G8R8X8_Typeless:
//case PixelFormat::B8G8R8X8_UNorm_sRGB:
//case PixelFormat::BC6H_Typeless:
//case PixelFormat::BC6H_Uf16:
//case PixelFormat::BC6H_Sf16:
//case PixelFormat::BC7_Typeless:
//case PixelFormat::BC7_UNorm:
//case PixelFormat::BC7_UNorm_sRGB:
//case PixelFormat::B5G5R5A1_UNorm:
//case PixelFormat::B8G8R8A8_UNorm:
//case PixelFormat::B8G8R8X8_UNorm:
//case PixelFormat::R10G10B10_Xr_Bias_A2_UNorm:
//case PixelFormat::B8G8R8A8_Typeless:
//case PixelFormat::B8G8R8A8_UNorm_sRGB:
//case PixelFormat::B8G8R8X8_Typeless:
//case PixelFormat::B8G8R8X8_UNorm_sRGB:
//case PixelFormat::BC6H_Typeless:
//case PixelFormat::BC6H_Uf16:
//case PixelFormat::BC6H_Sf16:
//case PixelFormat::BC7_Typeless:
//case PixelFormat::BC7_UNorm:
//case PixelFormat::BC7_UNorm_sRGB:
default:
break;
}

View File

@@ -10,15 +10,12 @@
API_CLASS(InBuild) class WeakAssetReferenceBase
{
public:
typedef Delegate<> EventType;
protected:
Asset* _asset = nullptr;
public:
/// <summary>
/// The asset unloading event (should cleanup refs to it).
/// </summary>
@@ -38,7 +35,6 @@ public:
~WeakAssetReferenceBase();
public:
/// <summary>
/// Gets the asset ID or Guid::Empty if not set.
/// </summary>
@@ -61,7 +57,6 @@ public:
String ToString() const;
protected:
void OnSet(Asset* asset);
void OnUnloaded(Asset* asset);
};
@@ -73,7 +68,6 @@ template<typename T>
API_CLASS(InBuild) class WeakAssetReference : public WeakAssetReferenceBase
{
public:
/// <summary>
/// Initializes a new instance of the <see cref="WeakAssetReference"/> class.
/// </summary>
@@ -125,7 +119,6 @@ public:
}
public:
FORCE_INLINE WeakAssetReference& operator=(const WeakAssetReference& other)
{
OnSet(other.Get());
@@ -196,7 +189,6 @@ public:
}
public:
/// <summary>
/// Sets the asset reference.
/// </summary>

View File

@@ -9,7 +9,6 @@
class AssetExporters
{
public:
static ExportAssetResult ExportTexture(ExportAssetContext& context);
static ExportAssetResult ExportCubeTexture(ExportAssetContext& context);
static ExportAssetResult ExportAudioClip(ExportAssetContext& context);

View File

@@ -20,7 +20,6 @@ Dictionary<String, ExportAssetFunction> AssetsExportingManager::Exporters;
class AssetsExportingManagerService : public EngineService
{
public:
AssetsExportingManagerService()
: EngineService(TEXT("AssetsExportingManager"), -300)
{

View File

@@ -13,14 +13,12 @@
class AssetsExportingManager
{
public:
/// <summary>
/// The asset exporting callbacks. Identified by the asset typename.
/// </summary>
static Dictionary<String, ExportAssetFunction> Exporters;
public:
/// <summary>
/// Gets the asset export for thee given asset typename.
/// </summary>
@@ -36,7 +34,6 @@ public:
static bool CanExport(const String& inputPath);
public:
/// <summary>
/// Exports the asset.
/// </summary>

View File

@@ -29,7 +29,6 @@ typedef Function<ExportAssetResult(ExportAssetContext&)> ExportAssetFunction;
class ExportAssetContext : public NonCopyable
{
public:
/// <summary>
/// The asset reference (prepared by the context to be used by callback).
/// </summary>
@@ -56,7 +55,6 @@ public:
void* CustomArg;
public:
/// <summary>
/// Initializes a new instance of the <see cref="ExportAssetContext"/> class.
/// </summary>
@@ -73,7 +71,6 @@ public:
}
public:
/// <summary>
/// Runs the specified callback.
/// </summary>

View File

@@ -56,7 +56,6 @@ const String AssetsImportingManager::CreateVisualScriptTag(TEXT("VisualScript"))
class AssetsImportingManagerService : public EngineService
{
public:
AssetsImportingManagerService()
: EngineService(TEXT("AssetsImportingManager"), -400)
{

View File

@@ -12,7 +12,6 @@
class AssetsImportingManager
{
public:
/// <summary>
/// The asset importers.
/// </summary>
@@ -24,7 +23,6 @@ public:
static Array<AssetCreator> Creators;
public:
/// <summary>
/// The create texture tag (using internal import pipeline to crate texture asset from custom image source).
/// </summary>
@@ -116,7 +114,6 @@ public:
static const String CreateVisualScriptTag;
public:
/// <summary>
/// Gets the asset importer by file extension.
/// </summary>
@@ -132,7 +129,6 @@ public:
static const AssetCreator* GetCreator(const String& tag);
public:
/// <summary>
/// Creates new asset.
/// </summary>
@@ -226,7 +222,6 @@ public:
}
private:
static bool Create(const CreateAssetFunction& callback, const StringView& inputPath, const StringView& outputPath, Guid& assetId, void* arg);
};

View File

@@ -12,7 +12,6 @@
class CreateAnimationGraph
{
public:
/// <summary>
/// Creates the asset.
/// </summary>

View File

@@ -15,7 +15,6 @@
class CreateAnimationGraphFunction
{
public:
/// <summary>
/// Creates the asset.
/// </summary>

View File

@@ -16,7 +16,6 @@
class CreateCollisionData
{
public:
/// <summary>
/// Creates the CollisionData.
/// </summary>

View File

@@ -14,7 +14,6 @@
class CreateJson
{
public:
static bool Create(const StringView& path, rapidjson_flax::StringBuffer& data, const String& dataTypename);
static bool Create(const StringView& path, rapidjson_flax::StringBuffer& data, const char* dataTypename);
static bool Create(const StringView& path, StringAnsiView& data, StringAnsiView& dataTypename);

View File

@@ -14,7 +14,6 @@
class CreateMaterial
{
public:
struct Options
{
MaterialInfo Info;

View File

@@ -16,7 +16,6 @@
class CreateMaterialFunction
{
public:
/// <summary>
/// Creates the asset.
/// </summary>

View File

@@ -16,7 +16,6 @@
class CreateMaterialInstance
{
public:
/// <summary>
/// Creates the asset.
/// </summary>

View File

@@ -14,7 +14,6 @@
class CreateParticleEmitter
{
public:
/// <summary>
/// Creates the asset.
/// </summary>

View File

@@ -15,7 +15,6 @@
class CreateParticleEmitterFunction
{
public:
/// <summary>
/// Creates the asset.
/// </summary>

View File

@@ -14,7 +14,6 @@
class CreateParticleSystem
{
public:
/// <summary>
/// Creates the asset.
/// </summary>

View File

@@ -13,7 +13,6 @@
class CreateRawData
{
public:
/// <summary>
/// Creates the raw data asset.
/// </summary>

View File

@@ -14,7 +14,6 @@
class CreateSceneAnimation
{
public:
/// <summary>
/// Creates the asset.
/// </summary>

View File

@@ -14,7 +14,6 @@
class CreateSkeletonMask
{
public:
/// <summary>
/// Creates the asset.
/// </summary>

View File

@@ -13,7 +13,6 @@
class CreateVisualScript
{
public:
/// <summary>
/// Creates the asset.
/// </summary>

View File

@@ -20,7 +20,6 @@
class ImportAudio
{
public:
/// <summary>
/// Importing audio options
/// </summary>
@@ -44,14 +43,12 @@ public:
String ToString() const;
public:
// [ISerializable]
void Serialize(SerializeStream& stream, const void* otherObj) override;
void Deserialize(DeserializeStream& stream, ISerializeModifier* modifier) override;
};
public:
/// <summary>
/// Tries the get audio import options from the target location asset.
/// </summary>

View File

@@ -12,7 +12,6 @@
class ImportFont
{
public:
/// <summary>
/// Imports the font file.
/// </summary>

View File

@@ -13,14 +13,12 @@
class ImportIES
{
private:
float _brightness = 0;
Array<float> _hAngles;
Array<float> _vAngles;
Array<float> _candalaValues;
public:
/// <summary>
/// Loads the IES file.
/// </summary>
@@ -36,7 +34,6 @@ public:
float ExtractInR16(Array<byte>& output);
public:
uint32 GetWidth() const
{
return 256;
@@ -53,7 +50,6 @@ public:
}
private:
float InterpolatePoint(int32 x, int32 y) const;
float InterpolateBilinear(float x, float y) const;
static float ComputeFilterPos(float value, const Array<float>& sortedValues);

View File

@@ -19,11 +19,9 @@
class ImportModelFile
{
public:
typedef ModelTool::Options Options;
public:
/// <summary>
/// Tries the get model import options from the target location asset.
/// </summary>
@@ -47,7 +45,6 @@ public:
static CreateAssetResult Create(CreateAssetContext& context);
private:
static CreateAssetResult ImportModel(CreateAssetContext& context, ModelData& modelData, const Options* options = nullptr);
static CreateAssetResult ImportSkinnedModel(CreateAssetContext& context, ModelData& modelData, const Options* options = nullptr);
static CreateAssetResult ImportAnimation(CreateAssetContext& context, ModelData& modelData, const Options* options = nullptr);

View File

@@ -20,11 +20,9 @@
class ImportModelFile
{
public:
typedef ModelTool::Options Options;
public:
/// <summary>
/// Tries the get model import options from the target location asset.
/// </summary>
@@ -48,7 +46,6 @@ public:
static CreateAssetResult Create(CreateAssetContext& context);
private:
static CreateAssetResult ImportModel(CreateAssetContext& context, ModelData& modelData);
static CreateAssetResult ImportSkinnedModel(CreateAssetContext& context, ModelData& modelData);
static CreateAssetResult ImportAnimation(CreateAssetContext& context, ModelData& modelData);

View File

@@ -12,7 +12,6 @@
class ImportShader
{
public:
/// <summary>
/// Imports the shader file.
/// </summary>

View File

@@ -20,11 +20,9 @@
class ImportTexture
{
public:
typedef TextureTool::Options Options;
public:
/// <summary>
/// Tries the get texture import options from the target location asset.
/// </summary>
@@ -93,7 +91,6 @@ public:
static CreateAssetResult ImportIES(CreateAssetContext& context);
private:
static void InitOptions(CreateAssetContext& context, Options& options);
static CreateAssetResult Create(CreateAssetContext& context, const TextureData& textureData, Options& options);
static CreateAssetResult Create(CreateAssetContext& context, const TextureBase::InitData& textureData, Options& options);

View File

@@ -31,11 +31,9 @@ typedef Function<CreateAssetResult(CreateAssetContext&)> CreateAssetFunction;
class CreateAssetContext : public NonCopyable
{
private:
CreateAssetResult _applyChangesResult;
public:
/// <summary>
/// Path of the input file (may be empty if creating new asset)
/// </summary>
@@ -70,7 +68,6 @@ public:
// TODO: add cancellation feature - so progress can be aborted on demand
public:
/// <summary>
/// Initializes a new instance of the <see cref="CreateAssetContext"/> class.
/// </summary>
@@ -88,7 +85,6 @@ public:
}
public:
/// <summary>
/// Runs the specified callback.
/// </summary>
@@ -97,7 +93,6 @@ public:
CreateAssetResult Run(const CreateAssetFunction& callback);
public:
/// <summary>
/// Allocates the chunk in the output data so upgrader can write to it.
/// </summary>
@@ -112,7 +107,6 @@ public:
void AddMeta(JsonWriter& writer) const;
private:
void ApplyChanges();
};
@@ -122,7 +116,6 @@ private:
struct AssetImporter
{
public:
/// <summary>
/// Extension of the file to import with that importer (without leading dot).
/// </summary>
@@ -145,7 +138,6 @@ public:
struct AssetCreator
{
public:
/// <summary>
/// Asset creators are identifiable by tag
/// </summary>

View File

@@ -21,7 +21,7 @@ struct Transform;
/// </summary>
API_CLASS(Static) class FLAXENGINE_API DebugDraw
{
DECLARE_SCRIPTING_TYPE_NO_SPAWN(DebugDraw);
DECLARE_SCRIPTING_TYPE_NO_SPAWN(DebugDraw);
#if USE_EDITOR

View File

@@ -11,7 +11,6 @@
class FLAXENGINE_API DebugLog
{
public:
/// <summary>
/// Sends the log message to the Flax console and the log file.
/// </summary>
@@ -53,7 +52,6 @@ public:
static void LogException(MObject* exceptionObject);
public:
/// <summary>
/// Gets the managed stack trace.
/// </summary>

View File

@@ -16,13 +16,11 @@ namespace Log
class FLAXENGINE_API Exception : public Object
{
protected:
String _message;
String _additionalInfo;
LogType _level;
public:
/// <summary>
/// Creates default exception without additional data
/// </summary>
@@ -53,14 +51,12 @@ namespace Log
}
public:
/// <summary>
/// Virtual destructor
/// </summary>
virtual ~Exception();
public:
/// <summary>
/// Gets a message that describes the current exception.
/// </summary>
@@ -128,7 +124,6 @@ namespace Log
// TODO: implement StackTrace caching: https://www.codeproject.com/kb/threads/stackwalker.aspx
public:
// [Object]
String ToString() const final override
{

View File

@@ -200,7 +200,7 @@ void Foliage::DrawCluster(RenderContext& renderContext, FoliageCluster* cluster,
instance.DrawState.PrevLOD = lodIndex;
}
}
// Check if there was a gap between frames in drawing this model instance
// Check if there was a gap between frames in drawing this model instance
else if (modelFrame < frame || instance.DrawState.PrevLOD == -1)
{
// Reset state
@@ -846,7 +846,7 @@ bool Foliage::Intersects(const Ray& ray, Real& distance, Vector3& normal, int32&
void Foliage::Draw(RenderContext& renderContext)
{
if (renderContext.View.Pass == DrawPass::GlobalSDF)
return; // TODO: Foliage rendering to Global SDF
return; // TODO: Foliage rendering to Global SDF
if (renderContext.View.Pass == DrawPass::GlobalSurfaceAtlas)
return; // Not supported
if (Instances.IsEmpty())

View File

@@ -14,14 +14,12 @@
/// <seealso cref="Actor" />
API_CLASS() class FLAXENGINE_API Foliage final : public Actor
{
DECLARE_SCENE_OBJECT(Foliage);
DECLARE_SCENE_OBJECT(Foliage);
private:
bool _disableFoliageTypeEvents;
int32 _sceneRenderingKey = -1;
public:
/// <summary>
/// The allocated foliage instances. It's read-only.
/// </summary>
@@ -46,7 +44,6 @@ public:
Array<FoliageType> FoliageTypes;
public:
/// <summary>
/// Gets the total amount of the instanced of foliage.
/// </summary>
@@ -138,7 +135,6 @@ public:
API_FUNCTION() void UpdateCullDistance();
public:
/// <summary>
/// Gets the global density scale for all foliage instances. The default value is 1. Use values from range 0-1. Lower values decrease amount of foliage instances in-game. Use it to tweak game performance for slower devices.
/// </summary>
@@ -150,7 +146,6 @@ public:
API_PROPERTY() static void SetGlobalDensityScale(float value);
private:
void AddToCluster(ChunkedArray<FoliageCluster, FOLIAGE_CLUSTER_CHUNKS_SIZE>& clusters, FoliageCluster* cluster, FoliageInstance& instance);
#if !FOLIAGE_USE_SINGLE_QUAD_TREE && FOLIAGE_USE_DRAW_CALLS_BATCHING
struct DrawKey
@@ -182,7 +177,6 @@ private:
#endif
public:
/// <summary>
/// Determines if there is an intersection between the current object or any it's child and a ray.
/// </summary>
@@ -194,7 +188,6 @@ public:
API_FUNCTION() bool Intersects(API_PARAM(Ref) const Ray& ray, API_PARAM(Out) Real& distance, API_PARAM(Out) Vector3& normal, API_PARAM(Out) int32& instanceIndex);
public:
// [Actor]
void Draw(RenderContext& renderContext) override;
bool IntersectsItself(const Ray& ray, Real& distance, Vector3& normal) override;
@@ -203,7 +196,6 @@ public:
void OnLayerChanged() override;
protected:
// [Actor]
void OnEnable() override;
void OnDisable() override;

View File

@@ -13,7 +13,6 @@
class FLAXENGINE_API FoliageCluster
{
public:
/// <summary>
/// The cluster bounds (in world space). Made of subdivided parent node in quad-tree.
/// </summary>
@@ -45,7 +44,6 @@ public:
Array<FoliageInstance*, FixedAllocation<FOLIAGE_CLUSTER_CAPACITY>> Instances;
public:
/// <summary>
/// Initializes this instance.
/// </summary>

Some files were not shown because too many files have changed in this diff Show More