public static IEnumerator UpdatePageWithExistingTexture(PDFDocument document, int pageIndex, Texture2D existingTexture, PDFPageTextureHolder[] pageTextureHolderList)
        {
            PDFJS_Promise <PDFPage> pagePromise = document.GetPageAsync(pageIndex);

            while (!pagePromise.HasFinished)
            {
                yield return(null);
            }

            if (pagePromise.HasSucceeded)
            {
                PDFJS_Promise <Texture2D> renderPromise = PDFRenderer.RenderPageToExistingTextureAsync(pagePromise.Result, existingTexture);

                pageTextureHolderList[pageIndex].m_RenderingPromise = renderPromise;

                while (!renderPromise.HasFinished)
                {
                    yield return(null);
                }

                pageTextureHolderList[pageIndex].m_RenderingPromise = null;
                pageTextureHolderList[pageIndex].m_RenderingStarted = false;

                if (renderPromise.HasSucceeded)
                {
                    if (pageTextureHolderList[pageIndex].Texture != null &&
                        pageTextureHolderList[pageIndex].Texture != renderPromise.Result)
                    {
                        UnityEngine.Object.DestroyImmediate(pageTextureHolderList[pageIndex].Texture);
                        Resources.UnloadAsset(pageTextureHolderList[pageIndex].Texture);
                        pageTextureHolderList[pageIndex].Texture = null;
                    }

                    if (pageTextureHolderList[pageIndex].m_Visible)
                    {
                        pageTextureHolderList[pageIndex].Texture = renderPromise.Result;
                    }
                    else
                    {
                        UnityEngine.Object.DestroyImmediate(renderPromise.Result);
                        Resources.UnloadAsset(renderPromise.Result);
                        renderPromise.Result = null;
                    }
                }
            }
            else
            {
                pageTextureHolderList[pageIndex].m_RenderingPromise = null;
                pageTextureHolderList[pageIndex].m_RenderingStarted = false;
            }
        }