Bläddra i källkod

-Added google play services (needed for some stuff)
-Added new screen resizing options, stretch_2d is removed, new much more flexible ones.
-Fixed bug in viewport (can create more instances in 3d-in-2d demo now)
-Can set android permissions and screen sizes manually in the export settings
-Changed export templates extension to .tpz (too many people unzipped the manually..)
-File dialog now ensures that the proper extension is used (will not allow to save without it)
-Fixed bug that made collision exceptions not work in 2D

Juan Linietsky 11 år sedan
förälder
incheckning
162d2ebe4f
100 ändrade filer med 911 tillägg och 0 borttagningar
  1. 359 0
      core/io/aes256.cpp
  2. 46 0
      core/io/aes256.h
  3. 217 0
      core/io/file_access_encrypted.cpp
  4. 63 0
      core/io/file_access_encrypted.h
  5. BIN
      demos/misc/instancing/ball.scn
  6. BIN
      demos/misc/instancing/bowling_ball.png
  7. BIN
      demos/misc/instancing/container.png
  8. BIN
      demos/misc/instancing/container.scn
  9. 8 0
      demos/misc/instancing/engine.cfg
  10. BIN
      demos/viewport/3d_in_2d/player_3d.scn
  11. 8 0
      platform/android/libs/google_play_services/.classpath
  12. 9 0
      platform/android/libs/google_play_services/AndroidManifest.xml
  13. 17 0
      platform/android/libs/google_play_services/README.txt
  14. 92 0
      platform/android/libs/google_play_services/build.xml
  15. BIN
      platform/android/libs/google_play_services/libs/google-play-services.jar
  16. 1 0
      platform/android/libs/google_play_services/libs/google-play-services.jar.properties
  17. 20 0
      platform/android/libs/google_play_services/proguard-project.txt
  18. 20 0
      platform/android/libs/google_play_services/proguard.txt
  19. 15 0
      platform/android/libs/google_play_services/project.properties
  20. 18 0
      platform/android/libs/google_play_services/res/color/common_signin_btn_text_dark.xml
  21. 18 0
      platform/android/libs/google_play_services/res/color/common_signin_btn_text_light.xml
  22. BIN
      platform/android/libs/google_play_services/res/drawable-hdpi/common_signin_btn_icon_disabled_dark.9.png
  23. BIN
      platform/android/libs/google_play_services/res/drawable-hdpi/common_signin_btn_icon_disabled_focus_dark.9.png
  24. BIN
      platform/android/libs/google_play_services/res/drawable-hdpi/common_signin_btn_icon_disabled_focus_light.9.png
  25. BIN
      platform/android/libs/google_play_services/res/drawable-hdpi/common_signin_btn_icon_disabled_light.9.png
  26. BIN
      platform/android/libs/google_play_services/res/drawable-hdpi/common_signin_btn_icon_focus_dark.9.png
  27. BIN
      platform/android/libs/google_play_services/res/drawable-hdpi/common_signin_btn_icon_focus_light.9.png
  28. BIN
      platform/android/libs/google_play_services/res/drawable-hdpi/common_signin_btn_icon_normal_dark.9.png
  29. BIN
      platform/android/libs/google_play_services/res/drawable-hdpi/common_signin_btn_icon_normal_light.9.png
  30. BIN
      platform/android/libs/google_play_services/res/drawable-hdpi/common_signin_btn_icon_pressed_dark.9.png
  31. BIN
      platform/android/libs/google_play_services/res/drawable-hdpi/common_signin_btn_icon_pressed_light.9.png
  32. BIN
      platform/android/libs/google_play_services/res/drawable-hdpi/common_signin_btn_text_disabled_dark.9.png
  33. BIN
      platform/android/libs/google_play_services/res/drawable-hdpi/common_signin_btn_text_disabled_focus_dark.9.png
  34. BIN
      platform/android/libs/google_play_services/res/drawable-hdpi/common_signin_btn_text_disabled_focus_light.9.png
  35. BIN
      platform/android/libs/google_play_services/res/drawable-hdpi/common_signin_btn_text_disabled_light.9.png
  36. BIN
      platform/android/libs/google_play_services/res/drawable-hdpi/common_signin_btn_text_focus_dark.9.png
  37. BIN
      platform/android/libs/google_play_services/res/drawable-hdpi/common_signin_btn_text_focus_light.9.png
  38. BIN
      platform/android/libs/google_play_services/res/drawable-hdpi/common_signin_btn_text_normal_dark.9.png
  39. BIN
      platform/android/libs/google_play_services/res/drawable-hdpi/common_signin_btn_text_normal_light.9.png
  40. BIN
      platform/android/libs/google_play_services/res/drawable-hdpi/common_signin_btn_text_pressed_dark.9.png
  41. BIN
      platform/android/libs/google_play_services/res/drawable-hdpi/common_signin_btn_text_pressed_light.9.png
  42. BIN
      platform/android/libs/google_play_services/res/drawable-hdpi/ic_plusone_medium_off_client.png
  43. BIN
      platform/android/libs/google_play_services/res/drawable-hdpi/ic_plusone_small_off_client.png
  44. BIN
      platform/android/libs/google_play_services/res/drawable-hdpi/ic_plusone_standard_off_client.png
  45. BIN
      platform/android/libs/google_play_services/res/drawable-hdpi/ic_plusone_tall_off_client.png
  46. BIN
      platform/android/libs/google_play_services/res/drawable-mdpi/common_signin_btn_icon_disabled_dark.9.png
  47. BIN
      platform/android/libs/google_play_services/res/drawable-mdpi/common_signin_btn_icon_disabled_focus_dark.9.png
  48. BIN
      platform/android/libs/google_play_services/res/drawable-mdpi/common_signin_btn_icon_disabled_focus_light.9.png
  49. BIN
      platform/android/libs/google_play_services/res/drawable-mdpi/common_signin_btn_icon_disabled_light.9.png
  50. BIN
      platform/android/libs/google_play_services/res/drawable-mdpi/common_signin_btn_icon_focus_dark.9.png
  51. BIN
      platform/android/libs/google_play_services/res/drawable-mdpi/common_signin_btn_icon_focus_light.9.png
  52. BIN
      platform/android/libs/google_play_services/res/drawable-mdpi/common_signin_btn_icon_normal_dark.9.png
  53. BIN
      platform/android/libs/google_play_services/res/drawable-mdpi/common_signin_btn_icon_normal_light.9.png
  54. BIN
      platform/android/libs/google_play_services/res/drawable-mdpi/common_signin_btn_icon_pressed_dark.9.png
  55. BIN
      platform/android/libs/google_play_services/res/drawable-mdpi/common_signin_btn_icon_pressed_light.9.png
  56. BIN
      platform/android/libs/google_play_services/res/drawable-mdpi/common_signin_btn_text_disabled_dark.9.png
  57. BIN
      platform/android/libs/google_play_services/res/drawable-mdpi/common_signin_btn_text_disabled_focus_dark.9.png
  58. BIN
      platform/android/libs/google_play_services/res/drawable-mdpi/common_signin_btn_text_disabled_focus_light.9.png
  59. BIN
      platform/android/libs/google_play_services/res/drawable-mdpi/common_signin_btn_text_disabled_light.9.png
  60. BIN
      platform/android/libs/google_play_services/res/drawable-mdpi/common_signin_btn_text_focus_dark.9.png
  61. BIN
      platform/android/libs/google_play_services/res/drawable-mdpi/common_signin_btn_text_focus_light.9.png
  62. BIN
      platform/android/libs/google_play_services/res/drawable-mdpi/common_signin_btn_text_normal_dark.9.png
  63. BIN
      platform/android/libs/google_play_services/res/drawable-mdpi/common_signin_btn_text_normal_light.9.png
  64. BIN
      platform/android/libs/google_play_services/res/drawable-mdpi/common_signin_btn_text_pressed_dark.9.png
  65. BIN
      platform/android/libs/google_play_services/res/drawable-mdpi/common_signin_btn_text_pressed_light.9.png
  66. BIN
      platform/android/libs/google_play_services/res/drawable-mdpi/ic_plusone_medium_off_client.png
  67. BIN
      platform/android/libs/google_play_services/res/drawable-mdpi/ic_plusone_small_off_client.png
  68. BIN
      platform/android/libs/google_play_services/res/drawable-mdpi/ic_plusone_standard_off_client.png
  69. BIN
      platform/android/libs/google_play_services/res/drawable-mdpi/ic_plusone_tall_off_client.png
  70. BIN
      platform/android/libs/google_play_services/res/drawable-xhdpi/common_signin_btn_icon_disabled_dark.9.png
  71. BIN
      platform/android/libs/google_play_services/res/drawable-xhdpi/common_signin_btn_icon_disabled_focus_dark.9.png
  72. BIN
      platform/android/libs/google_play_services/res/drawable-xhdpi/common_signin_btn_icon_disabled_focus_light.9.png
  73. BIN
      platform/android/libs/google_play_services/res/drawable-xhdpi/common_signin_btn_icon_disabled_light.9.png
  74. BIN
      platform/android/libs/google_play_services/res/drawable-xhdpi/common_signin_btn_icon_focus_dark.9.png
  75. BIN
      platform/android/libs/google_play_services/res/drawable-xhdpi/common_signin_btn_icon_focus_light.9.png
  76. BIN
      platform/android/libs/google_play_services/res/drawable-xhdpi/common_signin_btn_icon_normal_dark.9.png
  77. BIN
      platform/android/libs/google_play_services/res/drawable-xhdpi/common_signin_btn_icon_normal_light.9.png
  78. BIN
      platform/android/libs/google_play_services/res/drawable-xhdpi/common_signin_btn_icon_pressed_dark.9.png
  79. BIN
      platform/android/libs/google_play_services/res/drawable-xhdpi/common_signin_btn_icon_pressed_light.9.png
  80. BIN
      platform/android/libs/google_play_services/res/drawable-xhdpi/common_signin_btn_text_disabled_dark.9.png
  81. BIN
      platform/android/libs/google_play_services/res/drawable-xhdpi/common_signin_btn_text_disabled_focus_dark.9.png
  82. BIN
      platform/android/libs/google_play_services/res/drawable-xhdpi/common_signin_btn_text_disabled_focus_light.9.png
  83. BIN
      platform/android/libs/google_play_services/res/drawable-xhdpi/common_signin_btn_text_disabled_light.9.png
  84. BIN
      platform/android/libs/google_play_services/res/drawable-xhdpi/common_signin_btn_text_focus_dark.9.png
  85. BIN
      platform/android/libs/google_play_services/res/drawable-xhdpi/common_signin_btn_text_focus_light.9.png
  86. BIN
      platform/android/libs/google_play_services/res/drawable-xhdpi/common_signin_btn_text_normal_dark.9.png
  87. BIN
      platform/android/libs/google_play_services/res/drawable-xhdpi/common_signin_btn_text_normal_light.9.png
  88. BIN
      platform/android/libs/google_play_services/res/drawable-xhdpi/common_signin_btn_text_pressed_dark.9.png
  89. BIN
      platform/android/libs/google_play_services/res/drawable-xhdpi/common_signin_btn_text_pressed_light.9.png
  90. BIN
      platform/android/libs/google_play_services/res/drawable-xhdpi/ic_plusone_medium_off_client.png
  91. BIN
      platform/android/libs/google_play_services/res/drawable-xhdpi/ic_plusone_small_off_client.png
  92. BIN
      platform/android/libs/google_play_services/res/drawable-xhdpi/ic_plusone_standard_off_client.png
  93. BIN
      platform/android/libs/google_play_services/res/drawable-xhdpi/ic_plusone_tall_off_client.png
  94. BIN
      platform/android/libs/google_play_services/res/drawable-xxhdpi/common_signin_btn_icon_disabled_dark.9.png
  95. BIN
      platform/android/libs/google_play_services/res/drawable-xxhdpi/common_signin_btn_icon_disabled_focus_dark.9.png
  96. BIN
      platform/android/libs/google_play_services/res/drawable-xxhdpi/common_signin_btn_icon_disabled_focus_light.9.png
  97. BIN
      platform/android/libs/google_play_services/res/drawable-xxhdpi/common_signin_btn_icon_disabled_light.9.png
  98. BIN
      platform/android/libs/google_play_services/res/drawable-xxhdpi/common_signin_btn_icon_focus_dark.9.png
  99. BIN
      platform/android/libs/google_play_services/res/drawable-xxhdpi/common_signin_btn_icon_focus_light.9.png
  100. BIN
      platform/android/libs/google_play_services/res/drawable-xxhdpi/common_signin_btn_icon_normal_dark.9.png

