Couple of tweeks, breakages, and fixes.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@3898 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
Spoike 2011-09-05 01:48:23 +00:00
parent df9dae3e5f
commit 5a7f34bd50
32 changed files with 230 additions and 134 deletions

View File

@ -53,6 +53,14 @@ ifeq ($(FTE_TARGET),win32_sdl)
FTE_TARGET=win32_SDL FTE_TARGET=win32_SDL
endif endif
ifeq ($(FTE_TARGET),droid)
CC=~/droid/android-ndk-r6b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc -I ~/droid/android-ndk-r6b/platforms/android-9/arch-arm/usr/include/ -I ~/droid/android-ndk-r6b/sources/android/native_app_glue/ -DANDROID
STRIP=~/droid/android-ndk-r6b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-strip
DO_LD=~/droid/android-ndk-r6b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-ar -r $@
endif
#correct the gcc build when cross compiling #correct the gcc build when cross compiling
ifeq ($(FTE_TARGET),win32_SDL) ifeq ($(FTE_TARGET),win32_SDL)
ifeq ($(shell $(CC) -v 2>&1 | grep mingw),) ifeq ($(shell $(CC) -v 2>&1 | grep mingw),)
@ -348,7 +356,6 @@ CLIENT_OBJS = \
pr_menu.o pr_menu.o
GLQUAKE_OBJS = \ GLQUAKE_OBJS = \
gl_alias.o \
gl_draw.o \ gl_draw.o \
gl_model.o \ gl_model.o \
gl_ngraph.o \ gl_ngraph.o \
@ -381,7 +388,6 @@ D3DONLY_OBJS = \
gl_model.o \ gl_model.o \
gl_shader.o \ gl_shader.o \
gl_rlight.o \ gl_rlight.o \
gl_alias.o \
gl_warp.o \ gl_warp.o \
ltface.o \ ltface.o \
r_surf.o \ r_surf.o \
@ -442,16 +448,15 @@ SERVER_OBJS = \
httpserver.o httpserver.o
SERVERONLY_OBJS = \ SERVERONLY_OBJS = \
gl_alias.o \
svmodel.o \ svmodel.o \
sv_sys_unix.o sv_sys_unix.o
WINDOWSSERVERONLY_OBJS = \ WINDOWSSERVERONLY_OBJS = \
gl_alias.o \
svmodel.o \ svmodel.o \
sv_sys_win.o sv_sys_win.o
COMMON_OBJS = \ COMMON_OBJS = \
gl_alias.o \
com_mesh.o \ com_mesh.o \
com_phys_ode.o \ com_phys_ode.o \
common.o \ common.o \
@ -826,6 +831,22 @@ ifeq ($(FTE_TARGET),cygwin)
MINGL_DIR=mingl_cygwin MINGL_DIR=mingl_cygwin
endif endif
ifeq ($(FTE_TARGET),droid)
BASELDFLAGS=
SV_DIR=sv_droid
SV_LDFLAGS=-lz
SV_OBJS=$(COMMON_OBJS) $(SERVER_OBJS) $(PROGS_OBJS) svmodel.o sys_droid.o
SV_EXE_NAME=../fteqw.a$(BITS)
SV_LDFLAGS=
GLCL_OBJS=$(GL_OBJS) $(GLQUAKE_OBJS) gl_viddroid.o sys_droid.o cd_null.o
GL_LDFLAGS=$(GLLDFLAGS)
GLB_DIR=gl_droid
GL_EXE_NAME=../fteqw.a$(BITS)
endif
SV_DIR?=sv_sdl SV_DIR?=sv_sdl
.default: help .default: help
@ -919,7 +940,7 @@ PRECOMPHEADERS ?= $(OUT_DIR)/quakedef.h.gch
DO_LD ?= $(CC) -o $@ $(LTO_LD) $(WCFLAGS) $(CFLAGS) DO_LD ?= $(CC) -o $@ $(LTO_LD) $(WCFLAGS) $(CFLAGS)
$(OUT_DIR)/$(EXE_NAME): $(PRECOMPHEADERS) $(foreach fn, $(CUSTOMOBJS) $(foreach ol, $(OBJS), $($(ol))),$(if $(findstring ltox,$(fn)),,$(OUT_DIR)/$(fn))) $(OUT_DIR)/$(EXE_NAME): $(PRECOMPHEADERS) $(foreach fn, $(CUSTOMOBJS) $(foreach ol, $(OBJS), $($(ol))),$(if $(findstring ltox,$(fn)),,$(OUT_DIR)/$(fn)))
$(DO_LD) $(foreach fn, $(CUSTOMOBJS) $(foreach ol, $(OBJS) $(LTO_END), $($(ol))),$(if $(findstring ltox,$(fn)),$(subst ltox,-x ,$(fn)),$(OUT_DIR)/$(fn)) ) -x none $(LDFLAGS) $(DO_LD) $(foreach fn, $(CUSTOMOBJS) $(foreach ol, $(OBJS) $(LTO_END), $($(ol))),$(if $(findstring ltox,$(fn)),$(subst ltox,-x ,$(fn)),$(OUT_DIR)/$(fn)) ) $(LDFLAGS)
_out-rel: _out-rel:
$(MAKE) $(OUT_DIR)/$(EXE_NAME) EXE_NAME="$(EXE_NAME)" OUT_DIR="$(OUT_DIR)" WCFLAGS="$(WCFLAGS) $(RELEASE_CFLAGS)" LDFLAGS="$(BASELDFLAGS) $(LDFLAGS) $(RELEASE_LDFLAGS)" OBJS="$(OBJS)" $(MAKE) $(OUT_DIR)/$(EXE_NAME) EXE_NAME="$(EXE_NAME)" OUT_DIR="$(OUT_DIR)" WCFLAGS="$(WCFLAGS) $(RELEASE_CFLAGS)" LDFLAGS="$(BASELDFLAGS) $(LDFLAGS) $(RELEASE_LDFLAGS)" OBJS="$(OBJS)"

View File

