Some preparation work for new platform support.

- Added a "PSP" compile-time define to clean up some compile time checks (replaced !WIN32 && !LINUX && !IOS with PSP) 
-- Wil, I am aware that this is redundant with the PSPENV variable you introduced recently, I think we can clean that up easily
-- This looks like lots of changes, but most of the time I just moved some blocks here and there
-- tested on VC 2010, PSP, and a bit of NDK
-- I might have broken maemo, iOS, or Linux compilation, can you guys check?
- Fixed some warnings reported by NDK
- NDK still does not compile because recent boost additions (mutex, etc...) are apparently not supported
This commit is contained in:
wagic.the.homebrew
2011-04-21 13:16:11 +00:00
parent 5eb36fecc0
commit 8ff6839c8d
26 changed files with 257 additions and 252 deletions

View File

@@ -83,7 +83,7 @@ PSPDIR = $(shell psp-config --psp-prefix)
OBJS = $(GENERIC_OBJS) $(PSP_OBJS) OBJS = $(GENERIC_OBJS) $(PSP_OBJS)
TARGET_HGE = libhgetools.a TARGET_HGE = libhgetools.a
INCDIR = include/psp include/psp/freetype2 ../Boost INCDIR = include/psp include/psp/freetype2 ../Boost
CXXFLAGS += -O2 -G0 -DPSPENV CXXFLAGS += -O2 -G0 -DPSPENV -DPSP
LIBDIR = lib/psp LIBDIR = lib/psp
endif endif
ifeq ($(TARGET_ARCHITECTURE),linux) ifeq ($(TARGET_ARCHITECTURE),linux)

View File

@@ -19,9 +19,7 @@
#include <map> #include <map>
#include <string> #include <string>
#if defined (WIN32) || defined (LINUX) || defined(IOS) #if defined (PSP)
#else
#include <pspiofilemgr.h> #include <pspiofilemgr.h>
#include <pspiofilemgr_fcntl.h> #include <pspiofilemgr_fcntl.h>
#endif #endif
@@ -130,10 +128,10 @@ private:
char *mPassword; char *mPassword;
bool mZipAvailable; bool mZipAvailable;
void preloadZip(const string& filename); void preloadZip(const string& filename);
#if defined (WIN32) || defined (LINUX) || defined(IOS) #if defined (PSP)
FILE *mFile;
#else
SceUID mFile; SceUID mFile;
#else
FILE *mFile;
#endif #endif
unzFile mZipFile; unzFile mZipFile;
int mFileSize; int mFileSize;

View File

@@ -28,18 +28,26 @@
#include <Qt> #include <Qt>
typedef u32 LocalKeySym; typedef u32 LocalKeySym;
#define LOCAL_KEY_NONE Qt::Key_unknown #define LOCAL_KEY_NONE Qt::Key_unknown
#elif defined(WIN32) #elif defined(WIN32)
#include <windows.h> #include <windows.h>
typedef WPARAM LocalKeySym; typedef WPARAM LocalKeySym;
#define LOCAL_KEY_NONE ((WPARAM)-1) #define LOCAL_KEY_NONE ((WPARAM)-1)
#elif defined(LINUX) #elif defined(LINUX)
#include <X11/XKBlib.h> #include <X11/XKBlib.h>
#include <X11/keysym.h> #include <X11/keysym.h>
typedef KeySym LocalKeySym; typedef KeySym LocalKeySym;
#define LOCAL_KEY_NONE XK_VoidSymbol #define LOCAL_KEY_NONE XK_VoidSymbol
#elif defined(ANDROID) // This is temporary until we understand how to send real key events from Java
typedef long unsigned int LocalKeySym;
#define LOCAL_KEY_NONE 0
#else #else
typedef u32 LocalKeySym; typedef u32 LocalKeySym;
#define LOCAL_KEY_NONE ((u32)-1) #define LOCAL_KEY_NONE ((u32)-1)
#endif #endif
@@ -51,7 +59,7 @@ u8 JGEGetAnalogX();
u8 JGEGetAnalogY(); u8 JGEGetAnalogY();
bool JGEToggleFullscreen(); bool JGEToggleFullscreen();
#if !defined(WIN32) && !defined(LINUX) && !defined(IOS) #if defined (PSP)
// hack to fix a typedef definition of u32 inside of newlib's stdint.h // hack to fix a typedef definition of u32 inside of newlib's stdint.h
// this used to be defined as an unsigned long, but as of minpspw 11.1, it's // this used to be defined as an unsigned long, but as of minpspw 11.1, it's

View File

@@ -11,15 +11,9 @@
#ifndef _MD2MODEL_H #ifndef _MD2MODEL_H
#define _MD2MODEL_H #define _MD2MODEL_H
#if defined (WIN32) || defined (LINUX) || defined (IOS) #if defined (PSP)
#else
#include <pspgu.h> #include <pspgu.h>
#include <pspgum.h> #include <pspgum.h>
#endif #endif
@@ -236,10 +230,10 @@ private:
void CheckNextState(); void CheckNextState();
#if defined (WIN32) || defined (LINUX) || defined (IOS) #if defined (PSP)
void CalculateNormal(float *p1, float *p2, float *p3);
#else
void CalculateNormal(ScePspFVector3* normal, float *p1, float *p2, float *p3); void CalculateNormal(ScePspFVector3* normal, float *p1, float *p2, float *p3);
#else
void CalculateNormal(float *p1, float *p2, float *p3);
#endif #endif
MD2Animation **mAnimations; MD2Animation **mAnimations;

View File

@@ -15,15 +15,9 @@
using namespace std; using namespace std;
#if defined (WIN32) || defined (LINUX) || defined (IOS) #if defined (PSP)
#else
#include <pspgu.h> #include <pspgu.h>
#include <pspgum.h> #include <pspgum.h>
#endif #endif

View File

@@ -16,9 +16,9 @@
#include <string.h> #include <string.h>
#include <stdarg.h> #include <stdarg.h>
#if (!defined IOS) #if (!defined IOS) && (!defined ANDROID)
#include <gif_lib.h> #include <gif_lib.h>
#endif //IOS #endif //IOS ANDROID
#include "JTypes.h" #include "JTypes.h"
@@ -27,9 +27,7 @@
#include <windows.h> #include <windows.h>
#elif defined (LINUX) || defined(IOS) #elif defined (PSP)
#else
#include <pspgu.h> #include <pspgu.h>
#include <pspkernel.h> #include <pspkernel.h>
@@ -80,8 +78,7 @@ protected:
public: public:
#if defined (WIN32) || defined (LINUX) || defined (IOS) #if defined (PSP)
#else
int PixelSize(int textureMode); int PixelSize(int textureMode);
#endif #endif
@@ -575,13 +572,15 @@ private:
#if (!defined IOS) #if (!defined IOS)
void LoadJPG(TextureInfo &textureInfo, const char *filename, int mode = 0, int TextureFormat = TEXTURE_FORMAT); void LoadJPG(TextureInfo &textureInfo, const char *filename, int mode = 0, int TextureFormat = TEXTURE_FORMAT);
int LoadPNG(TextureInfo &textureInfo, const char *filename, int mode = 0, int TextureFormat = TEXTURE_FORMAT); int LoadPNG(TextureInfo &textureInfo, const char *filename, int mode = 0, int TextureFormat = TEXTURE_FORMAT);
#if (!defined ANDROID)
void LoadGIF(TextureInfo &textureInfo, const char *filename, int mode = 0, int TextureFormat = TEXTURE_FORMAT); void LoadGIF(TextureInfo &textureInfo, const char *filename, int mode = 0, int TextureFormat = TEXTURE_FORMAT);
int image_readgif(void * handle, TextureInfo &textureInfo, DWORD * bgcolor, InputFunc readFunc,int mode = 0, int TextureFormat = TEXTURE_FORMAT); int image_readgif(void * handle, TextureInfo &textureInfo, DWORD * bgcolor, InputFunc readFunc,int mode = 0, int TextureFormat = TEXTURE_FORMAT);
#endif // (ANDROID) How can we get gif support for android ?
#endif //(IOS) #endif //(IOS)
static JRenderer* mInstance; static JRenderer* mInstance;
#if defined (WIN32) || defined (LINUX) || defined (IOS) #if (!defined PSP)
GLuint mCurrentTex; GLuint mCurrentTex;
#if (defined GL_ES_VERSION_2_0) || (defined GL_VERSION_2_0) || (defined WIN32) #if (defined GL_ES_VERSION_2_0) || (defined GL_VERSION_2_0) || (defined WIN32)

View File

@@ -27,10 +27,7 @@
#include <windows.h> #include <windows.h>
#define WITH_FMOD #define WITH_FMOD
#elif defined (LINUX) || defined (IOS) #elif defined (PSP)
#else
#include <pspgu.h> #include <pspgu.h>
#include <pspkernel.h> #include <pspkernel.h>
#include <pspdisplay.h> #include <pspdisplay.h>
@@ -73,16 +70,17 @@ public:
#else #else
#if defined (WIN32) || defined (LINUX) || defined (IOS) #if defined (PSP)
JMP3* mTrack;
#else
#ifdef WITH_FMOD #ifdef WITH_FMOD
FSOUND_SAMPLE* mTrack; // MP3 needed to be of "sample" type for FMOD, FMUSIC_MODULE is for MODs FSOUND_SAMPLE* mTrack; // MP3 needed to be of "sample" type for FMOD, FMUSIC_MODULE is for MODs
#else #else
void* mTrack; void* mTrack;
#endif #endif //WITH_FMOD
#else
JMP3* mTrack; #endif //PSP
#endif #endif //USE_PHONON
#endif
}; };
@@ -97,19 +95,20 @@ class JSample
int mVoice; int mVoice;
unsigned long fileSize(); unsigned long fileSize();
#if defined (WIN32) || defined (LINUX) || defined (IOS) #if defined (PSP)
WAVDATA *mSample;
#else
#ifdef WITH_FMOD #ifdef WITH_FMOD
FSOUND_SAMPLE *mSample; FSOUND_SAMPLE *mSample;
#else #else
#ifdef USE_PHONON #ifdef USE_PHONON
Phonon::AudioOutput* mOutput; Phonon::AudioOutput* mOutput;
Phonon::MediaObject* mMediaObject; Phonon::MediaObject* mMediaObject;
#endif #endif //USE_PHONON
void* mSample; void* mSample;
#endif #endif //WITH_FMOD
#else
WAVDATA *mSample; #endif //PSP
#endif
}; };

View File

@@ -11,10 +11,10 @@
#ifndef _SPRITE_H_ #ifndef _SPRITE_H_
#define _SPRITE_H_ #define _SPRITE_H_
#if defined (WIN32) || defined(LINUX) || defined(IOS) #if defined (PSP)
#include <math.h>
#else
#include <fastmath.h> #include <fastmath.h>
#else
#include <math.h>
#endif #endif
#include <vector> #include <vector>

View File

@@ -11,11 +11,7 @@
#ifndef _JTYPES_H #ifndef _JTYPES_H
#define _JTYPES_H #define _JTYPES_H
#if defined (WIN32) || defined (LINUX) || defined (IOS) #if defined (PSP)
#include <stdint.h>
#else
#include <pspgu.h> #include <pspgu.h>
#include <pspgum.h> #include <pspgum.h>
@@ -27,9 +23,12 @@
#include <string.h> #include <string.h>
#include <pspaudiolib.h> #include <pspaudiolib.h>
#include <psprtc.h> #include <psprtc.h>
#include "JAudio.h" #include "JAudio.h"
#else
#include <stdint.h>
#endif #endif
#ifndef __GNUC__ #ifndef __GNUC__
@@ -46,6 +45,11 @@ enum {
JGE_ERR_GENERIC = -5, JGE_ERR_GENERIC = -5,
}; };
#ifdef PSP
#include <fastmath.h>
#else
#include <math.h>
#endif
#ifndef M_PI #ifndef M_PI
#define M_PI 3.14159265358979323846f #define M_PI 3.14159265358979323846f
@@ -81,7 +85,7 @@ enum {
#ifdef WIN32 #ifdef WIN32
#include <windows.h> #include <windows.h>
#endif #endif
#if defined(LINUX) || defined(IOS) #if defined(LINUX) || defined(IOS) || defined (ANDROID)
typedef uint8_t byte; typedef uint8_t byte;
typedef uint32_t DWORD; typedef uint32_t DWORD;
typedef uint8_t BYTE; typedef uint8_t BYTE;
@@ -98,47 +102,27 @@ enum {
#import <OpenGLES/ES2/glext.h> #import <OpenGLES/ES2/glext.h>
#import <OpenGLES/ES1/gl.h> #import <OpenGLES/ES1/gl.h>
# import <OpenGLES/ES1/glext.h> # import <OpenGLES/ES1/glext.h>
#elif defined (WIN32) || defined (LINUX) #elif defined (WIN32) || defined (LINUX)
#include <GL/gl.h> #include <GL/gl.h>
#include <GL/glu.h> #include <GL/glu.h>
//Android GL1 support TODO
/*
#elif defined (ANDROID)
#include <GLES/gl.h>
#include <GLES/glext.h>
*/
//Android GL2 support
#elif defined (ANDROID)
#include <GLES2/gl2.h>
#include <GLES2/gl2ext.h>
#endif #endif
#else #else
# include <QtOpenGL> # include <QtOpenGL>
#endif #endif
#if defined (WIN32) || defined (LINUX) || defined (IOS) #if defined (PSP)
typedef int8_t s8;
typedef int16_t s16;
typedef int32_t s32;
typedef uint8_t u8;
typedef uint16_t u16;
typedef uint32_t u32;
#define BLEND_ZERO GL_ZERO
#define BLEND_ONE GL_ONE
#define BLEND_SRC_COLOR GL_SRC_COLOR
#define BLEND_ONE_MINUS_SRC_COLOR GL_ONE_MINUS_SRC_COLOR
#define BLEND_SRC_ALPHA GL_SRC_ALPHA
#define BLEND_ONE_MINUS_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA
#define BLEND_DST_ALPHA GL_DST_ALPHA
#define BLEND_ONE_MINUS_DST_ALPHA GL_ONE_MINUS_DST_ALPHA
#define BLEND_DST_COLOR GL_DST_COLOR
#define BLEND_ONE_MINUS_DST_COLOR GL_ONE_MINUS_DST_COLOR
#define BLEND_SRC_ALPHA_SATURATE GL_SRC_ALPHA_SATURATE
#define ARGB(a, r, g, b) (((a) << 24) | ((r) << 16) | ((g) << 8) | (b))
#define RGBA(r, g, b, a) (((a) << 24) | ((b) << 16) | ((g) << 8) | (r))
#define TEXTURE_FORMAT 0
#define GU_PSM_8888 0
#define GU_PSM_5551 0
#define GU_PSM_4444 0
#define GU_PSM_5650 0
#define PIXEL_TYPE DWORD
#else // PSP
#ifndef ABGR8888 #ifndef ABGR8888
#define ABGR8888 #define ABGR8888
@@ -225,6 +209,37 @@ typedef uint32_t u32;
ScePspFVector3 pos; ScePspFVector3 pos;
} PSPVertex3D; } PSPVertex3D;
#else //non PSP
typedef int8_t s8;
typedef int16_t s16;
typedef int32_t s32;
typedef uint8_t u8;
typedef uint16_t u16;
typedef uint32_t u32;
#define BLEND_ZERO GL_ZERO
#define BLEND_ONE GL_ONE
#define BLEND_SRC_COLOR GL_SRC_COLOR
#define BLEND_ONE_MINUS_SRC_COLOR GL_ONE_MINUS_SRC_COLOR
#define BLEND_SRC_ALPHA GL_SRC_ALPHA
#define BLEND_ONE_MINUS_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA
#define BLEND_DST_ALPHA GL_DST_ALPHA
#define BLEND_ONE_MINUS_DST_ALPHA GL_ONE_MINUS_DST_ALPHA
#define BLEND_DST_COLOR GL_DST_COLOR
#define BLEND_ONE_MINUS_DST_COLOR GL_ONE_MINUS_DST_COLOR
#define BLEND_SRC_ALPHA_SATURATE GL_SRC_ALPHA_SATURATE
#define ARGB(a, r, g, b) (((a) << 24) | ((r) << 16) | ((g) << 8) | (b))
#define RGBA(r, g, b, a) (((a) << 24) | ((b) << 16) | ((g) << 8) | (r))
#define TEXTURE_FORMAT 0
#define GU_PSM_8888 0
#define GU_PSM_5551 0
#define GU_PSM_4444 0
#define GU_PSM_5650 0
#define PIXEL_TYPE DWORD
#endif #endif
@@ -338,14 +353,14 @@ public:
int mFilter; int mFilter;
#if defined (WIN32) || defined (LINUX) || defined (IOS) #if defined (PSP)
GLuint mTexId;
u8* mBuffer;
#else
int mTextureFormat; int mTextureFormat;
int mTexId; int mTexId;
bool mInVideoRAM; bool mInVideoRAM;
PIXEL_TYPE* mBits; PIXEL_TYPE* mBits;
#else
GLuint mTexId;
u8* mBuffer;
#endif #endif
}; };
@@ -449,15 +464,15 @@ public:
JTexture* mTex; JTexture* mTex;
#if defined (WIN32) || defined(LINUX) || defined(IOS) #if defined (PSP)
PIXEL_TYPE mColor[4]; // up to 4 vertices
int mBlend; // GU_TFX_MODULATE, GU_TFX_DECAL, GU_TFX_BLEND, GU_TFX_REPLACE, GU_TFX_ADD
#else
float mTX0; float mTX0;
float mTY0; float mTY0;
float mTX1; float mTX1;
float mTY1; float mTY1;
JColor mColor[4]; // up to 4 vertices JColor mColor[4]; // up to 4 vertices
#else
PIXEL_TYPE mColor[4]; // up to 4 vertices
int mBlend; // GU_TFX_MODULATE, GU_TFX_DECAL, GU_TFX_BLEND, GU_TFX_REPLACE, GU_TFX_ADD
#endif #endif
float mX; float mX;

View File

@@ -1,7 +1,7 @@
#ifndef THREADING_H #ifndef THREADING_H
#define THREADING_H #define THREADING_H
#if defined (WIN32) || defined (LINUX) #if !defined(PSP)
#include <boost/date_time.hpp> #include <boost/date_time.hpp>
#include <boost/thread.hpp> #include <boost/thread.hpp>
#include <boost/thread/mutex.hpp> #include <boost/thread/mutex.hpp>

View File

@@ -11,12 +11,10 @@
#ifndef _VECTOR2D_H #ifndef _VECTOR2D_H
#define _VECTOR2D_H #define _VECTOR2D_H
#ifdef WIN32 #ifdef PSP
#include <math.h>
#elif (defined LINUX) || (defined IOS)
#include <math.h>
#else
#include <fastmath.h> #include <fastmath.h>
#else
#include <math.h>
#endif #endif

View File

@@ -18,6 +18,7 @@
#include "hgerect.h" #include "hgerect.h"
#include <list> #include <list>
#include <string.h>
class JQuad; class JQuad;

Binary file not shown.

View File

@@ -92,10 +92,10 @@ void JFileSystem::Destroy()
JFileSystem::JFileSystem() JFileSystem::JFileSystem()
{ {
mZipAvailable = false; mZipAvailable = false;
#if defined (WIN32) || defined (LINUX) || defined (IOS) #if defined (PSP)
mFile = NULL; mFile = -1;
#else #else
mFile = -1; mFile = NULL;
#endif #endif
mPassword = NULL; mPassword = NULL;
mZipFile = NULL; mZipFile = NULL;
@@ -197,7 +197,15 @@ bool JFileSystem::OpenFile(const string &filename)
} }
else else
{ {
#if defined (WIN32) || defined (LINUX)|| defined (IOS) #if defined (PSP)
mFile = sceIoOpen(path.c_str(), PSP_O_RDONLY, 0777);
if (mFile > 0)
{
mFileSize = sceIoLseek(mFile, 0, PSP_SEEK_END);
sceIoLseek(mFile, 0, PSP_SEEK_SET);
return true;
}
#else
mFile = fopen(path.c_str(), "rb"); mFile = fopen(path.c_str(), "rb");
if (mFile != NULL) if (mFile != NULL)
{ {
@@ -206,14 +214,6 @@ bool JFileSystem::OpenFile(const string &filename)
fseek(mFile, 0, SEEK_SET); fseek(mFile, 0, SEEK_SET);
return true; return true;
} }
#else
mFile = sceIoOpen(path.c_str(), PSP_O_RDONLY, 0777);
if (mFile > 0)
{
mFileSize = sceIoLseek(mFile, 0, PSP_SEEK_END);
sceIoLseek(mFile, 0, PSP_SEEK_SET);
return true;
}
#endif #endif
} }
@@ -229,30 +229,30 @@ void JFileSystem::CloseFile()
return; return;
} }
#if defined (WIN32) || defined (LINUX) || defined (IOS) #if defined (PSP)
if (mFile > 0)
sceIoClose(mFile);
#else
if (mFile != NULL) if (mFile != NULL)
fclose(mFile); fclose(mFile);
#else
if (mFile > 0)
sceIoClose(mFile);
#endif #endif
} }
int JFileSystem::ReadFile(void *buffer, int size) int JFileSystem::ReadFile(void *buffer, int size)
{ {
if (mZipAvailable && mZipFile != NULL) if (mZipAvailable && mZipFile != NULL)
{ {
return unzReadCurrentFile(mZipFile, buffer, size); return unzReadCurrentFile(mZipFile, buffer, size);
} }
else else
{ {
#if defined (WIN32) || defined (LINUX) || defined (IOS) #if defined (PSP)
return fread(buffer, 1, size, mFile); return sceIoRead(mFile, buffer, size);
#else #else
return sceIoRead(mFile, buffer, size); return fread(buffer, 1, size, mFile);
#endif #endif
} }
} }

