Fixed few GFX bugs in TeeWorlds, it still crashes

This commit is contained in:
pelya
2010-09-06 13:17:43 +03:00
parent 1ef6967d7d
commit 10f1178f0b
16 changed files with 56 additions and 37 deletions

View File

@@ -67,6 +67,13 @@
#define CONF_PLATFORM_STRING "beos"
#endif
#if defined(ANDROID)
#define CONF_FAMILY_UNIX 1
#define CONF_FAMILY_STRING "unix"
#define CONF_PLATFORM_LINUX 1
#define CONF_PLATFORM_STRING "android"
#endif
/* architectures */
#if defined(i386) || defined(__i386__) || defined(__x86__) || defined(CONF_PLATFORM_WIN32)
@@ -99,6 +106,18 @@
#define CONF_ARCH_ENDIAN_BIG 1
#endif
#if defined(__ARMEB__)
#define CONF_ARCH_ARM 1
#define CONF_ARCH_STRING "arm"
#define CONF_ARCH_ENDIAN_BIG 1
#endif
#if defined(__ARMEL__)
#define CONF_ARCH_ARM 1
#define CONF_ARCH_STRING "arm"
#define CONF_ARCH_ENDIAN_LITTLE 1
#endif
#ifndef CONF_FAMILY_STRING
#define CONF_FAMILY_STRING "unknown"

View File

@@ -30,6 +30,9 @@
#if defined(CONF_PLATFORM_MACOSX)
#include <Carbon/Carbon.h>
#endif
#ifdef ANDROID
#include <android/log.h>
#endif
#elif defined(CONF_FAMILY_WINDOWS)
#define WIN32_LEAN_AND_MEAN
@@ -107,6 +110,10 @@ static void logger_stdout(const char *line)
{
printf("%s\n", line);
fflush(stdout);
#ifdef ANDROID
__android_log_print(ANDROID_LOG_INFO, "Teeworlds", "%s", line);
#endif
}
static void logger_debugger(const char *line)

View File

@@ -149,18 +149,9 @@ static void flush()
#ifdef ANDROID
{
int i;
for(i = 0; i < num_vertices; i++)
for(i = 0; i < num_vertices / 4; i++)
{
glDrawArrays(GL_TRIANGLE_FAN, 0, num_vertices);
glVertexPointer(3, GL_FLOAT,
sizeof(VERTEX),
(char*)(vertices+i));
glTexCoordPointer(2, GL_FLOAT,
sizeof(VERTEX),
(char*)(vertices+i) + sizeof(float)*3);
glColorPointer(4, GL_FLOAT,
sizeof(VERTEX),
(char*)(vertices+i) + sizeof(float)*5);
glDrawArrays(GL_TRIANGLE_FAN, i * 4, 4);
}
}
#else
@@ -188,7 +179,9 @@ static int try_init()
#ifdef ANDROID
config.gfx_screen_width = SDL_ListModes(NULL, SDL_OPENGL|SDL_GL_DOUBLEBUFFER|SDL_FULLSCREEN)[0]->w;
config.gfx_screen_width = SDL_ListModes(NULL, SDL_OPENGL|SDL_GL_DOUBLEBUFFER|SDL_FULLSCREEN)[0]->h;
config.gfx_screen_height = SDL_ListModes(NULL, SDL_OPENGL|SDL_GL_DOUBLEBUFFER|SDL_FULLSCREEN)[0]->h;
dbg_msg("gfx", "Physical display resolution is %dx%d", config.gfx_screen_width, config.gfx_screen_height);
#endif
screen_width = config.gfx_screen_width;