android - रोबोट २.० मूवी



एंड्रॉइड ओपनएल ईएस 2.0 में खींचा एक वर्ग का बिटमैप बनाना (1)

यह glReadPixels () का उपयोग किया जाता है यह धीमा है, लेकिन एंड्रॉइड पर OpenGL ES 2.0 के साथ उपलब्ध एकमात्र तरीका है। जावा में:

Bitmap buttonBitmap = Bitmap.createBitmap(mWidth, mHeight, Bitmap.Config.ARGB_8888);
ByteBuffer byteBuffer = ByteBuffer.allocateDirect(mWidth * mHeight * 4);
GLES20.glReadPixels(0, 0, mWidth, mHeight, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, byteBuffer);
buttonBitmap.copyPixelsFromBuffer(byteBuffer);

हालांकि, यह काफी तेज है यदि मूल कोड में लागू किया गया है:

JNIEXPORT jboolean JNICALL Java_com_CopyToBitmap(JNIEnv * env, jclass clazz, jobject bitmap)
{
AndroidBitmapInfo   BitmapInfo;
void *              pPixels;
int                 ret;

if ((ret = AndroidBitmap_getInfo(env, bitmap, &BitmapInfo)) < 0)
{
    LOGE("Error - AndroidBitmap_getInfo() Failed! error: %d", ret);
    return JNI_FALSE;
}

if (BitmapInfo.format != ANDROID_BITMAP_FORMAT_RGBA_8888)
{
    LOGE("Error - Bitmap format is not RGBA_8888!");
    return JNI_FALSE;
}

if ((ret = AndroidBitmap_lockPixels(env, bitmap, &pPixels)) < 0)
{
    LOGE("Error - AndroidBitmap_lockPixels() Failed! error: %d", ret);
    return JNI_FALSE;
}

glReadPixels(0, 0, BitmapInfo.width, BitmapInfo.height, GL_RGBA, GL_UNSIGNED_BYTE, pPixels);

AndroidBitmap_unlockPixels(env, bitmap);
return JNI_TRUE;
}

मैंने ओपनएल ईएस 2.0 का इस्तेमाल करते हुए एक स्क्वायर खींचा है और अब मैं उस खींचा वर्ग के बिटमैप को बनाना चाहता हूं। क्या कोई मुझे मार्गदर्शन कर सकता है कि वह कैसे करें? कृपया मुझे बताएं कि मेरा प्रश्न स्पष्ट नहीं है। धन्यवाद





android-bitmap