Merge pull request #29587 from Calinou/remove-hq2x
Remove HQ2X and the `Image.expand_2x_hq2x()` method
This commit is contained in:
commit
2fa795dea9
|
@ -257,12 +257,6 @@ Comment: FastLZ
|
||||||
Copyright: 2005-2020, Ariya Hidayat
|
Copyright: 2005-2020, Ariya Hidayat
|
||||||
License: Expat
|
License: Expat
|
||||||
|
|
||||||
Files: ./thirdparty/misc/hq2x.cpp
|
|
||||||
./thirdparty/misc/hq2x.h
|
|
||||||
Comment: hq2x implementation
|
|
||||||
Copyright: 2016, Bruno Ribeiro
|
|
||||||
License: Apache-2.0
|
|
||||||
|
|
||||||
Files: ./thirdparty/misc/ifaddrs-android.cc
|
Files: ./thirdparty/misc/ifaddrs-android.cc
|
||||||
./thirdparty/misc/ifaddrs-android.h
|
./thirdparty/misc/ifaddrs-android.h
|
||||||
Comment: libjingle
|
Comment: libjingle
|
||||||
|
@ -334,7 +328,7 @@ License: Zlib
|
||||||
|
|
||||||
Files: ./thirdparty/rvo2/
|
Files: ./thirdparty/rvo2/
|
||||||
Comment: RVO2
|
Comment: RVO2
|
||||||
Copyright: 2016, University of North Carolina at Chapel Hill
|
Copyright: 2016, University of North Carolina at Chapel Hill
|
||||||
License: Apache 2.0
|
License: Apache 2.0
|
||||||
|
|
||||||
Files: ./thirdparty/squish/
|
Files: ./thirdparty/squish/
|
||||||
|
|
|
@ -52,7 +52,6 @@ thirdparty_misc_sources = [
|
||||||
"r128.c",
|
"r128.c",
|
||||||
"smaz.c",
|
"smaz.c",
|
||||||
# C++ sources
|
# C++ sources
|
||||||
"hq2x.cpp",
|
|
||||||
"pcg.cpp",
|
"pcg.cpp",
|
||||||
"triangulator.cpp",
|
"triangulator.cpp",
|
||||||
"clipper.cpp",
|
"clipper.cpp",
|
||||||
|
|
|
@ -37,8 +37,6 @@
|
||||||
#include "core/os/copymem.h"
|
#include "core/os/copymem.h"
|
||||||
#include "core/print_string.h"
|
#include "core/print_string.h"
|
||||||
|
|
||||||
#include "thirdparty/misc/hq2x.h"
|
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
const char *Image::format_names[Image::FORMAT_MAX] = {
|
const char *Image::format_names[Image::FORMAT_MAX] = {
|
||||||
|
@ -1445,47 +1443,6 @@ static void _generate_po2_mipmap(const Component *p_src, Component *p_dst, uint3
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Image::expand_x2_hq2x() {
|
|
||||||
ERR_FAIL_COND(!_can_modify(format));
|
|
||||||
|
|
||||||
bool used_mipmaps = has_mipmaps();
|
|
||||||
if (used_mipmaps) {
|
|
||||||
clear_mipmaps();
|
|
||||||
}
|
|
||||||
|
|
||||||
Format current = format;
|
|
||||||
|
|
||||||
if (current != FORMAT_RGBA8) {
|
|
||||||
convert(FORMAT_RGBA8);
|
|
||||||
}
|
|
||||||
|
|
||||||
Vector<uint8_t> dest;
|
|
||||||
dest.resize(width * 2 * height * 2 * 4);
|
|
||||||
|
|
||||||
{
|
|
||||||
const uint8_t *r = data.ptr();
|
|
||||||
uint8_t *w = dest.ptrw();
|
|
||||||
|
|
||||||
ERR_FAIL_COND(!r);
|
|
||||||
|
|
||||||
hq2x_resize((const uint32_t *)r, width, height, (uint32_t *)w);
|
|
||||||
}
|
|
||||||
|
|
||||||
width *= 2;
|
|
||||||
height *= 2;
|
|
||||||
data = dest;
|
|
||||||
|
|
||||||
if (current != FORMAT_RGBA8) {
|
|
||||||
convert(current);
|
|
||||||
}
|
|
||||||
|
|
||||||
// FIXME: This is likely meant to use "used_mipmaps" as defined above, but if we do,
|
|
||||||
// we end up with a regression: GH-22747
|
|
||||||
if (mipmaps) {
|
|
||||||
generate_mipmaps();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void Image::shrink_x2() {
|
void Image::shrink_x2() {
|
||||||
ERR_FAIL_COND(data.size() == 0);
|
ERR_FAIL_COND(data.size() == 0);
|
||||||
|
|
||||||
|
@ -3047,7 +3004,6 @@ void Image::_bind_methods() {
|
||||||
ClassDB::bind_method(D_METHOD("resize_to_po2", "square"), &Image::resize_to_po2, DEFVAL(false));
|
ClassDB::bind_method(D_METHOD("resize_to_po2", "square"), &Image::resize_to_po2, DEFVAL(false));
|
||||||
ClassDB::bind_method(D_METHOD("resize", "width", "height", "interpolation"), &Image::resize, DEFVAL(INTERPOLATE_BILINEAR));
|
ClassDB::bind_method(D_METHOD("resize", "width", "height", "interpolation"), &Image::resize, DEFVAL(INTERPOLATE_BILINEAR));
|
||||||
ClassDB::bind_method(D_METHOD("shrink_x2"), &Image::shrink_x2);
|
ClassDB::bind_method(D_METHOD("shrink_x2"), &Image::shrink_x2);
|
||||||
ClassDB::bind_method(D_METHOD("expand_x2_hq2x"), &Image::expand_x2_hq2x);
|
|
||||||
|
|
||||||
ClassDB::bind_method(D_METHOD("crop", "width", "height"), &Image::crop);
|
ClassDB::bind_method(D_METHOD("crop", "width", "height"), &Image::crop);
|
||||||
ClassDB::bind_method(D_METHOD("flip_x"), &Image::flip_x);
|
ClassDB::bind_method(D_METHOD("flip_x"), &Image::flip_x);
|
||||||
|
|
|
@ -235,7 +235,6 @@ public:
|
||||||
void resize_to_po2(bool p_square = false);
|
void resize_to_po2(bool p_square = false);
|
||||||
void resize(int p_width, int p_height, Interpolation p_interpolation = INTERPOLATE_BILINEAR);
|
void resize(int p_width, int p_height, Interpolation p_interpolation = INTERPOLATE_BILINEAR);
|
||||||
void shrink_x2();
|
void shrink_x2();
|
||||||
void expand_x2_hq2x();
|
|
||||||
bool is_size_po2() const;
|
bool is_size_po2() const;
|
||||||
/**
|
/**
|
||||||
* Crop the image to a specific size, if larger, then the image is filled by black
|
* Crop the image to a specific size, if larger, then the image is filled by black
|
||||||
|
|
|
@ -190,13 +190,6 @@
|
||||||
<description>
|
<description>
|
||||||
</description>
|
</description>
|
||||||
</method>
|
</method>
|
||||||
<method name="expand_x2_hq2x">
|
|
||||||
<return type="void">
|
|
||||||
</return>
|
|
||||||
<description>
|
|
||||||
Stretches the image and enlarges it by a factor of 2. No interpolation is done.
|
|
||||||
</description>
|
|
||||||
</method>
|
|
||||||
<method name="fill">
|
<method name="fill">
|
||||||
<return type="void">
|
<return type="void">
|
||||||
</return>
|
</return>
|
||||||
|
|
|
@ -52,20 +52,9 @@ static Ref<StyleBoxTexture> make_stylebox(T p_src, float p_left, float p_top, fl
|
||||||
} else {
|
} else {
|
||||||
texture = Ref<ImageTexture>(memnew(ImageTexture));
|
texture = Ref<ImageTexture>(memnew(ImageTexture));
|
||||||
Ref<Image> img = memnew(Image(p_src));
|
Ref<Image> img = memnew(Image(p_src));
|
||||||
|
const Size2 orig_size = Size2(img->get_width(), img->get_height());
|
||||||
if (scale > 1) {
|
img->convert(Image::FORMAT_RGBA8);
|
||||||
Size2 orig_size = Size2(img->get_width(), img->get_height());
|
img->resize(orig_size.x * scale, orig_size.y * scale);
|
||||||
|
|
||||||
img->convert(Image::FORMAT_RGBA8);
|
|
||||||
img->expand_x2_hq2x();
|
|
||||||
if (scale != 2.0) {
|
|
||||||
img->resize(orig_size.x * scale, orig_size.y * scale);
|
|
||||||
}
|
|
||||||
} else if (scale < 1) {
|
|
||||||
Size2 orig_size = Size2(img->get_width(), img->get_height());
|
|
||||||
img->convert(Image::FORMAT_RGBA8);
|
|
||||||
img->resize(orig_size.x * scale, orig_size.y * scale);
|
|
||||||
}
|
|
||||||
|
|
||||||
texture->create_from_image(img);
|
texture->create_from_image(img);
|
||||||
(*tex_cache)[p_src] = texture;
|
(*tex_cache)[p_src] = texture;
|
||||||
|
@ -98,19 +87,9 @@ template <class T>
|
||||||
static Ref<Texture2D> make_icon(T p_src) {
|
static Ref<Texture2D> make_icon(T p_src) {
|
||||||
Ref<ImageTexture> texture(memnew(ImageTexture));
|
Ref<ImageTexture> texture(memnew(ImageTexture));
|
||||||
Ref<Image> img = memnew(Image(p_src));
|
Ref<Image> img = memnew(Image(p_src));
|
||||||
if (scale > 1) {
|
const Size2 orig_size = Size2(img->get_width(), img->get_height());
|
||||||
Size2 orig_size = Size2(img->get_width(), img->get_height());
|
img->convert(Image::FORMAT_RGBA8);
|
||||||
|
img->resize(orig_size.x * scale, orig_size.y * scale);
|
||||||
img->convert(Image::FORMAT_RGBA8);
|
|
||||||
img->expand_x2_hq2x();
|
|
||||||
if (scale != 2.0) {
|
|
||||||
img->resize(orig_size.x * scale, orig_size.y * scale);
|
|
||||||
}
|
|
||||||
} else if (scale < 1) {
|
|
||||||
Size2 orig_size = Size2(img->get_width(), img->get_height());
|
|
||||||
img->convert(Image::FORMAT_RGBA8);
|
|
||||||
img->resize(orig_size.x * scale, orig_size.y * scale);
|
|
||||||
}
|
|
||||||
texture->create_from_image(img);
|
texture->create_from_image(img);
|
||||||
|
|
||||||
return texture;
|
return texture;
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,19 +0,0 @@
|
||||||
#ifndef HQ2X_H
|
|
||||||
#define HQ2X_H
|
|
||||||
|
|
||||||
#include "core/typedefs.h"
|
|
||||||
|
|
||||||
|
|
||||||
uint32_t *hq2x_resize(
|
|
||||||
const uint32_t *image,
|
|
||||||
uint32_t width,
|
|
||||||
uint32_t height,
|
|
||||||
uint32_t *output,
|
|
||||||
uint32_t trY = 0x30,
|
|
||||||
uint32_t trU = 0x07,
|
|
||||||
uint32_t trV = 0x06,
|
|
||||||
uint32_t trA = 0x50,
|
|
||||||
bool wrapX = false,
|
|
||||||
bool wrapY = false );
|
|
||||||
|
|
||||||
#endif // HQ2X_H
|
|
Loading…
Reference in New Issue