Uses std::sort() for inserting the nodes.
This code is not final, but preliminary results show that std::sort() is 60% faster
Signed-off-by: Ricardo Quesada <ricardoquesada@gmail.com>
In many places `Dictionary` and `Array` are not being initialized. In fact `Dictionary` doesn't have the `init()` method creating potential leaks.
Also in objects like `Armature` and the new `LabelTTF`, the `Array` object is not being used a pointer. So it doesn't use the 2 phase initialization, creating potential leaks.
This patch fixes all those issues.
Signed-off-by: Ricardo Quesada <ricardoquesada@gmail.com>
Adds GL namespace. Deprecates the `ccGLFunctionName` functions. New functions are `GL::functionName`
Also, converts the class `DrawPrimitives` into a namespace
`Menu::STATE_XXX` -> `Menu::State::XXX`
Removes more Hungarian notation
Removes Configuration::Type <- I added it a few months ago, and it was not being used. It is safe to remove it
Transition::ORIENTATION_XXX -> Transition::Orientation::XXX
Image::FORMAT_XXX -> Image::Format::XXX
Image::_function() -> Image::function() // private methods should not start with '_'
DrawPrimitives::drawColor() -> DrawPrimitives::setDrawColor()
And fixes Premultiplied Alpha in PVR v3 images
And tests are updated with the new functions
and other best pracitces like:
capacity and "index" are ints and not unsigned int (google's recomendation).
It is easier to detect underflow bugs like this
plus other minor improvements
- Adds more `const` in getters
- Overriden methods have the `override` keyword
- Reorganizes the structure of the class:
# creators first, then constructor, destructors, init
# then overridden methods
# variables at the end
- removes Hungarian notation from parts of the code
- nodeToParentTransform -> getNodeToParentTransform() (the same for its friends)
- Deprecates the old methods
- adds 'consts' to those methods
- boundingBox() -> getBoundingBox()
- the new one is const
- Deprecates the old method.
- Adds overrides keywords in CCNodeRGBA and CCArmature
- AffineMatrix are mutables
Changes:
- creator (static) methods, and singleton methods (static) are always at the top of the class
- Constructors, destructros, and init methods comes next
- Then the instance methods for the class
- Then the overriden methods
- and finally the ivars
Also, overriden methos have the "override" context keyword
... instead of sharedXXX / purgeXXX.
They are more C++ friendly, and also easier to remember.
common files + Mac files + iOS files + tests/samples files were updated.
The old methods are deprecated now.