UNPKG

playcanvas

Version:

Open-source WebGL/WebGPU 3D engine for the web

35 lines (34 loc) 1.18 kB
import { Debug } from "../../core/debug.js"; import { Vec4 } from "../../core/math/vec4.js"; import { QuadRender } from "./quad-render.js"; import { RenderPassQuad } from "./render-pass-quad.js"; const _tempRect = new Vec4(); function drawQuadWithShader(device, target, shader, rect, scissorRect) { Debug.assert(target !== void 0); const useBlend = arguments[5]; Debug.call(() => { if (useBlend !== void 0) { Debug.warnOnce("pc.drawQuadWithShader no longer accepts useBlend parameter, and blending state needs to be set up using GraphicsDevice.setBlendState."); } }); const quad = new QuadRender(shader); if (!rect) { rect = _tempRect; rect.x = 0; rect.y = 0; rect.z = target ? target.width : device.width; rect.w = target ? target.height : device.height; } const renderPass = new RenderPassQuad(device, quad, rect, scissorRect); renderPass.init(target); renderPass.colorOps.clear = false; renderPass.depthStencilOps.clearDepth = false; if (device.isWebGPU && target === null && device.samples > 1) { renderPass.colorOps.store = true; } renderPass.render(); quad.destroy(); } export { drawQuadWithShader };