{"id":17018222,"url":"https://github.com/zlatnaspirala/nidza","last_synced_at":"2025-03-22T16:11:19.120Z","repository":{"id":46344071,"uuid":"398657138","full_name":"zlatnaspirala/nidza","owner":"zlatnaspirala","description":"2d canvas engine - Scene Object oriented . Auto update scene system. No animationframe loop no draw recalls. ","archived":false,"fork":false,"pushed_at":"2024-01-27T23:22:48.000Z","size":22341,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-02-28T01:05:07.023Z","etag":null,"topics":["canvas2d","cpu-frendly","matrix-engine","nidza-js","optimisation","textcomponent","textute-generator","vanillsjs"],"latest_commit_sha":null,"homepage":"https://maximumroulette.com","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zlatnaspirala.png","metadata":{"files":{"readme":"README-MORE.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-08-21T21:11:48.000Z","updated_at":"2023-09-08T18:25:40.000Z","dependencies_parsed_at":"2022-09-19T19:50:23.941Z","dependency_job_id":"24e97b49-8468-4360-b00d-d8687d683605","html_url":"https://github.com/zlatnaspirala/nidza","commit_stats":{"total_commits":73,"total_committers":1,"mean_commits":73.0,"dds":0.0,"last_synced_commit":"e3d1f2fe79251024e27a8b369bc939691e20f2ff"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zlatnaspirala%2Fnidza","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zlatnaspirala%2Fnidza/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zlatnaspirala%2Fnidza/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zlatnaspirala%2Fnidza/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zlatnaspirala","download_url":"https://codeload.github.com/zlatnaspirala/nidza/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244982044,"owners_count":20542300,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["canvas2d","cpu-frendly","matrix-engine","nidza-js","optimisation","textcomponent","textute-generator","vanillsjs"],"created_at":"2024-10-14T06:44:59.551Z","updated_at":"2025-03-22T16:11:19.095Z","avatar_url":"https://github.com/zlatnaspirala.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# ABOUT SHADERS\n\n## Full Custom shader on user level code [use glmatrix]\n This is `shader-component-custom.js` example.\n Also this is default code for base shader.\n\n```js\n\n// import { Nidza, Utility } from \"nidza\"; prodc\nimport {Nidza, Utility} from \"../node_modules/nidza/index\";\n\nwindow.addEventListener(\"load\", function(e) {\n  loader.innerText = \"NIDZA READY\";\n  setTimeout(function() {\n    loader.style.display = \"none\";\n  }, 200);\n});\n\n// This component depens on glmatrix engine\nUtility.loadSync(\n  \"https://cdnjs.cloudflare.com/ajax/libs/gl-matrix/2.8.1/gl-matrix-min.js\",\n  () =\u003e {\n    var nidza = new Nidza();\n\n    let myShader = {\n      id: \"myShader\",\n      size: {\n        width: window.innerWidth,\n        height: window.innerHeight,\n      },\n      parentDom: document.getElementById(\"testHolder\"),\n    };\n\n    var indentityMyShader = nidza.createNidza3dIndentity(myShader);\n    let myShaderElement = indentityMyShader.addShaderComponentCustom({\n      id: \"vertex-color-comp\",\n    });\n\n    myShaderElement.initDefaultFSShader = () =\u003e {\n      return `\n        varying lowp vec4 vColor;\n\n        void main(void) {\n          gl_FragColor = vColor;\n        }\n      `;\n    }\n\n    myShaderElement.initDefaultVSShader = () =\u003e {\n      return `\n        attribute vec4 aVertexPosition;\n        attribute vec4 aVertexColor;\n\n        uniform mat4 uModelViewMatrix;\n        uniform mat4 uProjectionMatrix;\n\n        varying lowp vec4 vColor;\n\n        void main(void) {\n          gl_Position = uProjectionMatrix * uModelViewMatrix * aVertexPosition;\n          vColor = aVertexColor;\n        }\n      `;\n    }\n\n    myShaderElement.positions = [\n      1.0, 1.0,\n     -1.0, 1.0,\n      1.0, -1.0,\n     -1.0, -1.0,\n    ];\n    myShaderElement.colors = [\n      1.0, 1.0, 1.0, 1.0,    // white\n      1.0, 0.0, 0.0, 1.0,    // red\n      0.0, 1.0, 0.0, 1.0,    // green\n      0.0, 0.0, 1.0, 1.0,    // blue\n    ];\n\n    myShaderElement.initDefaultBuffers = function() {\n      var gl = this.gl;\n      const positionBuffer = gl.createBuffer();\n      // Select the positionBuffer as the one to apply buffer\n      // operations to from here out.\n      gl.bindBuffer(gl.ARRAY_BUFFER, positionBuffer);\n\n      // Now create an array of positions for the square.\n      gl.bufferData(gl.ARRAY_BUFFER,\n        new Float32Array(this.positions),\n        gl.STATIC_DRAW);\n\n      const colorBuffer = gl.createBuffer();\n      gl.bindBuffer(gl.ARRAY_BUFFER, colorBuffer);\n      gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(this.colors), gl.STATIC_DRAW);\n\n      return {\n        position: positionBuffer,\n        color: colorBuffer,\n      }\n    };\n\n    const shaderProgram = myShaderElement.initShaderProgram(\n      myShaderElement.gl,\n      myShaderElement.initDefaultVSShader(),\n      myShaderElement.initDefaultFSShader());\n\n    myShaderElement.programInfo = {\n      program: shaderProgram,\n      attribLocations: {\n        vertexPosition: myShaderElement.gl.getAttribLocation(shaderProgram, 'aVertexPosition'),\n        vertexColor: myShaderElement.gl.getAttribLocation(shaderProgram, 'aVertexColor'),\n      },\n      uniformLocations: {\n        projectionMatrix: myShaderElement.gl.getUniformLocation(shaderProgram, 'uProjectionMatrix'),\n        modelViewMatrix: myShaderElement.gl.getUniformLocation(shaderProgram, 'uModelViewMatrix'),\n      },\n    };\n\n    myShaderElement.buffers = myShaderElement.initDefaultBuffers(myShaderElement.gl);\n\n    // myShaderElement.draw(); Manually call once.\n    dispatchEvent(\n      new CustomEvent(indentityMyShader.getKey(\"activate-updater\"), {\n        detail: {\n          id: \"vertex-color-comp\",\n        },\n      })\n    );\n\n    // Make it global\n    window.myShaderElement = myShaderElement;\n    window.indentityMyShader = indentityMyShader;\n  }\n);\n\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzlatnaspirala%2Fnidza","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzlatnaspirala%2Fnidza","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzlatnaspirala%2Fnidza/lists"}