]> git.sesse.net Git - casparcg/blobdiff - core/frame/geometry.h
[general] Added cg_producer_registry as dependency in frame_producer_dependencies
[casparcg] / core / frame / geometry.h
index ceb3a9b7ad39ce99ffddba7af1db452e635ba19b..326c191491a836836b99d433ab1cded660dbaa3f 100644 (file)
@@ -22,6 +22,7 @@
 #pragma once
 
 #include <common/memory.h>
+
 #include <vector>
 
 namespace caspar { namespace core {
@@ -29,21 +30,32 @@ 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: