@tolokoban/tgd
v2.0.136
Published
ToloGameDev library for WebGL2
Downloads
3,046
Readme
tgd2
ToloGameDev library for WebGL2. Please look at the online documentation (in french).
Development
Open a terminal in the lib/ folder and type the following command
to build the library in the dist/ folder:
npm startOpen another terminal in the doc/ folder and type the following command
to launch a browser with the documentation:
npm startRelease notes
v2.0.136
- New TgdGeometry.join(): Static method and standalone
tgdGeometryJoin()function to merge multiple geometries into a single one, combining positions, normals, UVs, and elements with proper index offsetting. - TgdGeometry.fitElementsInTypeArray(): New static helper that picks the smallest typed array (
Uint8Array,Uint16Array, orUint32Array) for a given elements array based on the maximum index value. - New isTgdTypeArrayForElements type guard: Runtime check for valid element typed arrays (
Uint8Array | Uint16Array | Uint32Array). - TgdDataset.get(): New method to extract all values of a given attribute into a plain
number[]array. - TgdTexture2D: Better texture format. Only the compatible triplet of internal format, format and type are available.
- TgdContext.extensions: Access to all the WebGL2 extensions that are available on this hardware.
v2.0.135
- New TgdPainterParticles: Fully implemented GPU particle system using Transform Feedback with ping-pong buffers, configurable draw mode (
POINTS,LINES,TRIANGLES), custom uniforms callback, and automatic attribute-to-varying mapping viaprefixAttribute/prefixVaryingoptions. - TgdShaderVertex improvements: Added
name,clone(),createShader()methods, andmainCodeHeadersfor injecting code before the main body. - TgdShaderFragment improvements: Added
nameandclone()methods. - TgdDataset.getTypeRecord(): New method returning the full attribute type record.
v2.0.134
- TgdMaterialGlass configurable opacity: Added
opacityMinandopacityMaxoptions toTgdMaterialGlassOptions, allowing control over glass transparency range from the constructor (defaults:0.1/0.2).
v2.0.133
- TgdMaterialFlatTexture mutable texture:
textureis now a read/write property (getter + setter) instead of areadonlyfield, allowing dynamic texture swapping at runtime.
v2.0.132
- New camera property: Added
spacePerPixelgetter onTgdCamera— returns the size in space units of a single screen pixel at the target (useful for scalebars). - TgdTexture2D improvements: Removed unnecessary
unbind()calls after parameter/mipmap operations; added safety checks for incompleteHTMLImageElementand zero-sizeHTMLCanvasElement. - tgdCanvasCreate Safari fix: Forces backing store allocation via
getContext("2d")to preventINVALID_OPERATIONerrors with textures on Safari.
v2.0.131
- TgdPainterNode refactored:
TgdPainterNodenow extendsTgdPainterGroupinstead ofTgdPainter, enabling richer group-based behavior.add()now acceptsTgdPainter,TgdPainterFunction, orTgdInterfaceTransformable(previously limited toTgdPainterNodeChild).logicis now a collection (add/exec pattern) instead of a single optional callback, allowing multiple logic functions per node.- Removed the
TgdPainterNodeChildtype alias in favor of standardTgdPaintertypes. - Added runtime validation with
isTgdInterfaceTransformablePaintertype guard and descriptive error messages on invalid children.
- TgdPainterGizmo resizable:
alignX,alignY,size, andmarginare now reactive setters; changing them after construction updates the gizmo immediately. - New type guard: Added
isTgdInterfaceTransformablePainter()ininterface/transformable.tsfor runtime checking of transformable painters. - New utility: Added
tgdCanvasToArrayBuffer()inutils/canvas.tsto convert a canvas to anArrayBuffer(supports PNG, JPEG, WebP). - TgdContext debug logging: Constructor and
delete()now emit debug messages viathis.console.debugfor easier tracing. - GLB mesh factory cleanup:
factory/mesh-glb.tsnow usesTgdPainterdirectly instead ofTgdPainterNodeChild/TgdInterfaceTransformablefor children and mesh painter types.
