Brenta Engine
1.2
Loading...
Searching...
No Matches
camera_ecs_component.hpp
1
// SPDX-License-Identifier: MIT
2
// Author: Giovanni Santini
3
// Mail: giovanni.santini@proton.me
4
// Github: @San7o
5
6
#pragma once
7
8
#ifndef BRENTA_NO_ECS
9
10
#include <brenta/renderer/camera.hpp>
11
#include <brenta/ecs/ecs.hpp>
12
13
#include <tenno/memory.hpp>
14
15
namespace
brenta
16
{
17
18
class
FrameBuffer;
19
20
class
CameraEcsComponent
:
public
viotecs::Component
21
{
22
public
:
23
24
tenno::shared_ptr<Camera> camera =
nullptr
;
25
tenno::weak_ptr<FrameBuffer> fb;
26
27
CameraEcsComponent
() =
default
;
28
CameraEcsComponent
(tenno::shared_ptr<Camera> cam, tenno::weak_ptr<FrameBuffer> fb)
29
: camera(cam), fb(fb) {}
30
CameraEcsComponent
(
const
Camera
&cam, tenno::weak_ptr<FrameBuffer> fb)
31
: fb(fb)
32
{
33
this->camera = tenno::make_shared<Camera>(cam);
34
}
35
CameraEcsComponent
(
Camera::Builder
&cam, tenno::weak_ptr<FrameBuffer> fb)
36
: fb(fb)
37
{
38
this->camera = tenno::make_shared<Camera>(cam.build());
39
}
40
};
41
42
}
// namespace brenta
43
44
#endif
// BRENTA_NO_ECS
brenta::CameraEcsComponent
Definition
camera_ecs_component.hpp:21
brenta::Camera::Builder
Definition
camera.hpp:200
brenta::Camera
Definition
camera.hpp:38
include
brenta
ecs
components
camera_ecs_component.hpp
Generated by
1.9.8