0.1.2 • Published 6 years ago
nvk-essentials-js v0.1.2
nvk-essentials
This package contains tools to aid development with nvk
Interface:
GLSL:
Contains pre-built binaries of glslangValidator.
Examples:
import { GLSL } from "nvk-essentials";GLSL.version
Returns a string of the equivalent glslangValidator -v
Examples:
let { version } = GLSL;GLSL.compile
Returns the binary SPIR-V representation of the passed in GLSL source. This function expects an Object as it's first parameter in the following format:
{
source: Buffer,
extension: String
}Available extensions are:
.vertfor a vertex shader.tescfor a tessellation control shader.tesefor a tessellation evaluation shader.geomfor a geometry shader.fragfor a fragment shader.compfor a compute shader.meshfor a mesh shader.taskfor a task shader.rgenfor a ray generation shader.rintfor a ray intersection shader.rahitfor a ray any hit shader.rchitfor a ray closest hit shader.rmissfor a ray miss shader.rcallfor a ray callable shader.glslfor .vert.glsl, .tesc.glsl, ..., .comp.glsl compound suffixes.hlslfor .vert.hlsl, .tesc.hlsl, ..., .comp.hlsl compound suffixes
Examples:
let {output, error} = await GLSL.compile({
source: fs.readFileSync(`./shaders/object.vert`),
extension: TypeOfExtension.vert
});GLSL.compileSyncync
Synchronous variant of GLSL.toSPIRV with an equal function signature.
Examples:
let {output, error} = GLSL.compileSync({
source: fs.readFileSync(`./shaders/object.frag`),
extension: `frag`
});Array Buffer Helper
This contains some helpful classes to let you easily transfer your data from/to array buffers.
Examples:
import { Data } from "nvk-essentials-js"
const data = new Data.DataController({
test: [23, 43, 435], //By default every number gets converted to Float32Array
test2: new Data.DataModel([2, 2, 2], Data.TypeOfData.Uint8) //Can specify the type using data model
});
const myAwesomeArrayBuffer = data.getArrayBuffer();
data.setArrayBuffer(myAwesomeArrayBuffer);
data.setData({
test: [23, 234, 34],
test2: new Data.DataModel([2, 2, 2], Data.TypeOfData.Uint8)
});
const myData = data.getData();