visual-song 1.1.2 → 1.1.3

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.
package/dist/index.js CHANGED
@@ -195,12 +195,14 @@ const VisualSong = /*#__PURE__*/ forwardRef(function VisualSong({ style, backgro
195
195
  ]);
196
196
  }
197
197
  const glm_color = playerRef.current.getBackgroundColor();
198
- return new Float32Array([
198
+ const result = new Float32Array([
199
199
  glm_color.x,
200
200
  glm_color.y,
201
201
  glm_color.z,
202
202
  glm_color.w
203
203
  ]);
204
+ glm_color.delete();
205
+ return result;
204
206
  },
205
207
  setBackgroundColor (color) {
206
208
  if (!playerRef.current || !isInitialized.current) return;
@@ -210,6 +212,7 @@ const VisualSong = /*#__PURE__*/ forwardRef(function VisualSong({ style, backgro
210
212
  glm_color.z = color[2];
211
213
  glm_color.w = color[3];
212
214
  playerRef.current.setBackgroundColor(glm_color);
215
+ glm_color.delete();
213
216
  },
214
217
  setVertexShader (shader) {
215
218
  if (!playerRef.current || !isInitialized.current) return false;
@@ -241,7 +244,12 @@ const VisualSong = /*#__PURE__*/ forwardRef(function VisualSong({ style, backgro
241
244
  setVertexShaderTransition (shader, mode, time, vertexCount, backgroundColor, easingType) {
242
245
  if (!playerRef.current || !isInitialized.current || !module.current) return false;
243
246
  const easing = module.current.EasingType[EasingType[easingType]];
244
- return playerRef.current.setVertexShaderTransition(shader, mode, time, vertexCount, new module.current.vec4(backgroundColor[0], backgroundColor[1], backgroundColor[2], backgroundColor[3]), easing);
247
+ const bgColor = new module.current.vec4(backgroundColor[0], backgroundColor[1], backgroundColor[2], backgroundColor[3]);
248
+ try {
249
+ return playerRef.current.setVertexShaderTransition(shader, mode, time, vertexCount, bgColor, easing);
250
+ } finally{
251
+ bgColor.delete();
252
+ }
245
253
  },
246
254
  exportRender (currentTime) {
247
255
  if (!playerRef.current || !isInitialized.current) return;
@@ -348,6 +356,7 @@ const VisualSong = /*#__PURE__*/ forwardRef(function VisualSong({ style, backgro
348
356
  glm_color.z = color[2];
349
357
  glm_color.w = color[3];
350
358
  playerRef.current.setBackgroundColor(glm_color);
359
+ glm_color.delete();
351
360
  }
352
361
  }
353
362
  async function _init() {
@@ -386,12 +395,13 @@ const VisualSong = /*#__PURE__*/ forwardRef(function VisualSong({ style, backgro
386
395
  initializedCallback();
387
396
  }
388
397
  }
389
- function _resizeRenderer(width, height) {
398
+ function _resizeRenderer(width, height, pointSizeScale) {
390
399
  if (!module.current) {
391
400
  return;
392
401
  }
393
402
  if (playerRef.current) {
394
403
  playerRef.current.resize(width, height);
404
+ playerRef.current.setPointSizeScale(pointSizeScale);
395
405
  }
396
406
  canvasRef.current.width = width;
397
407
  canvasRef.current.height = height;
@@ -417,11 +427,13 @@ const VisualSong = /*#__PURE__*/ forwardRef(function VisualSong({ style, backgro
417
427
  canvas.style.setProperty("height", "100%");
418
428
  canvas.style.setProperty("width", `${Math.floor(canvas.offsetHeight * engineAspectRatio)}px`);
419
429
  }
420
- _resizeRenderer(resolutionRef.current.width, resolutionRef.current.height);
430
+ // 내보내기 결과가 기기마다 달라지지 않도록 gl_PointSize는 렌더 타깃 픽셀 그대로 쓴다.
431
+ _resizeRenderer(resolutionRef.current.width, resolutionRef.current.height, 1);
421
432
  } else {
422
433
  canvas.style.setProperty("width", "100%");
423
434
  canvas.style.setProperty("height", "100%");
424
- _resizeRenderer(window.devicePixelRatio * wrapperWidth, window.devicePixelRatio * wrapperHeight);
435
+ // 캔버스가 DPR배 해상도이므로 gl_PointSize도 DPR을 곱해 CSS px 기준으로 맞춘다.
436
+ _resizeRenderer(window.devicePixelRatio * wrapperWidth, window.devicePixelRatio * wrapperHeight, window.devicePixelRatio);
425
437
  }
426
438
  }
427
439
  function destroy() {
@@ -64,6 +64,7 @@ export interface VSPlayer extends ClassHandle {
64
64
  getPrimitiveMode(): number;
65
65
  setPrimitiveMode(_0: number): void;
66
66
  exportRender(_0: number): void;
67
+ setPointSizeScale(_0: number): void;
67
68
  setVertexShader(_0: EmbindString): boolean;
68
69
  setVertexShaderTransition(_0: EmbindString, _1: number, _2: number, _3: number, _4: vec4, _5: EasingType): boolean;
69
70
  getLastCompileError(): string;
Binary file
package/package.json CHANGED
@@ -1,10 +1,9 @@
1
1
  {
2
2
  "name": "visual-song",
3
- "version": "1.1.2",
3
+ "version": "1.1.3",
4
4
  "description": "visual-song core library",
5
5
  "author": "kunyoungparkk (rjsdud3263@gmail.com)",
6
6
  "license": "MIT",
7
-
8
7
  "type": "module",
9
8
  "files": [
10
9
  "dist/index.js",
@@ -33,7 +32,7 @@
33
32
  "react": "^19.0.0",
34
33
  "react-dom": "^19.0.0"
35
34
  },
36
- "scripts":{
35
+ "scripts": {
37
36
  "build": "rollup -c",
38
37
  "pack": "npm pack"
39
38
  }