1
0
Fork 0
forked from fte/fteqw

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
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
ifeq ($(FTE_TARGET),win32_SDL)
ifeq ($(shell $(CC) -v 2>&1 | grep mingw),)
@ -348,7 +356,6 @@ CLIENT_OBJS = \
pr_menu.o
GLQUAKE_OBJS = \
gl_alias.o \
gl_draw.o \
gl_model.o \
gl_ngraph.o \
@ -381,7 +388,6 @@ D3DONLY_OBJS = \
gl_model.o \
gl_shader.o \
gl_rlight.o \
gl_alias.o \
gl_warp.o \
ltface.o \
r_surf.o \
@ -442,16 +448,15 @@ SERVER_OBJS = \
httpserver.o
SERVERONLY_OBJS = \
gl_alias.o \
svmodel.o \
sv_sys_unix.o
WINDOWSSERVERONLY_OBJS = \
gl_alias.o \
svmodel.o \
sv_sys_win.o
COMMON_OBJS = \
gl_alias.o \
com_mesh.o \
com_phys_ode.o \
common.o \
@ -826,6 +831,22 @@ ifeq ($(FTE_TARGET),cygwin)
MINGL_DIR=mingl_cygwin
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
.default: help
@ -919,7 +940,7 @@ PRECOMPHEADERS ?= $(OUT_DIR)/quakedef.h.gch
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)))
$(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:
$(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_instantrotate = CVARF("cl_instantrotate", "1", CVAR_SEMICHEAT);
cvar_t in_xflip = {"in_xflip", "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_moveleft, pnum);
#ifdef IN_XFLIP
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_down, pnum);
@ -1653,7 +1651,7 @@ void CL_SendCmd (double frametime, qboolean mainloop)
dropcount = 0;
}
#ifdef PEXT2_VOICECHAT
#ifdef VOICECHAT
S_Voip_Transmit(clc_voicechat, &buf);
#endif
@ -1717,6 +1715,7 @@ void CL_InitInput (void)
Cmd_AddCommand("in_restart", IN_Restart);
Cmd_AddCommand("sendcvar", CL_SendCvar_f);
Cvar_Register (&in_xflip, inputnetworkcvargroup);
Cvar_Register (&cl_nodelta, inputnetworkcvargroup);
Cvar_Register (&prox_inmenu, inputnetworkcvargroup);

View file

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

View file

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

View file

@ -294,9 +294,6 @@ void IN_ReInit (void)
void IN_Init (void)
{
#ifdef IN_XFLIP
Cvar_Register (&in_xflip, "Input Controls");
#endif
IN_ReInit();
}
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];
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
// this means that advanced controller configuration needs to be executed
// 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"))
Cvar_Set(&in_dinput, "1");
#ifdef IN_XFLIP
Cvar_Register (&in_xflip, "Input stuff");
#endif
// 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;
#ifdef IN_XFLIP
if(in_xflip.value) mx *= -1;
#endif
mousemove_x += mx;
mousemove_y += my;

View file

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

View file

@ -163,6 +163,8 @@ K_MAX = 256
#define K_RSHIFT K_SHIFT
#define K_RCTRL 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;

View file

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

View file

