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:
Spoike 2017-04-10 07:52:18 +00:00
parent 9efb2c5c0e
commit aef821b9c6
6 changed files with 71 additions and 72 deletions

View File

@ -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)

View File

@ -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;

View File

@ -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;

View File

@ -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;
}
} }
} }

View File

@ -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;
} }

View File

@ -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();