2025-04-24 16:39:24 +02:00
|
|
|
#pragma once
|
|
|
|
|
|
2026-03-16 17:33:46 +01:00
|
|
|
#include <cstddef>
|
2026-03-16 06:37:51 +01:00
|
|
|
#include <pd/core/pool.hpp>
|
2025-04-24 16:39:24 +02:00
|
|
|
#include <pd/lithium/vertex.hpp>
|
|
|
|
|
|
|
|
|
|
namespace PD {
|
2025-06-22 21:05:09 +02:00
|
|
|
namespace Li {
|
|
|
|
|
class Command {
|
2025-04-24 16:39:24 +02:00
|
|
|
public:
|
2026-03-16 17:33:46 +01:00
|
|
|
Command() { Reset(); }
|
2026-03-16 06:37:51 +01:00
|
|
|
~Command() {}
|
2025-04-24 16:39:24 +02:00
|
|
|
|
2026-09-02 08:04:50 +02:00
|
|
|
void Reserve(size_t vtx, size_t idx);
|
|
|
|
|
void Reset();
|
2026-03-16 17:33:46 +01:00
|
|
|
|
2026-09-02 08:04:50 +02:00
|
|
|
Command& Add(const Vertex& vtx);
|
|
|
|
|
Command& Add(u16 idx);
|
|
|
|
|
Command& Add(u16 a, u16 b, u16 c);
|
2026-03-16 17:33:46 +01:00
|
|
|
|
2026-01-16 12:13:48 +01:00
|
|
|
int Layer = 0;
|
2026-03-16 06:37:51 +01:00
|
|
|
ptr Tex = 0;
|
2026-09-05 11:56:13 +02:00
|
|
|
bool SDF = false;
|
2026-03-21 13:35:16 +01:00
|
|
|
size_t FirstVertex = 0;
|
|
|
|
|
size_t FirstIndex = 0;
|
2026-03-16 17:33:46 +01:00
|
|
|
size_t VertexCount = 0;
|
|
|
|
|
size_t IndexCount = 0;
|
|
|
|
|
// Todo: implement
|
|
|
|
|
size_t VertexCountMax = 0;
|
|
|
|
|
size_t IndexCountMax = 0;
|
2026-09-08 21:15:21 +02:00
|
|
|
// ClipRect
|
|
|
|
|
PD::fvec4 ClipRect;
|
|
|
|
|
bool ClipRectUsed = false;
|
2026-01-16 12:13:48 +01:00
|
|
|
};
|
2025-06-22 21:05:09 +02:00
|
|
|
} // namespace Li
|
2025-02-22 00:23:48 +01:00
|
|
|
} // namespace PD
|