vectorengine
Version:
This is a minimal WebGL vector rendering engine written for AssemblyScript.
49 lines (39 loc) • 1.87 kB
text/typescript
import { Input } from "./Input";
export { Input, KEY } from "./Input";
export { Char } from "./Char";
export { DisplayNum } from "./DisplayNum";
export { DisplayString } from "./DisplayString";
export enum RENDER_TYPE {
POINTS = 0x0000,
LINES = 0x0001,
LINE_LOOP = 0x0002,
LINE_STRIP = 0x0003
}
export declare function logf32(f: f32): void;
export declare function logi32(i: i32): void;
export declare function playSFX(wave_type: i32, freq: i32, freq_slide: i32,
delay_freq_start_time_pct: f32, delay_freq_mult: f32, vibrato_time: f32,
vibrato_shift_time: f32, vibrato_freq: i32, vibrato_wave_type: i32,
low_pass_freq: i32, low_pass_freq_ramp: i32, high_pass_freq: i32,
attack_time: f32, decay_time: f32, sustain_time: f32, release_time: f32,
attack_punch_volume: f32, duty_cycle_len: f32, duty_cycle_pct: f32,
flange_delay_time: f32, flange_feedback_volume: f32, gain: f32,
noise_detune: i32, noise_detune_slide: i32, slide_type: i32): void;
export declare const canvasWidth: i32;
export declare const canvasHeight: i32;
export declare var mouseX: i32;
export declare var mouseY: i32;
Input.canvasWidth = canvasWidth;
Input.canvasHeight = canvasHeight;
@inline export function renderLoop(data: StaticArray<f32>, x: f32, y: f32,
color: u32 = 0xff_ff_ff_ff, rot: f32 = 0.0, scale: f32 = 1.0): void {
renderLineData(changetype<usize>(data), data.length,
x, y, rot, scale, color, RENDER_TYPE.LINE_LOOP);
}
@inline export function renderLine(data: StaticArray<f32>, x: f32, y: f32,
color: u32 = 0xff_ff_ff_ff, rot: f32 = 0.0, scale: f32 = 1.0): void {
renderLineData(changetype<usize>(data), data.length,
x, y, rot, scale, color, RENDER_TYPE.LINE_STRIP);
}
declare function renderLineData(line_data_pointer: usize, len: u32,
x: f32, y: f32, rot: f32, scale: f32, color: u32, type: RENDER_TYPE): void;