added new overload for shader compilation