How to draw text and shapes to a Texture? Using Python I'm trying to generate a texture with a few lines and text.

I've got a proof of concept using Pillow and a function to convert from PIL Image to Blender Image,
but I would like to avoid having the extra dependency.

Is there a built-in 2D Graphics API I could use to draw shapes and rasterise/sample pixels for a texture ?

I had a look at the Grease Pencil API which looks great for drawing.
Would it be possible to get an Image/pixels from Grease Pencil ?
If so, how ?
Unfortunately I haven't found a way to easily render text using the GreasePencil API nor a way to capture GreasePencil text/lines into a texture (Blender Image).

I ended up using PIL and copying the pixels over to a Blender Image (method described here). Other than the conversion using [:] to access pixels slightly faster the other speed up was using a bitmap font (as opposed to a true type font which was slow to rasterize):

font = ImageFont.load(os.path.join(os.path.dirname(os.path.abspath(__file__)),"fonts","haxor.pil"))