WEBVTT 00:00:05.038 --> 00:00:08.274 Ok, bom dia a todos 00:00:08.274 --> 00:00:12.508 Eu vou falar sobre pilha de renderização de fonte, 00:00:12.508 --> 00:00:18.652 e o que eu aprendi nos útimos quatro anos e meio. 00:00:18.652 --> 00:00:23.422 Eu trabalhei na administração da cidade de Munique. 00:00:23.434 --> 00:00:28.746 Para apresentar a renderização de fonte, 00:00:28.766 --> 00:00:34.934 posso dizer que escrever é a interface mais utilizada, 00:00:34.934 --> 00:00:39.404 ou provavelmente, a interface mais usada entre humanos e máquinas. 00:00:39.414 --> 00:00:48.264 Provavelmente todos vocês utilizam no seu computador todos os dias. 00:00:48.264 --> 00:00:52.549 A escrita em tela está cada vez mais substituindo a escrita no papel 00:00:52.549 --> 00:00:58.239 e isso ainda é um processo contínuo. 00:00:58.239 --> 00:01:06.423 A forma como uma string em um computador é exibida como texto em tela 00:01:06.433 --> 00:01:14.082 é surpreendentemente complexa, e escrever em si mesmo é bem profundo. 00:01:14.084 --> 00:01:23.224 Por exemplo, é influenciada pela história, Então, provavelmente todas, ou a maioria 00:01:23.224 --> 00:01:32.176 dos sistemas de escritas são derivados de sistemas de escrita pictográfica. 00:01:32.176 --> 00:01:36.525 Isso também é verdade para letras Romanas. 00:01:36.525 --> 00:01:43.368 E também as próprias letras romanas mudaram muito desde 2000 mil anos atrás 00:01:43.368 --> 00:01:51.901 No Império Romano, eles usavam letras diferentes das quais usamos agora 00:01:51.901 --> 00:01:58.341 O objetivo dessa palestra é conscientizar sobre a renderização das fontes na computação 00:01:58.341 --> 00:02:02.141 com foco no sistema Linux. 00:02:04.522 --> 00:02:14.202 Agora, para a história, e depois falamos sobre tipografia. 00:02:14.222 --> 00:02:17.979 O texto mostrado no começo da computação 00:02:17.979 --> 00:02:26.288 No começo da computação era só uma forma de mostrar resultados e 00:02:26.288 --> 00:02:33.688 Antes disso, eram apenas luzes piscando onde você conseguia ler o resultado e... 00:02:33.711 --> 00:02:36.339 ahn... Eles... 00:02:36.339 --> 00:02:43.768 Alguém na platéia levanta a mão e faz uma pergunta 00:02:43.768 --> 00:02:48.246 Max: a saída do dispositivo recebe a página ou um fluxo de caracteres 00:02:48.246 --> 00:02:52.626 E então a apresentação é o trabalho do dispositivo de saída. 00:02:52.636 --> 00:02:58.951 Por exemplo: uma máquina de escrever ou uma impressora, ou um terminal 00:02:58.951 --> 00:03:03.712 E isso é um BT100 00:03:03.712 --> 00:03:06.423 Você pode vê-lo no lado direito da tela 00:03:06.423 --> 00:03:10.575 line:1 Isso é um terminal real. 00:03:12.841 --> 00:03:19.317 line:1 Mas continuando na história, existe a era do computador em casa 00:03:19.317 --> 00:03:26.307 Na era do computador em casa você tem conjuntos fixos de caracteres 00:03:26.327 --> 00:03:32.465 E na maioria do tempo, devido a limitações do sistema, limitações de memória 00:03:32.465 --> 00:03:38.571 Você tem modo gráfico e modo de texto 00:03:38.571 --> 00:03:47.554 No modo gráfico você pode praticamente definir os pixels como quiser 00:03:47.554 --> 00:03:53.294 já no modo texto você pode usar fontes 00:03:53.294 --> 00:03:58.075 A configuração da tela naquela época 00:03:58.089 --> 00:04:02.025 Era mais ou menos definida pelo estado da tecnologia 00:04:02.025 --> 00:04:08.627 Então toda tela naquele tempo possuia quase a mesma resolução 00:04:08.685 --> 00:04:15.305 E era nisso que os engenheiros daquela época confiavam 00:04:15.314 --> 00:04:19.764 os engenheiros de softwares também confiavam nisso 00:04:19.774 --> 00:04:25.969 A renderização de texto era feita apenas usando fontes bitmap 00:04:26.093 --> 00:04:30.952 Isso significa que você tem um tamanho fixo para cada caractere 00:04:30.952 --> 00:04:36.351 e só irá definir o pixelwise 00:04:36.362 --> 00:04:44.498 É como se fosse um caracteres feitos à mão 00:04:44.530 --> 00:04:56.334 E você tem uma rasterização e depois você irá mostrar os caracteres definidos 00:04:58.802 --> 00:05:01.312 Então... 00:05:01.328 --> 00:05:01.688 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 line:1 99:59:59.999 --> 99:59:59.999 line:1 99:59:59.999 --> 99:59:59.999 line:1 99:59:59.999 --> 99:59:59.999 line:1 99:59:59.999 --> 99:59:59.999 line:1 99:59:59.999 --> 99:59:59.999 line:1 99:59:59.999 --> 99:59:59.999 line:1 99:59:59.999 --> 99:59:59.999 line:1 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 line:1 99:59:59.999 --> 99:59:59.999 line:1 99:59:59.999 --> 99:59:59.999 line:1 99:59:59.999 --> 99:59:59.999 line:1 99:59:59.999 --> 99:59:59.999 line:1 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 line:1 99:59:59.999 --> 99:59:59.999 line:1 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 line:1 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 line:1 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 line:1 99:59:59.999 --> 99:59:59.999 line:1 99:59:59.999 --> 99:59:59.999 line:1 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 line:1 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 line:1 99:59:59.999 --> 99:59:59.999 line:1 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999 99:59:59.999 --> 99:59:59.999