remove poc func
This commit is contained in:
@@ -166,52 +166,6 @@ struct Cursor {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
void DrawRectGradient135(PD::Li::Drawlist& l, const PD::fvec2& pos,
|
|
||||||
const PD::fvec2& size, const PD::Color& colA,
|
|
||||||
const PD::Color& colB) {
|
|
||||||
PD::fvec2 p0 = pos;
|
|
||||||
PD::fvec2 p1 = PD::fvec2(pos.x + size.x, pos.y);
|
|
||||||
PD::fvec2 p2 = PD::fvec2(pos.x + size.x, pos.y + size.y);
|
|
||||||
PD::fvec2 p3 = PD::fvec2(pos.x, pos.y + size.y);
|
|
||||||
|
|
||||||
// 135° direction
|
|
||||||
PD::fvec2 dir = PD::fvec2(-0.70710678f, 0.70710678f);
|
|
||||||
|
|
||||||
// Project all corners
|
|
||||||
float t0 = p0.x * dir.x + p0.y * dir.y;
|
|
||||||
float t1 = p1.x * dir.x + p1.y * dir.y;
|
|
||||||
float t2 = p2.x * dir.x + p2.y * dir.y;
|
|
||||||
float t3 = p3.x * dir.x + p3.y * dir.y;
|
|
||||||
|
|
||||||
float tmin = std::min({t0, t1, t2, t3});
|
|
||||||
float tmax = std::max({t0, t1, t2, t3});
|
|
||||||
|
|
||||||
auto normalize = [&](float t) { return (t - tmin) / (tmax - tmin); };
|
|
||||||
|
|
||||||
auto lerpColor = [&](float t) {
|
|
||||||
return PD::Color(colA.rf() + (colB.rf() - colA.rf()) * t,
|
|
||||||
colA.gf() + (colB.gf() - colA.gf()) * t,
|
|
||||||
colA.bf() + (colB.bf() - colA.bf()) * t,
|
|
||||||
colA.af() + (colB.af() - colA.af()) * t);
|
|
||||||
};
|
|
||||||
|
|
||||||
PD::Color c0 = lerpColor(normalize(t0));
|
|
||||||
PD::Color c1 = lerpColor(normalize(t1));
|
|
||||||
PD::Color c2 = lerpColor(normalize(t2));
|
|
||||||
PD::Color c3 = lerpColor(normalize(t3));
|
|
||||||
|
|
||||||
auto& cmd = l.NewCommand();
|
|
||||||
cmd.Reserve(4, 6);
|
|
||||||
|
|
||||||
cmd.Add(2, 1, 0);
|
|
||||||
cmd.Add(3, 2, 0);
|
|
||||||
|
|
||||||
cmd.Add(PD::Li::Vertex(p0, PD::fvec2(0, 0), c0));
|
|
||||||
cmd.Add(PD::Li::Vertex(p1, PD::fvec2(1, 0), c1));
|
|
||||||
cmd.Add(PD::Li::Vertex(p2, PD::fvec2(1, 1), c2));
|
|
||||||
cmd.Add(PD::Li::Vertex(p3, PD::fvec2(0, 1), c3));
|
|
||||||
}
|
|
||||||
|
|
||||||
int main(int argc, char** argv) {
|
int main(int argc, char** argv) {
|
||||||
// PD::LogFilter(PD::LogLevel::Warning);
|
// PD::LogFilter(PD::LogLevel::Warning);
|
||||||
Driver drv = Driver::OpenGL3;
|
Driver drv = Driver::OpenGL3;
|
||||||
|
|||||||
Reference in New Issue
Block a user