Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding skylander's portal emulation support #209

Open
wants to merge 422 commits into
base: Stable
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
422 commits
Select commit Hold shift + click to select a range
2283788
Merge latest master changes
Tinob Feb 18, 2017
443769b
small cmake fixes
Tinob Feb 18, 2017
98b3be7
fix gcc compilation
Tinob Feb 21, 2017
9820fb8
another small fix for gcc compilation
Tinob Feb 21, 2017
d36dd40
revert previous gcc fixes and do a more global one
Tinob Feb 21, 2017
008018d
Merge latest master changes, fixed some gcc compilation errors and tw…
Tinob Feb 23, 2017
83644be
small fix for specular lighting
Tinob Mar 2, 2017
60cfa2c
Merge latest master change
Tinob Mar 4, 2017
8f63b15
fix linux compilation
Tinob Mar 9, 2017
e5a03bc
upgrade solution to visual studio 2017
Tinob Mar 10, 2017
7554388
Merge latest master changes
Tinob Mar 12, 2017
3e48288
temporal fix for wrong gameid for wad files until master fix it.
Tinob Mar 12, 2017
ef0920a
merge latest master changes
Tinob Mar 21, 2017
5abb334
Add suport for mirroring texture addressing under pp shaders
Tinob Mar 22, 2017
0958440
fix for linux compilation
Tinob Mar 23, 2017
1af0cdd
ups, forget that sse is only x86 :)
Tinob Mar 23, 2017
5fa98dc
build fix for arch linux
Tinob Mar 23, 2017
5fffadb
fix error popup on startup
Tinob Mar 23, 2017
0965964
Add support for hi precision buffer formats for the pp shaders. Also …
Tinob Mar 25, 2017
4d00a47
fix for depth post processing under opengl
Tinob Mar 28, 2017
5560045
Allow video rate up to 8x
Tinob Mar 29, 2017
8f76e04
add contextual menu to cheat search to allow copy to clipboard
Tinob Mar 29, 2017
e705701
Fix for TimeStretching setting not loaded on boot
Tinob Mar 31, 2017
9df8842
merge latest master changes
Tinob Apr 1, 2017
df8196f
Add an option to allow net play between different revisions
Tinob Apr 3, 2017
21a9739
Merge latest master changes
Tinob Apr 11, 2017
d23ea2c
Merge Master Audio Stretching
Tinob Apr 13, 2017
805b9cd
Avoid invalid access to the g_renderer moving access to external obje…
Tinob Apr 13, 2017
8b2af57
fix for linux compilation
Tinob Apr 15, 2017
00834be
more linux build fixes
Tinob Apr 15, 2017
868aec3
Merge latest master
Tinob Apr 15, 2017
2b2cf03
Merge latest master changes. Fixed depth range calculation. fixed vul…
Tinob Apr 18, 2017
0223665
fix scissor value wrong value on efb scale change
Tinob Apr 23, 2017
8d7494c
Merge latest master changes
Tinob Apr 25, 2017
a5b0fcd
fix depth range for d3d backends
Tinob Apr 26, 2017
4d65abe
merge mac osx compilation fix from issue #76
Tinob Apr 27, 2017
60c54a5
update dx12 target platform to windows 1 0creator update
Tinob Apr 27, 2017
73d64e5
small fix for mac compilation
Tinob Apr 27, 2017
ae06695
update xbrz to version 1.4
Tinob Apr 27, 2017
574385c
Fix for compilation
May 3, 2017
ec51495
Bugfix for xBRZ 1.4
May 3, 2017
d2cc81c
Merge pull request #79 from ntapiam/master
Tinob May 3, 2017
6b1dfe7
Merge Latest Master Changes
Tinob May 5, 2017
c7ee67f
small changes for future work under vulkan
Tinob May 5, 2017
8e2837f
Merge branch 'master' of https://github.com/Tinob/Ishiiruka
Tinob May 5, 2017
89fd4df
reverse depth range changes
Tinob May 5, 2017
fb03095
fix for uncompleted revert
Tinob May 5, 2017
3ba7ec3
fix for linux compilation
Tinob May 5, 2017
9c81ee0
fix linux compilation
Tinob May 5, 2017
ddf9862
force shader recompilation
Tinob May 5, 2017
2280ea8
fix dx12 initialization problems, fix rim light issues reported in th…
Tinob May 9, 2017
6665d0e
Merge latest master changes
Tinob May 10, 2017
1c87c15
Fix title column reverting to disabled
Tinob May 10, 2017
b3e47e8
Merge latest master changes
Tinob May 20, 2017
2ca424d
fix depth problem in some games
Tinob May 21, 2017
0e29a65
fixes for shader compilation error and display name reported in the f…
Tinob May 26, 2017
997e976
fix for devices that does not support sample binding layout (Intel on…
Tinob Jun 8, 2017
7c38e44
fixes for mac osx thanks to Xaec6 for the debugging
Tinob Jun 9, 2017
8bcd8ac
small fix for 3d vision
Tinob Jun 25, 2017
64a95ca
fix for auto aspect ratio
Tinob Jun 25, 2017
9164db5
linux compilation fix
Tinob Jun 27, 2017
122b4d4
Apply master code formatting
Tinob Jun 29, 2017
49ad9ea
merge latest master changes
Tinob Jul 5, 2017
a024a0a
small fix to texture size calculation
Tinob Jul 9, 2017
b1bc1a6
small fix for compialtion errors in DolphinFX.glsl, also add the opti…
Tinob Jul 9, 2017
47d3dde
separate texture config
Tinob Jul 10, 2017
16a41fd
fix The last history crack to support more versions.
Tinob Jul 12, 2017
279892b
merge tmem caching
Tinob Jul 17, 2017
74a03d9
Merge latest master changes
Tinob Jul 24, 2017
375972e
fix for linux compilation
Tinob Jul 28, 2017
6067d0f
fix opengl startup when compile shader on startup is enabled
Tinob Jul 28, 2017
632a715
fix for linux compilation
Tinob Jul 29, 2017
2217f80
more linux compilation fixes
Tinob Jul 29, 2017
f221eea
rename executable name to avoid collision with master
Tinob Jul 31, 2017
7e41478
Adapt starter to new executable name
KAMiKAZOW Jul 31, 2017
ae4e9a6
Merge pull request #91 from KAMiKAZOW/patch-2
Tinob Jul 31, 2017
91478a7
Merge latest master core changes
Tinob Jul 31, 2017
d2130b8
Merge branch 'master' of https://github.com/Tinob/Ishiiruka
Tinob Jul 31, 2017
3c3bba9
rename more files to avoid master file collisions under linux
Tinob Jul 31, 2017
2d80550
ishiiruka.desktop: Icon=ishiiruka
KAMiKAZOW Aug 1, 2017
8a33661
Merge pull request #92 from KAMiKAZOW/patch-3
Tinob Aug 1, 2017
74eceb6
Fix version Handling for Ishiiruka
Tinob Aug 10, 2017
3f35e60
Fix settings refresh while while the graphic settings window is open
Tinob Aug 10, 2017
2a897a3
fix inverted color in dx9 screenshots
Tinob Aug 10, 2017
3f19e6a
Improve texture handling in the same way as master
Tinob Aug 10, 2017
f3bb61f
Merge branch 'master' of https://github.com/Tinob/Ishiiruka
Tinob Aug 10, 2017
dcabc3f
add support for bc7 textures
Tinob Aug 12, 2017
82c99f3
fix dx12 graphic issues in the last version
Tinob Aug 18, 2017
2d35f03
Merge latest master changes
Tinob Aug 19, 2017
7f2a372
fix some missing bbox mode in game settings
Tinob Aug 19, 2017
1b0b015
fix linux build
Tinob Aug 19, 2017
53753d0
fix vulkan indentation
Tinob Aug 19, 2017
ba330d6
Merge latest master changes
Tinob Aug 29, 2017
90881d9
Merge latest master changes
Tinob Sep 9, 2017
f9d833b
fix ssaa setting not saved.
Tinob Sep 11, 2017
77d44d2
merge ubershaders and implement it in dx11 and 12.
Tinob Oct 20, 2017
3a5a87a
fixes for ubershader used while disabled and fast efb setting not get…
Tinob Oct 21, 2017
4dc8fc6
merge small change to dx11
Tinob Oct 23, 2017
c4979f6
fix for issues reported in the forum, add exclusive ubershader suppor…
Tinob Oct 27, 2017
3f5c5e5
some warning fixes, keep track of shader uids even if exclusive mode …
Tinob Oct 28, 2017
267cfe2
fix copy texture issue causing problems for dx11 :(
Tinob Oct 29, 2017
066c5d6
remove gameid restriction for the last story efb hack
Tinob Nov 3, 2017
9a57a67
Don't precompile ubershaders unless they're going to be used
jmlee337 Nov 19, 2017
4a87bc3
Don't precompile regular shaders unless they're going to be used
jmlee337 Nov 19, 2017
ccb1dfc
merge master change from last week, fix some issues reported in the f…
Tinob Nov 20, 2017
c25be0f
small bugfix
Tinob Nov 21, 2017
b38f948
Merge pull request #103 from jmlee337/noprecompile
Tinob Nov 23, 2017
d9e0262
fixes for the issues reported in the forum
Tinob Nov 24, 2017
907dda9
small fix for vertex shaders
Tinob Nov 24, 2017
8e37533
ups :)
Tinob Nov 24, 2017
e5f43ee
fix for linux compilation
Tinob Nov 24, 2017
91c6820
fix for the object usage profiler to avoid use of corrupted or outdat…
Tinob Nov 25, 2017
726e509
Improve filtering configuration handling
Tinob Nov 28, 2017
42067cc
Vulkan Fixes
Tinob Dec 1, 2017
5ea2a29
move pipeline uid cache to the uid folder
Tinob Dec 1, 2017
402bc14
fix for linux compilation
Tinob Dec 1, 2017
a0afabf
fix for dx12 compilation error with visual studio 15.5.1
Tinob Dec 10, 2017
935a0fe
fix for dds mipmap texture loading
Tinob Dec 10, 2017
890b086
fix for a small issue with post processing under dx12
Tinob Dec 10, 2017
8dc706d
small fix for render target handling while using compressed textures.
Tinob Dec 10, 2017
b94fda8
Implement post processing for Vulkan back end
Tinob Dec 10, 2017
33c480d
cleanup after pp shader implementation
Tinob Dec 10, 2017
a59043d
fix small color issue while using pp shaders under dx12 in combinatio…
Tinob Dec 10, 2017
bb31135
fix video rate hack does not saving configured value
Tinob Dec 10, 2017
01a5df4
Implement async shader compilation for OpenGL
jmlee337 Nov 21, 2017
9ce4d32
create the shared context in the original thread, fixes wglShareLists…
jmlee337 Dec 10, 2017
dbaefd2
Fix a bug I found while investigating implementing hybrid ubershaders
jmlee337 Dec 26, 2017
5a07d75
ogl hybrid ubershaders
jmlee337 Dec 26, 2017
213abcb
fix small issue under vulkan when using gpu texture decoding
Tinob Dec 28, 2017
02dfa48
Merge pull request #105 from jmlee337/async
Tinob Dec 28, 2017
294ee0d
fix tessellation shader compilation
Tinob Jan 5, 2018
0d28d1b
small fix for an issue with Intel mesa compiler for vulkan shaders
Tinob Jan 5, 2018
6c8f9b8
fix scaling shader configuration not showing
Tinob Jan 21, 2018
12861d0
fix sampler handling under vulkan post processing shaders
Tinob Jan 21, 2018
8a65692
fix error loading dds file internal mipmaps
Tinob Jan 25, 2018
828d5d7
fix hang while recompiling shaders under opengl
Tinob Jan 25, 2018
314869d
Add a configurable option to control culling mode
Tinob Jan 25, 2018
404a07f
apply pull #6297 and #6289
Tinob Feb 3, 2018
dac51db
fix for issues reported in the forum:
Tinob Feb 4, 2018
5588bab
fix efb scale calculation when set to auto (window size)
Tinob Feb 5, 2018
de9a67c
small fix for dds mipmap loading
Tinob Feb 12, 2018
4e0289d
re enable support for d3dshader compiler under dx11, it could fail to…
Tinob Feb 12, 2018
e64bcb8
fix for tessellation issues when games uses degenerated normals, fix …
Tinob Feb 16, 2018
6b7c04b
Merge latest core changes
Tinob Feb 21, 2018
9a875ff
fir problems while using gpu texture decoding
Tinob Feb 21, 2018
2847b2a
fix issue supporting compressed textures with size not multiple of 4
Tinob Feb 22, 2018
2adea4b
change material maps to allow usage of a separate emissive map , also…
Tinob Mar 9, 2018
ca341e3
remove dead code
Tinob Mar 11, 2018
c29f68c
small fix for compressed texture size validation
Tinob Mar 14, 2018
357bdf0
fix for problems loading custom normal maps in top of color textures
Tinob Mar 17, 2018
123ae5c
small correction for vertex rounding
Tinob Mar 18, 2018
ec61aec
Add force Dithering option to reduce banding even with 24 bit color b…
Tinob Mar 27, 2018
c33cb13
small fix for tessellation
Tinob Mar 27, 2018
bad7bf7
use dithering only when is enabled by the game to avoid issues
Tinob Mar 29, 2018
af04d34
change the way textures are allocated in the post processing shaders …
Tinob Mar 29, 2018
f95f983
small fix to forced dithering and shader compilation under opengl
Tinob Mar 29, 2018
af8956a
merge latest core changes
Tinob Apr 1, 2018
271e08b
Add support for high precision color textures while rendering to incr…
Tinob Apr 23, 2018
01c5b2c
small fix for tessellation shaders
Tinob Apr 23, 2018
cd0ec96
small improvement for the autogenerated bumps
Tinob May 6, 2018
521414f
fix for the async hlsl compiler
Tinob May 6, 2018
ad55aa9
small fix for light scattering
Tinob May 6, 2018
25b1291
small fix for warnings under dx11 PostProcessing shaders
Tinob May 6, 2018
9a77b52
linux build fixes
Tinob May 20, 2018
4e88104
small fix for linux compilation
Tinob May 21, 2018
1d0dc41
fix for gcc 8 compilation
Tinob May 21, 2018
02d1898
linux gcc 8 build fix
Tinob May 22, 2018
325861b
small fix for linux compilation under gcc 8
Tinob May 25, 2018
b823ae1
small fix for shader options changes causing hangs
Tinob May 25, 2018
8849e89
Typo fixes and improved descriptions.
treymerkley Jul 14, 2018
a2464c1
Merge pull request #120 from billywade/master
Tinob Jul 23, 2018
e28d1ca
fix erro introduced by master merge, try to fix arm compilation
Tinob Aug 8, 2018
af7f10c
more arm fixes
Tinob Aug 8, 2018
f681b6a
fix for EGL
Tinob Aug 22, 2018
574a348
eliminate some branches for dx9 pixel shaders
Tinob Aug 27, 2018
8486c03
while using custom textures for pelleted textures fall back to color …
Tinob Aug 27, 2018
66b3bd0
fast implementation off hybrid xfb just to put in pair with master f…
Tinob Aug 27, 2018
366a674
fix framerate display while using xfb
Tinob Sep 3, 2018
9a37f29
fix for an unwanted access to NativeVertexFormat.cpp from different t…
Tinob Sep 3, 2018
54e2a07
fix crashing while changing post processing options values at game ru…
Tinob Sep 15, 2018
8796b69
Merge pull request #1 from Tinob/master
treymerkley Nov 2, 2018
4a6e751
Add option to wait for the texture prefectching to be finished to avo…
Tinob Nov 20, 2018
261de62
Merge pull request #3 from Tinob/master
treymerkley Dec 7, 2018
6419824
re-added everything
treymerkley Dec 7, 2018
db676d0
Merge pull request #128 from billywade/master
Tinob Dec 7, 2018
b65a620
fix cotangent frame for dx11,dx12 and vulkan
Tinob Jan 28, 2019
add5cb3
Merge branch 'master' of https://github.com/Tinob/Ishiiruka
Tinob Jan 28, 2019
b4db92e
Implement black frame insertion
Tinob Apr 3, 2019
3963a18
update to visual studio 2019
Tinob Jun 24, 2019
d6308b7
Add black frame insertion support to vulkan
Tinob Jun 24, 2019
b57465e
merge small fix from master
Tinob Jun 24, 2019
400d4ee
remove unused files
Tinob Sep 3, 2019
e5ff7b2
fix visual studio 2019 compilaion warnings
Tinob Sep 3, 2019
65fc61d
fix merge error
Tinob Sep 3, 2019
9a9756d
fix some issues with dithering
Tinob Sep 3, 2019
0518222
fix visual studio compilation
Tinob Oct 13, 2019
5216520
fix dds non multiple of 4 support
Tinob Oct 13, 2019
127d38c
fix gles support
Tinob Nov 3, 2019
d6e3623
small fix for egl interface mode detection
Tinob Nov 6, 2019
5dc66e2
fix for black borders in dds textures
Tinob Nov 6, 2019
13e61a3
revert filtering behavior to allow combinations of anisotropic filter…
Tinob Nov 18, 2019
fbfd6c0
pixel shader compilation fix
Tinob Nov 18, 2019
78643a6
added RE dsp hack
Tinob Nov 18, 2019
eb4c107
texture size fix
Tinob Nov 20, 2019
ae363bb
compilation fix
Tinob Dec 21, 2019
2d9f390
improve dithering pattern
Tinob Feb 1, 2020
ad82a07
Fix compilation visual studio 16.5
Tinob Mar 31, 2020
bf7957c
Implement experimental support for static environment cube maps to im…
Tinob Mar 31, 2020
4e72433
small fix for tessellation shaders
Tinob Apr 2, 2020
4a732b5
fix compilation on non c++20 complain compiler
Tinob Apr 9, 2020
93bb481
small fix for forced lighting
Tinob Apr 28, 2020
fdf6928
small fix for tessellation
Tinob Apr 30, 2020
7b6f7a4
fix for env texture search
Tinob May 6, 2020
26a2154
fix android compilation an initial ishiiruka android version
Tinob Jun 9, 2020
226a3aa
grandle fix to allow folder browsing under android 10
Tinob Jun 12, 2020
f4307fa
linux compilation fix
Tinob Jul 1, 2020
32caf9e
Graphics Window: Spelling and Grammar fixes
SirMangler Jul 15, 2020
1bcb03f
Merge pull request #162 from SirMangler/master
Tinob Jul 16, 2020
d23b77b
small fix
Tinob Jul 18, 2020
4ffa41c
Hotkeys: Toggle Post Processing
SirMangler Jul 19, 2020
6098c1f
Merge pull request #163 from SirMangler/master
Tinob Jul 20, 2020
edf4893
fix for linux compilation
Tinob Jul 21, 2020
f0dd960
Mere support for multiple texture folders from main branch
Tinob Aug 24, 2020
233e73a
small fix to UTF16ToCP
Tinob Sep 9, 2020
bdcfc4c
Fix "Fast EFB Access" dialog behavior when toggling "Skip EFB Access"
Sep 28, 2020
d286385
Merge pull request #175 from HTCPCPS/master
Tinob Sep 28, 2020
3422be5
Replace geckocodes.org with mirror codes.rc24.xyz
SirMangler Oct 21, 2020
bc61fa9
Merge pull request #176 from SirMangler/patch-1
Tinob Oct 25, 2020
8e8e4d8
GeckoCodeConfig: Use correct variable
SirMangler Oct 26, 2020
abaa23c
Merge pull request #178 from SirMangler/patch-2
Tinob Oct 26, 2020
0240974
Most wanted more performance + turn on the sun
ivan89el Dec 29, 2020
a846156
Merge pull request #180 from ivan89el/patch-1
Tinob Dec 29, 2020
3202945
Support Name Wildcards in hires textures
Tinob Apr 2, 2021
1e378e3
small fix for android build
Tinob Apr 2, 2021
c2304cd
Merge branch 'master' of https://github.com/Tinob/Ishiiruka
Tinob Apr 2, 2021
3193e6a
visual studio 2019 compilation fix
Tinob Oct 7, 2021
e0d921c
Added options to IshiirukaFX
threethan Oct 12, 2021
744a0b4
Added additional options relating to EFB copies
threethan Oct 13, 2021
0bdd605
Merge pull request #189 from threethan/shader-update
Tinob Oct 13, 2021
a5d28b5
Merge pull request #190 from threethan/efb-options
Tinob Oct 13, 2021
560424b
Added missed files (oops) Should build properly now.
threethan Oct 13, 2021
166abd5
Merge pull request #191 from threethan/efb-options
Tinob Oct 13, 2021
d821405
Fix compilation with GCC 11: Implement https://github.com/dolphin-emu…
Oct 21, 2021
7bb1062
Merge pull request #192 from HTCPCPS/master
Tinob Oct 21, 2021
8617732
Correct typos in video configuration dialog
Oct 21, 2021
577e284
Merge pull request #193 from HTCPCPS/master
Tinob Oct 21, 2021
f79184b
dds header fixes for compressed dumps
Tinob Nov 27, 2021
d1ffc2e
Merge branch 'master' of https://github.com/Tinob/Ishiiruka
Tinob Nov 27, 2021
050118d
Updates for libavformat version 59
iwakuraSSBM Jun 24, 2022
cba6d72
Merge pull request #202 from iwakuraSSBM/patch-1
Tinob Jun 26, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
30 changes: 30 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
root = true

[*]
indent_size = 2
trim_trailing_whitespace = true

[*.{c,cpp,h}]
indent_style = space
insert_final_newline = true
max_line_length = 100

[{CMakeLists.txt,*.cmake}]
indent_style = tab

[.editorconfig]
insert_final_newline = true

[*.gradle]
indent_size = 4
indent_style = space
insert_final_newline = false

[*.java]
indent_style = tab
insert_final_newline = true

[*.xml]
indent_size = 4
indent_style = space
insert_final_newline = true
9 changes: 7 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,14 @@ CMakeLists.txt.user
# Ignore emacs temp files
\#*\#
.\#*
# Ignore transifex configuration directory
.tx
# Ignore kdevelop files/dirs
*.kdev4
# Ignore IDEA/Clion files/dirs
/.idea/
/Externals/ed25519/ed25519.log
/Externals/picojson/picojson.log
/Source/Android/.gradle/
/Source/Android/.idea/
/Source/Android/build/
/Source/Android/app/.cxx/
/Source/Android/app/release/
8 changes: 8 additions & 0 deletions .tx/config
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
[main]
host = https://www.transifex.com

[ishiiruka.emulator]
file_filter = Languages/po/<lang>.po
source_file = Languages/po/ishiiruka.pot
source_lang = en-US
type = PO
28 changes: 5 additions & 23 deletions AndroidSetup.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,10 @@ If you'd like to contribute to the Android project, but do not currently have a

## Prerequisites

* A Linux VM or host, or a Mac.
* JDK 7 for your platform.
* CMake
* [Android NDK](https://developer.android.com/tools/sdk/ndk/index.html)
* [Android Studio](http://developer.android.com/tools/studio/index.html) **OR**
* [Android SDK Tools](http://developer.android.com/sdk/index.html#Other) (for command-line usage)
* [Android Studio](http://developer.android.com/tools/studio/index.html)

If you downloaded Android Studio, extract it and then see [Setting up Android Studio](#setting-up-android-studio).

If you instead chose to download the commoand-line SDK tools, see [Setting up the SDK Tools](#setting-up-the-sdk-tools).

## Setting up Android Studio

1. Launch Android Studio, which will start a first-launch wizard.
Expand All @@ -26,12 +19,6 @@ If you instead chose to download the commoand-line SDK tools, see [Setting up th
7. Use the SDK Manager to get necessary dependencies, as described in [Getting Dependencies](#getting-dependencies).
8. When done, follow the steps in [Readme.md](Readme.md#installation-on-android) to compile and deploy the application.

## Setting up the SDK Tools

1. In `Source/Android`, create a file called `local.properties`.
2. Add a single line: `sdk.dir=<sdk-path>`, where `<sdk-path>` is the path where you extracted the SDK Tools package.
3. Follow the steps in [Readme.md](Readme.md#installation-on-android) to compile and deploy the application.

## Executing Gradle Tasks

In Android Studio, you can find a list of possible Gradle tasks in a tray at the top right of the screen:
Expand All @@ -50,19 +37,14 @@ For command-line users, any task may be executed with `Source/Android/gradlew <t

Most dependencies for the Android project are supplied by Gradle automatically. However, Android platform libraries (and a few Google-supplied supplementary libraries) must be downloaded through the Android package manager.

1. Launch the Android SDK Manager from the commandline by executing `<sdk-path>/tools/android`, or by clicking on its icon in Android Studio's main toolbar:
1. Launch the Android SDK Manager by clicking on its icon in Android Studio's main toolbar:
![Android Studio Package Icon][package-icon]
2. At the bottom of the window, click "Deselect All", and then "Updates".
3. Install or update the following packages:

* SDK Platform, under "Android 5.0.1 (API 21)". This will allow compiling apps that target Lollipop.
* Android Support Repository
* Android Support Library
* Google Repository
2. Install or update the SDK Platform. Choose the API level selected as [compileSdkVersion](Source/Android/app/build.gradle#L5).
3. Install or update the SDK Tools. CMake, LLDB and NDK. If you don't use android-studio, please check out https://github.com/Commit451/android-cmake-installer.

In the future, if the project targets a newer version of Android, or use newer versions of the tools/build-tools packages, it will be necessary to use this tool to download updates.

[components]: http://i.imgur.com/Oo1Fs93.png
[package-icon]: http://i.imgur.com/NUpkAH8.png
[gradle]: http://i.imgur.com/dXIH6o3.png
[shortcut]: http://i.imgur.com/eCWP4Yy.png
[shortcut]: http://i.imgur.com/eCWP4Yy.png
11 changes: 11 additions & 0 deletions CMake/CCache.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
find_program(CCACHE_BIN ccache)
if(CCACHE_BIN)
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ${CCACHE_BIN})
set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ${CCACHE_BIN})

# ccache uses -I when compiling without preprocessor, which makes clang complain.
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Qunused-arguments -fcolor-diagnostics")
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Qunused-arguments -fcolor-diagnostics")
endif()
endif()
49 changes: 49 additions & 0 deletions CMake/CheckAndAddFlag.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
include(CheckCCompilerFlag)
include(CheckCXXCompilerFlag)

# check_add_add_flag(<variable> <flag> [DEBUG_ONLY | RELEASE_ONLY])
#
# Add a C or C++ compilation flag to the current scope
#
# Can optionally add the flag to Debug or Release configurations only, use this when
# targeting multi-configuration generators like Visual Studio or Xcode.
# Release configurations means NOT Debug, so it will work for RelWithDebInfo or MinSizeRel too.
#
# If the flag is added successfully, the variables FLAG_C_<variable> and FLAG_CXX_<variable>
# may be set to ON.
#
# Examples:
# check_and_add_flag(FOO -foo)
# check_and_add_flag(ONLYDEBUG -onlydebug DEBUG_ONLY)
# check_and_add_flag(OPTMAX -O9001 RELEASE_ONLY)

function(check_and_add_flag var flag)
set(genexp_config_test "1")
if(ARGV2 STREQUAL "DEBUG_ONLY")
set(genexp_config_test "$<CONFIG:Debug>")
elseif(ARGV2 STREQUAL "RELEASE_ONLY")
set(genexp_config_test "$<NOT:$<CONFIG:Debug>>")
elseif(ARGV2)
message(FATAL_ERROR "check_and_add_flag called with incorrect arguments: ${ARGN}")
endif()

set(is_c "$<COMPILE_LANGUAGE:C>")
set(is_cxx "$<COMPILE_LANGUAGE:CXX>")

# The Visual Studio generators don't support COMPILE_LANGUAGE
# So we fail all the C flags and only actually test CXX ones
if(CMAKE_GENERATOR MATCHES "Visual Studio")
set(is_c "0")
set(is_cxx "1")
endif()

check_c_compiler_flag(${flag} FLAG_C_${var})
if(FLAG_C_${var})
add_compile_options("$<$<AND:${is_c},${genexp_config_test}>:${flag}>")
endif()

check_cxx_compiler_flag(${flag} FLAG_CXX_${var})
if(FLAG_CXX_${var})
add_compile_options("$<$<AND:${is_cxx},${genexp_config_test}>:${flag}>")
endif()
endfunction()
58 changes: 58 additions & 0 deletions CMake/CheckLib.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
find_package(PkgConfig)

macro(_internal_message msg)
if(NOT ${_is_quiet})
message(STATUS "${msg}")
endif()
endmacro()

macro(check_lib var pc lib)
set(_is_required 0)
set(_is_quiet 0)
set(_arg_list ${ARGN})
foreach(_arg ${ARGN})
if(_arg STREQUAL "REQUIRED")
list(REMOVE_ITEM _arg_list "REQUIRED")
set(_is_required 1)
endif()
if(_arg STREQUAL "QUIET")
list(REMOVE_ITEM _arg_list "QUIET")
set(_is_quiet 1)
endif()
endforeach()

if(PKG_CONFIG_FOUND AND NOT ${var}_FOUND)
pkg_search_module(${var} QUIET ${pc})
endif()

if(${var}_FOUND)
if(${var}_INCLUDE_DIRS)
include_directories(${${var}_INCLUDE_DIRS})
endif()
# Make sure include directories for headers found using find_path below
# are re-added when reconfiguring
if(${var}_INCLUDE)
include_directories(${${var}_INCLUDE})
endif()
_internal_message("${lib} found")
else()
find_library(${var} ${lib})
if(_arg_list)
find_path(${var}_INCLUDE ${_arg_list})
else()
set(${var}_INCLUDE FALSE)
endif()
if(${var} AND ${var}_INCLUDE)
include_directories(${${var}_INCLUDE})
_internal_message("${lib} found")
set(${var}_FOUND 1 CACHE INTERNAL "")
else()
if(_is_required)
message(FATAL_ERROR "${lib} is required but not found")
else()
_internal_message("${lib} not found")
endif()
endif()
endif()
endmacro()

34 changes: 34 additions & 0 deletions CMake/DolphinCompileDefinitions.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Add a C or C++ compile definitions to the current scope
#
# dolphin_compile_definitions(def [def ...] [DEBUG_ONLY | RELEASE_ONLY])
#
# Can optionally add the definitions to Debug or Release configurations only, use this so we can
# target multi-configuration generators like Visual Studio or Xcode.
# Release configurations means NOT Debug, so it will work for RelWithDebInfo or MinSizeRel too.
# The definitions are added to the COMPILE_DEFINITIONS folder property.
# Supports generator expressions, unlike add_definitions()
#
# Examples:
# dolphin_compile_definitions(FOO) -> -DFOO
# dolphin_compile_definitions(_DEBUG DEBUG_ONLY) -> -D_DEBUG
# dolphin_compile_definitions(NDEBUG RELEASE_ONLY) -> -DNDEBUG
# dolphin_compile_definitions($<$<COMPILE_LANGUAGE:C>:THISISONLYFORC>)

function(dolphin_compile_definitions)
set(defs ${ARGN})

list(GET defs -1 last_def)
list(REMOVE_AT defs -1)

set(genexp_config_test "1")
if(last_def STREQUAL "DEBUG_ONLY")
set(genexp_config_test "$<CONFIG:Debug>")
elseif(last_def STREQUAL "RELEASE_ONLY")
set(genexp_config_test "$<NOT:$<CONFIG:Debug>>")
else()
list(APPEND defs ${last_def})
endif()

set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS
"$<${genexp_config_test}:${defs}>")
endfunction()
46 changes: 46 additions & 0 deletions CMake/DolphinPostprocessBundle.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# This module can be used in two different ways.
#
# When invoked as `cmake -P DolphinPostprocessBundle.cmake`, it fixes up an
# application folder to be standalone. It bundles all required libraries from
# the system and fixes up library IDs. Any additional shared libraries, like
# plugins, that are found under Contents/MacOS/ will be made standalone as well.
#
# When called with `include(DolphinPostprocessBundle)`, it defines a helper
# function `dolphin_postprocess_bundle` that sets up the command form of the
# module as a post-build step.

if(CMAKE_GENERATOR)
# Being called as include(DolphinPostprocessBundle), so define a helper function.
set(_DOLPHIN_POSTPROCESS_BUNDLE_MODULE_LOCATION "${CMAKE_CURRENT_LIST_FILE}")
function(dolphin_postprocess_bundle target)
add_custom_command(TARGET ${target} POST_BUILD
COMMAND ${CMAKE_COMMAND} -DDOLPHIN_BUNDLE_PATH="$<TARGET_FILE_DIR:${target}>/../.."
-P "${_DOLPHIN_POSTPROCESS_BUNDLE_MODULE_LOCATION}"
)
endfunction()
return()
endif()

get_filename_component(DOLPHIN_BUNDLE_PATH "${DOLPHIN_BUNDLE_PATH}" REALPATH)
message(STATUS "Fixing up application bundle: ${DOLPHIN_BUNDLE_PATH}")

# Make sure to fix up any additional shared libraries (like plugins) that are
# needed.
file(GLOB_RECURSE extra_libs "${DOLPHIN_BUNDLE_PATH}/Contents/MacOS/*.dylib")

# BundleUtilities doesn't support DYLD_FALLBACK_LIBRARY_PATH behavior, which
# makes it sometimes break on libraries that do weird things with @rpath. Specify
# equivalent search directories until https://gitlab.kitware.com/cmake/cmake/issues/16625
# is fixed and in our minimum CMake version.
set(extra_dirs "/usr/local/lib" "/lib" "/usr/lib")

# BundleUtilities is overly verbose, so disable most of its messages
function(message)
if(NOT ARGV MATCHES "^STATUS;")
_message("${ARGV}")
endif()
endfunction()

include(BundleUtilities)
set(BU_CHMOD_BUNDLE_ITEMS ON)
fixup_bundle("${DOLPHIN_BUNDLE_PATH}" "${extra_libs}" "${extra_dirs}")
59 changes: 59 additions & 0 deletions CMake/FindALSA.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.

#.rst:
# FindALSA
# --------
#
# Find alsa
#
# Find the alsa libraries (asound)
#
# ::
#
# This module defines the following variables:
# ALSA_FOUND - True if ALSA_INCLUDE_DIR & ALSA_LIBRARY are found
# ALSA_LIBRARIES - Set when ALSA_LIBRARY is found
# ALSA_INCLUDE_DIRS - Set when ALSA_INCLUDE_DIR is found
#
#
#
# ::
#
# ALSA_INCLUDE_DIR - where to find asoundlib.h, etc.
# ALSA_LIBRARY - the asound library
# ALSA_VERSION_STRING - the version of alsa found (since CMake 2.8.8)

find_path(ALSA_INCLUDE_DIR NAMES alsa/asoundlib.h
DOC "The ALSA (asound) include directory"
)

find_library(ALSA_LIBRARY NAMES asound
DOC "The ALSA (asound) library"
)

if(ALSA_INCLUDE_DIR AND EXISTS "${ALSA_INCLUDE_DIR}/alsa/version.h")
file(STRINGS "${ALSA_INCLUDE_DIR}/alsa/version.h" alsa_version_str REGEX "^#define[\t ]+SND_LIB_VERSION_STR[\t ]+\".*\"")

string(REGEX REPLACE "^.*SND_LIB_VERSION_STR[\t ]+\"([^\"]*)\".*$" "\\1" ALSA_VERSION_STRING "${alsa_version_str}")
unset(alsa_version_str)
endif()

include(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(ALSA
REQUIRED_VARS ALSA_LIBRARY ALSA_INCLUDE_DIR
VERSION_VAR ALSA_VERSION_STRING)

if(ALSA_FOUND)
set( ALSA_LIBRARIES ${ALSA_LIBRARY} )
set( ALSA_INCLUDE_DIRS ${ALSA_INCLUDE_DIR} )
if(NOT TARGET ALSA::ALSA)
add_library(ALSA::ALSA UNKNOWN IMPORTED)
set_target_properties(ALSA::ALSA PROPERTIES
IMPORTED_LOCATION ${ALSA_LIBRARY}
INTERFACE_INCLUDE_DIRECTORIES ${ALSA_INCLUDE_DIR}
)
endif()
endif()

mark_as_advanced(ALSA_INCLUDE_DIR ALSA_LIBRARY)
Loading