loadSource(
        source,
        textureOptions,
        successCallback,
        errorCallback
    ) {
        // get source type to use the right loader
        const sourceType = this._getSourceType(source);

        switch(sourceType) {
            case "image":
                this.loadImage(source, textureOptions, successCallback, errorCallback);
                break;
            case "video":
                this.loadVideo(source, textureOptions, successCallback, errorCallback);
                break;
            case "canvas":
                this.loadCanvas(source, textureOptions, successCallback);
                break;
            default:
                this._sourceLoadError(source, errorCallback, "this source could not be converted into a texture: " + source);
                break;
        }
    }
This method loads one source
     It checks what type of source it is then use the right loader

     params:
     @source (html element): html image, video or canvas element
     @textureOptions (object): parameters to apply to the textures, such as sampler name, repeat wrapping, filters, anisotropy...
     @successCallback (function): function to execute when the source has been loaded
     @errorCallback (function): function to execute if the source fails to load
*