Tags: vipsbpig/cpgf
Tags
2013-07-26 version 1.5.6 Added Mozilla SpiderMonkey JavaScript binding. Only tested on Windows with VC. Added GScriptValue to represent values in script binding. Enhanced fundamental type handling in script binding. Now the overloaded function with bool, integer, real (float, double) can be selected correctly. Upgraded thirdparty library jsoncpp to 0.6.0 rc2 from 0.5.0. The new version suppor 8000 ts int64. The library is used in the serialization library. Fixed a memory leak in script runner. Fixed a compile error in CMake file when some third party libraries are not available. Fixed a compile error when compiling in VC in Win64 mode. Fixed a compile error when /Zc:wchar_t- is set in VC. Fixed a gcc 4.7.2 warning when deleting object which lacks of virtual destructor. Fixed a compiler error in rapidxml in gcc 4.7.2. Backward incompatible changes: GScriptObject::gainScriptFunction was renamed to getScriptFunction, and the return value was changed to GScriptValue. GScriptObject::createScriptObject result type was changed to GScriptValue, which stores an interface IScriptObject. In GScriptObject, the function bindXXX (such as bindClass) and getXXX (such as getClass) are now deprecated. They will be removed in the future. Use GScriptObject::getValue and GScriptObject::setValue instead. Removed file gfunctionextractor.h and function extractFunction, use gselectfunctionbyarity.h and selectFunctionByArity instead. git-svn-id: https://subversion.assembla.com/svn/kbasm/cpgf/trunk@771 5ea4cdcf-77fc-412b-903d-47c6f9a32d48
2013-05-05 version 1.5.5 Added tweening and timeline library. Added generic property accessors, getter and setter. Refactored meta property to reuse generic property accessors. Fixed a bug that using function (not pointer) as property accessor may cause wrong address crash in VC. Fixed a bug that using policy GMetaRuleExplicitThis on property setter may cause wrong argument being selected. Fixed a compile error in gstdint.h in VC 2012. git-svn-id: https://subversion.assembla.com/svn/kbasm/cpgf/trunk@698 5ea4cdcf-77fc-412b-903d-47c6f9a32d48
2013-02-23 version 1.5.4 Improved property supporting in serialization. Now the serialization library can handle properties with getter and setter functions properly. Added including header <cstddef> to gcontainer.h to avoid not finding ptrdiff_t error on some system. git-svn-id: https://subversion.assembla.com/svn/kbasm/cpgf/trunk@668 5ea4cdcf-77fc-412b-903d-47c6f9a32d48
2012-12-09 version 1.5.3 Python script binding now supports C++ operator overloading. Metagen tool can put template instantiations in separated source file. Now meta data for Irrlicht 3D engine supports Irrlicht 1.8. git-svn-id: https://subversion.assembla.com/svn/kbasm/cpgf/trunk@663 5ea4cdcf-77fc-412b-903d-47c6f9a32d48
2012-11-24 version 1.5.2 Added meta data for Irrlicht 3D engine. Now we can use Irrlicht in Lua, JavaScript and Python. 18 samples in Irrlicht were converted to Lua, JavaScript and Python. Added function "import" in script binding core service to load libraries at runtime from within script. Added GMetaObjectArray to use C++ object array in script. Added GMetaDebug to ease debugging script. Now script can set break point (int 3) and trace messages. Added GMetaCore to provide core functions in script. cloneClass was moved to GMetaCore. A new function "cast" was added to cast object from script. To use "cast", RTTI must be enabled in the meta data. Improved reflecting for variadic functions, now suppport non-variadic parameters. E.g, int myVariadicFunc(int a, const char * b, GMetaVariadicParam * v); Now dotted nested namespace can be passed to createScriptObject. E.g, createScriptObject("a.b.c"), then script can use the script object a.b.c Added function holdObject to GScriptObject and IScriptObject to hold meta data which is created dynamically. Added meta traits to manage script object lifetime. Now script engine can handle cpgf interfaces correctly. Metagen can reflect bitfield as property by adding getter and setter functions. Metagen can wrap C++ operator overloading with named function, which is usable by script. Metagen can split large source file to smaller files. Now fromVariant<GVariant>(variant) will return the variant directly. Changed the utility functions in gmetaapiutil.h from template to non-template, to keep the API minimal. Moved and renamed gbytearray.h/cpp to metautility/gmetabytearray.h/cpp, and renamed class GByteArray and GMetaByteArray. Renamed byte array functions getMemory/getCurrentMemory to getPointer/getCurrentPointer. Now when passing to method parameter, or setting to field, object pointer can be casted correctly according to the class hierarchy. This is useful in multiple inheritance. Removed function gainScriptObject from GScriptObject and IScriptObject. Now createScriptObject can return the existing script object. Improved meta traits. Now in reflection, the base meta class can be resolved correctly even it is reflected later than derived classes. Now converting an C++ object to GVariant won't trigger any operator & overloading. Fixed a bug that in script, assign an object with another variable with same instance may cause the object be freed. Fixed a bug that in Python binding, None value was not handled when passing from script to C++ and it was converted to wrong GVariant. Fixed a bug that in V8 Javascript binding, there is null pointer crash if the object constructor returns NULL. Now an exception is raised instead of crash. Fixed a bug that function isInheritedFrom in GMetaClass and IMetaClass works wrong. Fixed a bug that if a GVariant holding a reference to fundamental, when casting it to a fundamental in different type size, the result is wrong. Fixed a bug that script binding doesn't distinguish between functions which are only different in constness. git-svn-id: https://subversion.assembla.com/svn/kbasm/cpgf/trunk@654 5ea4cdcf-77fc-412b-903d-47c6f9a32d48
2012-10-13 version 1.5.1 Support shared pointer in script binding. There are meta traits for shared pointer in C++11, Boost, and cpgf. Removed class GMetaVariant and file gmetavariant.h Added new variant type vtTypedVar to support holding meta type in GVariant. Script object created by createScriptObject in Python binding, now supports attribute access as a.attr instead of a["attr"], to be consistent with other script bindings. Added destroyInplace to meta class to destruct an object but don't free the memory. Fixed a bug that invokeScriptFunction may crash if the calling function or object is freed during the function call. Fixed a bug that GVariant converts shadow object to wrong pointer. (It was assumed to convert to value, now it can be converted to pointer) Fixed a bug that the meta policy transfer object owner ship doesn't work for method parameter in script binding. Removed gbytearrayapi.h, removed IByteArray to minimum the API interface. git-svn-id: https://subversion.assembla.com/svn/kbasm/cpgf/trunk@552 5ea4cdcf-77fc-412b-903d-47c6f9a32d48
2012-09-22 version 1.5.0 Significantly rewritten the script binding engine. Now the code is much better! Now script can "inherit" from C++ class, in a unified way. Script can call cpgf.cloneClass to do that. See unit tests of metagen. Now script can pass meta class back to C++. In script, func(CppClass), in C++, func(IMetaClass * cppClass). Rename function injectMetaClassToScript to injectObjectToScript which is more appropriate. git-svn-id: https://subversion.assembla.com/svn/kbasm/cpgf/trunk@509 5ea4cdcf-77fc-412b-903d-47c6f9a32d48
2012-07-28 version 1.4.5 Fixed a bug that in V8 binding, passing existing C++ object to script will cause a new object is created. In script binding, now script function can override C++ virtual member functions. Fixed memory leak in class GMetaVariant. Removed meta name replacer from meta data. git-svn-id: https://subversion.assembla.com/svn/kbasm/cpgf/trunk@463 5ea4cdcf-77fc-412b-903d-47c6f9a32d48
2012-07-07 version 1.4.4 Script binding supports wide string (wchar_t *) in method parameters and return value. vtByteArray is removed from GVariant. Now script binding doesn't auto convert IByteArray * to void *, the script should use IByteArray::getMemory to pass the pointer. Lua binding, fixed a bug that no exception was thrown when assigning to enumerator value. Refactored the script binding engines a lot. Added code for tutorials in samples folder. git-svn-id: https://subversion.assembla.com/svn/kbasm/cpgf/trunk@442 5ea4cdcf-77fc-412b-903d-47c6f9a32d48
2012-06-09 version 1.4.3 Added Python script binding for Python 2.7.3. (warning -- may memory leak) Function fromVariant -- now integer 0 can be auto casted to NULL pointer. Fixed a bug that the ownerItem in GMetaItem in a dangling define may point to bad pointer. git-svn-id: https://subversion.assembla.com/svn/kbasm/cpgf/trunk@400 5ea4cdcf-77fc-412b-903d-47c6f9a32d48
PreviousNext