예제 #1
0
        public static async Task <DuiBrowser> CreateDuiBrowser(string screenName, int width = 1280, int height = 720)
        {
            var resourceName = API.GetCurrentResourceName();

            var url = ConfigReader.GetConfigKeyValue(
                resourceName,
                "hypnonema_url",
                0,
                "https://thiago-dev.github.io/fivem-hypnonema");

            var posterUrl = ConfigReader.GetConfigKeyValue(
                resourceName,
                "hypnonema_poster_url",
                0,
                "https://thiago-dev.github.io/fivem-hypnonema");

            var duiBrowser = new DuiBrowser(screenName, posterUrl, url, width, height);

            while (!duiBrowser.IsDuiAvailable)
            {
                await BaseScript.Delay(250);
            }

            duiBrowser.CreateRuntimeTexture();

            // wait again for dui browser to be fully initialized
            // TODO: Is this additional delay necessary?
            await BaseScript.Delay(650);

            return(duiBrowser);
        }
예제 #2
0
        public async Task <DuiBrowser> AcquireDuiBrowser(Screen screen, int width = 1280, int height = 720)
        {
            DuiBrowser browser;

            try
            {
                browser = this.duiBrowsers.Pop();
            }
            catch (Exception)
            {
                // no browser left. create one
                browser = await DuiBrowser.CreateDuiBrowser(screen.Name, width, height);
            }

            browser.Init();

            return(browser);
        }
예제 #3
0
 public void ReleaseDuiBrowser(DuiBrowser browser)
 {
     this.duiBrowsers.Push(browser);
 }