mirror of
https://github.com/Ryujinx/Ryujinx.git
synced 2024-12-29 05:41:21 -08:00
1f554c1093
* Renaming part 1 * Renaming part 2 * Renaming part 3 * Renaming part 4 * Renaming part 5 * Renaming part 6 * Renaming part 7 * Renaming part 8 * Renaming part 9 * Renaming part 10 * General cleanup * Thought I got all of these * Apply #595 * Additional renaming * Tweaks from feedback * Rename files
58 lines
1.5 KiB
C#
58 lines
1.5 KiB
C#
using System;
|
|
using System.Collections.Concurrent;
|
|
|
|
namespace Ryujinx.Graphics.Gal.OpenGL
|
|
{
|
|
public class OglRenderer : IGalRenderer
|
|
{
|
|
public IGalConstBuffer Buffer { get; private set; }
|
|
|
|
public IGalRenderTarget RenderTarget { get; private set; }
|
|
|
|
public IGalRasterizer Rasterizer { get; private set; }
|
|
|
|
public IGalShader Shader { get; private set; }
|
|
|
|
public IGalPipeline Pipeline { get; private set; }
|
|
|
|
public IGalTexture Texture { get; private set; }
|
|
|
|
private ConcurrentQueue<Action> _actionsQueue;
|
|
|
|
public OglRenderer()
|
|
{
|
|
Buffer = new OglConstBuffer();
|
|
|
|
Texture = new OglTexture();
|
|
|
|
RenderTarget = new OglRenderTarget(Texture as OglTexture);
|
|
|
|
Rasterizer = new OglRasterizer();
|
|
|
|
Shader = new OglShader(Buffer as OglConstBuffer);
|
|
|
|
Pipeline = new OglPipeline(
|
|
Buffer as OglConstBuffer,
|
|
RenderTarget as OglRenderTarget,
|
|
Rasterizer as OglRasterizer,
|
|
Shader as OglShader);
|
|
|
|
_actionsQueue = new ConcurrentQueue<Action>();
|
|
}
|
|
|
|
public void QueueAction(Action actionMthd)
|
|
{
|
|
_actionsQueue.Enqueue(actionMthd);
|
|
}
|
|
|
|
public void RunActions()
|
|
{
|
|
int count = _actionsQueue.Count;
|
|
|
|
while (count-- > 0 && _actionsQueue.TryDequeue(out Action renderAction))
|
|
{
|
|
renderAction();
|
|
}
|
|
}
|
|
}
|
|
} |