@flighthq/render-gl 0.3.0-next.1220.6982c21 → 0.3.0-next.1272.222de94

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"glBackground.d.ts","sourceRoot":"","sources":["../src/glBackground.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAI9D,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAkB7D"}
1
+ {"version":3,"file":"glBackground.d.ts","sourceRoot":"","sources":["../src/glBackground.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAI9D,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAwB7D"}
@@ -1,3 +1,4 @@
1
+ import { srgbChannelToLinear } from '@flighthq/color/contract';
1
2
  import { getGlRenderStateRuntime } from './glRenderState';
2
3
  export function renderGlBackground(state) {
3
4
  const runtime = getGlRenderStateRuntime(state);
@@ -6,7 +7,8 @@ export function renderGlBackground(state) {
6
7
  gl.viewport(viewport?.x ?? 0, viewport?.y ?? 0, viewport?.width ?? state.canvas.width, viewport?.height ?? state.canvas.height);
7
8
  const rgba = state.backgroundColorRgba;
8
9
  if (rgba.length >= 4 && rgba[3] > 0) {
9
- gl.clearColor(rgba[0], rgba[1], rgba[2], rgba[3]);
10
+ const linear = runtime.currentRenderTarget?.colorSpace === 'linear';
11
+ gl.clearColor(linear ? srgbChannelToLinear(rgba[0]) : rgba[0], linear ? srgbChannelToLinear(rgba[1]) : rgba[1], linear ? srgbChannelToLinear(rgba[2]) : rgba[2], rgba[3]);
10
12
  }
11
13
  else {
12
14
  gl.clearColor(0, 0, 0, 0);
@@ -1 +1 @@
1
- {"version":3,"file":"glBackground.js","sourceRoot":"","sources":["../src/glBackground.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,MAAM,UAAU,kBAAkB,CAAC,KAAoB;IACrD,MAAM,OAAO,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;IACpB,MAAM,QAAQ,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAC9C,EAAE,CAAC,QAAQ,CACT,QAAQ,EAAE,CAAC,IAAI,CAAC,EAChB,QAAQ,EAAE,CAAC,IAAI,CAAC,EAChB,QAAQ,EAAE,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,EACrC,QAAQ,EAAE,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CACxC,CAAC;IACF,MAAM,IAAI,GAAG,KAAK,CAAC,mBAAmB,CAAC;IACvC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QACpC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;SAAM,CAAC;QACN,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,CAAC;IACD,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC;IAC9B,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"glBackground.js","sourceRoot":"","sources":["../src/glBackground.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAG/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,MAAM,UAAU,kBAAkB,CAAC,KAAoB;IACrD,MAAM,OAAO,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;IACpB,MAAM,QAAQ,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAC9C,EAAE,CAAC,QAAQ,CACT,QAAQ,EAAE,CAAC,IAAI,CAAC,EAChB,QAAQ,EAAE,CAAC,IAAI,CAAC,EAChB,QAAQ,EAAE,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,EACrC,QAAQ,EAAE,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CACxC,CAAC;IACF,MAAM,IAAI,GAAG,KAAK,CAAC,mBAAmB,CAAC;IACvC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAmB,EAAE,UAAU,KAAK,QAAQ,CAAC;QACpE,EAAE,CAAC,UAAU,CACX,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAC/C,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAC/C,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAC/C,IAAI,CAAC,CAAC,CAAC,CACR,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,CAAC;IACD,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC;IAC9B,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAClC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flighthq/render-gl",
3
- "version": "0.3.0-next.1220.6982c21",
3
+ "version": "0.3.0-next.1272.222de94",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/flighthq/flight.git",
@@ -36,14 +36,15 @@
36
36
  "clean:dist": "tsx ../../scripts/clean-package-dist.ts"
37
37
  },
38
38
  "dependencies": {
39
- "@flighthq/entity": "0.3.0-next.1220.6982c21",
40
- "@flighthq/log": "0.3.0-next.1220.6982c21",
41
- "@flighthq/scene2d": "0.3.0-next.1220.6982c21",
42
- "@flighthq/geometry": "0.3.0-next.1220.6982c21",
43
- "@flighthq/render": "0.3.0-next.1220.6982c21",
44
- "@flighthq/signals": "0.3.0-next.1220.6982c21",
45
- "@flighthq/texture": "0.3.0-next.1220.6982c21",
46
- "@flighthq/types": "0.3.0-next.1220.6982c21"
39
+ "@flighthq/color": "0.3.0-next.1272.222de94",
40
+ "@flighthq/entity": "0.3.0-next.1272.222de94",
41
+ "@flighthq/log": "0.3.0-next.1272.222de94",
42
+ "@flighthq/scene2d": "0.3.0-next.1272.222de94",
43
+ "@flighthq/geometry": "0.3.0-next.1272.222de94",
44
+ "@flighthq/render": "0.3.0-next.1272.222de94",
45
+ "@flighthq/signals": "0.3.0-next.1272.222de94",
46
+ "@flighthq/texture": "0.3.0-next.1272.222de94",
47
+ "@flighthq/types": "0.3.0-next.1272.222de94"
47
48
  },
48
49
  "devDependencies": {
49
50
  "typescript": "^5.3.0"
@@ -1,3 +1,4 @@
1
+ import { srgbChannelToLinear } from '@flighthq/color/contract';
1
2
  import { BlendMode } from '@flighthq/types/contract';
2
3
 
3
4
  import { renderGlBackground } from './glBackground';
@@ -51,4 +52,18 @@ describe('renderGlBackground', () => {
51
52
  renderGlBackground(state);
52
53
  expect(gl.clearColor).toHaveBeenCalledWith(0.5, 0.25, 0.75, 0.8);
53
54
  });
55
+
56
+ it('decodes an sRGB background when the active target stores linear scene color', () => {
57
+ const { state, gl } = createGlState({ backgroundColorRgba: [0.5, 0.25, 0.75, 0.8] });
58
+ getGlRenderStateRuntime(state).currentRenderTarget = { colorSpace: 'linear' } as never;
59
+
60
+ renderGlBackground(state);
61
+
62
+ expect(gl.clearColor).toHaveBeenCalledWith(
63
+ srgbChannelToLinear(0.5),
64
+ srgbChannelToLinear(0.25),
65
+ srgbChannelToLinear(0.75),
66
+ 0.8,
67
+ );
68
+ });
54
69
  });