@ -40,6 +40,7 @@ cvar_t cl_smartjump = CVAR("cl_smartjump", "1");
cvar_t cl_prydoncursor = CVAR("cl_prydoncursor", ""); //for dp protocol cvar_t cl_prydoncursor = CVAR("cl_prydoncursor", ""); //for dp protocol
cvar_t cl_instantrotate = CVARF("cl_instantrotate", "1", CVAR_SEMICHEAT); cvar_t cl_instantrotate = CVARF("cl_instantrotate", "1", CVAR_SEMICHEAT);
cvar_t in_xflip = {"in_xflip", "0"};
cvar_t prox_inmenu = CVAR("prox_inmenu", "0"); cvar_t prox_inmenu = CVAR("prox_inmenu", "0");
@ -572,10 +573,7 @@ void CL_BaseMove (usercmd_t *cmd, int pnum, float extra, float wantfps)
cmd->sidemove += scale*cl_sidespeed.value * CL_KeyState (&in_moveright, pnum); cmd->sidemove += scale*cl_sidespeed.value * CL_KeyState (&in_moveright, pnum);
cmd->sidemove -= scale*cl_sidespeed.value * CL_KeyState (&in_moveleft, pnum); cmd->sidemove -= scale*cl_sidespeed.value * CL_KeyState (&in_moveleft, pnum);
#ifdef IN_XFLIP
if(in_xflip.ival) cmd->sidemove *= -1; if(in_xflip.ival) cmd->sidemove *= -1;
#endif
cmd->upmove += scale*cl_upspeed.value * CL_KeyState (&in_up, pnum); cmd->upmove += scale*cl_upspeed.value * CL_KeyState (&in_up, pnum);
cmd->upmove -= scale*cl_upspeed.value * CL_KeyState (&in_down, pnum); cmd->upmove -= scale*cl_upspeed.value * CL_KeyState (&in_down, pnum);
@ -1653,7 +1651,7 @@ void CL_SendCmd (double frametime, qboolean mainloop)
dropcount = 0; dropcount = 0;
} }
#ifdef PEXT2_VOICECHAT #ifdef VOICECHAT
S_Voip_Transmit(clc_voicechat, &buf); S_Voip_Transmit(clc_voicechat, &buf);
#endif #endif
@ -1717,6 +1715,7 @@ void CL_InitInput (void)
Cmd_AddCommand("in_restart", IN_Restart); Cmd_AddCommand("in_restart", IN_Restart);
Cmd_AddCommand("sendcvar", CL_SendCvar_f); Cmd_AddCommand("sendcvar", CL_SendCvar_f);
Cvar_Register (&in_xflip, inputnetworkcvargroup);
Cvar_Register (&cl_nodelta, inputnetworkcvargroup); Cvar_Register (&cl_nodelta, inputnetworkcvargroup);
Cvar_Register (&prox_inmenu, inputnetworkcvargroup); Cvar_Register (&prox_inmenu, inputnetworkcvargroup);

View File

@ -1087,6 +1087,7 @@ int CL_LoadModels(int stage, qboolean dontactuallyload)
endstage(); endstage();
} }
#ifdef CSQC_DAT
if (atstage()) if (atstage())
{ {
if (CSQC_Inited()) if (CSQC_Inited())
@ -1099,6 +1100,7 @@ int CL_LoadModels(int stage, qboolean dontactuallyload)
} }
endstage(); endstage();
} }
#endif
return stage; return stage;
} }

View File

