Commit Graph

2067 Commits

Author SHA1 Message Date
pyrosphere 1667a5c444 Toggle between windowed/fullscreen on desktop (#16762)
* GLViewImpl methods for desktop window management - toggle between fullscreen/windowed

* Window management tests (mac)

* Added window management tests to Win32 and Linux

* Added const keyword. Removed platform macros.
2016-10-31 14:02:02 +08:00
James Chen cc1b7808f0 fixed #16735: [native] The behavior of (setRotation + setSkewX) is wrong (#16736)
* fixed #16735: [native] The behavior of (setRotation + setSkewX) is wrong.
Since I removed some logic, this patch may also improve a little bit performance.

* Adds test case for issue #16735
2016-10-31 10:29:04 +08:00
Ricardo Quesada e0809d869c Sprite::capInsets -> Sprite::centerRect (#16770)
* Sprite::capInsets -> Sprite::centerRect

as requested by @minggo

* fixes flip issues in Sprite with slice 9
2016-10-29 17:52:33 -07:00
pandamicro e4170a7b02 Improve JS bindings (#16751)
* Fix tests for v3.12 web

* Improve scheduler wrapper

* Update web engine ref

* Fix leak: js_remove_object_reference can not remove non binding objects

* Fix ScriptingCore::evalString

* Add missed `__cppCreated` for JS create objects

* Fix manifest path issue
2016-10-28 09:29:56 +08:00
Ricardo Quesada 323ea7c0d4 Sprite scale9 (#16702)
* Adds slice9 support for Sprite.

how to use it:

// points coords
sprite->setCenterRect(Rect(x,y,w,h));

// normalized coords
sprite->setCenterRectNormalized(Rect(x,y,w,h));
starts scale9sprite in sprite

more slice 9 changes

sprite 9 slice works?

kind of works

correct anchor point

slice 9 works, at least with non-rotated atlases

streched works ok

better Y invert code.

cleaner, compatible with the previous code

yay, scaling workings...

need a better api now

sets scale correctly

yay! works as expected!

more fixes and tests

better test for box

setContentSize() changes size in non-9-slice mode sprites as well

setCenterRect() -> setCenterRectNormalized()

yet another test

adds setPositionNormalized()

adds setCenterRect() tests

remove devel team from xcode

tests: add one more tests

fun test!

improved test

yet another test for slice 9

* fixes anchorPoint issues

* adds documentation

* fix: using top-left coordinate for setRect

* sprite: fixes related to scale9 and tiled

* Sprite: slice 9 fixes

works Ok with rotated frames
uses `setCapInsets` instead of `setCenterRect` to be more familiar
with `UIScale9Sprite`

* fixes js and lua bindings for Autopolygon
2016-10-26 18:45:40 -07:00
Paul Gardiner 6b27f014fc Correct the Skybox fov (#16655)
* Remove undrawn quads from the skybox mesh

CCSkybox had been implemented using a combination of two
inconsistent techniques. The rendering was being achieved via use of
the vertex shader's inherent support for cubemaps. That technique requires
only a single screen-covering quad, but the implemtation defined a cube.
Defining a cube mesh would be appropriate if one were simply mapping the
cubemap's 6 textures to faces, but is unnecessary if using the shader's
cubemap feature.

Not only was the use of a cube mesh unnecessary, but the particular way
the cube was defined and used meant that only one face would ever
contribute to the rendering. One of the other faces would always be culled
and the other four would be viewed edge on, mapping the the infinitesimally
thin lines defining the edges of the screen.

This commit simply removes the never-rendered faces, and adds comments
explaining the technique.

* Within test code, remove setScale calls applied to skyboxes.

A Skybox is defined in such a way that it's position, rotation and
scaling has no effect on it's rendering, so setScale has no effect.
The calls are removed from test code to avoid confusing anyone using
it as a template for their own programs.

* Make the Skybox correctly account for the camera's fov

The Skybox does not use the model/view and projection matricies. Instead
a single quad that maps exactly to the screen is rendered and the camera's
world matrix is passed into a shader that renders using cubemap lookups.
The way that works hardwires the fov to 90deg in both the horizontal and
vertical. That shows up particularly badly when the camera is pointed
directly downwards and rotated: the image deforms as it rotates.

This commit corrects the problem by using scaling factors from the
camera's projection matrix to prescale the matrix passed into the shader.
2016-10-17 13:46:26 +08:00
James Chen ae439ff8dc Adds test case for showing border of TTF label, it will be easier to find out wrong offset of Label. 2016-10-14 17:14:15 +08:00
Ricardo Quesada e4be87a059 Adds Spine binary-file format support (#16629)
* Adds Spine binary-file format support

fixes issue #10438

* ignore SkeletonBinary.c from linter

* add another file to the exclude list

* lua manual fixes for spine

* SkeletonBinary.c and not .cpp

* missing files for win8.1

* don't compile it as crt

* new updates from spine
2016-10-11 10:56:14 -07:00
子龙山人 c3bbbb6cb2 Refactoring ui related code and fix label atlas and BMFont rendering issue with ETC1 texture format (#16615)
* refactoring ui related code

* fix label bmfont/charmap etc drawing

* make code more robust
2016-09-30 09:42:21 +08:00
Steve Tranby b22efc9115 Features: add events for window resize, focus, and unfocus (#16578)
* add events for window resize, focus, and unfocus

* fix typo
2016-09-20 20:32:33 -07:00
Ricardo Quesada 5f4fb66f61 fix: staggered hex maps returns correct tile (#16552)
* fix: staggered hex maps returns correct tile

order was fixed in the array that contains the GIDs.

fixes Github issue #16512

* fix: add fix validation code for issue #16512
2016-09-13 21:47:36 -07:00
mogemimi 2b9ac2c950 Remove redundant semicolons (#16558) 2016-09-12 09:45:34 +08:00
James Chen 5bfd110424 Fixes jsval_to_std_string could not convert number to string. (#16504)
Don't use deprecated method in ActionsProgressTest.
2016-09-05 10:02:05 +08:00
Ricardo Quesada c32000250c Issue 16471 (#16489)
* fix: Label updateColor() and underline color work as expected

fixes Github issue #15214 correctly. underline uses _displayColor
and not _textColorF. _textColorF is only for the text.
This also emulates the SystemFont underline behavior

fixes Github issue #16471

* docs: added more internal doc for issue_16471
2016-09-01 16:59:40 +08:00
James Chen 64c62d37c2 fixed #16490: [android, audio] AudioEngine::stop() triggers 'finished' callback (#16491) 2016-09-01 16:06:29 +08:00
James Chen 01e67f6203 fixed #16477: [android, audio] Deadlock if preload the same file more than 3 times in preload callback. (#16478)
And added test case.
2016-09-01 11:46:27 +08:00
James Chen 35f937cd40 AudioMixerController::initTrack should not setState for track. Otherwise, it may trigger Track state mess-up. (#16476)
* Warning fixes in AudioDecoder.cpp

* AudioPauseResumeAfterPlay test case should start in onEnter.
And add a loop to pause & resume many times.

* AudioMixerController::initTrack should not setState for track. Otherwise, it may trigger Track state mess-up.
2016-09-01 11:43:37 +08:00
Ricardo Quesada e57c30c83b fix: Label updateColor() and underline color work as expected (#16486)
fixes Github issue #15214 correctly. underline uses _displayColor
and not _textColorF. _textColorF is only for the text.
This also emulates the SystemFont underline behavior

fixes Github issue #16471
2016-08-31 20:20:13 -07:00
minggo 04fd2b16b2 merge v3.13 back to v3 2016-08-29 11:57:13 +08:00
Ricardo Quesada f174dd1141 fix: improves test for issue #16155 (#16418)
improves test for github issue #16155
2016-08-23 09:47:55 +08:00
James Chen 727c501285 Fixes crash while invoking pause&resume right after play2d. (#16406) 2016-08-22 09:43:06 +08:00
Ricardo Quesada 016e7b0dfc fix: release texture in RenderState (#16396)
memory leak fixed in RenderState

fixes github issue #16155
2016-08-19 00:22:57 -07:00
charlesstlaurent b1a64ae730 new actions ResizeBy and ResizeTo (#16275)
* new actions ResizeBy and ResizeTo

* FDP-5580-ResizeBy and ResizeTo fix and Test cpp : added a scale exemple in the test cpp to compare with our new resize + fix

* FDP-5580: actions ResizeBy and ResizeTo : changed some functions visibility
2016-08-16 16:55:31 +08:00
Ricardo Quesada 3bc662ea7b fix: not resize textureatlas multiple times on Label::create() (#16358)
since we know the size before allocating it, just reserve
the needed capacity once.

fixes github issue #16293
2016-08-13 09:38:42 -07:00
Ricardo Quesada 3d75750728 resets bindBuffer after using it (#16342)
fixes github issue #14711
2016-08-11 08:32:09 -07:00
James Chen 89baddceda fixes compile error for win32 (#16351) 2016-08-11 15:54:51 +08:00
Ricardo Quesada f7464f8de5 fix: TriangleCommands with custom uniforms can be batched (#16329)
* fix: TriangleCommands with custom uniforms can be batched

TriangleCommands with custom uniforms can be batched together.

This improves the performance when using custom uniforms without
adding any penalties when not using them

Github issue #16224

* better tests
2016-08-07 14:51:02 -07:00
Ricardo Quesada a58323a388 Adds more info regarding bug 15776 (#16315)
Related to github issue #15776
2016-08-05 14:04:39 +08:00
Ricardo Quesada 59a646341c adds more info for bug #15776 (#16316)
related to github issue #15776

This is a PR for v3.13 branch
2016-08-05 14:04:26 +08:00
James Chen b135d512d2 Update copyright to 2016. (#16311) 2016-08-05 09:42:15 +08:00
子龙山人 6eaf15a2c2 fix pageview turning event (#16299) 2016-08-04 09:51:54 +08:00
minggo efc6da8439 use correct file (#16300) 2016-08-03 15:13:04 +08:00
Ricardo Quesada 2945968614 Upgrades to Spine v3.4 (#16242)
* Upgrades to Spine v3.4

Github issue #16115

* compiles and works on windows

tested on:

* win32
* win10
* win8.1

* include-linter: don't test spine files

we need them unmodified

* spine bindings fixes

also, doesn't use goblins-ffd. instead it uses goblins.
goblins-ffd is no longer present in spine v3.4
2016-07-28 07:25:50 -07:00
minggo 30118aff6b Merge pull request #16226 from dumganhar/fix/iss16192-smallaudio-crash
fixed #16192: Crash while decoding small MP3 file on Android.
2016-07-27 15:39:57 +08:00
Ricardo Quesada 4e278183ad Merge pull request #16122 from ricardoquesada/issue_16100
testcase: add test case for issue #16100
2016-07-26 23:21:25 -07:00
James Chen 8eb30769a1 Adds test case. 2016-07-27 14:00:34 +08:00
Ricardo Quesada b336aa3219 testcase: add test case for issue #16100
delays camera creation

fix issue #16100
2016-07-26 19:03:54 -07:00
halx99 bf996c5bac Add ETC1 builtin alpha support. (#16118)
* Add ETC1 builtin alpha support.

* Rename setETC1AlphaFileEndix to setETC1AlphaFileSuffix

* Check whether etc1 alpha suffix is empty

* fix Code ident & Add etc1 alpha test case to SpriteTest.

* Remove unused ETC1AA shader programs

* Fix all review issues and endl issues

* Add a new TriangleCommand::init() with Texture2D* instead of GLuint textureID

* #fix issues
2016-07-25 17:31:54 +08:00
Ricardo Quesada 2abd178e96 Merge pull request #16180 from ricardoquesada/issue_16113
test case for issue #16113
2016-07-21 10:53:38 -07:00
James Chen bb004c5e22 [audio] Fixes some issues while stop/uncache right after play/preload on OSX/iOS platform. (#16147)
* [audio] Fixes some issues while stop/uncache right after play/preload on OSX/iOS platform.

* Better state control in AudioCache.

* Adds State enum class which contains INITIAL, LOADING, READY, FAILED states.
* AudioPlayer::destroy should check AudioCache::_isAudioLoaded flag, otherwise, app will freeze in cpp-tests/NewAudioEngineTest/6:Test invalid audio file.

* Should check whether state is INITIAL in the destructor of AudioCache.

* Adds test case for switching play state frequently.

* Skips invoking reading data callback if cache's state is INITIAL.

* Variables initialization for AudioCache class and fixes protential missing delete AL buffers.
2016-07-21 14:57:59 +08:00
Ricardo Quesada aff6e7852b test case for issue #16113 2016-07-20 19:45:52 -07:00
Ricardo Quesada b3218c1e58 fix: stagger tilemaps hexa works as expected
Github issue #16105
2016-07-19 22:55:05 -07:00
mogemimi 5bd2d74078 Fix spelling for `getPolygonCenter` function 2016-07-19 08:24:22 +09:00
James Chen 15ef80e27d [big refactoring] Audio latency fix for Android. Support to preload effects on Android now. (#15875)
* Audio latency fix for Android. Support preload effects on Android now.

Squashed commits:
[b6d80fe] log fix
[a0a918e] Fixes assetFd didn't be released while PcmData is returned from cache.
[4b956ba] Potential crash fix for PcmAudioPlayer while pause / resume.
[398ab8c] Updates LOG_TAG position in AudioEngine-inl.cpp
[e3634e7] include stdlib.h for posix_memalign
[9004074] fixes setVolume logical error.
[c96df46] Don't use another thread for mixing, enqueue is in a seperated thread, therefore doing mixing in another thread will waste more time.
[0a4c1a8] Adds setLoop, setVolume, setPostion support for Track
[c35fb20] Fixed include.
[cdd9d32] Do mixing by ourself. (TO BE POLISHED)
[6447025] µ -> u since µ could not be shown on some android devices.
[97be0c6] Don't send a silence clip.
[c1607ed] Make linter.py happy.
[0898b54] Puts enqueue & SetPlayState in PcmAudioPlayer::play to thread pool.
[b79fc01] Adds getDuration, getPosition support for PcmAudioPlayer
[80fa2ab] minor fix of the code position of resetting state to State::INITIALIZED
[d9c62f1] underrun fix for PcmAudioPlayer.
[9c2212a] UrlAudioPlayer, playOverMutex should be static, and should be used in update method.
[1519d2e] static variables
[19da936] _pcmAudioPlayer Null pointer check in AudioPlayerProvider.
[e6b0d14] Updates audio performance test.
[fc01dd4] Registers foreground & background event in AudioEngine-inl.cpp(android), the callback should invoke `provider`'s pause & resume method.
[e00a886] TBD: Pause & resume support for PcmAudioPlayerPool.
Since OpenSLES audio resources are expensive and device shared, we should delete all unused PcmAudioPlayers in pool while pause and re-create them while resume.
But this commit isn't finished yet, I don't find a better way to register pause&resume event in AudioEngine module.
[9e42ea3] Interleave mono audio to stereo audio. PcmAudioPlayerPool only contains PcmAudioPlayers with 2 channels.
[3f18d05] Adds a strategy for checking small size of different file formats.
[753ff49] Adds performance test for AudioEngine.
[09d3045] Releases an extra PcmAudioPlayer for UrlAudioPlayer while allocating PcmAudioPlayer fails.
[9dd4477] Using std::move for PcmData move constructor & move assignment.
[6ca3bcb] some fixes:
1) new -> new (std::nothrow)
2) break if allocate PcmAudioPlayer fails
3) renames 'initForPlayPcmData' to 'init'
4) PcmAudioPlayer destructor deadlock if 'init' failed
[54675b6] include path fix.
[a1903ca] More refactorings.
[19b9498] Makes linter.py happy. :)
[923c530] Fixes:
1) Avoid getFileInfo to be invoked twice
2) A critical bug fix for UrlAudioPlayer and adds detailed comments
3) __clang__ compiler option fix for AudioResamplerSinc.cpp.
[5ec4faf] minor fix.
[faaa0f3] output a log in the destructor of UrlAudioPlayer.
[9c20355] NewAudioEngineTest,TestControll crash fix.
[f114464] fixes an unused import.
[1dc5dab] Better algorithm for allocating PcmAudioPlayer.
[331a213] minor fix.
[e54084a] null -> nullptr
[f9a0389] Support uncache.
[89a364f] Removes unused update, and TODO uncache functionality.
[1732bf9] Supports AudioEngineImpl::setFinishCallback for android.
[43d1596] UrlAudioPlayer::stop fix.
[e2ee941] Test case fix in NewAudioEngineTest/AudioIssue11143Test
[5c5ba01] More fixes for making cpp-tests/New Audio Engine Test happy.
[8b554a3] Adds log while remove player from map.
[ed71322] If original file is larger than 30k bytes, consider it's a large audio file.
[fb1845a] Updates project.properties
[6f3839f] minor log output fix in AudioEngine-inl.cpp
[c68bc6c] Don't resample if the sample rate of the decoded pcm data matchs the device's.
[43ca45f] PcmAudioPlayers also need to be removed while they play over, but should not be deleted since their lifecycle is managed by PcmAudioPlayerPool.
[f5e63c9] Audio latency fix for Android. Support preload effects on Android now.

* Supports to loading audio files asynchronously.

* Crash fix for stop audio right after play2d.

* Minor fix for logic in AudioMixerController.cpp

* Adds missing files (CCThreadPool.h/.cpp).

* Minor fix for including.

* Minor fix for missing include <functional> in Track.h

* update license information in audio.h

* Don't use std::future/std::promise anymore since ndk counldn't support it well in armeabi arch.

* isSmallFile postion updated, fixes large audio file goto the checking logic of cache.

* std::atomic<int> isn't supported by ndk-r10e while compiling with `armeabi` arch, using a int with a mutex instead.

* fixes __isnanf & posix_memalign doesn't exist on low api (<=16) devices.

* namespace updated: cocos2d -> cocos2d::experimental

* Removes commented code in AudioMixerController.h/.cpp

* Removes unused code again, and fixes a memory leak of `Track` instance.

* Oops, namespace changed.

* Only outputs log in debug mode.

* Uses ALOGV for outputing logs in AudioEngine-inl.cpp

* const PcmData& ->  PcmData for Track

* Fixes a protential crash in NewAudioEngineTest

* Adds `COCOS` prefix in header #ifndef COCOS_BALABALA #define COCOS_BALABALA

* Uses _ prefix for cocos code style instead of `m` prefix.

* Deletes AudioResamplerSinc related files.

* Bug fix from @minggo's reply on github.

* Don't need to invoke pause after in UrlAudioPlayer::prepare.

* Updates ThreadPool class, uses enum class and adds const keyword.
2016-07-18 10:22:40 +08:00
Ricardo Quesada 1563d14447 Squashed commit of the following:
commit c8349caeca6ff5ebacf497eaa986e71d5f1c2c0d
Author: Ricardo Quesada <ricardoquesada@gmail.com>
Date:   Thu Jul 14 11:19:50 2016 -0700

    fix: works with odd sized maps

commit da4cf8bc19c9cdab148d60e03a25ee9cc4292b66
Author: zhangbin <zhangbin@cocos2d-x.org>
Date:   Wed Jul 13 13:45:57 2016 +0800

    Add test case.
2016-07-14 11:21:24 -07:00
minggo 2ca1760b78 Merge pull request #16079 from minggo/use-std_srand
use std::srand() instead
2016-07-11 12:01:38 +08:00
minggo a146f3eec7 use std::srand() instead 2016-07-11 11:17:28 +08:00
Ricardo Quesada 995868c62e fix: Text::create() does not crash on mac/ios
...on invalid unicode.

fixes issue #16073
2016-07-08 16:59:44 -07:00
minggo 8d8c295ff0 Merge pull request #16062 from minggo/fileutils-issue
fix bug that FileUtils::removeDirectory() can not work on all platforms except iOS and Mac
2016-07-08 14:54:25 +08:00
Ricardo Quesada 7727c2eb6f Merge pull request #16058 from ricardoquesada/issue_11942
test: add test case for Github issue #11942
2016-07-07 11:51:47 -07:00