code: def getOverlayTexture(self, ulOverlayHandle, pNativeTextureRef):
          
  
          fn = self.function_table.getOverlayTexture
          pNativeTextureHandle = c_void_p()
          pWidth = c_uint32()
          pHeight = c_uint32()
          pNativeFormat = c_uint32()
          pAPIType = ETextureType()
          pColorSpace = EColorSpace()
          pTextureBounds = VRTextureBounds_t()
          result = fn(ulOverlayHandle, byref(pNativeTextureHandle), pNativeTextureRef, byref(pWidth), byref(pHeight), byref(pNativeFormat), byref(pAPIType), byref(pColorSpace), byref(pTextureBounds))
          return result, pNativeTextureHandle.value, pWidth.value, pHeight.value, pNativeFormat.value, pAPIType, pColorSpace, pTextureBounds
docs: Get the native texture handle/device for an overlay you have created.
          On windows this handle will be a ID3D11ShaderResourceView with a ID3D11Texture2D bound.
          * The texture will always be sized to match the backing texture you supplied in SetOverlayTexture above.
          * You MUST call ReleaseNativeOverlayHandle() with pNativeTextureHandle once you are done with this texture.
          * pNativeTextureHandle is an OUTPUT, it will be a pointer to a ID3D11ShaderResourceView *.
          pNativeTextureRef is an INPUT and should be a ID3D11Resource *. The device used by pNativeTextureRef will be used to bind pNativeTextureHandle.