docs: public void flush() {
          synchronized (mBufferLock) {
              if (mCurrentBuffer == null) {
                  throw new IllegalStateException("No buffer to flush!");
              }
              --mBufferDepth;
              if (mBufferDepth == 0) {
                  final GLRunnable r = mRunnablePool.acquire();
                  r.set(mCurrentBuffer);
                  mCurrentBuffer = null;
                  mContext.runOnGlThread(r);
              }
          }
      }