Files
hot-step-cpp-ROCm/engine/vendor/vst3sdk/vstgui4/vstgui/lib/cgradient.cpp
T
2026-08-16 18:24:52 +07:00

66 lines
2.0 KiB
C++

// This file is part of VSTGUI. It is subject to the license terms
// in the LICENSE file found in the top-level directory of this
// distribution and at http://github.com/steinbergmedia/vstgui/LICENSE
#include "cgradient.h"
#include "platform/iplatformgradient.h"
#include "platform/platformfactory.h"
namespace VSTGUI {
//-----------------------------------------------------------------------------
CGradient* CGradient::create (const GradientColorStopMap& colorStopMap)
{
if (auto pg = getPlatformFactory ().createGradient ())
{
pg->setColorStops (colorStopMap);
return new CGradient (std::move (pg));
}
return nullptr;
}
//-----------------------------------------------------------------------------
CGradient* CGradient::create (double color1Start, double color2Start, const CColor& color1,
const CColor& color2)
{
GradientColorStopMap map;
map.emplace (color1Start, color1);
map.emplace (color2Start, color2);
return create (map);
}
//-----------------------------------------------------------------------------
CGradient::CGradient (PlatformGradientPtr&& platformGradient)
: platformGradient (std::move (platformGradient))
{
}
//-----------------------------------------------------------------------------
CGradient::~CGradient () noexcept = default;
//-----------------------------------------------------------------------------
void CGradient::addColorStop (double start, const CColor& color)
{
addColorStop (std::make_pair (start, color));
}
//-----------------------------------------------------------------------------
void CGradient::addColorStop (const GradientColorStop& colorStop)
{
platformGradient->addColorStop (colorStop);
}
//-----------------------------------------------------------------------------
const GradientColorStopMap& CGradient::getColorStops () const
{
return platformGradient->getColorStops ();
}
//-----------------------------------------------------------------------------
const PlatformGradientPtr& CGradient::getPlatformGradient () const
{
return platformGradient;
}
} // VSTGUI