View File

@@ -313,22 +313,8 @@ JGE::~JGE()
#if defined (WIN32) || defined (LINUX) || defined (IOS) #if defined (PSP)
// Non-PSP code // PSP Specific code
void JGE::Init()
{
mDone = false;
mPaused = false;
mCriticalAssert = false;
JRenderer::GetInstance();
JFileSystem::GetInstance();
JSoundSystem::GetInstance();
LeftClickedProcessed();
}
//////////////////////////////////////////////////////////////////////////
#else ///// PSP specific code
void JGE::Init() void JGE::Init()
{ {
@@ -432,7 +418,21 @@ void JGE::Run()
} }
} }
#endif ///// PSP specific code
//////////////////////////////////////////////////////////////////////////
#else ///// Non PSP code
void JGE::Init()
{
mDone = false;
mPaused = false;
mCriticalAssert = false;
JRenderer::GetInstance();
JFileSystem::GetInstance();
JSoundSystem::GetInstance();
LeftClickedProcessed();
}
#endif ///// Non PSP code
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////

View File

@@ -222,7 +222,7 @@ float JLBFont::GetStringWidth(const char *string) const
{ {
ch = *p - 32; ch = *p - 32;
p++; p++;
if (ch < 0) continue; //if (ch < 0) continue; //TODO useless test per compiler's message, char always positive, bug needs fixing here
len += mCharWidth[ch+mBase] + mTracking; len += mCharWidth[ch+mBase] + mTracking;
} }
len -= mTracking; len -= mTracking;

View File

@@ -220,10 +220,10 @@ bool JMD2Model::Load(char *filename, char *textureName)
//------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------
// given 3 points, calculates the normal to the points // given 3 points, calculates the normal to the points
#if defined (WIN32) || defined (LINUX) || defined (IOS) #if defined (PSP)
void JMD2Model::CalculateNormal(float *p1, float *p2, float *p3)
#else
void JMD2Model::CalculateNormal(ScePspFVector3 *normal, float *p1, float *p2, float *p3) void JMD2Model::CalculateNormal(ScePspFVector3 *normal, float *p1, float *p2, float *p3)
#else
void JMD2Model::CalculateNormal(float *p1, float *p2, float *p3)
#endif #endif
{ {
float a[3], b[3], result[3]; float a[3], b[3], result[3];
@@ -244,21 +244,21 @@ void JMD2Model::CalculateNormal(ScePspFVector3 *normal, float *p1, float *p2, fl
// calculate the length of the normal // calculate the length of the normal
length = (float)sqrt(result[0]*result[0] + result[1]*result[1] + result[2]*result[2]); length = (float)sqrt(result[0]*result[0] + result[1]*result[1] + result[2]*result[2]);
#if defined (WIN32) || defined (LINUX) || defined (IOS) #if defined (PSP)
// normalize and specify the normal
#if (!defined GL_ES_VERSION_2_0) && (!defined GL_VERSION_2_0)
glNormal3f(result[0]/length, result[1]/length, result[2]/length);
#else
// FIXME
#endif //(!defined GL_ES_VERSION_2_0) && (!defined GL_VERSION_2_0)
#else
if (length == 0.0f) if (length == 0.0f)
length = SMALLEST_FP; length = SMALLEST_FP;
normal->x = result[0]/length; normal->x = result[0]/length;
normal->y = result[1]/length; normal->y = result[1]/length;
normal->z = result[2]/length; normal->z = result[2]/length;
#else
// normalize and specify the normal
#if (!defined GL_ES_VERSION_2_0) && (!defined GL_VERSION_2_0)
glNormal3f(result[0]/length, result[1]/length, result[2]/length);
#else
// FIXME
#endif //(!defined GL_ES_VERSION_2_0) && (!defined GL_VERSION_2_0)
#endif #endif
} }
@@ -278,12 +278,12 @@ void JMD2Model::Render(int frameNum)
mRenderer->BindTexture(mModel->modelTex); mRenderer->BindTexture(mModel->modelTex);
#if defined (WIN32) || defined (LINUX) || defined (IOS) #if !defined (PSP)
// display the textured model with proper lighting normals // display the textured model with proper lighting normals
#if (defined GL_ES_VERSION_2_0) || (defined GL_VERSION_2_0) #if (defined GL_ES_VERSION_2_0) || (defined GL_VERSION_2_0)
#elif (defined GL_ES_VERSION_1_1) || (defined GL_VERSION_1_1) #elif (defined GL_ES_VERSION_1_1) || (defined GL_VERSION_1_1) || (defined GL_VERSION_ES_CM_1_1)
glEnableClientState(GL_VERTEX_ARRAY); glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY); glEnableClientState(GL_TEXTURE_COORD_ARRAY);
@@ -299,7 +299,7 @@ void JMD2Model::Render(int frameNum)
#if (defined GL_ES_VERSION_2_0) || (defined GL_VERSION_2_0) #if (defined GL_ES_VERSION_2_0) || (defined GL_VERSION_2_0)
#elif (defined GL_ES_VERSION_1_1) || (defined GL_VERSION_1_1) #elif (defined GL_ES_VERSION_1_1) || (defined GL_VERSION_1_1)|| (defined GL_VERSION_ES_CM_1_1)
float vertex_data[]={ float vertex_data[]={
pointList[mModel->triIndex[i].meshIndex[0]].x, pointList[mModel->triIndex[i].meshIndex[0]].y, pointList[mModel->triIndex[i].meshIndex[0]].z, pointList[mModel->triIndex[i].meshIndex[0]].x, pointList[mModel->triIndex[i].meshIndex[0]].y, pointList[mModel->triIndex[i].meshIndex[0]].z,
pointList[mModel->triIndex[i].meshIndex[2]].x, pointList[mModel->triIndex[i].meshIndex[2]].y, pointList[mModel->triIndex[i].meshIndex[2]].z, pointList[mModel->triIndex[i].meshIndex[2]].x, pointList[mModel->triIndex[i].meshIndex[2]].y, pointList[mModel->triIndex[i].meshIndex[2]].z,
@@ -333,7 +333,7 @@ void JMD2Model::Render(int frameNum)
} }
#if (defined GL_ES_VERSION_2_0) || (defined GL_VERSION_2_0) #if (defined GL_ES_VERSION_2_0) || (defined GL_VERSION_2_0)
#elif (defined GL_ES_VERSION_1_1) || (defined GL_VERSION_1_1) #elif (defined GL_ES_VERSION_1_1) || (defined GL_VERSION_1_1) || (defined GL_VERSION_ES_CM_1_1)
glDrawArrays(GL_TRIANGLES,0,3); // seems suspicious to put that here, should probably be in the loop glDrawArrays(GL_TRIANGLES,0,3); // seems suspicious to put that here, should probably be in the loop
#else #else
glEnd(); glEnd();
@@ -482,11 +482,11 @@ void JMD2Model::Render()
mRenderer->BindTexture(mModel->modelTex); mRenderer->BindTexture(mModel->modelTex);
#if defined (WIN32) || defined (LINUX) || defined (IOS) #if !defined (PSP)
#if (defined GL_ES_VERSION_2_0) || (defined GL_VERSION_2_0) #if (defined GL_ES_VERSION_2_0) || (defined GL_VERSION_2_0)
// FIXME // FIXME
#elif (defined GL_ES_VERSION_1_1) || (defined GL_VERSION_1_1) #elif (defined GL_ES_VERSION_1_1) || (defined GL_VERSION_1_1) || (defined GL_VERSION_ES_CM_1_1)
glEnableClientState(GL_VERTEX_ARRAY); glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY); glEnableClientState(GL_TEXTURE_COORD_ARRAY);
#else #else
@@ -541,7 +541,7 @@ void JMD2Model::Render()
#if (defined GL_ES_VERSION_2_0) || (defined GL_VERSION_2_0) #if (defined GL_ES_VERSION_2_0) || (defined GL_VERSION_2_0)
// FIXME // FIXME
#elif (defined GL_ES_VERSION_1_1) || (defined GL_VERSION_1_1) #elif (defined GL_ES_VERSION_1_1) || (defined GL_VERSION_1_1) || (defined GL_VERSION_ES_CM_1_1)
float vertex_data[]={ float vertex_data[]={
vertex[0].x, vertex[0].y, vertex[0].z, vertex[0].x, vertex[0].y, vertex[0].z,
vertex[2].x, vertex[2].y, vertex[2].z, vertex[2].x, vertex[2].y, vertex[2].z,
@@ -575,7 +575,7 @@ void JMD2Model::Render()
} }
#if (defined GL_ES_VERSION_2_0) || (defined GL_VERSION_2_0) #if (defined GL_ES_VERSION_2_0) || (defined GL_VERSION_2_0)
// FIXME // FIXME
#elif (defined GL_ES_VERSION_1_1) || (defined GL_VERSION_1_1) #elif (defined GL_ES_VERSION_1_1) || (defined GL_VERSION_1_1) || (defined GL_VERSION_ES_CM_1_1)
glDrawArrays(GL_TRIANGLES,0,3); // seems suspicious to put that here, should probably be in the loop glDrawArrays(GL_TRIANGLES,0,3); // seems suspicious to put that here, should probably be in the loop
#else #else
glEnd(); glEnd();

