android :ANativeWindow

490 阅读1分钟

some API

ANativeWindow* ANativeWindow_fromSurface(JNIEnv* env, jobject surface);

  • 接收 Java 侧 surface 对象,转为 ANativeWindow

保存and 释放 ANativeWindow引用

  • void ANativeWindow_acquire(ANativeWindow* window);
  • void ANativeWindow_release(ANativeWindow* window);

向 ANativeWindow_Buffer 提交数据,并绘制

  • int32_t ANativeWindow_lock(ANativeWindow* window, ANativeWindow_Buffer* outBuffer, ARect* inOutDirtyBounds);
  • int32_t ANativeWindow_unlockAndPost(ANativeWindow* window);

获取 window surface 尺寸和格式

  • int32_t ANativeWindow_getWidth(ANativeWindow* window);
  • int32_t ANativeWindow_getHeight(ANativeWindow* window);
  • int32_t ANativeWindow_getFormat(ANativeWindow* window);