@ -33,8 +33,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "in_morphos.h" #include "in_morphos.h"
cvar_t in_xflip = {"in_xflip", "0"};
struct InputEvent imsgs[MAXIMSGS]; struct InputEvent imsgs[MAXIMSGS];
extern struct IntuitionBase *IntuitionBase; extern struct IntuitionBase *IntuitionBase;
extern struct Window *window; extern struct Window *window;
@ -126,7 +124,6 @@ void IN_ReInit()
void IN_Init(void) void IN_Init(void)
{ {
Cvar_Register (&in_xflip, "input controls");
IN_ReInit(); IN_ReInit();
} }
@ -247,9 +244,7 @@ void IN_Move (float *movements, int pnum)
old_mouse_x = mouse_x; old_mouse_x = mouse_x;
old_mouse_y = mouse_y; old_mouse_y = mouse_y;
#ifdef IN_XFLIP
if(in_xflip.value) mouse_x *= -1; if(in_xflip.value) mouse_x *= -1;
#endif
if (Key_MouseShouldBeFree()) if (Key_MouseShouldBeFree())
{ {

View File

@ -294,9 +294,6 @@ void IN_ReInit (void)
void IN_Init (void) void IN_Init (void)
{ {
#ifdef IN_XFLIP
Cvar_Register (&in_xflip, "Input Controls");
#endif
IN_ReInit(); IN_ReInit();
} }
void IN_Move (float *movements, int pnum) //add mouse movement to cmd void IN_Move (float *movements, int pnum) //add mouse movement to cmd

View File

@ -128,10 +128,6 @@ DWORD dwAxisMap[JOY_MAX_AXES];
DWORD dwControlMap[JOY_MAX_AXES]; DWORD dwControlMap[JOY_MAX_AXES];
PDWORD pdwRawValue[JOY_MAX_AXES]; PDWORD pdwRawValue[JOY_MAX_AXES];
#ifdef IN_XFLIP
cvar_t in_xflip = SCVAR("in_xflip", "0");
#endif
// none of these cvars are saved over a session // none of these cvars are saved over a session
// this means that advanced controller configuration needs to be executed // this means that advanced controller configuration needs to be executed
// each time. this avoids any problems with getting back to a default usage // each time. this avoids any problems with getting back to a default usage
@ -1135,10 +1131,6 @@ void IN_Init (void)
if (COM_CheckParm ("-dinput")) if (COM_CheckParm ("-dinput"))
Cvar_Set(&in_dinput, "1"); Cvar_Set(&in_dinput, "1");
#ifdef IN_XFLIP
Cvar_Register (&in_xflip, "Input stuff");
#endif
// joystick variables // joystick variables
Cvar_Register (&in_joystick, "Joystick variables"); Cvar_Register (&in_joystick, "Joystick variables");
@ -1304,9 +1296,7 @@ static void ProcessMouse(mouse_t *mouse, float *movements, int pnum)
mouse->delta[1]=0; mouse->delta[1]=0;
#ifdef IN_XFLIP
if(in_xflip.value) mx *= -1; if(in_xflip.value) mx *= -1;
#endif
mousemove_x += mx; mousemove_x += mx;
mousemove_y += my; mousemove_y += my;

View File

@ -36,9 +36,7 @@ void IN_ModeChanged (void);
void IN_ClearStates (void); void IN_ClearStates (void);
void IN_Accumulate (void); void IN_Accumulate (void);
#ifdef IN_XFLIP
extern cvar_t in_xflip; extern cvar_t in_xflip;
#endif
#ifdef _SDL #ifdef _SDL
void IN_ActivateMouse(void); void IN_ActivateMouse(void);

View File

@ -163,6 +163,8 @@ K_MAX = 256
#define K_RSHIFT K_SHIFT #define K_RSHIFT K_SHIFT
#define K_RCTRL K_CTRL #define K_RCTRL K_CTRL
#define K_LCTRL K_CTRL #define K_LCTRL K_CTRL
#define K_RALT K_CTRL
#define K_LALT K_CTRL
typedef enum {key_game, key_console, key_message, key_menu, key_editor} keydest_t; typedef enum {key_game, key_console, key_message, key_menu, key_editor} keydest_t;

View File

@ -39,7 +39,7 @@ static const texid_t r_nulltex = {0};
#define TEXVALID(t) ((t).num!=0) #define TEXVALID(t) ((t).num!=0)
#ifdef D3DQUAKE #if defined(D3DQUAKE) || defined(ANDROID)
#define sizeof_index_t 2 #define sizeof_index_t 2
#endif #endif
#if sizeof_index_t == 2 #if sizeof_index_t == 2

View File

@ -307,7 +307,7 @@ static qboolean S_Speex_Init(void)
void S_Voip_Parse(void) void S_Voip_Parse(void)
{ {
unsigned int sender; unsigned int sender;
int bytes; unsigned int bytes;
unsigned char data[1024], *start; unsigned char data[1024], *start;
short decodebuf[1024]; short decodebuf[1024];
unsigned int decodesamps, len, newseq, drops; unsigned int decodesamps, len, newseq, drops;
@ -599,6 +599,17 @@ qboolean S_Voip_Speaking(unsigned int plno)
return false; return false;
return s_speex.lastspoke[plno] > realtime; return s_speex.lastspoke[plno] > realtime;
} }
#else
void S_Voip_Parse(void)
{
unsigned int bytes;
MSG_ReadByte();
MSG_ReadByte();
MSG_ReadByte();
bytes = MSG_ReadShort();
MSG_ReadSkip(bytes);
}
#endif #endif

View File

@ -45,6 +45,12 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#define MINGW //Erm, why is this happening? #define MINGW //Erm, why is this happening?
#endif #endif
#ifdef ANDROID
#define NO_PNG
#define NO_JPEG
#define NO_OGG
#endif
#ifdef HAVE_CONFIG_H //if it was configured properly, then we have a more correct list of features we want to use. #ifdef HAVE_CONFIG_H //if it was configured properly, then we have a more correct list of features we want to use.
#include "config.h" #include "config.h"
#else #else
@ -187,9 +193,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
// #define QTERM //qterm... adds a console command that allows running programs from within quake - bit like xterm. // #define QTERM //qterm... adds a console command that allows running programs from within quake - bit like xterm.
#define CL_MASTER //query master servers and stuff for a dynamic server listing. #define CL_MASTER //query master servers and stuff for a dynamic server listing.
#define R_XFLIP //allow view to be flipped horizontally #define R_XFLIP //allow view to be flipped horizontally
#ifndef NO_XFLIP
#define IN_XFLIP //allow input to be flipped horizontally.
#endif
#define TEXTEDITOR #define TEXTEDITOR
#define PPL //per pixel lighting (stencil shadowing) #define PPL //per pixel lighting (stencil shadowing)
#define DDS //a sort of image file format. #define DDS //a sort of image file format.
@ -215,13 +218,19 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#define PSET_CLASSIC #define PSET_CLASSIC
//#define PSET_DARKPLACES //#define PSET_DARKPLACES
#define VOICECHAT //not added yet. #define VOICECHAT
//these things were moved to plugins. //these things were moved to plugins.
#endif #endif
#endif #endif
#ifdef ANDROID
#undef RTLIGHTS
#undef VOICECHAT
#undef TEXTEDITOR
#endif
//fix things a little... //fix things a little...
#ifdef NPQTV #ifdef NPQTV

View File

@ -3009,7 +3009,10 @@ void COM_InitArgv (int argc, const char **argv) //not allowed to tprint
FILE *f; FILE *f;
f = fopen(va("%s_p.txt", argv[0]), "rb"); if (argv && argv[0])
f = fopen(va("%s_p.txt", argv[0]), "rb");
else
f = NULL;
if (f) if (f)
{ {
char *buffer; char *buffer;

View File

@ -84,6 +84,10 @@ vfsfile_t *FSSTDIO_OpenTemp(void)
return (vfsfile_t*)file; return (vfsfile_t*)file;
} }
#ifdef ANDROID
vfsfile_t *Sys_OpenAsset(const char *fname);
#endif
vfsfile_t *VFSSTDIO_Open(const char *osname, const char *mode) vfsfile_t *VFSSTDIO_Open(const char *osname, const char *mode)
{ {
FILE *f; FILE *f;
@ -95,6 +99,15 @@ vfsfile_t *VFSSTDIO_Open(const char *osname, const char *mode)
char newmode[3]; char newmode[3];
int modec = 0; int modec = 0;
#ifdef ANDROID
// if (!strncmp("asset/", osname, 6))
{
if (append || write)
return NULL;
return Sys_OpenAsset(osname);
}
#endif
if (read) if (read)
newmode[modec++] = 'r'; newmode[modec++] = 'r';
if (write) if (write)
@ -176,7 +189,6 @@ static void FSSTDIO_BuildHash(void *handle)
} }
static qboolean FSSTDIO_FLocate(void *handle, flocation_t *loc, const char *filename, void *hashedresult) static qboolean FSSTDIO_FLocate(void *handle, flocation_t *loc, const char *filename, void *hashedresult)
{ {
FILE *f;
int len; int len;
char netpath[MAX_OSPATH]; char netpath[MAX_OSPATH];
@ -195,13 +207,25 @@ static qboolean FSSTDIO_FLocate(void *handle, flocation_t *loc, const char *file
// check a file in the directory tree // check a file in the directory tree
snprintf (netpath, sizeof(netpath)-1, "%s/%s",(char*)handle, filename); snprintf (netpath, sizeof(netpath)-1, "%s/%s",(char*)handle, filename);
f = fopen(netpath, "rb"); #ifdef ANDROID
if (!f) {
return false; vfsfile_t *f = VFSSTDIO_Open(netpath, "rb");
if (!f)
return false;
len = VFS_GETLEN(f);
VFS_CLOSE(f);
}
#else
{
FILE *f = fopen(netpath, "rb");
if (!f)
return false;
fseek(f, 0, SEEK_END); fseek(f, 0, SEEK_END);
len = ftell(f); len = ftell(f);
fclose(f); fclose(f);
}
#endif
if (loc) if (loc)
{ {
loc->len = len; loc->len = len;

View File

@ -71,9 +71,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#endif #endif
#define PEXT2_PRYDONCURSOR 0x00000001 #define PEXT2_PRYDONCURSOR 0x00000001
#ifdef VOICECHAT
#define PEXT2_VOICECHAT 0x00000002 #define PEXT2_VOICECHAT 0x00000002
#endif
#define PEXT2_SETANGLEDELTA 0x00000004 #define PEXT2_SETANGLEDELTA 0x00000004
//#define PEXT2_64PLAYERS 0x02000000 //Client is able to cope with 64 players. Wow. //#define PEXT2_64PLAYERS 0x02000000 //Client is able to cope with 64 players. Wow.
//#define PEXT2_PK3DOWNLOADS 0x10000000 //retrieve a list of pk3s/pk3s/paks for downloading (with optional URL and crcs) //#define PEXT2_PK3DOWNLOADS 0x10000000 //retrieve a list of pk3s/pk3s/paks for downloading (with optional URL and crcs)

View File

@ -425,7 +425,12 @@ void GL_TexEnv(GLenum mode)
if (mode != shaderstate.texenvmode[shaderstate.currenttmu]) if (mode != shaderstate.texenvmode[shaderstate.currenttmu])
#endif #endif
{ {
#ifdef ANDROID
/*android appears to have a bug, and requires f and not i*/
qglTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, mode);
#else
qglTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, mode); qglTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, mode);
#endif
shaderstate.texenvmode[shaderstate.currenttmu] = mode; shaderstate.texenvmode[shaderstate.currenttmu] = mode;
} }
} }
@ -568,7 +573,9 @@ void GL_MTBind(int tmu, int target, texid_t texnum)
if (target) if (target)
bindTexFunc (target, texnum.num); bindTexFunc (target, texnum.num);
#ifndef FORCESTATE
if (shaderstate.curtexturetype[tmu] != target && !gl_config.nofixedfunc) if (shaderstate.curtexturetype[tmu] != target && !gl_config.nofixedfunc)
#endif
{ {
if (shaderstate.curtexturetype[tmu]) if (shaderstate.curtexturetype[tmu])
qglDisable(shaderstate.curtexturetype[tmu]); qglDisable(shaderstate.curtexturetype[tmu]);
@ -577,7 +584,9 @@ void GL_MTBind(int tmu, int target, texid_t texnum)
qglEnable(target); qglEnable(target);
} }
#ifndef FORCESTATE
if (((shaderstate.tmuarrayactive>>tmu) & 1) != 0) if (((shaderstate.tmuarrayactive>>tmu) & 1) != 0)
#endif
{ {
qglClientActiveTextureARB(tmu + mtexid0); qglClientActiveTextureARB(tmu + mtexid0);
if (0) if (0)
@ -605,7 +614,9 @@ void GL_LazyBind(int tmu, int target, texid_t texnum, qboolean arrays)
if (target) if (target)
bindTexFunc (target, texnum.num); bindTexFunc (target, texnum.num);
#ifndef FORCESTATE
if (shaderstate.curtexturetype[tmu] != target && !gl_config.nofixedfunc) if (shaderstate.curtexturetype[tmu] != target && !gl_config.nofixedfunc)
#endif
{ {
if (shaderstate.curtexturetype[tmu]) if (shaderstate.curtexturetype[tmu])
qglDisable(shaderstate.curtexturetype[tmu]); qglDisable(shaderstate.curtexturetype[tmu]);
@ -618,7 +629,9 @@ void GL_LazyBind(int tmu, int target, texid_t texnum, qboolean arrays)
if (!target) if (!target)
arrays = false; arrays = false;
#ifndef FORCESTATE
if (((shaderstate.tmuarrayactive>>tmu) & 1) != arrays) if (((shaderstate.tmuarrayactive>>tmu) & 1) != arrays)
#endif
{ {
qglClientActiveTextureARB(mtexid0 + tmu); qglClientActiveTextureARB(mtexid0 + tmu);
if (arrays) if (arrays)
@ -1915,7 +1928,7 @@ static void GenerateColourMods(const shaderpass_t *pass)
qglShadeModel(GL_SMOOTH); qglShadeModel(GL_SMOOTH);
return; return;
} }
if (pass->flags & SHADER_PASS_NOCOLORARRAY) if (pass->flags & SHADER_PASS_NOCOLORARRAY && qglColor4fv)
{ {
avec4_t scol; avec4_t scol;
@ -2308,7 +2321,6 @@ static void DrawPass(const shaderpass_t *pass)
} }
if (i == lastpass) if (i == lastpass)
return; return;
BE_SendPassBlendDepthMask(pass[i].shaderbits); BE_SendPassBlendDepthMask(pass[i].shaderbits);
GenerateColourMods(pass+i); GenerateColourMods(pass+i);
tmu = 0; tmu = 0;
@ -2823,15 +2835,15 @@ void BE_SelectFog(vec3_t colour, float alpha, float density)
qglColor4f(colour[0], colour[1], colour[2], alpha); qglColor4f(colour[0], colour[1], colour[2], alpha);
} }
#ifdef RTLIGHTS
void BE_SelectDLight(dlight_t *dl, vec3_t colour) void BE_SelectDLight(dlight_t *dl, vec3_t colour)
{ {
shaderstate.lightradius = dl->radius; shaderstate.lightradius = dl->radius;
VectorCopy(dl->origin, shaderstate.lightorg); VectorCopy(dl->origin, shaderstate.lightorg);
VectorCopy(colour, shaderstate.lightcolours); VectorCopy(colour, shaderstate.lightcolours);
#ifdef RTLIGHTS
shaderstate.curshadowmap = dl->stexture; shaderstate.curshadowmap = dl->stexture;
}
#endif #endif
}
void BE_PushOffsetShadow(qboolean pushdepth) void BE_PushOffsetShadow(qboolean pushdepth)
{ {
@ -3484,8 +3496,11 @@ void GLBE_DrawLightPrePass(qbyte *vis, batch_t **batches)
BE_SelectEntity(&r_worldentity); BE_SelectEntity(&r_worldentity);
GLBE_SubmitMeshes(true, batches, SHADER_SORT_SKY, SHADER_SORT_NEAREST); GLBE_SubmitMeshes(true, batches, SHADER_SORT_SKY, SHADER_SORT_NEAREST);
#ifdef RTLIGHTS
/*regular lighting now*/ /*regular lighting now*/
BE_SelectEntity(&r_worldentity);
Sh_DrawLights(vis); Sh_DrawLights(vis);
#endif
shaderstate.tex_sourcecol = r_nulltex; shaderstate.tex_sourcecol = r_nulltex;
shaderstate.tex_sourcedepth = r_nulltex; shaderstate.tex_sourcedepth = r_nulltex;

View File

@ -995,14 +995,13 @@ void GL_Upload32_Int (char *name, unsigned *data, int width, int height, unsigne
} }
} }
} }
TRACE(("dbg: GL_Upload32: %i %i\n", scaled_width, scaled_height)); TRACE(("dbg: GL_Upload32: %i %i\n", scaled_width, scaled_height));
if (scaled_width * scaled_height > sizeofuploadmemorybuffer/4) if (scaled_width * scaled_height > sizeofuploadmemorybuffer/4)
Sys_Error ("GL_LoadTexture: too big"); Sys_Error ("GL_LoadTexture: too big");
if (gl_config.gles) if (gl_config.gles)
samples = GL_RGBA; /* GL ES doesn't allow for format conversion */ glcolormode = samples = GL_RGBA; /* GL ES doesn't allow for format conversion */
else else
samples = (flags&IF_NOALPHA) ? GL_RGB : GL_RGBA; samples = (flags&IF_NOALPHA) ? GL_RGB : GL_RGBA;
@ -1014,6 +1013,28 @@ void GL_Upload32_Int (char *name, unsigned *data, int width, int height, unsigne
TRACE(("dbg: GL_Upload32: GL_SGIS_generate_mipmap\n")); TRACE(("dbg: GL_Upload32: GL_SGIS_generate_mipmap\n"));
qglTexParameteri(GL_TEXTURE_2D, GL_GENERATE_MIPMAP_SGIS, GL_TRUE); qglTexParameteri(GL_TEXTURE_2D, GL_GENERATE_MIPMAP_SGIS, GL_TRUE);
} }
if (!(flags&IF_NOMIPMAP))
{
qglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, gl_filter_min);
qglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, gl_filter_max);
}
else
{
qglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, gl_filter_max_2d);
qglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, gl_filter_max_2d);
}
if (flags&IF_CLAMP)
{
qglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
qglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
}
else
{
qglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
qglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
}
if (scaled_width == width && scaled_height == height) if (scaled_width == width && scaled_height == height)
{ {
@ -1100,28 +1121,12 @@ void GL_Upload32_Int (char *name, unsigned *data, int width, int height, unsigne
} }
} }
done: done:
if (gl_config.sgis_generate_mipmap && !(flags&IF_NOMIPMAP))
qglTexParameteri(GL_TEXTURE_2D, GL_GENERATE_MIPMAP_SGIS, GL_FALSE);
if (gl_anisotropy_factor) if (gl_anisotropy_factor)
qglTexParameterf (GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, gl_anisotropy_factor); // without this, you could loose anisotropy on mapchange qglTexParameterf (GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, gl_anisotropy_factor); // without this, you could loose anisotropy on mapchange
if (!(flags&IF_NOMIPMAP)) if (gl_config.sgis_generate_mipmap && !(flags&IF_NOMIPMAP))
{ qglTexParameteri(GL_TEXTURE_2D, GL_GENERATE_MIPMAP_SGIS, GL_FALSE);
qglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, gl_filter_min);
qglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, gl_filter_max);
}
else
{
qglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, gl_filter_max_2d);
qglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, gl_filter_max_2d);
}
if (flags&IF_CLAMP)
{
qglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
qglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
}
} }
void GL_Upload32 (char *name, unsigned *data, int width, int height, unsigned int flags) void GL_Upload32 (char *name, unsigned *data, int width, int height, unsigned int flags)

