Skip to content
This repository was archived by the owner on Sep 29, 2025. It is now read-only.

Commit ed99a4b

Browse files
authored
Merge pull request #1644 from reicast/skmp/revert-stb-merge
Revert "Merge pull request #1616 from davidgfnet/stb"
2 parents 4a05bfe + fa4aa69 commit ed99a4b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+39576
-9288
lines changed

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ file(GLOB chdr_SRCS ${d_deps}/chdr/*.c)
122122
file(GLOB lzma_SRCS ${d_deps}/lzma/*.c)
123123
file(GLOB lz_SRCS ${d_deps}/zlib/*.c)
124124
file(GLOB lzip_SRCS ${d_deps}/libzip/*.c)
125-
file(GLOB lpng_SRCS ${d_deps}/stb/*.c)
125+
file(GLOB lpng_SRCS ${d_deps}/libpng/*.c)
126126
file(GLOB lelf_SRCS ${d_deps}/libelf/el*.cpp)
127127
file(GLOB crypt_SRCS ${d_deps}/crypto/*.cpp)
128128
file(GLOB imgui_SRCS ${d_deps}/imgui/*.cpp)

core/core.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ VERSION_HEADER := $(RZDCY_SRC_DIR)/version.h
1010
RZDCY_MODULES := cfg/ hw/arm7/ hw/aica/ hw/holly/ hw/ hw/gdrom/ hw/maple/ \
1111
hw/mem/ hw/pvr/ hw/sh4/ hw/sh4/interpr/ hw/sh4/modules/ plugins/ profiler/ oslib/ \
1212
hw/extdev/ hw/arm/ hw/naomi/ imgread/ ./ deps/coreio/ deps/zlib/ deps/chdr/ deps/crypto/ \
13-
deps/libelf/ deps/chdpsr/ arm_emitter/ rend/ reios/ deps/stb/ deps/xbrz/ \
13+
deps/libelf/ deps/chdpsr/ arm_emitter/ rend/ reios/ deps/libpng/ deps/xbrz/ \
1414
deps/xxhash/ deps/libzip/ deps/imgui/ archive/ input/
1515

1616
ifdef WEBUI

core/deps/libpng/arm/arm_init.c

Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
2+
/* arm_init.c - NEON optimised filter functions
3+
*
4+
* Copyright (c) 2014,2016 Glenn Randers-Pehrson
5+
* Written by Mans Rullgard, 2011.
6+
* Last changed in libpng 1.6.22 [May 26, 2016]
7+
*
8+
* This code is released under the libpng license.
9+
* For conditions of distribution and use, see the disclaimer
10+
* and license in png.h
11+
*/
12+
/* Below, after checking __linux__, various non-C90 POSIX 1003.1 functions are
13+
* called.
14+
*/
15+
#define _POSIX_SOURCE 1
16+
17+
#include "../pngpriv.h"
18+
19+
#ifdef PNG_READ_SUPPORTED
20+
21+
#if PNG_ARM_NEON_OPT > 0
22+
#ifdef PNG_ARM_NEON_CHECK_SUPPORTED /* Do run-time checks */
23+
/* WARNING: it is strongly recommended that you do not build libpng with
24+
* run-time checks for CPU features if at all possible. In the case of the ARM
25+
* NEON instructions there is no processor-specific way of detecting the
26+
* presence of the required support, therefore run-time detection is extremely
27+
* OS specific.
28+
*
29+
* You may set the macro PNG_ARM_NEON_FILE to the file name of file containing
30+
* a fragment of C source code which defines the png_have_neon function. There
31+
* are a number of implementations in contrib/arm-neon, but the only one that
32+
* has partial support is contrib/arm-neon/linux.c - a generic Linux
33+
* implementation which reads /proc/cpufino.
34+
*/
35+
#ifndef PNG_ARM_NEON_FILE
36+
# ifdef __linux__
37+
# define PNG_ARM_NEON_FILE "contrib/arm-neon/linux.c"
38+
# endif
39+
#endif
40+
41+
#ifdef PNG_ARM_NEON_FILE
42+
43+
#include <signal.h> /* for sig_atomic_t */
44+
static int png_have_neon(png_structp png_ptr);
45+
#include PNG_ARM_NEON_FILE
46+
47+
#else /* PNG_ARM_NEON_FILE */
48+
# error "PNG_ARM_NEON_FILE undefined: no support for run-time ARM NEON checks"
49+
#endif /* PNG_ARM_NEON_FILE */
50+
#endif /* PNG_ARM_NEON_CHECK_SUPPORTED */
51+
52+
#ifndef PNG_ALIGNED_MEMORY_SUPPORTED
53+
# error "ALIGNED_MEMORY is required; set: -DPNG_ALIGNED_MEMORY_SUPPORTED"
54+
#endif
55+
56+
void
57+
png_init_filter_functions_neon(png_structp pp, unsigned int bpp)
58+
{
59+
/* The switch statement is compiled in for ARM_NEON_API, the call to
60+
* png_have_neon is compiled in for ARM_NEON_CHECK. If both are defined
61+
* the check is only performed if the API has not set the NEON option on
62+
* or off explicitly. In this case the check controls what happens.
63+
*
64+
* If the CHECK is not compiled in and the option is UNSET the behavior prior
65+
* to 1.6.7 was to use the NEON code - this was a bug caused by having the
66+
* wrong order of the 'ON' and 'default' cases. UNSET now defaults to OFF,
67+
* as documented in png.h
68+
*/
69+
png_debug(1, "in png_init_filter_functions_neon");
70+
#ifdef PNG_ARM_NEON_API_SUPPORTED
71+
switch ((pp->options >> PNG_ARM_NEON) & 3)
72+
{
73+
case PNG_OPTION_UNSET:
74+
/* Allow the run-time check to execute if it has been enabled -
75+
* thus both API and CHECK can be turned on. If it isn't supported
76+
* this case will fall through to the 'default' below, which just
77+
* returns.
78+
*/
79+
#endif /* PNG_ARM_NEON_API_SUPPORTED */
80+
#ifdef PNG_ARM_NEON_CHECK_SUPPORTED
81+
{
82+
static volatile sig_atomic_t no_neon = -1; /* not checked */
83+
84+
if (no_neon < 0)
85+
no_neon = !png_have_neon(pp);
86+
87+
if (no_neon)
88+
return;
89+
}
90+
#ifdef PNG_ARM_NEON_API_SUPPORTED
91+
break;
92+
#endif
93+
#endif /* PNG_ARM_NEON_CHECK_SUPPORTED */
94+
95+
#ifdef PNG_ARM_NEON_API_SUPPORTED
96+
default: /* OFF or INVALID */
97+
return;
98+
99+
case PNG_OPTION_ON:
100+
/* Option turned on */
101+
break;
102+
}
103+
#endif
104+
105+
/* IMPORTANT: any new external functions used here must be declared using
106+
* PNG_INTERNAL_FUNCTION in ../pngpriv.h. This is required so that the
107+
* 'prefix' option to configure works:
108+
*
109+
* ./configure --with-libpng-prefix=foobar_
110+
*
111+
* Verify you have got this right by running the above command, doing a build
112+
* and examining pngprefix.h; it must contain a #define for every external
113+
* function you add. (Notice that this happens automatically for the
114+
* initialization function.)
115+
*/
116+
pp->read_filter[PNG_FILTER_VALUE_UP-1] = png_read_filter_row_up_neon;
117+
118+
if (bpp == 3)
119+
{
120+
pp->read_filter[PNG_FILTER_VALUE_SUB-1] = png_read_filter_row_sub3_neon;
121+
pp->read_filter[PNG_FILTER_VALUE_AVG-1] = png_read_filter_row_avg3_neon;
122+
pp->read_filter[PNG_FILTER_VALUE_PAETH-1] =
123+
png_read_filter_row_paeth3_neon;
124+
}
125+
126+
else if (bpp == 4)
127+
{
128+
pp->read_filter[PNG_FILTER_VALUE_SUB-1] = png_read_filter_row_sub4_neon;
129+
pp->read_filter[PNG_FILTER_VALUE_AVG-1] = png_read_filter_row_avg4_neon;
130+
pp->read_filter[PNG_FILTER_VALUE_PAETH-1] =
131+
png_read_filter_row_paeth4_neon;
132+
}
133+
}
134+
#endif /* PNG_ARM_NEON_OPT > 0 */
135+
#endif /* READ */

0 commit comments

Comments
 (0)