Commit Graph

174 Commits

Author SHA1 Message Date
Ricardo Quesada e402f35e7f BatchCommand API fixes
don't pass Texture Id.
Instead fetch it from the `TextureAtlas`
2014-01-21 11:13:21 -08:00
Ricardo Quesada 5fcbf42356 GlobalZOrder is used for render priority...
...and not vertexZ

Node::setGlobalZOrder() is used to change that.

Node::setZOrder() -> Node::setLocalZOrder();
2014-01-18 11:38:06 -08:00
Ricardo Quesada 069a4fb170 Renderer: Don't sort z=0 Commands
If Command has z==0, then those elements won't be sorted.
Only Z !=0 will be sorted, and it will use `sort` instead of `stable_sort`
for z!=0, since it is faster
2014-01-17 23:10:04 -08:00
Ricardo Quesada 8931d968c0 Renderer uses a float as a key
Instead of using a 64-bit int key with viewport, opaque and depth,
it only uses a 32-bit float with only the depth.
Saves time in:
 - No need to convert the 32-bit float into 24-bit int
 - keys are shorter
2014-01-17 16:08:29 -08:00
Ricardo Quesada feec6a1e8a Adds some Asserts in the renderer
Linux still has a bug, but I can't reproduce it all the time.
Hoping that these asserts will help me find it
2014-01-16 22:29:25 -08:00
Ricardo Quesada cfbceb0e22 Fixes compilation issues on Linux 2014-01-16 21:49:14 -08:00
Ricardo Quesada d0dbf34319 removes "include "cocos2d.h" from cocos2d files 2014-01-16 21:35:58 -08:00
Ricardo Quesada cb9761125b Renderer: When not using VAOs, call...
... glBufferData() to update the contents, and not glBufferSubData()
since the performance is better
2014-01-16 15:02:39 -08:00
Ricardo Quesada 3b20ad5ab7 More renderer optimizations 2014-01-15 19:10:40 -08:00
Ricardo Quesada 9388253606 SpriteBatchCommand and ParticleBatchCommand use the BatchCommand
BatchCommand is being used by SpriteBatchCommand and ParticlesBatchCommand

This improves performance in batches
2014-01-15 16:07:38 -08:00
Ricardo Quesada 65602a4574 Updates Xcode, Android and Linux project
with new BatchCommand
2014-01-15 16:06:47 -08:00
Ricardo Quesada f8dc8f0b38 Renderer performance fixes
QuadCommand no longer stores a copy of the quads.
Instead it just stores a reference and the MV matrix.
Later, the Renderer when it copies the Quads to the queue, it will
convert the Quads to world coordinates
2014-01-15 14:35:26 -08:00
Nite Luo a18788ff0a Fix artifects when VBO is full 2014-01-14 16:45:40 -08:00
Dhilan007 a1d8e8bdb1 fix compiling error cause by macro define on window platform. 2014-01-14 12:28:24 +08:00
Ricardo Quesada 9386866d56 cocos2d::log() moved to CCConsole
Unified console code since it is 90% similar to all platforms
2014-01-10 19:04:07 -08:00
Ricardo Quesada 1dc169b19f Camera is working again
Projection is passed in the shader.
Since P is in the shader, QuadCommand uses `Vec3Transform` instead of `Vec3TransformCoord` since it is faster.
2014-01-09 14:26:22 -08:00
Ricardo Quesada aa2168f66f RenderQuad with bigger size
It uses 18 bits for texture id
and 10 bits for shader id
This is a temporal fix
2014-01-06 23:41:01 -08:00
walzer 64af0de648 update copyrights for 2014, in cocos/2d/ folder 2014-01-07 11:25:07 +08:00
James Chen 8145bf903e texture listener was enabled only when the macro CC_ENABLE_CACHE_TEXTURE_DATA was enabled. 2013-12-31 11:02:01 +08:00
James Chen cf006df9ff closed #2865: Deprecates CCNotificationCenter, uses EventDispatcher instead. 2013-12-31 10:54:37 +08:00
minggo 0e9b43248c Merge pull request #4728 from dabingnn/develop_removeCommandPool
Develop remove command pool
2013-12-29 21:53:12 -08:00
James Chen b17117a1a1 More warning fixes. 2013-12-28 14:34:52 +08:00
minggo ec3b3ea012 Merge pull request #4696 from dumganhar/warning-fix
Some warning fixes on linux.
2013-12-27 01:56:47 -08:00
James Chen febc19ea8d Some warning fixes on linux. 2013-12-26 23:06:16 -08:00
Huabing.Xu 66e550e5a0 Merge branch 'develop' into develop_removeCommandPool
* develop: (33 commits)
  fix black screen when back to foreground  on android.
  Fix set FPS broken.
  Update CHANGELOG [ci skip]
  Update AUTHORS [ci skip]
  Update CCString.cpp
  [AUTO] : updating submodule reference to latest autogenerated bindings
  Updates Bindings-generator.
  Renames: IntValueMap —> ValueMapIntKey
  Restricts the element type for Vector<T> and Map<K, V>, it has to be `Object*` or `ObjectSubClass*`.
  Modify reader
  long --> ssize_t for TableView callback.
  Generates execute file in cocos root_dir/bin folder for HelloCpp.
  Add listview and pageview  reader
  [AUTO] : updating submodule reference to latest autogenerated bindings
  Modify actionnode
  [AUTO] : updating submodule reference to latest autogenerated bindings
  optimize loop
  fix LabelTestNew
  Compilation fixes after merge PR #4669 https://github.com/cocos2d/cocos2d-x/pull/4669
  Fix box2dView
  ...