View File

@@ -145,11 +145,11 @@ void JSprite::Render()
// //mQuad->SetColor(ARGB(alpha,255,255,255)); // //mQuad->SetColor(ARGB(alpha,255,255,255));
#if defined (WIN32) || defined (LINUX) || defined (IOS) #if defined (PSP)
mFrames[mCurrentFrame]->SetColor(MAKE_COLOR(alpha, mColor));
#else
mFrames[mCurrentFrame]->SetColor(alpha<<24 | mColor); mFrames[mCurrentFrame]->SetColor(alpha<<24 | mColor);
// mQuad->SetFlip(mFlipped[mCurrentFrame], false); // mQuad->SetFlip(mFlipped[mCurrentFrame], false);
#else
mFrames[mCurrentFrame]->SetColor(MAKE_COLOR(alpha, mColor));
#endif #endif
// mQuad->SetHFlip(mFlipped[mCurrentFrame]); // mQuad->SetHFlip(mFlipped[mCurrentFrame]);
// } // }
@@ -306,10 +306,10 @@ void JSprite::SetHotSpot(float x, float y, int index)
} }
#if defined (WIN32) || defined (LINUX) || defined (IOS) #if defined (PSP)
void JSprite::SetColor(PIXEL_TYPE color) { mColor = (color&0x00ffffff); }
#else
void JSprite::SetColor(PIXEL_TYPE color) { mColor = (color&~MASK_ALPHA); } void JSprite::SetColor(PIXEL_TYPE color) { mColor = (color&~MASK_ALPHA); }
#else
void JSprite::SetColor(PIXEL_TYPE color) { mColor = (color&0x00ffffff); }
#endif #endif
// void JSprite::SetBlendMode(int blend, int index) // void JSprite::SetBlendMode(int blend, int index)

View File

