¿Enmascarando formas en lienzo HTML5?

Pido disculpas si esto se ha pedido en otra parte, pero es muy difícil expresarlo, ya que no pude encontrar nada.

¿Hay alguna forma de implementar máscaras en lienzo?

Por ejemplo, Usando solo formas (sin imágenes) dibujo una casa con una ventana. También tengo una forma que representa a una persona. Quiero que esa persona aparezca en la ventana, pero, obviamente, solo la ventana debe poder verla. El resto estaría enmascarado.

Pensé en vaciar la parte de la casa ocupada por la ventana, de modo que hubiera un agujero genuino en la capa, lo que hace que el problema sea fácil de resolver.

Pero estoy consciente de que no puedes borrar formas o partes de formas en el lienzo, solo dibuja cosas nuevas sobre cosas viejas. Entonces, en un entorno de múltiples capas (estoy haciendo un juego en Kinetic.JS), ¿qué puedo hacer exactamente?

Lo siento si algo de esto está mal explicado, algo nuevo para todo el tema gráfico.

Respuestas a la pregunta(2)

Su respuesta a la pregunta