Merge branch 'typo-fix' of git://github.com/VNNCC/FlaxEngine into VNNCC-typo-fix

This commit is contained in:
Wojtek Figat
2021-01-11 15:33:45 +01:00
73 changed files with 90 additions and 90 deletions

View File

@@ -280,7 +280,7 @@ namespace FlaxEngine
/// </summary>
/// <param name="hexString">The hexadecimal string.</param>
/// <param name="value">Output value.</param>
/// <returns>True if value has benn parsed, otherwise false.</returns>
/// <returns>True if value has been parsed, otherwise false.</returns>
public static bool TryParseHex(string hexString, out Color value)
{
value = Black;

View File

@@ -985,7 +985,7 @@ API_ENUM() enum class TessellationMethod
enum class ShaderFlags : uint32
{
/// <summary>
/// The default set fo flags.
/// The default set for flags.
/// </summary>
Default = 0,

View File

@@ -215,7 +215,7 @@ public:
/// Gets a CPU pointer to the resource by mapping its contents. Denies the GPU access to that resource.
/// </summary>
/// <param name="mode">The map operation mode.</param>
/// <returns>The pointer ot the mapped CPU buffer with resource data or null if failed.</returns>
/// <returns>The pointer of the mapped CPU buffer with resource data or null if failed.</returns>
API_FUNCTION() virtual void* Map(GPUResourceMapMode mode) = 0;
/// <summary>

View File

@@ -239,7 +239,7 @@ void GPUDevice::preDispose()
SAFE_DELETE_GPU_RESOURCE(_res->FullscreenTriangleVB);
// Release GPU resources memory and unlink from device
// Note: after that noe GPU resources should be used/created, only deleted
// Note: after that no GPU resources should be used/created, only deleted
Resources.OnDeviceDispose();
}

View File

@@ -39,7 +39,7 @@ Task* GPUSwapChain::DownloadDataAsync(TextureData& result)
{
if (_downloadTask)
{
LOG(Warning, "Can download window backuffer data ony once at the time.");
LOG(Warning, "Can download window backuffer data only once at the time.");
return nullptr;
}

View File

@@ -108,7 +108,7 @@ public:
/// <summary>
/// Gets the mask of render passes supported by this material.
/// </summary>
/// <returns>The drw passes supported by this material.</returns>
/// <returns>The draw passes supported by this material.</returns>
virtual DrawPass GetDrawModes() const
{
return DrawPass::None;

View File

@@ -435,7 +435,7 @@ namespace FlaxEngine
/// Downloads the third vertex buffer that contains mesh vertices data. To download data from GPU set <paramref name="forceGpu"/> to true and call this method from the thread other than main thread (see <see cref="Platform.IsInMainThread"/>).
/// </summary>
/// <remarks>
/// If mesh has no vertex colors (stored in vertex buffer 2) the the returned value is null.
/// If mesh has no vertex colors (stored in vertex buffer 2) the returned value is null.
/// </remarks>
/// <param name="forceGpu">If set to <c>true</c> the data will be downloaded from the GPU, otherwise it can be loaded from the drive (source asset file) or from memory (if cached). Downloading mesh from GPU requires this call to be made from the other thread than main thread. Virtual assets are always downloaded from GPU memory due to lack of dedicated storage container for the asset data.</param>
/// <returns>The gathered data or null if mesh has no vertex colors.</returns>

View File

@@ -791,7 +791,7 @@ void MeshData::ImproveCacheLocality()
Allocator::Free(piCandidates);
const auto endTime = Platform::GetTimeSeconds();
LOG(Info, "Cache relevant optimzie for {0} vertices and {1} indices. Average output ACMR is {2}. Time: {3}s", vertexCount, indexCount, (float)iCacheMisses / indexCount / 3, Utilities::RoundTo2DecimalPlaces(endTime - startTime));
LOG(Info, "Cache relevant optimize for {0} vertices and {1} indices. Average output ACMR is {2}. Time: {3}s", vertexCount, indexCount, (float)iCacheMisses / indexCount / 3, Utilities::RoundTo2DecimalPlaces(endTime - startTime));
}
float MeshData::CalculateTrianglesArea() const

View File

@@ -387,7 +387,7 @@ DECLARE_SCRIPTING_TYPE_NO_SPAWN(ToneMappingSettings);
float WhiteTemperature = 6500.0f;
/// <summary>
/// Adjusts the white balance temperature tint for the scene by adjusting the cyan and magenta color ranges. Ideally, this setting should be used once you've adjusted the white balance temporature to get accurate colors. Under some light temperatures, the colors may appear to be more yellow or blue. This can be used to balance the resulting color to look more natural. The default value is `0`.
/// Adjusts the white balance temperature tint for the scene by adjusting the cyan and magenta color ranges. Ideally, this setting should be used once you've adjusted the white balance temperature to get accurate colors. Under some light temperatures, the colors may appear to be more yellow or blue. This can be used to balance the resulting color to look more natural. The default value is `0`.
/// </summary>
API_FIELD(Attributes="DefaultValue(0.0f), Limit(-1, 1, 0.001f), EditorOrder(1), PostProcessSetting((int)ToneMappingSettingsOverride.WhiteTint)")
float WhiteTint = 0.0f;

View File

@@ -108,5 +108,5 @@ void RenderTargetPool::Release(GPUTexture* rt)
}
}
LOG(Error, "Trying to release temporary render target which has not been registred in service!");
LOG(Error, "Trying to release temporary render target which has not been registered in service!");
}

