Merge pull request #518 from hwdro/TFT-A8
text-freetype2: Use GS_A8 type glyphs texture
This commit is contained in:
commit
32358ba636
@ -24,7 +24,8 @@ VertInOut VSDefault(VertInOut vert_in)
|
||||
|
||||
float4 PSDrawBare(VertInOut vert_in) : TARGET
|
||||
{
|
||||
return image.Sample(def_sampler, vert_in.uv) * vert_in.col;
|
||||
vert_in.col.a *= image.Sample(def_sampler, vert_in.uv).a;
|
||||
return vert_in.col;
|
||||
}
|
||||
|
||||
technique Draw
|
||||
|
@ -367,7 +367,7 @@ static void ft2_source_update(void *data, obs_data_t *settings)
|
||||
bfree(srcdata->texbuf);
|
||||
srcdata->texbuf = NULL;
|
||||
}
|
||||
srcdata->texbuf = bzalloc(texbuf_w * texbuf_h * 4);
|
||||
srcdata->texbuf = bzalloc(texbuf_w * texbuf_h);
|
||||
|
||||
if (srcdata->font_face)
|
||||
cache_standard_glyphs(srcdata);
|
||||
|
@ -53,7 +53,7 @@ struct ft2_source {
|
||||
|
||||
FT_Face font_face;
|
||||
|
||||
uint32_t *texbuf;
|
||||
uint8_t *texbuf;
|
||||
gs_vertbuffer_t *vbuf;
|
||||
|
||||
gs_effect_t *draw_effect;
|
||||
|
@ -241,7 +241,6 @@ void cache_glyphs(struct ft2_source *srcdata, wchar_t *cache_glyphs)
|
||||
slot = srcdata->font_face->glyph;
|
||||
|
||||
uint32_t dx = srcdata->texbuf_x, dy = srcdata->texbuf_y;
|
||||
uint8_t alpha;
|
||||
|
||||
int32_t cached_glyphs = 0;
|
||||
size_t len = wcslen(cache_glyphs);
|
||||
@ -278,11 +277,9 @@ void cache_glyphs(struct ft2_source *srcdata, wchar_t *cache_glyphs)
|
||||
src_glyph->xadv = slot->advance.x >> 6;
|
||||
|
||||
for (uint32_t y = 0; y < g_h; y++) {
|
||||
for (uint32_t x = 0; x < g_w; x++) {
|
||||
alpha = slot->bitmap.buffer[glyph_pos];
|
||||
for (uint32_t x = 0; x < g_w; x++)
|
||||
srcdata->texbuf[buf_pos] =
|
||||
0x00FFFFFF ^ ((uint32_t)alpha << 24);
|
||||
}
|
||||
slot->bitmap.buffer[glyph_pos];
|
||||
}
|
||||
|
||||
dx += (g_w + 1);
|
||||
@ -310,7 +307,7 @@ void cache_glyphs(struct ft2_source *srcdata, wchar_t *cache_glyphs)
|
||||
}
|
||||
|
||||
srcdata->tex = gs_texture_create(texbuf_w, texbuf_h,
|
||||
GS_RGBA, 1, (const uint8_t **)&srcdata->texbuf, 0);
|
||||
GS_A8, 1, (const uint8_t **)&srcdata->texbuf, 0);
|
||||
|
||||
obs_leave_graphics();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user