|
|
|
@ -127,27 +127,27 @@ class Interpolator {
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
class InterpolatorRound : public Interpolator {
|
|
|
|
|
class InterpolatorRound final : public Interpolator {
|
|
|
|
|
public:
|
|
|
|
|
uint8_t Interpolate5(uint8_t v0, uint8_t v1) const override;
|
|
|
|
|
uint8_t Interpolate6(uint8_t v0, uint8_t v1) const override;
|
|
|
|
|
uint8_t Interpolate8(uint8_t v0, uint8_t v1) const override;
|
|
|
|
|
virtual uint8_t Interpolate5(uint8_t v0, uint8_t v1) const override;
|
|
|
|
|
virtual uint8_t Interpolate6(uint8_t v0, uint8_t v1) const override;
|
|
|
|
|
virtual uint8_t Interpolate8(uint8_t v0, uint8_t v1) const override;
|
|
|
|
|
|
|
|
|
|
Type GetType() const noexcept override { return Type::IdealRound; }
|
|
|
|
|
virtual Type GetType() const noexcept override { return Type::IdealRound; }
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
class InterpolatorNvidia : public Interpolator {
|
|
|
|
|
class InterpolatorNvidia final : public Interpolator {
|
|
|
|
|
public:
|
|
|
|
|
uint8_t Interpolate5(uint8_t v0, uint8_t v1) const override;
|
|
|
|
|
uint8_t Interpolate6(uint8_t v0, uint8_t v1) const override;
|
|
|
|
|
virtual uint8_t Interpolate5(uint8_t v0, uint8_t v1) const override;
|
|
|
|
|
virtual uint8_t Interpolate6(uint8_t v0, uint8_t v1) const override;
|
|
|
|
|
|
|
|
|
|
uint8_t InterpolateHalf5(uint8_t v0, uint8_t v1) const override;
|
|
|
|
|
uint8_t InterpolateHalf6(uint8_t v0, uint8_t v1) const override;
|
|
|
|
|
virtual uint8_t InterpolateHalf5(uint8_t v0, uint8_t v1) const override;
|
|
|
|
|
virtual uint8_t InterpolateHalf6(uint8_t v0, uint8_t v1) const override;
|
|
|
|
|
|
|
|
|
|
std::array<Color, 4> InterpolateBC1(Color low, Color high, bool use_3color) const override;
|
|
|
|
|
virtual std::array<Color, 4> InterpolateBC1(Color low, Color high, bool use_3color) const override;
|
|
|
|
|
|
|
|
|
|
Type GetType() const noexcept override { return Type::Nvidia; }
|
|
|
|
|
bool CanInterpolate8Bit() const noexcept override { return false; }
|
|
|
|
|
virtual Type GetType() const noexcept override { return Type::Nvidia; }
|
|
|
|
|
virtual bool CanInterpolate8Bit() const noexcept override { return false; }
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
Color InterpolateColor565(const Color &c0, const Color &c1) const {
|
|
|
|
@ -159,16 +159,16 @@ class InterpolatorNvidia : public Interpolator {
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
class InterpolatorAMD : public Interpolator {
|
|
|
|
|
class InterpolatorAMD final : public Interpolator {
|
|
|
|
|
public:
|
|
|
|
|
uint8_t Interpolate5(uint8_t v0, uint8_t v1) const override;
|
|
|
|
|
uint8_t Interpolate6(uint8_t v0, uint8_t v1) const override;
|
|
|
|
|
uint8_t Interpolate8(uint8_t v0, uint8_t v1) const override;
|
|
|
|
|
virtual uint8_t Interpolate5(uint8_t v0, uint8_t v1) const override;
|
|
|
|
|
virtual uint8_t Interpolate6(uint8_t v0, uint8_t v1) const override;
|
|
|
|
|
virtual uint8_t Interpolate8(uint8_t v0, uint8_t v1) const override;
|
|
|
|
|
|
|
|
|
|
uint8_t InterpolateHalf5(uint8_t v0, uint8_t v1) const override;
|
|
|
|
|
uint8_t InterpolateHalf6(uint8_t v0, uint8_t v1) const override;
|
|
|
|
|
uint8_t InterpolateHalf8(uint8_t v0, uint8_t v1) const override;
|
|
|
|
|
virtual uint8_t InterpolateHalf5(uint8_t v0, uint8_t v1) const override;
|
|
|
|
|
virtual uint8_t InterpolateHalf6(uint8_t v0, uint8_t v1) const override;
|
|
|
|
|
virtual uint8_t InterpolateHalf8(uint8_t v0, uint8_t v1) const override;
|
|
|
|
|
|
|
|
|
|
Type GetType() const noexcept override { return Type::AMD; }
|
|
|
|
|
virtual Type GetType() const noexcept override { return Type::AMD; }
|
|
|
|
|
};
|
|
|
|
|
} // namespace quicktex::s3tc
|