actually make compute shader renderer work with newest changes

This commit is contained in:
RSDuck
2024-05-12 23:14:28 +02:00
parent 78828ecfca
commit cb83956914
25 changed files with 221 additions and 176 deletions

View File

@ -21,15 +21,18 @@
#include <memory>
#include "types.h"
#include "GPU3D.h"
#include "OpenGLSupport.h"
#include "GPU_OpenGL.h"
#include "GPU3D_TexcacheOpenGL.h"
#include "NonStupidBitfield.h"
namespace GPU3D
namespace melonDS
{
class ComputeRenderer : public Renderer3D
@ -38,20 +41,25 @@ public:
static std::unique_ptr<ComputeRenderer> New();
~ComputeRenderer() override;
void Reset() override;
void Reset(GPU& gpu) override;
void SetRenderSettings(GPU::RenderSettings& settings) override;
void SetRenderSettings(int scale, bool highResolutionCoordinates);
void VCount144() override;
void VCount144(GPU& gpu) override;
void RenderFrame() override;
void RestartFrame() override;
void RenderFrame(GPU& gpu) override;
void RestartFrame(GPU& gpu) override;
u32* GetLine(int line) override;
void SetupAccelFrame() override;
void PrepareCaptureFrame() override;
void BindOutputTexture(int buffer) override;
void Blit(const GPU& gpu) override;
void Stop(const GPU& gpu) override;
private:
ComputeRenderer();
ComputeRenderer(GLCompositor&& compositor);
GLuint ShaderInterpXSpans[2];
GLuint ShaderBinCombined;
@ -213,6 +221,8 @@ private:
int MaxWorkTiles;
bool HiresCoordinates;
GLCompositor CurGLCompositor;
void DeleteShaders();
void SetupAttrs(SpanSetupY* span, Polygon* poly, int from, int to);