public void draw() {
        if (!this.isDrawing) {
            throw new IllegalStateException("Not tesselating!");
        } else {
            this.isDrawing = false;
            if (!this.renderingChunk) {
                GL11.glEnd();
//                this.checkOpenGlError();
            } else if (this.vertexCount > 0) {
                this.byteBuffer.position(0);
                this.byteBuffer.limit(this.rawBufferIndex * 4);
                GL11.glEnableClientState('聸');
                GL11.glEnableClientState('聶');
                GL11.glEnableClientState('聴');
                if (this.useVBO) {
                    this.vboIndex = (this.vboIndex + 1) % this.vboCount;
                    ARBVertexBufferObject.glBindBufferARB('裤', this.vertexBuffers.get(this.vboIndex));
                    ARBVertexBufferObject.glBufferDataARB('裤', this.byteBuffer, '裠');
                    GL11.glTexCoordPointer(2, 5126, 32, 12L);
                    GL11.glColorPointer(4, 5121, 32, 20L);
                    GL11.glVertexPointer(3, 5126, 32, 0L);
                } else {
                    this.floatBuffer.position(3);
                    GL11.glTexCoordPointer(2, 32, this.floatBuffer);
                    this.byteBuffer.position(20);
                    GL11.glColorPointer(4, true, 32, this.byteBuffer);
                    this.floatBuffer.position(0);
                    GL11.glVertexPointer(3, 32, this.floatBuffer);
                }

                if (this.drawMode == 7 && Tessellator.convertQuadsToTriangles) {
                    GL11.glDrawArrays(4, 0, this.vertexCount);
                } else {
                    GL11.glDrawArrays(this.drawMode, 0, this.vertexCount);
                }

                GL11.glDisableClientState('聸');
                GL11.glDisableClientState('聶');
                GL11.glDisableClientState('聴');
            }

            this.reset();
        }
    }