switch-examples/graphics/deko3d/deko_examples/source/SampleFramework/CShader.h
TurtleP 713404797b
Delete various copy constructors and assignment operators (#102)
Prevents common C++ programming mistakes
2023-01-04 21:30:48 +01:00

37 lines
663 B
C++

/*
** Sample Framework for deko3d Applications
** CShader.h: Utility class for loading shaders from the filesystem
*/
#pragma once
#include "common.h"
#include "CMemPool.h"
class CShader
{
dk::Shader m_shader;
CMemPool::Handle m_codemem;
public:
CShader() : m_shader{}, m_codemem{} { }
CShader(const CShader&) = delete;
CShader& operator=(const CShader&) = delete;
~CShader()
{
m_codemem.destroy();
}
constexpr operator bool() const
{
return m_codemem;
}
constexpr operator dk::Shader const*() const
{
return &m_shader;
}
bool load(CMemPool& pool, const char* path);
};