View File

@ -117,8 +117,9 @@ void GLR_NetGraph (void)
sprintf(st, "%3i%% packet loss", lost); sprintf(st, "%3i%% packet loss", lost);
Draw_FunString(8, y, st); Draw_FunString(8, y, st);
y += 8; y += 8;
GL_MTBind(0, GL_TEXTURE_2D, netgraphtexture); #ifndef ANDROID
GL_MTBind(0, GL_TEXTURE_2D, netgraphtexture);
qglTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA, qglTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA,
NET_TIMINGS, NET_GRAPHHEIGHT, 0, GL_RGBA, NET_TIMINGS, NET_GRAPHHEIGHT, 0, GL_RGBA,
@ -140,6 +141,7 @@ void GLR_NetGraph (void)
qglTexCoord2f (0, 1); qglTexCoord2f (0, 1);
qglVertex2f (x, y+NET_GRAPHHEIGHT); qglVertex2f (x, y+NET_GRAPHHEIGHT);
qglEnd (); qglEnd ();
#endif
} }
void GLR_FrameTimeGraph (int frametime) void GLR_FrameTimeGraph (int frametime)
@ -177,7 +179,8 @@ void GLR_FrameTimeGraph (int frametime)
sprintf(st, "%3i%% packet loss", lost); sprintf(st, "%3i%% packet loss", lost);
Draw_FunString(8, y, st); Draw_FunString(8, y, st);
y += 8; y += 8;
#ifndef ANDROID
GL_MTBind(0, GL_TEXTURE_2D, netgraphtexture); GL_MTBind(0, GL_TEXTURE_2D, netgraphtexture);
qglTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA, qglTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA,
@ -200,6 +203,7 @@ void GLR_FrameTimeGraph (int frametime)
qglTexCoord2f (0, 1); qglTexCoord2f (0, 1);
qglVertex2f (x, y+NET_GRAPHHEIGHT); qglVertex2f (x, y+NET_GRAPHHEIGHT);
qglEnd (); qglEnd ();
#endif
} }
#endif #endif