View File

@@ -97,7 +97,7 @@ public:
/// <summary>
/// Gets the vertex shader.
/// </summary>
/// <param name="name">Thr shader program name.</param>
/// <param name="name">The shader program name.</param>
/// <param name="permutationIndex">The shader permutation index.</param>
/// <returns>The shader object.</returns>
API_FUNCTION() FORCE_INLINE GPUShaderProgramVS* GetVS(const StringAnsiView& name, int32 permutationIndex = 0) const
@@ -108,7 +108,7 @@ public:
/// <summary>
/// Gets the hull shader.
/// </summary>
/// <param name="name">Thr shader program name.</param>
/// <param name="name">The shader program name.</param>
/// <param name="permutationIndex">The shader permutation index.</param>
/// <returns>The shader object.</returns>
API_FUNCTION() FORCE_INLINE GPUShaderProgramHS* GetHS(const StringAnsiView& name, int32 permutationIndex = 0) const
@@ -119,7 +119,7 @@ public:
/// <summary>
/// Gets domain shader.
/// </summary>
/// <param name="name">Thr shader program name.</param>
/// <param name="name">The shader program name.</param>
/// <param name="permutationIndex">The shader permutation index.</param>
/// <returns>The shader object.</returns>
API_FUNCTION() FORCE_INLINE GPUShaderProgramDS* GetDS(const StringAnsiView& name, int32 permutationIndex = 0) const
@@ -130,7 +130,7 @@ public:
/// <summary>
/// Gets the geometry shader.
/// </summary>
/// <param name="name">Thr shader program name.</param>
/// <param name="name">The shader program name.</param>
/// <param name="permutationIndex">The shader permutation index.</param>
/// <returns>The shader object.</returns>
API_FUNCTION() FORCE_INLINE GPUShaderProgramGS* GetGS(const StringAnsiView& name, int32 permutationIndex = 0) const
@@ -141,7 +141,7 @@ public:
/// <summary>
/// Gets the pixel shader.
/// </summary>
/// <param name="name">Thr shader program name.</param>
/// <param name="name">The shader program name.</param>
/// <param name="permutationIndex">The shader permutation index.</param>
/// <returns>The shader object.</returns>
API_FUNCTION() FORCE_INLINE GPUShaderProgramPS* GetPS(const StringAnsiView& name, int32 permutationIndex = 0) const
@@ -152,7 +152,7 @@ public:
/// <summary>
/// Gets the compute shader.
/// </summary>
/// <param name="name">Thr shader program name.</param>
/// <param name="name">The shader program name.</param>
/// <param name="permutationIndex">The shader permutation index.</param>
/// <returns>The shader object.</returns>
API_FUNCTION() FORCE_INLINE GPUShaderProgramCS* GetCS(const StringAnsiView& name, int32 permutationIndex = 0) const
@@ -176,7 +176,7 @@ public:
/// <summary>
/// Determines whether the specified shader program is in the shader.
/// </summary>
/// <param name="name">Thr shader program name.</param>
/// <param name="name">The shader program name.</param>
/// <param name="permutationIndex">The shader permutation index.</param>
/// <returns><c>true</c> if the shader is valid; otherwise, <c>false</c>.</returns>
FORCE_INLINE bool HasShader(const StringAnsiView& name, int32 permutationIndex = 0) const

View File

