Makefile tweaks to make building more robust with respect to android sdk changes.\nFix video capture on linux.\nSupport a few more jpegs.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5088 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
parent
9efb2c5c0e
commit
aef821b9c6
6 changed files with 71 additions and 72 deletions
|
@ -142,57 +142,68 @@ USER_TARGET:=$(FTE_TARGET)
|
||||||
#make droid-rel doesn't get the right stuff
|
#make droid-rel doesn't get the right stuff
|
||||||
#add a small default config file. its only small. and some other stuff, because we can. This makes it much easier to get it up and running.
|
#add a small default config file. its only small. and some other stuff, because we can. This makes it much easier to get it up and running.
|
||||||
DROID_PACKSU?= $(BASE_DIR)/droid/fte.cfg $(BASE_DIR)/droid/default.fmf $(BASE_DIR)/droid/configs/touch.cfg
|
DROID_PACKSU?= $(BASE_DIR)/droid/fte.cfg $(BASE_DIR)/droid/default.fmf $(BASE_DIR)/droid/configs/touch.cfg
|
||||||
ANDROID_NDK_ROOT?=~/android-ndk-r8e
|
|
||||||
ANDROID_HOME?=~/android-sdk-linux
|
ANDROID_HOME?=~/android-sdk-linux
|
||||||
|
#ANDROID_NDK_ROOT?=~/android-ndk-r8e
|
||||||
|
ANDROID_NDK_ROOT?=$(ANDROID_HOME)/ndk-bundle
|
||||||
|
ANDROID_TOOLS?=$(ANDROID_HOME)/tools
|
||||||
ANT?=ant
|
ANT?=ant
|
||||||
|
JAVA_HOME?=/usr
|
||||||
JAVATOOL=$(JAVA_HOME)/bin/
|
JAVATOOL=$(JAVA_HOME)/bin/
|
||||||
ANDROID_SCRIPT=android
|
ANDROID_SCRIPT=android
|
||||||
|
|
||||||
ifeq ($(DROID_ARCH),)
|
ifeq ($(DROID_ARCH),)
|
||||||
DROID_ARCH=armeabi
|
DROID_ARCH=arm
|
||||||
endif
|
endif
|
||||||
ifeq ($(FTE_TARGET),droid)
|
ifeq ($(FTE_TARGET),droid)
|
||||||
DROID_API_LEVEL=4
|
#figure out the host system, required to find a usable compiler
|
||||||
|
ifneq ($(shell uname -o 2>&1 | grep Cygwin),)
|
||||||
|
# ifeq ($(shell uname -m 2>&1), i686)
|
||||||
|
# ANDROID_HOSTSYSTEM=windows
|
||||||
|
# else
|
||||||
|
# ANDROID_HOSTSYSTEM=windows-$(shell uname -m)
|
||||||
|
# endif
|
||||||
|
ANDROID_HOSTSYSTEM=windows-x86_64
|
||||||
|
else
|
||||||
|
ANDROID_HOSTSYSTEM=linux-$(shell uname -m)
|
||||||
|
endif
|
||||||
|
|
||||||
|
#ask the android ndk which compiler version strings we should be using
|
||||||
|
ANDROID_TOOLCHAINNAME:=$(shell ANDROID_NDK_ROOT=$(ANDROID_NDK_ROOT) . $(ANDROID_NDK_ROOT)/build/tools/dev-defaults.sh && get_default_toolchain_name_for_arch $(DROID_ARCH))
|
||||||
|
ANDROID_TOOLCHAINPREFIX:=$(shell ANDROID_NDK_ROOT=$(ANDROID_NDK_ROOT) . $(ANDROID_NDK_ROOT)/build/tools/dev-defaults.sh && get_default_toolchain_prefix_for_arch $(DROID_ARCH))
|
||||||
|
TOOLCHAINPATH:=$(ANDROID_NDK_ROOT)/toolchains/$(ANDROID_TOOLCHAINNAME)/prebuilt/$(ANDROID_HOSTSYSTEM)/bin/
|
||||||
|
TOOLCHAIN:=$(TOOLCHAINPATH)$(ANDROID_TOOLCHAINPREFIX)-
|
||||||
|
|
||||||
|
#4 is the min that fte requires
|
||||||
|
DROID_API_LEVEL?=4
|
||||||
|
DROID_API_NAME?=android-$(DROID_API_LEVEL)
|
||||||
|
|
||||||
|
DROID_PLAT_INC=arch-$(DROID_ARCH)
|
||||||
ifeq ($(DROID_ARCH),x86)
|
ifeq ($(DROID_ARCH),x86)
|
||||||
DROID_PLAT_INC=arch-x86
|
|
||||||
#google fecked up. anything before api_level 9 will fail to compile on x86
|
#google fecked up. anything before api_level 9 will fail to compile on x86
|
||||||
DROID_API_LEVEL=9
|
DROID_API_LEVEL=9
|
||||||
else
|
else
|
||||||
DROID_PLAT_INC=arch-arm
|
|
||||||
|
|
||||||
#there are 3 ABI targets
|
#there are 3 ABI targets
|
||||||
#armv5 (works on all arm droids)
|
#armv5 (works on all arm droids)
|
||||||
#armv7 (more common on 2.2+ droids)
|
#armv7 (more common on 2.2+ droids)
|
||||||
#armv7+neon
|
#armv7+neon
|
||||||
DROID_ABI?=-mfloat-abi=softfp
|
DROID_ABI?=-mfloat-abi=softfp
|
||||||
endif
|
endif
|
||||||
DROIDSYSROOT=$(realpath $(ANDROID_NDK_ROOT)/platforms/android-$(DROID_API_LEVEL)/$(DROID_PLAT_INC))
|
DROIDSYSROOT=$(realpath $(ANDROID_NDK_ROOT)/platforms/$(DROID_API_NAME)/$(DROID_PLAT_INC))
|
||||||
|
ifeq ($(DROIDSYSROOT),) #its possible that google removed whatever api we're trying to target, just switch up to the new default.
|
||||||
|
DROID_API_NAME:=$(shell ANDROID_NDK_ROOT=$(ANDROID_NDK_ROOT) . $(ANDROID_NDK_ROOT)/build/tools/dev-defaults.sh && echo -n $$DEFAULT_PLATFORM)
|
||||||
|
BITCHANDMOAN:=$(shell echo targetting \"$(DROID_API_NAME)\" instead of \"android-$(DROID_API_LEVEL)\" 1>&2)
|
||||||
|
endif
|
||||||
|
DROIDSYSROOT:=$(DROIDSYSROOT)
|
||||||
|
|
||||||
#if we're running under windows, then we want to run some other binary
|
#if we're running under windows, then we want to run some other binary
|
||||||
ifeq ($(shell uname -o 2>&1 | grep Cygwin),)
|
ifeq ($(shell uname -o 2>&1 | grep Cygwin),)
|
||||||
#set up for linux
|
#set up for linux/mingw
|
||||||
ifeq ($(DROID_ARCH),x86)
|
TOOLOVERRIDES=PATH="/usr/bin:$(realpath $(TOOLCHAINPATH))" CFLAGS=--sysroot="$(realpath $(ANDROID_NDK_ROOT)/platforms/$(DROID_API_NAME)/$(DROID_PLAT_INC))" CPPFLAGS=--sysroot="$(realpath $(ANDROID_NDK_ROOT)/platforms/$(DROID_API_NAME)/$(DROID_PLAT_INC))"
|
||||||
TOOLCHAINPATH:=$(ANDROID_NDK_ROOT)/toolchains/x86-4.7/prebuilt/linux-x86/bin/
|
CONFIGARGS= --with-sysroot="$(realpath $(ANDROID_NDK_ROOT)/platforms/$(DROID_API_NAME)/$(DROID_PLAT_INC))"
|
||||||
TOOLCHAIN:=$(TOOLCHAINPATH)i686-linux-androideabi-
|
|
||||||
else
|
|
||||||
TOOLCHAINPATH:=$(ANDROID_NDK_ROOT)/toolchains/arm-linux-androideabi-4.7/prebuilt/linux-x86/bin/
|
|
||||||
TOOLCHAIN:=$(TOOLCHAINPATH)arm-linux-androideabi-
|
|
||||||
endif
|
|
||||||
|
|
||||||
TOOLOVERRIDES=PATH="/usr/bin:$(realpath $(TOOLCHAINPATH))" CFLAGS=--sysroot="$(realpath $(ANDROID_NDK_ROOT)/platforms/android-$(DROID_API_LEVEL)/$(DROID_PLAT_INC))" CPPFLAGS=--sysroot="$(realpath $(ANDROID_NDK_ROOT)/platforms/android-$(DROID_API_LEVEL)/$(DROID_PLAT_INC))"
|
|
||||||
CONFIGARGS= --with-sysroot="$(realpath $(ANDROID_NDK_ROOT)/platforms/android-$(DROID_API_LEVEL)/$(DROID_PLAT_INC))"
|
|
||||||
else
|
else
|
||||||
|
#we're running upon cygwin
|
||||||
#FIXME: support mingw too...
|
#FIXME: support mingw too...
|
||||||
|
|
||||||
#we're running upon windows
|
|
||||||
ifeq ($(DROID_ARCH),x86)
|
|
||||||
TOOLCHAINPATH:=$(ANDROID_NDK_ROOT)/toolchains/x86-4.7/prebuilt/windows-x86_64/bin/
|
|
||||||
TOOLCHAIN:=$(TOOLCHAINPATH)i686-linux-android-
|
|
||||||
else
|
|
||||||
TOOLCHAINPATH:=$(ANDROID_NDK_ROOT)/toolchains/arm-linux-androideabi-4.7/prebuilt/windows-x86_64/bin/
|
|
||||||
TOOLCHAIN:=$(TOOLCHAINPATH)arm-linux-androideabi-
|
|
||||||
endif
|
|
||||||
ANDROID_SCRIPT=android.bat
|
ANDROID_SCRIPT=android.bat
|
||||||
#make can't cope with absolute win32 paths in dependancy files
|
#make can't cope with absolute win32 paths in dependancy files
|
||||||
DEPCC=
|
DEPCC=
|
||||||
|
@ -200,7 +211,7 @@ ifeq ($(FTE_TARGET),droid)
|
||||||
#configure hates android, with its broken default sysroot and lack of path etc
|
#configure hates android, with its broken default sysroot and lack of path etc
|
||||||
DROIDSYSROOT:=$(shell cygpath -m $(DROIDSYSROOT))
|
DROIDSYSROOT:=$(shell cygpath -m $(DROIDSYSROOT))
|
||||||
TOOLOVERRIDES=PATH="/usr/bin:$(shell cygpath -u $(realpath $(TOOLCHAINPATH)))" CFLAGS=--sysroot="$(DROIDSYSROOT)" CPPFLAGS=--sysroot="$(DROIDSYSROOT)"
|
TOOLOVERRIDES=PATH="/usr/bin:$(shell cygpath -u $(realpath $(TOOLCHAINPATH)))" CFLAGS=--sysroot="$(DROIDSYSROOT)" CPPFLAGS=--sysroot="$(DROIDSYSROOT)"
|
||||||
CONFIGARGS= --with-sysroot="$(shell cygpath -u $(realpath $(ANDROID_NDK_ROOT)/platforms/android-$(DROID_API_LEVEL)/$(DROID_PLAT_INC)))"
|
CONFIGARGS= --with-sysroot="$(shell cygpath -u $(realpath $(ANDROID_NDK_ROOT)/platforms/$(DROID_API_NAME)/$(DROID_PLAT_INC)))"
|
||||||
endif
|
endif
|
||||||
|
|
||||||
CC:=$(TOOLCHAIN)gcc --sysroot="$(DROIDSYSROOT)" -DANDROID $(DROID_ABI) -fno-strict-aliasing
|
CC:=$(TOOLCHAIN)gcc --sysroot="$(DROIDSYSROOT)" -DANDROID $(DROID_ABI) -fno-strict-aliasing
|
||||||
|
@ -1826,12 +1837,16 @@ nacl-dbg:
|
||||||
#################################################
|
#################################################
|
||||||
#webgl helpers
|
#webgl helpers
|
||||||
|
|
||||||
#just adds some extra paths (WINDOWS HOST ONLY)
|
ifeq (,$(EMSDK))
|
||||||
#assumes you installed the emscripten 1.22.0 sdk to EMSCRIPTENROOT
|
#just adds some extra paths (WINDOWS HOST ONLY)
|
||||||
#if you have a different version installed, you will need to fix up the paths yourself (or just use fte_target explicitly yourself).
|
#assumes you installed the emscripten 1.22.0 sdk to EMSCRIPTENROOT
|
||||||
EMSCRIPTENROOT?=C:/Games/tools/Emscripten
|
#if you have a different version installed, you will need to fix up the paths yourself (or just use fte_target explicitly yourself).
|
||||||
#EMSCRIPTENPATH=$(realpath $(EMSCRIPTENROOT)):$(realpath $(EMSCRIPTENROOT)/clang/e1.22.0_64bit):$(realpath $(EMSCRIPTENROOT)/node/0.10.17_64bit):$(realpath $(EMSCRIPTENROOT)/python/2.7.5.3_64bit):$(realpath $(EMSCRIPTENROOT)/emscripten/1.22.0):$(PATH)
|
EMSCRIPTENROOT?=C:/Games/tools/Emscripten
|
||||||
EMSCRIPTENPATH=$(realpath $(EMSCRIPTENROOT)):$(realpath $(EMSCRIPTENROOT)/clang/e1.35.0_64bit):$(realpath $(EMSCRIPTENROOT)/node/4.1.1_64bit/bin):$(realpath $(EMSCRIPTENROOT)/python/2.7.5.3_64bit):$(realpath $(EMSCRIPTENROOT)/emscripten/1.35.0):$(PATH)
|
#EMSCRIPTENPATH=$(realpath $(EMSCRIPTENROOT)):$(realpath $(EMSCRIPTENROOT)/clang/e1.22.0_64bit):$(realpath $(EMSCRIPTENROOT)/node/0.10.17_64bit):$(realpath $(EMSCRIPTENROOT)/python/2.7.5.3_64bit):$(realpath $(EMSCRIPTENROOT)/emscripten/1.22.0):$(PATH)
|
||||||
|
EMSCRIPTENPATH=$(realpath $(EMSCRIPTENROOT)):$(realpath $(EMSCRIPTENROOT)/clang/e1.35.0_64bit):$(realpath $(EMSCRIPTENROOT)/node/4.1.1_64bit/bin):$(realpath $(EMSCRIPTENROOT)/python/2.7.5.3_64bit):$(realpath $(EMSCRIPTENROOT)/emscripten/1.35.0):$(PATH)
|
||||||
|
else
|
||||||
|
EMSCRIPTENPATH=$(PATH)
|
||||||
|
endif
|
||||||
|
|
||||||
#EMCC?=/opt/emsdk_portable/emscripten/master/emcc
|
#EMCC?=/opt/emsdk_portable/emscripten/master/emcc
|
||||||
EMCC?=emcc.bat --em-config $(shell cygpath -m $(USERPROFILE))/.emscripten
|
EMCC?=emcc.bat --em-config $(shell cygpath -m $(USERPROFILE))/.emscripten
|
||||||
|
@ -1906,7 +1921,7 @@ endif
|
||||||
@echo
|
@echo
|
||||||
@$(JAVATOOL)jarsigner $(JARSIGNARGS) -digestalg SHA1 -sigalg MD5withRSA -keystore droid/ftekeystore droid/bin/FTEDroid-release-unsigned.apk autogen
|
@$(JAVATOOL)jarsigner $(JARSIGNARGS) -digestalg SHA1 -sigalg MD5withRSA -keystore droid/ftekeystore droid/bin/FTEDroid-release-unsigned.apk autogen
|
||||||
-rm -f $(RELEASE_DIR)/FTEDroid.apk
|
-rm -f $(RELEASE_DIR)/FTEDroid.apk
|
||||||
$(ANDROID_HOME)/tools/zipalign 4 droid/bin/FTEDroid-release-unsigned.apk $(NATIVE_RELEASE_DIR)/FTEDroid.apk
|
$(ANDROID_TOOLS)/zipalign 4 droid/bin/FTEDroid-release-unsigned.apk $(NATIVE_RELEASE_DIR)/FTEDroid.apk
|
||||||
|
|
||||||
droid-opt:
|
droid-opt:
|
||||||
$(MAKE) FTE_TARGET=droid droid/build.xml droid/ftekeystore
|
$(MAKE) FTE_TARGET=droid droid/build.xml droid/ftekeystore
|
||||||
|
@ -1987,6 +2002,8 @@ else
|
||||||
-test -f libs-$(ARCH)/libvorbisfile.a || (cd libs-$(ARCH) && tar -xvzf ../libvorbis-$(VORBISVER).tar.gz && cd libvorbis-$(VORBISVER) && $(TOOLOVERRIDES) ./configure PKG_CONFIG= $(CONFIGARGS) --disable-oggtest --with-ogg-libraries=.. --with-ogg-includes=$(NATIVE_ABSBASE_DIR)/libs-$(ARCH)/libogg-$(OGGVER)/include && $(TOOLOVERRIDES) $(MAKE) && cp lib/.libs/libvorbis.a ../ && cp lib/.libs/libvorbisfile.a ../ )
|
-test -f libs-$(ARCH)/libvorbisfile.a || (cd libs-$(ARCH) && tar -xvzf ../libvorbis-$(VORBISVER).tar.gz && cd libvorbis-$(VORBISVER) && $(TOOLOVERRIDES) ./configure PKG_CONFIG= $(CONFIGARGS) --disable-oggtest --with-ogg-libraries=.. --with-ogg-includes=$(NATIVE_ABSBASE_DIR)/libs-$(ARCH)/libogg-$(OGGVER)/include && $(TOOLOVERRIDES) $(MAKE) && cp lib/.libs/libvorbis.a ../ && cp lib/.libs/libvorbisfile.a ../ )
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
httpserver:
|
||||||
|
$(CC) -o release/httpserver http/httpserver.c http/iwebiface.c common/fs_stdio.c -Icommon -Iclient -Iqclib -Igl -Iserver -DWEBSVONLY -Dstricmp=strcasecmp -Dstrnicmp=strncasecmp
|
||||||
|
|
||||||
prefix ?= /usr/local
|
prefix ?= /usr/local
|
||||||
exec_prefix ?= $(prefix)
|
exec_prefix ?= $(prefix)
|
||||||
|
|
|
@ -1254,6 +1254,8 @@ qboolean LibJPEG_Init(void)
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
if (!LIBJPEG_LOADED())
|
||||||
|
Con_Printf("Unable to init libjpeg\n");
|
||||||
return LIBJPEG_LOADED();
|
return LIBJPEG_LOADED();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1430,7 +1432,10 @@ qbyte *ReadJPEGFile(qbyte *infile, int length, int *width, int *height)
|
||||||
memset(&cinfo, 0, sizeof(cinfo));
|
memset(&cinfo, 0, sizeof(cinfo));
|
||||||
|
|
||||||
if (!LIBJPEG_LOADED())
|
if (!LIBJPEG_LOADED())
|
||||||
|
{
|
||||||
|
Con_DPrintf("libjpeg not available.\n");
|
||||||
return NULL;
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
/* Step 1: allocate and initialize JPEG decompression object */
|
/* Step 1: allocate and initialize JPEG decompression object */
|
||||||
|
|
||||||
|
@ -1445,6 +1450,7 @@ qbyte *ReadJPEGFile(qbyte *infile, int length, int *width, int *height)
|
||||||
if (setjmp(jerr.setjmp_buffer))
|
if (setjmp(jerr.setjmp_buffer))
|
||||||
{
|
{
|
||||||
// If we get here, the JPEG code has signaled an error.
|
// If we get here, the JPEG code has signaled an error.
|
||||||
|
Con_DPrintf("libjpeg failed to decode a file.\n");
|
||||||
badjpeg:
|
badjpeg:
|
||||||
#ifdef DYNAMIC_LIBJPEG
|
#ifdef DYNAMIC_LIBJPEG
|
||||||
qjpeg_destroy_decompress(&cinfo);
|
qjpeg_destroy_decompress(&cinfo);
|
||||||
|
@ -1454,7 +1460,7 @@ badjpeg:
|
||||||
|
|
||||||
if (mem)
|
if (mem)
|
||||||
BZ_Free(mem);
|
BZ_Free(mem);
|
||||||
return 0;
|
return NULL;
|
||||||
}
|
}
|
||||||
#ifdef DYNAMIC_LIBJPEG
|
#ifdef DYNAMIC_LIBJPEG
|
||||||
qjpeg_create_decompress(&cinfo);
|
qjpeg_create_decompress(&cinfo);
|
||||||
|
@ -1479,16 +1485,12 @@ badjpeg:
|
||||||
|
|
||||||
if (cinfo.output_components == 0)
|
if (cinfo.output_components == 0)
|
||||||
{
|
{
|
||||||
#ifdef _DEBUG
|
Con_DPrintf("No JPEG Components, not a JPEG.\n");
|
||||||
Con_Printf("No JPEG Components, not a JPEG.\n");
|
|
||||||
#endif
|
|
||||||
goto badjpeg;
|
goto badjpeg;
|
||||||
}
|
}
|
||||||
if (cinfo.output_components!=3 && cinfo.output_components != 1)
|
if (cinfo.output_components!=3 && cinfo.output_components != 1)
|
||||||
{
|
{
|
||||||
#ifdef _DEBUG
|
Con_DPrintf("Bad number of components in JPEG: '%d', should be '3'.\n",cinfo.output_components);
|
||||||
Con_Printf("Bad number of components in JPEG: '%d', should be '3'.\n",cinfo.output_components);
|
|
||||||
#endif
|
|
||||||
goto badjpeg;
|
goto badjpeg;
|
||||||
}
|
}
|
||||||
size_stride = cinfo.output_width * cinfo.output_components;
|
size_stride = cinfo.output_width * cinfo.output_components;
|
||||||
|
@ -2770,7 +2772,7 @@ qbyte *Read32BitImageFile(qbyte *buf, int len, int *width, int *height, qboolean
|
||||||
#endif
|
#endif
|
||||||
#ifdef AVAIL_JPEGLIB
|
#ifdef AVAIL_JPEGLIB
|
||||||
//jpeg jfif only.
|
//jpeg jfif only.
|
||||||
if (len > 4 && (buf[0] == 0xff && buf[1] == 0xd8 && buf[2] == 0xff && buf[3] == 0xe0) && (data = ReadJPEGFile(buf, len, width, height)))
|
if (len > 4 && (buf[0] == 0xff && buf[1] == 0xd8 && buf[2] == 0xff /*&& buf[3] == 0xe0*/) && (data = ReadJPEGFile(buf, len, width, height)))
|
||||||
{
|
{
|
||||||
TRACE(("dbg: Read32BitImageFile: jpeg\n"));
|
TRACE(("dbg: Read32BitImageFile: jpeg\n"));
|
||||||
return data;
|
return data;
|
||||||
|
@ -4329,7 +4331,7 @@ qboolean Image_LoadTextureFromMemory(texid_t tex, int flags, const char *iname,
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
else
|
else
|
||||||
Sys_Printf("Unable to read file %s (format unsupported)\n", fname);
|
Con_Printf("Unable to read file %s (format unsupported)\n", fname);
|
||||||
|
|
||||||
BZ_Free(filedata);
|
BZ_Free(filedata);
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -3681,6 +3681,7 @@ void Media_InitFakeSoundDevice (int speed, int channels, int samplebits)
|
||||||
|
|
||||||
sc->sn.buffer = (unsigned char *) BZ_Malloc(sc->sn.samples*sc->sn.numchannels*(sc->sn.samplebits/8));
|
sc->sn.buffer = (unsigned char *) BZ_Malloc(sc->sn.samples*sc->sn.numchannels*(sc->sn.samplebits/8));
|
||||||
|
|
||||||
|
Z_ReallocElements((void**)&sc->channel, &sc->max_chans, MAX_DYNAMIC_CHANNELS+NUM_AMBIENTS+NUM_MUSICS, sizeof(*sc->channel));
|
||||||
|
|
||||||
sc->Lock = MSD_Lock;
|
sc->Lock = MSD_Lock;
|
||||||
sc->Unlock = MSD_Unlock;
|
sc->Unlock = MSD_Unlock;
|
||||||
|
|
|
@ -1635,6 +1635,7 @@ static soundcardinfo_t *SNDDMA_Init(char *driver, char *device, int seat)
|
||||||
st = (**sd->InitCard)(sc, device);
|
st = (**sd->InitCard)(sc, device);
|
||||||
if (st)
|
if (st)
|
||||||
{
|
{
|
||||||
|
cardinited:
|
||||||
S_DefaultSpeakerConfiguration(sc);
|
S_DefaultSpeakerConfiguration(sc);
|
||||||
if (snd_speed)
|
if (snd_speed)
|
||||||
{ //if the sample speeds of multiple soundcards do not match, it'll fail.
|
{ //if the sample speeds of multiple soundcards do not match, it'll fail.
|
||||||
|
@ -1650,6 +1651,8 @@ static soundcardinfo_t *SNDDMA_Init(char *driver, char *device, int seat)
|
||||||
|
|
||||||
if (sc->seat == -1 && sc->ListenerUpdate)
|
if (sc->seat == -1 && sc->ListenerUpdate)
|
||||||
sc->seat = 0; //hardware rendering won't cope with seat=-1
|
sc->seat = 0; //hardware rendering won't cope with seat=-1
|
||||||
|
|
||||||
|
Z_ReallocElements((void**)&sc->channel, &sc->max_chans, MAX_DYNAMIC_CHANNELS+NUM_AMBIENTS+NUM_MUSICS, sizeof(*sc->channel));
|
||||||
return sc;
|
return sc;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1666,25 +1669,7 @@ static soundcardinfo_t *SNDDMA_Init(char *driver, char *device, int seat)
|
||||||
|
|
||||||
st = (**od->ptr)(sc, device?atoi(device):0);
|
st = (**od->ptr)(sc, device?atoi(device):0);
|
||||||
if (st == 1)
|
if (st == 1)
|
||||||
{
|
goto cardinited;
|
||||||
S_DefaultSpeakerConfiguration(sc);
|
|
||||||
|
|
||||||
if (snd_speed)
|
|
||||||
{ //if the sample speeds of multiple soundcards do not match, it'll fail.
|
|
||||||
if (snd_speed != sc->sn.speed)
|
|
||||||
{
|
|
||||||
Con_TPrintf("S_Startup: Ignoring soundcard %s due to mismatched sample speeds.\nTry running Quake with -singlesound to use just the primary soundcard\n", sc->name);
|
|
||||||
S_ShutdownCard(sc);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
snd_speed = sc->sn.speed;
|
|
||||||
|
|
||||||
if (sc->seat == -1 && sc->ListenerUpdate)
|
|
||||||
sc->seat = 0; //hardware rendering won't cope with seat=-1
|
|
||||||
return sc;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -497,7 +497,7 @@ static int QDECL SSL_Read(struct vfsfile_s *f, void *buffer, int bytestoread)
|
||||||
{
|
{
|
||||||
if (read == GNUTLS_E_PREMATURE_TERMINATION)
|
if (read == GNUTLS_E_PREMATURE_TERMINATION)
|
||||||
{
|
{
|
||||||
Con_Printf("TLS Premature Termination\n");
|
Con_Printf("TLS Premature Termination from %s\n", file->certname);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
else if (read == GNUTLS_E_REHANDSHAKE)
|
else if (read == GNUTLS_E_REHANDSHAKE)
|
||||||
|
@ -506,7 +506,7 @@ static int QDECL SSL_Read(struct vfsfile_s *f, void *buffer, int bytestoread)
|
||||||
//if false, 'recommended' to send an GNUTLS_A_NO_RENEGOTIATION alert, no idea how.
|
//if false, 'recommended' to send an GNUTLS_A_NO_RENEGOTIATION alert, no idea how.
|
||||||
}
|
}
|
||||||
else if (!qgnutls_error_is_fatal(read))
|
else if (!qgnutls_error_is_fatal(read))
|
||||||
return 0;
|
return 0; //caller is expected to try again later, no real need to loop here, just in case it repeats (eg E_AGAIN)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Con_Printf("TLS Read Error %i (bufsize %i)\n", read, bytestoread);
|
Con_Printf("TLS Read Error %i (bufsize %i)\n", read, bytestoread);
|
||||||
|
@ -570,9 +570,9 @@ static ssize_t SSL_Push(gnutls_transport_ptr_t p, const void *data, size_t size)
|
||||||
qgnutls_transport_set_errno(file->session, EAGAIN);
|
qgnutls_transport_set_errno(file->session, EAGAIN);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
qgnutls_transport_set_errno(file->session, done<0?errno:0);
|
||||||
if (done < 0)
|
if (done < 0)
|
||||||
return 0;
|
return 0;
|
||||||
qgnutls_transport_set_errno(file->session, done<0?errno:0);
|
|
||||||
return done;
|
return done;
|
||||||
}
|
}
|
||||||
/*static ssize_t SSL_PushV(gnutls_transport_ptr_t p, giovec_t *iov, int iovcnt)
|
/*static ssize_t SSL_PushV(gnutls_transport_ptr_t p, giovec_t *iov, int iovcnt)
|
||||||
|
@ -607,11 +607,11 @@ static ssize_t SSL_Pull(gnutls_transport_ptr_t p, void *data, size_t size)
|
||||||
qgnutls_transport_set_errno(file->session, EAGAIN);
|
qgnutls_transport_set_errno(file->session, EAGAIN);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
qgnutls_transport_set_errno(file->session, done<0?errno:0);
|
||||||
if (done < 0)
|
if (done < 0)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
qgnutls_transport_set_errno(file->session, done<0?errno:0);
|
|
||||||
return done;
|
return done;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -114,9 +114,7 @@ qboolean GLSCR_UpdateScreen (void)
|
||||||
{
|
{
|
||||||
Editor_Draw();
|
Editor_Draw();
|
||||||
V_UpdatePalette (false);
|
V_UpdatePalette (false);
|
||||||
#if defined(_WIN32) && defined(GLQUAKE)
|
|
||||||
Media_RecordFrame();
|
Media_RecordFrame();
|
||||||
#endif
|
|
||||||
R2D_BrightenScreen();
|
R2D_BrightenScreen();
|
||||||
|
|
||||||
if (key_dest_mask & kdm_console)
|
if (key_dest_mask & kdm_console)
|
||||||
|
@ -135,9 +133,7 @@ qboolean GLSCR_UpdateScreen (void)
|
||||||
M_Draw(0);
|
M_Draw(0);
|
||||||
V_UpdatePalette (false);
|
V_UpdatePalette (false);
|
||||||
R2D_BrightenScreen();
|
R2D_BrightenScreen();
|
||||||
#if defined(_WIN32) && defined(GLQUAKE)
|
|
||||||
Media_RecordFrame();
|
Media_RecordFrame();
|
||||||
#endif
|
|
||||||
if (R2D_Flush)
|
if (R2D_Flush)
|
||||||
R2D_Flush();
|
R2D_Flush();
|
||||||
GL_Set2D (false);
|
GL_Set2D (false);
|
||||||
|
@ -206,9 +202,7 @@ qboolean GLSCR_UpdateScreen (void)
|
||||||
V_UpdatePalette (false);
|
V_UpdatePalette (false);
|
||||||
R2D_BrightenScreen();
|
R2D_BrightenScreen();
|
||||||
|
|
||||||
#if defined(_WIN32) && defined(GLQUAKE)
|
|
||||||
Media_RecordFrame();
|
Media_RecordFrame();
|
||||||
#endif
|
|
||||||
|
|
||||||
RSpeedShow();
|
RSpeedShow();
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue