#ifndef RENDER_TARGET_H #define RENDER_TARGET_H #include "common.h" #include "texture.h" #include "vector.h" enum RenderTargetType { RAVEN_RENDER_TARGET_FRAMEBUFFER=0, RAVEN_RENDER_TARGET_COLORTEX=1, RAVEN_RENDER_TARGET_DEPTHTEX=2 }; enum TextureBindingMode { RAVEN_TEXTURE_BIND_NONE=0, RAVEN_TEXTURE_BIND_TARGET=1 }; class RenderTarget { protected: bool rtis_valid; bool is_main_fb; bool is_floating_point; TextureBindingMode bindmode; float width,height; public: RenderTarget(float width=0,float height=0): bindmode(RAVEN_TEXTURE_BIND_NONE), rtis_valid(true), is_main_fb(true), is_floating_point(false), width(width), height(height) {} virtual ~RenderTarget() {} virtual void BindingMode(TextureBindingMode mode) {bindmode=mode;} virtual TextureBindingMode BindingMode() {return bindmode;} virtual RenderTargetType Type() {return RAVEN_RENDER_TARGET_FRAMEBUFFER;} virtual bool IsValid() {return rtis_valid;} virtual bool IsMainFrameBuffer() {return is_main_fb;} virtual bool IsFloatingPointFormat() {return is_floating_point;} virtual float GetWidth() {return width;} virtual float GetHeight() {return height;} virtual Vector2 GetSize() {return Vector2(width,height);} virtual bool BindTarget() {return true;} virtual Texture *GetTexture() {return NULL;} }; #endif