安卓字型渲染器

2021-07-14 23:16:05 字數 742 閱讀 3541

必須能處理數量巨大的字型

必須能處理數量巨大的字形

必須最大化地減小紋理浪費

渲染速度必須夠快

在高階和低端機型上必須效果一致

在任何驅動/gpu組合上都必須完美執行

android.text.*,建立風格化文字和文字布局的類集合

android.graphics.paint,文字測量

android.graphics.canvas,文字渲染

安卓硬體加速文字渲染

字形存放在每乙個字型的對映集中(the key is the glyph identifier)

快取紋理用乙個塊鍊錶來追蹤剩餘空間

畫素快取為uint8 或者 uint32_t的陣列(alpha以及rgb快取)

mesh是乙個包含x/y座標和u/v座標的頂點快取

紋理是乙個glunit控制代碼

2048x256 alpha快取

2048x256 alpha快取

2048x512 alpha快取

1024x512 rgba快取

2048x256 rgba快取

glmapbufferrange->把字形寫入快取->glunmapbuffer->glpixlstorei(gl_unpack_row_length)->gltexsubimage2d

指令碼與渲染器

一直以來都想做乙個指令碼驅動的渲染器.就是說可以用指令碼定製渲染器的行為,比如建立多少個渲染佇列,如何渲染.多少rendertarget,每個物體的材質也是一樣.要生成多少個pass,每個pass是立即渲染呢還是放到那個佇列裡 其實我是個很懶的人 這個想法早在去年就有了.一直拖到現在,昨天晚上實在受...

指令碼與渲染器

一直以來都想做乙個指令碼驅動的渲染器.就是說可以用指令碼定製渲染器的行為,比如建立多少個渲染佇列,如何渲染.多少rendertarget,每個物體的材質也是一樣.要生成多少個pass,每個pass是立即渲染呢還是放到那個佇列裡 其實我是個很懶的人 這個想法早在去年就有了.一直拖到現在,昨天晚上實在受...

指令碼與渲染器

一直以來都想做乙個指令碼驅動的渲染器.就是說可以用指令碼定製渲染器的行為,比如建立多少個渲染佇列,如何渲染.多少rendertarget,每個物體的材質也是一樣.要生成多少個pass,每個pass是立即渲染呢還是放到那個佇列裡 其實我是個很懶的人 這個想法早在去年就有了.一直拖到現在,昨天晚上實在受...