@@ -483,7 +483,7 @@ public:
/// <summary>
/// Creates new staging readback texture with the same dimensions and properties as a source texture (but without a data transferred; warning: caller must delete object).
/// </summary>
/// <returns>Thr staging readback texture.</returns>
/// <returns>The staging readback texture.</returns>
GPUTexture* ToStagingReadback() const;
/// <summary>

View File

@@ -118,7 +118,7 @@ float GPUTimerQueryDX11::GetResult()
if (!SingleShotLog)
{
SingleShotLog = true;
LOG(Warning, "Unrealiable GPU timer query detected.");
LOG(Warning, "Unreliable GPU timer query detected.");
}
#endif
}

View File

@@ -391,7 +391,7 @@ bool GPUDeviceDX12::Init()
{
// Descriptor tables
D3D12_DESCRIPTOR_RANGE r[2];
// TODO: separate ranges for pixel/vertex visiblity and one shared for all?
// TODO: separate ranges for pixel/vertex visibility and one shared for all?
{
D3D12_DESCRIPTOR_RANGE& range = r[0];
range.RangeType = D3D12_DESCRIPTOR_RANGE_TYPE_SRV;

View File

@@ -232,10 +232,10 @@ public:
}
/// <summary>
/// Converts Flax comparision function to the Vulkan comparision operation.
/// Converts Flax comparison function to the Vulkan comparison operation.
/// </summary>
/// <param name="value">The Flax comparision function.</param>
/// <returns>The Vulkan comparision operation.</returns>
/// <param name="value">The Flax comparison function.</param>
/// <returns>The Vulkan comparison operation.</returns>
static FORCE_INLINE VkCompareOp ToVulkanCompareOp(const ComparisonFunc value)
{
return ComparisonFuncToVkCompareOp[(int32)value];

View File

@@ -8,7 +8,7 @@
#define MAX_GAMEPADS 8
/// <summary>
/// Hardware mouse cursor behaviour.
/// Hardware mouse cursor behavior.
/// </summary>
API_ENUM() enum class CursorLockMode
{

View File

@@ -124,7 +124,7 @@ public:
virtual void SetMousePosition(const Vector2& newPosition) = 0;
/// <summary>
/// Called when mouse cursor gets moved by the application. Invalidates the previous cached mouse position to prevent mouse jitter when locking the cursor programatically.
/// Called when mouse cursor gets moved by the application. Invalidates the previous cached mouse position to prevent mouse jitter when locking the cursor programmatically.
/// </summary>
/// <param name="newPosition">The new mouse position.</param>
void OnMouseMoved(const Vector2& newPosition)

View File

@@ -98,7 +98,7 @@ void StaticModel::SetVertexColor(int32 lodIndex, int32 meshIndex, int32 vertexIn
{
if (!Model || Model->WaitForLoaded())
{
LOG(Warning, "Cannot set vertex color if model is missing or faied to load.");
LOG(Warning, "Cannot set vertex color if model is missing or failed to load.");
return;
}

View File

@@ -961,7 +961,7 @@ bool Level::loadScene(rapidjson_flax::Value& data, int32 engineBuild, bool autoI
}
// Synchronize prefab instances (prefab may have new objects added or some removed so deserialized instances need to synchronize with it)
// TODO: resave and force sync scenes durign game cooking so this step could be skipped in game
// TODO: resave and force sync scenes during game cooking so this step could be skipped in game
Scripting::ObjectsLookupIdMapping.Set(&modifier.Value->IdsMapping);
SceneObjectsFactory::SynchronizePrefabInstances(*sceneObjects.Value, actorToRemovedObjectsData, modifier.Value);
Scripting::ObjectsLookupIdMapping.Set(nullptr);
@@ -973,7 +973,7 @@ bool Level::loadScene(rapidjson_flax::Value& data, int32 engineBuild, bool autoI
if (obj && obj->GetParent() == nullptr)
{
sceneObjects->At(i) = nullptr;
LOG(Warning, "Scene object {0} {1} has missing parent objct after scene load. Removing it.", obj->GetID(), obj->ToString());
LOG(Warning, "Scene object {0} {1} has missing parent object after scene load. Removing it.", obj->GetID(), obj->ToString());
obj->DeleteObject();
}
}

View File

@@ -509,7 +509,7 @@ bool FindCyclicReferences(Actor* actor, const Guid& prefabRootId)
bool Prefab::ApplyAll(Actor* targetActor)
{
// TODO: use more cached dictionaries and other collections containers to prevent memory allocations during apply (optimize fo apply 10 times per second the same prefab on many changes in editor)
// TODO: use more cached dictionaries and other collections containers to prevent memory allocations during apply (optimize for apply 10 times per second the same prefab on many changes in editor)
PROFILE_CPU();
const auto startTime = DateTime::NowUTC();

View File

@@ -79,7 +79,7 @@ void NavMesh::EnsureCapacity(int32 tilesToAddCount)
// Ensure to have size assigned
ASSERT(_tileSize != 0);
// Fre previous data (if any)
// Free previous data (if any)
if (_navMesh)
{
dtFreeNavMesh(_navMesh);

View File

@@ -103,7 +103,7 @@ protected:
public:
/// <summary>
/// The Particle Emitter Graph data version number. Used to sync the Particle Emitter Graph data with the instances state. Handles graph reloads to enure data is valid.
/// The Particle Emitter Graph data version number. Used to sync the Particle Emitter Graph data with the instances state. Handles graph reloads to ensure data is valid.
/// </summary>
uint32 Version = 0;

View File

@@ -175,7 +175,7 @@ public:
}
/// <summary>
/// Attaches collider to the the specified rigid body.
/// Attaches collider to the specified rigid body.
/// </summary>
/// <param name="rigidBody">The rigid body.</param>
void Attach(RigidBody* rigidBody);

View File

@@ -13,7 +13,7 @@
#define ENSURE_CAN_COOK \
if (Physics::GetCooking() == nullptr) \
{ \
LOG(Warning, "Physics collisions cooking is disabled at runtime. Enable Physics Settigns option SupportCookingAtRuntime to use terrain generation at runtime."); \
LOG(Warning, "Physics collisions cooking is disabled at runtime. Enable Physics Settings option SupportCookingAtRuntime to use terrain generation at runtime."); \
return true; \
}

View File

@@ -346,7 +346,7 @@ static int X11_MessageBoxCreateWindow(MessageBoxData* data)
{
windowdata = data->Parent;
windowdataWin = (X11::Window)windowdata->GetNativePtr();
// TODO: place popup on the the screen that parent window is
// TODO: place popup on the screen that parent window is
data->screen = X11_DefaultScreen(display);
}
else

View File

@@ -60,7 +60,7 @@ private:
float ShadowMultiplier; // [0.0, 5.0] Effect strength linear multiplier
float ShadowPower; // [0.5, 5.0] Effect strength pow modifier
float HorizonAngleThreshold; // [0.0, 0.2] Limits self-shadowing (makes the sampling area less of a hemisphere, more of a spherical cone, to avoid self-shadowing and various artifacts due to low tessellation and depth buffer imprecision, etc.)
float FadeOutFrom; // [0.0, ~ ] Distance to start start fading out the effect.
float FadeOutFrom; // [0.0, ~ ] Distance to start fading out the effect.
float FadeOutTo; // [0.0, ~ ] Distance at which the effect is faded out.
int QualityLevel; // [ 0, ] Effect quality; 0 - low, 1 - medium, 2 - high, 3 - very high; each quality level is roughly 2x more costly than the previous, except the q3 which is variable but, in general, above q2.
int BlurPassCount; // [ 0, 6] Number of edge-sensitive smart blur passes to apply. Quality 0 is an exception with only one 'dumb' blur pass used.

View File

@@ -27,7 +27,7 @@ namespace FlaxEngine
/// <remarks>
/// Current order is resolved runtime, and can change if custom editor class has changed.
/// </remarks>
/// <param name="order">The order order.</param>
/// <param name="order">The order.</param>
public EditorOrderAttribute(int order)
{
Order = order;

View File

@@ -5,7 +5,7 @@ using System;
namespace FlaxEngine
{
/// <summary>
/// Indicates that a field or a property of a serializable class should be be serialized. This class cannot be inherited.
/// Indicates that a field or a property of a serializable class should be serialized. This class cannot be inherited.
/// </summary>
[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property)]
public sealed class SerializeAttribute : Attribute

View File

@@ -303,7 +303,7 @@ bool MAssembly::LoadWithImage(const String& assemblyPath)
const auto assembly = mono_assembly_load_from_full(assemblyImage, name.Substring(0, name.Length() - 3).Get(), &status, false);
if (status != MONO_IMAGE_OK || assembly == nullptr)
{
// Close image if error occured
// Close image if error occurred
mono_image_close(assemblyImage);
Log::CLRInnerException(TEXT("Mono assembly image is corrupted at ") + assemblyPath);

View File

@@ -234,7 +234,7 @@ public:
#endif
/// <summary>
/// Gets the classes lookup cache. Performs ful initialization if not cached. The result cache contains all classes from the assembly.
/// Gets the classes lookup cache. Performs full initialization if not cached. The result cache contains all classes from the assembly.
/// </summary>
/// <returns>The cache.</returns>
const ClassesDictionary& GetClasses() const;

View File

@@ -193,7 +193,7 @@ public:
/// <summary>
/// Returns an object referencing a method with the specified name and number of parameters.
/// </summary>
/// <remarks>If the the type contains more than one method of the given name and parameters count the returned value can be non-deterministic (one of the matching methods).</remarks>
/// <remarks>If the type contains more than one method of the given name and parameters count the returned value can be non-deterministic (one of the matching methods).</remarks>
/// <param name="name">The method name.</param>
/// <param name="numParams">The method parameters count.</param>
/// <returns>The method or null if failed to get it.</returns>

View File

@@ -190,7 +190,7 @@ struct FLAXENGINE_API ScriptingType
SetupScriptObjectVTableHandler SetupScriptObjectVTable;
/// <summary>
/// The default instance of the scripting type. Used by serialization system for comparision to save only modified properties of the object.
/// The default instance of the scripting type. Used by serialization system for comparison to save only modified properties of the object.
/// </summary>
mutable ScriptingObject* DefaultInstance;
} Class;
@@ -255,7 +255,7 @@ struct FLAXENGINE_API ScriptingType
}
/// <summary>
/// Gets the default instance of the scripting type. Used by serialization system for comparision to save only modified properties of the object.
/// Gets the default instance of the scripting type. Used by serialization system for comparison to save only modified properties of the object.
/// </summary>
ScriptingObject* GetDefaultInstance() const;

View File

@@ -195,7 +195,7 @@ void JsonWriter::SceneObject(::SceneObject* obj)
auto prefab = Content::Load<Prefab>(obj->GetPrefabID());
if (prefab)
{
// Request the prefab to be deserialized to the default instance (used for comparision to generate a diff)
// Request the prefab to be deserialized to the default instance (used for comparison to generate a diff)
prefab->GetDefaultInstance();
// Get prefab object instance from the prefab

View File

@@ -37,9 +37,9 @@ public:
public:
/// <summary>
/// Returns true if error occured during reading/writing to the stream
/// Returns true if error occurred during reading/writing to the stream
/// </summary>
/// <returns>True if error occured during reading/writing to the stream</returns>
/// <returns>True if error occurred during reading/writing to the stream</returns>
virtual bool HasError() const
{
return _hasError;

View File

@@ -489,7 +489,7 @@ void Terrain::RemovePatch(const Int2& patchCoord)
const auto patch = GetPatch(patchCoord);
if (patch == nullptr)
{
LOG(Warning, "Cannot remvoe patch at {0}x{1}. It does not exist.", patchCoord.X, patchCoord.Y);
LOG(Warning, "Cannot remove patch at {0}x{1}. It does not exist.", patchCoord.X, patchCoord.Y);
return;
}

View File

@@ -382,7 +382,7 @@ public:
/// Searches for the specified object and returns the zero-based index of the first occurrence within the entire collection.
/// </summary>
/// <param name="item">The item.</param>
/// <returns>The zero-based index of the first occurrence of itm within the entire collection, if found; otherwise, INVALID_INDEX.</returns>
/// <returns>The zero-based index of the first occurrence of item within the entire collection, if found; otherwise, INVALID_INDEX.</returns>
int32 IndexOf(const T& item) const
{
for (int32 i = 0; i < _count; i++)

View File

@@ -41,7 +41,7 @@ public:
}
// Called when thread ends work (via Kill or normally)
// @param wasKilled True if thead has been killed
// @param wasKilled True if thread has been killed
virtual void AfterWork(bool wasKilled)
{
}

View File

@@ -52,7 +52,7 @@ bool ThreadPoolService::Init()
// Create tread
auto runnable = New<SimpleRunnable>(true);
runnable->OnWork.Bind(ThreadPool::ThreadProc);
auto thread = Thread::Create(runnable, String::Format(TEXT("Therad Pool {0}"), i));
auto thread = Thread::Create(runnable, String::Format(TEXT("Thread Pool {0}"), i));
if (thread == nullptr)
{
LOG(Error, "Failed to spawn {0} thread in the Thread Pool", i + 1);

View File

@@ -744,7 +744,7 @@ bool ProcessMesh(OpenFbxImporterData& data, const ofbx::Mesh* aMesh, MeshData& m
auto length = delta.Length();
if (length > ZeroTolerance)
delta /= length;*/
auto delta = Vector3::Zero; // TODO: blend shape normals deltas fix when importing from ofbx
auto delta = Vector3::Zero; // TODO: blend shape normals deltas fix when importing from fbx
blendShapeData.Vertices[i].NormalDelta = delta;
}
}

View File

@@ -1131,7 +1131,7 @@ bool ModelTool::ImportModel(const String& path, ModelData& meshData, Options opt
dstLod.Meshes.RemoveAt(i--);
}
LOG(Info, "Generated LOD{0}: triangles: {1} ({2}% of base LOD), verteces: {3} ({4}% of base LOD)",
LOG(Info, "Generated LOD{0}: triangles: {1} ({2}% of base LOD), verticies: {3} ({4}% of base LOD)",
lodIndex,
lodTriangleCount, (int32)(lodTriangleCount * 100 / baseLodTriangleCount),
lodVertexCount, (int32)(lodVertexCount * 100 / baseLodVertexCount));

View File

@@ -469,7 +469,7 @@ namespace FlaxEngine.GUI
}
/// <summary>
/// Checks if given point in thi container control space intersects with the child control content.
/// Checks if given point in this container control space intersects with the child control content.
/// Also calculates result location in child control space which can be used to feed control with event at that point.
/// </summary>
/// <param name="child">The child control to check.</param>

View File

@@ -1211,7 +1211,7 @@ namespace FlaxEngine.GUI
}
/// <summary>
/// Action fred when parent control gets changed.
/// Action fired when parent control gets changed.
/// </summary>
protected virtual void OnParentChangedInternal()
{
@@ -1252,9 +1252,9 @@ namespace FlaxEngine.GUI
}
/// <summary>
/// Helper utility function to sets the update callback to the root. Does nothing if value has not been modified. Handles if control ahs no root or parent.
/// Helper utility function to sets the update callback to the root. Does nothing if value has not been modified. Handles if control has no root or parent.
/// </summary>
/// <param name="onUpdate">The cached update callback delegate (field in teh custom control implementation).</param>
/// <param name="onUpdate">The cached update callback delegate (field in the custom control implementation).</param>
/// <param name="value">The value to assign.</param>
protected void SetUpdate(ref UpdateDelegate onUpdate, UpdateDelegate value)
{
@@ -1268,7 +1268,7 @@ namespace FlaxEngine.GUI
}
/// <summary>
/// Action fred when parent control gets resized (also when control gets non-null parent).
/// Action fired when parent control gets resized (also when control gets non-null parent).
/// </summary>
public virtual void OnParentResized()
{

View File

@@ -14,7 +14,7 @@ namespace FlaxEngine.GUI
/// <summary>
/// Gets or sets the padding given to each slot.
/// </summary>
[EditorOrder(0), Tooltip("The padding margin appied to each item slot.")]
[EditorOrder(0), Tooltip("The padding margin applied to each item slot.")]
public Margin SlotPadding
{
get => _slotPadding;

View File

@@ -186,14 +186,14 @@ namespace FlaxEngine
public CanvasRootControl GUI => _guiRoot;
/// <summary>
/// Delegate schema for the callback used to perform custom canvas intersection test. Can be used to implement a canvas tha has a holes or non-rectangular shape.
/// Delegate schema for the callback used to perform custom canvas intersection test. Can be used to implement a canvas that has a holes or non-rectangular shape.
/// </summary>
/// <param name="location">The location of the point to test in coordinates of the canvas root control (see <see cref="GUI"/>).</param>
/// <returns>True if canvas was hit, otherwise false.</returns>
public delegate bool TestCanvasIntersectionDelegate(ref Vector2 location);
/// <summary>
/// The callback used to perform custom canvas intersection test. Can be used to implement a canvas tha has a holes or non-rectangular shape.
/// The callback used to perform custom canvas intersection test. Can be used to implement a canvas that has a holes or non-rectangular shape.
/// </summary>
[HideInEditor]
public TestCanvasIntersectionDelegate TestCanvasIntersection;