JNIEXPORT void JNICALL Java_com_wiyun_engine_nodes_SpriteEx_nativeInit__Lcom_wiyun_engine_opengl_Texture2D_2
  (JNIEnv* env, jobject thiz, jobject tex) {
	wyTexture2D* texNode = (wyTexture2D*)env->GetIntField(tex, g_fid_BaseObject_mPointer);
	wySpriteEx* sprite = WYNEW wySpriteEx(texNode);
	env->SetIntField(thiz, g_fid_BaseObject_mPointer, (jint)sprite);
	wyObjectLazyRelease(sprite);
}
예제 #2
0
wySpriteEx* wySpriteEx::make(wySpriteBatchNode* pBatchNode, wyRect r, int zOrder) {
    /*
     * 这里把autoRelease移到前面,因为autoRelease有可能不在gl线程中执行,导致
     * 对象被放入delay release pool, 而后面的addChildLocked可以把它清除出
     * delay pool. 如果autorelease放在后面就不会了。也许大部分情况下没什么问题,
     * 但是如果恰好第三方应用在之后也没有继续retain的话,就导致它一直在delay pool
     * 里面呆着而无法释放了,在director end之前它将无法被清除。
     */
    wySpriteEx* sprite = WYNEW wySpriteEx(pBatchNode->getTexture(), r);
    sprite->autoRelease();
    pBatchNode->addChildLocked(sprite, zOrder);
    return sprite;
}
예제 #3
0
wySpriteEx* wySpriteEx::make(wySpriteBatchNode* pBatchNode, wyZwoptexFrame* f, int zOrder) {
    wySpriteEx* sprite = WYNEW wySpriteEx(pBatchNode->getTexture(), f);
    sprite->autoRelease();
    pBatchNode->addChildLocked(sprite, zOrder);
    return sprite;
}
예제 #4
0
wySpriteEx* wySpriteEx::make(wyTexture2D* pTex, wyZwoptexFrame* f) {
    wySpriteEx* sprite = WYNEW wySpriteEx(pTex, f);
    sprite->autoRelease();
    return sprite;
}
예제 #5
0
wySpriteEx* wySpriteEx::make(wyTexture2D* pTex, wyRect r) {
    wySpriteEx* sprite = WYNEW wySpriteEx(pTex, r);
    sprite->autoRelease();
    return sprite;
}