अपने इंजन से संदर्भ को अपने प्रस्तुतकर्ता को पास करें। फिर, संपत्ति लोड करने के लिए यहां कुछ नमूना कोड है। यानी संसाधन आईडी आपका R.drawable.xxx बिटमैप है। मेरे पास यह एक बनावट एटलस क्लास के अंदर है, इसलिए कुछ चीजें पूरी तरह से विधि में निहित नहीं हो सकती हैं। उदाहरण के लिए मैं बिटमैप लोड करने के लिए उपयोग किए जाने वाले विकल्पों में inscaled = false शामिल होगा, लेकिन जो भी आपके लिए काम करता है। उदाहरण के लिए मैंने अपनी त्रुटि प्रबंधन को हटाने के लिए इसे भी संशोधित किया।
/**
* Load the resource and push it to the gpu memory, setup default values
* @param gl
* @param context
* @param resourceID
* @return glTextureID
*
*/
public int loadFromContext(GL10 gl, Context context, int resourceID) {
mResourceID = resourceID;
Bitmap bmp = BitmapFactory.decodeResource(context.getResources(), resourceID, sBitmapOptions);
sourceWidth = bmp.getWidth();
sourceHeight = bmp.getHeight();
gl.glGenTextures(1, mGLTextures, 0);
mGLTextureID = mGLTextures[0];
// bind and set min and mag scaling to bilinear
gl.glBindTexture(GL10.GL_TEXTURE_2D, mGLTextureID);
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_LINEAR);
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR);
// repeat by default
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, GL10.GL_REPEAT);
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_REPEAT);
// upload bmp to video memory
GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bmp, 0);
// check error
int error = gl.glGetError();
if (error != GL10.GL_NO_ERROR) {
// cleanup
bmp.recycle();
bmp = null;
mLoaded = false;
// error handling here
} else {
// unbind.
gl.glBindTexture(GL10.GL_TEXTURE_2D, 0);
bmp.recycle();
bmp = null;
mLoaded = true;
mDirty = true;
}
return mGLTextureID;
}