package speiger.src.coreengine.ui.gui.renderer;

import org.jspecify.annotations.Nullable;

import speiger.src.coreengine.math.vector.matrix.Matrix4f;
import speiger.src.coreengine.platform.graphics.api.core.GraphicsCommandBuffer;
import speiger.src.coreengine.platform.graphics.api.shader.ShaderPipeline;
import speiger.src.coreengine.platform.graphics.api.utils.SampledTexture;
import speiger.src.coreengine.platform.graphics.api.vertex.builder.IVertexBuilder;

public interface UIDrawer {
	ShaderPipeline pipeline();
	@Nullable
	SampledTexture texture();
	void buildVertecies(IVertexBuilder builder, Matrix4f matrix);
	boolean requiresSpecialArgs();
	void setupExtra(GraphicsCommandBuffer buffer);
}