diff options
Diffstat (limited to 'PKGBUILD')
-rw-r--r-- | PKGBUILD | 202 |
1 files changed, 120 insertions, 82 deletions
@@ -1,10 +1,10 @@ # Mantainer: Wilson E. Alvarez <wilson.e.alvarez1@gmail.com> -# Submitter: Samuel FORGIONE <samuel.forgione@gmail.com> +# Previous Maintainer: Samuel FORGIONE <samuel.forgione@gmail.com> _appname=cocos2d-x pkgname=cocos2d-x-src -pkgver=3.14.1 -pkgrel=3 +pkgver=3.15 +pkgrel=1 pkgdesc="Cocos2D-X is a game engine that supports multiple platforms such as iOS, Android, WinXP/7/8, WP8, BlackBerry, MeeGo, Marmelade, WebOS, Mac OS X" arch=('i686' 'x86_64') url="http://cdn.cocos2d-x.org/" @@ -17,10 +17,9 @@ source=( "README" "$_appname.sh" "$_appname.csh" -"CMakeLists.patch" -"CCPhysicsBody.patch" -"HelloWorldScene.cpp.patch" -"HelloWorldScene.h.patch" +"CMakeLists.txt.patch" +"CCGLViewImpl-desktop.cpp.patch" +"Cocos2dxActivity.java.patch" "ccShader_3D_Color.frag.patch" "ccShader_3D_ColorNormal.frag.patch" "ccShader_3D_ColorNormalTex.frag.patch" @@ -61,58 +60,55 @@ source=( "ccShader_Position_uColor.frag.patch" "ccShader_Position_uColor.vert.patch" "ccShader_UI_Gray.frag.patch" -"BugsTest.cpp.patch" ) -sha1sums=( -'66b7a6a93899abbcfc94e22a075c7c286a15135c' -'2cff669a51b66d513824be811688aa9da553e400' -'353bdefe07bdb6eb7f53aff20d20e83b488c1c05' -'49b7919fc38803c1dd2f5b1d47fb0c75fde1fec6' -'bcad039c11e29d4cbae9e371cb428d52f2eb15ff' -'53d64b6246ba32f9f61817f505b30b4d67eeeb44' -'2c6801bae13956394ddcd94080861aac8a25be99' -'0d70b91142ceece19d90a620c707cb5f86f45d32' -'49838c03951aa76524fb651dcb78834393a17682' -'de5b8e9c89ead0ecffce6bc1450adf06e5c7e218' -'7ffd26e2235ef54c854b079a0f8b3cd697d8c0d1' -'f02f01ec38f0e1a5eb71078a612628c2e11a1413' -'49eeda555783089778035ed124e6759abdea1b62' -'c7fe0a570aebe7d4eda2fb263246823265642395' -'d45e1c0b739087f9f82d9b1f871403764e4530e4' -'356bca989f7861cff720ecd3a53f52fd1a0315af' -'fa45ba55634b3af6fae6a1ad6a24abb51343f68b' -'7ecd7bf3504f7b90bdaaee4994a44d102884e585' -'91e32c7333705620803b058d9c5efd04d84e17ab' -'6dbe3874af5295ccf48c9340be9426ef2e5e3760' -'3e8c0f635f853d56901f625375d02c13458da087' -'92d4fe63b27e5cf90ca1ce44cc25ede1ba94d234' -'fca5767e100a3af23eb65f731c93f415d69dcb05' -'4d971dd9f306f1ffad5f6203ecb8b1074543f926' -'32fe66982514e9e3b5743c31673990d0d5c39d4f' -'e08916384e815c551fb06c409ecb8a796b0eaf2d' -'f09d34eba8ee67eb4a003829b6a3e5c7abcdd682' -'c16f73e553d373aa5a6c64bc2a7a64273ca073c6' -'52c7eb7fd0bb5c436578d6ba11359b0dd5f54ff0' -'4b7925d294703e718e8627d807ed0f356b4828f0' -'a2ff2f92cf8a535e37b64278161fd1ce3d679588' -'c388ab06b5639d9fd5d179990cf03dabb470b356' -'1d7dc7ea26aa75750e883ec31fbbb1b9c54d6174' -'2a08b8532a42bb7fd647c3e01b803516430ad327' -'02e5f3695ead2d34d7ad4013b2246cddbfbed863' -'f83994a7da0311c193f3b3578ac59dc83d9f9700' -'4c1b8cd3779ffea607ffff6b59e272b938b6acd4' -'eae2679bc313b4368bfbf180f98985df71a9b3f9' -'6837a4bb47269a17bdb498072670abcd5f437388' -'4f93f13d4b8c6369fe97f94bed50e5d9649a7eda' -'64b951ec9c2453fca2348a8a2bde483ada4a11f7' -'43bbb35ed1e1c28f14a4ea333c463b87641e8238' -'399ffc785562ee9ce25fb4b3dadb96fcc70bcfc6' -'4d65c632745df2772f7c2c9507ba8bc228865c97' -'166a5e48711c6c8f329af275e4a6e0a0203052df' -'d8e81b49baec4fd9e04822e1c460dd43f85762bb' -'ea81b894221a8cf42bd6eecd1ced44fff27ad5f4' -'c8caec1e9626d222c67a7c883c8cb94101799956' -'d324bb51453ecdadede650a34d66e966e0356523' +sha256sums=( +'5296091bf87d894475d2bbde39d2081612aea9ee855a91968e7523fbc6c84a5f' +'09248ad9af9a94579b56c7c7dbf1b4276a59852c90423ad70c48b16355f28574' +'f2f74a36538c43045894bd2b2415a2396bcb5c28f9241296b0e6d39a452b56b1' +'3a7ae492fe9b2d7db8ef15c2d47e147746823942943e099d5a494c7076b2e92b' +'9a5a73ed7a1fc0cc152b0d27878b973abd525dd1a5906757d6dd385178f69835' +'3cc0e9666eeed8c0b4f7a8d0edfe1e5245c1cca53ca7e4a150660dc1bbf2a299' +'b2575e466cbba3d1abf3f467b0ea4505a00c3645de5ee8f8908b693d708b3c67' +'3f697c60080e85940a623a358a6d13ccab8a8f87346521c210196cc8ee48dcac' +'e8418d25047914058adbddce65b5f9ca7abd88bf45a1e063d8eb69aa997d4a9c' +'13de90070e6242d299232778f8a9d41c22c92d518e3a38e32501577826f52149' +'0efc1d771e2b6a5bbca414732317e709c82a53878a0431c64aa2279b9f4321fe' +'70351ae2d5a53fd42c96d5702efcef48d15a71ed7c4e55911c9678cfca7c4ab6' +'f956e3b937c663a159a6c7bc92d5c951fd18836113dcc125bb0fe46147e62531' +'3fb4eb3b15dd0f28e8d171719c779d9680329126ae6cc56ce10d0d3784b0aa15' +'79b79366bc2690a01128fbfd0742f58ccf8f9f2ca1d7dd0a4b73d47c096ee7f6' +'b8292b1c7971c285a7732e39b492f919df985c35a982a30bd9f004e9cd07f2fb' +'572d86d285fa1bb6b72aa6d012244adfe3f3a304b66764fd555997dc8462baf4' +'c56d1402ddfa5a7c5607a23b44768880797f84bc1081cbf773fa457be5b2be0a' +'c7101ce86d01afa4c20efb4f89dd3e2b6d85059df233e57539648922c3eaca8f' +'898e63f7352513848213e8fa929364acbd85707c9bbf054250c253499b65b4b7' +'9b7f760d99844b456a2f56e2a875e5355a7766537b4d2b33970d5d66bb397e3e' +'4b588741894aec0b2da47a35ff39787458202a431b88f0af6e422fcb4ee34709' +'485ea7adc13632762aa78758c96287cc41f85a2d3edf2ab9e7b299883db52c9b' +'bdd4bb3218853c9f0a7675d3d98a50e5e1d6b69b1b3861255bf0f497782d8954' +'e847773c38ef54d23b6f3fefbf9b717ca187a2780cd2b3d020f0eeb3b4a94971' +'62db6b5d01b14d8f4322a8e32cd7257ca8b87b6d55aa9a18418bc90d85ccfc89' +'8437d3cf0d8ae3af545917095cf236b93fa0c2c480062cfefd786bfa2db5c209' +'2a7e2557b1d7d85405b1a8337a876d2633921dccdfef8d5a34fb13f923b0ffd2' +'5a7b57272514d4204fea0944151ab9eb23d533b1a97c289e408269eb2d877728' +'ef4fd5d339ed872d41848847596a49a79f6a5d26c46a7edce8aadf2a9764e53a' +'b2e422006a7f5348f3833d28b17a44ab1c4afd9daaeed65d4505bbedf0647eff' +'dcb815b3c7a8e431fb8678701785d8cfb6568dc0976b86ab43c824fce765338c' +'e962c317447119b2730103ddb9cddad5f366c614cab05249a5b52a92d14d0147' +'7b33a4d78fa89b8b6a8fe3317dbf2e93e72f4579b9bedcefa1d4ac5daa5e4872' +'39bb1106c7df3a2958589b5ae5cdbbf9afd1b381951791761372424c28e4dd4e' +'308fa40e69de2c5cfa79e65edc326323bd80e26eb9da539d84ffeddf4e913017' +'ffd5fb98cc4f6edfdda8a2e807ce97351fca6bf2dfd9570e158da797fc6b1245' +'de468779316ec6438fde600328aa648c7904db0dc3c918535efd59e67d410013' +'120250a97af3be476df8dcac1472538c8a11d1ae9ab0624ddae8261b539695a8' +'eb2bee833918146282c2e9df02b3b021c5e95f0014d3eaa7df8da20ba3df7403' +'07d8dbc9dd529b04341bdd4dc047eafb6674f2413d54baa6450f9b7dce78ae53' +'ed7882c39f4074cc71d3498a4825b0e20ee895bc926419fda30ad8de1a2eaa43' +'35d5761e0005d8a583692a9c44517d956c9ae41da9c1cc69e05ce42d425e26fa' +'afe36a4cd2347c33c6c610b15966c1c4072d813a1b8a7ddcf611f3b8c0d08836' +'db37cb1c64fc1990e26da2cc1d7a7756d50c2059a24c5d0d29757275850ace4d' +'5394b03f78a25d6736171c792b384b6abdb20e80647cbf5220c55729eb9a2650' +'c4cb76c3d896e66391453173f30417f8646257c1d702ee5a3cb3e4980f3df000' ) @@ -124,24 +120,42 @@ prepare() { package() { + + # Install preliminary files install -d "$pkgdir/opt/$_appname" install -Dm644 "README" "$pkgdir/opt/$_appname/README" install -Dm755 "$_appname.sh" "$pkgdir/etc/profile.d/$_appname.sh" install -Dm755 "$_appname.csh" "$pkgdir/etc/profile.d/$_appname.csh" - # Make sure COCOS2D_DEBUG spans libcocos2d correctly: https://github.com/cocos2d/cocos2d-x/pull/17033 - patch -s "$srcdir"/$_appname-$pkgver/templates/cpp-template-default/CMakeLists.txt CMakeLists.patch + ## ===============PATCHES BEGIN======================= + + ## Performance tweaks + + ## Add CMake configuration flags to ease the configuratino of libcocos2d: + patch -s "$srcdir"/$_appname-$pkgver/templates/cpp-template-default/CMakeLists.txt CMakeLists.txt.patch - # Layer has been deprecated. Update the C++ templates: https://github.com/cocos2d/cocos2d-x/pull/17048 - patch -s "$srcdir"/$_appname-$pkgver/templates/cpp-template-default/Classes/HelloWorldScene.cpp HelloWorldScene.cpp.patch - patch -s "$srcdir"/$_appname-$pkgver/templates/cpp-template-default/Classes/HelloWorldScene.h HelloWorldScene.h.patch + # TODO: Also add the following options to the CMakeLists.txt patch for disabling/enabling libraries + # Uncomment to disable compiling/linking the following: + #set(USE_CHIPMUNK OFF CACHE BOOL "Use chipmunk for physics library") + #set(USE_BOX2D ON CACHE BOOL "Use box2d for physics library") + #set(USE_BULLET OFF CACHE BOOL "Use bullet for physics3d library") + #set(USE_RECAST OFF CACHE BOOL "Use Recast for navigation mesh") + #set(USE_WEBP OFF CACHE BOOL "Use WebP codec") + #set(BUILD_SHARED_LIBS OFF CACHE BOOL "Build shared libraries") + #set(DEBUG_MODE OFF CACHE BOOL "Debug or release?") + #set(BUILD_EXTENSIONS OFF CACHE BOOL "Build extension library") + #set(BUILD_EDITOR_SPINE OFF CACHE BOOL "Build editor support for spine") + #set(BUILD_EDITOR_COCOSTUDIO OFF CACHE BOOL "Build editor support for cocostudio") + #set(BUILD_EDITOR_COCOSBUILDER OFF CACHE BOOL "Build editor support for cocosbuilder") + #set(BUILD_BOX2D OFF CACHE BOOL "Build box2d external without using it for physics library") + #set(USE_PREBUILT_LIBS OFF CACHE BOOL "Use prebuilt libraries in external directory") + #set(USE_SOURCES_EXTERNAL OFF CACHE BOOL "Use sources in external directory (automatically ON when USE_PREBUILT_LIBS is)") - # Allow Chipmunk's kinematic bodies to be moved: https://github.com/cocos2d/cocos2d-x/pull/17033 - patch -s "$srcdir"/$_appname-$pkgver/cocos/physics/CCPhysicsBody.cpp CCPhysicsBody.patch + # POSSIBLE FUTURE TODO: There is a memory leak patch currently out for Labels. Stay tuned to see if it's affected: https://github.com/cocos2d/cocos2d-x/pull/17670 # Switch C++ multiline string literal to the STRINGIFY macro which uses less memory. See https://github.com/cocos2d/cocos2d-x/pull/16742 # TL;DR: For smoother development, using the C++ multiline string literal is convenient, however the STRINGIFY macro defined at ccShaders.cpp uses less memory. - patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_3D_Color.frag ccShader_3D_Color.frag.patch + patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_3D_Color.frag ccShader_3D_Color.frag.patch patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_3D_ColorNormal.frag ccShader_3D_ColorNormal.frag.patch patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_3D_ColorNormalTex.frag ccShader_3D_ColorNormalTex.frag.patch patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_3D_ColorTex.frag ccShader_3D_ColorTex.frag.patch @@ -157,40 +171,64 @@ package() { patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_CameraClear.vert ccShader_CameraClear.vert.patch patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_ETC1AS_PositionTextureColor.frag ccShader_ETC1AS_PositionTextureColor.frag.patch patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_ETC1AS_PositionTextureGray.frag ccShader_ETC1AS_PositionTextureGray.frag.patch - patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_Label_df.frag ccShader_Label_df.frag.patch + patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_Label.vert ccShader_Label.vert.patch + patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_Label_df.frag ccShader_Label_df.frag.patch patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_Label_df_glow.frag ccShader_Label_df_glow.frag.patch patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_Label_normal.frag ccShader_Label_normal.frag.patch patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_Label_outline.frag ccShader_Label_outline.frag.patch - patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_Label.vert ccShader_Label.vert.patch patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_PositionColor.frag ccShader_PositionColor.frag.patch + patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_PositionColor.vert ccShader_PositionColor.vert.patch patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_PositionColorLengthTexture.frag ccShader_PositionColorLengthTexture.frag.patch patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_PositionColorLengthTexture.vert ccShader_PositionColorLengthTexture.vert.patch patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_PositionColorTextureAsPointsize.vert ccShader_PositionColorTextureAsPointsize.vert.patch - patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_PositionColor.vert ccShader_PositionColor.vert.patch + patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_PositionTexture.frag ccShader_PositionTexture.frag.patch + patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_PositionTexture.vert ccShader_PositionTexture.vert.patch patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_PositionTextureA8Color.frag ccShader_PositionTextureA8Color.frag.patch patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_PositionTextureA8Color.vert ccShader_PositionTextureA8Color.vert.patch - patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_PositionTextureColorAlphaTest.frag ccShader_PositionTextureColorAlphaTest.frag.patch patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_PositionTextureColor.frag ccShader_PositionTextureColor.frag.patch + patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_PositionTextureColor.vert ccShader_PositionTextureColor.vert.patch + patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_PositionTextureColorAlphaTest.frag ccShader_PositionTextureColorAlphaTest.frag.patch patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_PositionTextureColor_noMVP.frag ccShader_PositionTextureColor_noMVP.frag.patch patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_PositionTextureColor_noMVP.vert ccShader_PositionTextureColor_noMVP.vert.patch - patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_PositionTextureColor.vert ccShader_PositionTextureColor.vert.patch - patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_PositionTexture.frag ccShader_PositionTexture.frag.patch patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_PositionTexture_uColor.frag ccShader_PositionTexture_uColor.frag.patch patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_PositionTexture_uColor.vert ccShader_PositionTexture_uColor.vert.patch - patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_PositionTexture.vert ccShader_PositionTexture.vert.patch patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_Position_uColor.frag ccShader_Position_uColor.frag.patch patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_Position_uColor.vert ccShader_Position_uColor.vert.patch - patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_UI_Gray.frag ccShader_UI_Gray.frag.patch + patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_UI_Gray.frag ccShader_UI_Gray.frag.patch + + # Engine tweaks that must be adjusted on a user basis -- must be enabled by the users. These change the behaviour of the engine in certain areas + + # Disable antialiasing globally for higher performance in general. + # Pixel art looks better with this disabled. + if [[ -n $COCOS2D_X_DISABLE_ANTIALIASING ]]; then + msg "Disabling Antialiasing globally..." + sed -e 's/_antialiasEnabled(true)/_antialiasEnabled(false)/g' -i "$srcdir"/$_appname-$pkgver/cocos/renderer/CCTexture2D.cpp + fi + + # Disabled Multi-Sample Anti-Aliasing (MSAA) for higher performance + if [[ -n $COCOS2D_X_DISABLE_MSAA ]]; then + msg "Disabling MSAA globally..." + # For Android + patch -s "$srcdir"/$_appname-$pkgver/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxActivity.java Cocos2dxActivity.java.patch - # Patch BugTests.cpp to avoid a non-bug crash. See https://github.com/cocos2d/cocos2d-x/pull/17125 - patch -s "$srcdir"/$_appname-$pkgver/tests/cpp-tests/Classes/BugsTest/BugsTest.cpp BugsTest.cpp.patch + # For Linux, Mac and Windows: + patch -s "$srcdir"/$_appname-$pkgver/cocos/platform/desktop/CCGLViewImpl-desktop.cpp CCGLViewImpl-desktop.cpp.patch - # (EXPERIMENTAL) Enable high variable precision globaly in the shaders: - # This can get rid of positioning and rendering artifacts but might affect performance on devices with a slow GPU. - # See: https://github.com/cocos2d/cocos2d-x/issues/17046 and https://github.com/cocos2d/cocos2d-x/issues/17099 - # Until a proper patch gets developed, a simple 'sed' can set every variable from a medium precision (mediump) one to a high precision (highp) variable - # Use at your own risk - #sed -i 's/mediump/highp/g' "$srcdir"/$_appname-$pkgver/cocos/renderer/* + #iOS -- Not really necessary. Cocos2D-X, according to the documentation, requires iOS 7+ which are fairly new devices and disabling MSAA on those devices might not even increase performance. See http://gamesfromwithin.com/trying-out-multisampling-on-ios + # There's some documentation here on working with iOS MSAA: https://developer.apple.com/library/content/documentation/3DDrawing/Conceptual/OpenGLES_ProgrammingGuide/WorkingwithEAGLContexts/WorkingwithEAGLContexts.html#//apple_ref/doc/uid/TP40008793-CH103-SW12 + # I might try implementing a patch for disabling MSAA on if I may need the performance boost. Leaving it on seems like the way to go for now. + fi + + if [[ -n $COCOS2D_X_EXPERIMENTAL_FEATURES ]]; then + warning "Enabling experimental features." + # (EXPERIMENTAL) Enable high variable precision globaly in the shaders: + # This can get rid of positioning and rendering artifacts but might affect performance on devices with a slow GPU. + # See: https://github.com/cocos2d/cocos2d-x/issues/17046 and https://github.com/cocos2d/cocos2d-x/issues/17099 + # Until a proper patch gets developed, a simple 'sed' can set every variable from a medium precision (mediump) one to a high precision (highp) variable + # Use at your own risk + warning "Changing \"mediump\" to \"highp\" in shaders..." + sed -i 's/mediump/highp/g' "$srcdir"/$_appname-$pkgver/cocos/renderer/* + fi # Necessary libfmod symbolic link mkdir -p "$pkgdir/usr/lib" |