Skip to content

Commit e13ed1a

Browse files
committed
minor tweaks. Mostly checks that the canvas is enabled
1 parent 8cf42bd commit e13ed1a

9 files changed

+31
-52
lines changed

src/hacks/effectsCaching.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { NAMESPACE } from 'src/constants.ts';
22
import { SETTINGS } from 'src/settings/constants.ts';
33
import { getSetting } from 'src/settings/settings.ts';
4+
import { FOUNDRY_API } from 'src/utils/foundryShim.ts';
45
import { getBitmapCacheResolution } from 'src/utils/getBitmapCacheResolution.ts';
56

67
function refreshEffectCache(object: PIXI.DisplayObject) {
@@ -59,7 +60,7 @@ let enableEffectsCaching = () => {
5960

6061
const enabled = getSetting(SETTINGS.TokenBarsCaching);
6162

62-
if (!enabled) {
63+
if (!enabled || !FOUNDRY_API.hasCanvas) {
6364
return;
6465
}
6566

src/hacks/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ import { enableReducedLightingResolution } from './reduceLightingResolution.ts';
55
import { enableSpritesheetSubstitution } from './spritesheetSubstitution.ts';
66
import { enableTokenBarsCaching } from './tokenBarsCaching.ts';
77
import { enableTokenRingSpritesheetSupport } from './tokenRingSpritesheetSupport.ts';
8-
import { useOooTokenRendering } from './useOooTokenRendering.ts';
8+
import { enableOooTokenRendering } from './useOooTokenRendering.ts';
99

1010
Hooks.once('setup', () => {
11-
useOooTokenRendering();
11+
enableOooTokenRendering();
1212
enableEffectsCaching();
1313
enableTokenBarsCaching();
1414
enableTokenRingSpritesheetSupport();

src/hacks/precomputedNoiseTextures.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -486,10 +486,15 @@ function patchShaderFBM() {
486486
async function enablePrecomputedNoiseTextures() {
487487
const enabled = getSetting(SETTINGS.PrecomputedNoiseTextures);
488488

489-
if (!enabled) {
489+
if (!enabled || !FOUNDRY_API.hasCanvas) {
490490
return;
491491
}
492492

493+
// make sure basis transcoder is enabled (it is by default in v13+)
494+
if (FOUNDRY_API.generation < 13) {
495+
CONFIG.Canvas.transcoders.basis = true;
496+
}
497+
493498
registerWrapperForVersion(AdaptiveLightingShader__updateCommonUniforms, 'WRAPPER', {
494499
v12: 'foundry.canvas.sources.BaseLightSource.prototype._updateCommonUniforms',
495500
v13: 'foundry.canvas.sources.BaseLightSource.prototype._updateCommonUniforms',
Lines changed: 10 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,7 @@
11
import type { RENDER_SCALE_DEFAULTS } from 'src/settings/constants.ts';
22
import { SETTINGS } from 'src/settings/constants.ts';
33
import { getSetting } from 'src/settings/settings.ts';
4-
5-
function CanvasBackgroundAlterationEffects__draw(this: any, wrapped: (...args: any) => void, ...args: any[]) {
6-
wrapped(...args);
7-
if (!getSetting<boolean>(SETTINGS.ReduceLightingResolution)) {
8-
return;
9-
}
10-
11-
const customRenderScale = getSetting<typeof RENDER_SCALE_DEFAULTS>(SETTINGS.CustomRenderScale);
12-
setReducedResolution(this.lighting?.filter, customRenderScale.background);
13-
}
14-
15-
function CanvasColorationEffects__draw(this: any, wrapped: (...args: any) => void, ...args: any[]) {
16-
wrapped(...args);
17-
if (!getSetting<boolean>(SETTINGS.ReduceLightingResolution)) {
18-
return;
19-
}
20-
21-
const customRenderScale = getSetting<typeof RENDER_SCALE_DEFAULTS>(SETTINGS.CustomRenderScale);
22-
setReducedResolution(this.filter, customRenderScale.coloration);
23-
}
24-
25-
function CanvasIlluminationEffects__draw(this: any, wrapped: (...args: any) => void, ...args: any[]) {
26-
wrapped(...args);
27-
if (!getSetting<boolean>(SETTINGS.ReduceLightingResolution)) {
28-
return;
29-
}
30-
31-
const customRenderScale = getSetting<typeof RENDER_SCALE_DEFAULTS>(SETTINGS.CustomRenderScale);
32-
setReducedResolution(this.filter, customRenderScale.illumination);
33-
}
34-
35-
function CanvasDarknessEffects__draw(this: any, wrapped: (...args: any) => void, ...args: any[]) {
36-
wrapped(...args);
37-
if (!getSetting<boolean>(SETTINGS.ReduceLightingResolution)) {
38-
return;
39-
}
40-
41-
const customRenderScale = getSetting<typeof RENDER_SCALE_DEFAULTS>(SETTINGS.CustomRenderScale);
42-
setReducedResolution(this.filter, customRenderScale.darkness);
43-
}
4+
import { FOUNDRY_API } from 'src/utils/foundryShim.ts';
445

456
function setReducedResolution(filter: PIXI.Filter, scale: number | undefined) {
467
if (!filter) {
@@ -55,6 +16,10 @@ function setReducedResolution(filter: PIXI.Filter, scale: number | undefined) {
5516
}
5617

5718
async function enableReducedLightingResolution() {
19+
if (!FOUNDRY_API.hasCanvas) {
20+
return;
21+
}
22+
5823
Hooks.on('canvasReady', () => {
5924
if (!getSetting<boolean>(SETTINGS.ReduceLightingResolution)) {
6025
return;
@@ -65,10 +30,14 @@ async function enableReducedLightingResolution() {
6530
}
6631

6732
function configureEffectsResolution(customRenderScale: typeof RENDER_SCALE_DEFAULTS | null | undefined) {
33+
if (!FOUNDRY_API.hasCanvas) {
34+
return;
35+
}
36+
6837
setReducedResolution(canvas?.effects?.background?.lighting?.filter, customRenderScale?.background);
6938
setReducedResolution(canvas?.effects?.illumination?.filter, customRenderScale?.illumination);
7039
setReducedResolution(canvas?.effects?.coloration?.filter, customRenderScale?.coloration);
7140
setReducedResolution(canvas?.effects?.darkness?.filter, customRenderScale?.darkness);
7241
}
7342

74-
export { configureEffectsResolution, enableReducedLightingResolution, toggleReducedLightingResolution };
43+
export { configureEffectsResolution, enableReducedLightingResolution };

src/hacks/spritesheetSubstitution.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -402,12 +402,12 @@ async function loadBaseSpritesheets(): Promise<boolean> {
402402
async function enableSpritesheetSubstitution() {
403403
const enabled = getSetting(SETTINGS.SpritesheetSubstitution);
404404

405-
if (!enabled) {
405+
if (!enabled || !FOUNDRY_API.hasCanvas) {
406406
return;
407407
}
408408

409409
// make sure basis transcoder is enabled (it is by default in v13+)
410-
if (FOUNDRY_API.game.release.generation < 13) {
410+
if (FOUNDRY_API.generation < 13) {
411411
CONFIG.Canvas.transcoders.basis = true;
412412
}
413413

src/hacks/tokenBarsCaching.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { NAMESPACE } from 'src/constants.ts';
22
import { SETTINGS } from 'src/settings/constants.ts';
33
import { getSetting } from 'src/settings/settings.ts';
4+
import { FOUNDRY_API } from 'src/utils/foundryShim.ts';
45
import { getBitmapCacheResolution } from 'src/utils/getBitmapCacheResolution.ts';
56

67
async function cacheResourceBars(this: Token, wrapped: Function, ...args: any[]) {
@@ -44,7 +45,7 @@ let enableTokenBarsCaching = () => {
4445
}
4546

4647
const enabled = getSetting(SETTINGS.TokenBarsCaching);
47-
if (!enabled) {
48+
if (!enabled || !FOUNDRY_API.hasCanvas) {
4849
return;
4950
}
5051

src/hacks/tokenRingSpritesheetSupport.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ function TokenRingSamplerShader__packInterleavedGeometry(
9999
async function enableTokenRingSpritesheetSupport() {
100100
const enabled = getSetting(SETTINGS.TokenRingSpritesheetSupport);
101101

102-
if (!enabled) {
102+
if (!enabled || !FOUNDRY_API.hasCanvas) {
103103
return;
104104
}
105105

src/hacks/useOooTokenRendering.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -315,7 +315,7 @@ function renderTokensOoo(this: PIXI.Container, renderer: PIXI.Renderer) {
315315

316316
function enableOooTokenRendering() {
317317
const enabled = getSetting(SETTINGS.OptimizeTokenUiBatching);
318-
if (!enabled) {
318+
if (!enabled || !FOUNDRY_API.hasCanvas) {
319319
return;
320320
}
321321

@@ -325,10 +325,10 @@ function enableOooTokenRendering() {
325325
* out of order to increase batching
326326
*/
327327
const TokenLayerPrototype = FOUNDRY_API.generation >= 13 ? foundry.canvas.layers.TokenLayer : TokenLayer;
328-
wrapFunction(TokenLayerPrototype, '_draw', function (this: TokenLayer) {
328+
wrapFunction(TokenLayerPrototype.prototype, '_draw', function (this: TokenLayer) {
329329
if (this.objects) {
330330
this.objects.render = renderTokensOoo;
331331
}
332332
});
333333
}
334-
export { enableOooTokenRendering as useOooTokenRendering };
334+
export { enableOooTokenRendering };

src/utils/foundryShim.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,7 @@ export const FOUNDRY_API = {
99
get generation(): number {
1010
return game.release.generation;
1111
},
12+
get hasCanvas(): boolean {
13+
return !game.settings.get('core', 'noCanvas');
14+
},
1215
};

0 commit comments

Comments
 (0)