TextureImage, TextureComposite and TextureVideo contain actual texture data.
TextureImage may come from inline VRML texture or could be loaded from file (including from some URL), this doesn't concern you here.
TextureImage, TextureVideo, IsTextureImage, IsTextureVideo, TextureComposite will automatically load the data, so in simple situations you really don't need to do anything. Just check and use them when you want, and things will just work. See IsTextureLoaded for more control about loading / unloading.
Note that either one of
TextureImage or TextureVideo may be
Nil, if the other one is loaded. Or when loading failed (warning will be reported by WritelnWarning). IsTextureImage checks that
TextureImage is non-nil (so it's successfully loaded) and additionally that texture size is not zero. Similar for IsTextureVideo.
Note that when image failed to load, or URL was just empty, we can have IsTextureLoaded =
True but both IsTextureImage =
False and IsTextureVideo =
TextureImage may have any class allowed by LoadTextureImage.