2013-12-27 14:07:04 +08:00
Huabing.Xu 76d07fc76e remove empty interface releaseToCommandPool 2013-12-27 14:02:17 +08:00
Huabing.Xu 40af66a7bc remove commandPool in renderCommand 2013-12-27 13:51:11 +08:00
Dhilan007 f250d24766 fix black screen when back to foreground on android. 2013-12-27 11:56:56 +08:00
boyu0 a19d212f4f fix bug. 2013-12-26 22:00:52 +08:00
boyu0 6bc0a7066f change CustomCommand variable to class member. 2013-12-26 21:19:12 +08:00
boyu0 dec003477c delete ‘delete ptr’ and add CC_UNUSED_PARAM 2013-12-26 19:25:53 +08:00
boyu0 2fb0179293 change QuadCommand variable to class member. 2013-12-26 16:36:03 +08:00
boyu0 f878864794 Specialize GroupCommand and CustomCommand, change generateCommand to new. 2013-12-26 15:41:47 +08:00
Huabing.Xu b4c61d5a7c specialize RenderCommandPool<QuadCommand> 2013-12-26 14:44:21 +08:00
Huabing.Xu 9db599c0c9 remove class NewClippingNode 2013-12-24 14:10:54 +08:00
Huabing.Xu 24ac743a3c remove class NewSpriteBatchNode 2013-12-24 11:03:59 +08:00
Huabing.Xu 410cfb9ca4 move NewSpriteBatchNode feature function into SpriteBatchNode 2013-12-24 10:48:57 +08:00
Huabing.Xu 8d58e43ad2 remove Class NewSprite 2013-12-24 09:40:00 +08:00
Huabing.Xu 1dd2c1c20c remove NewTextureAtlas 2013-12-23 20:11:50 +08:00
Huabing.Xu bcaec978d3 remove NewRenderTexture Class 2013-12-23 18:04:04 +08:00
Huabing.Xu a7a50dffcc move begin(), end(),draw() to RenderTexture 2013-12-23 17:13:06 +08:00
Huabing.Xu fad585fbef move rendering callback to RenderTexture 2013-12-23 15:59:47 +08:00
Huabing.Xu b7c0d7a9e8 1. remove redundant code in NewRenderTexture 2. rename protected beginWithClear to _beginWithClear 2013-12-23 14:59:44 +08:00
James Chen e56a4a7c00 Merge pull request #4567 from dumganhar/for_each-gone
All std::for_each has gone. uses for(const auto& ...) instead.
2013-12-19 18:50:50 -08:00
James Chen 34382b4a8a More std::for_each —> for(const auto& …) 2013-12-20 09:54:50 +08:00
Huabing.Xu d51ad36613 Merge branch 'develop' into develop_gridNode
* develop: (67 commits)
  Adds const in ShaderTest2.h
  Skew works again!
  [AUTO] : updating submodule reference to latest autogenerated bindings
  [AUTO] : updating submodule reference to latest autogenerated bindings
  Reverts submodule.
  Updates submodule of bindings-generator.
  Adds `std::for_each` test in invocation
  Reverts bindings-generator.
  fixed not render
  iterator in Sprite fixes
  update vs project for removes unneeded files
  getNodeToParentTransform fixes
  Node cleanup
  [AUTO] : updating submodule reference to latest autogenerated bindings
  Improves SpriteTest
  [AUTO] : updating submodule reference to latest autogenerated bindings
  Android and Linux fixes
  removes `using namespace std` from header file
  Removes unneeded files
  change play arguments
  ...

