GithubHelp home page GithubHelp logo

ackwell / browserhost Goto Github PK

View Code? Open in Web Editor NEW
9.0 1.0 12.0 315 KB

Dalamud plugin for in-game browser rendering. Think OverlayPlugin, but it's in the game itself.

License: GNU Lesser General Public License v3.0

C# 100.00%
ffxiv dalamud dalamud-plugin

browserhost's Introduction

BrowserHost

Dalamud plugin for in-game browser rendering. Think OverlayPlugin, but it's in the game itself.

browserhost's People

Contributors

ackwell avatar zacharied avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

browserhost's Issues

Browser Host Plugin Triggers Plug-In Update Message on every launch.

Every time I launch FFXIV using the Launcher, I get the message 'One or more of your plugins needs to be updated. Please use the /xlplugins command in-game to update them!'. However, when I go and update, it only shows that Browser Host updates and the version number doesn't change [it was last at version 1.1.0.3 and updating didn't change it from 1.1.0.3]

Steps to reproduce the bug:

  1. Launch FFXIV through Launcher
  2. Update Message Shows after login
  3. Click Update
  4. Browser Host "updates"
  5. Version number is the same for Browser Host
  6. Repeat whole process and same thing.

Expected behavior
Should not be telling me to update every login and do nothing.

Other information (please complete the following information):
Operating System: Windows 10 Home Edition
XIVLauncher version: v5.1.1.0
Launching as admin?: No
Using Steam?: No
Addons/Plugins enabled: Yes

[question] URLs with "file://" don't seem to be working.

Hello. I've been trying to use browser host as a way to get rid of annoying ACT web browsers as I use multiple screens and moving them everywhere with the game is annoying. I would like to use browser host as an answer to have the callouts from other plugins in the game's window and continue positioned and scale as the resolution I'm using (which the plugin already does)

Right now my parser is working just fine by using the following URL:
https://hibiyasleep.github.io/kagerou/overlay/?HOST_PORT=ws://127.0.0.1:10501/

But if I try using other types of URLs like the following:
file://D:/Dropbox/Games/FINAL%20FANTASY%20XIV/ACT/OverlayPlugin/cactbot/ui/oopsyraidsy/oopsyraidsy.html?OVERLAY_WS=ws://127.0.0.1:10501/ws
The browser host doesn't seem to update but there are no errors in the console (I opened the dev tools to check already and it loads fine but seems the data doesn't travel)

I'm guessing it has something to do with not being in a host but a local file and the chrome build used in this plugin don't recognize continuing reading data from the localhost.

Is there a solution for this? Or is there a workaround for it?

Inlays discolour UI windows behind them when using GShade

Describe the bug here:
Browser Host inlays seem to be doubly affected by GShade. This primarily affects game UI windows. However it's also visible on the Duty list UI and is plainly visible on the character selection screen.

Steps to reproduce the bug:

  1. Install GShade and use a preset that noticeably impacts graphics
  2. Install XIVLauncher + Browser Host.
  3. Setup a Browser Host inlay that should be transparent (such as a Cactbot Raidboss Timeline/Alerts URL)
  4. Drag a game UI window (such as duty finder or inventory) underneath where you've placed your inlay.
  5. Visit character selection screen.

Expected behavior
Nothing out of the ordinary. Inlay is transparent. No discolouration or graphical oddities on UI elements or the character selection screen.

Actual behavior
The area of the UI covered by the transparent inlay has been affected by GShade a 2nd time. Because of this, it is darker (most GShade presets darken/increase contrast/saturation) and looks very strange. Areas of character selection screen have dark rectangles.

Screenshots
Example 1 (Cactbot timeline-only inlay, hidden)
Example 1 (inlay hidden)

Example 1 (Cactbot timeline-only inlay, transparent but not hidden)
Example 1 (inlay transparent but not hidden)

Example 2 (Cactbot alerts-only inlay, hidden)
Example 2 (inlay hidden)

Example 2 (Cactbot alerts-only inlay, transparent but not hidden)
Example 2 (inlay transparent but not hidden)

Example 3 (Char select, GShade OFF, both Cactbot inlays transparent but not hidden)
Example 3 (Char select, GShade off)

Example 3 (Char select, GShade ON, both Cactbot inlays transparent but not hidden)
Example 3 (Char select, GShade on - see where the Browser Host inlays are)

