Skip to content

Made FPScounter as on demand import#557

Merged
michielvandergeest merged 7 commits intolightning-js:devfrom
suresh-gangumalla:enable/fps-counter-comp
Feb 26, 2026
Merged

Made FPScounter as on demand import#557
michielvandergeest merged 7 commits intolightning-js:devfrom
suresh-gangumalla:enable/fps-counter-comp

Conversation

@suresh-gangumalla
Copy link
Copy Markdown
Collaborator

  1. re-enabled FPS counter comonent
  2. Removed this component from being avialable by default
  3. One can import this into blits app by named import

1. re-enabled FPS counter comonent
2. Removed this component from being avialable by default
3. One can import this into blits app by named import

Signed-off-by: Suresh Kumar Gangumalla <sureshkumar.gangumalla@invecas.com>
@github-actions
Copy link
Copy Markdown

Test Results: ❌ FAILED

Run at: 2025-12-18T07:41:39.559Z

Summary:
Test execution encountered errors. No tests were run.

Error Output:


> @lightningjs/blits@1.44.0 test:ci
> c8 npm run test:run


> @lightningjs/blits@1.44.0 test:run
> node -r global-jsdom/register ./node_modules/.bin/tape '{,!(node_modules|packages)/**/}*.test.js' | tap-diff

(node:2208) ExperimentalWarning: Importing JSON modules is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
file:///home/runner/work/blits/blits/src/components/index.js:21
import FPScounter from './FPScounter.js'
       ^^^^^^^^^^
SyntaxError: The requested module './FPScounter.js' does not provide an export named 'default'
    at ModuleJob._instantiate (node:internal/modules/esm/module_job:134:21)
    at async ModuleJob.run (node:internal/modules/esm/module_job:217:5)
    at async ModuleLoader.import (node:internal/modules/esm/loader:316:24)

Node.js v20.16.0

passed: 0  failed: 0  of 0 tests  (677ms)

All of 0 tests passed!

