跳转至

SceneCamera

加上父类Camera的数据和结构 * 远、近平面 * 正交相机大小 * 分辨率 * 重计算

#pragma once
#include "CryDust/Renderer/Camera.h"
namespace CryDust {
    class SceneCamera : public Camera
    {
    public:
        SceneCamera();
        virtual ~SceneCamera() = default;
        void SetOrthographic(float size, float nearClip, float farClip);
        void SetViewportSize(uint32_t width, uint32_t height);
        float GetOrthographicSize() const { return m_OrthographicSize; }
        void SetOrthographicSize(float size) { m_OrthographicSize = size; RecalculateProjection(); }
    private:
        void RecalculateProjection();
    private:
        float m_OrthographicSize = 10.0f;
        float m_OrthographicNear = -1.0f, m_OrthographicFar = 1.0f;
        float m_AspectRatio = 0.0f;
    };
}

Scene

提供窗口适应的相关函数接口

Component

相机添加是否为固定分辨率的bool值

Entt的Group

因为这里和view写错了卡了我2个多小时bug - 分组匹配器:观察者返回至少已进入给定组(如果该组存在)且尚未离开该组的实体

entt::collector.group<position, velocity>(entt::exclude<destroyed>);

分组匹配器还支持排除列表和单个组件
粗略地说,观察匹配器拦截更新给定组件的实体,而分组匹配器跟踪自上次请求以来分配给定组件的实体。
如果一个实体已经拥有除了一个之外的所有组件,并且将缺失的类型分配给它,则该实体将被分组匹配器拦截。
此外,matchers支持通过子句:where进行过滤