1 #pragma once 2 #include "util/gl_inc.h" 3 #include "color_palette.hpp" 4 #include "common/common.hpp" 5 6 namespace horizon { 7 class Triangle { 8 public: 9 float x0; 10 float y0; 11 float x1; 12 float y1; 13 float x2; 14 float y2; 15 16 uint8_t color; 17 uint8_t lod; 18 uint8_t color2 = 0; 19 Triangle(const Coordf & p0,const Coordf & p1,const Coordf & p2,ColorP co,uint8_t ilod=0,uint8_t c2=0)20 Triangle(const Coordf &p0, const Coordf &p1, const Coordf &p2, ColorP co, uint8_t ilod = 0, uint8_t c2 = 0) 21 : x0(p0.x), y0(p0.y), x1(p1.x), y1(p1.y), x2(p2.x), y2(p2.y), color(static_cast<uint8_t>(co)), lod(ilod), 22 color2(c2) 23 { 24 } 25 } __attribute__((packed)); 26 27 class TriangleInfo { 28 public: 29 enum class Type : uint8_t { NONE, TEXT, GRAPHICS, PLANE_OUTLINE, PLANE_FILL, POLYGON, PAD }; 30 TriangleInfo(Type ty,uint8_t flg)31 TriangleInfo(Type ty, uint8_t flg) : type(ty), flags(flg) 32 { 33 } 34 Type type; 35 uint8_t flags; 36 37 static const int FLAG_HIDDEN = 1 << 0; 38 static const int FLAG_HIGHLIGHT = 1 << 1; 39 static const int FLAG_BUTT = 1 << 2; 40 static const int FLAG_GLYPH = 1 << 3; 41 static const int FLAG_ARC = 1 << 4; 42 }; 43 44 } // namespace horizon 45