diff --git a/scripts/modules/_bpy_internal/extensions/__init__.py b/scripts/modules/_bpy_internal/extensions/__init__.py new file mode 100644 index 00000000000..e566929148e --- /dev/null +++ b/scripts/modules/_bpy_internal/extensions/__init__.py @@ -0,0 +1,3 @@ +# SPDX-FileCopyrightText: 2024 Blender Authors +# +# SPDX-License-Identifier: GPL-2.0-or-later diff --git a/scripts/modules/_bpy_internal/extensions/tags.py b/scripts/modules/_bpy_internal/extensions/tags.py new file mode 100644 index 00000000000..dbe774228c8 --- /dev/null +++ b/scripts/modules/_bpy_internal/extensions/tags.py @@ -0,0 +1,57 @@ +# SPDX-FileCopyrightText: 2024 Blender Authors +# +# SPDX-License-Identifier: GPL-2.0-or-later + +# The purpose of this list is to present the tags to be picked up by translation. +# Blender itself will show all the available tags from all the servers. + +# The initial list of tags are the ones used by Blender Extensions Platforms (https://extensions.blender.org). +# Other platforms can send PRs to extend this list further. + +tags = [ + { + "remote_url": "https://extensions.blender.org/api/v1/extensions", + "add-ons": { + '3D View', + 'Add Curve', + 'Add Mesh', + 'Animation', + 'Bake', + 'Camera', + 'Compositing', + 'Development', + 'Game Engine', + 'Geometry Nodes', + 'Grease Pencil', + 'Import-Export', + 'Lighting', + 'Material', + 'Modeling', + 'Mesh', + 'Node', + 'Object', + 'Paint', + 'Pipeline', + 'Physics', + 'Render', + 'Rigging', + 'Scene', + 'Sculpt', + 'Sequencer', + 'System', + 'Text Editor', + 'Tracking', + 'User Interface', + 'UV', + }, + "themes": { + 'Accessibility', + 'Colorful', + 'Dark', + 'High Contrast', + 'Inspired By', + 'Light', + 'Print', + }, + }, +] diff --git a/source/blender/gpu/shaders/gpu_shader_sequencer_strips_frag.glsl b/source/blender/gpu/shaders/gpu_shader_sequencer_strips_frag.glsl index 3c9ffa6c3c2..b30f4ecebc6 100644 --- a/source/blender/gpu/shaders/gpu_shader_sequencer_strips_frag.glsl +++ b/source/blender/gpu/shaders/gpu_shader_sequencer_strips_frag.glsl @@ -40,16 +40,18 @@ void main() vec2 co = co_interp; SeqStripDrawData strip = strip_data[strip_id]; - vec2 size = vec2(strip.right_handle - strip.left_handle, strip.top - strip.bottom) * 0.5; - vec2 center = vec2(strip.right_handle + strip.left_handle, strip.top + strip.bottom) * 0.5; /* Transform strip rectangle into pixel coordinates, so that * rounded corners have proper aspect ratio and can be expressed in pixels. + * Make sure strip right side does not include the last pixel. * Also snap to pixel grid coordinates, so that outline/border is clear * non-fractional pixel sizes. */ vec2 view_to_pixel = vec2(context_data.inv_pixelx, context_data.inv_pixely); - size = round(size * view_to_pixel); - center = round(center * view_to_pixel); + vec2 pos1 = round(vec2(strip.left_handle, strip.bottom) * view_to_pixel); + vec2 pos2 = round(vec2(strip.right_handle, strip.top) * view_to_pixel); + pos2.x -= 1.0; + vec2 size = (pos2 - pos1) * 0.5; + vec2 center = (pos1 + pos2) * 0.5; vec2 pos = round(co * view_to_pixel); float radius = context_data.round_radius; @@ -128,10 +130,11 @@ void main() /* Handles. */ if ((strip.flags & GPU_SEQ_FLAG_HANDLES) != 0) { - if (co.x >= strip.left_handle && co.x < strip.left_handle + strip.handle_width) { + float handle_width = strip.handle_width * view_to_pixel.x; + if (pos.x >= pos1.x && pos.x < pos1.x + handle_width) { col = blend_color(col, unpackUnorm4x8(strip.col_handle_left)); } - if (co.x > strip.right_handle - strip.handle_width && co.x <= strip.right_handle) { + if (pos.x > pos2.x - handle_width && pos.x <= pos2.x) { col = blend_color(col, unpackUnorm4x8(strip.col_handle_right)); } }