Fragment shader treats everything drawn with draw_string or draw_rect as white

Godot Version

4.2.2

Question

I’m trying to apply a shader to a Node2D object that has a few elements drawn in code, then using queue_redraw(), but somehow if I get a vector from the texture, all elements drawn using draw_string or draw_rect (but NOT draw_texture) come out as if the original color was completely white, no matter the actual color, even if I don’t do anything to the values. For example, if I apply the shader like below, all texts drawn with draw_string appear completely white instead of their intended color:

void fragment() {
COLOR = texture(TEXTURE, UV);
}

Oh, I figured out myself WHAT is causing it, though I’m not sure WHY, or whether it’s intended behavior or a bug.

Apparently the color information of these elements is lost when referencing TEXTURE, but as long as I only work using COLOR, they remain intact.