Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 820479e

Browse filesBrowse files
committed
Decrease generated code size
1 parent 9148c7f commit 820479e
Copy full SHA for 820479e

File tree

Expand file treeCollapse file tree

1 file changed

+77
-70
lines changed
Filter options
Expand file treeCollapse file tree

1 file changed

+77
-70
lines changed

‎src/_image_resample.h

Copy file name to clipboardExpand all lines: src/_image_resample.h
+77-70Lines changed: 77 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -778,6 +778,82 @@ struct resample_params_t {
778778
};
779779

780780

781+
static void get_filter(const resample_params_t &params,
782+
agg::image_filter_lut &filter)
783+
{
784+
switch (params.interpolation) {
785+
case NEAREST:
786+
case _n_interpolation:
787+
// Never should get here. Here to silence compiler warnings.
788+
break;
789+
790+
case HANNING:
791+
filter.calculate(agg::image_filter_hanning(), params.norm);
792+
break;
793+
794+
case HAMMING:
795+
filter.calculate(agg::image_filter_hamming(), params.norm);
796+
break;
797+
798+
case HERMITE:
799+
filter.calculate(agg::image_filter_hermite(), params.norm);
800+
break;
801+
802+
case BILINEAR:
803+
filter.calculate(agg::image_filter_bilinear(), params.norm);
804+
break;
805+
806+
case BICUBIC:
807+
filter.calculate(agg::image_filter_bicubic(), params.norm);
808+
break;
809+
810+
case SPLINE16:
811+
filter.calculate(agg::image_filter_spline16(), params.norm);
812+
break;
813+
814+
case SPLINE36:
815+
filter.calculate(agg::image_filter_spline36(), params.norm);
816+
break;
817+
818+
case KAISER:
819+
filter.calculate(agg::image_filter_kaiser(), params.norm);
820+
break;
821+
822+
case QUADRIC:
823+
filter.calculate(agg::image_filter_quadric(), params.norm);
824+
break;
825+
826+
case CATROM:
827+
filter.calculate(agg::image_filter_catrom(), params.norm);
828+
break;
829+
830+
case GAUSSIAN:
831+
filter.calculate(agg::image_filter_gaussian(), params.norm);
832+
break;
833+
834+
case BESSEL:
835+
filter.calculate(agg::image_filter_bessel(), params.norm);
836+
break;
837+
838+
case MITCHELL:
839+
filter.calculate(agg::image_filter_mitchell(), params.norm);
840+
break;
841+
842+
case SINC:
843+
filter.calculate(agg::image_filter_sinc(params.radius), params.norm);
844+
break;
845+
846+
case LANCZOS:
847+
filter.calculate(agg::image_filter_lanczos(params.radius), params.norm);
848+
break;
849+
850+
case BLACKMAN:
851+
filter.calculate(agg::image_filter_blackman(params.radius), params.norm);
852+
break;
853+
}
854+
}
855+
856+
781857
template<class T>
782858
void resample(
783859
const T *input, int in_width, int in_height,
@@ -878,76 +954,7 @@ void resample(
878954
}
879955
} else {
880956
agg::image_filter_lut filter;
881-
switch (params.interpolation) {
882-
case NEAREST:
883-
case _n_interpolation:
884-
// Never should get here. Here to silence compiler warnings.
885-
break;
886-
887-
case HANNING:
888-
filter.calculate(agg::image_filter_hanning(), params.norm);
889-
break;
890-
891-
case HAMMING:
892-
filter.calculate(agg::image_filter_hamming(), params.norm);
893-
break;
894-
895-
case HERMITE:
896-
filter.calculate(agg::image_filter_hermite(), params.norm);
897-
break;
898-
899-
case BILINEAR:
900-
filter.calculate(agg::image_filter_bilinear(), params.norm);
901-
break;
902-
903-
case BICUBIC:
904-
filter.calculate(agg::image_filter_bicubic(), params.norm);
905-
break;
906-
907-
case SPLINE16:
908-
filter.calculate(agg::image_filter_spline16(), params.norm);
909-
break;
910-
911-
case SPLINE36:
912-
filter.calculate(agg::image_filter_spline36(), params.norm);
913-
break;
914-
915-
case KAISER:
916-
filter.calculate(agg::image_filter_kaiser(), params.norm);
917-
break;
918-
919-
case QUADRIC:
920-
filter.calculate(agg::image_filter_quadric(), params.norm);
921-
break;
922-
923-
case CATROM:
924-
filter.calculate(agg::image_filter_catrom(), params.norm);
925-
break;
926-
927-
case GAUSSIAN:
928-
filter.calculate(agg::image_filter_gaussian(), params.norm);
929-
break;
930-
931-
case BESSEL:
932-
filter.calculate(agg::image_filter_bessel(), params.norm);
933-
break;
934-
935-
case MITCHELL:
936-
filter.calculate(agg::image_filter_mitchell(), params.norm);
937-
break;
938-
939-
case SINC:
940-
filter.calculate(agg::image_filter_sinc(params.radius), params.norm);
941-
break;
942-
943-
case LANCZOS:
944-
filter.calculate(agg::image_filter_lanczos(params.radius), params.norm);
945-
break;
946-
947-
case BLACKMAN:
948-
filter.calculate(agg::image_filter_blackman(params.radius), params.norm);
949-
break;
950-
}
957+
get_filter(params, filter);
951958

952959
if (params.is_affine && params.resample) {
953960
typedef typename type_mapping_t::template span_gen_affine_type<image_accessor_t>::type span_gen_t;

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.