41 lines
		
	
	
	
		
			676 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
	
		
			676 B
		
	
	
	
		
			C++
		
	
	
	
	
	
#pragma once
 | 
						|
 | 
						|
#include <d3d11.h>
 | 
						|
#include <renderer/shader.hpp>
 | 
						|
#include <wrl.h>
 | 
						|
 | 
						|
namespace lt {
 | 
						|
 | 
						|
class dxSharedContext;
 | 
						|
 | 
						|
class dxShader: public Shader
 | 
						|
{
 | 
						|
public:
 | 
						|
	dxShader(
 | 
						|
	    BasicFileHandle vertexFile,
 | 
						|
	    BasicFileHandle pixelFile,
 | 
						|
	    Ref<dxSharedContext> sharedContext
 | 
						|
	);
 | 
						|
 | 
						|
	~dxShader();
 | 
						|
 | 
						|
	void bind() override;
 | 
						|
 | 
						|
	void un_bind() override;
 | 
						|
 | 
						|
	auto get_vertex_blob() -> Microsoft::WRL::ComPtr<ID3DBlob>
 | 
						|
	{
 | 
						|
		return m_vertex_blob;
 | 
						|
	}
 | 
						|
 | 
						|
private:
 | 
						|
	Ref<dxSharedContext> m_context;
 | 
						|
 | 
						|
	Microsoft::WRL::ComPtr<ID3D11VertexShader> m_vertex_shader;
 | 
						|
 | 
						|
	Microsoft::WRL::ComPtr<ID3D11PixelShader> m_pixel_shader;
 | 
						|
 | 
						|
	Microsoft::WRL::ComPtr<ID3DBlob> m_vertex_blob;
 | 
						|
};
 | 
						|
 | 
						|
} // namespace lt
 |