dl
dl_type_def.h
浏览该文件的文档.
1
12#pragma once
13
14#include <array>
15
16#include "base/dl_array.h"
17#include "base/dl_array_simd.h"
18
19namespace dl
20{
26using Point = Point2;
27
28
35using Size = PointU;
36
37
38using Float = float;
45
46constexpr size_t SIZE_P2 = sizeof(Position2);
47constexpr size_t SIZE_P3 = sizeof(Position3);
48constexpr size_t SIZE_P4 = sizeof(Position4);
49
50using Rect = Point4;
51using RectU = Point4U;
53
56
57using FloatTime = float;
59
60// 一维使用std::size_t 故不额外定义
62
63inline constexpr Float operator""_f(long double r)
64{
65 return static_cast<Float>(r);
66}
67inline constexpr Float operator""_f(unsigned long long r)
68{
69 return static_cast<Float>(r);
70}
71inline constexpr FloatTime operator""_ft(long double r)
72{
73 return static_cast<FloatTime>(r);
74}
75inline constexpr FloatTime operator""_ft(unsigned long long r)
76{
77 return static_cast<FloatTime>(r);
78}
79
81#pragma warning(disable:4455)
82inline constexpr std::size_t operator""_zu(unsigned long long i)
83{
84 return static_cast<std::size_t>(i);
85}
86
87template<typename T, typename T1>
88constexpr T1 frac(const T& n, const T& d)
89{
90 return static_cast<T1>(n) / static_cast<T1>(d);
91}
92
93template<typename T>
94Float frac_r(const T& n, const T& d)
95{
96 return frac<T, Float>(n, d);
97}
98template<typename T>
99FloatTime frac_rt(const T& n, const T& d)
100{
101 return frac<T, FloatTime>(n, d);
102}
103
104//! 队列模式
105enum class QueueMode
106{
109};
110
111}
类似std::array,增加xyzw、wh等成员访问
向量化容器
Position2 Position
constexpr size_t SIZE_P3
Array< int, 1 > Point1
Array< unsigned, 4 > Point4U
Array< int, 0 > Point0
float Float
Array< unsigned, 2 > Point2U
Array< unsigned, 0 > Point0U
Array< Float, 2 > Position2
constexpr size_t SIZE_P4
Array< Position, 3 > Triangle
Point2U PointU
float FloatTime
Array< unsigned, 3 > Point3U
Array< int, 4 > Point4
Array< Float, 3 > Position3
Position4 RectF
Array< int, 2 > Point2
Array< Float, 4 > Position4
Float frac_r(const T &n, const T &d)
Array< float, 4 > Color
Array< std::size_t, 2 > SizeT
< rgba
FloatTime frac_rt(const T &n, const T &d)
constexpr T1 frac(const T &n, const T &d)
Point4 Rect
Point4U RectU
Array< int, 3 > Point3
constexpr size_t SIZE_P2
Array< unsigned, 1 > Point1U
Array< Float, 0 > Position0
Array< Position, 4 > Quad
PointU Size
Array< Float, 1 > Position1
Point2 Point