View File

@ -830,14 +830,18 @@ void GLR_DrawPortal(batch_t *batch, batch_t **blist)
/*FIXME: can we get away with stenciling the screen?*/ /*FIXME: can we get away with stenciling the screen?*/
/*Add to frustum culling instead of clip planes?*/ /*Add to frustum culling instead of clip planes?*/
glplane[0] = -plane.normal[0]; if (qglClipPlane)
glplane[1] = -plane.normal[1]; {
glplane[2] = -plane.normal[2]; glplane[0] = -plane.normal[0];
glplane[3] = plane.dist; glplane[1] = -plane.normal[1];
qglClipPlane(GL_CLIP_PLANE0, glplane); glplane[2] = -plane.normal[2];
qglEnable(GL_CLIP_PLANE0); glplane[3] = plane.dist;
qglClipPlane(GL_CLIP_PLANE0, glplane);
qglEnable(GL_CLIP_PLANE0);
}
R_RenderScene(); R_RenderScene();
qglDisable(GL_CLIP_PLANE0); if (qglClipPlane)
qglDisable(GL_CLIP_PLANE0);
for (sort = 0; sort < SHADER_SORT_COUNT; sort++) for (sort = 0; sort < SHADER_SORT_COUNT; sort++)
for (batch = blist[sort]; batch; batch = batch->next) for (batch = blist[sort]; batch; batch = batch->next)
@ -851,12 +855,15 @@ void GLR_DrawPortal(batch_t *batch, batch_t **blist)
VectorCopy (r_refdef.vieworg, r_origin); VectorCopy (r_refdef.vieworg, r_origin);
R_SetFrustum (r_refdef.m_projection, r_refdef.m_view); R_SetFrustum (r_refdef.m_projection, r_refdef.m_view);
/*put GL back the way it was*/ if (qglLoadMatrixf)
qglMatrixMode(GL_PROJECTION); {
qglLoadMatrixf(r_refdef.m_projection); /*put GL back the way it was*/
qglMatrixMode(GL_PROJECTION);
qglLoadMatrixf(r_refdef.m_projection);
qglMatrixMode(GL_MODELVIEW); qglMatrixMode(GL_MODELVIEW);
qglLoadMatrixf(r_refdef.m_view); qglLoadMatrixf(r_refdef.m_view);
}
GL_CullFace(0); GL_CullFace(0);
@ -952,6 +959,7 @@ static void R_RenderMotionBlur(void)
#ifdef _MSC_VER #ifdef _MSC_VER
#pragma message("backend fixme") #pragma message("backend fixme")
#endif #endif
#ifndef ANDROID
Con_Printf("motionblur is not updated for the backend\n"); Con_Printf("motionblur is not updated for the backend\n");
if (gl_config.arb_texture_non_power_of_two) if (gl_config.arb_texture_non_power_of_two)
@ -1015,7 +1023,7 @@ static void R_RenderMotionBlur(void)
qglCopyTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 0, 0, vwidth, vheight, 0); qglCopyTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 0, 0, vwidth, vheight, 0);
qglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); qglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
qglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); qglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
#endif
PPL_RevertToKnownState(); PPL_RevertToKnownState();
} }

