Files
Webcam/include/engine/gpu/gpu_shader_compiler.h
2026-06-22 11:49:35 +02:00

48 lines
1.0 KiB
C++

/* -----------------------------------------------------------------------------
nEngine - GSFramework
Copyright 2001-2013 Emmanuel Julien. All Rights Reserved.
----------------------------------------------------------------------------- */
#ifndef __GPU_SHADER_COMPILER__
#define __GPU_SHADER_COMPILER__
#include "gpu/gpu_shader_object.h"
namespace GS {
class String;
namespace Core { struct Shader; }
namespace GPU {
struct Shader;
class Renderer;
/*!
@short GPU shader compiler interface.
@author Emmanuel Julien (ejulien@owloh.com)
*/
class IShaderCompiler
{
protected:
Renderer &renderer;
virtual bool Link(const Core::Shader &, Shader &) = 0;
virtual bool CompileObject(const char *source, ShaderObject &, ShaderObject::Type, const char *source_name, String *error_log) = 0;
public:
virtual bool Compile(const Core::Shader &, Shader &, const char *binary_cache_id = 0);
IShaderCompiler(Renderer &r) : renderer(r) {}
virtual ~IShaderCompiler() {}
};
} // GPU
} // GS
#endif // __GPU_SHADER_COMPILER__