public void resize(int width, int height) { if (FBO != 0) { int[] args = { RBOC, RBOD, FBO }; GLES20.GlDeleteTextures(1, args, 0); GLES20.GlDeleteRenderbuffers(1, args, 1); GLES20.GlDeleteFramebuffers(1, args, 2); create(width, height); } }
private int setupRenderTextureAndRenderbuffer(int width, int height) { if (mTextureId != -1) { GLES20.GlDeleteTextures(1, new int[] { mTextureId }, 0); } if (mRenderbufferId != -1) { GLES20.GlDeleteRenderbuffers(1, new int[] { mRenderbufferId }, 0); } if (mFramebufferId != -1) { GLES20.GlDeleteFramebuffers(1, new int[] { mFramebufferId }, 0); } mTextureId = createTexture(width, height); checkGlError("setupRenderTextureAndRenderbuffer: create texture"); int[] renderbufferIds = new int[1]; GLES20.GlGenRenderbuffers(1, renderbufferIds, 0); GLES20.GlBindRenderbuffer(36161, renderbufferIds[0]); GLES20.GlRenderbufferStorage(36161, 33189, width, height); mRenderbufferId = renderbufferIds[0]; checkGlError("setupRenderTextureAndRenderbuffer: create renderbuffer"); int[] framebufferIds = new int[1]; GLES20.GlGenFramebuffers(1, framebufferIds, 0); GLES20.GlBindFramebuffer(36160, framebufferIds[0]); mFramebufferId = framebufferIds[0]; GLES20.GlFramebufferTexture2D(36160, 36064, 3553, mTextureId, 0); GLES20.GlFramebufferRenderbuffer(36160, 36096, 36161, renderbufferIds[0]); int status = GLES20.GlCheckFramebufferStatus(36160); if (status != 36053) { throw new Java.Lang.RuntimeException("Framebuffer is not complete: " + Java.Lang.Integer.ToHexString(status)); } GLES20.GlBindFramebuffer(36160, 0); return(framebufferIds[0]); }
public virtual void Delete() { int[] buffers = { id }; GLES20.GlDeleteRenderbuffers(1, buffers, 0); }