Other information:
Operating System: Windows 10
XIVLauncher version: 6.0.4
Launching as admin?: Nope
Using Steam?: Yep
Addons/Plugins enabled:
These

Additional information
GShade preset: SerenayaRealismGameplay

If I toggle GShade off, the problem does not occur. It seems to be an interaction between GShade and Browser Host.

Setting Browser Host to the experimental render mode (BitmapBuffer) under advanced settings does nothing to alleviate the issue.

Additionally, this problem does not occur with transparent RemindMe windows, so there must be a difference between how RemindMe and Browser Host render their stuff.

Cef Dependency Issue

  1. Install Browser Host > "BrowserHost Dependency" window shows up
    image

  2. Click install missing dependencies > installing starts
    image

then it freezes and nothing happens.

Kagerou does not work anymore, probably due to outdated embedded browser

As of today, I cannot use BrowserHost in conjunction with kagerou 0.8.11, as it claims it failed to load, and "click here for more information" redirects to a site stating that this is due to an outdated browser. ACT's OverlayPlugin however works perfectly fine.

kagerou with BrowserHost:

kagerou with BrowserHost

kagerou with OverlayPlugin:

kagerou with OverlayPlugin

website describing the error in BrowserHost:

website describing the error in BrowserHost

ACT replacement

For using this in place of act how would you go about setting up kagerou for an inlay? Or cactbot timers
The html outputs from those parsers don't seem to do anything with the inlay so assuming theres an extra step required or something that may not even be possible.

API4 Plugin wont show kagerou

Updated: Finally was able to get it installed and now it just doesnt show kagerou. I have the correct WS url, i tested in a web browser and it shows fine. Tested in Linux (FF14 Wine 6 Lutris install) and on Mac Crossover as well!

Screen Shot 2021-10-03 at 1 23 26 AM

Screen Shot 2021-10-03 at 1 27 04 AM
Frame transport stuck on initialising

Silly questions

What are the relevant differences between using this and a simple Overlay? My OBS doesn't seem to be able to pick it up with a game capture source.

I understand that it's a browser view so I can even display amazon's home page if I wanted to, but what specific use cases drove the development for this tool? And how do those use cases benefit from this tool as opposed to other existing solutions?

Add alternate frame transport

Currently, I'm using a DirectX shared texture to transport frame data between the render process and the game. This is, unfortunately, unsupported on linux/wine/dxvk - with no solution in sight.

Look into adding a secondary frame transport method that will work on linux.

Current idea: Transport dirty bitmap rect from render to plugin over shared memory (might need a secondary loop separate from the ipc buffer) - plugin can then use a regular dynamic texture updating with the dirty rects.

Twitch integration

Would it be possible to add Twitch integration into the browser ?
It currently gives an error :
This video is either unavailable or not supported in this browser. (Error #4000)
Or is there a way to make a workaround ?

6.0

Any plans to update this for Endwalker soon?

[Feature Request] Option to make window non-overlay

I noticed that Dalamud features the ability to make Plugin drawn windows "part of the game" as in Tooltips display on top of them. I was originally looking into integrating my ACT window into my game for that exact reason unfortunately right now the Browser host very much acts like an overlay and I was wondering If it would be possible to implement a toggle option for that.

[enhancement] Reload on macro command

Hello! I've been loving the changes this plugin has been getting. I would like to know if it's possible to add a way to reload by macro command like:

/bh inlay parser reload

Thank you for your hard work!

[Enhancement] Scale browser inlay

Hello! I've started using the plugin to show an ACT overlay, however I play on a 4k resolution where I scale up most UI elements for readability but the plugin doesn't seem to have this option so the bars/text in the screenshot below are borderline too small for me to read - if I could scale the overlay to 150-200% that would be super helpful.

image

Using with ACT

Sorry about the silly question, but I can't find any documentation on how to use this with ACT.
The description makes me think this can replace OverlayPlugin, but I can't make it work.

Add location support for LPL

needed so lpl can set location when loading outside plugin dir.

note from cara:

add

public string Location { get; private set; } = Assembly.GetExecutingAssembly().Location;
private void SetLocation(string path) {
   Location = path
}

and then any time you want to get the plugin directory use Location
LivePluginLoader will call the SetLocation method when loading the plugin

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.