mirror of
https://github.com/redphx/better-xcloud.git
synced 2025-08-06 21:28:27 +02:00
Add WebGL2 renderer
This commit is contained in:
29
src/modules/patches/expose-stream-session.js
Normal file
29
src/modules/patches/expose-stream-session.js
Normal file
@@ -0,0 +1,29 @@
|
||||
window.BX_EXPOSED.streamSession = this;
|
||||
|
||||
const orgSetMicrophoneState = this.setMicrophoneState.bind(this);
|
||||
this.setMicrophoneState = state => {
|
||||
orgSetMicrophoneState(state);
|
||||
|
||||
const evt = new Event(BxEvent.MICROPHONE_STATE_CHANGED);
|
||||
evt.microphoneState = state;
|
||||
|
||||
window.dispatchEvent(evt);
|
||||
};
|
||||
|
||||
window.dispatchEvent(new Event(BxEvent.STREAM_SESSION_READY));
|
||||
|
||||
// Patch updateDimensions() to make native touch work correctly with WebGL2
|
||||
let updateDimensionsStr = this.updateDimensions.toString();
|
||||
|
||||
// if(r){
|
||||
const renderTargetVar = updateDimensionsStr.match(/if\((\w+)\){/)[1];
|
||||
|
||||
updateDimensionsStr = updateDimensionsStr.replaceAll(renderTargetVar + '.scroll', 'scroll');
|
||||
|
||||
updateDimensionsStr = updateDimensionsStr.replace(`if(${renderTargetVar}){`, `
|
||||
if (${renderTargetVar}) {
|
||||
const scrollWidth = ${renderTargetVar}.dataset.width ? parseInt(${renderTargetVar}.dataset.width) : ${renderTargetVar}.scrollWidth;
|
||||
const scrollHeight = ${renderTargetVar}.dataset.height ? parseInt(${renderTargetVar}.dataset.height) : ${renderTargetVar}.scrollHeight;
|
||||
`);
|
||||
|
||||
eval(`this.updateDimensions = function ${updateDimensionsStr}`);
|
Reference in New Issue
Block a user