mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-07-12 02:27:08 +00:00
Pass through multisample state and point/line rast state values
This commit is contained in:
@@ -177,7 +177,23 @@ struct GLPipelineState
|
||||
float SlopeScaledDepthBias;
|
||||
float OffsetClamp;
|
||||
bool32 DepthClamp;
|
||||
|
||||
bool32 MultisampleEnable;
|
||||
bool32 SampleShading;
|
||||
bool32 SampleMask;
|
||||
uint32_t SampleMaskValue;
|
||||
bool32 SampleCoverage;
|
||||
bool32 SampleCoverageInvert;
|
||||
float SampleCoverageValue;
|
||||
bool32 SampleAlphaToCoverage;
|
||||
bool32 SampleAlphaToOne;
|
||||
float MinSampleShadingRate;
|
||||
|
||||
bool32 ProgrammablePointSize;
|
||||
float PointSize;
|
||||
float LineWidth;
|
||||
float PointFadeThreshold;
|
||||
bool32 PointOriginUpperLeft;
|
||||
} m_State;
|
||||
} m_Rasterizer;
|
||||
|
||||
@@ -265,11 +281,15 @@ struct GLPipelineState
|
||||
, LineSmooth(eQuality_DontCare)
|
||||
, PolySmooth(eQuality_DontCare)
|
||||
, TexCompression(eQuality_DontCare)
|
||||
, LineSmoothEnabled(0)
|
||||
, PolySmoothEnabled(0)
|
||||
{}
|
||||
|
||||
QualityHint Derivatives;
|
||||
QualityHint LineSmooth;
|
||||
QualityHint PolySmooth;
|
||||
QualityHint TexCompression;
|
||||
bool32 LineSmoothEnabled;
|
||||
bool32 PolySmoothEnabled;
|
||||
} m_Hints;
|
||||
};
|
||||
@@ -1520,7 +1520,23 @@ void GLReplay::SavePipelineState()
|
||||
RDCASSERT(rs.FrontFace == eGL_CCW || rs.FrontFace == eGL_CW);
|
||||
pipe.m_Rasterizer.m_State.FrontCCW = rs.FrontFace == eGL_CCW;
|
||||
pipe.m_Rasterizer.m_State.DepthClamp = rs.Enabled[GLRenderState::eEnabled_DepthClamp];
|
||||
|
||||
pipe.m_Rasterizer.m_State.MultisampleEnable = rs.Enabled[GLRenderState::eEnabled_Multisample];
|
||||
pipe.m_Rasterizer.m_State.SampleShading = rs.Enabled[GLRenderState::eEnabled_SampleShading];
|
||||
pipe.m_Rasterizer.m_State.SampleMask = rs.Enabled[GLRenderState::eEnabled_SampleMask];
|
||||
pipe.m_Rasterizer.m_State.SampleMaskValue = rs.SampleMask[0]; // assume number of samples is less than 32
|
||||
pipe.m_Rasterizer.m_State.SampleCoverage = rs.Enabled[GLRenderState::eEnabled_SampleCoverage];
|
||||
pipe.m_Rasterizer.m_State.SampleCoverageInvert = rs.SampleCoverageInvert;
|
||||
pipe.m_Rasterizer.m_State.SampleCoverageValue = rs.SampleCoverage;
|
||||
pipe.m_Rasterizer.m_State.SampleAlphaToCoverage = rs.Enabled[GLRenderState::eEnabled_SampleAlphaToCoverage];
|
||||
pipe.m_Rasterizer.m_State.SampleAlphaToOne = rs.Enabled[GLRenderState::eEnabled_SampleAlphaToOne];
|
||||
pipe.m_Rasterizer.m_State.MinSampleShadingRate = rs.MinSampleShading;
|
||||
|
||||
pipe.m_Rasterizer.m_State.ProgrammablePointSize = rs.Enabled[rs.eEnabled_ProgramPointSize];
|
||||
pipe.m_Rasterizer.m_State.PointSize = rs.PointSize;
|
||||
pipe.m_Rasterizer.m_State.LineWidth = rs.LineWidth;
|
||||
pipe.m_Rasterizer.m_State.PointFadeThreshold = rs.PointFadeThresholdSize;
|
||||
pipe.m_Rasterizer.m_State.PointOriginUpperLeft = (rs.PointSpriteOrigin != eGL_LOWER_LEFT);
|
||||
|
||||
// depth and stencil states
|
||||
|
||||
@@ -1705,6 +1721,9 @@ void GLReplay::SavePipelineState()
|
||||
case eGL_NICEST: pipe.m_Hints.TexCompression = eQuality_Nicest; break;
|
||||
case eGL_FASTEST: pipe.m_Hints.TexCompression = eQuality_Fastest; break;
|
||||
}
|
||||
|
||||
pipe.m_Hints.LineSmoothEnabled = rs.Enabled[GLRenderState::eEnabled_LineSmooth];
|
||||
pipe.m_Hints.PolySmoothEnabled = rs.Enabled[GLRenderState::eEnabled_PolySmooth];
|
||||
}
|
||||
|
||||
void GLReplay::FillCBufferValue(WrappedOpenGL &gl, GLuint prog, bool bufferBacked, bool rowMajor,
|
||||
|
||||
@@ -191,7 +191,23 @@ namespace renderdoc
|
||||
public float SlopeScaledDepthBias;
|
||||
public float OffsetClamp;
|
||||
public bool DepthClamp;
|
||||
|
||||
public bool MultisampleEnable;
|
||||
public bool SampleShading;
|
||||
public bool SampleMask;
|
||||
public UInt32 SampleMaskValue;
|
||||
public bool SampleCoverage;
|
||||
public bool SampleCoverageInvert;
|
||||
public float SampleCoverageValue;
|
||||
public bool SampleAlphaToCoverage;
|
||||
public bool SampleAlphaToOne;
|
||||
public float MinSampleShadingRate;
|
||||
|
||||
public bool ProgrammablePointSize;
|
||||
public float PointSize;
|
||||
public float LineWidth;
|
||||
public float PointFadeThreshold;
|
||||
public bool PointOriginUpperLeft;
|
||||
};
|
||||
[CustomMarshalAs(CustomUnmanagedType.CustomClass)]
|
||||
public RasterizerState m_State;
|
||||
@@ -305,6 +321,8 @@ namespace renderdoc
|
||||
public Int32 LineSmooth;
|
||||
public Int32 PolySmooth;
|
||||
public Int32 TexCompression;
|
||||
public bool LineSmoothEnabled;
|
||||
public bool PolySmoothEnabled;
|
||||
};
|
||||
[CustomMarshalAs(CustomUnmanagedType.CustomClass)]
|
||||
public Hints m_Hints;
|
||||
|
||||
Reference in New Issue
Block a user