Los TFT poseen un manejo parecido a un GLCD, lo que difieren son:
Mayor complejidad de inicializacion, mas registros a configurar.
Mayor cantidad de bits a enviar.
Por ejemplo en un TFT tenes por cada pixel 16bits si es que usas RGB565. Ahora pensa en lo que tadarias en llenar un TFT de 320x240 a 16bits cada pixel, de forma serial. ( Aunque la mayoria de las veces se prefiere simplemente actualizar una pequeña parte ), si no es serial y es paralelo la cosa cambia y tenes que pelear por la cantidad de pines, siendo que tenes 16 de datos + algunos de control.
Respecto a hacerlo en C, vas a conseguir librerias de Arduino por todos lados y eso lo podes portar.