Romain Vimont pushed to branch master at VideoLAN / VLC
Commits: 606648f4 by Romain Vimont at 2021-10-04T09:28:52+00:00 opengl: simplify generated GLSL code Now that TexCoordsMap is the same for all planes, initializing the pixel vec4 in several steps is not necessary anymore. Concretely, replace: vec4 texel; vec4 pixel = vec4(0.0, 0.0, 0.0, 1.0); texel = texture2D(Textures[0], tex_coords); pixel[0] = texel.r; texel = texture2D(Textures[1], tex_coords); pixel[1] = texel.r; texel = texture2D(Textures[2], tex_coords); pixel[2] = texel.r; by: vec4 pixel = vec4( texture2D(Textures[0], tex_coords).r, texture2D(Textures[1], tex_coords).r, texture2D(Textures[2], tex_coords).r, 1.0); - - - - - 1 changed file: - modules/video_output/opengl/sampler.c Changes: ===================================== modules/video_output/opengl/sampler.c ===================================== @@ -1022,32 +1022,26 @@ opengl_fragment_shader_init(struct vlc_gl_sampler *sampler, GLenum tex_target, unsigned color_count; if (is_yuv) { - ADD(" vec4 texel;\n" - " vec4 pixel = vec4(0.0, 0.0, 0.0, 1.0);\n"); - unsigned color_idx = 0; + ADD(" vec4 pixel = vec4(\n"); + color_count = 0; for (unsigned i = 0; i < tex_count; ++i) { const char *swizzle = swizzle_per_tex[i]; assert(swizzle); - size_t swizzle_count = strlen(swizzle); + color_count += strlen(swizzle); + assert(color_count < PICTURE_PLANE_MAX); if (tex_target == GL_TEXTURE_RECTANGLE) { /* The coordinates are in texels values, not normalized */ - ADDF(" texel = %s(Textures[%u], TexSizes[%u] * tex_coords);\n", lookup, i, i); + ADDF(" %s(Textures[%u], TexSizes[%u] * tex_coords).%s;\n", lookup, i, i, swizzle); } else { - ADDF(" texel = %s(Textures[%u], tex_coords);\n", lookup, i); - } - for (unsigned j = 0; j < swizzle_count; ++j) - { - ADDF(" pixel[%u] = texel.%c;\n", color_idx, swizzle[j]); - color_idx++; - assert(color_idx <= PICTURE_PLANE_MAX); + ADDF(" %s(Textures[%u], tex_coords).%s,\n", lookup, i, swizzle); } } + ADD(" 1.0);\n"); ADD(" vec4 result = ConvMatrix * pixel;\n"); - color_count = color_idx; } else { View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/606648f488e3ed0cb25e01b73703ca7d1084d185 -- View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/606648f488e3ed0cb25e01b73703ca7d1084d185 You're receiving this email because of your account on code.videolan.org.
_______________________________________________ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits