It would seem that the shader program should be an arg to draw_arrays
rather than a field of SoftwareGL
? Alternatively, add a function swap_shader_program
that takes a shader as an arg, sets it internally, and returns the previous shader program.
Is SoftwareGL
yours or from a different crate?