fix a bug: update resolution in the shader
added struct to wrap around a set of parameters
add a class to handle cpu -> shader parameter update