User Tools

Site Tools


proton_issues

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
proton_issues [2011/11/28 06:25]
seth
proton_issues [2013/07/26 01:32]
seth
Line 2: Line 2:
  
 === General === === General ===
-  * Is it beta or not?  ​It's used in commercial products on most of its supported platformsso, yeah.  ​I don't use version #'s yet, the latest version ​is just whatever is on the svn.  So bit.. volatile but ready for commercial use for the daring+  * What version is it?  ​CurrentlyProton is unversioned and users are expected to update svn at least weekly.  ​All updates are expected to work with existing projects with a minimum of hassle, the worst you should ever have to do is add a .cpp or two to your project
-  * RTPack.exe only available for Windows at the moment, this utility is for processing textures and fonts.  This is the main reason why I recommend primary development be on a windows machine for now.  It could be ported to other platforms but would be a hassle, it needs Clanlib and PVRTools. (Full source is in svn if you want to try your hand at a port... (tools/​RTPack))+  * RTPack.exe only available for Windows ​and Linux at the moment, this command line utility is for processing textures and fonts. (Full source is in svn if you want to tweak it to compile for another platform.. OSX should be very easy)
   * Samples and docs are, how shall we say, lacking.   * Samples and docs are, how shall we say, lacking.
   * Proton internally shares all Surfaces/​SurfaceAnims that use the same filename, including grid settings if it is broken up into an anim.  This could be a problem if you want to use a surface with multiple grid settings or want to dynamically modify a surface for only one instance - [[http://​www.rtsoft.com/​forums/​showthread.php?​4106-SetupAnimEntity-for-texture-mapping|a work around is explained here]]. (If you aren't using SurfaceOverlay components or the ResourceManager() to get your surfaces, you won't be affected)   * Proton internally shares all Surfaces/​SurfaceAnims that use the same filename, including grid settings if it is broken up into an anim.  This could be a problem if you want to use a surface with multiple grid settings or want to dynamically modify a surface for only one instance - [[http://​www.rtsoft.com/​forums/​showthread.php?​4106-SetupAnimEntity-for-texture-mapping|a work around is explained here]]. (If you aren't using SurfaceOverlay components or the ResourceManager() to get your surfaces, you won't be affected)
Line 10: Line 10:
 === Windows (supported) === === Windows (supported) ===
   * True fullscreen modes not supported, but window resizing and alt-enter to toggle a pseudo fullscreen is (stretches to full current resolution)   * True fullscreen modes not supported, but window resizing and alt-enter to toggle a pseudo fullscreen is (stretches to full current resolution)
-  * Supports three audio systems, Audiere (default) ​and FMOD and SDL_Audio (SDL_Audio only tested with WebOS builds).+  * Supports three audio systems, Audiere (default)FMODand SDL_Audio (SDL_Audio only tested with WebOS builds).
   * If _CONSOLE is defined, can be used to create console only apps. (They also work in linux, good for writing a server..)   * If _CONSOLE is defined, can be used to create console only apps. (They also work in linux, good for writing a server..)
 +  * DirectX gamepads supported through GamepadManager (RTLooneyLadders has a usage example)
 +  * Probably supports the iCade too, but untested
 +  * Define **RT_WIN_MULTITOUCH_SUPPORT** to support multi-touch input. ​ May need the [[http://​www.microsoft.com/​en-us/​download/​details.aspx?​id=3138|Win 7 SDK]].
 +  * Define **RT_WIN_USE_APPDATA_SAVE_PATH** if you want Proton'​s GetSavePath() to return a unique user data path based on CSIDL_LOCAL_APPDATA instead of the current dir, which is the "​correct way" for Win these days. Note, you should also add a **CreateDirectoryRecursively("",​ GetSavePath());​** if you use this, as it returns a custom folder that might not exist, based on GetAppName()
 +
  
 === Mac OS X (supported) === === Mac OS X (supported) ===
Line 19: Line 24:
   * 64 bit builds might have issues, I'd stick to 32 bit for now.   * 64 bit builds might have issues, I'd stick to 32 bit for now.
   * Window rescaling/​fullscreen toggle supported   * Window rescaling/​fullscreen toggle supported
 +  * No gamepads supported
  
-=== iOS (supported) ​ === +=== iOS (supported) === 
-  * iPod Touch/​iPhone/​iPhone 3GS/​iPhone4/​iPad fully supported.+ 
 +  * iPod Touch/​iPhone/​iPhone 3GS/​iPhone4/​iPad/​iPad4/​iPhone5 native resolutions ​fully supported.
   * Supports three audio targets, AudioManagerDenshion (Recommended),​ AudioManagerOS (simpler) and AudioManagerFMOD (more powerful, can play midi/mod etc.. but FMOD isn't free for commercial use)   * Supports three audio targets, AudioManagerDenshion (Recommended),​ AudioManagerOS (simpler) and AudioManagerFMOD (more powerful, can play midi/mod etc.. but FMOD isn't free for commercial use)
   * Only plays .wav and .mp3 formats when using AudioManagerOS and AudioManagerDenshion.   * Only plays .wav and .mp3 formats when using AudioManagerOS and AudioManagerDenshion.
 +  * Supports 60beat gamepad through GamepadManager. ​ iCade/etc coming... 
 +  * AudioManagerDenshion gotcha - music MUST be .mp3 or it breaks sfx.  Will change this to assert if 
 +  * Supports IAP - you must have RT_IAP_SUPPORT defined and InAppPurchaseManager.mm added to the project (see RTAdTest for an example of use) 
 +  * If RT_DISABLE_RETINA_ON_IPAD is defined project wide, iPad3 will run at iPad1 res instead of retina (useful if you don't want to update your GUI to the big screen or just want an FPS boost) 
 +   
 +  If you get a "dyld: Symbol not found: __NSConcreteGlobalBlock"​ error when running on iOS 3.X, you can fix this by adding -weak_library /​usr/​lib/​libSystem.B.dylib to the extra linker command line in the project settings. ​ (Not a Proton issue, but here just in case you need it) 
 +  ​
 === Android (supported) ​ === === Android (supported) ​ ===
-  * Precompiled headers not setup, so compiling is slow +  * Only plays .wav and .ogg audio formats. ​ Uses SoundPool for sfx internallyI think it needs sfx to be 1 mb or smaller, decompressed. ​ 99 max loaded at once. (Things played as music don'​t ​apply to those limitations) 
-  * Multi-touch automatically enabled on newer devicesbut keep in mind some screen HW like Nexus Ones don'​t ​support "​real"​ multi-touch and may appear buggy. +  * If you tell it to play an .mp3, it will convert the file extension to .ogg automatically in AudioManagerAndroid. ​ Same with .wav, if an .ogg version exists.
-  * Only plays .wav and .ogg audio formats+
   * 2D Particle system is slow, the iOS version uses point sprites but they didn't work on Android so it's using a fallback method at the moment. ​ Will change to use the global texture batcher at some point.   * 2D Particle system is slow, the iOS version uses point sprites but they didn't work on Android so it's using a fallback method at the moment. ​ Will change to use the global texture batcher at some point.
   * Doesn'​t support automatic orientation changes by tilting the device.   * Doesn'​t support automatic orientation changes by tilting the device.
-  * If a header changes, you should run rebuild.batthe ant ndk build system doesn'​t detect it.  If you get weird crashes for no reason, this may be why. +  * If a header changes, you should run Clean.bat in case the ant ndk build system doesn'​t detect it.  If you get weird crashes for no reason, this may be why. 
-  * glClipPlane is ignored on a G1 and horribly slow on an Nexus One, avoid. ​(Avoid RenderClipComponent,​ it will give a warning if run under android) +  * glClipPlane is ignored on a G1 and horribly slow on an Nexus One, avoid. 
-  * Proton works uses the latest android sdk and ndk (r6) can be made to work with crystax ndk versions as well +  * Android In-App-Billing supported through ​IAPManager, ​see RTAdTest ​for example ​Updated to use Android'​s V3 billing system ​in June '13. 
-  * I have built in support for TapJoy as well as in-app-purchase via the Android Market system written (via AdManager and IAPManager)but it's not quite ready for prime time.. but ask in the forums if you're interested in that.+  * Tapjoy (ads and currency) and Hooked also supported
  
 === HP WebOS (supported) ​ === === HP WebOS (supported) ​ ===
   * Precompiled headers not setup, so compiling is slow   * Precompiled headers not setup, so compiling is slow
   * Vibration not supported yet, [[http://​developer.palm.com/​distribution/​viewtopic.php?​f=70&​t=8779|not exposed in the 1.4.5 PDK]]   * Vibration not supported yet, [[http://​developer.palm.com/​distribution/​viewtopic.php?​f=70&​t=8779|not exposed in the 1.4.5 PDK]]
-  * Uses AudioManagerSDL for audio, the PDK requires us to.+  * Uses AudioManagerSDL for audio, the PDK requires us to. Supports both mp3 and ogg for music.
   * Doesn'​t support automatic orientation changes by tilting the device.   * Doesn'​t support automatic orientation changes by tilting the device.
   * Touchpad supported. ​ Define FORCE_IPHONE_SIZE if you want the Touchpad to use emulation mode and zoom up a 480X320 app itself   * Touchpad supported. ​ Define FORCE_IPHONE_SIZE if you want the Touchpad to use emulation mode and zoom up a 480X320 app itself
 +  * IAP supported (will be functional on OS 3.0+ devices only, but you can target lower) (see RTAdTest for an example of use)
 +  * No longer being developed as webOS seems to be dead
  
 === RIM/​Playbook/​BBX (supported) === === RIM/​Playbook/​BBX (supported) ===
-  * Playbook supported. ​ Only RTBareBones and RTSimpleApp have example projects setup currently.+  * Playbook supported. ​ Only RTBareBones and RTSimpleApp have example projects setup currently, they all require the QNX IDE the Playbook SDK comes with. I plan to support makefile only builds later.
   * Doesn'​t support automatic orientation changes by tilting the device.   * Doesn'​t support automatic orientation changes by tilting the device.
   * Note: Playbook supports only 4 touches at once   * Note: Playbook supports only 4 touches at once
 +  * OnEnterBackground gets incorrectly called at startup, this is because the OS is saying "We got thumbnailed"​ at startup and suspending (thumbnailing) and I don't see how to tell the difference
 +  * Warning: I've had reports that builds I did for the Playbook do not work on the Alpha BB10 devices. ​ Probably need to compile with the new SDK, dunno. ​ Need device for testing
  
 === Linux === === Linux ===
-  ​Partially ​supported ​Proton can compile console linux appsbut not graphical ones. _CONSOLE ​must be defined. ​There is currently ​no example ​app demonstrating ​this.+ 
 +  ​Basic support should be pretty close to what is supported ​on Windows. Some things missing, like gamapad support, copy&​pasting,​ possibly something else too... 
 +  * Uses SDL for graphics and input, SDL_mixer for sound. 
 +  * The build system uses CMake. It's easy to start a new project, since there'​s a ''​Proton.cmake''​ module available that can be used. Just select the parts that are needed. See [[proton:​linux_setup|Compiling the examples for Linux]]the examples'​ ''​CMakeLists.txt''​ files and the comments in the ''​Proton.cmake''​ file. 
 +  * Console apps are possible with _CONSOLE defined. ​(no example ​of this currently)
  
 === State of the Irrlicht 3D module === === State of the Irrlicht 3D module ===
  
   * Based on 1.7.1 beta (GLES branch)   * Based on 1.7.1 beta (GLES branch)
-  * The Irrlicht 3D example ​(RT3DApp) (as well as RTPhysics) isn'​t ​setup for OSX, or WebOS yet, only Win, iOS, and Android.  ​In theory is should run finejust need to setup projects ​and include ​the right files.+  * The Irrlicht 3D example RT3DApp ​might not be setup for all platforms. 
 +  * Irrlicht has been modified so it uses the WindowsDevice for ALL platforms for GL, and the iPhone device for ALL GLES platforms. ​ Platform specific code has been removed, as it overlapped with Proton. ​ It has no message pump, etc.
   * Irrlicht has GLES 2.X support (?) but until Proton SDK adds GLES 2.X support it can't be used   * Irrlicht has GLES 2.X support (?) but until Proton SDK adds GLES 2.X support it can't be used
-  * Irrlicht doesn't properly ​reload ​its textures ​after resizing the screen under Windows.  ​It works under Android ​so it should ​be doable... +  * It's been modified to support release/reload textures ​at any time.  ​(Needed for Android
-  * You CAN use Irrlicht'​s internal GUI if you want, but the examples don'​t. ​ To do it, add all the their .cpp files to your project, and define _IRR_COMPILE_WITH_GUI_+  * It's been modified to be able to directly load the .rttex texture format, and transparently uses the Proton filesystem, so mounted zip files in Proton work in Irrlicht too (Was important for Android, Irrlicht'​s zip loader couldn'​t handle Android ​.jars for some reason) 
 +  * You CAN use Irrlicht'​s internal GUI if you want, but the examples don'​t. ​ To do it, add all the their .cpp files to your project, and define _IRR_COMPILE_WITH_GUI_ ​- mouse input is not handled though, you'd probably have it a bit so you could send Proton mouse/touch events. 
 +  * RTPhysics uses Irrlicht, IrrBullet and Bullet to show 3d physics.. the sample projects are only setup on Win and iPhone I believe.
  
-=== Symbian ​=== +=== Flash ===
-  * Not yet available. ​ Someone send Seth some devices and he'll do his best to add it as a target.+
  
 +  * All non-Irrlicht examples are now compiling and running in Flash - although actually the latest Flash player seems to break input slightly so clicks go to the wrong place, need to investigate and update to the latest SDK.  But isn't Flash dying now?  Not sure if it's worth the time.
  
 +=== NaCl or Html5 ===
 +  * Thinking about it
    
 === Windows Phone 7 === === Windows Phone 7 ===
-  * NDK coming soon?  If somaybe...+  * Only if they ever release a C++ capable ​NDK Switching to C# would be more of a rewritedon't want to do that. 
proton_issues.txt · Last modified: 2013/07/26 04:30 by seth