Do you want Resource<Texture> to Resource<Texture2D> for loading textures in different threads ? ... even then, I'm not sure why you need Resource<Texture2D> when Resource<Texture> is internally the same thing.


Instead, is this what you want?
Texture2D texture_ghost = Texture::resource(canvas, image, resources).to_texture_2d();

Or for sprites
Sprite spr_ghost = Sprite::resource(world->canvas, "Game/spr_ghost", world->resources);