View File

@ -312,7 +312,7 @@ void GLBE_UploadAllLightmaps(void)
switch (lightmap_bytes) switch (lightmap_bytes)
{ {
case 4: case 4:
qglTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, qglTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA,
LMBLOCK_WIDTH, LMBLOCK_WIDTH, 0, (lightmap_bgra?GL_BGRA_EXT:GL_RGBA), GL_UNSIGNED_INT_8_8_8_8_REV, LMBLOCK_WIDTH, LMBLOCK_WIDTH, 0, (lightmap_bgra?GL_BGRA_EXT:GL_RGBA), GL_UNSIGNED_INT_8_8_8_8_REV,
lightmap[i]->lightmaps); lightmap[i]->lightmaps);
break; break;

View File

@ -1387,7 +1387,7 @@ struct sbuiltin_s
/*calc diffuse lighting term*/ /*calc diffuse lighting term*/
"vec3 lightDir = l_lightposition - worldPos;\n" "vec3 lightDir = l_lightposition - worldPos;\n"
"float zdiff = 1.0 - saturate( length(lightDir) / lightAttenuation );\n" "float zdiff = 1.0 - clamp(length(lightDir) / lightAttenuation, 0.0, 1.0);\n"
"float atten = (radiusFar * zdiff) / (radiusFar - radiusNear);\n" "float atten = (radiusFar * zdiff) / (radiusFar - radiusNear);\n"
"atten = pow(atten, 2.0);\n" "atten = pow(atten, 2.0);\n"
"lightDir = normalize(lightDir);\n" "lightDir = normalize(lightDir);\n"

View File

@ -458,6 +458,7 @@ void GL_CheckExtensions (void *(*getglfunction) (char *name), float ver)
if (gl_config.gles) if (gl_config.gles)
{ {
qglActiveTextureARB = (void *) getglext("glActiveTexture"); qglActiveTextureARB = (void *) getglext("glActiveTexture");
qglClientActiveTextureARB = (void *) getglext("glClientActiveTexture");
qglSelectTextureSGIS = qglActiveTextureARB; qglSelectTextureSGIS = qglActiveTextureARB;
mtexid0 = GL_TEXTURE0_ARB; mtexid0 = GL_TEXTURE0_ARB;
mtexid1 = GL_TEXTURE1_ARB; mtexid1 = GL_TEXTURE1_ARB;
@ -1101,7 +1102,6 @@ void GL_Init(void *(*getglfunction) (char *name))
if (!gl_extensions) if (!gl_extensions)
Sys_Error("no extensions\n"); Sys_Error("no extensions\n");
} }
GL_CheckExtensions (getglfunction, gl_major_version + (gl_minor_version/10.f)); GL_CheckExtensions (getglfunction, gl_major_version + (gl_minor_version/10.f));
if (gl_config.gles && gl_config.glversion >= 2) if (gl_config.gles && gl_config.glversion >= 2)

View File

@ -2,6 +2,7 @@
#define __GL_VIDEGL_H__ #define __GL_VIDEGL_H__
#include "quakedef.h" #include "quakedef.h"
#define NativeWindowType EGLNativeWindowType
#include <EGL/egl.h> #include <EGL/egl.h>
#include <dlfcn.h> #include <dlfcn.h>

View File