------------------------|---------|----------|---------|---------|----------------------------------
File                    | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s                
------------------------|---------|----------|---------|---------|----------------------------------
All files               |   38.18 |    94.11 |    2.16 |   38.18 |                                  
 public/assets          |     100 |      100 |     100 |     100 |                                  
  fps_sprite.base64.js  |     100 |      100 |     100 |     100 |                                  
 src                    |   63.63 |     87.5 |    7.69 |   63.63 |                                  
  constants.js          |     100 |      100 |     100 |     100 |                                  
  engine.js             |     100 |      100 |     100 |     100 |                                  
  focus.js              |   41.83 |      100 |       0 |   41.83 | ...81-98,108-113,122-131,139-153 
  launch.js             |   79.03 |      100 |       0 |   79.03 | 50-62,112-124                    
  plugin.js             |   37.03 |      100 |       0 |   37.03 | 9-25                             
  settings.js           |      80 |    66.66 |      50 |      80 | 24,30-36                         
 src/announcer          |   42.07 |       60 |    4.34 |   42.07 |                                  
  announcer.js          |   41.08 |      100 |    5.88 |   41.08 | ...0-155,162-163,166-168,171-172 
  speechSynthesis.js    |   43.54 |    33.33 |       0 |   43.54 | ...,60-63,66-100,104-112,115-118 
 src/component/base     |   76.52 |      100 |       0 |   76.52 |                                  
  announcer.js          |     100 |      100 |     100 |     100 |                                  
  events.js             |   89.88 |      100 |       0 |   89.88 | 34-37,53-55,69,83                
  router.js             |   92.68 |      100 |       0 |   92.68 | 27,30,33                         
  timeouts_intervals.js |   63.63 |      100 |       0 |   63.63 | ...43-47,55-58,66-70,78-82,90-93 
  utils.js              |   59.72 |      100 |       0 |   59.72 | 25-26,40-66                      
 src/component/setup    |   49.47 |      100 |       0 |   49.47 |                                  
  computed.js           |   45.83 |      100 |       0 |   45.83 | 23-48                            
  index.js              |   51.61 |      100 |       0 |   51.61 | 33-62                            
  input.js              |   73.33 |      100 |       0 |   73.33 | 23-30                            
  methods.js            |   59.45 |      100 |       0 |   59.45 | 23-37                            
  props.js              |   43.54 |      100 |       0 |   43.54 | 28-62                            
  routes.js             |   51.28 |      100 |       0 |   51.28 | 21-39                            
  state.js              |   33.84 |      100 |       0 |   33.84 | 23-65                            
  watch.js              |   57.14 |      100 |       0 |   57.14 | 21-35                            
 src/engines            |     100 |      100 |     100 |     100 |                                  
  index.js              |     100 |      100 |     100 |     100 |                                  
 src/engines/L3         |   29.28 |      100 |       0 |   29.28 |                                  
  element.js            |   28.13 |      100 |       0 |   28.13 | ...0,733,736,739,742-755,767-782 
  fontLoader.js         |   13.15 |      100 |       0 |   13.15 | 6-38                             
  index.js              |     100 |      100 |     100 |     100 |                                  
  launch.js             |   37.09 |      100 |       0 |   37.09 | 33-37,40-44,47-65,76-124         
  shaderLoader.js       |   33.33 |      100 |       0 |   33.33 | 5-12                             
 src/helpers            |      40 |      100 |       0 |      40 |                                  
  deepEqualArray.js     |      40 |      100 |       0 |      40 | 19-48                            
 src/lib                |   72.28 |      100 |    8.69 |   72.28 |                                  
  componentId.js        |   87.75 |      100 |       0 |   87.75 | 28-29,37-38,48-49                
  eventListeners.js     |   47.01 |      100 |       0 |   47.01 | ...0,53-66,77-86,101-129,139-149 
  hooks.js              |   79.66 |      100 |       0 |   79.66 | 31-32,42-44,53-59                
  lifecycle.js          |   82.02 |      100 |       0 |   82.02 | 65,73-87                         
  log.js                |   59.82 |      100 |   22.22 |   59.82 | 29-31,46-55,61-70,76-85,91-104   
  symbols.js            |     100 |      100 |     100 |     100 |                                  
 src/lib/codegenerator  |    5.55 |      100 |       0 |    5.55 |                                  
  generator.js          |    5.55 |      100 |       0 |    5.55 | ...2-814,819-828,832-837,840-846 
 src/lib/colors         |    77.3 |      100 |       0 |    77.3 |                                  
  colors.js             |   35.86 |      100 |       0 |   35.86 | 29-36,40-90                      
  htmlColors.js         |     100 |      100 |     100 |     100 |                                  
 src/lib/reactivity     |    23.6 |      100 |       0 |    23.6 |                                  
  effect.js             |    38.7 |      100 |       0 |    38.7 | ...28-29,35-45,48-71,74-85,88-93 
  reactive.js           |   16.98 |      100 |       0 |   16.98 | ...2-148,151-186,191-198,201-212 
 src/lib/templateparser |    5.44 |      100 |       0 |    5.44 |                                  
  parser.js             |    5.44 |      100 |       0 |    5.44 | 22-386                           
 src/plugins            |      96 |      100 |       0 |      96 |                                  
  log.js                |      96 |      100 |       0 |      96 | 23                               
 src/router             |   25.31 |      100 |       0 |   25.31 |                                  
  router.js             |   25.31 |      100 |       0 |   25.31 | ...6-565,568-586,589-593,596-638 
 src/router/transitions |     100 |      100 |     100 |     100 |                                  
  fadeInOut.js          |     100 |      100 |     100 |     100 |                                  
------------------------|---------|----------|---------|---------|----------------------------------

Signed-off-by: Suresh Kumar Gangumalla <sureshkumar.gangumalla@invecas.com>
@github-actions
Copy link
Copy Markdown

Test Results: ✅ PASSED

Run at: 2025-12-18T10:01:47.839Z

Summary:
passed: 917 failed: 0 of 917 tests

@suresh-gangumalla suresh-gangumalla linked an issue Dec 19, 2025 that may be closed by this pull request
@github-actions
Copy link
Copy Markdown

Test Results: ✅ PASSED

Run at: 2025-12-24T11:45:51.772Z

Summary:
passed: 950 failed: 0 of 950 tests

Copy link
Copy Markdown
Collaborator

@michielvandergeest michielvandergeest left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems like the on demand import isn't working properly because the renderer isn't instantiated yet when the computed first runs. We should review this, and possibly revert to the built-in component structure (where the component is deliberately wrapped inside a function to prevent premature instantiation)

when FPScounter component is used inside app.js then renderer is
not initialized so observered null as value for  Sprite component so
re computing sprite texture computed method after setTimeout to makesure
renderer will be avaible in  Next Tick.

Signed-off-by: Suresh Kumar Gangumalla <sureshkumar.gangumalla@invecas.com>
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jan 6, 2026

Test Results: ✅ PASSED

Run at: 2026-01-06T12:39:16.683Z

Summary:
passed: 950 failed: 0 of 950 tests

@github-actions
Copy link
Copy Markdown

Test Results: ✅ PASSED

Run at: 2026-02-26T10:18:49.808Z

Summary:
passed: 1045 failed: 0 of 1045 tests

Copy link
Copy Markdown
Collaborator

@michielvandergeest michielvandergeest left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@michielvandergeest michielvandergeest merged commit 0b7cecd into lightning-js:dev Feb 26, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Reenable FPS counter

2 participants