allo wPD::Color in Drawlist
This commit is contained in:
@@ -55,8 +55,9 @@ class PD_API Drawlist {
|
|||||||
* only for special use cases
|
* only for special use cases
|
||||||
*/
|
*/
|
||||||
void PathReserve(size_t num) { pPath.ExpandIf(num); }
|
void PathReserve(size_t num) { pPath.ExpandIf(num); }
|
||||||
void PathStroke(u32 color, int t = 1, LiDrawFlags flags = LiDrawFlags_None);
|
void PathStroke(const PD::Color& color, int t = 1,
|
||||||
void PathFill(u32 color);
|
LiDrawFlags flags = LiDrawFlags_None);
|
||||||
|
void PathFill(const PD::Color& color);
|
||||||
void PathArcToN(const fvec2& c, float r, float amin, float amax, int s);
|
void PathArcToN(const fvec2& c, float r, float amin, float amax, int s);
|
||||||
void PathFastArcToN(const fvec2& c, float r, float amin, float amax, int s);
|
void PathFastArcToN(const fvec2& c, float r, float amin, float amax, int s);
|
||||||
void PathRect(const fvec2& tl, const fvec2& br, float r = 0.f);
|
void PathRect(const fvec2& tl, const fvec2& br, float r = 0.f);
|
||||||
@@ -77,27 +78,30 @@ class PD_API Drawlist {
|
|||||||
operator const Pool<Command>&() const { return pCommands; }
|
operator const Pool<Command>&() const { return pCommands; }
|
||||||
|
|
||||||
/** Drawing functions */
|
/** Drawing functions */
|
||||||
void DrawRect(const fvec2& pos, const fvec2& size, u32 color, int t = 1);
|
void DrawRect(const fvec2& pos, const fvec2& size, const PD::Color& color,
|
||||||
void DrawRectFilled(const fvec2& pos, const fvec2& size, u32 color);
|
int t = 1);
|
||||||
void DrawTriangle(const fvec2& a, const fvec2& b, const fvec2& c, u32 color,
|
void DrawRectFilled(const fvec2& pos, const fvec2& size,
|
||||||
int t = 1);
|
const PD::Color& color);
|
||||||
|
void DrawTriangle(const fvec2& a, const fvec2& b, const fvec2& c,
|
||||||
|
const PD::Color& color, int t = 1);
|
||||||
void DrawTriangleFilled(const fvec2& a, const fvec2& b, const fvec2& c,
|
void DrawTriangleFilled(const fvec2& a, const fvec2& b, const fvec2& c,
|
||||||
u32 color);
|
const PD::Color& color);
|
||||||
void DrawCircle(const fvec2& center, float rad, u32 color, int num_segments,
|
void DrawCircle(const fvec2& center, float rad, const PD::Color& color,
|
||||||
int t = 1);
|
int num_segments, int t = 1);
|
||||||
void DrawCircleFilled(const fvec2& center, float rad, u32 color,
|
void DrawCircleFilled(const fvec2& center, float rad, const PD::Color& color,
|
||||||
int num_segments);
|
int num_segments);
|
||||||
void DrawText(const fvec2& p, const char* text, u32 color);
|
void DrawText(const fvec2& p, const char* text, const PD::Color& color);
|
||||||
void DrawTextEx(const fvec2& p, const char* text, u32 color,
|
void DrawTextEx(const fvec2& p, const char* text, const PD::Color& color,
|
||||||
LiTextFlags flags, const fvec2& box = fvec2(0.f));
|
LiTextFlags flags, const fvec2& box = fvec2(0.f));
|
||||||
|
|
||||||
void DrawPolyLine(const Pool<fvec2>& points, u32 color,
|
void DrawPolyLine(const Pool<fvec2>& points, const PD::Color& color,
|
||||||
LiDrawFlags flags = LiDrawFlags_None, int t = 1);
|
LiDrawFlags flags = LiDrawFlags_None, int t = 1);
|
||||||
void DrawConvexPolyFilled(const Pool<fvec2>& points, u32 color);
|
void DrawConvexPolyFilled(const Pool<fvec2>& points, const PD::Color& color);
|
||||||
|
|
||||||
void PrimQuad(Command& cmd, const Rect& quad, const Rect& uv, u32 color);
|
void PrimQuad(Command& cmd, const Rect& quad, const Rect& uv,
|
||||||
|
const PD::Color& color);
|
||||||
void PrimTriangle(Command& cmd, const fvec2& a, const fvec2& b,
|
void PrimTriangle(Command& cmd, const fvec2& a, const fvec2& b,
|
||||||
const fvec2& c, u32 color);
|
const fvec2& c, const PD::Color& color);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Texture pCurrentTexture;
|
Texture pCurrentTexture;
|
||||||
|
|||||||
+26
-18
@@ -34,12 +34,13 @@ PD_API Command& Drawlist::NewCommand() {
|
|||||||
PD_API void Drawlist::BindTexture(const Texture& tex) { pCurrentTexture = tex; }
|
PD_API void Drawlist::BindTexture(const Texture& tex) { pCurrentTexture = tex; }
|
||||||
|
|
||||||
/** Path API */
|
/** Path API */
|
||||||
PD_API void Drawlist::PathStroke(u32 color, int t, LiDrawFlags flags) {
|
PD_API void Drawlist::PathStroke(const PD::Color& color, int t,
|
||||||
|
LiDrawFlags flags) {
|
||||||
DrawPolyLine(pPath, color, flags, t);
|
DrawPolyLine(pPath, color, flags, t);
|
||||||
PathClear();
|
PathClear();
|
||||||
}
|
}
|
||||||
|
|
||||||
PD_API void Drawlist::PathFill(u32 color) {
|
PD_API void Drawlist::PathFill(const PD::Color& color) {
|
||||||
DrawConvexPolyFilled(pPath, color);
|
DrawConvexPolyFilled(pPath, color);
|
||||||
PathClear();
|
PathClear();
|
||||||
}
|
}
|
||||||
@@ -152,20 +153,21 @@ PD_API void Drawlist::PathRectEx(const fvec2& tl, const fvec2& br,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** Drawing functions */
|
/** Drawing functions */
|
||||||
PD_API void Drawlist::DrawRect(const fvec2& pos, const fvec2& size, u32 color,
|
PD_API void Drawlist::DrawRect(const fvec2& pos, const fvec2& size,
|
||||||
int t) {
|
const PD::Color& color, int t) {
|
||||||
PathRect(pos, pos + size);
|
PathRect(pos, pos + size);
|
||||||
PathStroke(color, t, LiDrawFlags_Close);
|
PathStroke(color, t, LiDrawFlags_Close);
|
||||||
}
|
}
|
||||||
|
|
||||||
PD_API void Drawlist::DrawRectFilled(const fvec2& pos, const fvec2& size,
|
PD_API void Drawlist::DrawRectFilled(const fvec2& pos, const fvec2& size,
|
||||||
u32 color) {
|
const PD::Color& color) {
|
||||||
PathRect(pos, pos + size);
|
PathRect(pos, pos + size);
|
||||||
PathFill(color);
|
PathFill(color);
|
||||||
}
|
}
|
||||||
|
|
||||||
PD_API void Drawlist::DrawTriangle(const fvec2& a, const fvec2& b,
|
PD_API void Drawlist::DrawTriangle(const fvec2& a, const fvec2& b,
|
||||||
const fvec2& c, u32 color, int t) {
|
const fvec2& c, const PD::Color& color,
|
||||||
|
int t) {
|
||||||
PathAdd(a);
|
PathAdd(a);
|
||||||
PathAdd(b);
|
PathAdd(b);
|
||||||
PathAdd(c);
|
PathAdd(c);
|
||||||
@@ -173,15 +175,17 @@ PD_API void Drawlist::DrawTriangle(const fvec2& a, const fvec2& b,
|
|||||||
}
|
}
|
||||||
|
|
||||||
PD_API void Drawlist::DrawTriangleFilled(const fvec2& a, const fvec2& b,
|
PD_API void Drawlist::DrawTriangleFilled(const fvec2& a, const fvec2& b,
|
||||||
const fvec2& c, u32 color) {
|
const fvec2& c,
|
||||||
|
const PD::Color& color) {
|
||||||
PathAdd(a);
|
PathAdd(a);
|
||||||
PathAdd(b);
|
PathAdd(b);
|
||||||
PathAdd(c);
|
PathAdd(c);
|
||||||
PathFill(color);
|
PathFill(color);
|
||||||
}
|
}
|
||||||
|
|
||||||
PD_API void Drawlist::DrawCircle(const fvec2& center, float rad, u32 color,
|
PD_API void Drawlist::DrawCircle(const fvec2& center, float rad,
|
||||||
int num_segments, int t) {
|
const PD::Color& color, int num_segments,
|
||||||
|
int t) {
|
||||||
if (num_segments <= 0) {
|
if (num_segments <= 0) {
|
||||||
// Auto Segment
|
// Auto Segment
|
||||||
} else {
|
} else {
|
||||||
@@ -193,7 +197,8 @@ PD_API void Drawlist::DrawCircle(const fvec2& center, float rad, u32 color,
|
|||||||
}
|
}
|
||||||
|
|
||||||
PD_API void Drawlist::DrawCircleFilled(const fvec2& center, float rad,
|
PD_API void Drawlist::DrawCircleFilled(const fvec2& center, float rad,
|
||||||
u32 color, int num_segments) {
|
const PD::Color& color,
|
||||||
|
int num_segments) {
|
||||||
if (num_segments <= 0) {
|
if (num_segments <= 0) {
|
||||||
// Auto Segment
|
// Auto Segment
|
||||||
} else {
|
} else {
|
||||||
@@ -203,19 +208,22 @@ PD_API void Drawlist::DrawCircleFilled(const fvec2& center, float rad,
|
|||||||
PathFill(color);
|
PathFill(color);
|
||||||
}
|
}
|
||||||
|
|
||||||
PD_API void Drawlist::DrawText(const fvec2& p, const char* text, u32 color) {
|
PD_API void Drawlist::DrawText(const fvec2& p, const char* text,
|
||||||
|
const PD::Color& color) {
|
||||||
if (!pFont) return;
|
if (!pFont) return;
|
||||||
pFont->CmdTextEx(*this, p, color, pFontScale, text);
|
pFont->CmdTextEx(*this, p, color, pFontScale, text);
|
||||||
}
|
}
|
||||||
|
|
||||||
PD_API void Drawlist::DrawTextEx(const fvec2& p, const char* text, u32 color,
|
PD_API void Drawlist::DrawTextEx(const fvec2& p, const char* text,
|
||||||
LiTextFlags flags, const fvec2& box) {
|
const PD::Color& color, LiTextFlags flags,
|
||||||
|
const fvec2& box) {
|
||||||
if (!pFont) return;
|
if (!pFont) return;
|
||||||
pFont->CmdTextEx(*this, p, color, pFontScale, text, flags, box);
|
pFont->CmdTextEx(*this, p, color, pFontScale, text, flags, box);
|
||||||
}
|
}
|
||||||
|
|
||||||
PD_API void Drawlist::DrawPolyLine(const Pool<fvec2>& points, u32 color,
|
PD_API void Drawlist::DrawPolyLine(const Pool<fvec2>& points,
|
||||||
LiDrawFlags flags, int t) {
|
const PD::Color& color, LiDrawFlags flags,
|
||||||
|
int t) {
|
||||||
if (points.size() < 2) {
|
if (points.size() < 2) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -236,7 +244,7 @@ PD_API void Drawlist::DrawPolyLine(const Pool<fvec2>& points, u32 color,
|
|||||||
}
|
}
|
||||||
|
|
||||||
PD_API void Drawlist::DrawConvexPolyFilled(const Pool<fvec2>& points,
|
PD_API void Drawlist::DrawConvexPolyFilled(const Pool<fvec2>& points,
|
||||||
u32 color) {
|
const PD::Color& color) {
|
||||||
if (points.size() < 3) {
|
if (points.size() < 3) {
|
||||||
return; // Need at least three points
|
return; // Need at least three points
|
||||||
}
|
}
|
||||||
@@ -275,7 +283,7 @@ PD_API void Drawlist::DrawConvexPolyFilled(const Pool<fvec2>& points,
|
|||||||
}
|
}
|
||||||
|
|
||||||
PD_API void Drawlist::PrimQuad(Command& cmd, const Rect& quad, const Rect& uv,
|
PD_API void Drawlist::PrimQuad(Command& cmd, const Rect& quad, const Rect& uv,
|
||||||
u32 color) {
|
const PD::Color& color) {
|
||||||
cmd.Reserve(4, 6);
|
cmd.Reserve(4, 6);
|
||||||
cmd.Add(2, 1, 0);
|
cmd.Add(2, 1, 0);
|
||||||
cmd.Add(3, 2, 0);
|
cmd.Add(3, 2, 0);
|
||||||
@@ -286,7 +294,7 @@ PD_API void Drawlist::PrimQuad(Command& cmd, const Rect& quad, const Rect& uv,
|
|||||||
}
|
}
|
||||||
|
|
||||||
PD_API void Drawlist::PrimTriangle(Command& cmd, const fvec2& a, const fvec2& b,
|
PD_API void Drawlist::PrimTriangle(Command& cmd, const fvec2& a, const fvec2& b,
|
||||||
const fvec2& c, u32 color) {
|
const fvec2& c, const PD::Color& color) {
|
||||||
cmd.Reserve(3, 3);
|
cmd.Reserve(3, 3);
|
||||||
cmd.Add(2, 1, 0);
|
cmd.Add(2, 1, 0);
|
||||||
cmd.Add(Vertex(a, vec2(0.f, 1.f), color));
|
cmd.Add(Vertex(a, vec2(0.f, 1.f), color));
|
||||||
|
|||||||
Reference in New Issue
Block a user