This example uses OpenLayers v10.9.0. The latest is v.
Edit

#### Render geometries to a canvas

render 4 geometry 4 canvas 6

#####

Example of rendering geometries to an arbitrary canvas.

This example shows how to render geometries to an arbitrary canvas.

##### main.js

    import LineString from 'ol/geom/LineString.js';
    import Point from 'ol/geom/Point.js';
    import Polygon from 'ol/geom/Polygon.js';
    import {toContext} from 'ol/render.js';
    import CircleStyle from 'ol/style/Circle.js';
    import Fill from 'ol/style/Fill.js';
    import Stroke from 'ol/style/Stroke.js';
    import Style from 'ol/style/Style.js';

    const canvas = document.getElementById('canvas');
    const vectorContext = toContext(canvas.getContext('2d'), {size: [100, 100]});

    const fill = new Fill({color: 'blue'});
    const stroke = new Stroke({color: 'black'});
    const style = new Style({
      fill: fill,
      stroke: stroke,
      image: new CircleStyle({
        radius: 10,
        fill: fill,
        stroke: stroke,
      }),
    });
    vectorContext.setStyle(style);

    vectorContext.drawGeometry(
      new LineString([
        [10, 10],
        [90, 90],
      ]),
    );
    vectorContext.drawGeometry(
      new Polygon([
        [
          [2, 2],
          [98, 2],
          [2, 98],
          [2, 2],
        ],
      ]),
    );
    vectorContext.drawGeometry(new Point([88, 88]));

##### index.html

    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="UTF-8">
        <title>Render geometries to a canvas</title>
        <link rel="stylesheet" href="node_modules/ol/ol.css">
        <style>
          .map {
            width: 100%;
            height: 400px;
          }
        </style>
      </head>
      <body>
        <canvas id="canvas"></canvas>

        <script type="module" src="main.js"></script>
      </body>
    </html>

##### package.json

    {
      "name": "render-geometry",
      "dependencies": {
        "ol": "10.9.0"
      },
      "devDependencies": {
        "vite": "^3.2.3"
      },
      "scripts": {
        "start": "vite",
        "build": "vite build"
      }
    }