Compare commits

..
10 Commits
Author SHA1 Message Date
minggoandGitHub 82856c0d85 Merge pull request #422 from cocos/v3.8.2
V3.8.2
2023-09-21 10:45:01 +08:00
minggoandGitHub 47d19ad2fe Merge pull request #412 from cocos/v3.8.2
V3.8.2
2023-08-31 13:51:59 +08:00
James ChenandGitHub edc75f8839 Update swig, supports virtual inheritance (#395) 2023-08-09 11:35:04 +08:00
Santy-WangandGitHub 9b5264d916 Merge pull request #394 from cocos/v3.8.1
sync V3.8.1 to develop
2023-08-03 18:31:41 +08:00
minggoandGitHub 7983e5d777 Merge pull request #387 from minggo/develop-merge-v3.8.1
Develop merge v3.8.1
2023-07-13 14:12:52 +08:00
minggo 109587f1dd Merge branch 'v3.8.1' into develop-merge-v3.8.1 2023-07-13 11:59:22 +08:00
zhakesiandGitHub 6e292f061a update spine wasm (#374) 2023-06-30 14:45:08 +08:00
minggoandGitHub 161b2ca59a Merge pull request #372 from cocos/v3.8.0
V3.8.0
2023-06-27 11:02:50 +08:00
minggoandGitHub 998ab5a93c Merge pull request #362 from cocos/v3.8.0
V3.8.0
2023-06-13 10:08:14 +08:00
qiuguohuaandGitHub bc4dcfbabe Fix harmonyos platform compilation failure. (#356) 2023-06-02 14:55:25 +08:00
27 changed files with 40257 additions and 39942 deletions
+23 -18
View File
@@ -323,8 +323,8 @@ declare namespace B2 {
localAnchorA: Vec2; localAnchorA: Vec2;
localAnchorB: Vec2; localAnchorB: Vec2;
length: number; length: number;
frequencyHz: number; stiffness: number;
dampingRatio: number; damping: number;
} }
class DistanceJoint extends Joint { class DistanceJoint extends Joint {
@@ -332,10 +332,10 @@ declare namespace B2 {
GetLocalAnchorB(): Vec2; GetLocalAnchorB(): Vec2;
SetLength(length: number): void; SetLength(length: number): void;
GetLength(): number; GetLength(): number;
SetFrequency(hz: number): void; SetStiffness(stiffness: number): void;
GetFrequency(): number; GetStiffness(): number;
SetDampingRatio(ratio: number): void; SetDamping(damping: number): void;
GetDampingRatio(): number; GetDamping(): number;
Dump(): void; Dump(): void;
} }
@@ -466,6 +466,7 @@ declare namespace B2 {
GetReactionTorque(inv_dt: number): number; GetReactionTorque(inv_dt: number): number;
SetMaxLength(length: number): void; SetMaxLength(length: number): void;
GetMaxLength(): number; GetMaxLength(): number;
GetLength(): number;
Dump(): void; Dump(): void;
} }
@@ -474,18 +475,18 @@ declare namespace B2 {
localAnchorA: Vec2; localAnchorA: Vec2;
localAnchorB: Vec2; localAnchorB: Vec2;
referenceAngle: number; referenceAngle: number;
frequencyHz: number; stiffness: number;
dampingRatio: number; damping: number;
} }
class WeldJoint extends Joint { class WeldJoint extends Joint {
GetLocalAnchorA(): Vec2; GetLocalAnchorA(): Vec2;
GetLocalAnchorB(): Vec2; GetLocalAnchorB(): Vec2;
GetReferenceAngle(): number; GetReferenceAngle(): number;
SetFrequency(hz: number): void; SetStiffness(stiffness: number): void;
GetFrequency(): number; GetStiffness(): number;
SetDampingRatio(ratio: number): void; SetDamping(damping: number): void;
GetDampingRatio(): number; GetDamping(): number;
Dump(): void; Dump(): void;
} }
@@ -494,11 +495,14 @@ declare namespace B2 {
localAnchorA: Vec2; localAnchorA: Vec2;
localAnchorB: Vec2; localAnchorB: Vec2;
localAxisA: Vec2; localAxisA: Vec2;
enableLimit: boolean;
lowerTranslation: number;
upperTranslation: number;
enableMotor: boolean; enableMotor: boolean;
maxMotorTorque: number; maxMotorTorque: number;
motorSpeed: number; motorSpeed: number;
frequencyHz: number; stiffness: number;
dampingRatio: number; damping: number;
} }
class WheelJoint extends Joint { class WheelJoint extends Joint {
@@ -513,10 +517,10 @@ declare namespace B2 {
SetMaxMotorTorque(torque: number): void; SetMaxMotorTorque(torque: number): void;
GetMaxMotorTorque(): number; GetMaxMotorTorque(): number;
GetMotorTorque(inv_dt: number): number; GetMotorTorque(inv_dt: number): number;
SetFrequency(hz: number): void; SetStiffness(stiffness: number): void;
GetFrequency(): number; GetStiffness(): number;
SetDampingRatio(ratio: number): void; SetDamping(damping: number): void;
GetDampingRatio(): number; GetDamping(): number;
Dump(): void; Dump(): void;
} }
@@ -525,6 +529,7 @@ declare namespace B2 {
// //
function ConvexPartition(verticesIn: Vec2Vector, trianglesIn: Int32Vector, verticesOut: Vec2Vector, trianglesOut: Int32Vector): void; function ConvexPartition(verticesIn: Vec2Vector, trianglesIn: Int32Vector, verticesOut: Vec2Vector, trianglesOut: Int32Vector): void;
function GetFloat32(memory: number, offset: number): number; function GetFloat32(memory: number, offset: number): number;
function SetLinearFrequencyAndDampingRatio(body: Joint, frequencyHertz: number, dampingRatio: number): void;
//Contact //Contact
function ContactSetEnabled(contactPtr: number, flag: boolean): void; function ContactSetEnabled(contactPtr: number, flag: boolean): void;
+1
View File
@@ -1,3 +1,4 @@
// eslint-disable-next-line @typescript-eslint/triple-slash-reference
/// <reference path="./b2.d.ts" /> /// <reference path="./b2.d.ts" />
declare module 'external:emscripten/box2d/box2d.release.asm.js' { declare module 'external:emscripten/box2d/box2d.release.asm.js' {
File diff suppressed because one or more lines are too long
+41 -10
View File
@@ -1075,6 +1075,38 @@ function dbg(text) {
abort(`Assertion failed: ${UTF8ToString(condition)}, at: ` + [filename ? UTF8ToString(filename) : 'unknown filename', line, func ? UTF8ToString(func) : 'unknown function']); abort(`Assertion failed: ${UTF8ToString(condition)}, at: ` + [filename ? UTF8ToString(filename) : 'unknown filename', line, func ? UTF8ToString(func) : 'unknown function']);
} }
function setErrNo(value) {
HEAP32[((___errno_location())>>2)] = value;
return value;
}
var SYSCALLS = {varargs:undefined,get:function() {
assert(SYSCALLS.varargs != undefined);
SYSCALLS.varargs += 4;
var ret = HEAP32[(((SYSCALLS.varargs)-(4))>>2)];
return ret;
},getStr:function(ptr) {
var ret = UTF8ToString(ptr);
return ret;
}};
function ___syscall_fcntl64(fd, cmd, varargs) {
SYSCALLS.varargs = varargs;
return 0;
}
function ___syscall_ioctl(fd, op, varargs) {
SYSCALLS.varargs = varargs;
return 0;
}
function ___syscall_openat(dirfd, path, flags, varargs) {
SYSCALLS.varargs = varargs;
abort('it should not be possible to operate on streams when !SYSCALLS_REQUIRE_FILESYSTEM');
}
var char_0 = 48; var char_0 = 48;
var char_9 = 57; var char_9 = 57;
@@ -3618,19 +3650,14 @@ function dbg(text) {
return false; return false;
} }
var SYSCALLS = {varargs:undefined,get:function() {
assert(SYSCALLS.varargs != undefined);
SYSCALLS.varargs += 4;
var ret = HEAP32[(((SYSCALLS.varargs)-(4))>>2)];
return ret;
},getStr:function(ptr) {
var ret = UTF8ToString(ptr);
return ret;
}};
function _fd_close(fd) { function _fd_close(fd) {
abort('fd_close called without SYSCALLS_REQUIRE_FILESYSTEM'); abort('fd_close called without SYSCALLS_REQUIRE_FILESYSTEM');
} }
function _fd_read(fd, iov, iovcnt, pnum) {
abort('fd_read called without SYSCALLS_REQUIRE_FILESYSTEM');
}
function convertI32PairToI53Checked(lo, hi) { function convertI32PairToI53Checked(lo, hi) {
assert(lo == (lo >>> 0) || lo == (lo|0)); // lo should either be a i32 or a u32 assert(lo == (lo >>> 0) || lo == (lo|0)); // lo should either be a i32 or a u32
assert(hi === (hi|0)); // hi should be a i32 assert(hi === (hi|0)); // hi should be a i32
@@ -3694,6 +3721,9 @@ function checkIncomingModuleAPI() {
} }
var wasmImports = { var wasmImports = {
"__assert_fail": ___assert_fail, "__assert_fail": ___assert_fail,
"__syscall_fcntl64": ___syscall_fcntl64,
"__syscall_ioctl": ___syscall_ioctl,
"__syscall_openat": ___syscall_openat,
"_embind_create_inheriting_constructor": __embind_create_inheriting_constructor, "_embind_create_inheriting_constructor": __embind_create_inheriting_constructor,
"_embind_finalize_value_object": __embind_finalize_value_object, "_embind_finalize_value_object": __embind_finalize_value_object,
"_embind_register_bigint": __embind_register_bigint, "_embind_register_bigint": __embind_register_bigint,
@@ -3727,6 +3757,7 @@ var wasmImports = {
"emscripten_memcpy_big": _emscripten_memcpy_big, "emscripten_memcpy_big": _emscripten_memcpy_big,
"emscripten_resize_heap": _emscripten_resize_heap, "emscripten_resize_heap": _emscripten_resize_heap,
"fd_close": _fd_close, "fd_close": _fd_close,
"fd_read": _fd_read,
"fd_seek": _fd_seek, "fd_seek": _fd_seek,
"fd_write": _fd_write "fd_write": _fd_write
}; };
@@ -3790,7 +3821,6 @@ var missingLibrarySymbols = [
'ydayFromDate', 'ydayFromDate',
'arraySum', 'arraySum',
'addDays', 'addDays',
'setErrNo',
'inetPton4', 'inetPton4',
'inetNtop4', 'inetNtop4',
'inetPton6', 'inetPton6',
@@ -3992,6 +4022,7 @@ var unexportedSymbols = [
'MONTH_DAYS_LEAP_CUMULATIVE', 'MONTH_DAYS_LEAP_CUMULATIVE',
'ERRNO_CODES', 'ERRNO_CODES',
'ERRNO_MESSAGES', 'ERRNO_MESSAGES',
'setErrNo',
'DNS', 'DNS',
'Protocols', 'Protocols',
'Sockets', 'Sockets',
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
File diff suppressed because one or more lines are too long
+1 -17
View File
@@ -42,8 +42,6 @@ declare namespace Bullet {
// constraints // constraints
TypedConstraint_getFixedBody(): ptr; TypedConstraint_getFixedBody(): ptr;
TypedConstraint_getDbgDrawSize(): number;
TypedConstraint_setDbgDrawSize(p: ptr, dbgDrawSize: number): void;
HingeConstraint_new(ptr0: ptr, ptr1: ptr, ptr2: ptr, ptr3: ptr): ptr; HingeConstraint_new(ptr0: ptr, ptr1: ptr, ptr2: ptr, ptr3: ptr): ptr;
HingeConstraint_setFrames(ptr0: ptr, ptr1: ptr, ptr2: ptr): void; HingeConstraint_setFrames(ptr0: ptr, ptr1: ptr, ptr2: ptr): void;
HingeConstraint_setLimit(p: ptr, low: number, upper: number, softness: number, biasFactor: number, relaxationFactor: number): void; HingeConstraint_setLimit(p: ptr, low: number, upper: number, softness: number, biasFactor: number, relaxationFactor: number): void;
@@ -210,8 +208,6 @@ declare namespace Bullet {
CollisionWorld_removeCollisionObject(p: ptr, body: ptr): void; CollisionWorld_removeCollisionObject(p: ptr, body: ptr): void;
CollisionWorld_rayTest(p: ptr, p0: ptr, p1: ptr, p2: ptr): void; CollisionWorld_rayTest(p: ptr, p0: ptr, p1: ptr, p2: ptr): void;
CollisionWorld_convexSweepTest(p: ptr, castShape: ptr, from: ptr, to: ptr, resultCallback: ptr, allowedCcdPenetration: ptr): void; CollisionWorld_convexSweepTest(p: ptr, castShape: ptr, from: ptr, to: ptr, resultCallback: ptr, allowedCcdPenetration: ptr): void;
CollisionWorld_setDebugDrawer(p: ptr, drawer: ptr): void;
CollisionWorld_debugDrawWorld(p: ptr): void;
ccDiscreteDynamicsWorld_new(dispatcher: ptr, pairCache: ptr, solver: ptr): ptr; ccDiscreteDynamicsWorld_new(dispatcher: ptr, pairCache: ptr, solver: ptr): ptr;
ccDiscreteDynamicsWorld_setAllowSleep(p: ptr, v: boolean): void; ccDiscreteDynamicsWorld_setAllowSleep(p: ptr, v: boolean): void;
@@ -224,18 +220,6 @@ declare namespace Bullet {
DynamicsWorld_addAction(p: ptr, action: ptr): void; DynamicsWorld_addAction(p: ptr, action: ptr): void;
DynamicsWorld_removeAction(p: ptr, action: ptr): void; DynamicsWorld_removeAction(p: ptr, action: ptr): void;
DebugDraw_new(): ptr;
DebugDraw_setDebugMode(p: ptr, debugMode: number): void;
DebugDraw_getDebugMode(p: ptr): number;
DebugDraw_setActiveObjectColor(p: ptr, r: number, g: number, b: number): void;
DebugDraw_setDeactiveObjectColor(p: ptr, r: number, g: number, b: number): void;
DebugDraw_setWantsDeactivationObjectColor(p: ptr, r: number, g: number, b: number): void;
DebugDraw_setDisabledDeactivationObjectColor(p: ptr, r: number, g: number, b: number): void;
DebugDraw_setDisabledSimulationObjectColor(p: ptr, r: number, g: number, b: number): void;
DebugDraw_setAABBColor(p: ptr, r: number, g: number, b: number): void;
DebugDraw_setContactPointColor(p: ptr, r: number, g: number, b: number): void;
DebugDraw_setConstraintLimitColor(p: ptr, r: number, g: number, b: number): void;
RayCallback_hasHit(p: ptr): boolean; RayCallback_hasHit(p: ptr): boolean;
ConvexCallback_hasHit(p: ptr): boolean; ConvexCallback_hasHit(p: ptr): boolean;
@@ -279,7 +263,7 @@ declare namespace Bullet {
ControllerHit_getHitMotionLength(p: ptr): number; //CCT hit Motion length ControllerHit_getHitMotionLength(p: ptr): number; //CCT hit Motion length
ControllerShapeHit_getHitShape(p: ptr): ptr; ControllerShapeHit_getHitShape(p: ptr): ptr;
ControllerShapeHit_getHitCollisionObject(p: ptr): ptr; ControllerShapeHit_getHitCollisionObject(p: ptr): ptr;
CharacterController_move(ptrCCT: ptr, ptrMovement: ptr, minDist: number, deltaTime: number): number; CharacterController_move(ptrCCT: ptr, ptrMovement: ptr, minDist: number, deltaTime: number):number;
CharacterController_getPosition(ptrCCT: ptr); CharacterController_getPosition(ptrCCT: ptr);
CharacterController_setContactOffset(ptrCCT: ptr, v: number); CharacterController_setContactOffset(ptrCCT: ptr, v: number);
CharacterController_setStepOffset(ptrCCT: ptr, v: number); CharacterController_setStepOffset(ptrCCT: ptr, v: number);
Binary file not shown.
+24 -21
View File
@@ -1,3 +1,4 @@
interface Vec3 { interface Vec3 {
x: number, y: number, z: number x: number, y: number, z: number
} }
@@ -16,7 +17,7 @@ interface FilterData {
declare namespace phy { declare namespace phy {
/// Base /// /// Base ///
const physics: Physics; const physics: Physics
abstract class Physics { abstract class Physics {
private constructor () private constructor ()
createCooking (cp: CookingParams): Cooking createCooking (cp: CookingParams): Cooking
@@ -349,6 +350,8 @@ declare namespace phy {
/// Joints /// /// Joints ///
/// Extensions /// /// Extensions ///
interface Spring { interface Spring {
@@ -612,22 +615,22 @@ declare namespace phy {
class SceneQueryHit { class SceneQueryHit {
private constructor () private constructor ()
actor: RigidActor; actor: RigidActor
shape: Shape; shape: Shape
faceIndex: number; faceIndex: number
} }
class RayCastHit { class RayCastHit {
private constructor () private constructor ()
actor: RigidActor; actor: RigidActor
shape: Shape; shape: Shape
faceIndex: number; faceIndex: number
u: number; u: number
v: number; v: number
normal: Vec3; normal: Vec3
position: Vec3; position: Vec3
distance: number; distance: number
flags: number; flags: number
} }
type preFilter = (filterData: FilterData, shape: Shape, actor: RigidActor, hitFlags: number) => QueryHitType type preFilter = (filterData: FilterData, shape: Shape, actor: RigidActor, hitFlags: number) => QueryHitType
@@ -939,19 +942,15 @@ declare namespace phy {
*/ */
eRIGID_DYNAMIC, eRIGID_DYNAMIC,
eARTICULATION_LINK eARTICULATION_LINK
} }
enum ActorFlag { enum ActorFlag {
/** /**
\brief Enable debug renderer for this actor /**
@see PxScene.getRenderBuffer() PxRenderBuffer PxVisualizationParameter \brief Disables scene gravity for this actor
*/ */
eVISUALIZATION = (1 << 0),
/**
\brief Disables scene gravity for this actor
*/
eDISABLE_GRAVITY = (1 << 1), eDISABLE_GRAVITY = (1 << 1),
/** /**
@@ -1150,6 +1149,8 @@ declare namespace phy {
PxConvexMeshCookingType::eINFLATION_INCREMENTAL_HULL is set. The default algorithm PxConvexMeshCookingType::eINFLATION_INCREMENTAL_HULL is set. The default algorithm
PxConvexMeshCookingType::eQUICK_HULL ignores this flag, inflation is not used. PxConvexMeshCookingType::eQUICK_HULL ignores this flag, inflation is not used.
/** /**
\brief Quantizes the input vertices using the k-means clustering \brief Quantizes the input vertices using the k-means clustering
@@ -1193,6 +1194,7 @@ declare namespace phy {
*/ */
eFAST_INERTIA_COMPUTATION = (1 << 7), eFAST_INERTIA_COMPUTATION = (1 << 7),
/** /**
\brief Convex hull input vertices are shifted to be around origin to provide better computation stability. \brief Convex hull input vertices are shifted to be around origin to provide better computation stability.
It is recommended to provide input vertices around the origin, otherwise use this flag to improve It is recommended to provide input vertices around the origin, otherwise use this flag to improve
@@ -1349,6 +1351,7 @@ declare namespace phy {
*/ */
eARTICULATION = 4, eARTICULATION = 4,
} }
enum FilterObjectFlag { enum FilterObjectFlag {
File diff suppressed because one or more lines are too long
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
@@ -22,3 +22,10 @@
#define %module_macro(m) %feature("module_macro","m") #define %module_macro(m) %feature("module_macro","m")
#define %release_returned_cpp_object_in_gc(method) %feature("release_returned_cpp_object_in_gc", "1") method #define %release_returned_cpp_object_in_gc(method) %feature("release_returned_cpp_object_in_gc", "1") method
%define %virtual_inherit(klass)
%feature("virtual_inherit", "1") klass;
%typemap(in) klass *self
%{ $1 = SE_THIS_OBJECT_VIRTUAL<$*ltype, cc::VirtualInheritBase>(s);
if (nullptr == $1) return true;%}
%enddef
@@ -22,8 +22,7 @@ static bool $jswrapper(se::State& s) // NOLINT(readability-identifier-naming)
$js_check_arg_count $js_check_arg_count
$jslocals $jslocals
$jscode $jscode
auto *ptr = JSB_MAKE_PRIVATE_OBJECT_WITH_INSTANCE(result); $js_set_private_object
s.thisObject()->setPrivateObject(ptr);
return true; return true;
} }
SE_BIND_CTOR($jswrapper, __jsb_$jsmangledname_class, js_delete_$jsdtor)%} SE_BIND_CTOR($jswrapper, __jsb_$jsmangledname_class, js_delete_$jsdtor)%}
@@ -62,8 +61,7 @@ static bool $jswrapper(se::State& s) // NOLINT(readability-identifier-naming)
CC_UNUSED bool ok = true; CC_UNUSED bool ok = true;
$jslocals $jslocals
$jscode $jscode
auto *ptr = JSB_MAKE_PRIVATE_OBJECT_WITH_INSTANCE(result); $js_set_private_object
s.thisObject()->setPrivateObject(ptr);
return true; return true;
} }
%} %}
@@ -86,19 +84,20 @@ static bool $jswrapper(se::State& s) // NOLINT(readability-identifier-naming)
/* ----------------------------------------------------------------------------- /* -----------------------------------------------------------------------------
* js_dtor: template for a destructor wrapper * js_dtor: template for a destructor wrapper
* - $jsmangledname: mangled class name * - $classname_mangled: mangled class name
* - $jstype: class type * - $jstype: class type
* ----------------------------------------------------------------------------- */ * ----------------------------------------------------------------------------- */
%fragment ("js_dtor", "templates") %fragment ("js_dtor", "templates")
%{ %{
static bool $jswrapper(se::State& s) { static bool $jswrapper(se::State& s) {
cc::invokeOnGarbageCollectMethod<$jsclass_type>(s);
return true; return true;
} }
SE_BIND_FINALIZE_FUNC($jswrapper) %} SE_BIND_FINALIZE_FUNC($jswrapper) %}
/* ----------------------------------------------------------------------------- /* -----------------------------------------------------------------------------
* js_dtor: template for a destructor wrapper * js_dtor: template for a destructor wrapper
* - $jsmangledname: mangled class name * - $classname_mangled: mangled class name
* - $jstype: class type * - $jstype: class type
* - ${destructor_action}: The custom destructor action to invoke. * - ${destructor_action}: The custom destructor action to invoke.
* ----------------------------------------------------------------------------- */ * ----------------------------------------------------------------------------- */
@@ -106,6 +105,7 @@ SE_BIND_FINALIZE_FUNC($jswrapper) %}
%{ %{
static bool $jswrapper(se::State& s) static bool $jswrapper(se::State& s)
{ {
cc::invokeOnGarbageCollectMethod<$jsclass_type>(s);
return true; return true;
} }
SE_BIND_FINALIZE_FUNC($jswrapper) %} SE_BIND_FINALIZE_FUNC($jswrapper) %}
Binary file not shown.
@@ -22,3 +22,10 @@
#define %module_macro(m) %feature("module_macro","m") #define %module_macro(m) %feature("module_macro","m")
#define %release_returned_cpp_object_in_gc(method) %feature("release_returned_cpp_object_in_gc", "1") method #define %release_returned_cpp_object_in_gc(method) %feature("release_returned_cpp_object_in_gc", "1") method
%define %virtual_inherit(klass)
%feature("virtual_inherit", "1") klass;
%typemap(in) klass *self
%{ $1 = SE_THIS_OBJECT_VIRTUAL<$*ltype, cc::VirtualInheritBase>(s);
if (nullptr == $1) return true;%}
%enddef
@@ -22,8 +22,7 @@ static bool $jswrapper(se::State& s) // NOLINT(readability-identifier-naming)
$js_check_arg_count $js_check_arg_count
$jslocals $jslocals
$jscode $jscode
auto *ptr = JSB_MAKE_PRIVATE_OBJECT_WITH_INSTANCE(result); $js_set_private_object
s.thisObject()->setPrivateObject(ptr);
return true; return true;
} }
SE_BIND_CTOR($jswrapper, __jsb_$jsmangledname_class, js_delete_$jsdtor)%} SE_BIND_CTOR($jswrapper, __jsb_$jsmangledname_class, js_delete_$jsdtor)%}
@@ -62,8 +61,7 @@ static bool $jswrapper(se::State& s) // NOLINT(readability-identifier-naming)
CC_UNUSED bool ok = true; CC_UNUSED bool ok = true;
$jslocals $jslocals
$jscode $jscode
auto *ptr = JSB_MAKE_PRIVATE_OBJECT_WITH_INSTANCE(result); $js_set_private_object
s.thisObject()->setPrivateObject(ptr);
return true; return true;
} }
%} %}
@@ -86,19 +84,20 @@ static bool $jswrapper(se::State& s) // NOLINT(readability-identifier-naming)
/* ----------------------------------------------------------------------------- /* -----------------------------------------------------------------------------
* js_dtor: template for a destructor wrapper * js_dtor: template for a destructor wrapper
* - $jsmangledname: mangled class name * - $classname_mangled: mangled class name
* - $jstype: class type * - $jstype: class type
* ----------------------------------------------------------------------------- */ * ----------------------------------------------------------------------------- */
%fragment ("js_dtor", "templates") %fragment ("js_dtor", "templates")
%{ %{
static bool $jswrapper(se::State& s) { static bool $jswrapper(se::State& s) {
cc::invokeOnGarbageCollectMethod<$jsclass_type>(s);
return true; return true;
} }
SE_BIND_FINALIZE_FUNC($jswrapper) %} SE_BIND_FINALIZE_FUNC($jswrapper) %}
/* ----------------------------------------------------------------------------- /* -----------------------------------------------------------------------------
* js_dtor: template for a destructor wrapper * js_dtor: template for a destructor wrapper
* - $jsmangledname: mangled class name * - $classname_mangled: mangled class name
* - $jstype: class type * - $jstype: class type
* - ${destructor_action}: The custom destructor action to invoke. * - ${destructor_action}: The custom destructor action to invoke.
* ----------------------------------------------------------------------------- */ * ----------------------------------------------------------------------------- */
@@ -106,6 +105,7 @@ SE_BIND_FINALIZE_FUNC($jswrapper) %}
%{ %{
static bool $jswrapper(se::State& s) static bool $jswrapper(se::State& s)
{ {
cc::invokeOnGarbageCollectMethod<$jsclass_type>(s);
return true; return true;
} }
SE_BIND_FINALIZE_FUNC($jswrapper) %} SE_BIND_FINALIZE_FUNC($jswrapper) %}
+2 -4
View File
@@ -139,7 +139,5 @@ glslang (Built using https://github.com/YunHsiao/glslang/tree/build)
linux: 11.5.0 linux: 11.5.0
openharmony:11.5.0 (commit: 1978c76) openharmony:11.5.0 (commit: 1978c76)
swig ( Built using https://github.com/cocos/swig/tree/cocos-se, executable files are downloaded from https://github.com/cocos/swig/releases/tag/cocos-v1.1.6 ) swig ( Built using https://github.com/cocos/swig/tree/cocos-se, executable files are downloaded from https://github.com/cocos/swig/releases/tag/cocos-v1.1.7 )
win64: cocos-v1.1.6 (commit: f52be17) all: cocos-v1.1.7 (commit: 7969da2)
mac: cocos-v1.1.6 (commit: f52be17)
linux: cocos-v1.1.6 (commit: f52be17)
Binary file not shown.
@@ -22,3 +22,10 @@
#define %module_macro(m) %feature("module_macro","m") #define %module_macro(m) %feature("module_macro","m")
#define %release_returned_cpp_object_in_gc(method) %feature("release_returned_cpp_object_in_gc", "1") method #define %release_returned_cpp_object_in_gc(method) %feature("release_returned_cpp_object_in_gc", "1") method
%define %virtual_inherit(klass)
%feature("virtual_inherit", "1") klass;
%typemap(in) klass *self
%{ $1 = SE_THIS_OBJECT_VIRTUAL<$*ltype, cc::VirtualInheritBase>(s);
if (nullptr == $1) return true;%}
%enddef
@@ -22,8 +22,7 @@ static bool $jswrapper(se::State& s) // NOLINT(readability-identifier-naming)
$js_check_arg_count $js_check_arg_count
$jslocals $jslocals
$jscode $jscode
auto *ptr = JSB_MAKE_PRIVATE_OBJECT_WITH_INSTANCE(result); $js_set_private_object
s.thisObject()->setPrivateObject(ptr);
return true; return true;
} }
SE_BIND_CTOR($jswrapper, __jsb_$jsmangledname_class, js_delete_$jsdtor)%} SE_BIND_CTOR($jswrapper, __jsb_$jsmangledname_class, js_delete_$jsdtor)%}
@@ -62,8 +61,7 @@ static bool $jswrapper(se::State& s) // NOLINT(readability-identifier-naming)
CC_UNUSED bool ok = true; CC_UNUSED bool ok = true;
$jslocals $jslocals
$jscode $jscode
auto *ptr = JSB_MAKE_PRIVATE_OBJECT_WITH_INSTANCE(result); $js_set_private_object
s.thisObject()->setPrivateObject(ptr);
return true; return true;
} }
%} %}
@@ -86,19 +84,20 @@ static bool $jswrapper(se::State& s) // NOLINT(readability-identifier-naming)
/* ----------------------------------------------------------------------------- /* -----------------------------------------------------------------------------
* js_dtor: template for a destructor wrapper * js_dtor: template for a destructor wrapper
* - $jsmangledname: mangled class name * - $classname_mangled: mangled class name
* - $jstype: class type * - $jstype: class type
* ----------------------------------------------------------------------------- */ * ----------------------------------------------------------------------------- */
%fragment ("js_dtor", "templates") %fragment ("js_dtor", "templates")
%{ %{
static bool $jswrapper(se::State& s) { static bool $jswrapper(se::State& s) {
cc::invokeOnGarbageCollectMethod<$jsclass_type>(s);
return true; return true;
} }
SE_BIND_FINALIZE_FUNC($jswrapper) %} SE_BIND_FINALIZE_FUNC($jswrapper) %}
/* ----------------------------------------------------------------------------- /* -----------------------------------------------------------------------------
* js_dtor: template for a destructor wrapper * js_dtor: template for a destructor wrapper
* - $jsmangledname: mangled class name * - $classname_mangled: mangled class name
* - $jstype: class type * - $jstype: class type
* - ${destructor_action}: The custom destructor action to invoke. * - ${destructor_action}: The custom destructor action to invoke.
* ----------------------------------------------------------------------------- */ * ----------------------------------------------------------------------------- */
@@ -106,6 +105,7 @@ SE_BIND_FINALIZE_FUNC($jswrapper) %}
%{ %{
static bool $jswrapper(se::State& s) static bool $jswrapper(se::State& s)
{ {
cc::invokeOnGarbageCollectMethod<$jsclass_type>(s);
return true; return true;
} }
SE_BIND_FINALIZE_FUNC($jswrapper) %} SE_BIND_FINALIZE_FUNC($jswrapper) %}