From bdcda2fc47486230211d182e1934d5887d134078 Mon Sep 17 00:00:00 2001 From: "DESKTOP-OUB6G0E\\Andrzej" Date: Mon, 4 Nov 2019 22:48:12 +0100 Subject: [PATCH 01/12] * Partial toggle conversion --- com.dotsui.core/DotsUI.Controls/Toggle.cs | 26 +++++++++ .../DotsUI.Controls/Toggle.cs.meta | 11 ++++ .../DotsUI.Controls/ToggleInputSystem.cs | 47 +++++++++++++++ .../DotsUI.Controls/ToggleInputSystem.cs.meta | 11 ++++ .../Controls/ButtonConversionSystem.cs | 10 +--- .../Controls/InputFieldConversionSystem.cs | 11 +--- .../Controls/ScrollBarConversionSystem.cs | 10 +--- .../Controls/SelectableConversionSystem.cs | 12 +++- .../Controls/SliderConversionSystem.cs | 10 +--- .../Controls/ToggleConversionSystem.cs | 27 +++++++++ .../Controls/ToggleConversionSystem.cs.meta | 11 ++++ .../DotsUI.Hybrid/Renderer/ImguiProxy.cs | 4 ++ .../Renderer/ScreenSpaceOverlaySystem.cs | 57 ++++++++++--------- 13 files changed, 185 insertions(+), 62 deletions(-) create mode 100644 com.dotsui.core/DotsUI.Controls/Toggle.cs create mode 100644 com.dotsui.core/DotsUI.Controls/Toggle.cs.meta create mode 100644 com.dotsui.core/DotsUI.Controls/ToggleInputSystem.cs create mode 100644 com.dotsui.core/DotsUI.Controls/ToggleInputSystem.cs.meta create mode 100644 com.dotsui.hybrid/DotsUI.Hybrid/ConvertToEntity/Controls/ToggleConversionSystem.cs create mode 100644 com.dotsui.hybrid/DotsUI.Hybrid/ConvertToEntity/Controls/ToggleConversionSystem.cs.meta diff --git a/com.dotsui.core/DotsUI.Controls/Toggle.cs b/com.dotsui.core/DotsUI.Controls/Toggle.cs new file mode 100644 index 0000000..8c0727b --- /dev/null +++ b/com.dotsui.core/DotsUI.Controls/Toggle.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Unity.Entities; + +namespace DotsUI.Controls +{ + public struct Toggle : IComponentData + { + public bool IsOn; + public Entity TargetGraphic; + public Entity Group; + } + + public struct ToggleGroup : IComponentData + { + + } + + public struct ToggleValueChangedEvent : IComponentData + { + + } +} diff --git a/com.dotsui.core/DotsUI.Controls/Toggle.cs.meta b/com.dotsui.core/DotsUI.Controls/Toggle.cs.meta new file mode 100644 index 0000000..2171154 --- /dev/null +++ b/com.dotsui.core/DotsUI.Controls/Toggle.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3870ee9e2edfe504f98461e09368fc7f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.dotsui.core/DotsUI.Controls/ToggleInputSystem.cs b/com.dotsui.core/DotsUI.Controls/ToggleInputSystem.cs new file mode 100644 index 0000000..48ddc9b --- /dev/null +++ b/com.dotsui.core/DotsUI.Controls/ToggleInputSystem.cs @@ -0,0 +1,47 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using DotsUI.Input; +using Unity.Collections; +using Unity.Entities; +using Unity.Jobs; + +namespace DotsUI.Controls +{ + class ToggleInputSystem : PointerInputComponentSystem + { + private EntityQuery m_ToggleQuery; + protected override void OnCreateInput() + { + m_ToggleQuery = GetEntityQuery(typeof(Toggle)); + } + + struct UpdateToggle : IJobChunk + { + public ArchetypeChunkEntityType EntityType; + public ArchetypeChunkComponentType ToggleType; + public ComponentDataFromEntity ToggleComponent; + public NativeHashMap TargetToEvent; + public BufferFromEntity PointerBufferFromEntity; + + public void Execute(ArchetypeChunk chunk, int chunkIndex, int firstEntityIndex) + { + NativeArray entityArray = chunk.GetNativeArray(EntityType); + NativeArray toggleArray = chunk.GetNativeArray(ToggleType); + for (int i = 0; i < entityArray.Length; i++) + { + if (TargetToEvent.TryGetValue(entityArray[i], out var entity)) + { + } + } + } + } + + protected override JobHandle OnUpdateInput(JobHandle inputDeps, NativeHashMap targetToEvent, BufferFromEntity pointerBufferFromEntity) + { + return inputDeps; + } + } +} diff --git a/com.dotsui.core/DotsUI.Controls/ToggleInputSystem.cs.meta b/com.dotsui.core/DotsUI.Controls/ToggleInputSystem.cs.meta new file mode 100644 index 0000000..7b0fea9 --- /dev/null +++ b/com.dotsui.core/DotsUI.Controls/ToggleInputSystem.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5bfac0dc0aa375146b9e580ed965c30d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.dotsui.hybrid/DotsUI.Hybrid/ConvertToEntity/Controls/ButtonConversionSystem.cs b/com.dotsui.hybrid/DotsUI.Hybrid/ConvertToEntity/Controls/ButtonConversionSystem.cs index d11f271..271babe 100644 --- a/com.dotsui.hybrid/DotsUI.Hybrid/ConvertToEntity/Controls/ButtonConversionSystem.cs +++ b/com.dotsui.hybrid/DotsUI.Hybrid/ConvertToEntity/Controls/ButtonConversionSystem.cs @@ -9,18 +9,12 @@ namespace DotsUI.Hybrid { [UpdateInGroup(typeof(GameObjectConversionGroup))] - class ButtonConversionSystem : SelectableConversionSystem + class ButtonConversionSystem : SelectableConversionSystem