This commit is contained in:
lvfulong
2021-03-22 19:32:28 +08:00
parent e32ab4cd9f
commit 1f6af9ab2a
30 changed files with 137 additions and 54 deletions
@@ -104,20 +104,27 @@ namespace laya
JSStringRef jsLinePropertyName = JSStringCreateWithUTF8CString("line");
JSStringRef jsColumnPropertyName = JSStringCreateWithUTF8CString("column");
JSStringRef jsUrlPropertyName = JSStringCreateWithUTF8CString("sourceURL");
JSStringRef jsStackPropertyName = JSStringCreateWithUTF8CString("stack");
JSObjectRef exObject = JSValueToObject( pContext, exception, NULL );
JSValueRef line = JSObjectGetProperty( pContext, exObject, jsLinePropertyName, NULL );
JSValueRef column = JSObjectGetProperty( pContext, exObject, jsColumnPropertyName, NULL );
JSValueRef url = JSObjectGetProperty( pContext, exObject, jsUrlPropertyName, NULL );
JSValueRef stack = JSObjectGetProperty( pContext, exObject, jsStackPropertyName, NULL );
char *pEx = __ToCppString(exception,pContext);
char *pLine = __ToCppString(line,pContext);
char *pColumn = __ToCppString(column,pContext);
char *pUrl = __ToCppString(url,pContext);
if (stack != NULL && JSValueGetType(pContext, stack) == kJSTypeString)
{
pStack = __ToCppString(stack,pContext);
}
//通知全局错误处理脚本
std::string kBuf = "if(conch.onerror){conch.onerror('";
kBuf += UrlEncode(pEx);
kBuf += "','undefined','";
kBuf += "','";
kBuf += UrlEncode(pStack.c_str());
kBuf += "','";
kBuf += UrlEncode(pLine);
kBuf += "','";
kBuf += UrlEncode(pColumn);
@@ -142,6 +149,7 @@ namespace laya
JSStringRelease(jsLinePropertyName);
JSStringRelease(jsColumnPropertyName);
JSStringRelease(jsUrlPropertyName);
JSStringRelease(jsStackPropertyName);
}
}
@@ -646,6 +646,13 @@ pointer_t WASM_EXP AllConvexResultCallback_get_m_collisionObjects(pointer_t ptr)
}
//btCollisionShape
int WASM_EXP btCollisionShape_getShapeType(pointer_t ptr)
{
btCollisionShape *shape = (btCollisionShape *)ptr;
return shape->getShapeType();
}
pointer_t WASM_EXP btCollisionShape_getLocalScaling(pointer_t ptr)
{
btCollisionShape *shape = (btCollisionShape *)ptr;
@@ -676,7 +683,18 @@ pointer_t WASM_EXP btBoxShape_create(pointer_t boxHalfExtents)
return (pointer_t) new btBoxShape(*(btVector3 *)boxHalfExtents);
}
void WASM_EXP btBoxShape_getAabb(pointer_t ptr, pointer_t t, pointer_t aabbMin, pointer_t aabbMax)
{
btBoxShape *shape = (btBoxShape *)ptr;
shape->getAabb(*(btTransform *)t, *(btVector3 *)aabbMin, *(btVector3 *)aabbMax);
}
pointer_t WASM_EXP btBoxShape_getHalfExtentsWithMargin(pointer_t ptr, pointer_t t, pointer_t aabbMin, pointer_t aabbMax)
{
btBoxShape *shape = (btBoxShape *)ptr;
tempbtVector3 = shape->getHalfExtentsWithMargin();
return (pointer_t)&tempbtVector3;
}
//btCapsuleShape
pointer_t WASM_EXP btCapsuleShape_create(btScalar radius, btScalar height)
@@ -1256,6 +1274,18 @@ void WASM_EXP btKinematicCharacterController_setStepHeight(pointer_t ptr, btScal
character->setStepHeight(h);
}
void WASM_EXP btKinematicCharacterController_setMaxPenetrationDepth(pointer_t ptr, btScalar d)
{
btKinematicCharacterController *character = (btKinematicCharacterController *)ptr;
character->setMaxPenetrationDepth(d);
}
btScalar WASM_EXP btKinematicCharacterController_getMaxPenetrationDepth(pointer_t ptr)
{
btKinematicCharacterController *character = (btKinematicCharacterController *)ptr;
return character->getMaxPenetrationDepth();
}
void WASM_EXP btKinematicCharacterController_destroy(pointer_t ptr)
{
btKinematicCharacterController *character = (btKinematicCharacterController *)ptr;
@@ -154,11 +154,15 @@ namespace laya
pointer_t AllConvexResultCallback_get_m_hitPointWorld(pointer_t ptr);
pointer_t AllConvexResultCallback_get_m_hitFractions(pointer_t ptr);
pointer_t AllConvexResultCallback_get_m_collisionObjects(pointer_t ptr);
int btCollisionShape_getShapeType(pointer_t ptr);
pointer_t btCollisionShape_getLocalScaling(pointer_t ptr);
void btCollisionShape_setLocalScaling(pointer_t ptr, pointer_t scaling);
void btCollisionShape_calculateLocalInertia(pointer_t ptr, btScalar mass, pointer_t inertia);
void btCollisionShape_destroy(pointer_t ptr);
pointer_t btBoxShape_create(pointer_t boxHalfExtents);
void btBoxShape_getAabb(pointer_t ptr, pointer_t t, pointer_t aabbMin, pointer_t aabbMax);
pointer_t btBoxShape_getHalfExtentsWithMargin(pointer_t ptr, pointer_t t, pointer_t aabbMin, pointer_t aabbMax);
pointer_t btCapsuleShape_create(btScalar radius, btScalar height);
pointer_t btCapsuleShapeX_create(btScalar radius, btScalar height);
pointer_t btCapsuleShapeZ_create(btScalar radius, btScalar height);
@@ -220,6 +224,8 @@ namespace laya
void btRigidBody_setGravity(pointer_t ptr, pointer_t acceleration);
void btKinematicCharacterController_setUp(pointer_t ptr, pointer_t up);
void btKinematicCharacterController_setStepHeight(pointer_t ptr, btScalar h);
void btKinematicCharacterController_setMaxPenetrationDepth(pointer_t ptr, btScalar d);
btScalar btKinematicCharacterController_getMaxPenetrationDepth(pointer_t ptr);
void btCollisionObject_setInterpolationWorldTransform(pointer_t ptr, pointer_t worldTrans);
void btCollisionObject_setWorldTransform(pointer_t ptr, pointer_t worldTrans);
pointer_t btRigidBody_getTotalForce(pointer_t ptr);
@@ -321,13 +321,14 @@ namespace laya
m_sGUID = CToObjectCGetGUID();
return m_sGUID.c_str();
#elif ANDROID
CToJavaBridge::JavaRet kRet;
/*CToJavaBridge::JavaRet kRet;
if (CToJavaBridge::GetInstance()->callMethod(CToJavaBridge::JavaClass.c_str(), "getWifiMac", kRet))
{
m_sGUID = CToJavaBridge::GetInstance()->getJavaString(kRet.pJNI, kRet.strRet);
}
LOGI("getGuid::get_Value=%s", m_sGUID.c_str());
return m_sGUID.c_str();
return m_sGUID.c_str();*/
return "android";
#elif WIN32
return "window";
#endif
@@ -335,11 +336,11 @@ namespace laya
const char* JSConchConfig::getRuntimeVersion()
{
#ifdef __APPLE__
return "ios-conch6-release-2.9.0";
return "ios-conch6-release-2.11.0";
#elif ANDROID
return "android-conch6-release-2.9.0";
return "android-conch6-release-2.11.0";
#elif WIN32
return "window-conch6-release-2.9.0";
return "window-conch6-release-2.11.0";
#endif
}
const char* JSConchConfig::getAppVersion()
+9 -5
View File
@@ -1303,7 +1303,7 @@ class GLCommandEncoder
getExtension(name:string):any
{
var extention:string = this._layagl._nativeObj.getStringEx(0x1F03);/*GL_EXTENSIONS*/
let version:string = this._layagl._nativeObj.getStringEx(0x1F02);
let extentions:string[] = extention.split(' ');
function supports(extention:string)
{
@@ -1337,7 +1337,7 @@ class GLCommandEncoder
{
return {};
}
else if (name === 'OES_element_index_uint' && extention.indexOf('GL_OES_element_index_uint') != -1)
else if (name === 'OES_element_index_uint' && (extention.indexOf('GL_OES_element_index_uint') != -1))
{
return {};
}
@@ -1400,15 +1400,19 @@ class GLCommandEncoder
TEXTURE_MAX_ANISOTROPY_EXT : 34046,
};
}
else if (name.indexOf('ANGLE_instanced_arrays') != -1 && (conchConfig.glCaps & GL_CAPS.INSTANCEING))
else if (name.indexOf('ANGLE_instanced_arrays') != -1 && ((extention.indexOf('_instanced_arrays') != -1) || version.indexOf("OpenGL ES 3.") != -1))
{
return new ANGLEInstancedArrays(this);
}
else if (name.indexOf('OES_vertex_array_object') != -1 && extention.indexOf('GL_OES_vertex_array_object') != -1)
else if (name.indexOf('OES_vertex_array_object') != -1 && (extention.indexOf('GL_OES_vertex_array_object') != -1))
{
return new OESVertexArrayObject(this);
}
else if (name.indexOf('OES_texture_half_float') != -1 && extention.indexOf('GL_OES_texture_half_float') != -1)
else if (name.indexOf('OES_texture_float') != -1 && extention.indexOf('GL_OES_texture_float') != -1)
{
return {};
}
else if (name.indexOf('OES_texture_half_float') != -1 && (extention.indexOf('GL_OES_texture_half_float') != -1))
{
return {HALF_FLOAT_OES: 36193};
}
+5 -6
View File
@@ -824,13 +824,12 @@ namespace laya
{
case GL_UNPACK_ALIGNMENT:
case GL_PACK_ALIGNMENT:
return;
::glPixelStorei(pname, param);
break;
case 0x9240://UNPACK_FLIP_Y_WEBGL
m_bFlipY = (param != 0);
break;
}
::glPixelStorei(pname, param);
#ifdef DEBUG_WEBGL
LOGI("pixelStorei name=%d,param=%d", pname, param);
getError();
@@ -948,7 +947,7 @@ namespace laya
void JCLayaGL::_texImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void* pixels)
{
if (format != GL_RGBA) {
::glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
// ::glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
}
if (pixels == NULL)
{
@@ -974,7 +973,7 @@ namespace laya
}
if (format != GL_RGBA) {
::glPixelStorei(GL_UNPACK_ALIGNMENT, 4);
// ::glPixelStorei(GL_UNPACK_ALIGNMENT, 4);
}
}
void JCLayaGL::flipY(GLenum format, GLsizei width, GLsizei height, void* pixels)
@@ -1026,9 +1025,9 @@ namespace laya
}
if (format != GL_RGBA)
{
::glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
//::glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
::glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels);
::glPixelStorei(GL_UNPACK_ALIGNMENT, 4);
//::glPixelStorei(GL_UNPACK_ALIGNMENT, 4);
}
else
{