mirror of
https://github.com/SpartanJ/eepp.git
synced 2026-05-31 02:26:29 +03:00
Added OS detection for Android and iOS.
This commit is contained in:
27
src/base.hpp
27
src/base.hpp
@@ -31,6 +31,8 @@
|
||||
#define EE_PLATFORM_BSD 4
|
||||
#define EE_PLATFORM_SOLARIS 5
|
||||
#define EE_PLATFORM_HAIKU 6
|
||||
#define EE_PLATFORM_ANDROID 7
|
||||
#define EE_PLATFORM_IOS 8
|
||||
|
||||
#if defined( __WIN32__ ) || defined( _WIN32 ) || defined( _WIN64 )
|
||||
#define EE_PLATFORM EE_PLATFORM_WIN
|
||||
@@ -39,7 +41,15 @@
|
||||
#define EE_COMPILER_MSVC
|
||||
#endif
|
||||
#elif defined( __APPLE_CC__ ) || defined ( __APPLE__ )
|
||||
#define EE_PLATFORM EE_PLATFORM_MACOSX
|
||||
|
||||
#include <TargetConditionals.h>
|
||||
|
||||
#if defined( __IPHONE__ ) || ( defined( TARGET_OS_IPHONE ) && TARGET_OS_IPHONE ) || ( defined( TARGET_IPHONE_SIMULATOR ) && TARGET_IPHONE_SIMULATOR )
|
||||
#define EE_PLATFORM EE_PLATFORM_IOS
|
||||
#else
|
||||
#define EE_PLATFORM EE_PLATFORM_MACOSX
|
||||
#endif
|
||||
|
||||
#elif defined ( linux ) || defined( __linux__ )
|
||||
#define EE_PLATFORM EE_PLATFORM_LINUX
|
||||
#elif defined( __FreeBSD__ ) || defined(__OpenBSD__) || defined( __NetBSD__ ) || defined( __DragonFly__ )
|
||||
@@ -48,6 +58,20 @@
|
||||
#define EE_PLATFORM EE_PLATFORM_SOLARIS
|
||||
#elif defined( __HAIKU__ ) || defined( __BEOS__ )
|
||||
#define EE_PLATFORM EE_PLATFORM_HAIKU
|
||||
#elif defined( __ANDROID__ ) || defined( ANDROID )
|
||||
#define EE_PLATFORM EE_PLATFORM_ANDROID
|
||||
#endif
|
||||
|
||||
#if EE_PLATFORM == EE_PLATFORM_ANDROID
|
||||
#if !defined( EE_GLES1 ) && !defined( EE_GLES2 )
|
||||
#define EE_GLES1
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if EE_PLATFORM == EE_PLATFORM_IOS
|
||||
#if !defined( EE_GLES1 ) && !defined( EE_GLES2 )
|
||||
#define EE_GLES1
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined ( linux ) || defined( __linux__ ) \
|
||||
@@ -235,7 +259,6 @@ namespace EE {
|
||||
#else
|
||||
typedef SOPHIST_uint32 Uint64; // Fallback to a 32 bit int
|
||||
typedef SOPHIST_int32 Int64; // All the desktop platforms support 64bit ints, so this should not happend.
|
||||
#warning 64bit ints represented with 32bit ints because the compiler or platform doesnt support it.
|
||||
#endif
|
||||
|
||||
#define EE_PI 3.14159265358979323846
|
||||
|
||||
@@ -45,16 +45,30 @@
|
||||
|
||||
//! GLES2 ( programmable pipeline )
|
||||
#ifdef EE_GLES2
|
||||
#include <GLES2/gl2.h>
|
||||
#include <GLES2/gl2ext.h>
|
||||
#if EE_PLATFORM_IOS
|
||||
#include <OpenGLES/ES2/gl.h>
|
||||
#include <OpenGLES/ES2/glext.h>
|
||||
#else
|
||||
#include <GLES2/gl2.h>
|
||||
#include <GLES2/gl2ext.h>
|
||||
#endif
|
||||
|
||||
//! GLES1 ( fixed pipeline )
|
||||
#elif defined( EE_GLES1 )
|
||||
#include <GLES/gl.h>
|
||||
#if EE_PLATFORM_IOS
|
||||
#include <OpenGLES/ES1/gl.h>
|
||||
#include <OpenGLES/ES1/glext.h>
|
||||
#else
|
||||
#include <GLES/gl.h>
|
||||
#include <GLES/glext.h>
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef EE_GLES
|
||||
typedef GLfloat GLdouble;
|
||||
typedef char GLchar;
|
||||
|
||||
#define glCheckFramebufferStatusEXT glCheckFramebufferStatus
|
||||
#define glDeleteFramebuffersEXT glDeleteFramebuffers
|
||||
#define glGenFramebuffersEXT glGenFramebuffers
|
||||
@@ -70,11 +84,7 @@
|
||||
#define glBufferDataARB glBufferData
|
||||
#define glBufferSubDataARB glBufferSubData
|
||||
#define glVertexAttribPointerARB glVertexAttribPointer
|
||||
typedef GLfloat GLdouble;
|
||||
#endif
|
||||
|
||||
#ifdef EE_GLES2
|
||||
typedef char GLchar;
|
||||
#define GL_MODELVIEW 0x1700
|
||||
#define GL_PROJECTION 0x1701
|
||||
#define GL_TEXTURE 0x1702
|
||||
@@ -98,6 +108,12 @@ typedef char GLchar;
|
||||
#define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642
|
||||
#endif
|
||||
|
||||
#ifdef EE_GLES
|
||||
#define EE_QUAD_VERTEX 6
|
||||
#else
|
||||
#define EE_QUAD_VERTEX 4
|
||||
#endif
|
||||
|
||||
#define STBI_TYPE_SPECIFIC_FUNCTIONS
|
||||
#include "../helper/SOIL/stb_image.h"
|
||||
#include "../helper/SOIL/SOIL.h"
|
||||
@@ -124,10 +140,4 @@ using namespace EE::System;
|
||||
|
||||
#include "renders.hpp"
|
||||
|
||||
#ifdef EE_GLES
|
||||
#define EE_QUAD_VERTEX 6
|
||||
#else
|
||||
#define EE_QUAD_VERTEX 4
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
@@ -44,16 +44,10 @@ cGL * cGL::CreateSingleton() {
|
||||
if ( ms_singleton == 0 ) {
|
||||
#ifdef EE_GLES2
|
||||
ms_singleton = eeNew( cRendererGL3, () );
|
||||
#elif EE_GLES1
|
||||
#elif defined( EE_GLES1 )
|
||||
ms_singleton = eeNew( cRendererGL, () );
|
||||
#else
|
||||
#ifdef EE_GL3_ENABLED
|
||||
/** Implement an OpenGL3 compilant renderer */
|
||||
if ( '3' == glGetString(GL_VERSION)[0] )
|
||||
ms_singleton = eeNew( cRendererGL3, () );
|
||||
else
|
||||
#endif
|
||||
ms_singleton = eeNew( cRendererGL, () );
|
||||
ms_singleton = eeNew( cRendererGL, () );
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -115,7 +109,7 @@ void cGL::Init() {
|
||||
WriteExtension( EEGL_EXT_framebuffer_object , GLEW_EXT_framebuffer_object );
|
||||
WriteExtension( EEGL_ARB_multitexture , GLEW_ARB_multitexture );
|
||||
WriteExtension( EEGL_EXT_texture_compression_s3tc , GLEW_EXT_texture_compression_s3tc );
|
||||
WriteExtension( EEGL_ARB_vertex_buffer_object , GLEW_ARB_vertex_buffer_object );
|
||||
WriteExtension( EEGL_ARB_vertex_buffer_object , GLEW_ARB_vertex_buffer_object );
|
||||
WriteExtension( EEGL_ARB_vertex_array_object , GLEW_ARB_vertex_array_object );
|
||||
}
|
||||
else
|
||||
@@ -131,7 +125,7 @@ void cGL::Init() {
|
||||
WriteExtension( EEGL_EXT_framebuffer_object , IsExtension( "GL_EXT_framebuffer_object" ) );
|
||||
WriteExtension( EEGL_ARB_multitexture , IsExtension( "GL_ARB_multitexture" ) );
|
||||
WriteExtension( EEGL_EXT_texture_compression_s3tc , IsExtension( "GL_EXT_texture_compression_s3tc" ) );
|
||||
WriteExtension( EEGL_ARB_vertex_buffer_object , IsExtension( "GL_ARB_vertex_buffer_object" ) );
|
||||
WriteExtension( EEGL_ARB_vertex_buffer_object , IsExtension( "GL_ARB_vertex_buffer_object" ) );
|
||||
WriteExtension( EEGL_ARB_vertex_array_object , IsExtension( "GL_ARB_vertex_array_object" ) );
|
||||
|
||||
glewOn = false; /// avoid compiler warning
|
||||
@@ -345,13 +339,13 @@ std::string cGL::GetVersion() {
|
||||
return std::string( reinterpret_cast<const char*> ( cGL::instance()->GetString( GL_VERSION ) ) );
|
||||
}
|
||||
|
||||
std::string cGL::GetShadingLanguageVersion() {
|
||||
std::string cGL::GetShadingLanguageVersion() {
|
||||
if ( ShadersSupported() ) {
|
||||
#ifdef GL_SHADING_LANGUAGE_VERSION
|
||||
return std::string( reinterpret_cast<const char*> ( cGL::instance()->GetString( GL_SHADING_LANGUAGE_VERSION ) ) );
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
return std::string( "Shaders not supported" );
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user