Conflicts:
	cocos/2d/CCNode.cpp
	samples/Cpp/TestCpp/Classes/ExtensionsTest/CocoStudioArmatureTest/ArmatureScene.cpp
2013-12-19 17:20:22 +08:00
Huabing.Xu 911e5b0bac fix bug : group command nesting will cause infinite loop 2013-12-19 16:55:22 +08:00
boyu0 c6cc77e75b Merge branch 'develop' of https://github.com/cocos2d/cocos2d-x into edit_hungarian_notation 2013-12-19 09:45:21 +08:00
Ricardo Quesada 7616edd9f3 Improves SpriteTest
Improves SpriteTest.
It is easier to see if Sprite works as SpriteBatchNode (and vice-versa).

Needed for the new renderer.

Also adds `const` to title() and subtitle()
2013-12-18 13:52:10 -08:00
Ricardo Quesada 903844c7bd Removes unneeded files
New functionality is merged into the 'official' classes
2013-12-18 11:44:45 -08:00
boyu0 082c3d274a Merge branch 'develop' of https://github.com/cocos2d/cocos2d-x into edit_hungarian_notation 2013-12-18 18:05:30 +08:00
boyu0 e07c4ffec1 Change NULL to nullptr, edit hungarian notation. 2013-12-18 17:47:20 +08:00
James Chen 581ba49399 Diables CC_ENABLE_CACHE_TEXTURE_DATA in Renderer::initGLView since Renderer is not inherited from Object now. CCNotificationCenter will not be able to work.
Signed-off-by: James Chen <jianhua.chen@cocos2d-x.org>
2013-12-18 15:41:57 +08:00
Dhilan007 2d9b7ee4fc update vs project for new renderer and fix compiling fail on vs. 2013-12-18 14:36:49 +08:00
Ricardo Quesada 156f69c528 Renderer is subclass of Object again... needed for Android.
ouch
2013-12-17 19:06:22 -08:00
Ricardo Quesada 33c4f891a0 Adds 'CC' to renderer files 2013-12-17 18:41:09 -08:00
Ricardo Quesada f369a8eec3 Adds correct License to Renderer files 2013-12-17 18:12:15 -08:00
Ricardo Quesada 3f3071fbb6 Cleanup RenderCommand code
RenderCommand code is cleaner
2013-12-17 18:02:11 -08:00
Ricardo Quesada d6be81b7a8 The Renderer is not a singleton
In order to access, you have to get it from the Director

`Director::getInstance()->getRenderer()`
2013-12-17 17:50:17 -08:00
Ricardo Quesada 441cb6c282 fixes warnings in QuadCommand 2013-12-17 10:35:15 -08:00
James Chen 8f5970ef90 issue #2171: Don’t ‘using namespace std;’ in header file. 2013-12-17 15:32:24 +08:00
James Chen 4e01769cd5 issue #2171: [New Renderer] Fixing compilation errors for Android. 2013-12-17 14:18:41 +08:00
Ricardo Quesada 0222c6544e Migration to Mat4x4
Armature not migrated yet

Signed-off-by: Ricardo Quesada <ricardoquesada@gmail.com>
2013-12-09 17:32:51 -08:00
Ricardo Quesada 8df96b1a6e Layercolor uses the new API 2013-12-06 17:59:34 -08:00
Ricardo Quesada ba2f65c6b2 Merge remote-tracking branch 'darkdukey/newRenderer' into newRenderer 2013-12-06 17:42:48 -08:00
Ricardo Quesada ee0ef6bf46 ProgressTimer works OK
Adds _modelViewTransform as  ivar of Node (temporary fix)
2013-12-06 17:42:16 -08:00
Nite Luo 94255a9d52 Fix culling 2013-12-06 14:59:06 -08:00
Ricardo Quesada 439adafbcd Merge remote-tracking branch 'darkdukey/newRenderer' into newRenderer 2013-12-06 11:57:19 -08:00
Ricardo Quesada 745541979b Particles working again.
Paticle Batch working too: increased VBO_SIE to 10500
2013-12-06 11:51:17 -08:00
Nite Luo 3e0bee706e Fix a hack in CCLabelAtlas for vertice color, add TODO for quad command 2013-12-06 11:41:24 -08:00
Ricardo Quesada 97fb43b8d7 Merge remote-tracking branch 'darkdukey/newRenderer' into newRenderer
Conflicts:
	build/cocos2d_libs.xcodeproj/project.pbxproj
