From 3b6eac356b50210937ac893e807f1716732ae606 Mon Sep 17 00:00:00 2001 From: Antoine Pilote Date: Thu, 6 Jul 2023 18:10:14 -0400 Subject: [PATCH] Added ReadPixel method to framebuffers --- Nuake/src/Rendering/Buffers/Framebuffer.cpp | 8 ++++++++ Nuake/src/Rendering/Buffers/Framebuffer.h | 2 ++ 2 files changed, 10 insertions(+) diff --git a/Nuake/src/Rendering/Buffers/Framebuffer.cpp b/Nuake/src/Rendering/Buffers/Framebuffer.cpp index 1b6f5b1b..0c559944 100644 --- a/Nuake/src/Rendering/Buffers/Framebuffer.cpp +++ b/Nuake/src/Rendering/Buffers/Framebuffer.cpp @@ -126,6 +126,14 @@ namespace Nuake glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); } + int FrameBuffer::ReadPixel(uint32_t attachment, const Vector2 coords) + { + glReadBuffer(GL_COLOR_ATTACHMENT0 + attachment); + int pixelData; + glReadPixels((int)coords.x, (int)coords.y, 1, 1, GL_RED_INTEGER, GL_INT, &pixelData); + return pixelData; + } + void FrameBuffer::SetDrawBuffer(GLenum draw) { Bind(); diff --git a/Nuake/src/Rendering/Buffers/Framebuffer.h b/Nuake/src/Rendering/Buffers/Framebuffer.h index ead1fe22..b2eb76a8 100644 --- a/Nuake/src/Rendering/Buffers/Framebuffer.h +++ b/Nuake/src/Rendering/Buffers/Framebuffer.h @@ -38,6 +38,8 @@ namespace Nuake void SetSize(const Vector2& size) { m_Size = size; } void UpdateSize(Vector2 size); + + int ReadPixel(uint32_t attachment, const Vector2 coords); void SetDrawBuffer(GLenum draw); void SetReadBuffer(GLenum read); };