@@ -608,11 +608,12 @@ local int unzlocal_GetCurrentFileInfoInternal (file,
/* we check the magic */ /* we check the magic */
if (err==UNZ_OK) if (err==UNZ_OK)
{
if (unzlocal_getLong(&s->z_filefunc, s->filestream,&uMagic) != UNZ_OK) if (unzlocal_getLong(&s->z_filefunc, s->filestream,&uMagic) != UNZ_OK)
err=UNZ_ERRNO; err=UNZ_ERRNO;
else if (uMagic!=0x02014b50) else if (uMagic!=0x02014b50)
err=UNZ_BADZIPFILE; err=UNZ_BADZIPFILE;
}
if (unzlocal_getShort(&s->z_filefunc, s->filestream,&file_info.version) != UNZ_OK) if (unzlocal_getShort(&s->z_filefunc, s->filestream,&file_info.version) != UNZ_OK)
err=UNZ_ERRNO; err=UNZ_ERRNO;
@@ -688,10 +689,12 @@ local int unzlocal_GetCurrentFileInfoInternal (file,
uSizeRead = extraFieldBufferSize; uSizeRead = extraFieldBufferSize;
if (lSeek!=0) if (lSeek!=0)
{
if (ZSEEK(s->z_filefunc, s->filestream,lSeek,ZLIB_FILEFUNC_SEEK_CUR)==0) if (ZSEEK(s->z_filefunc, s->filestream,lSeek,ZLIB_FILEFUNC_SEEK_CUR)==0)
lSeek=0; lSeek=0;
else else
err=UNZ_ERRNO; err=UNZ_ERRNO;
}
if ((file_info.size_file_extra>0) && (extraFieldBufferSize>0)) if ((file_info.size_file_extra>0) && (extraFieldBufferSize>0))
if (ZREAD(s->z_filefunc, s->filestream,extraField,uSizeRead)!=uSizeRead) if (ZREAD(s->z_filefunc, s->filestream,extraField,uSizeRead)!=uSizeRead)
err=UNZ_ERRNO; err=UNZ_ERRNO;
@@ -713,10 +716,12 @@ local int unzlocal_GetCurrentFileInfoInternal (file,
uSizeRead = commentBufferSize; uSizeRead = commentBufferSize;
if (lSeek!=0) if (lSeek!=0)
{
if (ZSEEK(s->z_filefunc, s->filestream,lSeek,ZLIB_FILEFUNC_SEEK_CUR)==0) if (ZSEEK(s->z_filefunc, s->filestream,lSeek,ZLIB_FILEFUNC_SEEK_CUR)==0)
lSeek=0; lSeek=0;
else else
err=UNZ_ERRNO; err=UNZ_ERRNO;
}
if ((file_info.size_file_comment>0) && (commentBufferSize>0)) if ((file_info.size_file_comment>0) && (commentBufferSize>0))
if (ZREAD(s->z_filefunc, s->filestream,szComment,uSizeRead)!=uSizeRead) if (ZREAD(s->z_filefunc, s->filestream,szComment,uSizeRead)!=uSizeRead)
err=UNZ_ERRNO; err=UNZ_ERRNO;
@@ -977,11 +982,12 @@ local int unzlocal_CheckCurrentFileCoherencyHeader (s,piSizeVar,
if (err==UNZ_OK) if (err==UNZ_OK)
{
if (unzlocal_getLong(&s->z_filefunc, s->filestream,&uMagic) != UNZ_OK) if (unzlocal_getLong(&s->z_filefunc, s->filestream,&uMagic) != UNZ_OK)
err=UNZ_ERRNO; err=UNZ_ERRNO;
else if (uMagic!=0x04034b50) else if (uMagic!=0x04034b50)
err=UNZ_BADZIPFILE; err=UNZ_BADZIPFILE;
}
if (unzlocal_getShort(&s->z_filefunc, s->filestream,&uData) != UNZ_OK) if (unzlocal_getShort(&s->z_filefunc, s->filestream,&uData) != UNZ_OK)
err=UNZ_ERRNO; err=UNZ_ERRNO;
/* /*

View File

@@ -37,7 +37,7 @@ PSP_EBOOT_UNKPNG = pic0.png
PSP_EBOOT_PIC1 = pic1.png PSP_EBOOT_PIC1 = pic1.png
INCDIR = ../../JGE/include ../../JGE/include/psp ../../JGE/include/psp/freetype2 ../../JGE/src ../../projects/mtg/include ../../Boost INCDIR = ../../JGE/include ../../JGE/include/psp ../../JGE/include/psp/freetype2 ../../JGE/src ../../projects/mtg/include ../../Boost
LIBDIR = ../../JGE/lib/psp LIBDIR = ../../JGE/lib/psp
CFLAGS = -O2 -G0 -DPSPFW3XX -DDEVHOOK -DUSE_PRECOMPILED_HEADERS=1 -DPSPENV CFLAGS = -O2 -G0 -DPSPFW3XX -DDEVHOOK -DUSE_PRECOMPILED_HEADERS=1 -DPSPENV -DPSP
else else
OBJS += objs/TestSuiteAI.o OBJS += objs/TestSuiteAI.o
INCDIR = -I../../JGE/include -I../../JGE/src -I/usr/X11/include -I../../projects/mtg/include -I../../Boost INCDIR = -I../../JGE/include -I../../JGE/src -I/usr/X11/include -I../../projects/mtg/include -I../../Boost

View File

@@ -3,9 +3,7 @@
#include <JGE.h> #include <JGE.h>
#if defined (WIN32) || defined (LINUX) || defined (IOS) #if defined (PSP)
#else
#include <pspkernel.h> #include <pspkernel.h>
#include <pspdisplay.h> #include <pspdisplay.h>
#include <pspctrl.h> #include <pspctrl.h>

View File

@@ -3,10 +3,10 @@
#include <JGE.h> #include <JGE.h>
#include <JLogger.h> #include <JLogger.h>
#include <JRenderer.h> #include <JRenderer.h>
#if defined (WIN32) || defined (LINUX) || defined (IOS) #if defined (PSP)
#include <time.h>
#else
#include <pspfpu.h> #include <pspfpu.h>
#else
#include <time.h>
#endif #endif
#include "WResourceManager.h" #include "WResourceManager.h"
@@ -85,7 +85,7 @@ void GameApp::Create()
#if !defined(QT_CONFIG) && !defined(IOS) #if !defined(QT_CONFIG) && !defined(IOS)
#if defined (WIN32) #if defined (WIN32)
_CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF ); _CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );
#elif not defined (LINUX) #elif defined (PSP)
pspFpuSetEnable(0); //disable FPU Exceptions until we find where the FPU errors come from pspFpuSetEnable(0); //disable FPU Exceptions until we find where the FPU errors come from
#endif #endif
#endif //QT_CONFIG #endif //QT_CONFIG
@@ -356,8 +356,7 @@ void GameApp::Update()
mCurrentState = mNextState; mCurrentState = mNextState;
#if defined (WIN32) || defined (LINUX) #if defined (PSP)
#else
/* /*
int maxLinear = ramAvailableLineareMax(); int maxLinear = ramAvailableLineareMax();
int ram = ramAvailable(); int ram = ramAvailable();

View File

@@ -10,7 +10,7 @@ using std::map;
static map<const LocalKeySym, KeyRep> fattable; static map<const LocalKeySym, KeyRep> fattable;
static map<const JButton, KeyRep> slimtable; static map<const JButton, KeyRep> slimtable;
#if defined(LINUX) || defined (IOS) #if defined(LINUX) || defined (IOS) || defined (ANDROID)
const KeyRep& translateKey(LocalKeySym key) const KeyRep& translateKey(LocalKeySym key)
{ {
{ {
@@ -20,13 +20,13 @@ const KeyRep& translateKey(LocalKeySym key)
} }
char* str = NULL; char* str = NULL;
#if !defined(QT_CONFIG) && !defined(IOS) #if !defined(QT_CONFIG) && !defined(IOS) && !defined(ANDROID)
str = XKeysymToString(key); str = XKeysymToString(key);
#endif // QT_CONFIG #endif // QT_CONFIG
if (!str) if (!str)
{ {
str = NEW char[11]; str = NEW char[11];
sprintf(str, "%lu", key); sprintf(str, "%lu", key); //TODO: Wagic is not supposed to know that a key actually is an unsingned long, so this part should probably be platform specific (move to JGE ?)
} }
const KeyRep k = make_pair(str, static_cast<JQuad*>(NULL)); const KeyRep k = make_pair(str, static_cast<JQuad*>(NULL));
fattable[key] = k; fattable[key] = k;

View File

@@ -134,8 +134,7 @@ unsigned long WCachedTexture::size()
if (!texture) return 0; if (!texture) return 0;
unsigned int pixel_size = 4; unsigned int pixel_size = 4;
#if defined WIN32 || defined LINUX || defined IOS #if defined(PSP)
#else
pixel_size = JRenderer::GetInstance()->PixelSize(texture->mTextureFormat); pixel_size = JRenderer::GetInstance()->PixelSize(texture->mTextureFormat);
#endif #endif
return texture->mTexHeight * texture->mTexWidth * pixel_size; return texture->mTexHeight * texture->mTexWidth * pixel_size;

View File

@@ -10,12 +10,7 @@
static PIXEL_TYPE gencolor(int id, PIXEL_TYPE color) static PIXEL_TYPE gencolor(int id, PIXEL_TYPE color)
{ {
unsigned int a, r, g, b, r0, g0, b0; unsigned int a, r, g, b, r0, g0, b0;
#if defined (WIN32) || defined (LINUX) #if defined (PSP)
a = (color >> 24) & 0xFF;
r = (color >> 16) & 0xFF;
g = (color >> 8) & 0xFF;
b = (color >> 0) & 0xFF;
#else // PSP
# if defined (ABGR8888) # if defined (ABGR8888)
a = (color >> 24) & 0xFF; a = (color >> 24) & 0xFF;
b = (color >> 16) & 0xFF; b = (color >> 16) & 0xFF;
@@ -32,6 +27,11 @@ static PIXEL_TYPE gencolor(int id, PIXEL_TYPE color)
g = ((color >> 4) & 0x0F) << 4; g = ((color >> 4) & 0x0F) << 4;
r = ((color >> 0) & 0x0F) << 4; r = ((color >> 0) & 0x0F) << 4;
# endif # endif
#else // non PSP
a = (color >> 24) & 0xFF;
r = (color >> 16) & 0xFF;
g = (color >> 8) & 0xFF;
b = (color >> 0) & 0xFF;
#endif #endif
r0 = g0 = b0 = 255; r0 = g0 = b0 = 255;
@@ -204,7 +204,7 @@ WFBFont::WFBFont(int inFontID, const char *fontname, int lineheight, bool useVid
mSprites = NEW JQuad*[mCacheSize]; mSprites = NEW JQuad*[mCacheSize];
mGBCode = NEW int[mCacheSize]; mGBCode = NEW int[mCacheSize];
#if defined (WIN32) || defined (LINUX) #if !defined (PSP)
mCharBuffer = NEW u32[mFontSize*mFontSize]; mCharBuffer = NEW u32[mFontSize*mFontSize];
#endif #endif
@@ -246,8 +246,7 @@ WFBFont::~WFBFont()
if (mCharBuffer) delete[] mCharBuffer; if (mCharBuffer) delete[] mCharBuffer;
} }
#if defined (WIN32) || defined (LINUX) #if defined (PSP)
#else
static void SwizzlePlot(u8* out, PIXEL_TYPE color, int i, int j, unsigned int width) static void SwizzlePlot(u8* out, PIXEL_TYPE color, int i, int j, unsigned int width)
{ {
unsigned int rowblocks = (width >> 4); unsigned int rowblocks = (width >> 4);
@@ -283,14 +282,14 @@ int WFBFont::PreCacheChar(const u8 *ch)
int index = mCurr++; int index = mCurr++;
if (mCurr >= mCacheSize) mCurr = 0; if (mCurr >= mCacheSize) mCurr = 0;
#if defined (WIN32) || defined (LINUX) || defined (IOS) #if defined (PSP)
int x = 0;
int y = 0;
memset(mCharBuffer, 0, sizeof(u32) * mFontSize * mFontSize);
#else
u8* pTexture = (u8*) mTexture->mBits; u8* pTexture = (u8*) mTexture->mBits;
int x; int x;
int y = (int) mSprites[index]->mY; int y = (int) mSprites[index]->mY;
#else
int x = 0;
int y = 0;
memset(mCharBuffer, 0, sizeof(u32) * mFontSize * mFontSize);
#endif #endif
if (doubleWidthChar(ch)) if (doubleWidthChar(ch))
@@ -319,10 +318,10 @@ int WFBFont::PreCacheChar(const u8 *ch)
#if 1 #if 1
for (; j < offset; j++) for (; j < offset; j++)
{ {
#if defined (WIN32) || defined (LINUX) || defined (IOS) #if defined (PSP)
mCharBuffer[y * mFontSize + x] = ARGB(0, 0, 0, 0);
#else
SwizzlePlot(pTexture, ARGB(0, 0, 0, 0), x * PIXEL_SIZE, y, mTexture->mTexWidth * PIXEL_SIZE); SwizzlePlot(pTexture, ARGB(0, 0, 0, 0), x * PIXEL_SIZE, y, mTexture->mTexWidth * PIXEL_SIZE);
#else
mCharBuffer[y * mFontSize + x] = ARGB(0, 0, 0, 0);
#endif #endif
x++; x++;
} }
@@ -334,19 +333,19 @@ int WFBFont::PreCacheChar(const u8 *ch)
gray = src[(i * size + j - offset) / 2]; gray = src[(i * size + j - offset) / 2];
gray = ((j - offset) & 1) ? (gray & 0xF0) : ((gray & 0x0F) << 4); gray = ((j - offset) & 1) ? (gray & 0xF0) : ((gray & 0x0F) << 4);
if (gray) gray |= 0x0F; if (gray) gray |= 0x0F;
#if defined (WIN32) || defined (LINUX) || defined (IOS) #if defined (PSP)
mCharBuffer[y * mFontSize + x] = ARGB(gray, 255, 255, 255);
#else
SwizzlePlot(pTexture, ARGB(gray, 255, 255, 255), x * PIXEL_SIZE, y, mTexture->mTexWidth * PIXEL_SIZE); SwizzlePlot(pTexture, ARGB(gray, 255, 255, 255), x * PIXEL_SIZE, y, mTexture->mTexWidth * PIXEL_SIZE);
#else
mCharBuffer[y * mFontSize + x] = ARGB(gray, 255, 255, 255);
#endif #endif
x++; x++;
} }
for (; j < mFontSize; j++) for (; j < mFontSize; j++)
{ {
#if defined (WIN32) || defined (LINUX) || defined (IOS) #if defined (PSP)
mCharBuffer[y * mFontSize + x] = ARGB(0, 0, 0, 0);
#else
SwizzlePlot(pTexture, ARGB(0, 0, 0, 0), x * PIXEL_SIZE, y, mTexture->mTexWidth * PIXEL_SIZE); SwizzlePlot(pTexture, ARGB(0, 0, 0, 0), x * PIXEL_SIZE, y, mTexture->mTexWidth * PIXEL_SIZE);
#else
mCharBuffer[y * mFontSize + x] = ARGB(0, 0, 0, 0);
#endif #endif
x++; x++;
} }
@@ -355,12 +354,12 @@ int WFBFont::PreCacheChar(const u8 *ch)
mGBCode[index] = code; mGBCode[index] = code;
#if defined (WIN32) || defined (LINUX) || defined (IOS) #if defined (PSP)
sceKernelDcacheWritebackAll();
#else
x = (int)mSprites[index]->mX; x = (int)mSprites[index]->mX;
y = (int)mSprites[index]->mY; y = (int)mSprites[index]->mY;
glTexSubImage2D(GL_TEXTURE_2D, 0, x, y, mFontSize, mFontSize, GL_RGBA, GL_UNSIGNED_BYTE, mCharBuffer); glTexSubImage2D(GL_TEXTURE_2D, 0, x, y, mFontSize, mFontSize, GL_RGBA, GL_UNSIGNED_BYTE, mCharBuffer);
#else
sceKernelDcacheWritebackAll();
#endif #endif
return index; return index;
} }
@@ -645,7 +644,7 @@ WGBKFont::WGBKFont(int inFontID, const char *fontname, int lineheight, bool useV
mSprites = NEW JQuad*[mCacheSize]; mSprites = NEW JQuad*[mCacheSize];
mGBCode = NEW int[mCacheSize]; mGBCode = NEW int[mCacheSize];
#if defined (WIN32) || defined (LINUX) || defined (IOS) #if !defined (PSP)
mCharBuffer = NEW u32[mFontSize*mFontSize]; mCharBuffer = NEW u32[mFontSize*mFontSize];
#endif #endif
@@ -681,14 +680,14 @@ int WGBKFont::PreCacheChar(const u8 *ch)
int index = mCurr++; int index = mCurr++;
if (mCurr >= mCacheSize) mCurr = 0; if (mCurr >= mCacheSize) mCurr = 0;
#if defined (WIN32) || defined (LINUX) || defined (IOS) #if defined(PSP)
int x = 0;
int y = 0;
memset(mCharBuffer, 0, sizeof(u32) * mFontSize * mFontSize);
#else
u8* pTexture = (u8*) mTexture->mBits; u8* pTexture = (u8*) mTexture->mBits;
int x; int x;
int y = (int) mSprites[index]->mY; int y = (int) mSprites[index]->mY;
#else
int x = 0;
int y = 0;
memset(mCharBuffer, 0, sizeof(u32) * mFontSize * mFontSize);
#endif #endif
if (mIndex) code = mIndex[code]; if (mIndex) code = mIndex[code];
@@ -709,19 +708,19 @@ int WGBKFont::PreCacheChar(const u8 *ch)
// set up the font texture buffer // set up the font texture buffer
for (unsigned int i = 0; i < mFontSize; i++) for (unsigned int i = 0; i < mFontSize; i++)
{ {
#if defined (WIN32) || defined (LINUX) || defined (IOS) #if defined (PSP)
x = 0;
#else
x = (int) mSprites[index]->mX; x = (int) mSprites[index]->mX;
#else
x = 0;
#endif #endif
unsigned int j = 0; unsigned int j = 0;
#if 1 #if 1
for (; j < offset; j++) for (; j < offset; j++)
{ {
#if defined (WIN32) || defined (LINUX) || defined (IOS) #if defined (PSP)
mCharBuffer[y * mFontSize + x] = ARGB(0, 0, 0, 0);
#else
SwizzlePlot(pTexture, ARGB(0, 0, 0, 0), x * PIXEL_SIZE, y, mTexture->mTexWidth * PIXEL_SIZE); SwizzlePlot(pTexture, ARGB(0, 0, 0, 0), x * PIXEL_SIZE, y, mTexture->mTexWidth * PIXEL_SIZE);
#else
mCharBuffer[y * mFontSize + x] = ARGB(0, 0, 0, 0);
#endif #endif
x++; x++;
} }
@@ -733,19 +732,19 @@ int WGBKFont::PreCacheChar(const u8 *ch)
gray = src[(i * size + j - offset) / 2]; gray = src[(i * size + j - offset) / 2];
gray = ((j - offset) & 1) ? (gray & 0xF0) : ((gray & 0x0F) << 4); gray = ((j - offset) & 1) ? (gray & 0xF0) : ((gray & 0x0F) << 4);
if (gray) gray |= 0x0F; if (gray) gray |= 0x0F;
#if defined (WIN32) || defined (LINUX) || defined (IOS) #if defined (PSP)
mCharBuffer[y * mFontSize + x] = ARGB(gray, 255, 255, 255);
#else
SwizzlePlot(pTexture, ARGB(gray, 255, 255, 255), x * PIXEL_SIZE, y, mTexture->mTexWidth * PIXEL_SIZE); SwizzlePlot(pTexture, ARGB(gray, 255, 255, 255), x * PIXEL_SIZE, y, mTexture->mTexWidth * PIXEL_SIZE);
#else
mCharBuffer[y * mFontSize + x] = ARGB(gray, 255, 255, 255);
#endif #endif
x++; x++;
} }
for (; j < mFontSize; j++) for (; j < mFontSize; j++)
{ {
#if defined (WIN32) || defined (LINUX) || defined (IOS) #if defined (PSP)
mCharBuffer[y * mFontSize + x] = ARGB(0, 0, 0, 0);
#else
SwizzlePlot(pTexture, ARGB(0, 0, 0, 0), x * PIXEL_SIZE, y, mTexture->mTexWidth * PIXEL_SIZE); SwizzlePlot(pTexture, ARGB(0, 0, 0, 0), x * PIXEL_SIZE, y, mTexture->mTexWidth * PIXEL_SIZE);
#else
mCharBuffer[y * mFontSize + x] = ARGB(0, 0, 0, 0);
#endif #endif
x++; x++;
} }
@@ -754,12 +753,12 @@ int WGBKFont::PreCacheChar(const u8 *ch)
mGBCode[index] = code; mGBCode[index] = code;
#if defined (WIN32) || defined (LINUX) || defined (IOS) #if defined (PSP)
sceKernelDcacheWritebackAll();
#else
x = (int)mSprites[index]->mX; x = (int)mSprites[index]->mX;
y = (int)mSprites[index]->mY; y = (int)mSprites[index]->mY;
glTexSubImage2D(GL_TEXTURE_2D, 0, x, y, mFontSize, mFontSize, GL_RGBA, GL_UNSIGNED_BYTE, mCharBuffer); glTexSubImage2D(GL_TEXTURE_2D, 0, x, y, mFontSize, mFontSize, GL_RGBA, GL_UNSIGNED_BYTE, mCharBuffer);
#else
sceKernelDcacheWritebackAll();
#endif #endif
return index; return index;
} }

View File

@@ -59,7 +59,14 @@ int WRand()
int filesize(const char * filename) int filesize(const char * filename)
{ {
int file_size = 0; int file_size = 0;
#if defined (WIN32) || defined (LINUX) || defined (IOS) #if defined (PSP)
int file = sceIoOpen(filename, PSP_O_RDONLY, 0777);
if (file > 0)
{
file_size = sceIoLseek(file, 0, PSP_SEEK_END);
sceIoClose(file);
}
#else
FILE * file = fopen(filename, "rb"); FILE * file = fopen(filename, "rb");
if (file != NULL) if (file != NULL)
{ {
@@ -67,15 +74,6 @@ int filesize(const char * filename)
file_size = ftell(file); file_size = ftell(file);
fclose(file); fclose(file);
} }
#else
int file = sceIoOpen(filename, PSP_O_RDONLY, 0777);
if (file > 0)
{
file_size = sceIoLseek(file, 0, PSP_SEEK_END);
sceIoClose(file);
}
#endif #endif
return file_size; return file_size;
} }