When I load a texture with var tex :ImageTexture =load(file_path) and then grab the image var img :Image = tex.get_image() i find that I cannot access the pixels unless I do this:
img.decompress()
Then if I load the texture into a shader …
material.set_shader_param("texture", tex)
Does that texture happen to be uncompressed ?- did the function get_image() copy the memory or is it the same as what gets sent to the GPU?
No. The actual texture data in VRAM is completely unaffected by get_image() or anything you do with the image data.
It copies the data from VRAM to CPU address space. Once this is done the copied data is completely independent from the actual texture data that sits in VRAM. So whatever you do with that data through Image api - it won’t affect the actual texture in any way.