@ -92,10 +92,6 @@ extern cvar_t _windowed_mouse;
cvar_t m_filter = {"m_filter", "0"}; cvar_t m_filter = {"m_filter", "0"};
cvar_t m_accel = {"m_accel", "0"}; cvar_t m_accel = {"m_accel", "0"};
#ifdef IN_XFLIP
cvar_t in_xflip = {"in_xflip", "0"};
#endif
static float mouse_x, mouse_y; static float mouse_x, mouse_y;
static float old_mouse_x, old_mouse_y; static float old_mouse_x, old_mouse_y;
@ -164,6 +160,7 @@ qboolean GLX_InitLibrary(char *driver)
void *GLX_GetSymbol(char *name) void *GLX_GetSymbol(char *name)
{ {
void *symb; void *symb;
if (qglXGetProcAddress) if (qglXGetProcAddress)
symb = qglXGetProcAddress(name); symb = qglXGetProcAddress(name);
else else
@ -346,7 +343,8 @@ static void uninstall_grabs(void)
} }
#endif #endif
XUngrabPointer(vid_dpy, CurrentTime); if (vid_dpy)
XUngrabPointer(vid_dpy, CurrentTime);
// XSync(vid_dpy, True); // XSync(vid_dpy, True);
} }
@ -591,7 +589,7 @@ void GLVID_Shutdown(void)
EGL_Shutdown(); EGL_Shutdown();
#else #else
printf("GLVID_Shutdown\n"); printf("GLVID_Shutdown\n");
if (!ctx) if (!vid_dpy)
return; return;
XUngrabKeyboard(vid_dpy, CurrentTime); XUngrabKeyboard(vid_dpy, CurrentTime);
@ -599,7 +597,10 @@ void GLVID_Shutdown(void)
uninstall_grabs(); uninstall_grabs();
if (ctx) if (ctx)
{
qglXDestroyContext(vid_dpy, ctx); qglXDestroyContext(vid_dpy, ctx);
ctx = NULL;
}
#ifdef WITH_VMODE #ifdef WITH_VMODE
if (originalapplied) if (originalapplied)
@ -1053,9 +1054,6 @@ void IN_ReInit(void)
void IN_Init(void) void IN_Init(void)
{ {
#ifdef IN_XFLIP
Cvar_Register (&in_xflip, "Input variables");
#endif
IN_ReInit(); IN_ReInit();
} }
@ -1135,9 +1133,7 @@ void IN_MouseMove (float *movements, int pnum)
mouse_y *= sensitivity.value*in_sensitivityscale; mouse_y *= sensitivity.value*in_sensitivityscale;
} }
#ifdef IN_XFLIP
if(in_xflip.value) mouse_x *= -1; if(in_xflip.value) mouse_x *= -1;
#endif
if (movements) if (movements)
{ {

View File

@ -28,7 +28,6 @@
// note: cocoa code is separated in vid_cocoa.m because of compilation pbs // note: cocoa code is separated in vid_cocoa.m because of compilation pbs
cvar_t in_xflip = SCVAR("in_xflip", "0");
extern cvar_t vid_hardwaregamma; extern cvar_t vid_hardwaregamma;
static void *agllibrary; static void *agllibrary;

View File

@ -1,9 +1,5 @@
#include "quakedef.h" #include "quakedef.h"
#ifdef IN_XFLIP
cvar_t in_xflip = {"in_xflip", "0"};
#endif
qboolean GLVID_Init(rendererstate_t *info, unsigned char *palette) qboolean GLVID_Init(rendererstate_t *info, unsigned char *palette)
{ {
return false; return false;
@ -57,9 +53,6 @@ void IN_ReInit(void)
void IN_Init(void) void IN_Init(void)
{ {
#ifdef IN_XFLIP
Cvar_Register (&in_xflip, "Input Controls");
#endif
} }
void IN_Shutdown(void) void IN_Shutdown(void)

View File

@ -15,10 +15,6 @@ HWND mainwindow;
extern qboolean vid_isfullscreen; extern qboolean vid_isfullscreen;
#ifdef IN_XFLIP
cvar_t in_xflip = {"in_xflip", "0"};
#endif
unsigned short intitialgammaramps[3][256]; unsigned short intitialgammaramps[3][256];
qboolean ActiveApp; qboolean ActiveApp;

View File

@ -45,7 +45,35 @@ qboolean BoundsIntersect (vec3_t mins1, vec3_t maxs1, vec3_t mins2, vec3_t maxs2
void ClearBounds (vec3_t mins, vec3_t maxs); void ClearBounds (vec3_t mins, vec3_t maxs);
#ifdef GLQUAKE #ifdef GLQUAKE
#ifdef __MACOSX__ #if defined(ANDROID) /*FIXME: actually just to use standard GLES headers instead of full GL*/
#if 1
#include <GLES/gl.h>
#else
#include <GLES2/gl2.h>
/*gles has no fixed function*/
#define GL_PROJECTION 0
#define GL_MODELVIEW 0
#define GL_CLIP_PLANE0 0
#define GL_ALPHA_TEST 0
#define GL_MODULATE 0
#define GL_FLAT 0
#define GL_SMOOTH 0
#define GL_DECAL 0
#define GL_ADD 0
#define GL_TEXTURE_ENV 0
#define GL_TEXTURE_ENV_MODE 0
#define GL_COLOR_ARRAY 0
#define GL_VERTEX_ARRAY 0
#define GL_TEXTURE_COORD_ARRAY 0
#endif
/*gles has no doubles*/
#define GLclampd GLclampf
#define GLdouble GLfloat
#define GL_CLAMP GL_CLAMP_TO_EDGE
#define GL_FILL (Sys_Error("GL_FILL was used"),0)
#define GL_QUADS (Sys_Error("GL_QUADS was used"),0)
#elif defined(__MACOSX__)
//apple, you suck. //apple, you suck.
#include <AGL/agl.h> #include <AGL/agl.h>
#else #else
@ -395,6 +423,7 @@ extern void (APIENTRY *qglCallLists) (GLsizei n, GLenum type, const GLvoid *list
extern void (APIENTRY *qglClear) (GLbitfield mask); extern void (APIENTRY *qglClear) (GLbitfield mask);
extern void (APIENTRY *qglClearAccum) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); extern void (APIENTRY *qglClearAccum) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
extern void (APIENTRY *qglClearColor) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); extern void (APIENTRY *qglClearColor) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
extern void (APIENTRY *qglClearDepthf) (GLclampf depth);
extern void (APIENTRY *qglClearDepth) (GLclampd depth); extern void (APIENTRY *qglClearDepth) (GLclampd depth);
extern void (APIENTRY *qglClearIndex) (GLfloat c); extern void (APIENTRY *qglClearIndex) (GLfloat c);
extern void (APIENTRY *qglClearStencil) (GLint s); extern void (APIENTRY *qglClearStencil) (GLint s);

View File

@ -386,20 +386,20 @@ typedef void (APIENTRY * PFNGLACTIVESTENCILFACEEXTPROC) (GLenum face);
#ifndef GL_ARB_vertex_program #ifndef GL_ARB_vertex_program
#define GL_ARB_vertex_program 1 #define GL_ARB_vertex_program 1
typedef void (APIENTRYP PFNGLVERTEXATTRIB1DARBPROC) (GLuint index, GLdouble x); //typedef void (APIENTRYP PFNGLVERTEXATTRIB1DARBPROC) (GLuint index, GLdouble x);
typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVARBPROC) (GLuint index, const GLdouble *v); //typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVARBPROC) (GLuint index, const GLdouble *v);
typedef void (APIENTRYP PFNGLVERTEXATTRIB1FARBPROC) (GLuint index, GLfloat x); typedef void (APIENTRYP PFNGLVERTEXATTRIB1FARBPROC) (GLuint index, GLfloat x);
typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVARBPROC) (GLuint index, const GLfloat *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVARBPROC) (GLuint index, const GLfloat *v);
typedef void (APIENTRYP PFNGLVERTEXATTRIB1SARBPROC) (GLuint index, GLshort x); typedef void (APIENTRYP PFNGLVERTEXATTRIB1SARBPROC) (GLuint index, GLshort x);
typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVARBPROC) (GLuint index, const GLshort *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVARBPROC) (GLuint index, const GLshort *v);
typedef void (APIENTRYP PFNGLVERTEXATTRIB2DARBPROC) (GLuint index, GLdouble x, GLdouble y); //typedef void (APIENTRYP PFNGLVERTEXATTRIB2DARBPROC) (GLuint index, GLdouble x, GLdouble y);
typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVARBPROC) (GLuint index, const GLdouble *v); //typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVARBPROC) (GLuint index, const GLdouble *v);
typedef void (APIENTRYP PFNGLVERTEXATTRIB2FARBPROC) (GLuint index, GLfloat x, GLfloat y); typedef void (APIENTRYP PFNGLVERTEXATTRIB2FARBPROC) (GLuint index, GLfloat x, GLfloat y);
typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVARBPROC) (GLuint index, const GLfloat *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVARBPROC) (GLuint index, const GLfloat *v);
typedef void (APIENTRYP PFNGLVERTEXATTRIB2SARBPROC) (GLuint index, GLshort x, GLshort y); typedef void (APIENTRYP PFNGLVERTEXATTRIB2SARBPROC) (GLuint index, GLshort x, GLshort y);
typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVARBPROC) (GLuint index, const GLshort *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVARBPROC) (GLuint index, const GLshort *v);
typedef void (APIENTRYP PFNGLVERTEXATTRIB3DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); //typedef void (APIENTRYP PFNGLVERTEXATTRIB3DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVARBPROC) (GLuint index, const GLdouble *v); //typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVARBPROC) (GLuint index, const GLdouble *v);
typedef void (APIENTRYP PFNGLVERTEXATTRIB3FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); typedef void (APIENTRYP PFNGLVERTEXATTRIB3FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z);
typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVARBPROC) (GLuint index, const GLfloat *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVARBPROC) (GLuint index, const GLfloat *v);
typedef void (APIENTRYP PFNGLVERTEXATTRIB3SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z); typedef void (APIENTRYP PFNGLVERTEXATTRIB3SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z);
@ -412,8 +412,8 @@ typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBVARBPROC) (GLuint index, const GLub
typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUIVARBPROC) (GLuint index, const GLuint *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUIVARBPROC) (GLuint index, const GLuint *v);
typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUSVARBPROC) (GLuint index, const GLushort *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUSVARBPROC) (GLuint index, const GLushort *v);
typedef void (APIENTRYP PFNGLVERTEXATTRIB4BVARBPROC) (GLuint index, const GLbyte *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB4BVARBPROC) (GLuint index, const GLbyte *v);
typedef void (APIENTRYP PFNGLVERTEXATTRIB4DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); //typedef void (APIENTRYP PFNGLVERTEXATTRIB4DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVARBPROC) (GLuint index, const GLdouble *v); //typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVARBPROC) (GLuint index, const GLdouble *v);
typedef void (APIENTRYP PFNGLVERTEXATTRIB4FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); typedef void (APIENTRYP PFNGLVERTEXATTRIB4FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVARBPROC) (GLuint index, const GLfloat *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVARBPROC) (GLuint index, const GLfloat *v);
typedef void (APIENTRYP PFNGLVERTEXATTRIB4IVARBPROC) (GLuint index, const GLint *v); typedef void (APIENTRYP PFNGLVERTEXATTRIB4IVARBPROC) (GLuint index, const GLint *v);
@ -429,21 +429,21 @@ typedef void (APIENTRYP PFNGLPROGRAMSTRINGARBPROC) (GLenum target, GLenum format
typedef void (APIENTRYP PFNGLBINDPROGRAMARBPROC) (GLenum target, GLuint program); typedef void (APIENTRYP PFNGLBINDPROGRAMARBPROC) (GLenum target, GLuint program);
typedef void (APIENTRYP PFNGLDELETEPROGRAMSARBPROC) (GLsizei n, const GLuint *programs); typedef void (APIENTRYP PFNGLDELETEPROGRAMSARBPROC) (GLsizei n, const GLuint *programs);
typedef void (APIENTRYP PFNGLGENPROGRAMSARBPROC) (GLsizei n, GLuint *programs); typedef void (APIENTRYP PFNGLGENPROGRAMSARBPROC) (GLsizei n, GLuint *programs);
typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); //typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble *params); //typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble *params);
typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat *params); typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat *params);
typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); //typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble *params); //typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble *params);
typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat *params); typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat *params);
typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble *params); //typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble *params);
typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat *params); typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat *params);
typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble *params); //typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble *params);
typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat *params); typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat *params);
typedef void (APIENTRYP PFNGLGETPROGRAMIVARBPROC) (GLenum target, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETPROGRAMIVARBPROC) (GLenum target, GLenum pname, GLint *params);
typedef void (APIENTRYP PFNGLGETPROGRAMSTRINGARBPROC) (GLenum target, GLenum pname, GLvoid *string); typedef void (APIENTRYP PFNGLGETPROGRAMSTRINGARBPROC) (GLenum target, GLenum pname, GLvoid *string);
typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVARBPROC) (GLuint index, GLenum pname, GLdouble *params); //typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVARBPROC) (GLuint index, GLenum pname, GLdouble *params);
typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVARBPROC) (GLuint index, GLenum pname, GLfloat *params); typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVARBPROC) (GLuint index, GLenum pname, GLfloat *params);
typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVARBPROC) (GLuint index, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVARBPROC) (GLuint index, GLenum pname, GLint *params);
typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVARBPROC) (GLuint index, GLenum pname, GLvoid* *pointer); typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVARBPROC) (GLuint index, GLenum pname, GLvoid* *pointer);

