Added a shader pre-loading functionality that pre-compiles rather than waiting for first use