+ 359 - 0
core/io/aes256.cpp

@@ -0,0 +1,359 @@
+/*  
+*   Byte-oriented AES-256 implementation.
+*   All lookup tables replaced with 'on the fly' calculations. 
+*
+*   Copyright (c) 2007-2009 Ilya O. Levin, http://www.literatecode.com
+*   Other contributors: Hal Finney
+*
+*   Permission to use, copy, modify, and distribute this software for any
+*   purpose with or without fee is hereby granted, provided that the above
+*   copyright notice and this permission notice appear in all copies.
+*
+*   THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+*   WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+*   MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+*   ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+*   WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+*   ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+*   OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+*/
+#include "aes256.h"
+
+#define F(x)   (((x)<<1) ^ ((((x)>>7) & 1) * 0x1b))
+#define FD(x)  (((x) >> 1) ^ (((x) & 1) ? 0x8d : 0))
+
+// #define BACK_TO_TABLES
+#ifdef BACK_TO_TABLES
+
+const uint8_t sbox[256] = {
+    0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5,
+    0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76,
+    0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0,
+    0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0,
+    0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc,
+    0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15,
+    0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a,
+    0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75,
+    0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0,
+    0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84,
+    0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b,
+    0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf,
+    0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85,
+    0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8,
+    0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5,
+    0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2,
+    0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17,
+    0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73,
+    0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88,
+    0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb,
+    0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c,
+    0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79,
+    0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9,
+    0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08,
+    0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6,
+    0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a,
+    0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e,
+    0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e,
+    0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94,
+    0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf,
+    0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68,
+    0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16
+};
+const uint8_t sboxinv[256] = {
+    0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38,
+    0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb,
+    0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87,
+    0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb,
+    0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d,
+    0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e,
+    0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2,
+    0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25,
+    0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16,
+    0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92,
+    0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda,
+    0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84,
+    0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a,
+    0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06,
+    0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02,
+    0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b,
+    0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea,
+    0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73,
+    0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85,
+    0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e,
+    0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89,
+    0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b,
+    0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20,
+    0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4,
+    0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31,
+    0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f,
+    0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d,
+    0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef,
+    0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0,
+    0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61,
+    0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26,
+    0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d
+};
+
+#define rj_sbox(x)     sbox[(x)]
+#define rj_sbox_inv(x) sboxinv[(x)]
+
+#else /* tableless subroutines */
+
+/* -------------------------------------------------------------------------- */
+uint8_t gf_alog(uint8_t x) // calculate anti-logarithm gen 3
+{
+    uint8_t atb = 1, z;
+
+    while (x--) {z = atb; atb <<= 1; if (z & 0x80) atb^= 0x1b; atb ^= z;}
+
+    return atb;
+} /* gf_alog */
+
+/* -------------------------------------------------------------------------- */
+uint8_t gf_log(uint8_t x) // calculate logarithm gen 3
+{
+    uint8_t atb = 1, i = 0, z;
+
+    do {
+        if (atb == x) break;
+        z = atb; atb <<= 1; if (z & 0x80) atb^= 0x1b; atb ^= z;
+    } while (++i > 0);
+
+    return i;
+} /* gf_log */
+
+
+/* -------------------------------------------------------------------------- */
+uint8_t gf_mulinv(uint8_t x) // calculate multiplicative inverse
+{
+    return (x) ? gf_alog(255 - gf_log(x)) : 0;
+} /* gf_mulinv */
+
+/* -------------------------------------------------------------------------- */
+uint8_t rj_sbox(uint8_t x)
+{
+    uint8_t y, sb;
+
+    sb = y = gf_mulinv(x);
+    y = (y<<1)|(y>>7); sb ^= y;  y = (y<<1)|(y>>7); sb ^= y; 
+    y = (y<<1)|(y>>7); sb ^= y;  y = (y<<1)|(y>>7); sb ^= y;
+
+    return (sb ^ 0x63);
+} /* rj_sbox */
+
+/* -------------------------------------------------------------------------- */
+uint8_t rj_sbox_inv(uint8_t x)
+{
+    uint8_t y, sb;
+
+    y = x ^ 0x63;
+    sb = y = (y<<1)|(y>>7);
+    y = (y<<2)|(y>>6); sb ^= y; y = (y<<3)|(y>>5); sb ^= y;
+
+    return gf_mulinv(sb);
+} /* rj_sbox_inv */
+
+#endif
+
+/* -------------------------------------------------------------------------- */
+uint8_t rj_xtime(uint8_t x) 
+{
+    return (x & 0x80) ? ((x << 1) ^ 0x1b) : (x << 1);
+} /* rj_xtime */
+
+/* -------------------------------------------------------------------------- */
+void aes_subBytes(uint8_t *buf)
+{
+    register uint8_t i = 16;
+
+    while (i--) buf[i] = rj_sbox(buf[i]);
+} /* aes_subBytes */
+
+/* -------------------------------------------------------------------------- */
+void aes_subBytes_inv(uint8_t *buf)
+{
+    register uint8_t i = 16;
+
+    while (i--) buf[i] = rj_sbox_inv(buf[i]);
+} /* aes_subBytes_inv */
+
+/* -------------------------------------------------------------------------- */
+void aes_addRoundKey(uint8_t *buf, uint8_t *key)
+{
+    register uint8_t i = 16;
+
+    while (i--) buf[i] ^= key[i];
+} /* aes_addRoundKey */
+
+/* -------------------------------------------------------------------------- */
+void aes_addRoundKey_cpy(uint8_t *buf, uint8_t *key, uint8_t *cpk)
+{
+    register uint8_t i = 16;
+
+    while (i--)  buf[i] ^= (cpk[i] = key[i]), cpk[16+i] = key[16 + i];
+} /* aes_addRoundKey_cpy */
+
+
+/* -------------------------------------------------------------------------- */
+void aes_shiftRows(uint8_t *buf)
+{
+    register uint8_t i, j; /* to make it potentially parallelable :) */
+
+    i = buf[1]; buf[1] = buf[5]; buf[5] = buf[9]; buf[9] = buf[13]; buf[13] = i;
+    i = buf[10]; buf[10] = buf[2]; buf[2] = i;
+    j = buf[3]; buf[3] = buf[15]; buf[15] = buf[11]; buf[11] = buf[7]; buf[7] = j;
+    j = buf[14]; buf[14] = buf[6]; buf[6]  = j;
+
+} /* aes_shiftRows */
+
+/* -------------------------------------------------------------------------- */
+void aes_shiftRows_inv(uint8_t *buf)
+{
+    register uint8_t i, j; /* same as above :) */
+
+    i = buf[1]; buf[1] = buf[13]; buf[13] = buf[9]; buf[9] = buf[5]; buf[5] = i;
+    i = buf[2]; buf[2] = buf[10]; buf[10] = i;
+    j = buf[3]; buf[3] = buf[7]; buf[7] = buf[11]; buf[11] = buf[15]; buf[15] = j;
+    j = buf[6]; buf[6] = buf[14]; buf[14] = j;
+
+} /* aes_shiftRows_inv */
+
+/* -------------------------------------------------------------------------- */
+void aes_mixColumns(uint8_t *buf)
+{
+    register uint8_t i, a, b, c, d, e;
+
+    for (i = 0; i < 16; i += 4)
+    {
+        a = buf[i]; b = buf[i + 1]; c = buf[i + 2]; d = buf[i + 3];
+        e = a ^ b ^ c ^ d;
+        buf[i] ^= e ^ rj_xtime(a^b);   buf[i+1] ^= e ^ rj_xtime(b^c);
+        buf[i+2] ^= e ^ rj_xtime(c^d); buf[i+3] ^= e ^ rj_xtime(d^a);
+    }
+} /* aes_mixColumns */
+
+/* -------------------------------------------------------------------------- */
+void aes_mixColumns_inv(uint8_t *buf)
+{
+    register uint8_t i, a, b, c, d, e, x, y, z;
+
+    for (i = 0; i < 16; i += 4)
+    {
+        a = buf[i]; b = buf[i + 1]; c = buf[i + 2]; d = buf[i + 3];
+        e = a ^ b ^ c ^ d;
+        z = rj_xtime(e);
+        x = e ^ rj_xtime(rj_xtime(z^a^c));  y = e ^ rj_xtime(rj_xtime(z^b^d));
+        buf[i] ^= x ^ rj_xtime(a^b);   buf[i+1] ^= y ^ rj_xtime(b^c);
+        buf[i+2] ^= x ^ rj_xtime(c^d); buf[i+3] ^= y ^ rj_xtime(d^a);
+    }
+} /* aes_mixColumns_inv */
+
+/* -------------------------------------------------------------------------- */
+void aes_expandEncKey(uint8_t *k, uint8_t *rc) 
+{
+    register uint8_t i;
+
+    k[0] ^= rj_sbox(k[29]) ^ (*rc);
+    k[1] ^= rj_sbox(k[30]);
+    k[2] ^= rj_sbox(k[31]);
+    k[3] ^= rj_sbox(k[28]);
+    *rc = F( *rc);
+
+    for(i = 4; i < 16; i += 4)  k[i] ^= k[i-4],   k[i+1] ^= k[i-3],
+        k[i+2] ^= k[i-2], k[i+3] ^= k[i-1];
+    k[16] ^= rj_sbox(k[12]);
+    k[17] ^= rj_sbox(k[13]);
+    k[18] ^= rj_sbox(k[14]);
+    k[19] ^= rj_sbox(k[15]);
+
+    for(i = 20; i < 32; i += 4) k[i] ^= k[i-4],   k[i+1] ^= k[i-3],
+        k[i+2] ^= k[i-2], k[i+3] ^= k[i-1];
+
+} /* aes_expandEncKey */
+
+/* -------------------------------------------------------------------------- */
+void aes_expandDecKey(uint8_t *k, uint8_t *rc) 
+{
+    uint8_t i;
+
+    for(i = 28; i > 16; i -= 4) k[i+0] ^= k[i-4], k[i+1] ^= k[i-3], 
+        k[i+2] ^= k[i-2], k[i+3] ^= k[i-1];
+
+    k[16] ^= rj_sbox(k[12]);
+    k[17] ^= rj_sbox(k[13]);
+    k[18] ^= rj_sbox(k[14]);
+    k[19] ^= rj_sbox(k[15]);
+
+    for(i = 12; i > 0; i -= 4)  k[i+0] ^= k[i-4], k[i+1] ^= k[i-3],
+        k[i+2] ^= k[i-2], k[i+3] ^= k[i-1];
+
+    *rc = FD(*rc);
+    k[0] ^= rj_sbox(k[29]) ^ (*rc);
+    k[1] ^= rj_sbox(k[30]);
+    k[2] ^= rj_sbox(k[31]);
+    k[3] ^= rj_sbox(k[28]);
+} /* aes_expandDecKey */
+
+
+/* -------------------------------------------------------------------------- */
+void aes256_init(aes256_context *ctx, uint8_t *k)
+{
+    uint8_t rcon = 1;
+    register uint8_t i;
+
+    for (i = 0; i < sizeof(ctx->key); i++) ctx->enckey[i] = ctx->deckey[i] = k[i];
+    for (i = 8;--i;) aes_expandEncKey(ctx->deckey, &rcon);
+} /* aes256_init */
+
+/* -------------------------------------------------------------------------- */
+void aes256_done(aes256_context *ctx)
+{
+    register uint8_t i;
+
+    for (i = 0; i < sizeof(ctx->key); i++) 
+        ctx->key[i] = ctx->enckey[i] = ctx->deckey[i] = 0;
+} /* aes256_done */
+
+/* -------------------------------------------------------------------------- */
+void aes256_encrypt_ecb(aes256_context *ctx, uint8_t *buf)
+{
+    uint8_t i, rcon;
+
+    aes_addRoundKey_cpy(buf, ctx->enckey, ctx->key);
+    for(i = 1, rcon = 1; i < 14; ++i)
+    {
+        aes_subBytes(buf);
+        aes_shiftRows(buf);
+        aes_mixColumns(buf);
+        if( i & 1 ) aes_addRoundKey( buf, &ctx->key[16]);
+        else aes_expandEncKey(ctx->key, &rcon), aes_addRoundKey(buf, ctx->key);
+    }
+    aes_subBytes(buf);
+    aes_shiftRows(buf);
+    aes_expandEncKey(ctx->key, &rcon); 
+    aes_addRoundKey(buf, ctx->key);
+} /* aes256_encrypt */
+
+/* -------------------------------------------------------------------------- */
+void aes256_decrypt_ecb(aes256_context *ctx, uint8_t *buf)
+{
+    uint8_t i, rcon;
+
+    aes_addRoundKey_cpy(buf, ctx->deckey, ctx->key);
+    aes_shiftRows_inv(buf);
+    aes_subBytes_inv(buf);
+
+    for (i = 14, rcon = 0x80; --i;)
+    {
+        if( ( i & 1 ) )           
+        {
+            aes_expandDecKey(ctx->key, &rcon);
+            aes_addRoundKey(buf, &ctx->key[16]);
+        }
+        else aes_addRoundKey(buf, ctx->key);
+        aes_mixColumns_inv(buf);
+        aes_shiftRows_inv(buf);
+        aes_subBytes_inv(buf);
+    }
+    aes_addRoundKey( buf, ctx->key); 
+} /* aes256_decrypt */

