build FunKey-OS using FunKey SDK
Signed-off-by: Michel-FK <michel.stempin@funkey-project.com>
This commit is contained in:
parent
58d32976ee
commit
866ee950c0
|
@ -1,7 +1,7 @@
|
|||
#
|
||||
# Automatically generated make config: don't edit
|
||||
# Busybox version: 1.32.0
|
||||
# Thu Dec 24 11:17:18 2020
|
||||
# Sun Dec 27 00:26:32 2020
|
||||
#
|
||||
CONFIG_HAVE_DOT_CONFIG=y
|
||||
|
||||
|
|
|
@ -6,13 +6,13 @@ BR2_CCACHE=y
|
|||
BR2_OPTIMIZE_FAST=y
|
||||
BR2_SHARED_STATIC_LIBS=y
|
||||
BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_FUNKEY_PATH)/board/funkey/patches"
|
||||
BR2_TOOLCHAIN_BUILDROOT_VENDOR="funkey"
|
||||
BR2_TOOLCHAIN_BUILDROOT_MUSL=y
|
||||
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_14=y
|
||||
BR2_BINUTILS_VERSION_2_35_X=y
|
||||
BR2_GCC_VERSION_10_X=y
|
||||
BR2_TOOLCHAIN_BUILDROOT_CXX=y
|
||||
BR2_GCC_ENABLE_LTO=y
|
||||
BR2_TOOLCHAIN_EXTERNAL=y
|
||||
BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y
|
||||
BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y
|
||||
BR2_TOOLCHAIN_EXTERNAL_URL="https://github.com/FunKey-Project/FunKey-OS/releases/download/FunKey-OS-1.1.0/FunKey-sdk-1.1.0.tar.gz"
|
||||
BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_14=y
|
||||
BR2_TOOLCHAIN_EXTERNAL_CUSTOM_MUSL=y
|
||||
BR2_TOOLCHAIN_EXTERNAL_CXX=y
|
||||
BR2_TARGET_OPTIMIZATION="-fno-PIC -march=armv7-a+neon-vfpv4 -mtune=cortex-a7 -mfpu=neon-vfpv4 -mvectorize-with-neon-quad"
|
||||
BR2_TARGET_GENERIC_HOSTNAME="FunKey"
|
||||
BR2_TARGET_GENERIC_ISSUE="Welcome to Buildroot for the FunKey"
|
||||
|
|
35
Makefile
35
Makefile
|
@ -57,6 +57,28 @@ fun: buildroot Recovery/output/.config FunKey/output/.config
|
|||
@$(call MESSAGE,"Making fun in FunKey")
|
||||
@$(BRMAKE) BR2_EXTERNAL=../FunKey O=../FunKey/output
|
||||
|
||||
sdk: buildroot SDK/output/.config
|
||||
@$(call MESSAGE,"Making FunKey SDK")
|
||||
@$(BRMAKE) BR2_EXTERNAL=../SDK O=../SDK/output prepare-sdk
|
||||
@$(call MESSAGE,"Generating SDK tarball")
|
||||
@cd SDK/output/host; \
|
||||
PWD=$(shell pwd); \
|
||||
export LC_ALL=C; \
|
||||
SDK=FunKey-sdk-$(shell cat FunKey/board/funkey/rootfs-overlay/etc/sw-versions | cut -f 2); \
|
||||
grep -lr "$(shell pwd)/SDK/output/host" . | while read -r FILE ; do \
|
||||
if file -b --mime-type "$${FILE}" | grep -q '^text/'; then \
|
||||
sed -i "s|$(shell pwd)/SDK/output/host|/opt/$${SDK}|g" "$${FILE}"; \
|
||||
fi; \
|
||||
done; \
|
||||
cd $(shell pwd); \
|
||||
tar czf "images/$${SDK}.tar.gz" \
|
||||
--owner=0 --group=0 --numeric-owner \
|
||||
--transform="s#^$(patsubst /%,%,$(shell pwd))/SDK/output/host#$${SDK}#" \
|
||||
-C / "$(patsubst /%,%,$(shell pwd))/SDK/output/host"; \
|
||||
rm -f download/toolchain-external-custom/$${SDK}.tar.gz; \
|
||||
mkdir -p download/toolchain-external-custom; \
|
||||
ln -s ../../images/$${SDK}.tar.gz download/toolchain-external-custom/
|
||||
|
||||
FunKey/%: FunKey/output/.config
|
||||
@$(call MESSAGE,"Making $(notdir $@) in $(subst /,,$(dir $@))")
|
||||
@$(BR) BR2_EXTERNAL=../FunKey O=../FunKey/output $(notdir $@)
|
||||
|
@ -65,12 +87,17 @@ Recovery/%: Recovery/output/.config
|
|||
@$(call MESSAGE,"Making $(notdir $@) in $(subst /,,$(dir $@))")
|
||||
@$(BR) BR2_EXTERNAL=../Recovery O=../Recovery/output $(notdir $@)
|
||||
|
||||
SDK/%: SDK/output/.config
|
||||
@$(call MESSAGE,"Making $(notdir $@) in $(subst /,,$(dir $@))")
|
||||
@$(BR) BR2_EXTERNAL=../SDK O=../SDK/output $(notdir $@)
|
||||
|
||||
#%: FunKey/output/.config
|
||||
# @$(call MESSAGE,"Making $@ in FunKey")
|
||||
# @$(BR) BR2_EXTERNAL=../FunKey O=../FunKey/output $@
|
||||
|
||||
source:
|
||||
@$(call MESSAGE,"Getting sources")
|
||||
@$(BR) BR2_EXTERNAL=../SDK O=../SDK/output source
|
||||
@$(BR) BR2_EXTERNAL=../Recovery O=../Recovery/output source
|
||||
@$(BR) BR2_EXTERNAL=../FunKey O=../FunKey/output source
|
||||
|
||||
|
@ -108,6 +135,8 @@ update: fun
|
|||
|
||||
defconfig:
|
||||
@$(call MESSAGE,"Updating default configs")
|
||||
@$(call MESSAGE,"Updating default configs in SDK")
|
||||
@$(BR) BR2_EXTERNAL=../SDK O=../SDK/output savedefconfig
|
||||
@$(call MESSAGE,"Updating default configs in Recovery")
|
||||
@$(BR) BR2_EXTERNAL=../Recovery O=../Recovery/output savedefconfig linux-update-defconfig uboot-update-defconfig busybox-update-config
|
||||
@$(call MESSAGE,"Updating default configs in FunKey")
|
||||
|
@ -115,6 +144,7 @@ defconfig:
|
|||
|
||||
clean:
|
||||
@$(call MESSAGE,"Clean everything")
|
||||
@$(BR) BR2_EXTERNAL=../SDK O=../SDK/output distclean
|
||||
@$(BR) BR2_EXTERNAL=../Recovery O=../Recovery/output distclean
|
||||
@$(BR) BR2_EXTERNAL=../FunKey O=../FunKey/output distclean
|
||||
@rm -f br.log
|
||||
|
@ -132,3 +162,8 @@ Recovery/output/.config:
|
|||
@$(call MESSAGE,"Configure Recovery")
|
||||
@mkdir -p Recovery/board/funkey/patches
|
||||
@$(BR) BR2_EXTERNAL=../Recovery O=../Recovery/output recovery_defconfig
|
||||
|
||||
SDK/output/.config:
|
||||
@$(call MESSAGE,"Configure SDK")
|
||||
@mkdir -p SDK/board/funkey/patches
|
||||
@$(BR) BR2_EXTERNAL=../SDK O=../SDK/output funkey_defconfig
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#
|
||||
# Automatically generated make config: don't edit
|
||||
# Busybox version: 1.32.0
|
||||
# Thu Dec 24 10:53:30 2020
|
||||
# Sun Dec 27 00:06:13 2020
|
||||
#
|
||||
CONFIG_HAVE_DOT_CONFIG=y
|
||||
|
||||
|
|
|
@ -6,13 +6,13 @@ BR2_CCACHE=y
|
|||
BR2_OPTIMIZE_FAST=y
|
||||
BR2_SHARED_STATIC_LIBS=y
|
||||
BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_RECOVERY_PATH)/board/funkey/patches"
|
||||
BR2_TOOLCHAIN_BUILDROOT_VENDOR="funkey"
|
||||
BR2_TOOLCHAIN_BUILDROOT_MUSL=y
|
||||
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_14=y
|
||||
BR2_BINUTILS_VERSION_2_35_X=y
|
||||
BR2_GCC_VERSION_10_X=y
|
||||
BR2_TOOLCHAIN_BUILDROOT_CXX=y
|
||||
BR2_GCC_ENABLE_LTO=y
|
||||
BR2_TOOLCHAIN_EXTERNAL=y
|
||||
BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y
|
||||
BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y
|
||||
BR2_TOOLCHAIN_EXTERNAL_URL="https://github.com/FunKey-Project/FunKey-OS/releases/download/FunKey-OS-1.1.0/FunKey-sdk-1.1.0.tar.gz"
|
||||
BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_14=y
|
||||
BR2_TOOLCHAIN_EXTERNAL_CUSTOM_MUSL=y
|
||||
BR2_TOOLCHAIN_EXTERNAL_CXX=y
|
||||
BR2_TARGET_OPTIMIZATION="-fno-PIC -march=armv7-a+neon-vfpv4 -mtune=cortex-a7 -mfpu=neon-vfpv4"
|
||||
BR2_TARGET_GENERIC_HOSTNAME="FunKey"
|
||||
BR2_TARGET_GENERIC_ISSUE="Welcome to Recovery Buildroot for the FunKey"
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
source "$BR2_EXTERNAL_SDK_PATH/package/dmtx-utils/Config.in"
|
||||
source "$BR2_EXTERNAL_SDK_PATH/package/libini/Config.in"
|
||||
source "$BR2_EXTERNAL_SDK_PATH/package/libopk/Config.in"
|
||||
source "$BR2_EXTERNAL_SDK_PATH/package/libxdgmime/Config.in"
|
||||
source "$BR2_EXTERNAL_SDK_PATH/package/agg/Config.in"
|
||||
source "$BR2_EXTERNAL_SDK_PATH/package/fluidlite/Config.in"
|
||||
source "$BR2_EXTERNAL_SDK_PATH/package/libmikmod/Config.in"
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,295 @@
|
|||
SDL_blit_A.c | 270 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 270 insertions(+)
|
||||
|
||||
diff --git a/src/video/SDL_blit_A.c b/src/video/SDL_blit_A.c
|
||||
index 219cdcc..d8e921e 100644
|
||||
--- a/src/video/SDL_blit_A.c
|
||||
+++ b/src/video/SDL_blit_A.c
|
||||
@@ -27,3 +34,270 @@
|
||||
+
|
||||
+/*!
|
||||
+\brief Alpha adjustment table for custom blitter.
|
||||
+
|
||||
+The table provides values for a modified, non-linear
|
||||
+transfer function which maintain brightness.
|
||||
+
|
||||
+*/
|
||||
+const unsigned int GFX_ALPHA_ADJUST_ARRAY[256] = {
|
||||
+ 0, /* 0 */
|
||||
+ 15, /* 1 */
|
||||
+ 22, /* 2 */
|
||||
+ 27, /* 3 */
|
||||
+ 31, /* 4 */
|
||||
+ 35, /* 5 */
|
||||
+ 39, /* 6 */
|
||||
+ 42, /* 7 */
|
||||
+ 45, /* 8 */
|
||||
+ 47, /* 9 */
|
||||
+ 50, /* 10 */
|
||||
+ 52, /* 11 */
|
||||
+ 55, /* 12 */
|
||||
+ 57, /* 13 */
|
||||
+ 59, /* 14 */
|
||||
+ 61, /* 15 */
|
||||
+ 63, /* 16 */
|
||||
+ 65, /* 17 */
|
||||
+ 67, /* 18 */
|
||||
+ 69, /* 19 */
|
||||
+ 71, /* 20 */
|
||||
+ 73, /* 21 */
|
||||
+ 74, /* 22 */
|
||||
+ 76, /* 23 */
|
||||
+ 78, /* 24 */
|
||||
+ 79, /* 25 */
|
||||
+ 81, /* 26 */
|
||||
+ 82, /* 27 */
|
||||
+ 84, /* 28 */
|
||||
+ 85, /* 29 */
|
||||
+ 87, /* 30 */
|
||||
+ 88, /* 31 */
|
||||
+ 90, /* 32 */
|
||||
+ 91, /* 33 */
|
||||
+ 93, /* 34 */
|
||||
+ 94, /* 35 */
|
||||
+ 95, /* 36 */
|
||||
+ 97, /* 37 */
|
||||
+ 98, /* 38 */
|
||||
+ 99, /* 39 */
|
||||
+ 100, /* 40 */
|
||||
+ 102, /* 41 */
|
||||
+ 103, /* 42 */
|
||||
+ 104, /* 43 */
|
||||
+ 105, /* 44 */
|
||||
+ 107, /* 45 */
|
||||
+ 108, /* 46 */
|
||||
+ 109, /* 47 */
|
||||
+ 110, /* 48 */
|
||||
+ 111, /* 49 */
|
||||
+ 112, /* 50 */
|
||||
+ 114, /* 51 */
|
||||
+ 115, /* 52 */
|
||||
+ 116, /* 53 */
|
||||
+ 117, /* 54 */
|
||||
+ 118, /* 55 */
|
||||
+ 119, /* 56 */
|
||||
+ 120, /* 57 */
|
||||
+ 121, /* 58 */
|
||||
+ 122, /* 59 */
|
||||
+ 123, /* 60 */
|
||||
+ 124, /* 61 */
|
||||
+ 125, /* 62 */
|
||||
+ 126, /* 63 */
|
||||
+ 127, /* 64 */
|
||||
+ 128, /* 65 */
|
||||
+ 129, /* 66 */
|
||||
+ 130, /* 67 */
|
||||
+ 131, /* 68 */
|
||||
+ 132, /* 69 */
|
||||
+ 133, /* 70 */
|
||||
+ 134, /* 71 */
|
||||
+ 135, /* 72 */
|
||||
+ 136, /* 73 */
|
||||
+ 137, /* 74 */
|
||||
+ 138, /* 75 */
|
||||
+ 139, /* 76 */
|
||||
+ 140, /* 77 */
|
||||
+ 141, /* 78 */
|
||||
+ 141, /* 79 */
|
||||
+ 142, /* 80 */
|
||||
+ 143, /* 81 */
|
||||
+ 144, /* 82 */
|
||||
+ 145, /* 83 */
|
||||
+ 146, /* 84 */
|
||||
+ 147, /* 85 */
|
||||
+ 148, /* 86 */
|
||||
+ 148, /* 87 */
|
||||
+ 149, /* 88 */
|
||||
+ 150, /* 89 */
|
||||
+ 151, /* 90 */
|
||||
+ 152, /* 91 */
|
||||
+ 153, /* 92 */
|
||||
+ 153, /* 93 */
|
||||
+ 154, /* 94 */
|
||||
+ 155, /* 95 */
|
||||
+ 156, /* 96 */
|
||||
+ 157, /* 97 */
|
||||
+ 158, /* 98 */
|
||||
+ 158, /* 99 */
|
||||
+ 159, /* 100 */
|
||||
+ 160, /* 101 */
|
||||
+ 161, /* 102 */
|
||||
+ 162, /* 103 */
|
||||
+ 162, /* 104 */
|
||||
+ 163, /* 105 */
|
||||
+ 164, /* 106 */
|
||||
+ 165, /* 107 */
|
||||
+ 165, /* 108 */
|
||||
+ 166, /* 109 */
|
||||
+ 167, /* 110 */
|
||||
+ 168, /* 111 */
|
||||
+ 168, /* 112 */
|
||||
+ 169, /* 113 */
|
||||
+ 170, /* 114 */
|
||||
+ 171, /* 115 */
|
||||
+ 171, /* 116 */
|
||||
+ 172, /* 117 */
|
||||
+ 173, /* 118 */
|
||||
+ 174, /* 119 */
|
||||
+ 174, /* 120 */
|
||||
+ 175, /* 121 */
|
||||
+ 176, /* 122 */
|
||||
+ 177, /* 123 */
|
||||
+ 177, /* 124 */
|
||||
+ 178, /* 125 */
|
||||
+ 179, /* 126 */
|
||||
+ 179, /* 127 */
|
||||
+ 180, /* 128 */
|
||||
+ 181, /* 129 */
|
||||
+ 182, /* 130 */
|
||||
+ 182, /* 131 */
|
||||
+ 183, /* 132 */
|
||||
+ 184, /* 133 */
|
||||
+ 184, /* 134 */
|
||||
+ 185, /* 135 */
|
||||
+ 186, /* 136 */
|
||||
+ 186, /* 137 */
|
||||
+ 187, /* 138 */
|
||||
+ 188, /* 139 */
|
||||
+ 188, /* 140 */
|
||||
+ 189, /* 141 */
|
||||
+ 190, /* 142 */
|
||||
+ 190, /* 143 */
|
||||
+ 191, /* 144 */
|
||||
+ 192, /* 145 */
|
||||
+ 192, /* 146 */
|
||||
+ 193, /* 147 */
|
||||
+ 194, /* 148 */
|
||||
+ 194, /* 149 */
|
||||
+ 195, /* 150 */
|
||||
+ 196, /* 151 */
|
||||
+ 196, /* 152 */
|
||||
+ 197, /* 153 */
|
||||
+ 198, /* 154 */
|
||||
+ 198, /* 155 */
|
||||
+ 199, /* 156 */
|
||||
+ 200, /* 157 */
|
||||
+ 200, /* 158 */
|
||||
+ 201, /* 159 */
|
||||
+ 201, /* 160 */
|
||||
+ 202, /* 161 */
|
||||
+ 203, /* 162 */
|
||||
+ 203, /* 163 */
|
||||
+ 204, /* 164 */
|
||||
+ 205, /* 165 */
|
||||
+ 205, /* 166 */
|
||||
+ 206, /* 167 */
|
||||
+ 206, /* 168 */
|
||||
+ 207, /* 169 */
|
||||
+ 208, /* 170 */
|
||||
+ 208, /* 171 */
|
||||
+ 209, /* 172 */
|
||||
+ 210, /* 173 */
|
||||
+ 210, /* 174 */
|
||||
+ 211, /* 175 */
|
||||
+ 211, /* 176 */
|
||||
+ 212, /* 177 */
|
||||
+ 213, /* 178 */
|
||||
+ 213, /* 179 */
|
||||
+ 214, /* 180 */
|
||||
+ 214, /* 181 */
|
||||
+ 215, /* 182 */
|
||||
+ 216, /* 183 */
|
||||
+ 216, /* 184 */
|
||||
+ 217, /* 185 */
|
||||
+ 217, /* 186 */
|
||||
+ 218, /* 187 */
|
||||
+ 218, /* 188 */
|
||||
+ 219, /* 189 */
|
||||
+ 220, /* 190 */
|
||||
+ 220, /* 191 */
|
||||
+ 221, /* 192 */
|
||||
+ 221, /* 193 */
|
||||
+ 222, /* 194 */
|
||||
+ 222, /* 195 */
|
||||
+ 223, /* 196 */
|
||||
+ 224, /* 197 */
|
||||
+ 224, /* 198 */
|
||||
+ 225, /* 199 */
|
||||
+ 225, /* 200 */
|
||||
+ 226, /* 201 */
|
||||
+ 226, /* 202 */
|
||||
+ 227, /* 203 */
|
||||
+ 228, /* 204 */
|
||||
+ 228, /* 205 */
|
||||
+ 229, /* 206 */
|
||||
+ 229, /* 207 */
|
||||
+ 230, /* 208 */
|
||||
+ 230, /* 209 */
|
||||
+ 231, /* 210 */
|
||||
+ 231, /* 211 */
|
||||
+ 232, /* 212 */
|
||||
+ 233, /* 213 */
|
||||
+ 233, /* 214 */
|
||||
+ 234, /* 215 */
|
||||
+ 234, /* 216 */
|
||||
+ 235, /* 217 */
|
||||
+ 235, /* 218 */
|
||||
+ 236, /* 219 */
|
||||
+ 236, /* 220 */
|
||||
+ 237, /* 221 */
|
||||
+ 237, /* 222 */
|
||||
+ 238, /* 223 */
|
||||
+ 238, /* 224 */
|
||||
+ 239, /* 225 */
|
||||
+ 240, /* 226 */
|
||||
+ 240, /* 227 */
|
||||
+ 241, /* 228 */
|
||||
+ 241, /* 229 */
|
||||
+ 242, /* 230 */
|
||||
+ 242, /* 231 */
|
||||
+ 243, /* 232 */
|
||||
+ 243, /* 233 */
|
||||
+ 244, /* 234 */
|
||||
+ 244, /* 235 */
|
||||
+ 245, /* 236 */
|
||||
+ 245, /* 237 */
|
||||
+ 246, /* 238 */
|
||||
+ 246, /* 239 */
|
||||
+ 247, /* 240 */
|
||||
+ 247, /* 241 */
|
||||
+ 248, /* 242 */
|
||||
+ 248, /* 243 */
|
||||
+ 249, /* 244 */
|
||||
+ 249, /* 245 */
|
||||
+ 250, /* 246 */
|
||||
+ 250, /* 247 */
|
||||
+ 251, /* 248 */
|
||||
+ 251, /* 249 */
|
||||
+ 252, /* 250 */
|
||||
+ 252, /* 251 */
|
||||
+ 253, /* 252 */
|
||||
+ 253, /* 253 */
|
||||
+ 254, /* 254 */
|
||||
+ 255 /* 255 */
|
||||
+};
|
||||
+
|
||||
/*
|
||||
In Visual C, VC6 has mmintrin.h in the "Processor Pack" add-on.
|
||||
Checking if _mm_free is #defined in malloc.h is is the only way to
|
||||
@@ -2679,6 +2985,7 @@ static void BlitNtoNPixelAlpha(SDL_BlitInfo *info)
|
||||
int dstskip = info->d_skip;
|
||||
SDL_PixelFormat *srcfmt = info->src;
|
||||
SDL_PixelFormat *dstfmt = info->dst;
|
||||
+ uint8_t alpha_multiply = srcfmt->alpha;
|
||||
|
||||
int srcbpp;
|
||||
int dstbpp;
|
||||
@@ -2705,6 +3012,8 @@ static void BlitNtoNPixelAlpha(SDL_BlitInfo *info)
|
||||
unsigned sA;
|
||||
unsigned dA;
|
||||
DISEMBLE_RGBA(src, srcbpp, srcfmt, Pixel, sR, sG, sB, sA);
|
||||
+ sA=(sA*alpha_multiply)>>8;
|
||||
+ sA=GFX_ALPHA_ADJUST_ARRAY[sA & 255];
|
||||
if(sA) {
|
||||
DISEMBLE_RGBA(dst, dstbpp, dstfmt, Pixel, dR, dG, dB, dA);
|
||||
ALPHA_BLEND(sR, sG, sB, sA, dR, dG, dB);
|
|
@ -0,0 +1,26 @@
|
|||
Merge this bug as it can affect performance :
|
||||
https://github.com/OpenDingux/SDL/commit/e51100dce8da9099278dac9f5affbecf6396378b
|
||||
|
||||
--- a/src/audio/alsa/SDL_alsa_audio.c
|
||||
+++ b/src/audio/alsa/SDL_alsa_audio.c
|
||||
@@ -479,6 +479,10 @@
|
||||
return(-1);
|
||||
}
|
||||
|
||||
+ /* Switch to blocking mode for playback */
|
||||
+ /* Note: this must happen before hw/sw params are set. */
|
||||
+ SDL_NAME(snd_pcm_nonblock)(pcm_handle, 0);
|
||||
+
|
||||
/* Figure out what the hardware is capable of */
|
||||
snd_pcm_hw_params_alloca(&hwparams);
|
||||
status = SDL_NAME(snd_pcm_hw_params_any)(pcm_handle, hwparams);
|
||||
@@ -611,9 +615,6 @@
|
||||
}
|
||||
SDL_memset(mixbuf, spec->silence, spec->size);
|
||||
|
||||
- /* Switch to blocking mode for playback */
|
||||
- SDL_NAME(snd_pcm_nonblock)(pcm_handle, 0);
|
||||
-
|
||||
/* We're ready to rock and roll. :-) */
|
||||
return(0);
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
diff --git a/src/video/fbcon/SDL_fbevents.c b/src/video/fbcon/SDL_fbevents.c
|
||||
index 5e369a4..549a7ad 100644
|
||||
--- a/src/video/fbcon/SDL_fbevents.c
|
||||
+++ b/src/video/fbcon/SDL_fbevents.c
|
||||
@@ -270,17 +270,6 @@ int FB_OpenKeyboard(_THIS)
|
||||
fprintf(stderr, "vtpath = %s, fd = %d\n",
|
||||
vtpath, keyboard_fd);
|
||||
#endif /* DEBUG_KEYBOARD */
|
||||
-
|
||||
- /* This needs to be our controlling tty
|
||||
- so that the kernel ioctl() calls work
|
||||
- */
|
||||
- if ( keyboard_fd >= 0 ) {
|
||||
- tty0_fd = open("/dev/tty", O_RDWR, 0);
|
||||
- if ( tty0_fd >= 0 ) {
|
||||
- ioctl(tty0_fd, TIOCNOTTY, 0);
|
||||
- close(tty0_fd);
|
||||
- }
|
||||
- }
|
||||
}
|
||||
}
|
||||
if ( keyboard_fd < 0 ) {
|
|
@ -0,0 +1,82 @@
|
|||
BR2_arm=y
|
||||
BR2_cortex_a7=y
|
||||
BR2_ARM_FPU_VFPV4=y
|
||||
BR2_DL_DIR="../download"
|
||||
BR2_CCACHE=y
|
||||
BR2_OPTIMIZE_FAST=y
|
||||
BR2_SHARED_STATIC_LIBS=y
|
||||
BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_SDK_PATH)/board/funkey/patches"
|
||||
BR2_TOOLCHAIN_BUILDROOT_VENDOR="funkey"
|
||||
BR2_TOOLCHAIN_BUILDROOT_MUSL=y
|
||||
BR2_KERNEL_HEADERS_VERSION=y
|
||||
BR2_DEFAULT_KERNEL_VERSION="4.14.14"
|
||||
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_14=y
|
||||
BR2_BINUTILS_VERSION_2_35_X=y
|
||||
BR2_GCC_VERSION_10_X=y
|
||||
BR2_TOOLCHAIN_BUILDROOT_CXX=y
|
||||
BR2_GCC_ENABLE_LTO=y
|
||||
BR2_PACKAGE_HOST_GDB=y
|
||||
BR2_PACKAGE_HOST_GDB_TUI=y
|
||||
BR2_GDB_VERSION_9_2=y
|
||||
BR2_TARGET_OPTIMIZATION="-fno-PIC -march=armv7-a+neon-vfpv4 -mtune=cortex-a7 -mfpu=neon-vfpv4 -mvectorize-with-neon-quad"
|
||||
BR2_INIT_NONE=y
|
||||
BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
|
||||
BR2_PACKAGE_ALSA_UTILS=y
|
||||
BR2_PACKAGE_GSTREAMER1=y
|
||||
BR2_PACKAGE_GST1_PLUGINS_BASE=y
|
||||
BR2_PACKAGE_MPG123=y
|
||||
BR2_PACKAGE_LZOP=y
|
||||
BR2_PACKAGE_E2FSPROGS=y
|
||||
BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y
|
||||
BR2_PACKAGE_SDL_GFX=y
|
||||
BR2_PACKAGE_SDL_IMAGE=y
|
||||
BR2_PACKAGE_SDL_IMAGE_GIF=y
|
||||
BR2_PACKAGE_SDL_IMAGE_JPEG=y
|
||||
BR2_PACKAGE_SDL_IMAGE_PNG=y
|
||||
BR2_PACKAGE_SDL_MIXER=y
|
||||
BR2_PACKAGE_SDL_NET=y
|
||||
BR2_PACKAGE_SDL_SOUND=y
|
||||
BR2_PACKAGE_SDL_TTF=y
|
||||
BR2_PACKAGE_PARTED=y
|
||||
BR2_PACKAGE_UBOOT_TOOLS=y
|
||||
BR2_PACKAGE_UBOOT_TOOLS_MKIMAGE=y
|
||||
BR2_PACKAGE_UBOOT_TOOLS_MKENVIMAGE=y
|
||||
BR2_PACKAGE_LUA=y
|
||||
BR2_PACKAGE_LIBSAMPLERATE=y
|
||||
BR2_PACKAGE_LIBSNDFILE=y
|
||||
BR2_PACKAGE_OPENAL=y
|
||||
BR2_PACKAGE_TINYALSA=y
|
||||
BR2_PACKAGE_TREMOR=y
|
||||
BR2_PACKAGE_LIBARCHIVE=y
|
||||
BR2_PACKAGE_LIBARCHIVE_BSDTAR=y
|
||||
BR2_PACKAGE_LIBARCHIVE_BSDCPIO=y
|
||||
BR2_PACKAGE_LIBARCHIVE_BSDCAT=y
|
||||
BR2_PACKAGE_SQLITE=y
|
||||
BR2_PACKAGE_LIBCONFIG=y
|
||||
BR2_PACKAGE_GIFLIB=y
|
||||
BR2_PACKAGE_LIBQRENCODE=y
|
||||
BR2_PACKAGE_LIBQRENCODE_TOOLS=y
|
||||
BR2_PACKAGE_PIXMAN=y
|
||||
BR2_PACKAGE_TINYXML2=y
|
||||
BR2_PACKAGE_LIBNL=y
|
||||
BR2_PACKAGE_LIBRSYNC=y
|
||||
BR2_PACKAGE_FMT=y
|
||||
BR2_PACKAGE_ICU=y
|
||||
BR2_PACKAGE_ACL=y
|
||||
BR2_PACKAGE_PROCPS_NG=y
|
||||
# BR2_TARGET_ROOTFS_TAR is not set
|
||||
BR2_PACKAGE_HOST_DOSFSTOOLS=y
|
||||
BR2_PACKAGE_HOST_DTC=y
|
||||
BR2_PACKAGE_HOST_E2FSPROGS=y
|
||||
BR2_PACKAGE_HOST_ENVIRONMENT_SETUP=y
|
||||
BR2_PACKAGE_HOST_GENIMAGE=y
|
||||
BR2_PACKAGE_HOST_KMOD=y
|
||||
BR2_PACKAGE_HOST_MKPASSWD=y
|
||||
BR2_PACKAGE_HOST_MTOOLS=y
|
||||
BR2_PACKAGE_HOST_SQUASHFS=y
|
||||
BR2_PACKAGE_HOST_UBOOT_TOOLS=y
|
||||
BR2_PACKAGE_LIBOPK=y
|
||||
BR2_PACKAGE_LIBXDGMIME=y
|
||||
BR2_PACKAGE_AGG=y
|
||||
BR2_PACKAGE_FLUIDLITE=y
|
||||
BR2_PACKAGE_LIBMIKMOD=y
|
|
@ -0,0 +1,2 @@
|
|||
name: SDK
|
||||
desc: FunKey SDK
|
|
@ -0,0 +1 @@
|
|||
include $(sort $(wildcard $(BR2_EXTERNAL_SDK_PATH)/package/*/*.mk))
|
|
@ -0,0 +1,81 @@
|
|||
From efd33aad5e69f36ab343b1f28839a55db4538104 Mon Sep 17 00:00:00 2001
|
||||
From: Tom Hughes <tom@compton.nu>
|
||||
Date: Sun, 19 May 2013 10:55:37 +0100
|
||||
Subject: [PATCH 01/15] Fix non-terminating loop conditions when len=1
|
||||
|
||||
- while(abs(sx - lp.x1) + abs(sy - lp.y1) > lp2.len)
|
||||
+ while(abs(sx - lp.x1) + abs(sy - lp.y1) > 1 + lp2.len)
|
||||
{
|
||||
sx = (lp.x1 + sx) >> 1;
|
||||
sy = (lp.y1 + sy) >> 1;
|
||||
}
|
||||
---
|
||||
include/agg_renderer_outline_aa.h | 8 ++++----
|
||||
include/agg_renderer_outline_image.h | 4 ++--
|
||||
2 files changed, 6 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/include/agg_renderer_outline_aa.h b/include/agg_renderer_outline_aa.h
|
||||
index ce25a2e..cb2aa00 100644
|
||||
--- a/include/agg_renderer_outline_aa.h
|
||||
+++ b/include/agg_renderer_outline_aa.h
|
||||
@@ -1659,7 +1659,7 @@ namespace agg
|
||||
}
|
||||
else
|
||||
{
|
||||
- while(abs(sx - lp.x1) + abs(sy - lp.y1) > lp2.len)
|
||||
+ while(abs(sx - lp.x1) + abs(sy - lp.y1) > 1 + lp2.len)
|
||||
{
|
||||
sx = (lp.x1 + sx) >> 1;
|
||||
sy = (lp.y1 + sy) >> 1;
|
||||
@@ -1726,7 +1726,7 @@ namespace agg
|
||||
}
|
||||
else
|
||||
{
|
||||
- while(abs(ex - lp.x2) + abs(ey - lp.y2) > lp2.len)
|
||||
+ while(abs(ex - lp.x2) + abs(ey - lp.y2) > 1 + lp2.len)
|
||||
{
|
||||
ex = (lp.x2 + ex) >> 1;
|
||||
ey = (lp.y2 + ey) >> 1;
|
||||
@@ -1798,7 +1798,7 @@ namespace agg
|
||||
}
|
||||
else
|
||||
{
|
||||
- while(abs(sx - lp.x1) + abs(sy - lp.y1) > lp2.len)
|
||||
+ while(abs(sx - lp.x1) + abs(sy - lp.y1) > 1 + lp2.len)
|
||||
{
|
||||
sx = (lp.x1 + sx) >> 1;
|
||||
sy = (lp.y1 + sy) >> 1;
|
||||
@@ -1811,7 +1811,7 @@ namespace agg
|
||||
}
|
||||
else
|
||||
{
|
||||
- while(abs(ex - lp.x2) + abs(ey - lp.y2) > lp2.len)
|
||||
+ while(abs(ex - lp.x2) + abs(ey - lp.y2) > 1 + lp2.len)
|
||||
{
|
||||
ex = (lp.x2 + ex) >> 1;
|
||||
ey = (lp.y2 + ey) >> 1;
|
||||
diff --git a/include/agg_renderer_outline_image.h b/include/agg_renderer_outline_image.h
|
||||
index fbfac10..66d2b9a 100644
|
||||
--- a/include/agg_renderer_outline_image.h
|
||||
+++ b/include/agg_renderer_outline_image.h
|
||||
@@ -969,7 +969,7 @@ namespace agg
|
||||
}
|
||||
else
|
||||
{
|
||||
- while(abs(sx - lp.x1) + abs(sy - lp.y1) > lp2.len)
|
||||
+ while(abs(sx - lp.x1) + abs(sy - lp.y1) > 1 + lp2.len)
|
||||
{
|
||||
sx = (lp.x1 + sx) >> 1;
|
||||
sy = (lp.y1 + sy) >> 1;
|
||||
@@ -982,7 +982,7 @@ namespace agg
|
||||
}
|
||||
else
|
||||
{
|
||||
- while(abs(ex - lp.x2) + abs(ey - lp.y2) > lp2.len)
|
||||
+ while(abs(ex - lp.x2) + abs(ey - lp.y2) > 1 + lp2.len)
|
||||
{
|
||||
ex = (lp.x2 + ex) >> 1;
|
||||
ey = (lp.y2 + ey) >> 1;
|
||||
--
|
||||
1.8.1.4
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
Author: Andrea Veri <and@debian.org>
|
||||
Description: Disable configure's run from the autogen file.
|
||||
|
||||
Index: agg-2.5+dfsg1/autogen.sh
|
||||
===================================================================
|
||||
--- a/autogen.sh 2007-10-11 00:06:16.000000000 +0200
|
||||
+++ b/autogen.sh 2012-05-01 16:57:37.916862783 +0200
|
||||
@@ -18,6 +18,6 @@
|
||||
automake --foreign --add-missing --ignore-deps
|
||||
|
||||
# and finally invoke our new configure
|
||||
-./configure $*
|
||||
+[ -n "$NOCONFIGURE" ] || ./configure $*
|
||||
|
||||
# end
|
|
@ -0,0 +1,40 @@
|
|||
From e269fe9b62af6fe314cebe0ee7a6d6d1a4a84d1c Mon Sep 17 00:00:00 2001
|
||||
From: Tom Hughes <tom@compton.nu>
|
||||
Date: Sun, 19 May 2013 11:03:26 +0100
|
||||
Subject: [PATCH 02/15] Cure recursion by aborting if the co-ordinates are to
|
||||
big to handle
|
||||
|
||||
---
|
||||
include/agg_rasterizer_cells_aa.h | 9 ++++++++-
|
||||
1 file changed, 8 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/include/agg_rasterizer_cells_aa.h b/include/agg_rasterizer_cells_aa.h
|
||||
index d3bb138..3a616d9 100644
|
||||
--- a/include/agg_rasterizer_cells_aa.h
|
||||
+++ b/include/agg_rasterizer_cells_aa.h
|
||||
@@ -40,7 +40,8 @@
|
||||
#define AGG_RASTERIZER_CELLS_AA_INCLUDED
|
||||
|
||||
#include <string.h>
|
||||
-#include <math.h>
|
||||
+#include <cstdlib>
|
||||
+#include <limits>
|
||||
#include "agg_math.h"
|
||||
#include "agg_array.h"
|
||||
|
||||
@@ -333,6 +334,12 @@ namespace agg
|
||||
{
|
||||
int cx = (x1 + x2) >> 1;
|
||||
int cy = (y1 + y2) >> 1;
|
||||
+
|
||||
+ // Bail if values are so large they are likely to wrap
|
||||
+ if ((std::abs(x1) >= std::numeric_limits<int>::max()/2) || (std::abs(y1) >= std::numeric_limits<int>::max()/2) ||
|
||||
+ (std::abs(x2) >= std::numeric_limits<int>::max()/2) || (std::abs(y2) >= std::numeric_limits<int>::max()/2))
|
||||
+ return;
|
||||
+
|
||||
line(x1, y1, cx, cy);
|
||||
line(cx, cy, x2, y2);
|
||||
}
|
||||
--
|
||||
1.8.1.4
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
--- a/configure.in
|
||||
+++ b/configure.in
|
||||
@@ -39,7 +39,7 @@
|
||||
# used as platform library in examples:
|
||||
# todo, make the PREFERED_PLATFORM selectable, after the set of possible
|
||||
# Platforms to link the examples have been evaluated.
|
||||
-PREFERED_PLATFORM=X11
|
||||
+PREFERED_PLATFORM=sdl
|
||||
case "$host" in
|
||||
*darwin* )
|
||||
OSX_LIBS="-framework Carbon -framework QuickTime"
|
||||
@@ -120,9 +120,7 @@
|
||||
if test "$no_x" = "yes"; then
|
||||
AC_MSG_WARN([*** X11 not found! Omitting X11 layer.])
|
||||
fi
|
||||
-AM_CONDITIONAL(ENABLE_X11,[test x$no_x = x -a xno != x$enable_platform -a x$win32_host != xyes])
|
||||
-AC_SUBST(x_includes)
|
||||
-AC_SUBST(x_libraries)
|
||||
+AM_CONDITIONAL(ENABLE_X11,0)
|
||||
dnl ###############################################
|
||||
|
||||
dnl Settung up library version
|
||||
|
||||
--- a/include/agg_renderer_outline_aa.h
|
||||
+++ b/include/agg_renderer_outline_aa.h
|
||||
@@ -1375,7 +1375,7 @@
|
||||
//---------------------------------------------------------------------
|
||||
void profile(const line_profile_aa& prof) { m_profile = &prof; }
|
||||
const line_profile_aa& profile() const { return *m_profile; }
|
||||
- line_profile_aa& profile() { return *m_profile; }
|
||||
+// line_profile_aa& profile() { return *m_profile; }
|
||||
|
||||
//---------------------------------------------------------------------
|
||||
int subpixel_width() const { return m_profile->subpixel_width(); }
|
|
@ -0,0 +1,30 @@
|
|||
From 032d5342430f4c5dfbc34a2817d67386a14fd51b Mon Sep 17 00:00:00 2001
|
||||
From: Tom Hughes <tom@compton.nu>
|
||||
Date: Sun, 19 May 2013 11:40:49 +0100
|
||||
Subject: [PATCH 03/15] Get coordinates from previous vertex if last command is
|
||||
path_cmd_end_poly
|
||||
|
||||
---
|
||||
include/agg_path_storage.h | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/include/agg_path_storage.h b/include/agg_path_storage.h
|
||||
index 7be7393..8922fc8 100644
|
||||
--- a/include/agg_path_storage.h
|
||||
+++ b/include/agg_path_storage.h
|
||||
@@ -878,6 +878,12 @@ namespace agg
|
||||
*x += x2;
|
||||
*y += y2;
|
||||
}
|
||||
+ else if (!is_stop(m_vertices.last_command()) &&
|
||||
+ is_vertex(m_vertices.prev_vertex(&x2, &y2)))
|
||||
+ {
|
||||
+ *x += x2;
|
||||
+ *y += y2;
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
1.8.1.4
|
||||
|
|
@ -0,0 +1,138 @@
|
|||
From b9c4b1c72b4ad6b24c37f402d3eec39ef393b0eb Mon Sep 17 00:00:00 2001
|
||||
From: Tom Hughes <tom@compton.nu>
|
||||
Date: Sun, 19 May 2013 14:17:43 +0100
|
||||
Subject: [PATCH 04/15] Make rasterizer_outline_aa ignore close_polygon when
|
||||
vertex count < 3
|
||||
|
||||
---
|
||||
include/agg_rasterizer_outline_aa.h | 107 ++++++++++++++++++------------------
|
||||
1 file changed, 52 insertions(+), 55 deletions(-)
|
||||
|
||||
diff --git a/include/agg_rasterizer_outline_aa.h b/include/agg_rasterizer_outline_aa.h
|
||||
index 4d6dd57..24301d5 100644
|
||||
--- a/include/agg_rasterizer_outline_aa.h
|
||||
+++ b/include/agg_rasterizer_outline_aa.h
|
||||
@@ -333,68 +333,65 @@ namespace agg
|
||||
int y2;
|
||||
int lprev;
|
||||
|
||||
- if(close_polygon)
|
||||
+ if(close_polygon && (m_src_vertices.size() >= 3))
|
||||
{
|
||||
- if(m_src_vertices.size() >= 3)
|
||||
+ dv.idx = 2;
|
||||
+
|
||||
+ v = &m_src_vertices[m_src_vertices.size() - 1];
|
||||
+ x1 = v->x;
|
||||
+ y1 = v->y;
|
||||
+ lprev = v->len;
|
||||
+
|
||||
+ v = &m_src_vertices[0];
|
||||
+ x2 = v->x;
|
||||
+ y2 = v->y;
|
||||
+ dv.lcurr = v->len;
|
||||
+ line_parameters prev(x1, y1, x2, y2, lprev);
|
||||
+
|
||||
+ v = &m_src_vertices[1];
|
||||
+ dv.x1 = v->x;
|
||||
+ dv.y1 = v->y;
|
||||
+ dv.lnext = v->len;
|
||||
+ dv.curr = line_parameters(x2, y2, dv.x1, dv.y1, dv.lcurr);
|
||||
+
|
||||
+ v = &m_src_vertices[dv.idx];
|
||||
+ dv.x2 = v->x;
|
||||
+ dv.y2 = v->y;
|
||||
+ dv.next = line_parameters(dv.x1, dv.y1, dv.x2, dv.y2, dv.lnext);
|
||||
+
|
||||
+ dv.xb1 = 0;
|
||||
+ dv.yb1 = 0;
|
||||
+ dv.xb2 = 0;
|
||||
+ dv.yb2 = 0;
|
||||
+
|
||||
+ switch(m_line_join)
|
||||
{
|
||||
- dv.idx = 2;
|
||||
-
|
||||
- v = &m_src_vertices[m_src_vertices.size() - 1];
|
||||
- x1 = v->x;
|
||||
- y1 = v->y;
|
||||
- lprev = v->len;
|
||||
-
|
||||
- v = &m_src_vertices[0];
|
||||
- x2 = v->x;
|
||||
- y2 = v->y;
|
||||
- dv.lcurr = v->len;
|
||||
- line_parameters prev(x1, y1, x2, y2, lprev);
|
||||
-
|
||||
- v = &m_src_vertices[1];
|
||||
- dv.x1 = v->x;
|
||||
- dv.y1 = v->y;
|
||||
- dv.lnext = v->len;
|
||||
- dv.curr = line_parameters(x2, y2, dv.x1, dv.y1, dv.lcurr);
|
||||
-
|
||||
- v = &m_src_vertices[dv.idx];
|
||||
- dv.x2 = v->x;
|
||||
- dv.y2 = v->y;
|
||||
- dv.next = line_parameters(dv.x1, dv.y1, dv.x2, dv.y2, dv.lnext);
|
||||
-
|
||||
- dv.xb1 = 0;
|
||||
- dv.yb1 = 0;
|
||||
- dv.xb2 = 0;
|
||||
- dv.yb2 = 0;
|
||||
-
|
||||
- switch(m_line_join)
|
||||
- {
|
||||
- case outline_no_join:
|
||||
- dv.flags = 3;
|
||||
- break;
|
||||
+ case outline_no_join:
|
||||
+ dv.flags = 3;
|
||||
+ break;
|
||||
|
||||
- case outline_miter_join:
|
||||
- case outline_round_join:
|
||||
- dv.flags =
|
||||
- (prev.diagonal_quadrant() == dv.curr.diagonal_quadrant()) |
|
||||
- ((dv.curr.diagonal_quadrant() == dv.next.diagonal_quadrant()) << 1);
|
||||
- break;
|
||||
+ case outline_miter_join:
|
||||
+ case outline_round_join:
|
||||
+ dv.flags =
|
||||
+ (prev.diagonal_quadrant() == dv.curr.diagonal_quadrant()) |
|
||||
+ ((dv.curr.diagonal_quadrant() == dv.next.diagonal_quadrant()) << 1);
|
||||
+ break;
|
||||
|
||||
- case outline_miter_accurate_join:
|
||||
- dv.flags = 0;
|
||||
- break;
|
||||
- }
|
||||
+ case outline_miter_accurate_join:
|
||||
+ dv.flags = 0;
|
||||
+ break;
|
||||
+ }
|
||||
|
||||
- if((dv.flags & 1) == 0 && m_line_join != outline_round_join)
|
||||
- {
|
||||
- bisectrix(prev, dv.curr, &dv.xb1, &dv.yb1);
|
||||
- }
|
||||
+ if((dv.flags & 1) == 0 && m_line_join != outline_round_join)
|
||||
+ {
|
||||
+ bisectrix(prev, dv.curr, &dv.xb1, &dv.yb1);
|
||||
+ }
|
||||
|
||||
- if((dv.flags & 2) == 0 && m_line_join != outline_round_join)
|
||||
- {
|
||||
- bisectrix(dv.curr, dv.next, &dv.xb2, &dv.yb2);
|
||||
- }
|
||||
- draw(dv, 0, m_src_vertices.size());
|
||||
+ if((dv.flags & 2) == 0 && m_line_join != outline_round_join)
|
||||
+ {
|
||||
+ bisectrix(dv.curr, dv.next, &dv.xb2, &dv.yb2);
|
||||
}
|
||||
+ draw(dv, 0, m_src_vertices.size());
|
||||
}
|
||||
else
|
||||
{
|
||||
--
|
||||
1.8.1.4
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
From b8c43fb0ba13af0cc2b1050f48f81d76d2fdf0c7 Mon Sep 17 00:00:00 2001
|
||||
From: Tom Hughes <tom@compton.nu>
|
||||
Date: Sun, 19 May 2013 15:04:05 +0100
|
||||
Subject: [PATCH 05/15] Remove VC++ 6 workaround
|
||||
|
||||
---
|
||||
include/agg_renderer_scanline.h | 29 +----------------------------
|
||||
1 file changed, 1 insertion(+), 28 deletions(-)
|
||||
|
||||
diff --git a/include/agg_renderer_scanline.h b/include/agg_renderer_scanline.h
|
||||
index c3bb6f0..c27ca60 100644
|
||||
--- a/include/agg_renderer_scanline.h
|
||||
+++ b/include/agg_renderer_scanline.h
|
||||
@@ -79,34 +79,7 @@ namespace agg
|
||||
sl.reset(ras.min_x(), ras.max_x());
|
||||
while(ras.sweep_scanline(sl))
|
||||
{
|
||||
- //render_scanline_aa_solid(sl, ren, ren_color);
|
||||
-
|
||||
- // This code is equivalent to the above call (copy/paste).
|
||||
- // It's just a "manual" optimization for old compilers,
|
||||
- // like Microsoft Visual C++ v6.0
|
||||
- //-------------------------------
|
||||
- int y = sl.y();
|
||||
- unsigned num_spans = sl.num_spans();
|
||||
- typename Scanline::const_iterator span = sl.begin();
|
||||
-
|
||||
- for(;;)
|
||||
- {
|
||||
- int x = span->x;
|
||||
- if(span->len > 0)
|
||||
- {
|
||||
- ren.blend_solid_hspan(x, y, (unsigned)span->len,
|
||||
- ren_color,
|
||||
- span->covers);
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
- ren.blend_hline(x, y, (unsigned)(x - span->len - 1),
|
||||
- ren_color,
|
||||
- *(span->covers));
|
||||
- }
|
||||
- if(--num_spans == 0) break;
|
||||
- ++span;
|
||||
- }
|
||||
+ render_scanline_aa_solid(sl, ren, ren_color);
|
||||
}
|
||||
}
|
||||
}
|
||||
--
|
||||
1.8.1.4
|
||||
|
|
@ -0,0 +1,85 @@
|
|||
From 9422570f4e099a834fc43619f7b2a7eb6b442e25 Mon Sep 17 00:00:00 2001
|
||||
From: Tom Hughes <tom@compton.nu>
|
||||
Date: Sun, 19 May 2013 15:31:01 +0100
|
||||
Subject: [PATCH 06/15] Implement grain-merge blending mode (GIMP)
|
||||
|
||||
---
|
||||
include/agg_pixfmt_rgba.h | 42 ++++++++++++++++++++++++++++++++++++++++--
|
||||
1 file changed, 40 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/include/agg_pixfmt_rgba.h b/include/agg_pixfmt_rgba.h
|
||||
index 79d10dc..f576ce4 100644
|
||||
--- a/include/agg_pixfmt_rgba.h
|
||||
+++ b/include/agg_pixfmt_rgba.h
|
||||
@@ -1401,9 +1401,46 @@ namespace agg
|
||||
}
|
||||
};
|
||||
|
||||
+ //================================================comp_op_rgba_grain_merge
|
||||
+ template <typename ColorT, typename Order> struct comp_op_rgba_grain_merge
|
||||
+ {
|
||||
+ typedef ColorT color_type;
|
||||
+ typedef Order order_type;
|
||||
+ typedef typename color_type::value_type value_type;
|
||||
+ typedef typename color_type::calc_type calc_type;
|
||||
+ typedef typename color_type::long_type long_type;
|
||||
+ enum base_scale_e
|
||||
+ {
|
||||
+ base_shift = color_type::base_shift,
|
||||
+ base_mask = color_type::base_mask
|
||||
+ };
|
||||
|
||||
+ // E = I + M - 128
|
||||
+ static AGG_INLINE void blend_pix(value_type* p,
|
||||
+ unsigned sr, unsigned sg, unsigned sb,
|
||||
+ unsigned sa, unsigned cover)
|
||||
+ {
|
||||
|
||||
-
|
||||
+ if(cover < 255)
|
||||
+ {
|
||||
+ sr = (sr * cover + 255) >> 8;
|
||||
+ sg = (sg * cover + 255) >> 8;
|
||||
+ sb = (sb * cover + 255) >> 8;
|
||||
+ sa = (sa * cover + 255) >> 8;
|
||||
+ }
|
||||
+ if(sa)
|
||||
+ {
|
||||
+ calc_type da = p[Order::A];
|
||||
+ int dr = sr + p[Order::R] - 128;
|
||||
+ int dg = sg + p[Order::G] - 128;
|
||||
+ int db = sb + p[Order::B] - 128;
|
||||
+ p[Order::R] = (value_type)(dr < 0 ? 0 : (dr > 255 ? 255 : dr));
|
||||
+ p[Order::G] = (value_type)(dg < 0 ? 0 : (dg > 255 ? 255 : dg));
|
||||
+ p[Order::B] = (value_type)(db < 0 ? 0 : (db > 255 ? 255 : db));
|
||||
+ p[Order::A] = (value_type)(sa + da - ((sa * da + base_mask) >> base_shift));
|
||||
+ }
|
||||
+ }
|
||||
+ };
|
||||
|
||||
//======================================================comp_op_table_rgba
|
||||
template<class ColorT, class Order> struct comp_op_table_rgba
|
||||
@@ -1451,6 +1488,7 @@ namespace agg
|
||||
comp_op_rgba_contrast <ColorT,Order>::blend_pix,
|
||||
comp_op_rgba_invert <ColorT,Order>::blend_pix,
|
||||
comp_op_rgba_invert_rgb <ColorT,Order>::blend_pix,
|
||||
+ comp_op_rgba_grain_merge<ColorT,Order>::blend_pix,
|
||||
0
|
||||
};
|
||||
|
||||
@@ -1486,6 +1524,7 @@ namespace agg
|
||||
comp_op_contrast, //----comp_op_contrast
|
||||
comp_op_invert, //----comp_op_invert
|
||||
comp_op_invert_rgb, //----comp_op_invert_rgb
|
||||
+ comp_op_grain_merge, //----comp_op_grain_merge
|
||||
|
||||
end_of_comp_op_e
|
||||
};
|
||||
@@ -2908,4 +2947,3 @@ namespace agg
|
||||
}
|
||||
|
||||
#endif
|
||||
-
|
||||
--
|
||||
1.8.1.4
|
||||
|
|
@ -0,0 +1,85 @@
|
|||
From abd440342e166a90d08610bf5b31d2a8357eafbe Mon Sep 17 00:00:00 2001
|
||||
From: Tom Hughes <tom@compton.nu>
|
||||
Date: Sun, 19 May 2013 15:43:18 +0100
|
||||
Subject: [PATCH 07/15] Implement grain-extract blending mode (GIMP)
|
||||
|
||||
---
|
||||
include/agg_pixfmt_rgba.h | 48 +++++++++++++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 48 insertions(+)
|
||||
|
||||
diff --git a/include/agg_pixfmt_rgba.h b/include/agg_pixfmt_rgba.h
|
||||
index f576ce4..42f0a05 100644
|
||||
--- a/include/agg_pixfmt_rgba.h
|
||||
+++ b/include/agg_pixfmt_rgba.h
|
||||
@@ -1442,6 +1442,52 @@ namespace agg
|
||||
}
|
||||
};
|
||||
|
||||
+ //==============================================comp_op_rgba_grain_extract
|
||||
+ template <typename ColorT, typename Order> struct comp_op_rgba_grain_extract
|
||||
+ {
|
||||
+ typedef ColorT color_type;
|
||||
+ typedef Order order_type;
|
||||
+ typedef typename color_type::value_type value_type;
|
||||
+ typedef typename color_type::calc_type calc_type;
|
||||
+ typedef typename color_type::long_type long_type;
|
||||
+ enum base_scale_e
|
||||
+ {
|
||||
+ base_shift = color_type::base_shift,
|
||||
+ base_mask = color_type::base_mask
|
||||
+ };
|
||||
+
|
||||
+ // E = I - M + 128
|
||||
+ static AGG_INLINE void blend_pix(value_type* p,
|
||||
+ unsigned sr, unsigned sg, unsigned sb,
|
||||
+ unsigned sa, unsigned cover)
|
||||
+ {
|
||||
+ calc_type da = (p[Order::A] * sa + 255) >> 8;
|
||||
+
|
||||
+ int dr = p[Order::R] - sr + 128;
|
||||
+ int dg = p[Order::G] - sg + 128;
|
||||
+ int db = p[Order::B] - sb + 128;
|
||||
+
|
||||
+ dr = dr < 0 ? 0 : (dr > 255 ? 255 : dr);
|
||||
+ dg = dg < 0 ? 0 : (dg > 255 ? 255 : dg);
|
||||
+ db = db < 0 ? 0 : (db > 255 ? 255 : db);
|
||||
+
|
||||
+ p[Order::A] = da;
|
||||
+
|
||||
+ if(da < 255)
|
||||
+ {
|
||||
+ p[Order::R] = (dr * da + 255) >> 8;
|
||||
+ p[Order::G] = (dg * da + 255) >> 8;
|
||||
+ p[Order::B] = (db * da + 255) >> 8;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ p[Order::R] = dr;
|
||||
+ p[Order::G] = dg;
|
||||
+ p[Order::B] = db;
|
||||
+ }
|
||||
+ }
|
||||
+ };
|
||||
+
|
||||
//======================================================comp_op_table_rgba
|
||||
template<class ColorT, class Order> struct comp_op_table_rgba
|
||||
{
|
||||
@@ -1489,6 +1535,7 @@ namespace agg
|
||||
comp_op_rgba_invert <ColorT,Order>::blend_pix,
|
||||
comp_op_rgba_invert_rgb <ColorT,Order>::blend_pix,
|
||||
comp_op_rgba_grain_merge<ColorT,Order>::blend_pix,
|
||||
+ comp_op_rgba_grain_extract<ColorT,Order>::blend_pix,
|
||||
0
|
||||
};
|
||||
|
||||
@@ -1525,6 +1572,7 @@ namespace agg
|
||||
comp_op_invert, //----comp_op_invert
|
||||
comp_op_invert_rgb, //----comp_op_invert_rgb
|
||||
comp_op_grain_merge, //----comp_op_grain_merge
|
||||
+ comp_op_grain_extract, //----comp_op_grain_extract
|
||||
|
||||
end_of_comp_op_e
|
||||
};
|
||||
--
|
||||
1.8.1.4
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
From 2688af280836b95908d3cfd6915510d55de673b8 Mon Sep 17 00:00:00 2001
|
||||
From: Tom Hughes <tom@compton.nu>
|
||||
Date: Sun, 19 May 2013 16:15:01 +0100
|
||||
Subject: [PATCH 08/15] Declare multiplication and division operators as const
|
||||
|
||||
---
|
||||
include/agg_trans_affine.h | 8 ++++----
|
||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/include/agg_trans_affine.h b/include/agg_trans_affine.h
|
||||
index a662099..2f602a0 100644
|
||||
--- a/include/agg_trans_affine.h
|
||||
+++ b/include/agg_trans_affine.h
|
||||
@@ -216,15 +216,15 @@ namespace agg
|
||||
}
|
||||
|
||||
// Multiply the matrix by another one and return
|
||||
- // the result in a separete matrix.
|
||||
- trans_affine operator * (const trans_affine& m)
|
||||
+ // the result in a separate matrix.
|
||||
+ trans_affine operator * (const trans_affine& m) const
|
||||
{
|
||||
return trans_affine(*this).multiply(m);
|
||||
}
|
||||
|
||||
// Multiply the matrix by inverse of another one
|
||||
- // and return the result in a separete matrix.
|
||||
- trans_affine operator / (const trans_affine& m)
|
||||
+ // and return the result in a separate matrix.
|
||||
+ trans_affine operator / (const trans_affine& m) const
|
||||
{
|
||||
return trans_affine(*this).multiply_inv(m);
|
||||
}
|
||||
--
|
||||
1.8.1.4
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
From be9ed90897bc43b4547a3a1f8046827caaf13b4c Mon Sep 17 00:00:00 2001
|
||||
From: Tom Hughes <tom@compton.nu>
|
||||
Date: Sun, 19 May 2013 16:15:36 +0100
|
||||
Subject: [PATCH 09/15] Add a static identity transformation
|
||||
|
||||
---
|
||||
include/agg_trans_affine.h | 1 +
|
||||
src/agg_trans_affine.cpp | 1 +
|
||||
2 files changed, 2 insertions(+)
|
||||
|
||||
diff --git a/include/agg_trans_affine.h b/include/agg_trans_affine.h
|
||||
index 2f602a0..67fe5ca 100644
|
||||
--- a/include/agg_trans_affine.h
|
||||
+++ b/include/agg_trans_affine.h
|
||||
@@ -92,6 +92,7 @@ namespace agg
|
||||
//----------------------------------------------------------------------
|
||||
struct trans_affine
|
||||
{
|
||||
+ static const trans_affine identity;
|
||||
double sx, shy, shx, sy, tx, ty;
|
||||
|
||||
//------------------------------------------ Construction
|
||||
diff --git a/src/agg_trans_affine.cpp b/src/agg_trans_affine.cpp
|
||||
index aca18c2..b3d9bc0 100644
|
||||
--- a/src/agg_trans_affine.cpp
|
||||
+++ b/src/agg_trans_affine.cpp
|
||||
@@ -28,6 +28,7 @@
|
||||
|
||||
namespace agg
|
||||
{
|
||||
+ const trans_affine trans_affine::identity;
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
const trans_affine& trans_affine::parl_to_parl(const double* src,
|
||||
--
|
||||
1.8.1.4
|
||||
|
|
@ -0,0 +1,193 @@
|
|||
From 749c8cd11e9e6f81e93ae5ce19258431722b6bdf Mon Sep 17 00:00:00 2001
|
||||
From: Tom Hughes <tom@compton.nu>
|
||||
Date: Sun, 19 May 2013 16:43:25 +0100
|
||||
Subject: [PATCH 10/15] Add renderer_scanline_aa_alpha
|
||||
|
||||
---
|
||||
include/agg_pixfmt_rgba.h | 24 +++++++++++++-
|
||||
include/agg_renderer_base.h | 28 ++++++++++++++++
|
||||
include/agg_renderer_scanline.h | 71 +++++++++++++++++++++++++++++++++++++++++
|
||||
3 files changed, 122 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/include/agg_pixfmt_rgba.h b/include/agg_pixfmt_rgba.h
|
||||
index 42f0a05..6c4bc37 100644
|
||||
--- a/include/agg_pixfmt_rgba.h
|
||||
+++ b/include/agg_pixfmt_rgba.h
|
||||
@@ -2247,7 +2247,6 @@ namespace agg
|
||||
}
|
||||
|
||||
|
||||
-
|
||||
//--------------------------------------------------------------------
|
||||
void blend_color_vspan(int x, int y,
|
||||
unsigned len,
|
||||
@@ -2751,6 +2750,29 @@ namespace agg
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
+ void blend_color_hspan_alpha(int x, int y, unsigned len,
|
||||
+ const color_type* colors,
|
||||
+ value_type alpha,
|
||||
+ const int8u* covers,
|
||||
+ int8u cover)
|
||||
+ {
|
||||
+ value_type* p = (value_type*)m_rbuf->row_ptr(x, y, len) + (x << 2);
|
||||
+ do
|
||||
+ {
|
||||
+ blender_type::blend_pix(m_comp_op,
|
||||
+ p,
|
||||
+ (colors->r * alpha + 255) >> 8,
|
||||
+ (colors->g * alpha + 255) >> 8,
|
||||
+ (colors->b * alpha + 255) >> 8,
|
||||
+ (colors->a * alpha + 255) >> 8,
|
||||
+ covers ? *covers++ : cover);
|
||||
+ p += 4;
|
||||
+ ++colors;
|
||||
+ }
|
||||
+ while(--len);
|
||||
+ }
|
||||
+
|
||||
+ //--------------------------------------------------------------------
|
||||
void blend_color_vspan(int x, int y, unsigned len,
|
||||
const color_type* colors,
|
||||
const int8u* covers,
|
||||
diff --git a/include/agg_renderer_base.h b/include/agg_renderer_base.h
|
||||
index 1808944..25f07c3 100644
|
||||
--- a/include/agg_renderer_base.h
|
||||
+++ b/include/agg_renderer_base.h
|
||||
@@ -37,6 +37,7 @@ namespace agg
|
||||
public:
|
||||
typedef PixelFormat pixfmt_type;
|
||||
typedef typename pixfmt_type::color_type color_type;
|
||||
+ typedef typename pixfmt_type::color_type::value_type value_type;
|
||||
typedef typename pixfmt_type::row_data row_data;
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
@@ -383,6 +384,33 @@ namespace agg
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
+ void blend_color_hspan_alpha(int x, int y, int len,
|
||||
+ const color_type* colors,
|
||||
+ value_type alpha,
|
||||
+ const cover_type* covers,
|
||||
+ cover_type cover = agg::cover_full)
|
||||
+ {
|
||||
+ if(y > ymax()) return;
|
||||
+ if(y < ymin()) return;
|
||||
+
|
||||
+ if(x < xmin())
|
||||
+ {
|
||||
+ int d = xmin() - x;
|
||||
+ len -= d;
|
||||
+ if(len <= 0) return;
|
||||
+ if(covers) covers += d;
|
||||
+ colors += d;
|
||||
+ x = xmin();
|
||||
+ }
|
||||
+ if(x + len > xmax())
|
||||
+ {
|
||||
+ len = xmax() - x + 1;
|
||||
+ if(len <= 0) return;
|
||||
+ }
|
||||
+ m_ren->blend_color_hspan_alpha(x, y, len, colors, alpha, covers, cover);
|
||||
+ }
|
||||
+
|
||||
+ //--------------------------------------------------------------------
|
||||
void blend_color_vspan(int x, int y, int len,
|
||||
const color_type* colors,
|
||||
const cover_type* covers,
|
||||
diff --git a/include/agg_renderer_scanline.h b/include/agg_renderer_scanline.h
|
||||
index c27ca60..4fcb557 100644
|
||||
--- a/include/agg_renderer_scanline.h
|
||||
+++ b/include/agg_renderer_scanline.h
|
||||
@@ -156,6 +156,35 @@ namespace agg
|
||||
}
|
||||
}
|
||||
|
||||
+ //================================================render_scanline_aa_alpha
|
||||
+ template<class Scanline, class BaseRenderer,
|
||||
+ class SpanAllocator, class SpanGenerator>
|
||||
+ void render_scanline_aa_alpha(const Scanline& sl, BaseRenderer& ren,
|
||||
+ SpanAllocator& alloc, SpanGenerator& span_gen,
|
||||
+ unsigned alpha)
|
||||
+ {
|
||||
+ int y = sl.y();
|
||||
+
|
||||
+ unsigned num_spans = sl.num_spans();
|
||||
+ typename Scanline::const_iterator span = sl.begin();
|
||||
+ for(;;)
|
||||
+ {
|
||||
+ int x = span->x;
|
||||
+ int len = span->len;
|
||||
+ const typename Scanline::cover_type* covers = span->covers;
|
||||
+
|
||||
+ if(len < 0) len = -len;
|
||||
+ typename BaseRenderer::color_type* colors = alloc.allocate(len);
|
||||
+ span_gen.generate(colors, x, y, len);
|
||||
+ ren.blend_color_hspan_alpha(x, y, len, colors, alpha,
|
||||
+ (span->len < 0) ? 0 : covers, *covers);
|
||||
+
|
||||
+ if(--num_spans == 0) break;
|
||||
+ ++span;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+
|
||||
//=====================================================render_scanlines_aa
|
||||
template<class Rasterizer, class Scanline, class BaseRenderer,
|
||||
class SpanAllocator, class SpanGenerator>
|
||||
@@ -216,8 +245,50 @@ namespace agg
|
||||
};
|
||||
|
||||
|
||||
+ //==============================================renderer_scanline_aa_alpha
|
||||
+ template<class BaseRenderer, class SpanAllocator, class SpanGenerator>
|
||||
+ class renderer_scanline_aa_alpha
|
||||
+ {
|
||||
+ public:
|
||||
+ typedef BaseRenderer base_ren_type;
|
||||
+ typedef SpanAllocator alloc_type;
|
||||
+ typedef SpanGenerator span_gen_type;
|
||||
|
||||
+ //--------------------------------------------------------------------
|
||||
+ renderer_scanline_aa_alpha() : m_ren(0), m_alloc(0), m_span_gen(0), m_alpha(1.0) {}
|
||||
+ renderer_scanline_aa_alpha(base_ren_type& ren,
|
||||
+ alloc_type& alloc,
|
||||
+ span_gen_type& span_gen,
|
||||
+ unsigned alpha) :
|
||||
+ m_ren(&ren),
|
||||
+ m_alloc(&alloc),
|
||||
+ m_span_gen(&span_gen),
|
||||
+ m_alpha(alpha)
|
||||
+ {}
|
||||
+ void attach(base_ren_type& ren,
|
||||
+ alloc_type& alloc,
|
||||
+ span_gen_type& span_gen)
|
||||
+ {
|
||||
+ m_ren = &ren;
|
||||
+ m_alloc = &alloc;
|
||||
+ m_span_gen = &span_gen;
|
||||
+ }
|
||||
|
||||
+ //--------------------------------------------------------------------
|
||||
+ void prepare() { m_span_gen->prepare(); }
|
||||
+
|
||||
+ //--------------------------------------------------------------------
|
||||
+ template<class Scanline> void render(const Scanline& sl)
|
||||
+ {
|
||||
+ render_scanline_aa_alpha(sl, *m_ren, *m_alloc, *m_span_gen, m_alpha);
|
||||
+ }
|
||||
+
|
||||
+ private:
|
||||
+ base_ren_type* m_ren;
|
||||
+ alloc_type* m_alloc;
|
||||
+ span_gen_type* m_span_gen;
|
||||
+ unsigned m_alpha;
|
||||
+ };
|
||||
|
||||
|
||||
//===============================================render_scanline_bin_solid
|
||||
--
|
||||
1.8.1.4
|
||||
|
|
@ -0,0 +1,58 @@
|
|||
From 0ec68d7f5695403eccac75025ba7f6f7ecf1814e Mon Sep 17 00:00:00 2001
|
||||
From: Tom Hughes <tom@compton.nu>
|
||||
Date: Sun, 19 May 2013 16:49:08 +0100
|
||||
Subject: [PATCH 11/15] Avoid division by zero in color-burn mode
|
||||
|
||||
FIXME: re-work using latest math from http://www.w3.org/TR/SVGCompositing/
|
||||
---
|
||||
include/agg_pixfmt_rgba.h | 21 ++++++++++++++++++---
|
||||
1 file changed, 18 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/include/agg_pixfmt_rgba.h b/include/agg_pixfmt_rgba.h
|
||||
index 6c4bc37..5d6b511 100644
|
||||
--- a/include/agg_pixfmt_rgba.h
|
||||
+++ b/include/agg_pixfmt_rgba.h
|
||||
@@ -1027,6 +1027,21 @@ namespace agg
|
||||
// Dca' = Sa.(Sca.Da + Dca.Sa - Sa.Da)/Sca + Sca.(1 - Da) + Dca.(1 - Sa)
|
||||
//
|
||||
// Da' = Sa + Da - Sa.Da
|
||||
+
|
||||
+
|
||||
+ // http://www.w3.org/TR/SVGCompositing/
|
||||
+ // if Sca == 0 and Dca == Da
|
||||
+ // Dca' = Sa × Da + Sca × (1 - Da) + Dca × (1 - Sa)
|
||||
+ // = Sa × Da + Dca × (1 - Sa)
|
||||
+ // = Da = Dca
|
||||
+ // otherwise if Sca == 0
|
||||
+ // Dca' = Sca × (1 - Da) + Dca × (1 - Sa)
|
||||
+ // = Dca × (1 - Sa)
|
||||
+ // otherwise if Sca > 0
|
||||
+ // Dca' = Sa × Da - Sa × Da × min(1, (1 - Dca/Da) × Sa/Sca) + Sca × (1 - Da) + Dca × (1 - Sa)
|
||||
+ // = Sa × Da × (1 - min(1, (1 - Dca/Da) × Sa/Sca)) + Sca × (1 - Da) + Dca × (1 - Sa)
|
||||
+
|
||||
+ // sa * da * (255 - std::min(255, (255 - p[0]/da)*(sa/(sc*sa)) +
|
||||
static AGG_INLINE void blend_pix(value_type* p,
|
||||
unsigned sr, unsigned sg, unsigned sb,
|
||||
unsigned sa, unsigned cover)
|
||||
@@ -1056,15 +1071,15 @@ namespace agg
|
||||
|
||||
p[Order::R] = (value_type)(((srda + drsa <= sada) ?
|
||||
sr * d1a + dr * s1a :
|
||||
- sa * (srda + drsa - sada) / sr + sr * d1a + dr * s1a + base_mask) >> base_shift);
|
||||
+ (sr > 0 ? sa * (srda + drsa - sada) / sr + sr * d1a + dr * s1a + base_mask : 0)) >> base_shift);
|
||||
|
||||
p[Order::G] = (value_type)(((sgda + dgsa <= sada) ?
|
||||
sg * d1a + dg * s1a :
|
||||
- sa * (sgda + dgsa - sada) / sg + sg * d1a + dg * s1a + base_mask) >> base_shift);
|
||||
+ (sg > 0 ? sa * (sgda + dgsa - sada) / sg + sg * d1a + dg * s1a + base_mask : 0)) >> base_shift);
|
||||
|
||||
p[Order::B] = (value_type)(((sbda + dbsa <= sada) ?
|
||||
sb * d1a + db * s1a :
|
||||
- sa * (sbda + dbsa - sada) / sb + sb * d1a + db * s1a + base_mask) >> base_shift);
|
||||
+ (sb > 0 ? sa * (sbda + dbsa - sada) / sb + sb * d1a + db * s1a + base_mask : 0)) >> base_shift);
|
||||
|
||||
p[Order::A] = (value_type)(sa + da - ((sa * da + base_mask) >> base_shift));
|
||||
}
|
||||
--
|
||||
1.8.1.4
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
From bf0e0b71360cfbc690a29f4abe15d7b9b61b8479 Mon Sep 17 00:00:00 2001
|
||||
From: Tom Hughes <tom@compton.nu>
|
||||
Date: Sat, 22 Jun 2013 12:11:54 +0100
|
||||
Subject: [PATCH 12/15] Avoid pixel artifacts when compositing
|
||||
|
||||
Change src_over alpha to avoid pixel artifacts by reordering computations.
|
||||
---
|
||||
include/agg_pixfmt_rgba.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/include/agg_pixfmt_rgba.h b/include/agg_pixfmt_rgba.h
|
||||
index 5d6b511..bb255cd 100644
|
||||
--- a/include/agg_pixfmt_rgba.h
|
||||
+++ b/include/agg_pixfmt_rgba.h
|
||||
@@ -346,7 +346,7 @@ namespace agg
|
||||
p[Order::R] = (value_type)(sr + ((p[Order::R] * s1a + base_mask) >> base_shift));
|
||||
p[Order::G] = (value_type)(sg + ((p[Order::G] * s1a + base_mask) >> base_shift));
|
||||
p[Order::B] = (value_type)(sb + ((p[Order::B] * s1a + base_mask) >> base_shift));
|
||||
- p[Order::A] = (value_type)(sa + p[Order::A] - ((sa * p[Order::A] + base_mask) >> base_shift));
|
||||
+ p[Order::A] = (value_type)(sa + ((p[Order::A] * s1a + base_mask) >> base_shift));
|
||||
}
|
||||
};
|
||||
|
||||
--
|
||||
1.8.1.4
|
||||
|
|
@ -0,0 +1,93 @@
|
|||
From 6f1ab5f4b470bcf4e7e72aac6e2f7f6ee3e7b424 Mon Sep 17 00:00:00 2001
|
||||
From: Tom Hughes <tom@compton.nu>
|
||||
Date: Sat, 22 Jun 2013 12:16:42 +0100
|
||||
Subject: [PATCH 13/15] Modify agg conv classes to allow access to the original
|
||||
geometry type
|
||||
|
||||
---
|
||||
include/agg_conv_adaptor_vcgen.h | 2 ++
|
||||
include/agg_conv_adaptor_vpgen.h | 1 +
|
||||
include/agg_conv_clip_polygon.h | 1 +
|
||||
include/agg_conv_clip_polyline.h | 1 +
|
||||
include/agg_conv_smooth_poly1.h | 2 ++
|
||||
5 files changed, 7 insertions(+)
|
||||
|
||||
diff --git a/include/agg_conv_adaptor_vcgen.h b/include/agg_conv_adaptor_vcgen.h
|
||||
index 7bd9b07..fef4579 100644
|
||||
--- a/include/agg_conv_adaptor_vcgen.h
|
||||
+++ b/include/agg_conv_adaptor_vcgen.h
|
||||
@@ -38,6 +38,7 @@ namespace agg
|
||||
|
||||
void rewind(unsigned) {}
|
||||
unsigned vertex(double*, double*) { return path_cmd_stop; }
|
||||
+ unsigned type() const { return 0; }
|
||||
};
|
||||
|
||||
|
||||
@@ -73,6 +74,7 @@ namespace agg
|
||||
}
|
||||
|
||||
unsigned vertex(double* x, double* y);
|
||||
+ unsigned type() const { return m_source->type(); }
|
||||
|
||||
private:
|
||||
// Prohibit copying
|
||||
diff --git a/include/agg_conv_adaptor_vpgen.h b/include/agg_conv_adaptor_vpgen.h
|
||||
index dca9415..a39102d 100644
|
||||
--- a/include/agg_conv_adaptor_vpgen.h
|
||||
+++ b/include/agg_conv_adaptor_vpgen.h
|
||||
@@ -42,6 +42,7 @@ namespace agg
|
||||
|
||||
void rewind(unsigned path_id);
|
||||
unsigned vertex(double* x, double* y);
|
||||
+ unsigned type() const { return m_source->type(); }
|
||||
|
||||
private:
|
||||
conv_adaptor_vpgen(const conv_adaptor_vpgen<VertexSource, VPGen>&);
|
||||
diff --git a/include/agg_conv_clip_polygon.h b/include/agg_conv_clip_polygon.h
|
||||
index 3c34590..e417a7d 100644
|
||||
--- a/include/agg_conv_clip_polygon.h
|
||||
+++ b/include/agg_conv_clip_polygon.h
|
||||
@@ -60,6 +60,7 @@ namespace agg
|
||||
double y1() const { return base_type::vpgen().y1(); }
|
||||
double x2() const { return base_type::vpgen().x2(); }
|
||||
double y2() const { return base_type::vpgen().y2(); }
|
||||
+ unsigned type() const { return base_type::type(); }
|
||||
|
||||
private:
|
||||
conv_clip_polygon(const conv_clip_polygon<VertexSource>&);
|
||||
diff --git a/include/agg_conv_clip_polyline.h b/include/agg_conv_clip_polyline.h
|
||||
index d45067f..0de4b57 100644
|
||||
--- a/include/agg_conv_clip_polyline.h
|
||||
+++ b/include/agg_conv_clip_polyline.h
|
||||
@@ -60,6 +60,7 @@ namespace agg
|
||||
double y1() const { return base_type::vpgen().y1(); }
|
||||
double x2() const { return base_type::vpgen().x2(); }
|
||||
double y2() const { return base_type::vpgen().y2(); }
|
||||
+ unsigned type() const { return base_type::type(); }
|
||||
|
||||
private:
|
||||
conv_clip_polyline(const conv_clip_polyline<VertexSource>&);
|
||||
diff --git a/include/agg_conv_smooth_poly1.h b/include/agg_conv_smooth_poly1.h
|
||||
index 15f7f8d..0956c4e 100644
|
||||
--- a/include/agg_conv_smooth_poly1.h
|
||||
+++ b/include/agg_conv_smooth_poly1.h
|
||||
@@ -48,6 +48,7 @@ namespace agg
|
||||
|
||||
void smooth_value(double v) { base_type::generator().smooth_value(v); }
|
||||
double smooth_value() const { return base_type::generator().smooth_value(); }
|
||||
+ unsigned type() const { return base_type::type(); }
|
||||
|
||||
private:
|
||||
conv_smooth_poly1(const conv_smooth_poly1<VertexSource>&);
|
||||
@@ -70,6 +71,7 @@ namespace agg
|
||||
|
||||
void smooth_value(double v) { m_smooth.generator().smooth_value(v); }
|
||||
double smooth_value() const { return m_smooth.generator().smooth_value(); }
|
||||
+ unsigned type() const { return m_smooth.type(); }
|
||||
|
||||
private:
|
||||
conv_smooth_poly1_curve(const conv_smooth_poly1_curve<VertexSource>&);
|
||||
--
|
||||
1.8.1.4
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
From 6433a64f4cd41e88499386b0b7c7ae05d30683b8 Mon Sep 17 00:00:00 2001
|
||||
From: Tom Hughes <tom@compton.nu>
|
||||
Date: Sat, 22 Jun 2013 12:33:32 +0100
|
||||
Subject: [PATCH 14/15] Avoid potential zero division resulting in nan in
|
||||
agg::gamma_linear
|
||||
|
||||
---
|
||||
include/agg_gamma_functions.h | 6 +++++-
|
||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/include/agg_gamma_functions.h b/include/agg_gamma_functions.h
|
||||
index fa38a45..beb0c04 100644
|
||||
--- a/include/agg_gamma_functions.h
|
||||
+++ b/include/agg_gamma_functions.h
|
||||
@@ -94,7 +94,11 @@ namespace agg
|
||||
{
|
||||
if(x < m_start) return 0.0;
|
||||
if(x > m_end) return 1.0;
|
||||
- return (x - m_start) / (m_end - m_start);
|
||||
+ double delta = m_end - m_start;
|
||||
+ // avoid nan from potential zero division
|
||||
+ // https://github.com/mapnik/mapnik/issues/761
|
||||
+ if (delta <= 0.0) return 0.0;
|
||||
+ return (x - m_start) / delta;
|
||||
}
|
||||
|
||||
private:
|
||||
--
|
||||
1.8.1.4
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
From ca818d4dcd428c5560fc3c341fbaf427a7485e32 Mon Sep 17 00:00:00 2001
|
||||
From: Tom Hughes <tom@compton.nu>
|
||||
Date: Sat, 22 Jun 2013 12:34:37 +0100
|
||||
Subject: [PATCH 15/15] Ensure first value in the gamma table is always zero
|
||||
|
||||
---
|
||||
include/agg_gamma_functions.h | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/include/agg_gamma_functions.h b/include/agg_gamma_functions.h
|
||||
index beb0c04..b8eda52 100644
|
||||
--- a/include/agg_gamma_functions.h
|
||||
+++ b/include/agg_gamma_functions.h
|
||||
@@ -49,6 +49,7 @@ namespace agg
|
||||
|
||||
double operator() (double x) const
|
||||
{
|
||||
+ if (x == 0.0) return 0.0;
|
||||
return pow(x, m_gamma);
|
||||
}
|
||||
|
||||
--
|
||||
1.8.1.4
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
--- a/README.orig 2007-01-07 13:58:28.000000000 +0000
|
||||
+++ b/README 2007-01-07 14:02:40.000000000 +0000
|
||||
@@ -0,0 +1 @@
|
||||
+cacac
|
||||
|
||||
--- a/NEWS.orig 2007-01-07 13:58:28.000000000 +0000
|
||||
+++ b/NEWS 2007-01-07 14:02:40.000000000 +0000
|
||||
@@ -0,0 +1 @@
|
||||
+cacac
|
||||
|
||||
--- a/AUTHORS.orig 2007-01-07 13:58:28.000000000 +0000
|
||||
+++ b/AUTHORS 2007-01-07 14:02:40.000000000 +0000
|
||||
@@ -0,0 +1 @@
|
||||
+cacac
|
|
@ -0,0 +1,13 @@
|
|||
config BR2_PACKAGE_AGG
|
||||
bool "agg"
|
||||
depends on BR2_INSTALL_LIBSTDCPP
|
||||
select BR2_PACKAGE_SDL
|
||||
help
|
||||
The Anti-Grain Geometry project. A High Quality 2D Graphics Rendering
|
||||
Engine for C++.
|
||||
We select the SDL backend by default.
|
||||
|
||||
http://www.antigrain.com/index.html
|
||||
|
||||
comment "agg needs a toolchain with C++ support"
|
||||
depends on !BR2_INSTALL_LIBSTDCPP
|
|
@ -0,0 +1,36 @@
|
|||
--- agg-2.4.orig/font_freetype/Makefile.am 2005-10-18 11:45:40.000000000 +0100
|
||||
+++ agg-2.4/font_freetype/Makefile.am 2006-07-10 15:11:55.000000000 +0100
|
||||
@@ -4,8 +4,9 @@
|
||||
agginclude_HEADERS = agg_font_freetype.h
|
||||
lib_LTLIBRARIES = libaggfontfreetype.la
|
||||
|
||||
-libaggfontfreetype_la_LDFLAGS = -version-info @AGG_LIB_VERSION@ @FREETYPE_LIBS@
|
||||
+libaggfontfreetype_la_LDFLAGS = -version-info @AGG_LIB_VERSION@
|
||||
libaggfontfreetype_la_SOURCES = agg_font_freetype.cpp
|
||||
libaggfontfreetype_la_CXXFLAGS = -I$(top_srcdir)/include @FREETYPE_CFLAGS@
|
||||
+libaggfontfreetype_la_LIBADD = ../src/libagg.la @FREETYPE_LIBS@
|
||||
endif
|
||||
|
||||
--- agg-2.4.orig/src/platform/sdl/Makefile.am 2005-10-17 23:49:35.000000000 +0100
|
||||
+++ agg-2.4/src/platform/sdl/Makefile.am 2006-07-10 15:11:55.000000000 +0100
|
||||
@@ -5,6 +5,6 @@
|
||||
libaggplatformsdl_la_LDFLAGS = -version-info @AGG_LIB_VERSION@
|
||||
libaggplatformsdl_la_SOURCES = agg_platform_support.cpp
|
||||
libaggplatformsdl_la_CXXFLAGS = -I$(top_srcdir)/include @SDL_CFLAGS@
|
||||
-libaggplatformsdl_la_LIBADD = @SDL_LIBS@
|
||||
+libaggplatformsdl_la_LIBADD = ../../libagg.la @SDL_LIBS@
|
||||
endif
|
||||
|
||||
--- agg-2.5.orig/src/platform/X11/Makefile.am 2006-12-11 00:59:45.000000000 +0000
|
||||
+++ agg-2.5/src/platform/X11/Makefile.am 2007-01-07 14:07:39.000000000 +0000
|
||||
@@ -1,8 +1,8 @@
|
||||
if ENABLE_X11
|
||||
lib_LTLIBRARIES = libaggplatformX11.la
|
||||
|
||||
-libaggplatformX11_la_LDFLAGS = -version-info @AGG_LIB_VERSION@ -L@x_libraries@
|
||||
+libaggplatformX11_la_LDFLAGS = -version-info @AGG_LIB_VERSION@ @X_LDFLAGS@
|
||||
libaggplatformX11_la_SOURCES = agg_platform_support.cpp
|
||||
libaggplatformX11_la_CXXFLAGS = -I$(top_srcdir)/include -I@x_includes@
|
||||
-libaggplatformX11_la_LIBADD = -lX11
|
||||
+libaggplatformX11_la_LIBADD = ../../libagg.la -lX11
|
||||
endif
|
|
@ -0,0 +1,11 @@
|
|||
--- a/configure.in 2013-02-22 09:30:00.000000000 -0600
|
||||
+++ b/configure.in 2013-02-22 09:30:49.030777571 -0600
|
||||
@@ -8,7 +8,7 @@
|
||||
AC_PROG_CC
|
||||
AC_PROG_CXX
|
||||
AC_ISC_POSIX
|
||||
-AM_C_PROTOTYPES
|
||||
+#AM_C_PROTOTYPES
|
||||
if test "x$U" != "x"; then
|
||||
AC_MSG_ERROR(Compiler not ANSI compliant)
|
||||
fi
|
|
@ -0,0 +1,10 @@
|
|||
--- agg-2.5/libagg.pc.in.orig 2007-01-07 13:58:28.000000000 +0000
|
||||
+++ agg-2.5/libagg.pc.in 2007-01-07 14:02:40.000000000 +0000
|
||||
@@ -6,5 +6,6 @@
|
||||
Name: libagg
|
||||
Description: Anti Grain Geometry - A High Quality Rendering Engine for C++
|
||||
Version: @VERSION@
|
||||
-Libs: -L${libdir} -Wl,-rpath,${exec_prefix}/lib -lagg
|
||||
+Requires.private: freetype2
|
||||
+Libs: -L${libdir} -lagg
|
||||
Cflags: -I${includedir}
|
|
@ -0,0 +1,32 @@
|
|||
###############################################################################
|
||||
#
|
||||
# agg
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
AGG_VERSION = 2.5
|
||||
AGG_SOURCE = agg-$(AGG_VERSION).tar.gz
|
||||
AGG_SITE = https://ftp.osuosl.org/pub/blfs/8.0/a
|
||||
AGG_LICENSE = GPLv3+
|
||||
AGG_LICENSE_FILES = COPYING
|
||||
AGG_INSTALL_STAGING = YES
|
||||
AGG_AUTORECONF = YES
|
||||
|
||||
AGG_DEPENDENCIES = host-pkgconf sdl
|
||||
|
||||
AGG_CONF_OPTS = \
|
||||
--with-sdl-prefix=$(STAGING_DIR)/usr \
|
||||
--disable-sdltest
|
||||
|
||||
AGG_CONF_OPTS += \
|
||||
--with-x=NO \
|
||||
--disable-examples --disable-gpc
|
||||
|
||||
ifeq ($(BR2_PACKAGE_FREETYPE),y)
|
||||
AGG_DEPENDENCIES += freetype
|
||||
AGG_CONF_OPTS += --enable-freetype
|
||||
else
|
||||
AGG_CONF_OPTS += --disable-freetype
|
||||
endif
|
||||
|
||||
$(eval $(autotools-package))
|
|
@ -0,0 +1,35 @@
|
|||
dmtxquery/Makefile.am | 2 +-
|
||||
dmtxread/Makefile.am | 2 +-
|
||||
dmtxwrite/Makefile.am | 2 +-
|
||||
3 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff -Naur a/dmtxquery/Makefile.am b/dmtxquery/Makefile.am
|
||||
--- a/dmtxquery/Makefile.am
|
||||
+++ b/dmtxquery/Makefile.am
|
||||
@@ -9,5 +9,5 @@
|
||||
dmtxquery_LDADD = $(LIBOBJS)
|
||||
|
||||
dmtxquery_debug_SOURCES = dmtxquery.c dmtxquery.h ../common/dmtxutil.c ../common/dmtxutil.h
|
||||
-dmtxquery_debug_LDFLAGS = -static $(DMTX_LIBS)
|
||||
+dmtxquery_debug_LDFLAGS = $(DMTX_LIBS)
|
||||
dmtxquery_debug_LDADD = $(LIBOBJS)
|
||||
diff -Naur a/dmtxread/Makefile.am b/dmtxread/Makefile.am
|
||||
--- a/dmtxread/Makefile.am
|
||||
+++ b/dmtxread/Makefile.am
|
||||
@@ -11,5 +11,5 @@
|
||||
|
||||
dmtxread_debug_SOURCES = dmtxread.c dmtxread.h ../common/dmtxutil.c ../common/dmtxutil.h
|
||||
dmtxread_debug_CFLAGS = $(DMTX_CFLAGS) $(MAGICK_CFLAGS) -D_MAGICK_CONFIG_H
|
||||
-dmtxread_debug_LDFLAGS = -static $(DMTX_LIBS) $(MAGICK_LIBS)
|
||||
+dmtxread_debug_LDFLAGS = $(DMTX_LIBS) $(MAGICK_LIBS)
|
||||
dmtxread_debug_LDADD = $(LIBOBJS)
|
||||
diff -Naur a/dmtxwrite/Makefile.am b/dmtxwrite/Makefile.am
|
||||
--- a/dmtxwrite/Makefile.am
|
||||
+++ b/dmtxwrite/Makefile.am
|
||||
@@ -11,5 +11,5 @@
|
||||
|
||||
dmtxwrite_debug_SOURCES = dmtxwrite.c dmtxwrite.h ../common/dmtxutil.c ../common/dmtxutil.h
|
||||
dmtxwrite_debug_CFLAGS = $(DMTX_FLAGS) $(MAGICK_CFLAGS) -D_MAGICK_CONFIG_H
|
||||
-dmtxwrite_debug_LDFLAGS = -static $(DMTX_LIBS) $(MAGICK_LIBS)
|
||||
+dmtxwrite_debug_LDFLAGS = $(DMTX_LIBS) $(MAGICK_LIBS)
|
||||
dmtxwrite_debug_LDADD = $(LIBOBJS)
|
|
@ -0,0 +1,12 @@
|
|||
config BR2_PACKAGE_DMTX_UTILS
|
||||
bool "dmtx utils"
|
||||
depends on BR2_PACKAGE_LIBDMTX
|
||||
select BR2_PACKAGE_IMAGEMAGICK
|
||||
help
|
||||
libdmtx is a software library that enables programs to read
|
||||
and write Data Matrix barcodes of the modern ECC200
|
||||
variety. This package, dmtx-utils, provides command line
|
||||
utilities that allow scripts and command line users to use
|
||||
libdmtx functionality.
|
||||
|
||||
https://github.com/dmtx/dmtx-utils
|
|
@ -0,0 +1,3 @@
|
|||
# Locally computed:
|
||||
sha256 0d396ec14f32a8cf9e08369a4122a16aa2e5fa1675e02218f16f1ab777ea2a28 dmtx-utils-0.7.6.tar.gz
|
||||
sha256 d8c320ffc0030d1b096ae4732b50d2b811cf95e9a9b7377c1127b2563e0a0388 COPYING
|
|
@ -0,0 +1,20 @@
|
|||
################################################################################
|
||||
#
|
||||
# dmtx-utils
|
||||
#
|
||||
################################################################################
|
||||
|
||||
DMTX_UTILS_VERSION = 0.7.6
|
||||
DMTX_UTILS_SITE = $(call github,dmtx,dmtx-utils,v$(DMTX_UTILS_VERSION))
|
||||
DMTX_UTILS_DEPENDENCIES = libdmtx imagemagick
|
||||
DMTX_UTILS_LICENSE = LGPL-2.1+
|
||||
DMTX_UTILS_LICENSE_FILES = COPYING
|
||||
# github tarball does not include configure
|
||||
DMTX_UTILS_AUTORECONF = YES
|
||||
|
||||
define DMTX_UTILS_RUN_AUTOGEN
|
||||
cd $(@D) && PATH=$(BR_PATH) ./autogen.sh
|
||||
endef
|
||||
DMTX_UTILS_PRE_CONFIGURE_HOOKS += DMTX_UTILS_RUN_AUTOGEN
|
||||
|
||||
$(eval $(autotools-package))
|
|
@ -0,0 +1,11 @@
|
|||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -125,7 +125,7 @@
|
||||
endif()
|
||||
endif()
|
||||
|
||||
-option(FLUIDLITE_BUILD_SHARED "Build shared library" TRUE)
|
||||
+option(FLUIDLITE_BUILD_SHARED "Build shared library" FALSE)
|
||||
if(FLUIDLITE_BUILD_SHARED)
|
||||
add_library(${PROJECT_NAME} SHARED ${SOURCES})
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
config BR2_PACKAGE_FLUIDLITE
|
||||
bool "FluidLite"
|
||||
depends on BR2_USE_MMU
|
||||
help
|
||||
FluidLite is a very light version of FluidSynth.
|
|
@ -0,0 +1,3 @@
|
|||
# Locally computed
|
||||
sha256 ef4d008f9fe2fa9a48135505d42dd7e8e9cc4d7494a4b13d6caa13adb5c61ff8 1.0.tar.gz
|
||||
sha256 a5564e99fd7f49e1344152a8c5bc1d420d5f973b30e010946764db0b5b9e668c LICENSE
|
|
@ -0,0 +1,19 @@
|
|||
################################################################################
|
||||
#
|
||||
# FLUIDLITE
|
||||
#
|
||||
################################################################################
|
||||
|
||||
FLUIDLITE_VERSION = fdd05bad03cdb24d1f78b5fe3453842890c1b0e8
|
||||
FLUIDLITE_SITE = $(call github,gcw0,FluidLite,$(FLUIDLITE_VERSION))
|
||||
FLUIDLITE_LICENSE = LGPL-2.1+
|
||||
FLUIDLITE_LICENSE_FILES = LICENSE
|
||||
FLUIDLITE_INSTALL_STAGING = YES
|
||||
FLUIDLITE_DEPENDENCIES =
|
||||
|
||||
# Disable the shared library for static only build
|
||||
ifeq ($(BR2_STATIC_LIBS),y)
|
||||
FLUIDLITE_CONF_OPTS += -DDFLUIDLITE_BUILD_SHARED=FALSE
|
||||
endif
|
||||
|
||||
$(eval $(cmake-package))
|
|
@ -0,0 +1,6 @@
|
|||
config BR2_PACKAGE_LIBINI
|
||||
bool "libini"
|
||||
help
|
||||
Tiny library to help reading INI files.
|
||||
|
||||
https://github.com/pcercuei/libini
|
|
@ -0,0 +1,13 @@
|
|||
#############################################################
|
||||
#
|
||||
# libini
|
||||
#
|
||||
#############################################################
|
||||
LIBINI_VERSION = c3413da
|
||||
LIBINI_SITE_METHOD = git
|
||||
LIBINI_SITE = https://github.com/FunKey-Project/libini.git
|
||||
LIBINI_LICENSE = LGPL-2.1
|
||||
|
||||
LIBINI_INSTALL_STAGING = YES
|
||||
|
||||
$(eval $(cmake-package))
|
|
@ -0,0 +1,7 @@
|
|||
config BR2_PACKAGE_LIBMIKMOD
|
||||
bool "libmikmod"
|
||||
help
|
||||
Mikmod is a module player and library supporting many
|
||||
tracker formats, including mod, s3m, it, and xm.
|
||||
|
||||
http://mikmod.shlomifish.org/
|
|
@ -0,0 +1,21 @@
|
|||
#############################################################
|
||||
#
|
||||
# libmikmod
|
||||
#
|
||||
#############################################################
|
||||
LIBMIKMOD_VERSION:=3.3.11.1
|
||||
LIBMIKMOD_SITE:=http://sourceforge.net/projects/mikmod/files/libmikmod/$(LIBMIKMOD_VERSION)
|
||||
|
||||
LIBMIKMOD_CONF_OPTS = --localstatedir=/var
|
||||
|
||||
LIBMIKMOD_LIBTOOL_PATCH = NO
|
||||
LIBMIKMOD_INSTALL_STAGING = YES
|
||||
|
||||
LIBMIKMOD_CONFIG_SCRIPTS = libmikmod-config
|
||||
|
||||
define LIBMIKMOD_REMOVE_LIBMIKMOD_CONFIG
|
||||
mv $(TARGET_DIR)/usr/bin/libmikmod-config $(HOST_DIR)/bin/
|
||||
endef
|
||||
LIBMIKMOD_POST_INSTALL_TARGET_HOOKS += LIBMIKMOD_REMOVE_LIBMIKMOD_CONFIG
|
||||
|
||||
$(eval $(autotools-package))
|
|
@ -0,0 +1,8 @@
|
|||
config BR2_PACKAGE_LIBOPK
|
||||
bool "libopk"
|
||||
select BR2_PACKAGE_ZLIB
|
||||
select BR2_PACKAGE_LIBINI
|
||||
help
|
||||
Library to handle OPK packages.
|
||||
|
||||
https://github.com/pcercuei/libopk
|
|
@ -0,0 +1,14 @@
|
|||
#############################################################
|
||||
#
|
||||
# libopk
|
||||
#
|
||||
#############################################################
|
||||
LIBOPK_VERSION = 3c918c8
|
||||
LIBOPK_SITE_METHOD = git
|
||||
LIBOPK_SITE = https://github.com/FunKey-Project/libopk.git
|
||||
|
||||
LIBOPK_DEPENDENCIES = libini zlib
|
||||
|
||||
LIBOPK_INSTALL_STAGING = YES
|
||||
|
||||
$(eval $(cmake-package))
|
|
@ -0,0 +1,12 @@
|
|||
config BR2_PACKAGE_LIBXDGMIME
|
||||
bool "libxdgmime"
|
||||
depends on BR2_USE_WCHAR # shared-mime-info
|
||||
select BR2_PACKAGE_SHARED_MIME_INFO
|
||||
help
|
||||
Simple library that parses the proposed MIME spec
|
||||
listed at http://freedesktop.org/.
|
||||
|
||||
https://github.com/pcercuei/libxdgmime
|
||||
|
||||
comment "libxdgmime requires a toolchain with WCHAR support"
|
||||
depends on !BR2_USE_WCHAR
|
|
@ -0,0 +1,30 @@
|
|||
#############################################################
|
||||
#
|
||||
# libxdgmime
|
||||
#
|
||||
#############################################################
|
||||
LIBXDGMIME_VERSION = db79e7c
|
||||
LIBXDGMIME_SITE_METHOD = git
|
||||
LIBXDGMIME_SITE = https://github.com/FunKey-Project/libxdgmime.git
|
||||
LIBXDGMIME_DEPENDENCIES = shared-mime-info
|
||||
LIBXDGMIME_LICENCE = LGPL-2.1+ or AFL-2.1
|
||||
|
||||
LIBXDGMIME_INSTALL_STAGING = YES
|
||||
|
||||
LIBXDGMIME_MAKE_ENV = CFLAGS="$(TARGET_CFLAGS)" LDFLAGS="$(TARGET_LDFLAGS)" \
|
||||
CROSS_COMPILE="$(TARGET_CROSS)" PREFIX=/usr \
|
||||
PLATFORM="$(BR2_VENDOR)"
|
||||
|
||||
define LIBXDGMIME_BUILD_CMDS
|
||||
$(LIBXDGMIME_MAKE_ENV) $(MAKE) -C $(@D)
|
||||
endef
|
||||
|
||||
define LIBXDGMIME_INSTALL_STAGING_CMDS
|
||||
$(LIBXDGMIME_MAKE_ENV) DESTDIR="$(STAGING_DIR)" $(MAKE) -C $(@D) install
|
||||
endef
|
||||
|
||||
define LIBXDGMIME_INSTALL_TARGET_CMDS
|
||||
$(LIBXDGMIME_MAKE_ENV) DESTDIR="$(TARGET_DIR)" $(MAKE) -C $(@D) install-lib
|
||||
endef
|
||||
|
||||
$(eval $(generic-package))
|
|
@ -1 +1 @@
|
|||
Subproject commit d5bc4aaa1e6ab0e2cda437e993a0dcbe745f246b
|
||||
Subproject commit d5268384884357d5f17515ee083939f9596a2e73
|
Loading…
Reference in New Issue