import { mountFlex } from "https://cdn.jsdelivr.net/npm/p5.flex@0.1.1/src/p5.flex.min.mjs"
import { vert, frag, broken } from "./shader.js"
const [WIDTH, HEIGHT] = [600, 600]
const CANVAS_SIZE = [WIDTH, HEIGHT]
const TEXEL_SIZE = [1 / (WIDTH * PIXEL_DENSITY), 1 / (HEIGHT * PIXEL_DENSITY)]
const textPos = [WIDTH / 2, (HEIGHT / 5) * 4]
let gfx, theShader, brokenShader
p.createCanvas(WIDTH, HEIGHT)
p.flex({ container: { padding: "20px" } })
p.pixelDensity(PIXEL_DENSITY)
gfx = p.createGraphics(WIDTH, HEIGHT, p.WEBGL)
theShader = p.createShader(vert, frag)
brokenShader = p.createShader(vert, broken)
p.textAlign(p.CENTER, p.CENTER)
p.textFont("Courier New")
theShader.setUniform("tex0", p._renderer)
theShader.setUniform("canvasSize", CANVAS_SIZE)
theShader.setUniform("texelSize", TEXEL_SIZE)
theShader.setUniform("mouse", [p.mouseX / WIDTH, p.mouseY / HEIGHT])
theShader.setUniform("time", p.frameCount / 60)
gfx.quad(-1, 1, 1, 1, 1, -1, -1, -1)
p.text(`${p.floor(count)}%`, ...textPos)
weight = p.random(0.1, 1)
grid = [p.random(1, 20), p.random(1, 20)]
} else if (count < 130) {
p.text(`99%`, ...textPos)
} else if (count < 160) {
brokenShader.setUniform("tex0", gfx)
brokenShader.setUniform("canvasSize", CANVAS_SIZE)
brokenShader.setUniform("texelSize", TEXEL_SIZE)
brokenShader.setUniform("grid", grid)
brokenShader.setUniform("weight", weight)
gfx.quad(-1, 1, 1, 1, 1, -1, -1, -1)