@ -307,7 +307,7 @@ static qboolean S_Speex_Init(void)
void S_Voip_Parse(void)
{
unsigned int sender;
int bytes;
unsigned int bytes;
unsigned char data[1024], *start;
short decodebuf[1024];
unsigned int decodesamps, len, newseq, drops;
@ -599,6 +599,17 @@ qboolean S_Voip_Speaking(unsigned int plno)
return false;
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

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?
#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.
#include "config.h"
#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 CL_MASTER //query master servers and stuff for a dynamic server listing.
#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 PPL //per pixel lighting (stencil shadowing)
#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_DARKPLACES
#define VOICECHAT //not added yet.
#define VOICECHAT
//these things were moved to plugins.
#endif
#endif
#ifdef ANDROID
#undef RTLIGHTS
#undef VOICECHAT
#undef TEXTEDITOR
#endif
//fix things a little...
#ifdef NPQTV

View file

@ -3009,7 +3009,10 @@ void COM_InitArgv (int argc, const char **argv) //not allowed to tprint
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)
{
char *buffer;

View file

@ -84,6 +84,10 @@ vfsfile_t *FSSTDIO_OpenTemp(void)
return (vfsfile_t*)file;
}
#ifdef ANDROID
vfsfile_t *Sys_OpenAsset(const char *fname);
#endif
vfsfile_t *VFSSTDIO_Open(const char *osname, const char *mode)
{
FILE *f;
@ -95,6 +99,15 @@ vfsfile_t *VFSSTDIO_Open(const char *osname, const char *mode)
char newmode[3];
int modec = 0;
#ifdef ANDROID
// if (!strncmp("asset/", osname, 6))
{
if (append || write)
return NULL;
return Sys_OpenAsset(osname);
}
#endif
if (read)
newmode[modec++] = 'r';
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)
{
FILE *f;
int len;
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
snprintf (netpath, sizeof(netpath)-1, "%s/%s",(char*)handle, filename);
f = fopen(netpath, "rb");
if (!f)
return false;
#ifdef ANDROID
{
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);
len = ftell(f);
fclose(f);
fseek(f, 0, SEEK_END);
len = ftell(f);
fclose(f);
}
#endif
if (loc)
{
loc->len = len;

View file

@ -71,9 +71,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#endif
#define PEXT2_PRYDONCURSOR 0x00000001
#ifdef VOICECHAT
#define PEXT2_VOICECHAT 0x00000002
#endif
#define PEXT2_SETANGLEDELTA 0x00000004
//#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)

View file

@ -425,7 +425,12 @@ void GL_TexEnv(GLenum mode)
if (mode != shaderstate.texenvmode[shaderstate.currenttmu])
#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);
#endif
shaderstate.texenvmode[shaderstate.currenttmu] = mode;
}
}
@ -568,7 +573,9 @@ void GL_MTBind(int tmu, int target, texid_t texnum)
if (target)
bindTexFunc (target, texnum.num);
#ifndef FORCESTATE
if (shaderstate.curtexturetype[tmu] != target && !gl_config.nofixedfunc)
#endif
{
if (shaderstate.curtexturetype[tmu])
qglDisable(shaderstate.curtexturetype[tmu]);
@ -577,7 +584,9 @@ void GL_MTBind(int tmu, int target, texid_t texnum)
qglEnable(target);
}
#ifndef FORCESTATE
if (((shaderstate.tmuarrayactive>>tmu) & 1) != 0)
#endif
{
qglClientActiveTextureARB(tmu + mtexid0);
if (0)
@ -605,7 +614,9 @@ void GL_LazyBind(int tmu, int target, texid_t texnum, qboolean arrays)
if (target)
bindTexFunc (target, texnum.num);
#ifndef FORCESTATE
if (shaderstate.curtexturetype[tmu] != target && !gl_config.nofixedfunc)
#endif
{
if (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)
arrays = false;
#ifndef FORCESTATE
if (((shaderstate.tmuarrayactive>>tmu) & 1) != arrays)
#endif
{
qglClientActiveTextureARB(mtexid0 + tmu);
if (arrays)
@ -1915,7 +1928,7 @@ static void GenerateColourMods(const shaderpass_t *pass)
qglShadeModel(GL_SMOOTH);
return;
}
if (pass->flags & SHADER_PASS_NOCOLORARRAY)
if (pass->flags & SHADER_PASS_NOCOLORARRAY && qglColor4fv)
{
avec4_t scol;
@ -2308,7 +2321,6 @@ static void DrawPass(const shaderpass_t *pass)
}
if (i == lastpass)
return;
BE_SendPassBlendDepthMask(pass[i].shaderbits);
GenerateColourMods(pass+i);
tmu = 0;
@ -2823,15 +2835,15 @@ void BE_SelectFog(vec3_t colour, float alpha, float density)
qglColor4f(colour[0], colour[1], colour[2], alpha);
}
#ifdef RTLIGHTS
void BE_SelectDLight(dlight_t *dl, vec3_t colour)
{
shaderstate.lightradius = dl->radius;
VectorCopy(dl->origin, shaderstate.lightorg);
VectorCopy(colour, shaderstate.lightcolours);
#ifdef RTLIGHTS
shaderstate.curshadowmap = dl->stexture;
}
#endif
}
void BE_PushOffsetShadow(qboolean pushdepth)
{
@ -3484,8 +3496,11 @@ void GLBE_DrawLightPrePass(qbyte *vis, batch_t **batches)
BE_SelectEntity(&r_worldentity);
GLBE_SubmitMeshes(true, batches, SHADER_SORT_SKY, SHADER_SORT_NEAREST);
#ifdef RTLIGHTS
/*regular lighting now*/
BE_SelectEntity(&r_worldentity);
Sh_DrawLights(vis);
#endif
shaderstate.tex_sourcecol = 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));
if (scaled_width * scaled_height > sizeofuploadmemorybuffer/4)
Sys_Error ("GL_LoadTexture: too big");
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
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"));
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)
{
@ -1100,28 +1121,12 @@ void GL_Upload32_Int (char *name, unsigned *data, int width, int height, unsigne
}
}
done:
if (gl_config.sgis_generate_mipmap && !(flags&IF_NOMIPMAP))
qglTexParameteri(GL_TEXTURE_2D, GL_GENERATE_MIPMAP_SGIS, GL_FALSE);
if (gl_anisotropy_factor)
qglTexParameterf (GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, gl_anisotropy_factor); // without this, you could loose anisotropy on mapchange
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);
}
if (gl_config.sgis_generate_mipmap && !(flags&IF_NOMIPMAP))
qglTexParameteri(GL_TEXTURE_2D, GL_GENERATE_MIPMAP_SGIS, GL_FALSE);
}
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);
Draw_FunString(8, y, st);
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,
NET_TIMINGS, NET_GRAPHHEIGHT, 0, GL_RGBA,
@ -140,6 +141,7 @@ void GLR_NetGraph (void)
qglTexCoord2f (0, 1);
qglVertex2f (x, y+NET_GRAPHHEIGHT);
qglEnd ();
#endif
}
void GLR_FrameTimeGraph (int frametime)
@ -177,7 +179,8 @@ void GLR_FrameTimeGraph (int frametime)
sprintf(st, "%3i%% packet loss", lost);
Draw_FunString(8, y, st);
y += 8;
#ifndef ANDROID
GL_MTBind(0, GL_TEXTURE_2D, netgraphtexture);
qglTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA,
@ -200,6 +203,7 @@ void GLR_FrameTimeGraph (int frametime)
qglTexCoord2f (0, 1);
qglVertex2f (x, y+NET_GRAPHHEIGHT);
qglEnd ();
#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?*/
/*Add to frustum culling instead of clip planes?*/
glplane[0] = -plane.normal[0];
glplane[1] = -plane.normal[1];
glplane[2] = -plane.normal[2];
glplane[3] = plane.dist;
qglClipPlane(GL_CLIP_PLANE0, glplane);
qglEnable(GL_CLIP_PLANE0);
if (qglClipPlane)
{
glplane[0] = -plane.normal[0];
glplane[1] = -plane.normal[1];
glplane[2] = -plane.normal[2];
glplane[3] = plane.dist;
qglClipPlane(GL_CLIP_PLANE0, glplane);
qglEnable(GL_CLIP_PLANE0);
}
R_RenderScene();
qglDisable(GL_CLIP_PLANE0);
if (qglClipPlane)
qglDisable(GL_CLIP_PLANE0);
for (sort = 0; sort < SHADER_SORT_COUNT; sort++)
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);
R_SetFrustum (r_refdef.m_projection, r_refdef.m_view);
/*put GL back the way it was*/
qglMatrixMode(GL_PROJECTION);
qglLoadMatrixf(r_refdef.m_projection);
if (qglLoadMatrixf)
{
/*put GL back the way it was*/
qglMatrixMode(GL_PROJECTION);
qglLoadMatrixf(r_refdef.m_projection);
qglMatrixMode(GL_MODELVIEW);
qglLoadMatrixf(r_refdef.m_view);
qglMatrixMode(GL_MODELVIEW);
qglLoadMatrixf(r_refdef.m_view);
}
GL_CullFace(0);
@ -952,6 +959,7 @@ static void R_RenderMotionBlur(void)
#ifdef _MSC_VER
#pragma message("backend fixme")
#endif
#ifndef ANDROID
Con_Printf("motionblur is not updated for the backend\n");
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);
qglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
qglTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
#endif
PPL_RevertToKnownState();
}

View file

@ -312,7 +312,7 @@ void GLBE_UploadAllLightmaps(void)
switch (lightmap_bytes)
{
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,
lightmap[i]->lightmaps);
break;

View file

@ -1387,7 +1387,7 @@ struct sbuiltin_s
/*calc diffuse lighting term*/
"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"
"atten = pow(atten, 2.0);\n"
"lightDir = normalize(lightDir);\n"

View file

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

View file

@ -2,6 +2,7 @@
#define __GL_VIDEGL_H__
#include "quakedef.h"
#define NativeWindowType EGLNativeWindowType
#include <EGL/egl.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_accel = {"m_accel", "0"};
#ifdef IN_XFLIP
cvar_t in_xflip = {"in_xflip", "0"};
#endif
static float mouse_x, 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 *symb;
if (qglXGetProcAddress)
symb = qglXGetProcAddress(name);
else
@ -346,7 +343,8 @@ static void uninstall_grabs(void)
}
#endif
XUngrabPointer(vid_dpy, CurrentTime);
if (vid_dpy)
XUngrabPointer(vid_dpy, CurrentTime);
// XSync(vid_dpy, True);
}
@ -591,7 +589,7 @@ void GLVID_Shutdown(void)
EGL_Shutdown();
#else
printf("GLVID_Shutdown\n");
if (!ctx)
if (!vid_dpy)
return;
XUngrabKeyboard(vid_dpy, CurrentTime);
@ -599,7 +597,10 @@ void GLVID_Shutdown(void)
uninstall_grabs();
if (ctx)
{
qglXDestroyContext(vid_dpy, ctx);
ctx = NULL;
}
#ifdef WITH_VMODE
if (originalapplied)
@ -1053,9 +1054,6 @@ void IN_ReInit(void)
void IN_Init(void)
{
#ifdef IN_XFLIP
Cvar_Register (&in_xflip, "Input variables");
#endif
IN_ReInit();
}
@ -1135,9 +1133,7 @@ void IN_MouseMove (float *movements, int pnum)
mouse_y *= sensitivity.value*in_sensitivityscale;
}
#ifdef IN_XFLIP
if(in_xflip.value) mouse_x *= -1;
#endif
if (movements)
{

View file

@ -28,7 +28,6 @@
// 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;
static void *agllibrary;

View file

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

View file

@ -15,10 +15,6 @@ HWND mainwindow;
extern qboolean vid_isfullscreen;
#ifdef IN_XFLIP
cvar_t in_xflip = {"in_xflip", "0"};
#endif
unsigned short intitialgammaramps[3][256];
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);
#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.
#include <AGL/agl.h>
#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 *qglClearAccum) (GLfloat red, GLfloat green, GLfloat blue, GLfloat 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 *qglClearIndex) (GLfloat c);
extern void (APIENTRY *qglClearStencil) (GLint s);

