0
Fork 0
mirror of https://github.com/penpot/penpot.git synced 2025-03-11 23:31:21 -05:00
penpot/frontend/render_v2/cpp/js/preamble.js
2024-10-09 15:18:36 +02:00

37 lines
1.1 KiB
JavaScript

// Adds compile-time JS functions to augment Renderer interface.
(function (Renderer) {
console.log("preamble", Renderer);
// Sets canvas.
Renderer.setCanvas = function setCanvas(canvas, attrs) {
const context = GL.createContext(canvas, attrs);
if (!context) {
throw new Error('Could not create a new WebGL context')
}
GL.makeContextCurrent(context);
// Emscripten does not enable this by default and Skia needs this
// to handle certain GPU corner cases.
GL.currentContext.GLctx.getExtension('WEBGL_debug_renderer_info');
// Initializes everything needed.
this._InitCanvas(canvas.width, canvas.height);
};
Renderer.setObjects = function setObjects(vbox, zoom, objects) {
this._SetObjects(objects.cnt);
for (let index = 0; index < objects.cnt; index++) {
const object = objects.arr[index * 2 + 1];
this._SetObject(
index,
object.selrect.x,
object.selrect.y,
object.selrect.width,
object.selrect.height,
);
}
};
Renderer.drawCanvas = function drawCanvas(vbox, zoom, objects) {
this._DrawCanvas(vbox.x, vbox.y, zoom);
};