//CFTTRenderToTexture - [2020-04-13 11:57:46]
#ifndef _CFTTRENDERTOTEXTURE_H_
#define _CFTTRENDERTOTEXTURE_H_

#include "CFTTRenderTarget.h"
#include "CFTTGraphicsBuffer.h"
#include "CFTTTexture.h"

/*
002282F8 CFTTRenderToTexture::CopyCubeMap(EFTTRTTCopyMode,bool)
00228890 CFTTRenderToTexture::ShareDepthBuffer(CFTTRenderToTexture*)
002288B8 CFTTRenderToTexture::EndShareDepthBuffer()
002288D2 CFTTRenderToTexture::~CFTTRenderToTexture()
002288D4 CFTTRenderToTexture::~CFTTRenderToTexture()

vprt_CFTTRenderToTexture_00328BB8:
  CFTTRenderToTextureOGLES::~CFTTRenderToTextureOGLES()
  CFTTRenderToTextureOGLES::~CFTTRenderToTextureOGLES()
  CFTTRenderToTextureOGLES::BeginRenderToTexture(CFTTClearSettings const&)
  CFTTRenderToTextureOGLES::EndRenderToTexture(EFTTRTTCopyMode)
  CFTTRenderToTextureOGLES::SetTarget(uchar,EFTTTextureTarget)
  CFTTRenderToTextureOGLES::GetTexture()
  CFTTRenderToTextureOGLES::GetDepthTexture()
  CFTTRenderToTextureOGLES::GetRenderTargets()
  CFTTRenderToTexture::CopyCubeMap(EFTTRTTCopyMode,bool)
  CFTTRenderToTexture::ShareDepthBuffer(CFTTRenderToTexture*)
  CFTTRenderToTexture::EndShareDepthBuffer()

*/

enum EFTTRTTCopyMode {
  EFTTRTTCopyMode_0,
  EFTTRTTCopyMode_1,
  EFTTRTTCopyMode_2,
  EFTTRTTCopyMode_3,
  EFTTRTTCopyMode_4,
  EFTTRTTCopyMode_5,
};

class CFTTRenderToTexture {
public:
  virtual ~CFTTRenderToTexture();  //002288D2 002288D4
  virtual void BeginRenderToTexture(CFTTClearSettings const&) = 0;
  virtual CFTTTexture* EndRenderToTexture(EFTTRTTCopyMode) = 0;
  virtual void SetTarget(uchar, EFTTTextureTarget) = 0;
  virtual CFTTTexture* GetTexture() = 0;
  virtual CFTTTexture* GetDepthTexture() = 0;
  virtual CFTTRenderTarget* GetRenderTargets() = 0;
  virtual CFTTTexture* CopyCubeMap(EFTTRTTCopyMode eMod, bool);      //002282F8
  virtual void ShareDepthBuffer(CFTTRenderToTexture* pRT);  //00228890
  virtual void EndShareDepthBuffer();                       //002288B8

  CFTTRenderToTexture* pCFTTRenderToTexture_4;
};

#endif  //_CFTTRENDERTOTEXTURE_H_