#pragma once
#include <common/memory.h>
+
#include <vector>
namespace caspar { namespace core {
class frame_geometry
{
public:
- enum geometry_type
+ enum class geometry_type
{
- none,
quad,
quad_list
};
- frame_geometry();
- frame_geometry(const frame_geometry&);
- frame_geometry(geometry_type, std::vector<float>);
- const frame_geometry& operator=(const frame_geometry&);
+ struct coord
+ {
+ double vertex_x = 0.0;
+ double vertex_y = 0.0;
+ double texture_x = 0.0;
+ double texture_y = 0.0;
+ double texture_r = 0.0;
+ double texture_q = 1.0;
+
+ coord() = default;
+ coord(double vertex_x, double vertex_y, double texture_x, double texture_y);
+
+ bool operator==(const coord& other) const;
+ };
+
+ frame_geometry(geometry_type type, std::vector<coord> data);
+
+ geometry_type type() const ;
+ const std::vector<coord>& data() const;
- geometry_type type();
- const std::vector<float>& data();
-
static const frame_geometry& get_default();
private: