Commit Graph

393 Commits

Author SHA1 Message Date
Lioncash 53ed0051c8 [Android] Split the AboutFragmentItem and InfoFragmentAdapter into their own class files.
It doesn't make sense conceptually to keep them within the AboutActivity, as they are entirely self-contained classes.
2014-03-08 19:37:32 -05:00
Lioncash c5fb4ac96f [Android] Remove unnecessary comment from VideoSettingsFragment.
Misleading comment. We won't need to access index four for anything.
2014-03-08 19:08:26 -05:00
Ryan Houdek 1f750904af Fix the OpenGL About tab.
Move EGLHelper to be local to the creation of the about GL/GLES tabs so we don't have 3 EGL contexts running at a time.
Fix issues with OpenGL context creation here so we show the correct information.
This requires adding an EGL function to the NativeLibrary since Android's JAVA bindings don't expose eglBindAPI.
2014-02-22 21:08:27 -06:00
Ryan Houdek cf6e0b6015 Make it possible to build Dolphin for Android in OS X and also less of a pain with gradle. 2014-02-22 21:01:58 -06:00
Ryan Houdek 3666178f85 Remove Cache DL option from Android UI
This option has been removed entirely from Dolphin, so remove the option from Android
2014-02-06 17:02:38 -06:00
degasus 010a0d481a VideoCommon: remove Cache Displaylist
This option was known to break every second game and only boost a bit.
It also seems to be broken because of streaming into pinned memory and buffer storage buffers.

