Skip to content

Commit 5962c3c

Browse files
committed
update release notes for ChuGL
1 parent 6edbb52 commit 5962c3c

File tree

1 file changed

+78
-10
lines changed

1 file changed

+78
-10
lines changed

VERSIONS

Lines changed: 78 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,27 +4,95 @@ ChucK VERSIONS log
44

55
1.5.5.2 (July 2025)
66
=======
7+
--> new ChuGL v0.2.6 (see ChuGL release notes below)
8+
~~~~~
9+
ChucK 1.5.5.2
10+
=============
711
(fixed) windows MIDI support (which was previously broken in 1.5.5.1)
8-
(fixed) examples/analysis/xsynth.ck (thanks to Celeste Betancur and Andrew Zhu Aday)
12+
(fixed) examples/analysis/xsynth.ck (thanks Celeste Betancur & Andrew Zhu Aday)
913
* now performs a proper multi-band cross-synthesis using the magnitude
1014
in each band of signl X to modulate the corresponding frequency bin
1115
in signal Y to produce output Z
12-
(added) examples/analysis/xsynth.ck-stereo.ck is the above, with stereo delay added
13-
(added) examples/machine/platform.ck -- getting underlying OS name + system time
16+
(added) examples/analysis/xsynth.ck-stereo.ck same as above + stereo delay
17+
(added) examples/machine/platform.ck -- get underlying OS name + system time
1418
(added) Machine methods
1519
string Machine.os()
1620
get the underlying operating system name; possible values include
1721
"mac", "linux", "windows", "web", "ios", "android", "unknown"
1822
float Machine.timeOfDay()
19-
returns the time in seconds since the Epoch 1970-01-01 00:00:00 +0000 (UTC).
23+
returns the time in seconds since Epoch 1970-01-01 00:00:00 +0000 (UTC).
2024
The returned time has microsecond resolution
2125
vec2 Machine.timeOfDay2()
22-
identical to Machine.timeOfDay(), only the return value is a vec2 where
23-
x is time in seconds, and y is fractional time in microseconds.
24-
y is guaranteed to be between 0 and 1,000,000. x + y yields the total time.
25-
Useful for situations needing less than 64-bit precision e.g., floats in OSC are
26-
32-bit and one must send the x and y values separately --
27-
otherwise a significant amount of timing resolution would be lost
26+
identical to Machine.timeOfDay(), only the return value is a vec2
27+
where x is time in seconds, and y is fractional time in microseconds.
28+
y is guaranteed to be between 0 and 1,000,000. x + y yields the total
29+
time. Useful for situations needing less than 64-bit precision e.g.,
30+
floats in OSC are 32-bit and one must send the x and y values
31+
separately -- otherwise a significant amount of timing resolution
32+
would be lost
33+
============
34+
ChuGL v0.2.6
35+
============
36+
(added) Transparency!! (alpha-blended and sorted back to front)
37+
- See examples/basic/transparency.ck
38+
(added) Shadow Mapping (a basic first version)
39+
- Implemented shadow mapping for GDirLight and GSpotLight
40+
(GPointLight currently not supported)
41+
- See examples/deep/shadows.ck
42+
(reworked) Render graph API
43+
- `RenderPass` is now the base class of `ScenePass` (which renderas a GScene
44+
to a target texture, formerly this was called `RenderPass`) and
45+
`ScreenPass` (which renders a full-screen quad, useful for post processing
46+
effects)
47+
- Added new `RenderPass` methods `.clear()`, `.scissor()`,
48+
`.scissorNormalized()`, `.viewport()` and `.viewportNormalized()`
49+
- Added `ScenePass.msaa(int)` which can be used to toggle MSAA antialiasing
50+
- Add resolution, time, delta_time, frame_count, mouse state, and chuck VM
51+
sample rate info to shader #FRAME_UNIFORMS. Simplifies writing generative
52+
shaders in shadertoy-style.
53+
(added) UI improvements:
54+
- Add `UI.knob(...)` widgets
55+
- Add `UI.image(...)` and `UI.imageButton(...)` methods, which allow adding
56+
ChuGL Textures to UI.
57+
(update) Textures
58+
- Changed `TextureDesc.mips()` semantics. Set to `true` to generate a full
59+
mip chain, set to `false` to not create any mips beyond level 0.
60+
- Add `TextureDesc.resizable`, `TextureDesc.widthRatio` and
61+
`TextureDesc.heightRatio` to create resizable textures, i.e. textures that
62+
change in dimensions relative to window resolution. (helpful to make your
63+
app robust against changing screen sizes)
64+
- Add `Texture.write(int ptr)` which copies data from a pointer from a
65+
separate ChuGin. Use with caution!
66+
- change default surface texture to be non-srgb, add `OutputPass.gamma()` to
67+
control whether or not to apply gamma correction. (this simplifies getting
68+
accurate colors in basic 2D scenes without complex lighting.
69+
(updated) various bug fixes
70+
- fix `GGen.lookAt(vec3 pos)` bug when up vector and forward vectors were
71+
collinear.
72+
- added `GGen.lookAt(vec3 pos, vec3 up)` which takes a custom up vector.
73+
- fix `GText.defaultFont()` not setting custom font path correctly
74+
- fix segfault caused by sending large amount of data to `UI.plotLines()`
75+
- setting `TextureLoadDesc.gen_mips` to false no longer erroneously
76+
generates a mip chain
77+
- fix `UI.beginChild(...)` not properly returning a value
78+
- Add normal matrix to #DRAW_UNIFORMS shader include to enable correct
79+
calculations of normal vectors for Meshes with non-uniform scale
80+
(added) GText: Add antialias method `GText.antialias()`
81+
(added) New Examples
82+
- basic/transparency.ck
83+
how to use transparent materials
84+
- rendergraph/slime.ck
85+
slime mold simulation using compute passes!
86+
- deep/pokemon_cries.ck
87+
Gameboy APU emulator that synthesis all Gen I pokemon cries!
88+
- deep/shadows.ck
89+
shadowmapping for directional and spot lights!
90+
(updated) Under the Hood
91+
- Large architecture refactor to use a rendergraph + gpu resource cache
92+
+ sorted drawcall structs to organize and dispatch GPU commands.
93+
- Caching GPU resources (namely BindGroups and TextureViews) significantly
94+
improves performance and increases the maximum number of draw calls that
95+
can be issued each frame
2896

2997

3098
1.5.5.1 (May 2025)

0 commit comments

Comments
 (0)