diff options
Diffstat (limited to 'platform/iphone')
-rw-r--r-- | platform/iphone/app_delegate.h | 2 | ||||
-rw-r--r-- | platform/iphone/app_delegate.mm | 38 | ||||
-rw-r--r-- | platform/iphone/audio_driver_iphone.cpp | 4 | ||||
-rw-r--r-- | platform/iphone/audio_driver_iphone.h | 5 | ||||
-rw-r--r-- | platform/iphone/detect.py | 8 | ||||
-rw-r--r-- | platform/iphone/game_center.mm | 14 | ||||
-rwxr-xr-x | platform/iphone/gl_view.mm | 2 | ||||
-rw-r--r-- | platform/iphone/icloud.mm | 12 | ||||
-rw-r--r-- | platform/iphone/in_app_store.mm | 14 | ||||
-rw-r--r-- | platform/iphone/os_iphone.cpp | 61 | ||||
-rw-r--r-- | platform/iphone/os_iphone.h | 16 | ||||
-rw-r--r-- | platform/iphone/platform_config.h | 4 |
12 files changed, 66 insertions, 114 deletions
diff --git a/platform/iphone/app_delegate.h b/platform/iphone/app_delegate.h index 6883692b15..1b2ca42ab6 100644 --- a/platform/iphone/app_delegate.h +++ b/platform/iphone/app_delegate.h @@ -30,8 +30,6 @@ #import "gl_view.h" #import "view_controller.h" -// Old accelerometer approach deprecated since IOS 7.0 -// Include coremotion for accelerometer, gyroscope and magnetometer access, available since IOS 4.0 but some functionality won't work for anything before IOS 5.0 #import <CoreMotion/CoreMotion.h> @interface AppDelegate : NSObject <UIApplicationDelegate, GLViewDelegate> { diff --git a/platform/iphone/app_delegate.mm b/platform/iphone/app_delegate.mm index 664683ad64..740f1d7edc 100644 --- a/platform/iphone/app_delegate.mm +++ b/platform/iphone/app_delegate.mm @@ -284,12 +284,12 @@ static int frame_count = 0; //glView.autoresizesSubviews = YES; //[glView setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleWidth]; - int backingWidth; - int backingHeight; - glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES, GL_RENDERBUFFER_WIDTH_OES, &backingWidth); - glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES, GL_RENDERBUFFER_HEIGHT_OES, &backingHeight); + int backingWidth; + int backingHeight; + glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES, GL_RENDERBUFFER_WIDTH_OES, &backingWidth); + glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES, GL_RENDERBUFFER_HEIGHT_OES, &backingHeight); - iphone_main(backingWidth, backingHeight, gargc, gargv); + iphone_main(backingWidth, backingHeight, gargc, gargv); view_controller = [[ViewController alloc] init]; view_controller.view = glView; @@ -305,16 +305,6 @@ static int frame_count = 0; [window makeKeyAndVisible]; //Configure and start accelerometer -/* - Old accelerometer approach deprecated since IOS 7.0 - - last_accel[0] = 0; - last_accel[1] = 0; - last_accel[2] = 0; - [[UIAccelerometer sharedAccelerometer] setUpdateInterval:(1.0 / kAccelerometerFrequency)]; - [[UIAccelerometer sharedAccelerometer] setDelegate:self]; -*/ - if (!motionInitialised) { motionManager = [[CMMotionManager alloc] init]; if (motionManager.deviceMotionAvailable) { @@ -365,10 +355,10 @@ static int frame_count = 0; if (motionInitialised) { ///@TODO is this the right place to clean this up? - [motionManager stopDeviceMotionUpdates]; - [motionManager release]; - motionManager = nil; - motionInitialised = NO; + [motionManager stopDeviceMotionUpdates]; + [motionManager release]; + motionManager = nil; + motionInitialised = NO; }; iphone_finish(); @@ -416,16 +406,6 @@ static int frame_count = 0; }; } -/* - Depricated since IOS 7.0 -- (void)accelerometer:(UIAccelerometer*)accelerometer didAccelerate:(UIAcceleration*)acceleration { - //Use a basic low-pass filter to only keep the gravity in the accelerometer values - accel[0] = acceleration.x; // * kFilteringFactor + accel[0] * (1.0 - kFilteringFactor); - accel[1] = acceleration.y; // * kFilteringFactor + accel[1] * (1.0 - kFilteringFactor); - accel[2] = acceleration.z; // * kFilteringFactor + accel[2] * (1.0 - kFilteringFactor); -} -*/ - - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { #ifdef MODULE_FACEBOOKSCORER_IOS_ENABLED return [[[FacebookScorer sharedInstance] facebook] handleOpenURL:url]; diff --git a/platform/iphone/audio_driver_iphone.cpp b/platform/iphone/audio_driver_iphone.cpp index 6c91ed8712..eda3897841 100644 --- a/platform/iphone/audio_driver_iphone.cpp +++ b/platform/iphone/audio_driver_iphone.cpp @@ -155,8 +155,8 @@ int AudioDriverIphone::get_mix_rate() const { return 44100; }; -AudioDriver::OutputFormat AudioDriverIphone::get_output_format() const { - return OUTPUT_STEREO; +AudioDriver::SpeakerMode AudioDriverIphone::get_speaker_mode() const { + return SPEAKER_MODE_STEREO; }; void AudioDriverIphone::lock() { diff --git a/platform/iphone/audio_driver_iphone.h b/platform/iphone/audio_driver_iphone.h index f127ac7b21..4c0cbfcb22 100644 --- a/platform/iphone/audio_driver_iphone.h +++ b/platform/iphone/audio_driver_iphone.h @@ -26,7 +26,8 @@ /* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ -#include "servers/audio/audio_server_sw.h" + +#include "servers/audio_server.h" #include <AudioUnit/AudioUnit.h> @@ -56,7 +57,7 @@ public: virtual Error init(); virtual void start(); virtual int get_mix_rate() const; - virtual OutputFormat get_output_format() const; + virtual SpeakerMode get_speaker_mode() const; virtual void lock(); virtual void unlock(); virtual void finish(); diff --git a/platform/iphone/detect.py b/platform/iphone/detect.py index 88ec83ef7a..20fa45d708 100644 --- a/platform/iphone/detect.py +++ b/platform/iphone/detect.py @@ -62,13 +62,13 @@ def configure(env): env['CCFLAGS'] = string.split('-arch i386 -fobjc-abi-version=2 -fobjc-legacy-dispatch -fmessage-length=0 -fpascal-strings -fasm-blocks -Wall -D__IPHONE_OS_VERSION_MIN_REQUIRED=40100 -isysroot $IPHONESDK -mios-simulator-version-min=4.3 -DCUSTOM_MATRIX_TRANSFORM_H=\\\"build/iphone/matrix4_iphone.h\\\" -DCUSTOM_VECTOR3_TRANSFORM_H=\\\"build/iphone/vector3_iphone.h\\\"') elif (env["arch"] == "arm64"): # arm64 env["bits"] = "64" - env['CCFLAGS'] = string.split('-fno-objc-arc -arch arm64 -fmessage-length=0 -fno-strict-aliasing -fdiagnostics-print-source-range-info -fdiagnostics-show-category=id -fdiagnostics-parseable-fixits -Wno-trigraphs -fpascal-strings -Wmissing-prototypes -Wreturn-type -Wparentheses -Wswitch -Wno-unused-parameter -Wunused-variable -Wunused-value -Wno-shorten-64-to-32 -fvisibility=hidden -Wno-sign-conversion -MMD -MT dependencies -miphoneos-version-min=5.1.1 -isysroot $IPHONESDK') + env['CCFLAGS'] = string.split('-fno-objc-arc -arch arm64 -fmessage-length=0 -fno-strict-aliasing -fdiagnostics-print-source-range-info -fdiagnostics-show-category=id -fdiagnostics-parseable-fixits -Wno-trigraphs -fpascal-strings -Wmissing-prototypes -Wreturn-type -Wparentheses -Wswitch -Wno-unused-parameter -Wunused-variable -Wunused-value -Wno-shorten-64-to-32 -fvisibility=hidden -Wno-sign-conversion -MMD -MT dependencies -miphoneos-version-min=7.0 -isysroot $IPHONESDK') env.Append(CPPFLAGS=['-DNEED_LONG_INT']) env.Append(CPPFLAGS=['-DLIBYUV_DISABLE_NEON']) else: # armv7 env["arch"] = "arm" env["bits"] = "32" - env['CCFLAGS'] = string.split('-fno-objc-arc -arch armv7 -fmessage-length=0 -fno-strict-aliasing -fdiagnostics-print-source-range-info -fdiagnostics-show-category=id -fdiagnostics-parseable-fixits -Wno-trigraphs -fpascal-strings -Wmissing-prototypes -Wreturn-type -Wparentheses -Wswitch -Wno-unused-parameter -Wunused-variable -Wunused-value -Wno-shorten-64-to-32 -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk -fvisibility=hidden -Wno-sign-conversion -mthumb "-DIBOutlet=__attribute__((iboutlet))" "-DIBOutletCollection(ClassName)=__attribute__((iboutletcollection(ClassName)))" "-DIBAction=void)__attribute__((ibaction)" -miphoneos-version-min=5.1.1 -MMD -MT dependencies -isysroot $IPHONESDK') + env['CCFLAGS'] = string.split('-fno-objc-arc -arch armv7 -fmessage-length=0 -fno-strict-aliasing -fdiagnostics-print-source-range-info -fdiagnostics-show-category=id -fdiagnostics-parseable-fixits -Wno-trigraphs -fpascal-strings -Wmissing-prototypes -Wreturn-type -Wparentheses -Wswitch -Wno-unused-parameter -Wunused-variable -Wunused-value -Wno-shorten-64-to-32 -isysroot $IPHONESDK -fvisibility=hidden -Wno-sign-conversion -mthumb "-DIBOutlet=__attribute__((iboutlet))" "-DIBOutletCollection(ClassName)=__attribute__((iboutletcollection(ClassName)))" "-DIBAction=void)__attribute__((ibaction)" -miphoneos-version-min=7.0 -MMD -MT dependencies -isysroot $IPHONESDK') if (env["arch"] == "x86"): env['IPHONEPLATFORM'] = 'iPhoneSimulator' @@ -94,7 +94,7 @@ def configure(env): '-F$IPHONESDK', ]) elif (env["arch"] == "arm64"): - env.Append(LINKFLAGS=['-arch', 'arm64', '-Wl,-dead_strip', '-miphoneos-version-min=5.1.1', + env.Append(LINKFLAGS=['-arch', 'arm64', '-Wl,-dead_strip', '-miphoneos-version-min=7.0', '-isysroot', '$IPHONESDK', #'-stdlib=libc++', '-framework', 'Foundation', @@ -113,7 +113,7 @@ def configure(env): '-framework', 'CoreMotion', ]) else: - env.Append(LINKFLAGS=['-arch', 'armv7', '-Wl,-dead_strip', '-miphoneos-version-min=5.1.1', + env.Append(LINKFLAGS=['-arch', 'armv7', '-Wl,-dead_strip', '-miphoneos-version-min=7.0', '-isysroot', '$IPHONESDK', '-framework', 'Foundation', '-framework', 'UIKit', diff --git a/platform/iphone/game_center.mm b/platform/iphone/game_center.mm index 03ee327d65..de6ea73c20 100644 --- a/platform/iphone/game_center.mm +++ b/platform/iphone/game_center.mm @@ -182,11 +182,11 @@ void GameCenter::request_achievement_descriptions() { ret["type"] = "achievement_descriptions"; if (error == nil) { ret["result"] = "ok"; - StringArray names; - StringArray titles; - StringArray unachieved_descriptions; - StringArray achieved_descriptions; - IntArray maximum_points; + PoolStringArray names; + PoolStringArray titles; + PoolStringArray unachieved_descriptions; + PoolStringArray achieved_descriptions; + PoolIntArray maximum_points; Array hidden; Array replayable; @@ -239,8 +239,8 @@ void GameCenter::request_achievements() { ret["type"] = "achievements"; if (error == nil) { ret["result"] = "ok"; - StringArray names; - RealArray percentages; + PoolStringArray names; + PoolRealArray percentages; for (int i=0; i<[achievements count]; i++) { diff --git a/platform/iphone/gl_view.mm b/platform/iphone/gl_view.mm index 3df29c5178..a3af8f4aa8 100755 --- a/platform/iphone/gl_view.mm +++ b/platform/iphone/gl_view.mm @@ -274,7 +274,7 @@ static void clear_touches() { nil]; // Create our EAGLContext, and if successful make it current and create our framebuffer. - context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2]; + context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES3]; if(!context || ![EAGLContext setCurrentContext:context] || ![self createFramebuffer]) { diff --git a/platform/iphone/icloud.mm b/platform/iphone/icloud.mm index de70bb7e14..0d1825dd6b 100644 --- a/platform/iphone/icloud.mm +++ b/platform/iphone/icloud.mm @@ -78,12 +78,12 @@ Variant nsobject_to_variant(NSObject* object) { return String::utf8(str != NULL ? str : ""); } else if ([object isKindOfClass:[NSData class]]) { - ByteArray ret; + PoolByteArray ret; NSData* data = (NSData*)object; if ([data length] > 0) { ret.resize([data length]); { - ByteArray::Write w = ret.write(); + PoolByteArray::Write w = ret.write(); copymem(w.ptr(), [data bytes], [data length]); } } @@ -199,9 +199,9 @@ NSObject* variant_to_nsobject(Variant v) { } return result; } - else if (v.get_type() == Variant::RAW_ARRAY) { - ByteArray arr = v; - ByteArray::Read r = arr.read(); + else if (v.get_type() == Variant::POOL_BYTE_ARRAY) { + PoolByteArray arr = v; + PoolByteArray::Read r = arr.read(); NSData* result = [NSData dataWithBytes:r.ptr() length:arr.size()]; return result; } @@ -333,7 +333,7 @@ ICloud::ICloud() { Dictionary ret; ret["type"] = "key_value_changed"; - //StringArray result_keys; + //PoolStringArray result_keys; //Array result_values; Dictionary keyValues; String reason = ""; diff --git a/platform/iphone/in_app_store.mm b/platform/iphone/in_app_store.mm index 49026ceb0a..050498c125 100644 --- a/platform/iphone/in_app_store.mm +++ b/platform/iphone/in_app_store.mm @@ -89,11 +89,11 @@ void InAppStore::_bind_methods() { Dictionary ret; ret["type"] = "product_info"; ret["result"] = "ok"; - StringArray titles; - StringArray descriptions; - RealArray prices; - StringArray ids; - StringArray localized_prices; + PoolStringArray titles; + PoolStringArray descriptions; + PoolRealArray prices; + PoolStringArray ids; + PoolStringArray localized_prices; for (int i=0; i<[products count]; i++) { @@ -114,7 +114,7 @@ void InAppStore::_bind_methods() { ret["ids"] = ids; ret["localized_prices"] = localized_prices; - StringArray invalid_ids; + PoolStringArray invalid_ids; for (NSString* ipid in response.invalidProductIdentifiers) { @@ -134,7 +134,7 @@ Error InAppStore::request_product_info(Variant p_params) { Dictionary params = p_params; ERR_FAIL_COND_V(!params.has("product_ids"), ERR_INVALID_PARAMETER); - StringArray pids = params["product_ids"]; + PoolStringArray pids = params["product_ids"]; printf("************ request product info! %i\n", pids.size()); NSMutableArray* array = [[[NSMutableArray alloc] initWithCapacity:pids.size()] autorelease]; diff --git a/platform/iphone/os_iphone.cpp b/platform/iphone/os_iphone.cpp index 051c562b6a..e34dbae017 100644 --- a/platform/iphone/os_iphone.cpp +++ b/platform/iphone/os_iphone.cpp @@ -30,11 +30,9 @@ #include "os_iphone.h" -#include "drivers/gles2/rasterizer_gles2.h" - - +#include "drivers/gles3/rasterizer_gles3.h" #include "servers/visual/visual_server_raster.h" -#include "servers/visual/visual_server_wrap_mt.h" +//#include "servers/visual/visual_server_wrap_mt.h" #include "main/main.h" #include "audio_driver_iphone.h" @@ -109,16 +107,17 @@ void OSIPhone::initialize(const VideoMode& p_desired,int p_video_driver,int p_au supported_orientations |= ((GLOBAL_DEF("video_mode/allow_vertical", false)?1:0) << PortraitDown); supported_orientations |= ((GLOBAL_DEF("video_mode/allow_vertical_flipped", false)?1:0) << PortraitUp); - rasterizer_gles22 = memnew( RasterizerGLES2(false, false, false) ); - rasterizer = rasterizer_gles22; - rasterizer_gles22->set_base_framebuffer(gl_view_base_fb); + RasterizerGLES3::register_config(); + RasterizerGLES3::make_current(); + RasterizerStorageGLES3::system_fbo = gl_view_base_fb; - visual_server = memnew( VisualServerRaster(rasterizer) ); + visual_server = memnew( VisualServerRaster() ); + /* + FIXME: Reimplement threaded rendering? Or remove? if (get_render_thread_mode() != RENDER_THREAD_UNSAFE) { - visual_server = memnew(VisualServerWrapMT(visual_server, false)); }; - visual_server->init(); + */ visual_server->init(); visual_server->cursor_set_visible(false, 0); @@ -127,16 +126,7 @@ void OSIPhone::initialize(const VideoMode& p_desired,int p_video_driver,int p_au audio_driver->set_singleton(); audio_driver->init(); - sample_manager = memnew( SampleManagerMallocSW ); - audio_server = memnew( AudioServerSW(sample_manager) ); - audio_server->init(); - spatial_sound_server = memnew( SpatialSoundServerSW ); - spatial_sound_server->init(); - - spatial_sound_2d_server = memnew( SpatialSound2DServerSW ); - spatial_sound_2d_server->init(); - - // + // init physics servers physics_server = memnew( PhysicsServerSW ); physics_server->init(); //physics_2d_server = memnew( Physics2DServerSW ); @@ -148,28 +138,28 @@ void OSIPhone::initialize(const VideoMode& p_desired,int p_video_driver,int p_au /* #ifdef IOS_SCORELOOP_ENABLED scoreloop = memnew(ScoreloopIOS); - Globals::get_singleton()->add_singleton(Globals::Singleton("Scoreloop", scoreloop)); + GlobalConfig::get_singleton()->add_singleton(GlobalConfig::Singleton("Scoreloop", scoreloop)); scoreloop->connect(); #endif */ #ifdef GAME_CENTER_ENABLED game_center = memnew(GameCenter); - Globals::get_singleton()->add_singleton(Globals::Singleton("GameCenter", game_center)); + GlobalConfig::get_singleton()->add_singleton(GlobalConfig::Singleton("GameCenter", game_center)); game_center->connect(); #endif #ifdef STOREKIT_ENABLED store_kit = memnew(InAppStore); - Globals::get_singleton()->add_singleton(Globals::Singleton("InAppStore", store_kit)); + GlobalConfig::get_singleton()->add_singleton(GlobalConfig::Singleton("InAppStore", store_kit)); #endif #ifdef ICLOUD_ENABLED icloud = memnew(ICloud); - Globals::get_singleton()->add_singleton(Globals::Singleton("ICloud", icloud)); + GlobalConfig::get_singleton()->add_singleton(GlobalConfig::Singleton("ICloud", icloud)); //icloud->connect(); #endif - Globals::get_singleton()->add_singleton(Globals::Singleton("iOS", memnew(iOS))); + GlobalConfig::get_singleton()->add_singleton(GlobalConfig::Singleton("iOS", memnew(iOS))); }; MainLoop *OSIPhone::get_main_loop() const { @@ -294,8 +284,8 @@ void OSIPhone::mouse_move(int p_idx, int p_prev_x, int p_prev_y, int p_x, int p_ }; input->set_mouse_pos(Point2(ev.mouse_motion.x,ev.mouse_motion.y)); - ev.mouse_motion.speed_x=input->get_mouse_speed().x; - ev.mouse_motion.speed_y=input->get_mouse_speed().y; + ev.mouse_motion.speed_x=input->get_last_mouse_speed().x; + ev.mouse_motion.speed_y=input->get_last_mouse_speed().y; ev.mouse_motion.button_mask = 1; // pressed queue_event(ev); @@ -394,7 +384,7 @@ void OSIPhone::finalize() { visual_server->finish(); memdelete(visual_server); - memdelete(rasterizer); +// memdelete(rasterizer); physics_server->finish(); memdelete(physics_server); @@ -402,14 +392,8 @@ void OSIPhone::finalize() { physics_2d_server->finish(); memdelete(physics_2d_server); - spatial_sound_server->finish(); - memdelete(spatial_sound_server); - memdelete(input); - spatial_sound_2d_server->finish(); - memdelete(spatial_sound_2d_server); - }; void OSIPhone::set_mouse_show(bool p_show) { }; @@ -456,9 +440,8 @@ bool OSIPhone::can_draw() const { int OSIPhone::set_base_framebuffer(int p_fb) { - if (rasterizer_gles22) { - rasterizer_gles22->set_base_framebuffer(p_fb); - }; + RasterizerStorageGLES3::system_fbo = gl_view_base_fb; + return 0; }; @@ -542,7 +525,7 @@ Error OSIPhone::native_video_play(String p_path, float p_volume, String p_audio_ print("Unable to play %S using the native player as it resides in a .pck file\n", p_path.c_str()); return ERR_INVALID_PARAMETER; } else { - p_path = p_path.replace("res:/", Globals::get_singleton()->get_resource_path()); + p_path = p_path.replace("res:/", GlobalConfig::get_singleton()->get_resource_path()); } } else if (p_path.begins_with("user://")) p_path = p_path.replace("user:/", get_data_dir()); @@ -579,10 +562,8 @@ void OSIPhone::native_video_stop() { OSIPhone::OSIPhone(int width, int height) { - rasterizer_gles22 = NULL; main_loop = NULL; visual_server = NULL; - rasterizer = NULL; VideoMode vm; vm.fullscreen = true; diff --git a/platform/iphone/os_iphone.h b/platform/iphone/os_iphone.h index ab976edcba..65dcc884bb 100644 --- a/platform/iphone/os_iphone.h +++ b/platform/iphone/os_iphone.h @@ -39,10 +39,7 @@ #include "servers/physics/physics_server_sw.h" #include "servers/physics_2d/physics_2d_server_sw.h" #include "servers/physics_2d/physics_2d_server_wrap_mt.h" -#include "servers/audio/audio_server_sw.h" -#include "servers/audio/sample_manager_sw.h" -#include "servers/spatial_sound/spatial_sound_server_sw.h" -#include "servers/spatial_sound_2d/spatial_sound_2d_server_sw.h" +#include "servers/audio_server.h" #include "main/input_default.h" #include "game_center.h" #include "in_app_store.h" @@ -50,7 +47,7 @@ class AudioDriverIphone; -class RasterizerGLES2; +// class RasterizerGLES2; class OSIPhone : public OS_Unix { @@ -71,18 +68,13 @@ private: uint8_t supported_orientations; - Rasterizer *rasterizer; - - RasterizerGLES2* rasterizer_gles22; +// Rasterizer *rasterizer; +// RasterizerGLES2* rasterizer_gles22; VisualServer *visual_server; PhysicsServer* physics_server; Physics2DServer *physics_2d_server; - AudioServerSW *audio_server; - SampleManagerMallocSW *sample_manager; - SpatialSoundServerSW *spatial_sound_server; - SpatialSound2DServerSW *spatial_sound_2d_server; AudioDriverIphone* audio_driver; #ifdef GAME_CENTER_ENABLED diff --git a/platform/iphone/platform_config.h b/platform/iphone/platform_config.h index c8468f0152..64e9388910 100644 --- a/platform/iphone/platform_config.h +++ b/platform/iphone/platform_config.h @@ -27,8 +27,8 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include <alloca.h> -#define GLES2_INCLUDE_H <ES2/gl.h> - +// #define GLES2_INCLUDE_H <ES2/gl.h> +#define GLES3_INCLUDE_H <ES3/gl.h> #define PLATFORM_REFCOUNT |