mirror of
https://github.com/aharabada/glitchy-engine-beef.git
synced 2026-09-05 13:01:52 +00:00
RenderTargetGroup GetData, Shader uint support
This commit is contained in:
@@ -33,7 +33,17 @@ namespace GlitchyEditor.EditWindows
|
||||
_selectedEntities.Clear();
|
||||
_scene = scene;
|
||||
}
|
||||
|
||||
|
||||
/*public bool SelectEntityWithId(uint32 id, bool addToSelection = false)
|
||||
{
|
||||
if (!addToSelection)
|
||||
_selectedEntities.Clear();
|
||||
|
||||
_scene.[Friend]_ecsWorld.IsValid(id);
|
||||
|
||||
_selectedEntities.Add();
|
||||
}*/
|
||||
|
||||
protected override void InternalShow()
|
||||
{
|
||||
if(!ImGui.Begin(s_WindowTitle, &_open, .MenuBar))
|
||||
|
||||
@@ -12,11 +12,11 @@ namespace GlitchyEditor.EditWindows
|
||||
{
|
||||
public const String s_WindowTitle = "Scene";
|
||||
|
||||
private RenderTarget2D _renderTarget ~ _?.ReleaseRef();
|
||||
private RenderTargetGroup _renderTarget ~ _?.ReleaseRef();
|
||||
|
||||
public Event<EventHandler<Vector2>> ViewportSizeChangedEvent ~ _.Dispose();
|
||||
|
||||
public RenderTarget2D RenderTarget
|
||||
public RenderTargetGroup RenderTarget
|
||||
{
|
||||
get => _renderTarget;
|
||||
set
|
||||
@@ -93,7 +93,34 @@ namespace GlitchyEditor.EditWindows
|
||||
|
||||
if(_renderTarget != null)
|
||||
{
|
||||
ImGui.Image(_renderTarget, viewportSize);
|
||||
ImGui.Image(_renderTarget.GetViewBinding(0), viewportSize);
|
||||
}
|
||||
|
||||
Vector2 relativeMouse = (Vector2)ImGui.GetMousePos() - (Vector2)ImGui.GetItemRectMin();
|
||||
|
||||
int x = Renderer.[Friend]_gBuffer.Target.Width;
|
||||
int y = Renderer.[Friend]_gBuffer.Target.Height;
|
||||
|
||||
if (Input.IsMouseButtonPressing(.LeftButton) && relativeMouse.X >= 0 && relativeMouse.Y >= 0 &&
|
||||
relativeMouse.X < viewportSize.x && relativeMouse.Y < viewportSize.y &&
|
||||
relativeMouse.X < x && relativeMouse.Y < y)
|
||||
{
|
||||
uint32 id = 0;
|
||||
|
||||
Renderer.[Friend]_gBuffer.Target.GetData<uint32>(&id, 5, (.)relativeMouse.X, (.)relativeMouse.Y, 1, 1);
|
||||
|
||||
id--;
|
||||
|
||||
//_renderTarget.GetData<uint32>(&pixel, 0, );
|
||||
|
||||
Log.EngineLogger.Info($"{relativeMouse} || ID = {id}");
|
||||
|
||||
/*if (id != uint32.MaxValue)
|
||||
{
|
||||
_editor.CurrentScene.[Friend]_ecsWorld.GetCurrentVersion()
|
||||
}*/
|
||||
//_editor.EntityHierarchyWindow.SelectEntityWithId(id, true);
|
||||
|
||||
}
|
||||
|
||||
DrawImGuizmo(viewportSize);
|
||||
|
||||
@@ -44,7 +44,7 @@ namespace GlitchyEditor
|
||||
Editor _editor ~ delete _;
|
||||
|
||||
RenderTarget2D _cameraTarget ~ _.ReleaseRef();
|
||||
RenderTarget2D _viewportTarget ~ _.ReleaseRef();
|
||||
RenderTargetGroup _viewportTarget ~ _.ReleaseRef();
|
||||
|
||||
SettingsWindow _settingsWindow = new .() ~ delete _;
|
||||
|
||||
@@ -89,8 +89,16 @@ namespace GlitchyEditor
|
||||
_cameraTarget = new RenderTarget2D(RenderTarget2DDescription(.R16G16B16A16_Float, 100, 100) {DepthStencilFormat = .D32_Float});
|
||||
_cameraTarget.SamplerState = SamplerStateManager.LinearClamp;
|
||||
|
||||
_viewportTarget = new RenderTarget2D(RenderTarget2DDescription(.R8G8B8A8_UNorm, 100, 100));
|
||||
_viewportTarget.SamplerState = SamplerStateManager.LinearClamp;
|
||||
//_viewportTarget = new RenderTarget2D(RenderTarget2DDescription(.R8G8B8A8_UNorm, 100, 100));
|
||||
//_viewportTarget.SamplerState = SamplerStateManager.LinearClamp;
|
||||
|
||||
_viewportTarget = new RenderTargetGroup(.()
|
||||
{
|
||||
Width = 100,
|
||||
Height = 100,
|
||||
ColorTargetDescriptions = TargetDescription[](
|
||||
.(.R8G8B8A8_UNorm))
|
||||
});
|
||||
|
||||
_editorIcons = new Texture2D("Textures/EditorIcons.dds");
|
||||
_editorIcons.SamplerState = SamplerStateManager.AnisotropicClamp;
|
||||
@@ -114,7 +122,7 @@ namespace GlitchyEditor
|
||||
|
||||
RenderCommand.Clear(_viewportTarget, .Color | .Depth, .(0.2f, 0.2f, 0.2f), 1.0f, 0);
|
||||
|
||||
RenderCommand.SetRenderTarget(_viewportTarget, 0, true);
|
||||
RenderCommand.SetRenderTargetGroup(_viewportTarget, true);
|
||||
RenderCommand.BindRenderTargets();
|
||||
|
||||
RenderCommand.SetViewport(Viewport(0, 0, _viewportTarget.Width, _viewportTarget.Height));
|
||||
|
||||
Reference in New Issue
Block a user