engine/include/resources/material.h

31 lines
595 B
C
Raw Permalink Normal View History

2023-05-01 12:55:49 +00:00
#ifndef ENGINE_INCLUDE_RESOURCES_MATERIAL_H_
#define ENGINE_INCLUDE_RESOURCES_MATERIAL_H_
2022-12-20 23:51:04 +00:00
#include <memory>
2023-05-01 13:13:35 +00:00
#include "resources/shader.h"
#include "resources/texture.h"
2022-12-20 23:51:04 +00:00
2023-05-01 12:55:49 +00:00
namespace engine {
namespace resources {
2022-12-20 23:51:04 +00:00
2023-05-01 12:55:49 +00:00
// copyable
class Material {
public:
Material(std::shared_ptr<Shader> shader);
~Material() = default;
Material(const Material&);
Material& operator=(const Material&) = delete;
2022-12-20 23:51:04 +00:00
2023-05-01 12:55:49 +00:00
auto GetShader() { return shader_.get(); }
2022-12-20 23:51:04 +00:00
2023-05-01 12:55:49 +00:00
std::shared_ptr<Texture> texture_;
2022-12-22 11:27:16 +00:00
2023-05-01 12:55:49 +00:00
private:
const std::shared_ptr<Shader> shader_;
};
2022-12-20 23:51:04 +00:00
2023-05-01 12:55:49 +00:00
} // namespace resources
} // namespace engine
2022-12-20 23:51:04 +00:00
2023-05-01 12:55:49 +00:00
#endif