Skip to content

Commit d8d5133

Browse files
obiotclaude
andcommitted
docs: credit @Vareniel for the contributed shader work by name
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019t8kP8vp58ZrvaD2FqJU6A
1 parent 7280451 commit d8d5133

2 files changed

Lines changed: 5 additions & 5 deletions

File tree

packages/examples/src/examples/waterOverworld/entities.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* Copyright (C) 2011 - 2026 AltByte Pte Ltd — MIT License.
44
* See `packages/examples/LICENSE.md` for full license + asset credits.
55
*
6-
* Scene and water shader contributed by the melonJS editor team; pixel art
6+
* Scene and water shader contributed by @Vareniel; pixel art
77
* from GandalfHardcore's free 32x32 side-scroller asset pack (itch.io,
88
* free to reuse).
99
*/
@@ -316,7 +316,7 @@ export class Male extends me.Sprite {
316316
* - `noise_uv` — 0..1 across the water sprite itself, so the seamless
317317
* noise textures tile independently of where the frame sits in the atlas
318318
*
319-
* Shader and tuning by the melonJS editor team (ported verbatim).
319+
* Shader and tuning by @Vareniel (ported verbatim).
320320
*/
321321
export class WaterTextureObj extends me.Sprite {
322322
private water: me.ShaderEffect;

packages/melonjs/CHANGELOG.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
**Highlights:** shaders get a full asset workflow — preload GLSL like any other asset (`loader.getShader()`), write screen-reading water / heat-haze effects with zero plumbing via the new `screen_texture` / `screen_uv` / `noise_uv` builtins, capture the frame on the GPU with `renderer.toFrameTexture()`, and drive it all with the new procedural `Noise` / `NoiseTexture2d` generators. Plus anchor-point presets across every renderable, holes in `Path2D`/SVG fills, and a large stability batch: 40+ fixes across the loader, audio, texture atlas, and WebGL batchers.
66

77
### Added
8-
- **`renderer.toFrameTexture()`** — GPU capture of everything drawn so far, as a live `Texture2d` for shader input (back-buffer-copy semantics; Canvas parity via an offscreen copy). Closes [#1544](https://github.com/melonjs/melonJS/issues/1544) (initial approach contributed by the melonJS editor team)
9-
- **Shader builtins: `screen_texture` / `screen_uv` / `noise_uv`** — annotate a sampler with `: screen_texture` and the engine keeps it filled with the screen behind the object; `screen_uv` / `noise_uv` are free varyings for screen-space and frame-local (atlas-independent) coordinates. No JS plumbing, fully backward compatible. See the new **Water Overworld** example (design and demo scene contributed by the melonJS editor team)
8+
- **`renderer.toFrameTexture()`** — GPU capture of everything drawn so far, as a live `Texture2d` for shader input (back-buffer-copy semantics; Canvas parity via an offscreen copy). Closes [#1544](https://github.com/melonjs/melonJS/issues/1544) (initial approach contributed by @Vareniel)
9+
- **Shader builtins: `screen_texture` / `screen_uv` / `noise_uv`** — annotate a sampler with `: screen_texture` and the engine keeps it filled with the screen behind the object; `screen_uv` / `noise_uv` are free varyings for screen-space and frame-local (atlas-independent) coordinates. No JS plumbing, fully backward compatible. See the new **Water Overworld** example (design and demo scene contributed by @Vareniel)
1010
- **Shader preloading: `"shader"` asset type + `loader.getShader()` + `clone()`** — GLSL compiles at load time; `getShader()` returns the shared, loader-owned instance (`clone()` for per-renderable uniform values). A `{vertex, fragment}` pair compiles into a shared raw `GLShader` instead, for `Mesh` / custom-batcher shaders
1111
- **`ShaderEffect.setTexture(name, image[, repeat])`** — bind extra `sampler2D` textures (noise, masks, LUTs) to an effect with no GL plumbing; see the reworked **Water Refraction** example. Closes [#1532](https://github.com/melonjs/melonJS/issues/1532) (thanks @Vareniel)
1212
- **`ShaderEffect.setTime(seconds)`** — one-call `uTime` convention for shader animation; a safe no-op when the shader doesn't declare it
@@ -18,7 +18,7 @@
1818
- **BMFont XML support for `BitmapText`** — the AngelCode XML flavour loads directly through the standard preloader, auto-detected alongside the text `.fnt` format
1919

2020
### Fixed
21-
- Asset loading failed over the `file:` protocol (Cordova/Capacitor APK) — `fetchData` now falls back to `XMLHttpRequest` where `fetch()` refuses `file://` (thanks to the melonJS editor team)
21+
- Asset loading failed over the `file:` protocol (Cordova/Capacitor APK) — `fetchData` now falls back to `XMLHttpRequest` where `fetch()` refuses `file://` (thanks @Vareniel)
2222
- `loader.unloadAll()` threw if a fontface was loaded, and never actually freed videos
2323
- `loader.load()` mutated the caller's asset descriptor, double-prepending `baseURL` on retries; `loader.unload()` of a never-loaded fontface threw
2424
- Video preloading hung on autoplay-restricted browsers (e.g. iOS Safari) unless `autoplay: false` was spelled out, and every video was fetched with forced anonymous CORS

0 commit comments

Comments
 (0)