Skip to content

Commit 2e6d15a

Browse files
committed
Merge branch 'main' into texture-management-replace-finalizationregistry
2 parents c3a5df2 + 79ba0de commit 2e6d15a

File tree

6 files changed

+27
-22
lines changed

6 files changed

+27
-22
lines changed

examples/tests/dynamic-shader.ts

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -154,20 +154,23 @@ export default async function ({ renderer }: ExampleSettings) {
154154
y: 100,
155155
width: 250,
156156
height: 500,
157-
color: 0x00000000,
157+
color: 0xff0000ff,
158158
shader: renderer.createShader('DynamicShader', {
159159
effects: [
160160
{
161-
type: 'radius',
161+
type: 'linearGradient',
162162
props: {
163-
radius: 100,
163+
angle: 180,
164+
stops: [0.4, 0.8],
165+
colors: [0x0000ffff, 0x00000000],
164166
},
165167
},
166168
{
167-
type: 'border',
169+
type: 'linearGradient',
168170
props: {
169-
width: 20,
170-
color: 0x00ff00ff,
171+
angle: -90,
172+
stops: [0.1, 0.75],
173+
colors: [0x0000ffff, 0x00000000],
171174
},
172175
},
173176
],

package-lock.json

Lines changed: 6 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@lightningjs/renderer",
3-
"version": "0.3.2",
3+
"version": "0.3.3",
44
"description": "Lightning 3 Renderer",
55
"type": "module",
66
"main": "./dist/exports/index.js",
@@ -57,7 +57,7 @@
5757
"vitest": "^0.34.2"
5858
},
5959
"dependencies": {
60-
"@lightningjs/threadx": "^0.3.1",
60+
"@lightningjs/threadx": "^0.3.3",
6161
"@protobufjs/eventemitter": "^1.1.0"
6262
},
6363
"lint-staged": {
@@ -70,6 +70,7 @@
7070
"files": [
7171
"dist",
7272
"src",
73+
"exports",
7374
"LICENSE",
7475
"NOTICE",
7576
"README.md"

src/core/renderers/webgl/shaders/DynamicShader.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -292,7 +292,7 @@ export class DynamicShader extends WebGlCoreShader {
292292
}
293293

294294
//fill main functions
295-
let currentMask = `mix(shaderColor, maskColor, clamp(-lng_DefaultMask, 0.0, 1.0))`;
295+
let currentMask = `mix(shaderColor, maskColor, clamp(-(lng_DefaultMask), 0.0, 1.0))`;
296296
let drawEffects = `
297297
298298
`;
@@ -439,6 +439,7 @@ export class DynamicShader extends WebGlCoreShader {
439439
uniform float u_alpha;
440440
uniform float u_radius;
441441
uniform sampler2D u_texture;
442+
uniform float u_pixelRatio;
442443
443444
${uniforms}
444445
@@ -450,17 +451,16 @@ export class DynamicShader extends WebGlCoreShader {
450451
${effectMethods}
451452
452453
void main() {
453-
vec2 uv = v_textureCoordinate.xy * u_dimensions.xy;
454454
vec2 p = v_textureCoordinate.xy * u_dimensions - u_dimensions * 0.5;
455-
vec2 d = abs(p) - u_dimensions * 0.5;
455+
vec2 d = abs(p) - (u_dimensions) * 0.5;
456456
float lng_DefaultMask = min(max(d.x, d.y), 0.0) + length(max(d, 0.0));
457457
458458
vec4 shaderColor = vec4(0.0);
459459
float shaderMask = lng_DefaultMask;
460460
461461
vec4 maskColor = texture2D(u_texture, v_textureCoordinate) * v_color;
462462
463-
shaderColor = mix(shaderColor, maskColor, clamp(-lng_DefaultMask, 0.0, 1.0));
463+
shaderColor = mix(shaderColor, maskColor, clamp(-(lng_DefaultMask + 0.5), 0.0, 1.0));
464464
465465
${drawEffects}
466466

src/core/renderers/webgl/shaders/effects/LinearGradientEffect.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -165,18 +165,19 @@ export class LinearGradientEffect extends ShaderEffect {
165165
float d = angle - 90.0;
166166
float a = $degToRad(d);
167167
float lineDist = abs(u_dimensions.x * cos(a)) + abs(u_dimensions.y * sin(a));
168+
168169
vec2 f = $calcPoint(lineDist * 0.5, a);
169170
vec2 t = $calcPoint(lineDist * 0.5, $degToRad(d + 180.0));
170171
vec2 gradVec = t - f;
171-
float dist = dot((v_textureCoordinate.xy * u_dimensions) - f, gradVec) / dot(gradVec, gradVec);
172+
float dist = dot(v_textureCoordinate.xy * u_dimensions - f, gradVec) / dot(gradVec, gradVec);
172173
173174
float stopCalc = (dist - stops[0]) / (stops[1] - stops[0]);
174-
vec4 colorOut = mix(colors[0], colors[1], stopCalc);
175+
vec4 colorOut = $fromLinear(mix($toLinear(colors[0]), $toLinear(colors[1]), stopCalc));
175176
for(int i = 1; i < ${colors}-1; i++) {
176177
stopCalc = (dist - stops[i]) / (stops[i + 1] - stops[i]);
177178
colorOut = mix(colorOut, colors[i + 1], clamp(stopCalc, 0.0, 1.0));
178179
}
179-
return mix(maskColor, colorOut, colorOut.a);
180+
return mix(maskColor, colorOut, clamp(colorOut.a, 0.0, 1.0));
180181
`;
181182
};
182183
}

src/core/renderers/webgl/shaders/effects/RadialGradientEffect.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ export class RadialGradientEffect extends ShaderEffect {
153153
stopCalc = (dist - stops[i]) / (stops[i + 1] - stops[i]);
154154
colorOut = mix(colorOut, colors[i + 1], clamp(stopCalc, 0.0, 1.0));
155155
}
156-
return mix(maskColor, colorOut, colorOut.a);
156+
return mix(maskColor, colorOut, clamp(colorOut.a, 0.0, 1.0));
157157
`;
158158
};
159159
}

0 commit comments

Comments
 (0)