Files
libsst/Include/ZRenderer/ZShader.hpp
2026-04-03 00:22:39 -05:00

122 lines
2.2 KiB
C++

/*
ZShader.hpp
Author: Chris Ertel <crertel@762studios.com>,
James Russell <jcrussell@762studios.com>
Created: 4/20/2011
Purpose:
TODO
License:
TODO
*/
#pragma once
#ifndef _ZSHADER_HPP
#define _ZSHADER_HPP
#include <ZRenderer/ZRendererBuild.hpp>
#include <ZRenderer/ZRendererResource.hpp>
#include <ZSTL/ZString.hpp>
//Shader Type
enum ZShaderType
{
ZST_SOFT, //Software Shader (unsupported)
ZST_VERTEX, //Vertex Shader
ZST_FRAGMENT, //Fragment/Pixel Shader
ZST_GEOMETRY, //Geometry Shader (unsupported)
ZST_HULL, //Hull Shader (unsupported)
ZST_DOMAIN, //Domain Shader (unsupported)
ZST_SIZE
};
//For you non OpenGL types
#define ZST_PIXEL (ZST_FRAGMENT)
class ZShader : public ZRendererResource
{
public:
/*
virtual public ZShader::ClearLog
Function to clear the log of a shader.
@return (void)
@context (all)
*/
virtual void ClearCompileLog() = 0;
/*
virtual public ZShdaer::Compile
Function to compile a shader.
@return (bool) - true if successfully compiled, false otherwise.
@context (all)
*/
virtual bool Compile() = 0;
/*
virtual public ZShdaer::IsUsable
Function to compile a shader.
@return (bool) - true if successfully compiled, false otherwise.
@context (all)
*/
virtual bool IsUsable() = 0;
/*
virtual public ZShader::GetLog
Function to get the log of a shader.
@return (ZString) - the log of the shader.
@context (all)
*/
virtual const ZString& GetCompileLog() = 0;
/*
virtual public ZShader::GetSource
Function to get the source of a shader.
@return (ZString) - the source of the shader.
@context (all)
*/
virtual const ZString& GetSource() = 0;
/*
virtual public ZShader::GetType
Function to get the type of a shader.
ZST_SOFT : Soft shaders
ZST_VERTEX : Vertex shaders
ZST_HULL : Hull shaders
ZST_DOMAIN : Domain shaders
ZST_GEOMETRY: Geometry shaders
ZST_FRAGMENT: Fragment (pixel) shaders
@return (ZShaderType) - type of shader.
@context (all)
*/
virtual ZShaderType GetType() = 0;
/*
virtual public ZShader::SetSource
Function to set the source of a shader.
@param _source - shader source, as a string
@return (void)
@context (all)
*/
virtual void SetSource(const ZString& _source) = 0;
};
#endif