Initial commit

This commit is contained in:
2026-04-03 00:22:39 -05:00
commit eca1e8c458
945 changed files with 218160 additions and 0 deletions

View File

@@ -0,0 +1,114 @@
/*
ZRenderTarget.hpp
Author: James Russell <jcrussell@762studios.com>
Created: 03/20/2011
Purpose:
Defines an interface for a rendering surface.
License:
TODO
*/
#pragma once
#ifndef _ZRENDERTARGET_HPP
#define _ZRENDERTARGET_HPP
#include <ZRenderer/ZRendererBuild.hpp>
#include <ZRenderer/ZRendererResource.hpp>
//Enumeration of possible render target types
enum ZRenderTargetType
{
ZRTT_WINDOW, //Used for window render targets
ZRTT_FRAMEBUFFER, //Used for frame buffer render targets
ZRTT_SIZE
};
//Used to flag which buffers should be cleared, and to what value
struct ZRenderTargetClearFlags
{
bool AutoClear; //Indicates that the renderer should 'clear' the toggled buffers before rendering to this target
bool ClearColorBuffer; //Indicates we should clear the color buffer
bool ClearDepthBuffer; //Indicates we should clear the depth buffer
bool ClearStencilBuffer; //Indicates we should clear the stencil buffer
float ClearColor[4]; //RGBA clear color to use
//Default Constructor
ZRenderTargetClearFlags()
: AutoClear(true), ClearColorBuffer(true), ClearDepthBuffer(true), ClearStencilBuffer(false)
{
ClearColor[0] = 0.0f;
ClearColor[1] = 0.0f;
ClearColor[2] = 0.0f;
ClearColor[3] = 1.0f;
}
};
/*
RenderTarget Interface.
*/
class ZRenderTarget : public ZRendererResource
{
public:
//Virtual Destructor
virtual ~ZRenderTarget() { }
/*
public ZRenderTarget::GetClearFlags
Gets the current set of clear flags for this render target.
@return (const ZRenderTargetClearFlags&) - clearing flags for this render target
@context (all)
*/
virtual const ZRenderTargetClearFlags& GetClearFlags() = 0;
/*
public ZRenderTarget::GetHeight
Gets the height value for the render target (in pixels).
@return (size_t)
@context (all)
*/
virtual size_t GetHeight() = 0;
/*
public ZRenderTarget::GetType
Gets the type of render target.
@return (ZRenderTargetType) - the type of render target
@context (all)
*/
virtual ZRenderTargetType GetType() = 0;
/*
public ZRenderTarget::GetWidth
Gets the width value for the render target (in pixels).
@return (size_t)
@context (all)
*/
virtual size_t GetWidth() = 0;
/*
public ZRenderTarget::SetClearFlags
Sets the clear flags for this render target.
@param _flags - flags structure which has our clear settings
@return (bool) - true if able to set flags, false if resource contended
@context (all)
*/
virtual bool SetClearFlags(const ZRenderTargetClearFlags& _flags) = 0;
};
#endif