Add support for custom line widths (#2406)

This commit is contained in:
gdkchan 2021-06-25 20:11:54 -03:00 committed by GitHub
parent 493648df31
commit fefd4619a5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 36 additions and 1 deletions

View file

@ -223,12 +223,17 @@ namespace Ryujinx.Graphics.Gpu.Engine
UpdateTexturePoolState(state);
}
// Input assembler state.
// Rasterizer state.
if (state.QueryModified(MethodOffset.VertexAttribState))
{
UpdateVertexAttribState(state);
}
if (state.QueryModified(MethodOffset.LineWidthSmooth, MethodOffset.LineSmoothEnable))
{
UpdateLineState(state);
}
if (state.QueryModified(MethodOffset.PointSize,
MethodOffset.VertexProgramPointSize,
MethodOffset.PointSpriteEnable,
@ -716,6 +721,18 @@ namespace Ryujinx.Graphics.Gpu.Engine
_context.Renderer.Pipeline.SetVertexAttribs(vertexAttribs);
}
/// <summary>
/// Updates host line width based on guest GPU state.
/// </summary>
/// <param name="state">Current GPU state</param>
private void UpdateLineState(GpuState state)
{
float width = state.Get<float>(MethodOffset.LineWidthSmooth);
bool smooth = state.Get<Boolean32>(MethodOffset.LineSmoothEnable);
_context.Renderer.Pipeline.SetLineParameters(width, smooth);
}
/// <summary>
/// Updates host point size based on guest GPU state.
/// </summary>