forked from dolphin-emu/dolphin
		
	
		
			
				
	
	
		
			35 lines
		
	
	
		
			630 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			630 B
		
	
	
	
		
			C++
		
	
	
	
	
	
// 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;
 | 
						|
};
 |