#include using namespace metal; struct SpriteVertexIn { float2 position [[attribute(0)]]; float4 color [[attribute(1)]]; float2 texCoord [[attribute(2)]]; }; struct SpriteVertexOut { float4 position [[position]]; float4 color; float2 texCoord; }; vertex SpriteVertexOut sprite_vertex_main(SpriteVertexIn in [[stage_in]]) { SpriteVertexOut out; out.position = float4(in.position, 0.0, 1.0); out.color = in.color; out.texCoord = in.texCoord; return out; } fragment float4 sprite_fragment_main(SpriteVertexOut in [[stage_in]], texture2d spriteTexture [[texture(0)]], sampler textureSampler [[sampler(0)]]) { float4 textureColor = spriteTexture.sample(textureSampler, in.texCoord); return textureColor * in.color; // Multiplicar textura por color de vértice para tinting }