VideoBackends: Add AbstractShader and AbstractPipeline classes

This commit is contained in:
Stenzek
2017-09-08 19:42:56 +10:00
parent 31111ef143
commit fec6bb4d56
47 changed files with 1825 additions and 33 deletions

View File

@ -0,0 +1,34 @@
// Copyright 2017 Dolphin Emulator Project
// Licensed under GPLv2+
// Refer to the license.txt file included.
#pragma once
#include <cstddef>
#include <string>
#include <vector>
#include "Common/CommonTypes.h"
enum class ShaderStage
{
Vertex,
Geometry,
Pixel,
Compute
};
class AbstractShader
{
public:
explicit AbstractShader(ShaderStage stage) : m_stage(stage) {}
virtual ~AbstractShader() = default;
ShaderStage GetStage() const { return m_stage; }
using BinaryData = std::vector<u8>;
virtual bool HasBinary() const = 0;
virtual BinaryData GetBinary() const = 0;
protected:
ShaderStage m_stage;
};