mirror of https://github.com/adamdruppe/arsd.git
Remove janky faux-linear scaler
This commit is contained in:
parent
122e60da83
commit
f2c15f0e31
|
@ -2957,15 +2957,6 @@ enum ScalingFilter {
|
||||||
+/
|
+/
|
||||||
bilinear,
|
bilinear,
|
||||||
|
|
||||||
/++
|
|
||||||
Unweighted linear interpolation
|
|
||||||
|
|
||||||
$(TIP
|
|
||||||
Visual impression: “blocky”, “pixelated”
|
|
||||||
)
|
|
||||||
+/
|
|
||||||
fauxLinear,
|
|
||||||
|
|
||||||
///
|
///
|
||||||
linear = bilinear,
|
linear = bilinear,
|
||||||
}
|
}
|
||||||
|
@ -3038,7 +3029,7 @@ private void scaleToImpl(ScalingFilter filter)(const Pixmap source, Pixmap targe
|
||||||
}
|
}
|
||||||
|
|
||||||
// ==== Bilinear ====
|
// ==== Bilinear ====
|
||||||
static if ((filter == ScalingFilter.bilinear) || (filter == ScalingFilter.fauxLinear)) {
|
static if (filter == ScalingFilter.bilinear) {
|
||||||
void scaleToLinearImpl(ScalingDirection directionX, ScalingDirection directionY)() {
|
void scaleToLinearImpl(ScalingDirection directionX, ScalingDirection directionY)() {
|
||||||
|
|
||||||
alias InterPixel = ulong[4];
|
alias InterPixel = ulong[4];
|
||||||
|
@ -3171,19 +3162,6 @@ private void scaleToImpl(ScalingFilter filter)(const Pixmap source, Pixmap targe
|
||||||
|
|
||||||
enum idxTL = 0, idxTR = 1, idxBL = 2, idxBR = 3;
|
enum idxTL = 0, idxTR = 1, idxBL = 2, idxBR = 3;
|
||||||
|
|
||||||
// ====== Faux bilinear ======
|
|
||||||
static if (filter == ScalingFilter.fauxLinear) {
|
|
||||||
auto pxInt = Pixel(0, 0, 0, 0);
|
|
||||||
|
|
||||||
foreach (immutable ib, ref c; pxInt.components) {
|
|
||||||
uint sum = 0;
|
|
||||||
foreach (const pxNeigh; pxNeighs) {
|
|
||||||
sum += (() @trusted => pxNeigh.components.ptr[ib])();
|
|
||||||
}
|
|
||||||
c = (sum >> 2).castTo!ubyte;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// ====== Proper bilinear (up) + Avg (down) ======
|
// ====== Proper bilinear (up) + Avg (down) ======
|
||||||
static if (filter == ScalingFilter.bilinear) {
|
static if (filter == ScalingFilter.bilinear) {
|
||||||
auto pxInt = Pixel(0, 0, 0, 0);
|
auto pxInt = Pixel(0, 0, 0, 0);
|
||||||
|
|
|
@ -630,7 +630,6 @@ final class OpenGl3PixmapRenderer : PixmapRenderer {
|
||||||
|
|
||||||
final switch (_poc.config.renderer.filter) with (ScalingFilter) {
|
final switch (_poc.config.renderer.filter) with (ScalingFilter) {
|
||||||
case nearest:
|
case nearest:
|
||||||
case fauxLinear:
|
|
||||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
|
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
|
||||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
|
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
|
||||||
break;
|
break;
|
||||||
|
@ -740,7 +739,6 @@ final class OpenGl1PixmapRenderer : PixmapRenderer {
|
||||||
|
|
||||||
final switch (_poc.config.renderer.filter) with (ScalingFilter) {
|
final switch (_poc.config.renderer.filter) with (ScalingFilter) {
|
||||||
case nearest:
|
case nearest:
|
||||||
case fauxLinear:
|
|
||||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
|
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
|
||||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
|
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue