Index: Common.mak
===================================================================
--- Common.mak (revision 8090)
+++ Common.mak (working copy)
@@ -52,7 +52,7 @@
ifndef SUBPLATFORM
SUBPLATFORM :=
- ifeq ($(PLATFORM),$(filter $(PLATFORM),LINUX DINGOO GCW CAANOO))
+ ifeq ($(PLATFORM),$(filter $(PLATFORM),LINUX DINGOO GCW CAANOO PANDORA))
SUBPLATFORM := LINUX
endif
endif
@@ -364,7 +364,7 @@
endif
# Debugging/Build options
-FORCEDEBUG := 0
+FORCEDEBUG := 1
KRANDDEBUG := 0
PROFILER := 0
# Make allocache() a wrapper around malloc()? Useful for debugging
@@ -405,6 +405,14 @@
override NOASM := 1
else ifeq ($(PLATFORM),$(filter $(PLATFORM),BEOS SKYOS))
override NOASM := 1
+else ifeq ($(PLATFORM),PANDORA)
+ override USE_OPENGL := 1
+ override NETCODE := 0
+ override HAVE_GTK2 := 0
+ override HAVE_FLAC := 1
+ override NOASM := 1
+ override USE_LUAJIT_2_1 := 1
+ SDL_TARGET := 2
endif
ifneq (i386,$(strip $(IMPLICIT_ARCH)))
@@ -450,8 +458,8 @@
LTO := 0
else
- OPTLEVEL := 2
- LTO := 1
+ OPTLEVEL := 3
+ LTO := 0
endif
ifneq (0,$(CLANG))
@@ -576,6 +584,10 @@
COMPILERFLAGS += -D__OPENDINGUX__
else ifeq ($(PLATFORM),SKYOS)
COMPILERFLAGS += -DUNDERSCORES
+else ifeq ($(PLATFORM),PANDORA)
+ COMPILERFLAGS += -D__PANDORA__
+ COMMONFLAGS += -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp -ffast-math -ftree-vectorize
+ LIBDIRS += -lrt
endif
ASFLAGS += -f $(ASFORMAT)
Index: GNUmakefile
===================================================================
--- GNUmakefile (revision 8090)
+++ GNUmakefile (working copy)
@@ -670,7 +670,11 @@
endif
ifeq ($(SUBPLATFORM),LINUX)
- LIBS += -lFLAC -lvorbisfile -lvorbis -logg
+ ifeq ($(PLATFORM),PANDORA)
+ LIBS += -lFLAC -lvorbisifile
+ else
+ LIBS += -lFLAC -lvorbisfile -lvorbis -logg
+ endif
endif
ifeq ($(PLATFORM),BSD)
Index: source/build/src/polymost.cpp
===================================================================
--- source/build/src/polymost.cpp (revision 8090)
+++ source/build/src/polymost.cpp (working copy)
@@ -1128,10 +1128,21 @@
fogRangeLoc = glGetUniformLocation(polymost2BasicShaderProgramID, "u_fogRange");
fogColorLoc = glGetUniformLocation(polymost2BasicShaderProgramID, "u_fogColor");
+ int polymost1BasicVertLen = strlen(polymost1Vert);
+ char* polymost1BasicVert = (char*) malloc(polymost1BasicVertLen);
+ memcpy(polymost1BasicVert, polymost1Vert, polymost1BasicVertLen);
+ char* extDefineSubstr = strstr(polymost1BasicVert, " #define POLYMOST1_EXTENDED");
+ if (extDefineSubstr)
+ {
+ //Disable extensions for basic fragment shader
+ extDefineSubstr[0] = '/';
+ extDefineSubstr[1] = '/';
+ }
polymost1ExtendedShaderProgramID = glCreateProgram();
- GLuint polymost1BasicVertexShaderID = polymost2_compileShader(GL_VERTEX_SHADER, polymost1Vert);
+ GLuint polymost1BasicVertexShaderID = polymost2_compileShader(GL_VERTEX_SHADER, polymost1BasicVert, polymost1BasicVertLen);
+ GLuint polymost1ExtendedVertexShaderID = polymost2_compileShader(GL_VERTEX_SHADER, polymost1Vert);
GLuint polymost1ExtendedFragmentShaderID = polymost2_compileShader(GL_FRAGMENT_SHADER, polymost1Frag);
- glAttachShader(polymost1ExtendedShaderProgramID, polymost1BasicVertexShaderID);
+ glAttachShader(polymost1ExtendedShaderProgramID, polymost1ExtendedVertexShaderID);
glAttachShader(polymost1ExtendedShaderProgramID, polymost1ExtendedFragmentShaderID);
glLinkProgram(polymost1ExtendedShaderProgramID);
@@ -1138,7 +1149,7 @@
int polymost1BasicFragLen = strlen(polymost1Frag);
char* polymost1BasicFrag = (char*) malloc(polymost1BasicFragLen);
memcpy(polymost1BasicFrag, polymost1Frag, polymost1BasicFragLen);
- char* extDefineSubstr = strstr(polymost1BasicFrag, " #define POLYMOST1_EXTENDED");
+ extDefineSubstr = strstr(polymost1BasicFrag, " #define POLYMOST1_EXTENDED");
if (extDefineSubstr)
{
//Disable extensions for basic fragment shader
@@ -1152,7 +1163,10 @@
glLinkProgram(polymost1BasicShaderProgramID);
free(polymost1BasicFrag);
polymost1BasicFrag = 0;
+ free(polymost1BasicVert);
+ polymost1BasicVert = 0;
+
// set defaults
polymost_setCurrentShaderProgram(polymost1ExtendedShaderProgramID);
glUniform1i(polymost1TexSamplerLoc, 0);
Index: source/build/src/polymost1Vert.glsl
===================================================================
--- source/build/src/polymost1Vert.glsl (revision 8090)
+++ source/build/src/polymost1Vert.glsl (working copy)
@@ -1,5 +1,8 @@
#version 110
+//include an additional space here so that we can programmatically search for and disable this preprocessor definition easily
+ #define POLYMOST1_EXTENDED
+
varying vec4 v_color;
varying float v_distance;
@@ -21,10 +24,10 @@
gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0;
gl_TexCoord[0] = mix(gl_TexCoord[0].xyzw, gl_TexCoord[0].yxzw, u_usePalette);
-
+#ifdef POLYMOST1_EXTENDED
gl_TexCoord[3] = gl_TextureMatrix[3] * gl_MultiTexCoord3;
gl_TexCoord[4] = gl_TextureMatrix[4] * gl_MultiTexCoord4;
-
+#endif
gl_FogFragCoord = abs(eyeCoordPosition.z);
//gl_FogFragCoord = clamp((gl_Fog.end-abs(eyeCoordPosition.z))*gl_Fog.scale, c_zero, c_one);
Index: source/build/src/tilepacker.cpp
===================================================================
--- source/build/src/tilepacker.cpp (revision 8090)
+++ source/build/src/tilepacker.cpp (working copy)
@@ -92,6 +92,7 @@
static void maxheap_buildHeap()
{
+ if(heapNodes<2) return;
for (int i = (heapNodes-2)/2; i >= 0; --i)
{
maxheap_bubbleDown(i);
Index: source/build/src/voxmodel.cpp
===================================================================
--- source/build/src/voxmodel.cpp (revision 8090)
+++ source/build/src/voxmodel.cpp (working copy)
@@ -435,14 +435,14 @@
index[(i*2+1)*3+2] = i*4+3;
}
GLint prevVBO = 0;
+ glGetIntegerv(GL_ELEMENT_ARRAY_BUFFER_BINDING, &prevVBO);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, vm->vboindex);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(GLuint) * 3 * 2 * vm->qcnt, index, GL_STATIC_DRAW);
- glGetIntegerv(GL_ELEMENT_ARRAY_BUFFER_BINDING, &prevVBO);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, prevVBO);
prevVBO = 0;
+ glGetIntegerv(GL_ARRAY_BUFFER_BINDING, &prevVBO);
glBindBuffer(GL_ARRAY_BUFFER, vm->vbo);
glBufferData(GL_ARRAY_BUFFER, sizeof(GLfloat) * 5 * 4 * vm->qcnt, vertex, GL_STATIC_DRAW);
- glGetIntegerv(GL_ARRAY_BUFFER_BINDING, &prevVBO);
glBindBuffer(GL_ARRAY_BUFFER, prevVBO);
Xfree(vertex);
Xfree(index);
Index: source/duke3d/src/config.cpp
===================================================================
--- source/duke3d/src/config.cpp (revision 8090)
+++ source/duke3d/src/config.cpp (working copy)
@@ -227,11 +227,13 @@
ud.config.MixRate = 44100;
#elif defined __ANDROID__
ud.config.MixRate = droidinfo.audio_sample_rate;
+#elif defined __PANDORA__
+ ud.config.MixRate = 22050;
#else
ud.config.MixRate = 48000;
#endif
-#if defined GEKKO || defined __OPENDINGUX__
+#if defined GEKKO || defined __OPENDINGUX__ || defined __PANDORA__
ud.config.NumVoices = 32;
ud.camera_time = 11;
#else