Some notes on specifics, so we can use this as a base for discussion.
I like GW_BATCH_READY_TO_DRAW and the other batch phase enums. The GW_FETCH names I'm mixed about -- neither set of names is perfect. At least with the FETCH prefix we get a short list of the options from autocomplete.
convert_prim_type_to_gl function should be private. I'll get on that.
GW_vertbuffer_attr_stride should be GW_vertbuffer_attr_fill_stride.
GW_batch_program_set GW_batch_program_use_begin GW_batch_program_use_end
^-- I like these
GW_elemlist_vert_add GW_elemlist_line_verts_add GW_elemlist_tri_verts_add
^-- these are worse than the names they replace
No autocompletion and the word "point" is meaningful here. Prefer these:
GW_elemlist_add_point_vert GW_elemlist_add_line_verts GW_elemlist_add_tri_verts (or triangle_verts)
There's a duplicate GW_PRIM_LINE_STRIP_ADJACENCY.