98 lines
1.2 KiB
C++
98 lines
1.2 KiB
C++
|
#pragma once
|
||
|
|
||
|
#include "context.hpp"
|
||
|
|
||
|
|
||
|
namespace hpr::gpu
|
||
|
{
|
||
|
|
||
|
class RenderTarget : public Context
|
||
|
{
|
||
|
friend class Device;
|
||
|
|
||
|
public:
|
||
|
|
||
|
enum class Type
|
||
|
{
|
||
|
Unknown,
|
||
|
Screen,
|
||
|
Framebuffer
|
||
|
};
|
||
|
|
||
|
protected:
|
||
|
|
||
|
int p_posX;
|
||
|
int p_posY;
|
||
|
int p_width;
|
||
|
int p_height;
|
||
|
|
||
|
Type p_type;
|
||
|
|
||
|
bool p_hasColorData;
|
||
|
bool p_hasDepthBuffer;
|
||
|
bool p_depthTestEnabled;
|
||
|
|
||
|
RenderTarget* p_parent;
|
||
|
|
||
|
public:
|
||
|
|
||
|
RenderTarget();
|
||
|
|
||
|
RenderTarget(DeviceAPI api);
|
||
|
|
||
|
virtual
|
||
|
~RenderTarget();
|
||
|
|
||
|
int posX() const
|
||
|
{
|
||
|
return p_posX;
|
||
|
}
|
||
|
|
||
|
int posY() const
|
||
|
{
|
||
|
return p_posY;
|
||
|
}
|
||
|
|
||
|
int width() const
|
||
|
{
|
||
|
return p_width;
|
||
|
}
|
||
|
|
||
|
int height() const
|
||
|
{
|
||
|
return p_height;
|
||
|
}
|
||
|
|
||
|
Type type() const
|
||
|
{
|
||
|
return p_type;
|
||
|
}
|
||
|
|
||
|
bool hasColorData() const
|
||
|
{
|
||
|
return p_hasColorData;
|
||
|
}
|
||
|
|
||
|
bool hasDepthBuffer() const
|
||
|
{
|
||
|
return p_hasDepthBuffer;
|
||
|
}
|
||
|
|
||
|
bool isDepthTestEnabled() const
|
||
|
{
|
||
|
return p_depthTestEnabled;
|
||
|
}
|
||
|
|
||
|
void depthTest(bool enable)
|
||
|
{
|
||
|
p_depthTestEnabled = enable;
|
||
|
}
|
||
|
|
||
|
RenderTarget* parent()
|
||
|
{
|
||
|
return p_parent;
|
||
|
}
|
||
|
|
||
|
};
|
||
|
|
||
|
}
|