#pragma once #include "ITexture.h" struct BindFlags { enum Enumeration { ClearDepth = 0x001, ClearColor = 0x002, BindTexture0 = 0x010, BindTexture1 = 0x020, BindTexture2 = 0x040, BindTexture3 = 0x080, BindAllTextures = 0x100, ClearAll = ClearDepth | ClearColor, Default = ClearAll | BindAllTextures }; }; struct __declspec(novtable) __declspec(uuid("{644F6836-007E-40e4-B255-0F845D9BB7A4}")) IRenderTarget { virtual ~IRenderTarget() {}; virtual ITexture* AddRenderTargetTexture(TextureFormat::Enumeration format) = 0; virtual void Bind(DWORD bindFlags = BindFlags::Default) = 0; virtual void Unbind() = 0; virtual unsigned int GetWidth() const = 0; virtual unsigned int GetHeight() const = 0; virtual const std::vector& GetTextures() const; virtual void Check(); };