1
0
mirror of https://github.com/blawar/GLideN64.git synced 2024-07-02 09:03:37 +00:00
GLideN64/src/Graphics/CombinerProgram.h

30 lines
672 B
C
Raw Normal View History

2017-01-03 14:57:46 +00:00
#pragma once
2017-01-07 15:46:51 +00:00
#include <map>
2017-01-07 09:40:50 +00:00
#include <vector>
2017-01-03 14:57:46 +00:00
#include "CombinerKey.h"
namespace graphics {
class CombinerProgram
{
public:
2017-01-07 09:40:50 +00:00
virtual ~CombinerProgram() {}
2017-01-03 14:57:46 +00:00
virtual void activate() = 0;
virtual void update(bool _force) = 0;
2017-01-10 11:15:35 +00:00
virtual const CombinerKey & getKey() const = 0;
2017-01-10 11:15:35 +00:00
2017-01-05 11:05:47 +00:00
virtual bool usesTexture() const = 0;
virtual bool usesTile(u32 _t) const = 0;
virtual bool usesShade() const = 0;
virtual bool usesLOD() const = 0;
2017-01-10 14:58:09 +00:00
virtual bool usesHwLighting() const = 0;
2017-01-05 11:05:47 +00:00
2017-01-07 15:46:51 +00:00
virtual bool getBinaryForm(std::vector<char> & _buffer) = 0;
2017-01-07 09:40:50 +00:00
static u32 getShaderCombinerOptionsBits();
2017-01-03 14:57:46 +00:00
};
2017-01-07 15:46:51 +00:00
typedef std::map<CombinerKey, graphics::CombinerProgram *> Combiners;
2017-01-03 14:57:46 +00:00
}