mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-04 17:10:47 +00:00
177 lines
5.1 KiB
C#
177 lines
5.1 KiB
C#
/******************************************************************************
|
|
* The MIT License (MIT)
|
|
*
|
|
* Copyright (c) 2015-2016 Baldur Karlsson
|
|
* Copyright (c) 2014 Crytek
|
|
*
|
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
* of this software and associated documentation files (the "Software"), to deal
|
|
* in the Software without restriction, including without limitation the rights
|
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
* copies of the Software, and to permit persons to whom the Software is
|
|
* furnished to do so, subject to the following conditions:
|
|
*
|
|
* The above copyright notice and this permission notice shall be included in
|
|
* all copies or substantial portions of the Software.
|
|
*
|
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
* THE SOFTWARE.
|
|
******************************************************************************/
|
|
|
|
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Drawing;
|
|
using System.Data;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Windows.Forms;
|
|
using renderdocui.Code;
|
|
using renderdoc;
|
|
|
|
namespace renderdocui.Controls
|
|
{
|
|
[Designer(typeof(System.Windows.Forms.Design.ControlDesigner))]
|
|
public partial class ResourcePreview : UserControl
|
|
{
|
|
private string m_Name;
|
|
private UInt32 m_Width, m_Height, m_Depth, m_NumMips;
|
|
private Core m_Core;
|
|
private ReplayOutput m_Output;
|
|
private IntPtr m_Handle;
|
|
|
|
public ResourcePreview(Core core, ReplayOutput output)
|
|
{
|
|
InitializeComponent();
|
|
|
|
descriptionLabel.Font = core.Config.PreferredFont;
|
|
|
|
m_Name = "Unbound";
|
|
m_Width = 1;
|
|
m_Height = 1;
|
|
m_Depth = 1;
|
|
m_NumMips = 0;
|
|
m_Unbound = true;
|
|
thumbnail.Painting = false;
|
|
|
|
m_Unbound = true;
|
|
|
|
slotLabel.Text = "0";
|
|
|
|
this.DoubleBuffered = true;
|
|
|
|
SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint, true);
|
|
|
|
m_Handle = thumbnail.Handle;
|
|
|
|
m_Core = core;
|
|
m_Output = output;
|
|
|
|
Selected = false;
|
|
}
|
|
|
|
public void Init()
|
|
{
|
|
descriptionLabel.Text = "Unbound";
|
|
m_Unbound = true;
|
|
thumbnail.Painting = true;
|
|
}
|
|
|
|
public void Init(string Name, UInt32 Width, UInt32 Height, UInt32 Depth, UInt32 NumMips)
|
|
{
|
|
m_Name = Name;
|
|
m_Width = Width;
|
|
m_Height = Height;
|
|
m_Depth = Depth;
|
|
m_NumMips = NumMips;
|
|
m_Unbound = false;
|
|
thumbnail.Painting = true;
|
|
|
|
//descriptionLabel.Text = m_Width + "x" + m_Height + "x" + m_Depth + (m_NumMips > 0 ? "[" + m_NumMips + "]\n" : "\n") + m_Name;
|
|
descriptionLabel.Text = m_Name;
|
|
}
|
|
|
|
public string SlotName
|
|
{
|
|
get { return slotLabel.Text; }
|
|
set { slotLabel.Text = value; }
|
|
}
|
|
|
|
private bool m_Unbound = true;
|
|
public bool Unbound
|
|
{
|
|
get
|
|
{
|
|
return m_Unbound;
|
|
}
|
|
}
|
|
|
|
private bool m_Selected;
|
|
public bool Selected
|
|
{
|
|
get { return m_Selected; }
|
|
set
|
|
{
|
|
m_Selected = value;
|
|
if (value)
|
|
{
|
|
BackColor = Color.Red;
|
|
}
|
|
else
|
|
{
|
|
BackColor = Color.Black;
|
|
}
|
|
}
|
|
}
|
|
|
|
public IntPtr ThumbnailHandle
|
|
{
|
|
get { return m_Handle; }
|
|
}
|
|
|
|
private void ResourcePreview_Load(object sender, EventArgs e)
|
|
{
|
|
Init(m_Name, m_Width, m_Height, m_Depth, m_NumMips);
|
|
}
|
|
|
|
public void Clear()
|
|
{
|
|
thumbnail.Invalidate();
|
|
}
|
|
|
|
private void thumbnail_Paint(object sender, PaintEventArgs e)
|
|
{
|
|
if (m_Output == null || m_Core.Renderer == null)
|
|
{
|
|
e.Graphics.Clear(Color.Black);
|
|
return;
|
|
}
|
|
|
|
if (m_Output != null)
|
|
m_Core.Renderer.Invoke((ReplayRenderer r) => { m_Output.Display(); });
|
|
}
|
|
|
|
public void SetSize(Size s)
|
|
{
|
|
MinimumSize = MaximumSize = s;
|
|
Size = s;
|
|
}
|
|
|
|
private void child_MouseClick(object sender, MouseEventArgs e)
|
|
{
|
|
OnMouseClick(e);
|
|
}
|
|
|
|
private void child_MouseDoubleClick(object sender, MouseEventArgs e)
|
|
{
|
|
OnMouseDoubleClick(e);
|
|
}
|
|
}
|
|
}
|