diff --git a/GPU/GLES/FramebufferManagerGLES.cpp b/GPU/GLES/FramebufferManagerGLES.cpp index 42245c4d2e..0e8077e60f 100644 --- a/GPU/GLES/FramebufferManagerGLES.cpp +++ b/GPU/GLES/FramebufferManagerGLES.cpp @@ -162,83 +162,6 @@ FramebufferManagerGLES::~FramebufferManagerGLES() { delete [] convBuf_; } -// x, y, w, h are relative coordinates against destW/destH, which is not very intuitive. -// TODO: This could totally use fbo_blit in many cases. -void FramebufferManagerGLES::DrawActiveTexture(float x, float y, float w, float h, float destW, float destH, float u0, float v0, float u1, float v1, int uvRotation, int flags) { - float texCoords[8] = { - u0,v0, - u1,v0, - u1,v1, - u0,v1, - }; - - if (uvRotation != ROTATION_LOCKED_HORIZONTAL) { - float temp[8]; - int rotation = 0; - // Vertical and Vertical180 needed swapping after we changed the coordinate system. - switch (uvRotation) { - case ROTATION_LOCKED_HORIZONTAL180: rotation = 4; break; - case ROTATION_LOCKED_VERTICAL: rotation = 6; break; - case ROTATION_LOCKED_VERTICAL180: rotation = 2; break; - } - for (int i = 0; i < 8; i++) { - temp[i] = texCoords[(i + rotation) & 7]; - } - memcpy(texCoords, temp, sizeof(temp)); - } - - float pos[12] = { - x,y,0, - x + w,y,0, - x + w,y + h,0, - x,y + h,0 - }; - - float invDestW = 1.0f / (destW * 0.5f); - float invDestH = 1.0f / (destH * 0.5f); - for (int i = 0; i < 4; i++) { - pos[i * 3] = pos[i * 3] * invDestW - 1.0f; - pos[i * 3 + 1] = pos[i * 3 + 1] * invDestH - 1.0f; - } - - // We always want a plain state here, well, except for when it's used by the stencil stuff... - render_->SetDepth(false, false, GL_ALWAYS); - render_->SetRaster(false, GL_CCW, GL_FRONT, GL_FALSE, GL_FALSE); - if (!(flags & DRAWTEX_KEEP_STENCIL_ALPHA)) { - render_->SetNoBlendAndMask(0xF); - render_->SetStencilDisabled(); - } - - // Upscaling postshaders don't look well with linear - if (flags & DRAWTEX_LINEAR) { - render_->SetTextureSampler(0, GL_CLAMP_TO_EDGE, GL_CLAMP_TO_EDGE, GL_LINEAR, GL_LINEAR, 0.0f); - } else { - render_->SetTextureSampler(0, GL_CLAMP_TO_EDGE, GL_CLAMP_TO_EDGE, GL_NEAREST, GL_NEAREST, 0.0f); - } - - Simple2DVertex verts[4]; - memcpy(verts[0].pos, &pos[0], 12); - memcpy(verts[1].pos, &pos[3], 12); - memcpy(verts[3].pos, &pos[6], 12); - memcpy(verts[2].pos, &pos[9], 12); - memcpy(verts[0].uv, &texCoords[0], 8); - memcpy(verts[1].uv, &texCoords[2], 8); - memcpy(verts[3].uv, &texCoords[4], 8); - memcpy(verts[2].uv, &texCoords[6], 8); - - uint32_t bindOffset; - GLRBuffer *buffer; - - // Workaround: This might accidentally get called from ReportScreen screenshot-taking, and in that case - // the push buffer is not mapped. This only happens if framebuffer blit support is not available. - if (drawEngineGL_->GetPushVertexBuffer()->IsReady()) { - void *dest = drawEngineGL_->GetPushVertexBuffer()->Push(sizeof(verts), &bindOffset, &buffer); - memcpy(dest, verts, sizeof(verts)); - render_->BindVertexBuffer(simple2DInputLayout_, buffer, bindOffset); - render_->Draw(GL_TRIANGLE_STRIP, 0, 4); - } -} - void FramebufferManagerGLES::UpdateDownloadTempBuffer(VirtualFramebuffer *nvfb) { _assert_msg_(nvfb->fbo, "Expecting a valid nvfb in UpdateDownloadTempBuffer"); diff --git a/GPU/GLES/FramebufferManagerGLES.h b/GPU/GLES/FramebufferManagerGLES.h index 94b06155e0..fc69c77341 100644 --- a/GPU/GLES/FramebufferManagerGLES.h +++ b/GPU/GLES/FramebufferManagerGLES.h @@ -40,9 +40,6 @@ public: void SetShaderManager(ShaderManagerGLES *sm); void SetDrawEngine(DrawEngineGLES *td); - // x,y,w,h are relative to destW, destH which fill out the target completely. - void DrawActiveTexture(float x, float y, float w, float h, float destW, float destH, float u0, float v0, float u1, float v1, int uvRotation, int flags) override; - virtual void Init() override; void EndFrame(); void Resized() override;