blob: 61404bf7f7a2d91a96d02ada73e47dece6fe0bf2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
/**
* Display characters using an ascii table. Outputs one point per character.
**/
#pragma BLENDER_REQUIRE(common_view_lib.glsl)
void main()
{
char_index = (char_data & 0xFFu) - 0x20u;
/* Discard invalid chars and the first 3 vertex containing header data. */
if (char_index >= 96u || gl_VertexID < 3) {
gl_Position = vec4(-1);
gl_PointSize = 0.0;
return;
}
uint row = (char_data >> 16u) & 0xFFu;
uint col = (char_data >> 8u) & 0xFFu;
float char_size = 16.0;
/* Change anchor point to the top left. */
vec2 pos_on_screen = char_size * vec2(col, row) + char_size * 4;
gl_Position = vec4(
pos_on_screen * drw_view.viewport_size_inverse * vec2(2.0, -2.0) - vec2(1.0, -1.0), 0, 1);
gl_PointSize = char_size;
}
|