No es eso el punto erkos, vamos con un ejemplo practico....
Toma el sintax-highlight del notepad++ para colorear la sintaxis de Gemix, tienes:
keywords = color #1
built-in consts = color #2
built-in global vars = color #3
built-in local vars = color #4
built-in functions = color #5
operators = color #6
numbers = color #7
IDs = color #8Con eso tenemos 8 colores diferentes por cada tipo de token, ahora ponemos por ejemplo una expresion como esta, la cual debe ser tokenizada:
var_id = calculate_dist_mode7(m7[0].camera, x, y, near_angle(angle, final_angle, 100));
Esta istruccion ya tiene:
token #01 = var_id (IDs = color #8)
token #02 = "=" (operators = color #6)
token #03 = calculate_dist_mode7 (IDs = color #8)
token #04 = "(" (operators = color #6)
token #05 = m7 (built-in global vars = color #4)
token #07 = "[" (operators = color #6)
token #08 = 0 (numbers = color #7)
token #09 = "]" (operators = color #6)
token #10 = "." (operators = color #6, con un optimizador se podria juntar con el token anterior siendo del mismo tipo)
token #11 = camera (built-in global vars field = color #4 o IDs = color #8 dependiendo de la precision del analizador highlight)
token #12 = "," (operators = color #6)
token #13 = x (built-in local vars = color #4)
token #14 = "," (operators = color #6)
token #15 = y (built-in local vars = color #4)
token #16 = "," (operators = color #6)
token #17 = near_angle (built-in functions = color #5)
token #18 = "(" (operators = color #6)
token #19 = angle (built-in local vars = color #4)
token #20 = "," (operators = color #6)
token #21 = final_angle (IDs = color #8)
token #22 = "," (operators = color #6)
token #23 = 100 (numbers = color #7)
token #24 = ")" (operators = color #6)
token #25 = ")" (operators = color #6)Como puedes ver ya una sola linea de codigo requiere 25 llamadas graficas (sea WRITE u otro), si tienes en cuenta que un editor de texto debe adaptarse completamente a la resolucion de pantalla del usuario, que puede ser hasta fullHD o 4K hoy en dia, un pestana de edicion con una dimencion de caracter mediamente aceptable puede contener hasta 100 lineas de texto.
Si haces el calculo de por ejemplo 100 lineas por cada linea de 25 (puede ser menos, pero pueden ser tambien mas) ya son 2500 llamadas graficas, demasiadas tenendo en cuenta que el editor debe contener tambien menu, barras de scrolling, pestana de listado de procesos/funciones, etc...
Podrias conseguir un resultado de rendimiento adecuado con aceleracion hardware, pero como sabes OpenGL puede fallar segun en que sistema/tarjeta se esta ejecutando, esto obliga a un rendering por software y hacer cientos o miles llamadas graficas en fullHD ya te puedes dar cuenta del rendimiento que podria conseguir el editor.
Si quieres haz una prueba con tu version de libreria por software y luego me dices los resultados, considera todavia la potencia de tu maquina y que puede estar ejecutando todo en otras de menor potencia.