Shkyera Engine
Easy to use, game engine for Python
Loading...
Searching...
No Matches
OverlayModelComponent.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <iostream>
4#include <string>
5
9
10namespace shkyera {
11
12class OverlayModelComponent : public BaseComponent<OverlayModelComponent> {
13 public:
15
16 void setMesh(AssetRef<Mesh> mesh) { _mesh = mesh; }
17
18 void setMaterial(std::shared_ptr<Material> material) { _material = material; }
19
20 Mesh const* getMesh() const { return _mesh.get(); }
21
22 Material const* getMaterial() const { return _material.get(); }
23
24 void updateImpl() const {
25 if (_mesh) {
26 _mesh->bind();
27 glDrawElements(GL_TRIANGLES, _mesh->getMeshSize(), GL_UNSIGNED_INT, nullptr);
28 _mesh->unbind();
29 }
30 }
31
32 private:
34 std::shared_ptr<Material> _material;
35};
36
37} // namespace shkyera
Base component for implementing update functionality.
Definition BaseComponent.hpp:17
Definition Mesh.hpp:13
Definition OverlayModelComponent.hpp:12
AssetRef< Mesh > _mesh
Definition OverlayModelComponent.hpp:33
Mesh const * getMesh() const
Definition OverlayModelComponent.hpp:20
Material const * getMaterial() const
Definition OverlayModelComponent.hpp:22
void setMesh(AssetRef< Mesh > mesh)
Definition OverlayModelComponent.hpp:16
std::shared_ptr< Material > _material
Definition OverlayModelComponent.hpp:34
void updateImpl() const
Definition OverlayModelComponent.hpp:24
void setMaterial(std::shared_ptr< Material > material)
Definition OverlayModelComponent.hpp:18
Definition Asset.hpp:6
Definition Clock.hpp:9
Definition Material.hpp:10