mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-08-23 15:06:32 +00:00
Add toggle to disable gamma 'correction' of linear data. Closes #58
* The explanation is in the FAQ but the short explanation is that most data e.g. normal maps are conventionally displayed as if they contained SRGB data, so RenderDoc does the same so things look as expected.
This commit is contained in:
@@ -218,5 +218,38 @@
|
||||
</para>
|
||||
</content>
|
||||
</section>
|
||||
<section address="FAQ12">
|
||||
<title>Gamma display of linear data, or "Why doesn't my texture look right?"</title>
|
||||
<content>
|
||||
<para>
|
||||
Gamma/SRGB correctness is a rather painful subject. If we could all just agree to store everything
|
||||
in 32bit float data we could probably do away with it. Until that time we have to worry about
|
||||
displaying textures while making sure to respect SRGB.
|
||||
</para>
|
||||
<para>
|
||||
For texture formats that explicitly specify that they contain SRGB data this isn't a problem and
|
||||
everything works smoothly. Note that RenderDoc shows picked texel values in linear float format,
|
||||
so if you pick a pixel that is 0.5, 0.5, 0.5, the actual bytes might be stored as say 186, 186, 186.
|
||||
</para>
|
||||
<para>
|
||||
For other textures it's more difficult - for starters they may actually contain SRGB data but the
|
||||
correction is handled by shaders so there's no markup. Or indeed the app may not be gamma-correct so the
|
||||
data is SRGB but uncorrected. If we display these textures in a technically correct way, such that the
|
||||
data is not over or under gamma-corrected, the result often looks 'wrong' or unintuitively different
|
||||
from expected.
|
||||
</para>
|
||||
<para>
|
||||
Nothing is actually wrong here except perhaps that when visualising linear data it is often more convenient
|
||||
to "overcorrect" such that the data is <em>perceptually</em> linear. A good example to use is a normal map:
|
||||
The classic deep blue of (127,127,255) flat normals is technically incorrect as everyone is used to
|
||||
visualising these textures in programs that display the data as if it were SRGB (which is the convention for
|
||||
normal images that do not represent vectors).
|
||||
</para>
|
||||
<para>
|
||||
You can override this behaviour on any texture that isn't listed as explicitly SRGB with the gamma (γ)
|
||||
button - toggle this off and the overcorrection will be disabled.
|
||||
</para>
|
||||
</content>
|
||||
</section>
|
||||
</developerConceptualDocument>
|
||||
</topic>
|
||||
|
||||
@@ -215,6 +215,17 @@
|
||||
and delete an one with the <mediaLinkInline><image xlink:href="delete"/></mediaLinkInline> button.</para>
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>
|
||||
<para>γ
|
||||
Gamma display of Linear data
|
||||
</para>
|
||||
</entry>
|
||||
<entry><para>A proper explanation of this is available in the
|
||||
<link xlink:href="b97b19f8-2b97-4dca-8a7a-ed7026eb43fe" />. In short, linear data is 'overcorrected' to
|
||||
look as expected, but this behaviour can be overridden</para>
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>
|
||||
<para><mediaLinkInline><image xlink:href="color_wheel"/></mediaLinkInline>
|
||||
@@ -226,8 +237,8 @@
|
||||
the semi-transparent sections more obvious. With these two controls you can either choose a checkerboard pattern
|
||||
<mediaLinkInline><image xlink:href="crosshatch"/></mediaLinkInline> or open a colour picker to choose a solid
|
||||
colour <mediaLinkInline><image xlink:href="color_wheel"/></mediaLinkInline>.</para>
|
||||
</entry>
|
||||
<para>The currently enabled mode will be highlighted.</para>
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>
|
||||
|
||||
@@ -1396,6 +1396,7 @@ void D3D11DebugManager::PickPixel(ResourceId texture, uint32_t x, uint32_t y, ui
|
||||
|
||||
texDisplay.Red = texDisplay.Green = texDisplay.Blue = texDisplay.Alpha = true;
|
||||
texDisplay.HDRMul = -1.0f;
|
||||
texDisplay.linearDisplayAsGamma = true;
|
||||
texDisplay.mip = mip;
|
||||
texDisplay.CustomShader = ResourceId();
|
||||
texDisplay.sliceFace = sliceFace;
|
||||
@@ -2048,6 +2049,7 @@ ResourceId D3D11DebugManager::ApplyCustomShader(ResourceId shader, ResourceId te
|
||||
disp.texid = texid;
|
||||
disp.lightBackgroundColour = disp.darkBackgroundColour = FloatVector(0,0,0,0);
|
||||
disp.HDRMul = -1.0f;
|
||||
disp.linearDisplayAsGamma = true;
|
||||
disp.mip = mip;
|
||||
disp.overlay = eTexOverlay_None;
|
||||
disp.rangemin = 0.0f;
|
||||
|
||||
@@ -3464,7 +3464,7 @@ bool D3D11DebugManager::RenderTexture(TextureDisplay cfg)
|
||||
pixelData.OutputDisplayFormat |= TEXDISPLAY_SINT_TEX;
|
||||
srvOffset = 20;
|
||||
}
|
||||
if(!IsSRGBFormat(details.texFmt))
|
||||
if(!IsSRGBFormat(details.texFmt) && cfg.linearDisplayAsGamma)
|
||||
{
|
||||
pixelData.OutputDisplayFormat |= TEXDISPLAY_GAMMA_CURVE;
|
||||
}
|
||||
|
||||
@@ -198,6 +198,7 @@ void GLReplay::PickPixel(ResourceId texture, uint32_t x, uint32_t y, uint32_t sl
|
||||
|
||||
texDisplay.Red = texDisplay.Green = texDisplay.Blue = texDisplay.Alpha = true;
|
||||
texDisplay.HDRMul = -1.0f;
|
||||
texDisplay.linearDisplayAsGamma = true;
|
||||
texDisplay.mip = mip;
|
||||
texDisplay.CustomShader = ResourceId();
|
||||
texDisplay.sliceFace = sliceFace;
|
||||
|
||||
@@ -60,6 +60,7 @@ struct TextureDisplay
|
||||
float scale;
|
||||
bool32 Red, Green, Blue, Alpha;
|
||||
float HDRMul;
|
||||
bool32 linearDisplayAsGamma;
|
||||
ResourceId CustomShader;
|
||||
uint32_t mip;
|
||||
uint32_t sliceFace;
|
||||
|
||||
@@ -361,6 +361,7 @@ bool ReplayOutput::Display()
|
||||
disp.Red = disp.Green = disp.Blue = true;
|
||||
disp.Alpha = false;
|
||||
disp.HDRMul = -1.0f;
|
||||
disp.linearDisplayAsGamma = true;
|
||||
disp.mip = 0;
|
||||
disp.CustomShader = ResourceId();
|
||||
disp.texid = m_pDevice->GetLiveID(m_Thumbnails[i].texture);
|
||||
|
||||
@@ -414,6 +414,7 @@ namespace renderdoc
|
||||
public float scale = 1.0f;
|
||||
public bool Red = true, Green = true, Blue = true, Alpha = false;
|
||||
public float HDRMul = -1.0f;
|
||||
public bool linearDisplayAsGamma = true;
|
||||
public ResourceId CustomShader = ResourceId.Null;
|
||||
public UInt32 mip = 0;
|
||||
public UInt32 sliceFace = 0;
|
||||
|
||||
+93
-67
@@ -120,25 +120,27 @@
|
||||
this.debugPixel = new System.Windows.Forms.ToolStripButton();
|
||||
this.texListShow = new System.Windows.Forms.ToolStripButton();
|
||||
this.texlistContainer = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.textureList = new renderdocui.Controls.TextureListBox();
|
||||
this.texturefilter = new System.Windows.Forms.ComboBox();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.clearTexFilter = new System.Windows.Forms.Button();
|
||||
this.renderToolstripContainer = new System.Windows.Forms.ToolStripContainer();
|
||||
this.renderScrollTable = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.renderContainer = new renderdocui.Controls.NoScrollPanel();
|
||||
this.render = new renderdocui.Controls.NoScrollPanel();
|
||||
this.renderVScroll = new System.Windows.Forms.VScrollBar();
|
||||
this.renderHScroll = new System.Windows.Forms.HScrollBar();
|
||||
this.pixelContextPanel = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.pixelContext = new renderdocui.Controls.NoScrollPanel();
|
||||
this.debugPixelContext = new System.Windows.Forms.Button();
|
||||
this.tabContextMenu = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
this.closeTab = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.closeOtherTabs = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.closeTabsToRight = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.gammaDisplay = new System.Windows.Forms.ToolStripButton();
|
||||
this.gammaSeparator = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.textureList = new renderdocui.Controls.TextureListBox();
|
||||
this.texPanel = new renderdocui.Controls.ThumbnailStrip();
|
||||
this.rtPanel = new renderdocui.Controls.ThumbnailStrip();
|
||||
this.pixelContext = new renderdocui.Controls.NoScrollPanel();
|
||||
this.renderContainer = new renderdocui.Controls.NoScrollPanel();
|
||||
this.render = new renderdocui.Controls.NoScrollPanel();
|
||||
this.rangeHistogram = new renderdocui.Controls.RangeHistogram();
|
||||
subSep = new System.Windows.Forms.ToolStripSeparator();
|
||||
toolStripLabel2 = new System.Windows.Forms.ToolStripLabel();
|
||||
@@ -161,9 +163,9 @@
|
||||
this.renderToolstripContainer.ContentPanel.SuspendLayout();
|
||||
this.renderToolstripContainer.SuspendLayout();
|
||||
this.renderScrollTable.SuspendLayout();
|
||||
this.renderContainer.SuspendLayout();
|
||||
this.pixelContextPanel.SuspendLayout();
|
||||
this.tabContextMenu.SuspendLayout();
|
||||
this.renderContainer.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// subSep
|
||||
@@ -517,7 +519,7 @@
|
||||
this.overlayStrip.Location = new System.Drawing.Point(216, 50);
|
||||
this.overlayStrip.Margin = new System.Windows.Forms.Padding(0, 0, 12, 0);
|
||||
this.overlayStrip.Name = "overlayStrip";
|
||||
this.overlayStrip.Size = new System.Drawing.Size(204, 25);
|
||||
this.overlayStrip.Size = new System.Drawing.Size(171, 25);
|
||||
this.overlayStrip.TabIndex = 3;
|
||||
//
|
||||
// toolStripLabel5
|
||||
@@ -553,7 +555,7 @@
|
||||
this.mipLevel,
|
||||
this.sliceFaceLabel,
|
||||
this.sliceFace});
|
||||
this.subStrip.Location = new System.Drawing.Point(604, 0);
|
||||
this.subStrip.Location = new System.Drawing.Point(633, 0);
|
||||
this.subStrip.Margin = new System.Windows.Forms.Padding(0, 0, 12, 0);
|
||||
this.subStrip.Name = "subStrip";
|
||||
this.subStrip.Size = new System.Drawing.Size(400, 25);
|
||||
@@ -604,7 +606,7 @@
|
||||
this.autoFit,
|
||||
this.reset01,
|
||||
this.visualiseRange});
|
||||
this.rangeStrip.Location = new System.Drawing.Point(432, 50);
|
||||
this.rangeStrip.Location = new System.Drawing.Point(399, 50);
|
||||
this.rangeStrip.Margin = new System.Windows.Forms.Padding(0, 0, 12, 0);
|
||||
this.rangeStrip.Name = "rangeStrip";
|
||||
this.rangeStrip.Size = new System.Drawing.Size(237, 25);
|
||||
@@ -686,11 +688,13 @@
|
||||
this.customEdit,
|
||||
this.customDelete,
|
||||
this.backcolorPick,
|
||||
this.checkerBack});
|
||||
this.checkerBack,
|
||||
this.gammaSeparator,
|
||||
this.gammaDisplay});
|
||||
this.channelStrip.Location = new System.Drawing.Point(0, 0);
|
||||
this.channelStrip.Margin = new System.Windows.Forms.Padding(0, 0, 12, 0);
|
||||
this.channelStrip.Name = "channelStrip";
|
||||
this.channelStrip.Size = new System.Drawing.Size(592, 25);
|
||||
this.channelStrip.Size = new System.Drawing.Size(621, 25);
|
||||
this.channelStrip.TabIndex = 1;
|
||||
//
|
||||
// channels
|
||||
@@ -867,7 +871,7 @@
|
||||
this.statusbar.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.Flow;
|
||||
this.statusbar.Location = new System.Drawing.Point(0, 0);
|
||||
this.statusbar.Name = "statusbar";
|
||||
this.statusbar.Size = new System.Drawing.Size(420, 18);
|
||||
this.statusbar.Size = new System.Drawing.Size(420, 19);
|
||||
this.statusbar.SizingGrip = false;
|
||||
this.statusbar.TabIndex = 0;
|
||||
//
|
||||
@@ -980,20 +984,6 @@
|
||||
this.texlistContainer.Size = new System.Drawing.Size(136, 260);
|
||||
this.texlistContainer.TabIndex = 1;
|
||||
//
|
||||
// textureList
|
||||
//
|
||||
this.texlistContainer.SetColumnSpan(this.textureList, 2);
|
||||
this.textureList.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.textureList.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
|
||||
this.textureList.IntegralHeight = false;
|
||||
this.textureList.ItemHeight = 16;
|
||||
this.textureList.Location = new System.Drawing.Point(3, 50);
|
||||
this.textureList.Name = "textureList";
|
||||
this.textureList.SelectionMode = System.Windows.Forms.SelectionMode.None;
|
||||
this.textureList.Size = new System.Drawing.Size(130, 207);
|
||||
this.textureList.TabIndex = 0;
|
||||
this.textureList.MouseUp += new System.Windows.Forms.MouseEventHandler(this.textureList_MouseUp);
|
||||
//
|
||||
// texturefilter
|
||||
//
|
||||
this.texturefilter.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
@@ -1043,7 +1033,7 @@
|
||||
// renderToolstripContainer.ContentPanel
|
||||
//
|
||||
this.renderToolstripContainer.ContentPanel.Controls.Add(this.renderScrollTable);
|
||||
this.renderToolstripContainer.ContentPanel.Size = new System.Drawing.Size(420, 248);
|
||||
this.renderToolstripContainer.ContentPanel.Size = new System.Drawing.Size(420, 247);
|
||||
this.renderToolstripContainer.LeftToolStripPanelVisible = false;
|
||||
this.renderToolstripContainer.Location = new System.Drawing.Point(299, 87);
|
||||
this.renderToolstripContainer.Name = "renderToolstripContainer";
|
||||
@@ -1068,43 +1058,16 @@
|
||||
this.renderScrollTable.RowCount = 2;
|
||||
this.renderScrollTable.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||
this.renderScrollTable.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
this.renderScrollTable.Size = new System.Drawing.Size(420, 248);
|
||||
this.renderScrollTable.Size = new System.Drawing.Size(420, 247);
|
||||
this.renderScrollTable.TabIndex = 2;
|
||||
//
|
||||
// renderContainer
|
||||
//
|
||||
this.renderContainer.BackColor = System.Drawing.Color.Maroon;
|
||||
this.renderContainer.Controls.Add(this.render);
|
||||
this.renderContainer.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.renderContainer.Location = new System.Drawing.Point(0, 0);
|
||||
this.renderContainer.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.renderContainer.Name = "renderContainer";
|
||||
this.renderContainer.Size = new System.Drawing.Size(404, 232);
|
||||
this.renderContainer.TabIndex = 1;
|
||||
//
|
||||
// render
|
||||
//
|
||||
this.render.BackColor = System.Drawing.Color.Black;
|
||||
this.render.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.render.Location = new System.Drawing.Point(0, 0);
|
||||
this.render.Name = "render";
|
||||
this.render.Size = new System.Drawing.Size(404, 232);
|
||||
this.render.TabIndex = 0;
|
||||
this.render.Paint += new System.Windows.Forms.PaintEventHandler(this.render_Paint);
|
||||
this.render.Layout += new System.Windows.Forms.LayoutEventHandler(this.render_Layout);
|
||||
this.render.MouseClick += new System.Windows.Forms.MouseEventHandler(this.render_MouseClick);
|
||||
this.render.MouseDown += new System.Windows.Forms.MouseEventHandler(this.render_MouseClick);
|
||||
this.render.MouseLeave += new System.EventHandler(this.render_MouseLeave);
|
||||
this.render.MouseMove += new System.Windows.Forms.MouseEventHandler(this.render_MouseMove);
|
||||
this.render.MouseUp += new System.Windows.Forms.MouseEventHandler(this.render_MouseUp);
|
||||
//
|
||||
// renderVScroll
|
||||
//
|
||||
this.renderVScroll.Dock = System.Windows.Forms.DockStyle.Right;
|
||||
this.renderVScroll.Enabled = false;
|
||||
this.renderVScroll.Location = new System.Drawing.Point(404, 0);
|
||||
this.renderVScroll.Name = "renderVScroll";
|
||||
this.renderVScroll.Size = new System.Drawing.Size(16, 232);
|
||||
this.renderVScroll.Size = new System.Drawing.Size(16, 231);
|
||||
this.renderVScroll.TabIndex = 2;
|
||||
this.renderVScroll.Scroll += new System.Windows.Forms.ScrollEventHandler(this.renderVScroll_Scroll);
|
||||
//
|
||||
@@ -1112,7 +1075,7 @@
|
||||
//
|
||||
this.renderHScroll.Dock = System.Windows.Forms.DockStyle.Bottom;
|
||||
this.renderHScroll.Enabled = false;
|
||||
this.renderHScroll.Location = new System.Drawing.Point(0, 232);
|
||||
this.renderHScroll.Location = new System.Drawing.Point(0, 231);
|
||||
this.renderHScroll.Name = "renderHScroll";
|
||||
this.renderHScroll.Size = new System.Drawing.Size(404, 16);
|
||||
this.renderHScroll.TabIndex = 3;
|
||||
@@ -1132,16 +1095,6 @@
|
||||
this.pixelContextPanel.Size = new System.Drawing.Size(108, 127);
|
||||
this.pixelContextPanel.TabIndex = 11;
|
||||
//
|
||||
// pixelContext
|
||||
//
|
||||
this.pixelContext.BackColor = System.Drawing.Color.Transparent;
|
||||
this.pixelContext.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.pixelContext.Location = new System.Drawing.Point(3, 3);
|
||||
this.pixelContext.Name = "pixelContext";
|
||||
this.pixelContext.Size = new System.Drawing.Size(102, 92);
|
||||
this.pixelContext.TabIndex = 6;
|
||||
this.pixelContext.Paint += new System.Windows.Forms.PaintEventHandler(this.pixelContext_Paint);
|
||||
//
|
||||
// debugPixelContext
|
||||
//
|
||||
this.debugPixelContext.Anchor = System.Windows.Forms.AnchorStyles.Bottom;
|
||||
@@ -1185,6 +1138,40 @@
|
||||
this.closeTabsToRight.Text = "Close tabs to right";
|
||||
this.closeTabsToRight.Click += new System.EventHandler(this.closeTabsToRight_Click);
|
||||
//
|
||||
// gammaDisplay
|
||||
//
|
||||
this.gammaDisplay.Checked = true;
|
||||
this.gammaDisplay.CheckOnClick = true;
|
||||
this.gammaDisplay.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||
this.gammaDisplay.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
|
||||
this.gammaDisplay.Image = ((System.Drawing.Image)(resources.GetObject("gammaDisplay.Image")));
|
||||
this.gammaDisplay.ImageTransparentColor = System.Drawing.Color.Magenta;
|
||||
this.gammaDisplay.Name = "gammaDisplay";
|
||||
this.gammaDisplay.Size = new System.Drawing.Size(23, 22);
|
||||
this.gammaDisplay.Text = "γ";
|
||||
this.gammaDisplay.ToolTipText = "Override display of linear data in gamma space\r\n\r\nSee FAQ on \"Gamma display of li" +
|
||||
"near data\"";
|
||||
this.gammaDisplay.CheckedChanged += new System.EventHandler(this.updateChannelsHandler);
|
||||
//
|
||||
// gammaSeparator
|
||||
//
|
||||
this.gammaSeparator.Name = "gammaSeparator";
|
||||
this.gammaSeparator.Size = new System.Drawing.Size(6, 25);
|
||||
//
|
||||
// textureList
|
||||
//
|
||||
this.texlistContainer.SetColumnSpan(this.textureList, 2);
|
||||
this.textureList.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.textureList.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
|
||||
this.textureList.IntegralHeight = false;
|
||||
this.textureList.ItemHeight = 16;
|
||||
this.textureList.Location = new System.Drawing.Point(3, 50);
|
||||
this.textureList.Name = "textureList";
|
||||
this.textureList.SelectionMode = System.Windows.Forms.SelectionMode.None;
|
||||
this.textureList.Size = new System.Drawing.Size(130, 207);
|
||||
this.textureList.TabIndex = 0;
|
||||
this.textureList.MouseUp += new System.Windows.Forms.MouseEventHandler(this.textureList_MouseUp);
|
||||
//
|
||||
// texPanel
|
||||
//
|
||||
this.texPanel.AutoScroll = true;
|
||||
@@ -1210,6 +1197,43 @@
|
||||
this.rtPanel.TabIndex = 2;
|
||||
this.rtPanel.MouseClick += new System.Windows.Forms.MouseEventHandler(this.thumbsLayout_MouseClick);
|
||||
//
|
||||
// pixelContext
|
||||
//
|
||||
this.pixelContext.BackColor = System.Drawing.Color.Transparent;
|
||||
this.pixelContext.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.pixelContext.Location = new System.Drawing.Point(3, 3);
|
||||
this.pixelContext.Name = "pixelContext";
|
||||
this.pixelContext.Size = new System.Drawing.Size(102, 92);
|
||||
this.pixelContext.TabIndex = 6;
|
||||
this.pixelContext.Paint += new System.Windows.Forms.PaintEventHandler(this.pixelContext_Paint);
|
||||
//
|
||||
// renderContainer
|
||||
//
|
||||
this.renderContainer.BackColor = System.Drawing.Color.Maroon;
|
||||
this.renderContainer.Controls.Add(this.render);
|
||||
this.renderContainer.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.renderContainer.Location = new System.Drawing.Point(0, 0);
|
||||
this.renderContainer.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.renderContainer.Name = "renderContainer";
|
||||
this.renderContainer.Size = new System.Drawing.Size(404, 231);
|
||||
this.renderContainer.TabIndex = 1;
|
||||
//
|
||||
// render
|
||||
//
|
||||
this.render.BackColor = System.Drawing.Color.Black;
|
||||
this.render.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.render.Location = new System.Drawing.Point(0, 0);
|
||||
this.render.Name = "render";
|
||||
this.render.Size = new System.Drawing.Size(404, 231);
|
||||
this.render.TabIndex = 0;
|
||||
this.render.Paint += new System.Windows.Forms.PaintEventHandler(this.render_Paint);
|
||||
this.render.Layout += new System.Windows.Forms.LayoutEventHandler(this.render_Layout);
|
||||
this.render.MouseClick += new System.Windows.Forms.MouseEventHandler(this.render_MouseClick);
|
||||
this.render.MouseDown += new System.Windows.Forms.MouseEventHandler(this.render_MouseClick);
|
||||
this.render.MouseLeave += new System.EventHandler(this.render_MouseLeave);
|
||||
this.render.MouseMove += new System.Windows.Forms.MouseEventHandler(this.render_MouseMove);
|
||||
this.render.MouseUp += new System.Windows.Forms.MouseEventHandler(this.render_MouseUp);
|
||||
//
|
||||
// rangeHistogram
|
||||
//
|
||||
this.rangeHistogram.BackColor = System.Drawing.SystemColors.GradientActiveCaption;
|
||||
@@ -1275,10 +1299,10 @@
|
||||
this.renderToolstripContainer.ResumeLayout(false);
|
||||
this.renderToolstripContainer.PerformLayout();
|
||||
this.renderScrollTable.ResumeLayout(false);
|
||||
this.renderContainer.ResumeLayout(false);
|
||||
this.pixelContextPanel.ResumeLayout(false);
|
||||
this.pixelContextPanel.PerformLayout();
|
||||
this.tabContextMenu.ResumeLayout(false);
|
||||
this.renderContainer.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
@@ -1377,6 +1401,8 @@
|
||||
private System.Windows.Forms.ToolStripButton customCreate;
|
||||
private System.Windows.Forms.ToolStripButton customDelete;
|
||||
private System.Windows.Forms.ToolStripButton customEdit;
|
||||
private System.Windows.Forms.ToolStripButton gammaDisplay;
|
||||
private System.Windows.Forms.ToolStripSeparator gammaSeparator;
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1437,6 +1437,13 @@ namespace renderdocui.Windows
|
||||
|
||||
channelStrip.SuspendLayout();
|
||||
|
||||
if (tex != null && !tex.format.srgbCorrected)
|
||||
gammaDisplay.Enabled = true;
|
||||
else
|
||||
gammaDisplay.Enabled = false;
|
||||
|
||||
m_TexDisplay.linearDisplayAsGamma = gammaDisplay.Checked;
|
||||
|
||||
if (tex != null && (tex.creationFlags & TextureCreationFlags.DSV) > 0 &&
|
||||
(string)channels.SelectedItem != "Custom")
|
||||
{
|
||||
|
||||
@@ -163,61 +163,76 @@
|
||||
<data name="customRed.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIISURBVDhPpZP7S1NxGMbPPxKaXVUkMEq8IpKUCoY/hGgI
|
||||
ymqkDYYXcCjDZOANURSjCNGFQUTsl4GXVMxKk62YU4fXQpaIlygHQxBRH8/zwvyaIAYe+HLgnPN8nue9
|
||||
HA3nvDTq63oW/jm13XOwvPTB3DYFY5MH+bXfcN8ygfTSMSSXfESicQDxBqdYHwH29g9w2tnZ3UcguIvN
|
||||
rR3417exuBJE5N1n/wfwLgXEOc38Bc6xNRHb+/y4nm49G0Bnit2zf9H6bkliE/jKuYxrd6oVgDWfjB+K
|
||||
TWeKMyrGEVfowITvD9re/9ABVQrAhh0HHK+ZselMMaN/mvwtDb+aVqkA7HYIwIj3ysfluPTorJnP6Ezx
|
||||
oHsD1s5ZXEktUwCOioB5f1CEPR9+wTG6iuiserTo8dkwng7HT/R+XUPF8xlcTjErAOdMcW6NW8STiwG8
|
||||
7vej8oUPN/PsEv3t8Ao0TZP3T1u8uJRkUgAuSYHtO97oLxmXd5t9Ho8aPTK+GzntqNfrLm2fFoihwYOI
|
||||
xGIF4KjoGBLzY1OrF9k6OOFxnwDC4wxIMX1G0pMhgVyMNyoA13PAtS7OrJk1PrC69LUdQWxuF6IybHrX
|
||||
LRI7JrtZdoDAo1XmbjMyD+tjSXxGcXRmnYg5ttD9QuxDhN0uUgDOmbvNTpPOJaGAo2K36cyaGZvOFIfd
|
||||
KlSA8/zRh9ABIDUG+1JpAAAAAElFTkSuQmCC
|
||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
|
||||
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
|
||||
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
|
||||
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
|
||||
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
|
||||
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
|
||||
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
|
||||
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
|
||||
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
|
||||
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
<data name="customGreen.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIISURBVDhPpZP7S1NxGMbPPxKaXVUkMEq8IpKUCoY/hGgI
|
||||
ymqkDYYXcCjDZOANURSjCNGFQUTsl4GXVMxKk62YU4fXQpaIlygHQxBRH8/zwvyaIAYe+HLgnPN8nue9
|
||||
HA3nvDTq63oW/jm13XOwvPTB3DYFY5MH+bXfcN8ygfTSMSSXfESicQDxBqdYHwH29g9w2tnZ3UcguIvN
|
||||
rR3417exuBJE5N1n/wfwLgXEOc38Bc6xNRHb+/y4nm49G0Bnit2zf9H6bkliE/jKuYxrd6oVgDWfjB+K
|
||||
TWeKMyrGEVfowITvD9re/9ABVQrAhh0HHK+ZselMMaN/mvwtDb+aVqkA7HYIwIj3ysfluPTorJnP6Ezx
|
||||
oHsD1s5ZXEktUwCOioB5f1CEPR9+wTG6iuiserTo8dkwng7HT/R+XUPF8xlcTjErAOdMcW6NW8STiwG8
|
||||
7vej8oUPN/PsEv3t8Ao0TZP3T1u8uJRkUgAuSYHtO97oLxmXd5t9Ho8aPTK+GzntqNfrLm2fFoihwYOI
|
||||
xGIF4KjoGBLzY1OrF9k6OOFxnwDC4wxIMX1G0pMhgVyMNyoA13PAtS7OrJk1PrC69LUdQWxuF6IybHrX
|
||||
LRI7JrtZdoDAo1XmbjMyD+tjSXxGcXRmnYg5ttD9QuxDhN0uUgDOmbvNTpPOJaGAo2K36cyaGZvOFIfd
|
||||
KlSA8/zRh9ABIDUG+1JpAAAAAElFTkSuQmCC
|
||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
|
||||
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
|
||||
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
|
||||
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
|
||||
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
|
||||
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
|
||||
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
|
||||
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
|
||||
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
|
||||
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
<data name="customBlue.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIISURBVDhPpZP7S1NxGMbPPxKaXVUkMEq8IpKUCoY/hGgI
|
||||
ymqkDYYXcCjDZOANURSjCNGFQUTsl4GXVMxKk62YU4fXQpaIlygHQxBRH8/zwvyaIAYe+HLgnPN8nue9
|
||||
HA3nvDTq63oW/jm13XOwvPTB3DYFY5MH+bXfcN8ygfTSMSSXfESicQDxBqdYHwH29g9w2tnZ3UcguIvN
|
||||
rR3417exuBJE5N1n/wfwLgXEOc38Bc6xNRHb+/y4nm49G0Bnit2zf9H6bkliE/jKuYxrd6oVgDWfjB+K
|
||||
TWeKMyrGEVfowITvD9re/9ABVQrAhh0HHK+ZselMMaN/mvwtDb+aVqkA7HYIwIj3ysfluPTorJnP6Ezx
|
||||
oHsD1s5ZXEktUwCOioB5f1CEPR9+wTG6iuiserTo8dkwng7HT/R+XUPF8xlcTjErAOdMcW6NW8STiwG8
|
||||
7vej8oUPN/PsEv3t8Ao0TZP3T1u8uJRkUgAuSYHtO97oLxmXd5t9Ho8aPTK+GzntqNfrLm2fFoihwYOI
|
||||
xGIF4KjoGBLzY1OrF9k6OOFxnwDC4wxIMX1G0pMhgVyMNyoA13PAtS7OrJk1PrC69LUdQWxuF6IybHrX
|
||||
LRI7JrtZdoDAo1XmbjMyD+tjSXxGcXRmnYg5ttD9QuxDhN0uUgDOmbvNTpPOJaGAo2K36cyaGZvOFIfd
|
||||
KlSA8/zRh9ABIDUG+1JpAAAAAElFTkSuQmCC
|
||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
|
||||
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
|
||||
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
|
||||
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
|
||||
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
|
||||
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
|
||||
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
|
||||
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
|
||||
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
|
||||
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
<data name="customAlpha.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIISURBVDhPpZP7S1NxGMbPPxKaXVUkMEq8IpKUCoY/hGgI
|
||||
ymqkDYYXcCjDZOANURSjCNGFQUTsl4GXVMxKk62YU4fXQpaIlygHQxBRH8/zwvyaIAYe+HLgnPN8nue9
|
||||
HA3nvDTq63oW/jm13XOwvPTB3DYFY5MH+bXfcN8ygfTSMSSXfESicQDxBqdYHwH29g9w2tnZ3UcguIvN
|
||||
rR3417exuBJE5N1n/wfwLgXEOc38Bc6xNRHb+/y4nm49G0Bnit2zf9H6bkliE/jKuYxrd6oVgDWfjB+K
|
||||
TWeKMyrGEVfowITvD9re/9ABVQrAhh0HHK+ZselMMaN/mvwtDb+aVqkA7HYIwIj3ysfluPTorJnP6Ezx
|
||||
oHsD1s5ZXEktUwCOioB5f1CEPR9+wTG6iuiserTo8dkwng7HT/R+XUPF8xlcTjErAOdMcW6NW8STiwG8
|
||||
7vej8oUPN/PsEv3t8Ao0TZP3T1u8uJRkUgAuSYHtO97oLxmXd5t9Ho8aPTK+GzntqNfrLm2fFoihwYOI
|
||||
xGIF4KjoGBLzY1OrF9k6OOFxnwDC4wxIMX1G0pMhgVyMNyoA13PAtS7OrJk1PrC69LUdQWxuF6IybHrX
|
||||
LRI7JrtZdoDAo1XmbjMyD+tjSXxGcXRmnYg5ttD9QuxDhN0uUgDOmbvNTpPOJaGAo2K36cyaGZvOFIfd
|
||||
KlSA8/zRh9ABIDUG+1JpAAAAAElFTkSuQmCC
|
||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
|
||||
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
|
||||
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
|
||||
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
|
||||
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
|
||||
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
|
||||
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
|
||||
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
|
||||
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
|
||||
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
<data name="gammaDisplay.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
|
||||
YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
|
||||
0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
|
||||
bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
|
||||
VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
|
||||
c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
|
||||
Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
|
||||
mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
|
||||
kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
|
||||
TgDQASA1MVpwzwAAAABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
<metadata name="statusbar.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
|
||||
Reference in New Issue
Block a user