mouse picking
This commit is contained in:
@@ -1,9 +1,11 @@
|
||||
#ifndef OPENGL_FRAMEBUFFER_HPP
|
||||
#define OPENGL_FRAMEBUFFER_HPP
|
||||
|
||||
#include "core.hpp"
|
||||
#include <renderer/framebuffer.hpp>
|
||||
|
||||
#include <cstdint>
|
||||
#include <vector>
|
||||
|
||||
namespace OpenEngine {
|
||||
class OpenGLFramebuffer : public FrameBuffer
|
||||
@@ -18,15 +20,24 @@ namespace OpenEngine {
|
||||
virtual void Unbind() override;
|
||||
|
||||
virtual void Resize(uint32_t width, uint32_t height) override;
|
||||
virtual int ReadPixel(uint32_t index, int x, int y) override;
|
||||
|
||||
virtual uint32_t GetColorAttachmentRendererID() const override { return color_attachment; }
|
||||
virtual uint32_t GetColorAttachmentRendererID(uint32_t index = 0) const override {
|
||||
OE_CORE_ASSERT(index < color_attachment_ids.size(), "Index is greater than color attachment count.");
|
||||
return color_attachment_ids[index];
|
||||
}
|
||||
|
||||
virtual const FramebufferSpecification& GetSpecification() const override { return specs; }
|
||||
|
||||
private:
|
||||
uint32_t id = 0;
|
||||
uint32_t color_attachment = 0, depth_attachment = 0;
|
||||
FramebufferSpecification specs;
|
||||
|
||||
std::vector<FramebufferTextureSpecification> color_attachment_specs;
|
||||
FramebufferTextureSpecification depth_attachment_specs = FramebufferTextureFormat::None;
|
||||
|
||||
std::vector<uint32_t> color_attachment_ids;
|
||||
uint32_t depth_attachment_id;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -13,6 +13,7 @@ namespace OpenEngine {
|
||||
virtual void SetViewport(uint32_t x, uint32_t y, uint32_t width, uint32_t height) override;
|
||||
|
||||
virtual void SetClearColor(const glm::vec4& color) override;
|
||||
virtual void ClearBufferI(int buffer, int value) override;
|
||||
virtual void Clear() override;
|
||||
|
||||
virtual void DrawIndexed(const Ref<VertexArray>& vertex_array, uint32_t index_count = 0) override;
|
||||
|
||||
Reference in New Issue
Block a user