void qtcShadowCreate(size_t size, const QtcColor *c1, const QtcColor *c2, size_t radius, bool square, QtcPixelByteOrder order, QtCurve::Image **images) { size_t full_size = size + radius; QtCurve::LocalBuff<float, 128> gradient(full_size); for (size_t i = 0; i < radius; i++) { gradient[i] = 0; } qtcCreateShadowGradient(gradient.get() + radius, size); int aligns[8][2] = { {0, -1}, {1, -1}, {1, 0}, {1, 1}, {0, 1}, {-1, 1}, {-1, 0}, {-1, -1}, }; for (int i = 0; i < 8; i++) { images[i] = qtcShadowSubImage(full_size, gradient.get(), aligns[i][1], aligns[i][0], c1, c2, square, order); } }
void qtcShadowCreate(size_t size, const QtcColor *c1, const QtcColor *c2, size_t radius, bool square, QtcPixelByteOrder order, QtcImage **images) { size_t full_size = size + radius; QTC_DEF_LOCAL_BUFF(float, gradient, 128, full_size); for (size_t i = 0;i < radius;i++) { gradient.p[i] = 0; } qtcCreateShadowGradient(gradient.p + radius, size); int aligns[8][2] = { {0, -1}, {1, -1}, {1, 0}, {1, 1}, {0, 1}, {-1, 1}, {-1, 0}, {-1, -1}, }; for (int i = 0;i < 8;i++) { images[i] = qtcShadowSubImage(full_size, gradient.p, aligns[i][1], aligns[i][0], c1, c2, square, order); } QTC_FREE_LOCAL_BUFF(gradient); }