#define RENDERTARGET_H_
#include "framebuffer.h"
-#include "texture2d.h"
namespace Msp {
namespace GL {
+class Texture;
+class Texture2D;
+
enum RenderOutput
{
RENDER_COLOR = 0|3,
class RenderTarget
{
private:
- union TargetBuffer
- {
- Texture2D *texture;
- Renderbuffer *buffer;
- };
-
unsigned width;
unsigned height;
unsigned samples;
RenderTargetFormat format;
- std::vector<TargetBuffer> buffers;
+ std::vector<Texture *> textures;
Framebuffer fbo;
public:
unsigned get_height() const { return height; }
const RenderTargetFormat &get_format() const { return format; }
Framebuffer &get_framebuffer() { return fbo; }
- void set_texture_filter(TextureFilter);
const Texture2D &get_target_texture(unsigned) const;
const Texture2D &get_target_texture(RenderOutput) const;
- void blit_from(const RenderTarget &);
void set_debug_name(const std::string &);
};