3D painter beginnings, abstract GL backend