View File

@ -511,5 +511,6 @@ struct shader_field_names_s
{ {
char *name; char *name;
enum shaderprogparmtype_e ptype; enum shaderprogparmtype_e ptype;
} shader_field_names[]; };
extern struct shader_field_names_s shader_field_names[];
#endif #endif

View File

@ -2417,7 +2417,7 @@ client_t *SVC_DirectConnect(void)
SV_CheckRecentCrashes(newcl); SV_CheckRecentCrashes(newcl);
#ifdef PEXT2_VOICECHAT #ifdef VOICECHAT
SV_VoiceInitClient(newcl); SV_VoiceInitClient(newcl);
#endif #endif
@ -4026,7 +4026,7 @@ void SV_InitLocal (void)
#endif #endif
svs.fteprotocolextensions2 |= PEXT2_PRYDONCURSOR; svs.fteprotocolextensions2 |= PEXT2_PRYDONCURSOR;
#ifdef PEXT2_VOICECHAT #ifdef VOICECHAT
svs.fteprotocolextensions2 |= PEXT2_VOICECHAT; svs.fteprotocolextensions2 |= PEXT2_VOICECHAT;
#endif #endif
svs.fteprotocolextensions2 |= PEXT2_SETANGLEDELTA; svs.fteprotocolextensions2 |= PEXT2_SETANGLEDELTA;

View File

@ -1763,7 +1763,7 @@ qboolean SV_SendClientDatagram (client_t *client)
// possibly a nails update // possibly a nails update
SV_WriteEntitiesToClient (client, &msg, false); SV_WriteEntitiesToClient (client, &msg, false);
} }
#ifdef PEXT2_VOICECHAT #ifdef VOICECHAT
SV_VoiceSendPacket(client, &msg); SV_VoiceSendPacket(client, &msg);
#endif #endif
} }

View File

@ -6174,7 +6174,7 @@ haveannothergo:
case clc_upload: case clc_upload:
SV_NextUpload(); SV_NextUpload();
break; break;
#ifdef PEXT2_VOICECHAT #ifdef VOICECHAT
case clc_voicechat: case clc_voicechat:
SV_VoiceReadPacket(); SV_VoiceReadPacket();
break; break;
@ -6337,7 +6337,7 @@ void SVQ2_ExecuteClientMessage (client_t *cl)
return; // disconnect command return; // disconnect command
break; break;
#ifdef PEXT2_VOICECHAT #ifdef VOICECHAT
case clc_voicechat: case clc_voicechat:
SV_VoiceReadPacket(); SV_VoiceReadPacket();
break; break;
@ -6533,7 +6533,7 @@ void SVNQ_ExecuteClientMessage (client_t *cl)
SV_DarkPlacesDownloadAck(host_client); SV_DarkPlacesDownloadAck(host_client);
break; break;
#ifdef PEXT2_VOICECHAT #ifdef VOICECHAT
case clc_voicechat: case clc_voicechat:
SV_VoiceReadPacket(); SV_VoiceReadPacket();
break; break;