2013-12-06 11:19:12 -08:00
Ricardo Quesada 81b06f06a9 Merge branch 'develop' into newRenderer
Conflicts:
	cocos/2d/CCAtlasNode.h
2013-12-05 22:24:41 -08:00
Ricardo Quesada e699a3b765 Uses MV in Quad Command 2013-12-05 19:04:01 -08:00
Nite Luo 42de943662 Fix Bug for Sprite performance test 2013-12-05 14:25:45 -08:00
Nite Luo e3fc789070 Merge branch 'newRenderer' of github.com:darkdukey/cocos2d-x into newRenderer 2013-12-05 12:05:44 -08:00
darkdukey 5f902d95b3 Merge pull request #5 from dabingnn/newRendererParticleSystem
New renderer particle system
2013-12-05 12:05:18 -08:00
Ricardo Quesada f68dcd9969 Merge branch 'develop' into newRenderer
Conflicts:
	build/cocos2d_libs.xcodeproj/project.pbxproj
	samples/Cpp/TestCpp/Classes/tests.h
2013-12-05 11:47:46 -08:00
Nite Luo 9b0e0d2116 Fix a bug with auto batching logic 2013-12-04 19:05:17 -08:00
Huabing.Xu e6823875d5 change VBO_SIZE to a big number to avoid crash temporarily 2013-12-05 10:20:54 +08:00
Nite Luo e316ac779b Sprite culling now using vertices directly to avoid calculation on transform 2013-12-04 17:41:18 -08:00
Nite Luo a98714f6a5 support device without VAO 2013-12-04 17:02:02 -08:00
Nite Luo 143df8af7d Fix RenderTexture after merging commandpool 2013-12-04 15:13:13 -08:00
darkdukey 4b7d0c290a Merge pull request #4 from dabingnn/newRendererCommandPool
New renderer command pool
2013-12-04 15:08:17 -08:00
Nite Luo f423166471 Fix bugs with RenderTexture with NewRender 2013-12-04 15:06:28 -08:00
Nite Luo ae551ae294 Convert RenderTexture to use RenderCommands 2013-12-04 11:54:57 -08:00
Huabing.Xu cd562676f5 use block allocation for commands 2013-12-04 10:39:34 +08:00
Huabing.Xu 757f1abc7f 1. protected render command construction/destruction function.
2. use renderCommandPool<T> to allocate and deallocate command
3. use releaseToCommandPool interface to push command back to pool
2013-12-03 14:08:47 +08:00
Huabing.Xu 44f12ce8e4 add RenderCommandPool head file 2013-12-03 11:52:51 +08:00
Huabing.Xu d4b9e0538b refactor: group command use a non parameter constructor and a reentrant init function 2013-12-03 11:24:03 +08:00
Huabing.Xu d33f05b3f0 refactor: custom command use a non parameter constructor and a reentrant init function 2013-12-03 11:17:21 +08:00
Huabing.Xu ace75eebce refactor: quad command use a non parameter constructor and a reentrant init function 2013-12-03 11:11:46 +08:00
Nite Luo 6862d59bb2 Add NewRenderTexture to convert RenderTexture to use new renderer 2013-12-02 17:23:52 -08:00
Nite Luo 8801f508eb Partcle system use the new renderer 2013-12-02 12:13:05 -08:00
Nite Luo fbadb3329a Merge branch 'develop' into newRenderer
Conflicts:
	build/cocos2d_libs.xcodeproj/project.pbxproj
2013-12-02 10:55:31 -08:00
Huabing.Xu 80da1dac3f add Frustum, AABB, ViewTransform 2013-11-27 10:34:30 +08:00
Nite Luo b67ec6618f Finish converting LayerColor start working on particle system 2013-11-22 17:14:24 -08:00
Nite Luo b02af0cbfe Clean up renderer code 2013-11-22 10:24:52 -08:00
Nite Luo 43941bcbe0 Only init render after GLview has been initialized 2013-11-21 16:36:19 -08:00
Nite Luo db52698b26 Fix the crash on ios 7 2013-11-20 20:39:32 -08:00
Nite Luo 0e51504ee6 Use stack to manage current RenderGroup 2013-11-20 11:05:01 -08:00