+ 46 - 0
core/io/aes256.h

@@ -0,0 +1,46 @@
+/*  
+*   Byte-oriented AES-256 implementation.
+*   All lookup tables replaced with 'on the fly' calculations. 
+*
+*   Copyright (c) 2007-2009 Ilya O. Levin, http://www.literatecode.com
+*   Other contributors: Hal Finney
+*
+*   Permission to use, copy, modify, and distribute this software for any
+*   purpose with or without fee is hereby granted, provided that the above
+*   copyright notice and this permission notice appear in all copies.
+*
+*   THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+*   WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+*   MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+*   ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+*   WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+*   ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+*   OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+*/
+
+#ifndef AES_256_H
+#define AES_256_H
+
+#include "typedefs.h"
+
+#ifdef __cplusplus
+extern "C" { 
+#endif
+
+    typedef struct {
+        uint8_t key[32]; 
+        uint8_t enckey[32]; 
+        uint8_t deckey[32];
+    } aes256_context; 
+
+
+    void aes256_init(aes256_context *, uint8_t * /* key */);
+    void aes256_done(aes256_context *);
+    void aes256_encrypt_ecb(aes256_context *, uint8_t * /* plaintext */);
+    void aes256_decrypt_ecb(aes256_context *, uint8_t * /* cipertext */);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif

+ 217 - 0
core/io/file_access_encrypted.cpp

@@ -0,0 +1,217 @@
+#include "file_access_encrypted.h"
+#include "aes256.h"
+#include "md5.h"
+#include "os/copymem.h"
+#define COMP_MAGIC 0x43454447
+
+
+Error FileAccessEncrypted::open_and_parse(FileAccess *p_base,const Vector<uint8_t>& p_key,Mode p_mode) {
+
+	ERR_FAIL_COND_V(file!=NULL,ERR_ALREADY_IN_USE);
+
+	if (p_mode==MODE_WRITE_AES256) {
+
+		ERR_FAIL_COND_V(p_key.size()!=32,ERR_INVALID_PARAMETER);
+		data.clear();
+		writing=true;
+		file=p_base;
+		mode=p_mode;
+		key=p_key;
+
+	}
+
+	return OK;
+}
+
+Error FileAccessEncrypted::open_and_parse_password(FileAccess *p_base,const String& p_key,Mode p_mode){
+
+
+	String cs = p_key.md5_text();
+	ERR_FAIL_COND_V(cs.length()!=32,ERR_INVALID_PARAMETER);
+	Vector<uint8_t> key;
+	key.resize(32);
+	for(int i=0;i<32;i++) {
+
+		key[i]=cs[i];
+	}
+
+	return open_and_parse(p_base,key,p_mode);
+}
+
+
+
+Error FileAccessEncrypted::_open(const String& p_path, int p_mode_flags) {
+
+	return OK;
+}
+void FileAccessEncrypted::close() {
+
+	if (!file)
+		return;
+
+	if (writing) {
+
+		Vector<uint8_t> compressed;
+		size_t len = data.size();
+		if (len % 16) {
+			len+=16-(len % 16);
+		}
+
+		compressed.resize(len);
+		zeromem( compressed.ptr(), len );
+		for(int i=0;i<data.size();i++) {
+			compressed[i]=data[i];
+		}
+
+		aes256_context ctx;
+		aes256_init(&ctx,key.ptr());
+
+		for(size_t i=0;i<len;i+=16) {
+
+			aes256_encrypt_ecb(&ctx,&compressed[i]);
+		}
+
+		aes256_done(&ctx);
+
+		file->store_32(COMP_MAGIC);
+		file->store_32(mode);
+
+		MD5_CTX md5;
+		MD5Init(&md5);
+		MD5Update(&md5,compressed.ptr(),compressed.size());
+		MD5Final(&md5);
+
+		file->store_buffer(md5.digest,16);
+		file->store_64(data.size());
+
+		file->store_buffer(compressed.ptr(),compressed.size());
+		file->close();
+		memdelete(file);
+		file=NULL;
+
+	}
+
+}
+
+bool FileAccessEncrypted::is_open() const{
+
+	return file!=NULL;
+}
+
+void FileAccessEncrypted::seek(size_t p_position){
+
+	if (writing) {
+		if (p_position > (size_t)data.size())
+			p_position=data.size();
+
+		pos=p_position;
+	}
+}
+
+
+void FileAccessEncrypted::seek_end(int64_t p_position){
+
+	seek( data.size() + p_position );
+}
+size_t FileAccessEncrypted::get_pos() const{
+
+	return pos;
+	return 0;
+}
+size_t FileAccessEncrypted::get_len() const{
+
+	if (writing)
+		return data.size();
+	return 0;
+}
+
+bool FileAccessEncrypted::eof_reached() const{
+
+	if (!writing) {
+
+
+	}
+
+	return false;
+}
+
+uint8_t FileAccessEncrypted::get_8() const{
+
+	return 0;
+}
+int FileAccessEncrypted::get_buffer(uint8_t *p_dst, int p_length) const{
+
+
+	return 0;
+}
+
+Error FileAccessEncrypted::get_error() const{
+
+	return OK;
+}
+
+void FileAccessEncrypted::store_buffer(const uint8_t *p_src,int p_length) {
+
+	ERR_FAIL_COND(!writing);
+
+	if (pos<data.size()) {
+
+		for(int i=0;i<p_length;i++) {
+
+			store_8(p_src[i]);
+		}
+	} else if (pos==data.size()) {
+
+		data.resize(pos+p_length);
+		for(int i=0;i<p_length;i++) {
+
+			data[pos+i]=p_src[i];
+		}
+		pos+=p_length;
+	}
+}
+
+
+void FileAccessEncrypted::store_8(uint8_t p_dest){
+
+	ERR_FAIL_COND(!writing);
+
+	if (pos<data.size()) {
+		data[pos]=p_dest;
+		pos++;
+	} else if (pos==data.size()){
+		data.push_back(p_dest);
+		pos++;
+	}
+}
+
+bool FileAccessEncrypted::file_exists(const String& p_name){
+
+	FileAccess *fa = FileAccess::open(p_name,FileAccess::READ);
+	if (!fa)
+		return false;
+	memdelete(fa);
+	return true;
+}
+
+uint64_t FileAccessEncrypted::_get_modified_time(const String& p_file){
+
+
+	return 0;
+}
+
+FileAccessEncrypted::FileAccessEncrypted() {
+
+	file=NULL;
+}
+
+
+FileAccessEncrypted::~FileAccessEncrypted() {
+
+	if (file)
+		close();
+
+	if (file) {
+		memdelete(file);
+	}
+}

+ 63 - 0
core/io/file_access_encrypted.h

@@ -0,0 +1,63 @@
+#ifndef FILE_ACCESS_ENCRYPTED_H
+#define FILE_ACCESS_ENCRYPTED_H
+
+
+#include "os/file_access.h"
+
+class FileAccessEncrypted : public FileAccess {
+public:
+
+	enum Mode {
+		MODE_READ,
+		MODE_WRITE_AES256
+	};
+
+private:
+
+
+	Mode mode;
+	Vector<uint8_t> key;
+	bool writing;
+	FileAccess *file;
+	size_t base;
+	size_t length;
+	Vector<uint8_t> data;
+	size_t pos;
+
+
+public:
+
+
+
+
+	Error open_and_parse(FileAccess *p_base,const Vector<uint8_t>& p_key,Mode p_mode);
+	Error open_and_parse_password(FileAccess *p_base,const String& p_key,Mode p_mode);
+
+	virtual Error _open(const String& p_path, int p_mode_flags); ///< open a file
+	virtual void close(); ///< close a file
+	virtual bool is_open() const; ///< true when file is open
+
+	virtual void seek(size_t p_position); ///< seek to a given position
+	virtual void seek_end(int64_t p_position=0); ///< seek from the end of file
+	virtual size_t get_pos() const; ///< get position in the file
+	virtual size_t get_len() const; ///< get size of the file
+
+	virtual bool eof_reached() const; ///< reading passed EOF
+
+	virtual uint8_t get_8() const; ///< get a byte
+	virtual int get_buffer(uint8_t *p_dst, int p_length) const;
+
+	virtual Error get_error() const; ///< get last error
+
+	virtual void store_8(uint8_t p_dest); ///< store a byte
+	virtual void store_buffer(const uint8_t *p_src,int p_length); ///< store an array of bytes
+
+	virtual bool file_exists(const String& p_name); ///< return true if a file exists
+
+	virtual uint64_t _get_modified_time(const String& p_file);
+
+	FileAccessEncrypted();
+	~FileAccessEncrypted();
+};
+
+#endif // FILE_ACCESS_ENCRYPTED_H

BIN
demos/misc/instancing/ball.scn


BIN
demos/misc/instancing/bowling_ball.png


BIN
demos/misc/instancing/container.png


BIN
demos/misc/instancing/container.scn


+ 8 - 0
demos/misc/instancing/engine.cfg

@@ -0,0 +1,8 @@
+[application]
+
+name="Scene Instancing Demo"
+main_scene="res://container.scn"
+
+[physics_2d]
+
+default_gravity=300

BIN
demos/viewport/3d_in_2d/player_3d.scn


+ 8 - 0
platform/android/libs/google_play_services/.classpath

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="src" path="gen"/>
+	<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
+	<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
+	<classpathentry kind="output" path="bin/classes"/>
+</classpath>

+ 9 - 0
platform/android/libs/google_play_services/AndroidManifest.xml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.google.android.gms"
+    android:versionCode="4323030"
+    android:versionName="4.3.23 (1069729-030)" >
+
+    <uses-sdk android:minSdkVersion="9"/>
+
+</manifest>

+ 17 - 0
platform/android/libs/google_play_services/README.txt

@@ -0,0 +1,17 @@
+Library Project including Google Play services client jar.
+
+This can be used by an Android project to use the API's provided
+by Google Play services.
+
+There is technically no source, but the src folder is necessary
+to ensure that the build system works. The content is actually
+located in the libs/ directory.
+
+
+USAGE:
+
+Make sure you import this Android library project into your IDE
+and set this project as a dependency.
+
+Note that if you use proguard, you will want to include the
+options from proguard.txt in your configuration.

+ 92 - 0
platform/android/libs/google_play_services/build.xml

@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="google_play_services" default="help">
+
+    <!-- The local.properties file is created and updated by the 'android' tool.
+         It contains the path to the SDK. It should *NOT* be checked into
+         Version Control Systems. -->
+    <property file="local.properties" />
+
+    <!-- The ant.properties file can be created by you. It is only edited by the
+         'android' tool to add properties to it.
+         This is the place to change some Ant specific build properties.
+         Here are some properties you may want to change/update:
+
+         source.dir
+             The name of the source directory. Default is 'src'.
+         out.dir
+             The name of the output directory. Default is 'bin'.
+
+         For other overridable properties, look at the beginning of the rules
+         files in the SDK, at tools/ant/build.xml
+
+         Properties related to the SDK location or the project target should
+         be updated using the 'android' tool with the 'update' action.
+
+         This file is an integral part of the build system for your
+         application and should be checked into Version Control Systems.
+
+         -->
+    <property file="ant.properties" />
+
+    <!-- if sdk.dir was not set from one of the property file, then
+         get it from the ANDROID_HOME env var.
+         This must be done before we load project.properties since
+         the proguard config can use sdk.dir -->
+    <property environment="env" />
+    <condition property="sdk.dir" value="${env.ANDROID_HOME}">
+        <isset property="env.ANDROID_HOME" />
+    </condition>
+
+    <!-- The project.properties file is created and updated by the 'android'
+         tool, as well as ADT.
+
+         This contains project specific properties such as project target, and library
+         dependencies. Lower level build properties are stored in ant.properties
+         (or in .classpath for Eclipse projects).
+
+         This file is an integral part of the build system for your
+         application and should be checked into Version Control Systems. -->
+    <loadproperties srcFile="project.properties" />
+
+    <!-- quick check on sdk.dir -->
+    <fail
+            message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through the ANDROID_HOME environment variable."
+            unless="sdk.dir"
+    />
+
+    <!--
+        Import per project custom build rules if present at the root of the project.
+        This is the place to put custom intermediary targets such as:
+            -pre-build
+            -pre-compile
+            -post-compile (This is typically used for code obfuscation.
+                           Compiled code location: ${out.classes.absolute.dir}
+                           If this is not done in place, override ${out.dex.input.absolute.dir})
+            -post-package
+            -post-build
+            -pre-clean
+    -->
+    <import file="custom_rules.xml" optional="true" />
+
+    <!-- Import the actual build file.
+
+         To customize existing targets, there are two options:
+         - Customize only one target:
+             - copy/paste the target into this file, *before* the
+               <import> task.
+             - customize it to your needs.
+         - Customize the whole content of build.xml
+             - copy/paste the content of the rules files (minus the top node)
+               into this file, replacing the <import> task.
+             - customize to your needs.
+
+         ***********************
+         ****** IMPORTANT ******
+         ***********************
+         In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
+         in order to avoid having your file be overridden by tools such as "android update project"
+    -->
+    <!-- version-tag: 1 -->
+    <import file="${sdk.dir}/tools/ant/build.xml" />
+
+</project>

BIN
platform/android/libs/google_play_services/libs/google-play-services.jar


+ 1 - 0
platform/android/libs/google_play_services/libs/google-play-services.jar.properties

@@ -0,0 +1 @@
+doc=../../../docs/reference

+ 20 - 0
platform/android/libs/google_play_services/proguard-project.txt

@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+#   http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+#   public *;
+#}

+ 20 - 0
platform/android/libs/google_play_services/proguard.txt

@@ -0,0 +1,20 @@
+-keep class * extends java.util.ListResourceBundle {
+    protected Object[][] getContents();
+}
+
+# Keep SafeParcelable value, needed for reflection. This is required to support backwards
+# compatibility of some classes.
+-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable {
+    public static final *** NULL;
+}
+
+# Keep the names of classes/members we need for client functionality.
+-keepnames @com.google.android.gms.common.annotation.KeepName class *
+-keepclassmembernames class * {
+    @com.google.android.gms.common.annotation.KeepName *;
+}
+
+# Needed for Parcelable/SafeParcelable Creators to not get stripped
+-keepnames class * implements android.os.Parcelable {
+    public static final ** CREATOR;
+}

+ 15 - 0
platform/android/libs/google_play_services/project.properties

@@ -0,0 +1,15 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system edit
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+#
+# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
+#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
+
+# Project target.
+target=android-15
+android.library=true

+ 18 - 0
platform/android/libs/google_play_services/res/color/common_signin_btn_text_dark.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item
+        android:state_pressed="true"
+        android:color="@color/common_signin_btn_dark_text_pressed" />
+    <item
+        android:state_enabled="false"
+        android:state_focused="true"
+        android:color="@color/common_signin_btn_dark_text_disabled" />
+    <item
+        android:state_focused="true"
+        android:color="@color/common_signin_btn_dark_text_focused" />
+    <item
+        android:state_enabled="false"
+        android:color="@color/common_signin_btn_dark_text_disabled" />
+    <item
+        android:color="@color/common_signin_btn_dark_text_default" />
+</selector>

+ 18 - 0
platform/android/libs/google_play_services/res/color/common_signin_btn_text_light.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item
+        android:state_pressed="true"
+        android:color="@color/common_signin_btn_light_text_pressed" />
+    <item
+        android:state_enabled="false"
+        android:state_focused="true"
+        android:color="@color/common_signin_btn_light_text_disabled" />
+    <item
+        android:state_focused="true"
+        android:color="@color/common_signin_btn_light_text_focused" />
+    <item
+        android:state_enabled="false"
+        android:color="@color/common_signin_btn_light_text_disabled" />
+    <item
+        android:color="@color/common_signin_btn_light_text_default" />
+</selector>

BIN
platform/android/libs/google_play_services/res/drawable-hdpi/common_signin_btn_icon_disabled_dark.9.png


BIN
platform/android/libs/google_play_services/res/drawable-hdpi/common_signin_btn_icon_disabled_focus_dark.9.png


BIN
platform/android/libs/google_play_services/res/drawable-hdpi/common_signin_btn_icon_disabled_focus_light.9.png


BIN
platform/android/libs/google_play_services/res/drawable-hdpi/common_signin_btn_icon_disabled_light.9.png


BIN
platform/android/libs/google_play_services/res/drawable-hdpi/common_signin_btn_icon_focus_dark.9.png


BIN
platform/android/libs/google_play_services/res/drawable-hdpi/common_signin_btn_icon_focus_light.9.png


BIN
platform/android/libs/google_play_services/res/drawable-hdpi/common_signin_btn_icon_normal_dark.9.png


BIN
platform/android/libs/google_play_services/res/drawable-hdpi/common_signin_btn_icon_normal_light.9.png


BIN
platform/android/libs/google_play_services/res/drawable-hdpi/common_signin_btn_icon_pressed_dark.9.png


BIN
platform/android/libs/google_play_services/res/drawable-hdpi/common_signin_btn_icon_pressed_light.9.png


BIN
platform/android/libs/google_play_services/res/drawable-hdpi/common_signin_btn_text_disabled_dark.9.png


BIN
platform/android/libs/google_play_services/res/drawable-hdpi/common_signin_btn_text_disabled_focus_dark.9.png


BIN
platform/android/libs/google_play_services/res/drawable-hdpi/common_signin_btn_text_disabled_focus_light.9.png


BIN
platform/android/libs/google_play_services/res/drawable-hdpi/common_signin_btn_text_disabled_light.9.png


BIN
platform/android/libs/google_play_services/res/drawable-hdpi/common_signin_btn_text_focus_dark.9.png


BIN
platform/android/libs/google_play_services/res/drawable-hdpi/common_signin_btn_text_focus_light.9.png


BIN
platform/android/libs/google_play_services/res/drawable-hdpi/common_signin_btn_text_normal_dark.9.png


BIN
platform/android/libs/google_play_services/res/drawable-hdpi/common_signin_btn_text_normal_light.9.png


BIN
platform/android/libs/google_play_services/res/drawable-hdpi/common_signin_btn_text_pressed_dark.9.png


BIN
platform/android/libs/google_play_services/res/drawable-hdpi/common_signin_btn_text_pressed_light.9.png


BIN
platform/android/libs/google_play_services/res/drawable-hdpi/ic_plusone_medium_off_client.png


BIN
platform/android/libs/google_play_services/res/drawable-hdpi/ic_plusone_small_off_client.png


BIN
platform/android/libs/google_play_services/res/drawable-hdpi/ic_plusone_standard_off_client.png


BIN
platform/android/libs/google_play_services/res/drawable-hdpi/ic_plusone_tall_off_client.png


BIN
platform/android/libs/google_play_services/res/drawable-mdpi/common_signin_btn_icon_disabled_dark.9.png


BIN
platform/android/libs/google_play_services/res/drawable-mdpi/common_signin_btn_icon_disabled_focus_dark.9.png


BIN
platform/android/libs/google_play_services/res/drawable-mdpi/common_signin_btn_icon_disabled_focus_light.9.png


BIN
platform/android/libs/google_play_services/res/drawable-mdpi/common_signin_btn_icon_disabled_light.9.png


BIN
platform/android/libs/google_play_services/res/drawable-mdpi/common_signin_btn_icon_focus_dark.9.png


BIN
platform/android/libs/google_play_services/res/drawable-mdpi/common_signin_btn_icon_focus_light.9.png


BIN
platform/android/libs/google_play_services/res/drawable-mdpi/common_signin_btn_icon_normal_dark.9.png


BIN
platform/android/libs/google_play_services/res/drawable-mdpi/common_signin_btn_icon_normal_light.9.png


BIN
platform/android/libs/google_play_services/res/drawable-mdpi/common_signin_btn_icon_pressed_dark.9.png


BIN
platform/android/libs/google_play_services/res/drawable-mdpi/common_signin_btn_icon_pressed_light.9.png


BIN
platform/android/libs/google_play_services/res/drawable-mdpi/common_signin_btn_text_disabled_dark.9.png


BIN
platform/android/libs/google_play_services/res/drawable-mdpi/common_signin_btn_text_disabled_focus_dark.9.png


BIN
platform/android/libs/google_play_services/res/drawable-mdpi/common_signin_btn_text_disabled_focus_light.9.png


BIN
platform/android/libs/google_play_services/res/drawable-mdpi/common_signin_btn_text_disabled_light.9.png


BIN
platform/android/libs/google_play_services/res/drawable-mdpi/common_signin_btn_text_focus_dark.9.png


BIN
platform/android/libs/google_play_services/res/drawable-mdpi/common_signin_btn_text_focus_light.9.png


BIN
platform/android/libs/google_play_services/res/drawable-mdpi/common_signin_btn_text_normal_dark.9.png


BIN
platform/android/libs/google_play_services/res/drawable-mdpi/common_signin_btn_text_normal_light.9.png


BIN
platform/android/libs/google_play_services/res/drawable-mdpi/common_signin_btn_text_pressed_dark.9.png


BIN
platform/android/libs/google_play_services/res/drawable-mdpi/common_signin_btn_text_pressed_light.9.png


BIN
platform/android/libs/google_play_services/res/drawable-mdpi/ic_plusone_medium_off_client.png


BIN
platform/android/libs/google_play_services/res/drawable-mdpi/ic_plusone_small_off_client.png


BIN
platform/android/libs/google_play_services/res/drawable-mdpi/ic_plusone_standard_off_client.png


BIN
platform/android/libs/google_play_services/res/drawable-mdpi/ic_plusone_tall_off_client.png


BIN
platform/android/libs/google_play_services/res/drawable-xhdpi/common_signin_btn_icon_disabled_dark.9.png


BIN
platform/android/libs/google_play_services/res/drawable-xhdpi/common_signin_btn_icon_disabled_focus_dark.9.png


BIN
platform/android/libs/google_play_services/res/drawable-xhdpi/common_signin_btn_icon_disabled_focus_light.9.png


BIN
platform/android/libs/google_play_services/res/drawable-xhdpi/common_signin_btn_icon_disabled_light.9.png


BIN
platform/android/libs/google_play_services/res/drawable-xhdpi/common_signin_btn_icon_focus_dark.9.png


BIN
platform/android/libs/google_play_services/res/drawable-xhdpi/common_signin_btn_icon_focus_light.9.png


BIN
platform/android/libs/google_play_services/res/drawable-xhdpi/common_signin_btn_icon_normal_dark.9.png


BIN
platform/android/libs/google_play_services/res/drawable-xhdpi/common_signin_btn_icon_normal_light.9.png


BIN
platform/android/libs/google_play_services/res/drawable-xhdpi/common_signin_btn_icon_pressed_dark.9.png


BIN
platform/android/libs/google_play_services/res/drawable-xhdpi/common_signin_btn_icon_pressed_light.9.png


BIN
platform/android/libs/google_play_services/res/drawable-xhdpi/common_signin_btn_text_disabled_dark.9.png


BIN
platform/android/libs/google_play_services/res/drawable-xhdpi/common_signin_btn_text_disabled_focus_dark.9.png


BIN
platform/android/libs/google_play_services/res/drawable-xhdpi/common_signin_btn_text_disabled_focus_light.9.png


BIN
platform/android/libs/google_play_services/res/drawable-xhdpi/common_signin_btn_text_disabled_light.9.png


BIN
platform/android/libs/google_play_services/res/drawable-xhdpi/common_signin_btn_text_focus_dark.9.png


BIN
platform/android/libs/google_play_services/res/drawable-xhdpi/common_signin_btn_text_focus_light.9.png


BIN
platform/android/libs/google_play_services/res/drawable-xhdpi/common_signin_btn_text_normal_dark.9.png


BIN
platform/android/libs/google_play_services/res/drawable-xhdpi/common_signin_btn_text_normal_light.9.png


BIN
platform/android/libs/google_play_services/res/drawable-xhdpi/common_signin_btn_text_pressed_dark.9.png


BIN
platform/android/libs/google_play_services/res/drawable-xhdpi/common_signin_btn_text_pressed_light.9.png


BIN
platform/android/libs/google_play_services/res/drawable-xhdpi/ic_plusone_medium_off_client.png


BIN
platform/android/libs/google_play_services/res/drawable-xhdpi/ic_plusone_small_off_client.png


BIN
platform/android/libs/google_play_services/res/drawable-xhdpi/ic_plusone_standard_off_client.png


BIN
platform/android/libs/google_play_services/res/drawable-xhdpi/ic_plusone_tall_off_client.png


BIN
platform/android/libs/google_play_services/res/drawable-xxhdpi/common_signin_btn_icon_disabled_dark.9.png


BIN
platform/android/libs/google_play_services/res/drawable-xxhdpi/common_signin_btn_icon_disabled_focus_dark.9.png


BIN
platform/android/libs/google_play_services/res/drawable-xxhdpi/common_signin_btn_icon_disabled_focus_light.9.png


BIN
platform/android/libs/google_play_services/res/drawable-xxhdpi/common_signin_btn_icon_disabled_light.9.png


BIN
platform/android/libs/google_play_services/res/drawable-xxhdpi/common_signin_btn_icon_focus_dark.9.png


BIN
platform/android/libs/google_play_services/res/drawable-xxhdpi/common_signin_btn_icon_focus_light.9.png


BIN
platform/android/libs/google_play_services/res/drawable-xxhdpi/common_signin_btn_icon_normal_dark.9.png


Vissa filer visades inte eftersom för många filer har ändrats