Source: CanvasUtility.js

/**
 * @author Antonio Raúl Guijarro Contreras <alu0101100494@ull.edu.es>
 * @file Módulo para poder realizar acciones comunes en un canvas
 * @copyright Antonio Raúl Guijarro Contreras 2020
 * @since 07.05.2020
 * @module CanvasUtility
 */

/* istanbul ignore next */
/**
 * Función que permite borrar todo el contenido de un canvas
 * @param {Context} ctx - ctxo del canvas que se desea borrar
 * @param {canvas} canvas - canvas que se desea borrar
 */
function clearScreen(ctx, canvas) {
  ctx.clearRect(0, 0, canvas.width, canvas.height);
}

/* istanbul ignore next */
/**
 * Función que permite ajustar los puntos por pulgada de un canvas,
 * consiguiendo que, tras su redimensión a un tamaño mayor del estándar,
 * los dibujos que se hagan sobre el mismo no se vean borrosos. Para tal fin,
 * la función tiene en cuanta la resolución actual del usuario que visualiza
 * la página web en la que se encuentra el canvas
 * @param {canvas} canvas - canvas al que se ajusta su DPI.
 */
function fixDpi(canvas) {
  const DEVICE_PIXEL_RATIO = window.devicePixelRatio;
  const styleHeight = parseFloat(getComputedStyle(canvas).
        getPropertyValue('height').slice(0, -2));
  const styleWidth = parseFloat(getComputedStyle(canvas).
        getPropertyValue('width').slice(0, -2));
  canvas.setAttribute('height', styleHeight * DEVICE_PIXEL_RATIO);
  canvas.setAttribute('width', styleWidth * DEVICE_PIXEL_RATIO);
}

export {fixDpi, clearScreen};