#pragma once #include #include #include "CombinerKey.h" namespace graphics { class CombinerProgram { public: virtual ~CombinerProgram() {} virtual void activate() = 0; virtual void update(bool _force) = 0; virtual CombinerKey getKey() const = 0; virtual bool usesTexture() const = 0; virtual bool usesTile(u32 _t) const = 0; virtual bool usesShade() const = 0; virtual bool usesLOD() const = 0; // TODO implement void disableBlending() {} void updateFrameBufferInfo(bool _bForce = false) {} virtual bool getBinaryForm(std::vector & _buffer) = 0; static void getShaderCombinerOptionsSet(std::vector & _vecOptions); }; typedef std::map Combiners; }