v2: also remove dlc_desc
2014-01-31 07:30:55 +01:00
Ryan Houdek ac2ebd264d Merge pull request #5 from lioncash/android-info-fix
[Android] Fix three limits in GLES2InfoFragment.java.
2014-01-29 04:46:01 -08:00
Lioncash 74d9d7923e Fix three limits in GLES2InfoFragment.java. 2014-01-29 07:35:07 -05:00
Buildbot system user 7ed9f5e63e Upgrade Android API. 2014-01-28 23:35:13 +00:00
Lioncash b9e7749fe6 [Android] Implement CPU info retrieval within the about menu.
ARM only at the moment. Could potentially support x86 and MIPS if necessary.
Capable of parsing the manufacturer codes and part IDs of some (but not all part numbers). If anyone knows of part numbers that aren't in the list, please report them.
2014-01-26 21:37:43 -05:00
Lioncash 521aa631dc [Android] Parse integer ranges in the GLES3 info tab.
The info we retrieve will only ever have 2 elements given back to us.
2014-01-22 12:28:46 -05:00
Lioncash 36863bf7b8 [Android] Get rid of the version check class in VideoSettingsFragment.java. Not needed anymore since the introduction of the EGLHelper class. Also decouples some classes from the VideoSettingsFragment.java class (yay).
- Minor other change is that the EGL helper fields in GLES3InfoFragment.java, GLES2InfoFragment.java, and GLInfoFragment.java are made final.
2014-01-22 11:56:25 -05:00
Lioncash 5c4d087e8f [Android] Greatly clean up the previous commits. Now here is the long list of cleaned up things:
- Spaces -> Tabs | Consistency
- Javadoc everything that was added and not documented.
- Remove duplicated code regarding the adapter that used to reside in DolphinInfoFragment.java. Now it resides in AboutActivity.java without a second duplication of it.
- Properly retrieve all of the contexts in the EGL initialization in EGLHelper.java.
- Remove the attribute EGL_RENDERABLE_TYPE from the pbuffersurface attributes in EGLHelper.java. With this present, the EGL context will always fail to reinitialize if destroyed and attempted to be recreated.
- Break the inner class Limit within GLES2InfoFragment.java, GLES3InfoFragment.java, and GLInfoFragment.java into its own single class. Greatly reduces code duplication.
- Introduce a Type enum into Limit.java (one of the wildly rare cases in Java where an enum is actually an OK solution). Removes duplicated constants from the Java files stated in the previous bullet note.
- Add a copyright comment to the top of EGLHelper.java. Forgot to do this initially, my bad.
- Add some missing override annotations to GLES2InfoFragment.java, GLES3InfoFragment.java, and GLInfoFragment.java.
- Use StringBuilders in the previously mentioned three Java files. This is better than using a String in this instance, as the String object won't have to be recreated multiple times (ala concatenation).
- Fix some constant accessors in the previously mentioned three Java files.
- Added the 'final' modifier to the above three classes and to Limit.java. These classes serve a single purpose only, and are not intended to be inherited.
2014-01-22 00:41:23 -05:00
Ryan Houdek 7e9b8d18a7 [android-about-menu-info] Add desktop OpenGL tab population.
Since showing every single limit that desktop OGL supports is crazy, Let's just show the basic information, and extensions.
2014-01-21 17:55:00 -06:00
Ryan Houdek d3ccf1c7b5 [android-about-menu-info] Have information populate the GLES2 and GLES3 tabs.
There is a /lot/ of information in these tabs, we may have to think about changing how the information looks
OpenGL isn't done yet since there are a million limits on desktop GL, may just show a few things and extensions there.
2014-01-21 17:45:39 -06:00
Lioncash 0dc437e94d [Android] Finally check if regular OpenGL is possible on devices and display/hide it's fragment based upon this in AboutActivity.java.
Also added another constructor to EGLHelper which can be used to quickly query for information.
2014-01-21 00:12:40 -05:00
Lioncash f8abdbf91a [Android] Initial introduction of the EGLHelper utility class. Should simplify all interop with the EGL/GL APIs. Not hooked up yet. However it is entirely functional. 2014-01-19 18:29:43 -05:00
Lioncash 45964e4b46 [Android] Initial implementation of the extended info menu.
Most fragments are not implemented yet. This is just a working base framework for it.
2014-01-07 19:47:15 -05:00
Lioncash e6497bca5a [Android] Simplify instantiations of OverlayConfigButton.java. Also simplified resizeDrawable even more. We just acquire the resource instance and then get the display metrics directly. 2014-01-02 12:23:17 -05:00
Lioncash 5635c94a30 [Android] Simplify resizeDrawable in OverlayConfigButton.java.
Also add a missing override to onRestart in DolphinEmulator.java.
2014-01-02 11:53:28 -05:00
Ryan Houdek 2ed24d5311 [Android] Fix the gradle build system to allow for building from terminal. It will now copy the library files correctly and sign the resulting apk. 2013-12-24 15:28:24 -06:00
Ryan Houdek 86b3719d14 [Android] Add a gradle build file for use with Android Studio 4.0 2013-12-23 12:26:55 -07:00
Ryan Houdek 6737904c83 [Android] Stop copying assets that don't need to be copied anymore. 2013-12-21 16:20:14 -06:00
Ryan Houdek 2e1aa64958 [Android] Fix joysticks only capable of right/down movements. Also make it capable of using onscreen joystick even if controller 1 is bound. 2013-12-12 21:24:39 -06:00
Ryan Houdek 50df037bb5 [Android] Fix gamepad input. 2013-12-12 14:42:25 -06:00
Ryan Houdek 2a0adc3972 [Android] Make our OpenGL ES 3 check in the UI less stupid. 2013-12-12 11:58:38 -06:00
Ryan Houdek bc01785264 [Android] Fix an issue that occurs due to the warning dialog. 2013-11-30 19:48:08 -06:00
Ryan Houdek 65ce711a21 [Android] 0.13 release. 2013-11-30 14:28:48 -06:00
Ryan Houdek 020331383a [Android] Fix alert when using crappy Qualcomm drivers. 2013-11-30 14:28:00 -06:00
Ryan Houdek 2ad686a2a2 [Android-overlay] Z-button support. 2013-11-29 21:50:42 -06:00
Ryan Houdek b9f03444cd [Android-overlay] Fix Java imports. 2013-11-29 21:32:27 -06:00
Ryan Houdek 7bdd8191db Merge branch 'master' into android-new-control-input-overlay
Conflicts:
	Source/Android/src/org/dolphinemu/dolphinemu/settings/video/VideoSettingsFragment.java
2013-11-29 21:27:17 -06:00
Ryan Houdek 00a25cdaf5 [Android-overlay] Disable Wiimote configuration until it is wired up. 2013-11-29 21:12:36 -06:00
Lioncash f6e89356c7 [Android] Simplify some things in the overlay. Also Javadoc the new static function. 2013-11-29 20:06:39 -05:00
Ryan Houdek 49eef423a8 [Android-overlay] Add the new overlay icons. Support configuring them. Disable hardfloat since it has issues since Dalvik doesn't understand passing floats due to ABI differences. 2013-11-29 18:37:33 -06:00
Lioncash 7f85c3215b [Android] Add Javadoc to InputOverlayDrawableJoystick. 2013-11-25 17:18:31 -05:00
Lioncash 76843b450b [Android] Build the configuration window for the overlay programmatically. Moved the overlay configuration classes into their own package. Also launch the overlay config activity through the preference XML via an embedded Intent. Lets us remove code explicitly handling this. 2013-11-25 14:23:28 -05:00
Ryan Houdek 7ed8e6a29c [Android] Fix the check for the Qualcomm graphics driver version for v53 drivers with the screen being rotated 90 degrees. Initialize the OpenGL information grabbing only once. Check for v14 Qualcomm drivers and spit out an error if the user tries selecting OpenGL ES 3. 2013-11-24 22:45:48 -06:00
Ryan Houdek ba18f38e70 Merge branch 'master' into android-new-control-input-overlay
Conflicts:
	Source/Android/res/values-ja/strings.xml
	Source/Android/res/values/strings.xml
	Source/Android/src/org/dolphinemu/dolphinemu/AboutFragment.java
	Source/Android/src/org/dolphinemu/dolphinemu/emulation/EmulationActivity.java
	Source/Android/src/org/dolphinemu/dolphinemu/folderbrowser/FolderBrowser.java
	Source/Android/src/org/dolphinemu/dolphinemu/gamelist/GameListActivity.java
	Source/Android/src/org/dolphinemu/dolphinemu/settings/video/VideoSettingsFragment.java
2013-11-24 16:12:00 -06:00
Ryan Houdek f292819ff5 [Android] Due to recent changes in code breaking Tegra 4 support, and also the upcoming code which will be breaking GLES2 support entirely. Taking the initiative to drop the remaining support code from the codebase in preparation for the upcoming changes. For a look at how Dolphin on Tegra 4 looked like prior and would not have been able to be fixed at all due to Tegra 4 not supporting the precision we need in our shaders; Look at this Youtube video http://youtu.be/Ga7Jc_Ote7U 2013-11-24 15:49:23 -06:00
Ryan Houdek f6f2b1fc60 [Android-overlay] Support multiple gamepads with touch screen controls. 2013-11-24 15:04:53 -06:00
Lioncash 42f8562e5c [Android] Basic Wiimote binding settings now implemented. 2013-11-19 19:28:10 -05:00
Lioncash 7e544d8996 [Android] Basic UI functionality for enabling/disabling aforementioned Gamecube controllers. 2013-11-19 16:14:40 -05:00
Lioncash 53ab104d5f [Android] Expand the input binding UI in the settings to handle 4 Gamecube controllers in the future.
Other changes:

 - Broke out MotionAlertDialog into it's own separate class.
 - Made a preference specifically for handling input bindings.
2013-11-19 15:53:30 -05:00
Ryan Houdek ae11fba069 [Android] Make joysticks less dumb from a configuration standpoint. 2013-11-18 14:48:08 -06:00
Lioncash ee32c8b4e9 [Android] Remove accidental fragment tag in GameListActivity (it was useless, since it's an empty string) 2013-11-16 15:17:37 -05:00
Lioncash 11a156615f [Android] Like the previous commit (but for the GameListFragment), don't constantly create a new adapter when filling the game list. 2013-11-16 05:30:58 -05:00
Lioncash d98664b053 [Android] Simplify the FolderBrowserAdapter a little, as well as the Fill method within FolderBrowser.java. Previously the fill method would create an entire new adapter and assign it to the backing ListView. This is pretty unnecessary, so what it now does is, when the function is called, it clears out the adapter, then simply fills it in again with the new directory's contents. Simple, and doesn't require a reference to the actual ListView to be used. 2013-11-16 04:36:22 -05:00
Lioncash c8ddc70c97 [Android] Simplify the AboutFragment view inflating. Considering the backing layout is a direct ListView, the original rootView can just be casted to a ListView, no need for an intermediate. 2013-11-16 04:09:30 -05:00
Lioncash 94f8c68a35 [Android] Use the ViewHolder design pattern for the FolderBrowserAdapter. In directories with a lot of files, this should be noticeably smoother in terms of scrolling. Also fixed the case where the subtitle text might disappear. 2013-11-16 03:56:58 -05:00
Lioncash c90ce1aad1 [Android] Change the name of the XML layout file gamelist_folderbrowser_list.xml to gamelist_folderbrowser_list_item.xml. More accurate name on what it is. 2013-11-16 03:31:02 -05:00
Lioncash 21a196f9af [Android] Eliminate the need to hold a reference to the shown Fragment within GameListActivity. Now we only care about the numeric ID of the one being shown. 2013-11-16 03:09:07 -05:00
Lioncash 777b5a109b [Android] Fix the handling of orientation changes for the Fragments related to the game list. Now screen orientation changes don't kick you back to the root view. 2013-11-16 01:48:17 -05:00
Lioncash 23c84c220f [Android] Add ability to take screenshots into the emulation menu. 2013-11-15 22:21:50 -05:00
Ryan Houdek 15bb974224 [Android] Add screenshot nativelibrary function. 2013-11-15 17:32:50 -06:00
Ryan Houdek 0720026dab [Android] Disable the workaround for Qualcomm devices with driver >= 53 for the rotated framebuffer since it is fixed now. 2013-11-15 16:56:21 -06:00
Lioncash 483a28f34a [Android] Simplify the AboutFragmentAdapter a little bit.
- Removes an unnecessary variable.
- Shortens the LayoutInflater usage.
- Gets rid of an unnecessary override of onAttach.
2013-11-15 17:19:09 -05:00
Lioncash 8c7d1afd5f [Android] Externalize the device compatibility warning strings. 2013-11-15 17:05:56 -05:00
Lioncash 4bb22aa0ab [Android] Indicate whether or not the device supports NEON within the About fragment. 2013-11-15 16:48:36 -05:00
Lioncash d3731d0827 [Android] Get rid of some unnecessary variables in the getView() methods of some adapters.
Directly referencing convertView is fine.
2013-11-15 16:32:52 -05:00
Ryan Houdek 0e415467c4 [Android] Spawn a message if someone's phone doesn't support NEON. NEON is a requirement for Dolphin Mobile on ARM, CPU core will crash without it. 2013-11-15 14:17:47 -06:00
Lioncash 07765aa6f0 [Android] Documentation and some cleanup. 2013-11-15 12:26:17 -05:00
Ryan Houdek 1e90a838f2 Make sure to add our resources for the joystick. 2013-11-14 15:20:44 -06:00
Ryan Houdek feedee5c23 [Android-overlay] Support touch screen axises in native. Have a non-configurable main joystick on screen at this point. 2013-11-14 15:18:33 -06:00
Lioncash 9d3d568ae4 [Android] Bump the targetSdkVersion in the AndroidManifest XML file to 19 (KitKat). Nothing we do would require compatibility behaviors to be enabled to maintain forward compatibility. 2013-11-14 11:01:44 -05:00
Lioncash f15a0c17d0 [Android] Get rid of some unnecessary onAttach overrides in AboutFragment, VideoSettingsFragment, and FolderBrowser. These can just be replaced with calls to getActivity(). 2013-11-14 10:45:45 -05:00
Ryan Houdek 2a23bdde6f Merge branch 'master' into android-new-control-input-overlay
Conflicts:
	Source/Core/DolphinWX/Src/Android/ButtonManager.h
2013-11-13 16:17:42 -06:00
Ryan Houdek 0f061e4e7c [Android] Do /not/ give users the benefit of the doubt that the device supports OpenGL ES 3 when we can't grab an OpenGL context. The only devices that fail to do so is PowerVR5 and we can't run with them anyway. 2013-10-31 07:30:18 -05:00
Ryan Houdek 58d42f43e3 [Android] Fix PCH build. Clean up DolphinWX cmake file a little bit. Modify our android cmake toolchain file to make the default build location not be source root, because that is stupid. 2013-10-28 19:59:03 -05:00
Lioncash 3c7613fc83 [Android] More cleanup. We don't need the preference to enable/disable the overlay in the video preferences anymore. 2013-10-28 16:36:26 -04:00
Lioncash 4e999fe0ee [Android] General cleanup.
We no longer need the buttons in Assets, considering they are now resources (ie. drawables).

Also remove (now) junk code from VideoSettingsFragment.java. We handle the input overlay within the InputSettingsFragment.

Also add a TODO detailing what needs to be refactored when axis support is finally added.
2013-10-27 22:15:49 -04:00
Lioncash d1834b3058 [Android] Overlay now works during emulation. 2013-10-27 22:08:41 -04:00
Ryan Houdek c24dfe559b [Android] Change how the onTouchEvent native method works. Just pass in the correct Button ID and Action and it'll be pressed or not. Not actually rigged up to the Java code yet. Doesn't support anything with an Axis yet so no C stick, main stick, L and R triggers 2013-10-26 05:36:20 -05:00
Lioncash c3e4aa1f35 [Android] Add the copyright header to some Java source files that were lacking them. 2013-10-26 01:06:00 -04:00
Lioncash c78d5a9751 [Android] Improve an if statement check in InputConfigFragment.java. Also clarify it. 2013-10-26 00:59:53 -04:00
Lioncash 8d71a83ae5 [Android] Fix the super-mature string that was a placeholder for the title for the overlay configuration setting.
Also fix a NullPointerException possibility. Fixed it by giving the PreferenceScreen a title.
2013-10-26 00:55:07 -04:00
Lioncash 77eb9ce725 [Android] Add the capability to dynamically enable and disable the input overlay during emulation. 2013-10-25 23:10:17 -04:00
Lioncash d9be95ed9e [Android] Fix alignment issues with the overlay config settings. 2013-10-25 21:29:06 -04:00
Lioncash 7c6caa388a [Android] Prevent automatic alignments within the overlay configuration settings. Let the user do this on their own. 2013-10-25 21:14:11 -04:00
Lioncash c1ed54832c [Android] Maintain the chosen button layout when returning to the input overlay configuration menu.
- Also make the overlay configuration screen fullscreen for the app.

- Also force the overlay activity to be landscape, since this is the only orientation the EmulationActivity supports.
2013-10-25 21:05:42 -04:00
Lioncash c8cf71c913 [Android] The emulation overlay now sets the button positions based upon the locations chosen in the input overlay configuration settings. Documented the hell out of how the initialization of the Drawables works inside InputOverlay.java.
Also made the use of InputOverlayItem.java obsolete. So this is now removed.
2013-10-25 20:34:38 -04:00
Lioncash 88c797a9c0 [Android] Slight cleanup for previous commit. Mostly UI adjustments.
Makes the buttons appear uniformly on the overlay config activity.
2013-10-25 17:39:23 -04:00
Lioncash 9f36081a8f [Android] Implement a very basic version of the input overlay configuration screen.
Still a bit of a mess, but this will get cleaned up during finalizations.
2013-10-25 16:52:46 -04:00
Lioncash 1267877e80 [Android] Documentation typo cleanups from the last commit.
Also cleaned up the Javadoc for the constructor of MotionAlertDialog.
2013-10-24 15:10:25 -04:00
Lioncash 079147ca07 [Android] Refactor InputConfigFragment a little bit in preparation for the implementation of the new input overlay.
This moves all of the dialog handling into the actual MotionAlertDialog class itself. This is something I should have done a long time ago.
Also moved the Gamecube input binding preferences into their own PreferenceScreen.
2013-10-24 14:55:10 -04:00
Ryan Houdek 187827624f [Android] 0.12 release. 2013-10-21 12:09:15 -05:00
Lioncash 2015cd0928 [Android] Implement OnSharedPreferenceChangeListener within PrefsActivity.java. This allows us to immediately save to the ini config when a preference in the front-end is changed, rather than waiting for the settings window to close. This also allows us to remove handling for preferences from CPUSettingsFragment.java and VideoSettingsFragment.java. 2013-10-13 22:20:34 -04:00
lioncash 615bac7ebc [Android] Replace the getter for the adapter backing the GameListFragment with a function that simply clears the array adapter. Maintains encapsulation this way. Simplified the actual setting of the backing ArrayAdapter for GameListFragment; this allows us to make a class variable a method variable now.
Also fixed up the Javadoc for the OnGameListZeroListener.
2013-10-10 17:08:46 -04:00
Lioncash 511de71736 [Android] Actually show the currently selected CPU core and video backend within the settings screen. 2013-10-10 11:57:18 -04:00
Lioncash 8b6ff7a358 Revert "{Android] Eliminate need for even using a byte array when copying assets over."
Turns out Android devs decided to opt for one of the most retarded ways of handling assets. Assets with some specific extensions are not compressed (png, jpeg, etc), and anything else is compressed. The AssetManager is so revolutionary, that you actually can't retrieve valid FileChannel descriptors from these compressed files! To add to this revolutionary system, they actually didn't give you a straightforward way of disabling this compression. Now using FileChannels are not possible, and thus we must use the much slower way of copying everything over. Thank you Android devs. Godforbid someone would like to use a non-array based way of copying things that's actually efficient, considering DMA access is possible with FileChannels.

This reverts commit 0dd32986b8.
2013-10-10 00:11:33 -04:00
Ryan Houdek 715d5ae8a7 Merge branch 'JitArmIL'
This implements a partial JITIL based off of the JIT64IL. It's enough to run most games, albiet at a slow speed.
Implementing instructions for this IL is really simple since it basically is just enabling based on what is already in JIT64IL, and then enabling each individual IL instruction.
2013-10-09 23:16:07 +00:00
Ryan Houdek ba9f2d52e1 Add the JITIL Arm recompiler to the Android settings. 2013-10-09 23:08:12 +00:00
Lioncash 0dd32986b8 {Android] Eliminate need for even using a byte array when copying assets over. 2013-10-09 12:35:12 -04:00
Lioncash a317391e3d [Android] Change the names of the functions responsible for loading/saving config values in UserPreferences.java. Makes readability better, since they have names that actually go with each other now. LoadIniToPrefs() and SavePrefsToIni(). 2013-10-08 19:08:06 -04:00
Lioncash efac4bc608 [Android] Rephrase a comment in VideoSettingsFragment.java. 2013-10-08 18:45:10 -04:00
Lioncash fb4cc76b11 [Android] Remove unnecessary equals comparison in VideoSettingsFragment.java in function SupportsGLES3(). contains() can handle this situation. 2013-10-07 19:50:50 -04:00
Ryan Houdek a40daac5b1 [Android] Fix an issue where emulation would crash if we couldn't retrieve GPU information. Also if we can't get the graphics information, give them the benefit of the doubt and enable the GLES3 option. 2013-10-06 21:32:05 -05:00
Lioncash cf1b634c33 [Android] Remove unnecessary attributes from the ViewPager layout XML file. 2013-10-06 20:04:53 -04:00
Lioncash 5bee29c7c2 [Android] Reflect the string change in the Tegra 4 support commit with the JP strings as well. 2013-10-06 10:45:05 -04:00
Ryan Houdek 6bdcde9dd6 [Android] Tegra 4 'support.' This brings up the OpenGL backend to support Tegra 4 to the point where it will run games but it doesn't have any video output for some reason. This is a large change that doesn't actually change much functionally. Walking through the changes.
It changes the string in the Android backend select to just OpenGL ES.
Adds a check in the Android code to check for Tegra 4 and to enable the option to select the OpenGL ES backend.
Adds a DriverDetails bug under BUG_ISTEGRA as a blanket case of Tegra 4 support.
The changes that effects most lines in this change. Removing all float suffixes in the pixel/vertex/util shaders since OpenGL ES 2 doesn't support float suffixes.
Disables the shaders for reinterpreting the EFB format since Tegra 4 doesn't support integers.
Changes GLFunctions.cpp to grab the correct Tegra extension functions.
Readds the GLSL 1.2 'hacks' as GLSLES2 'hacks' since they are required for GLSL ES 2
Adds a GLSLES2 to the GLSL_VERSION enum.
Disable the SamplerCache on Tegra since Tegra doesn't support samplers...
Enable glBufferSubData on Tegra since it is the only mobile GPU to correctly work with it.
Disable glDrawRangeElements on Tegra since it doesn't support it, This uses glDrawElements instead.
2013-10-06 03:12:29 -05:00