View file

@ -386,20 +386,20 @@ typedef void (APIENTRY * PFNGLACTIVESTENCILFACEEXTPROC) (GLenum face);
#ifndef GL_ARB_vertex_program
#define GL_ARB_vertex_program 1
typedef void (APIENTRYP PFNGLVERTEXATTRIB1DARBPROC) (GLuint index, GLdouble x);
typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVARBPROC) (GLuint index, const GLdouble *v);
//typedef void (APIENTRYP PFNGLVERTEXATTRIB1DARBPROC) (GLuint index, GLdouble x);
//typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVARBPROC) (GLuint index, const GLdouble *v);
typedef void (APIENTRYP PFNGLVERTEXATTRIB1FARBPROC) (GLuint index, GLfloat x);
typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVARBPROC) (GLuint index, const GLfloat *v);
typedef void (APIENTRYP PFNGLVERTEXATTRIB1SARBPROC) (GLuint index, GLshort x);
typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVARBPROC) (GLuint index, const GLshort *v);
typedef void (APIENTRYP PFNGLVERTEXATTRIB2DARBPROC) (GLuint index, GLdouble x, GLdouble y);
typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVARBPROC) (GLuint index, const GLdouble *v);
//typedef void (APIENTRYP PFNGLVERTEXATTRIB2DARBPROC) (GLuint index, GLdouble x, GLdouble y);
//typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVARBPROC) (GLuint index, const GLdouble *v);
typedef void (APIENTRYP PFNGLVERTEXATTRIB2FARBPROC) (GLuint index, GLfloat x, GLfloat y);
typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVARBPROC) (GLuint index, const GLfloat *v);
typedef void (APIENTRYP PFNGLVERTEXATTRIB2SARBPROC) (GLuint index, GLshort x, GLshort y);
typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVARBPROC) (GLuint index, const GLshort *v);
typedef void (APIENTRYP PFNGLVERTEXATTRIB3DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVARBPROC) (GLuint index, const GLdouble *v);
//typedef void (APIENTRYP PFNGLVERTEXATTRIB3DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
//typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVARBPROC) (GLuint index, const GLdouble *v);
typedef void (APIENTRYP PFNGLVERTEXATTRIB3FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z);
typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVARBPROC) (GLuint index, const GLfloat *v);
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 PFNGLVERTEXATTRIB4NUSVARBPROC) (GLuint index, const GLushort *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 PFNGLVERTEXATTRIB4DVARBPROC) (GLuint index, const GLdouble *v);
//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 PFNGLVERTEXATTRIB4FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVARBPROC) (GLuint index, const GLfloat *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 PFNGLDELETEPROGRAMSARBPROC) (GLsizei n, const 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 PFNGLPROGRAMENVPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble *params);
//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 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 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 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 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 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 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 PFNGLGETPROGRAMIVARBPROC) (GLenum target, GLenum pname, GLint *params);
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 PFNGLGETVERTEXATTRIBIVARBPROC) (GLuint index, GLenum pname, GLint *params);
typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVARBPROC) (GLuint index, GLenum pname, GLvoid* *pointer);

View file

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

View file

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

View file

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

View file

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