Compare commits

..
2 Commits
Author SHA1 Message Date
Ling ZhanandGitHub b46f367b1d update box2dwasm (#424) 2023-09-26 15:08:11 +08:00
Ling ZhanandGitHub 6aad2bf6c3 update bullet, physx for debug draw (#419) (#423) 2023-09-25 17:25:05 +08:00
27 changed files with 40045 additions and 40360 deletions
+18 -23
View File
@@ -323,8 +323,8 @@ declare namespace B2 {
localAnchorA: Vec2; localAnchorA: Vec2;
localAnchorB: Vec2; localAnchorB: Vec2;
length: number; length: number;
stiffness: number; frequencyHz: number;
damping: number; dampingRatio: 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;
SetStiffness(stiffness: number): void; SetFrequency(hz: number): void;
GetStiffness(): number; GetFrequency(): number;
SetDamping(damping: number): void; SetDampingRatio(ratio: number): void;
GetDamping(): number; GetDampingRatio(): number;
Dump(): void; Dump(): void;
} }
@@ -466,7 +466,6 @@ 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;
} }
@@ -475,18 +474,18 @@ declare namespace B2 {
localAnchorA: Vec2; localAnchorA: Vec2;
localAnchorB: Vec2; localAnchorB: Vec2;
referenceAngle: number; referenceAngle: number;
stiffness: number; frequencyHz: number;
damping: number; dampingRatio: number;
} }
class WeldJoint extends Joint { class WeldJoint extends Joint {
GetLocalAnchorA(): Vec2; GetLocalAnchorA(): Vec2;
GetLocalAnchorB(): Vec2; GetLocalAnchorB(): Vec2;
GetReferenceAngle(): number; GetReferenceAngle(): number;
SetStiffness(stiffness: number): void; SetFrequency(hz: number): void;
GetStiffness(): number; GetFrequency(): number;
SetDamping(damping: number): void; SetDampingRatio(ratio: number): void;
GetDamping(): number; GetDampingRatio(): number;
Dump(): void; Dump(): void;
} }
@@ -495,14 +494,11 @@ 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;
stiffness: number; frequencyHz: number;
damping: number; dampingRatio: number;
} }
class WheelJoint extends Joint { class WheelJoint extends Joint {
@@ -517,10 +513,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;
SetStiffness(stiffness: number): void; SetFrequency(hz: number): void;
GetStiffness(): number; GetFrequency(): number;
SetDamping(damping: number): void; SetDampingRatio(ratio: number): void;
GetDamping(): number; GetDampingRatio(): number;
Dump(): void; Dump(): void;
} }
@@ -529,7 +525,6 @@ 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,4 +1,3 @@
// 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
+10 -41
View File
@@ -1075,38 +1075,6 @@ 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;
@@ -3650,14 +3618,19 @@ 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
@@ -3721,9 +3694,6 @@ 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,
@@ -3757,7 +3727,6 @@ 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
}; };
@@ -3821,6 +3790,7 @@ var missingLibrarySymbols = [
'ydayFromDate', 'ydayFromDate',
'arraySum', 'arraySum',
'addDays', 'addDays',
'setErrNo',
'inetPton4', 'inetPton4',
'inetNtop4', 'inetNtop4',
'inetPton6', 'inetPton6',
@@ -4022,7 +3992,6 @@ 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
+17 -1
View File
@@ -42,6 +42,8 @@ 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;
@@ -208,6 +210,8 @@ 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;
@@ -220,6 +224,18 @@ 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;
@@ -263,7 +279,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.
+21 -24
View File
@@ -1,4 +1,3 @@
interface Vec3 { interface Vec3 {
x: number, y: number, z: number x: number, y: number, z: number
} }
@@ -17,7 +16,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
@@ -350,8 +349,6 @@ declare namespace phy {
/// Joints /// /// Joints ///
/// Extensions /// /// Extensions ///
interface Spring { interface Spring {
@@ -615,22 +612,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
@@ -942,15 +939,19 @@ declare namespace phy {
*/ */
eRIGID_DYNAMIC, eRIGID_DYNAMIC,
eARTICULATION_LINK eARTICULATION_LINK
} }
enum ActorFlag { enum ActorFlag {
/** /**
/** \brief Enable debug renderer for this actor
\brief Disables scene gravity for this actor @see PxScene.getRenderBuffer() PxRenderBuffer PxVisualizationParameter
*/ */
eVISUALIZATION = (1 << 0),
/**
\brief Disables scene gravity for this actor
*/
eDISABLE_GRAVITY = (1 << 1), eDISABLE_GRAVITY = (1 << 1),
/** /**
@@ -1149,8 +1150,6 @@ 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
@@ -1194,7 +1193,6 @@ 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
@@ -1351,7 +1349,6 @@ 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,10 +22,3 @@
#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,7 +22,8 @@ static bool $jswrapper(se::State& s) // NOLINT(readability-identifier-naming)
$js_check_arg_count $js_check_arg_count
$jslocals $jslocals
$jscode $jscode
$js_set_private_object auto *ptr = JSB_MAKE_PRIVATE_OBJECT_WITH_INSTANCE(result);
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)%}
@@ -61,7 +62,8 @@ static bool $jswrapper(se::State& s) // NOLINT(readability-identifier-naming)
CC_UNUSED bool ok = true; CC_UNUSED bool ok = true;
$jslocals $jslocals
$jscode $jscode
$js_set_private_object auto *ptr = JSB_MAKE_PRIVATE_OBJECT_WITH_INSTANCE(result);
s.thisObject()->setPrivateObject(ptr);
return true; return true;
} }
%} %}
@@ -84,20 +86,19 @@ static bool $jswrapper(se::State& s) // NOLINT(readability-identifier-naming)
/* ----------------------------------------------------------------------------- /* -----------------------------------------------------------------------------
* js_dtor: template for a destructor wrapper * js_dtor: template for a destructor wrapper
* - $classname_mangled: mangled class name * - $jsmangledname: 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
* - $classname_mangled: mangled class name * - $jsmangledname: 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.
* ----------------------------------------------------------------------------- */ * ----------------------------------------------------------------------------- */
@@ -105,7 +106,6 @@ 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,10 +22,3 @@
#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,7 +22,8 @@ static bool $jswrapper(se::State& s) // NOLINT(readability-identifier-naming)
$js_check_arg_count $js_check_arg_count
$jslocals $jslocals
$jscode $jscode
$js_set_private_object auto *ptr = JSB_MAKE_PRIVATE_OBJECT_WITH_INSTANCE(result);
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)%}
@@ -61,7 +62,8 @@ static bool $jswrapper(se::State& s) // NOLINT(readability-identifier-naming)
CC_UNUSED bool ok = true; CC_UNUSED bool ok = true;
$jslocals $jslocals
$jscode $jscode
$js_set_private_object auto *ptr = JSB_MAKE_PRIVATE_OBJECT_WITH_INSTANCE(result);
s.thisObject()->setPrivateObject(ptr);
return true; return true;
} }
%} %}
@@ -84,20 +86,19 @@ static bool $jswrapper(se::State& s) // NOLINT(readability-identifier-naming)
/* ----------------------------------------------------------------------------- /* -----------------------------------------------------------------------------
* js_dtor: template for a destructor wrapper * js_dtor: template for a destructor wrapper
* - $classname_mangled: mangled class name * - $jsmangledname: 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
* - $classname_mangled: mangled class name * - $jsmangledname: 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.
* ----------------------------------------------------------------------------- */ * ----------------------------------------------------------------------------- */
@@ -105,7 +106,6 @@ 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) %}
+4 -2
View File
@@ -139,5 +139,7 @@ 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.7 ) 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 )
all: cocos-v1.1.7 (commit: 7969da2) win64: cocos-v1.1.6 (commit: f52be17)
mac: cocos-v1.1.6 (commit: f52be17)
linux: cocos-v1.1.6 (commit: f52be17)
Binary file not shown.
@@ -22,10 +22,3 @@
#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,7 +22,8 @@ static bool $jswrapper(se::State& s) // NOLINT(readability-identifier-naming)
$js_check_arg_count $js_check_arg_count
$jslocals $jslocals
$jscode $jscode
$js_set_private_object auto *ptr = JSB_MAKE_PRIVATE_OBJECT_WITH_INSTANCE(result);
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)%}
@@ -61,7 +62,8 @@ static bool $jswrapper(se::State& s) // NOLINT(readability-identifier-naming)
CC_UNUSED bool ok = true; CC_UNUSED bool ok = true;
$jslocals $jslocals
$jscode $jscode
$js_set_private_object auto *ptr = JSB_MAKE_PRIVATE_OBJECT_WITH_INSTANCE(result);
s.thisObject()->setPrivateObject(ptr);
return true; return true;
} }
%} %}
@@ -84,20 +86,19 @@ static bool $jswrapper(se::State& s) // NOLINT(readability-identifier-naming)
/* ----------------------------------------------------------------------------- /* -----------------------------------------------------------------------------
* js_dtor: template for a destructor wrapper * js_dtor: template for a destructor wrapper
* - $classname_mangled: mangled class name * - $jsmangledname: 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
* - $classname_mangled: mangled class name * - $jsmangledname: 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.
* ----------------------------------------------------------------------------- */ * ----------------------------------------------------------------------------- */
@@ -105,7 +106,6 @@ 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) %}