Skip to content

Commit f41242f

Browse files
committed
Correct portrait rotation offsets
1 parent 440a33f commit f41242f

File tree

7 files changed

+12
-15
lines changed

7 files changed

+12
-15
lines changed

src_assets/windows/assets/shaders/directx/convert_yuv420_packed_uv_type0_vs.hlsl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,5 @@ cbuffer rotate_texture_steps_cbuffer : register(b1) {
1111

1212
vertex_t main_vs(uint vertex_id : SV_VertexID)
1313
{
14-
return generate_fullscreen_triangle_vertex(vertex_id, subsample_offset.x, rotate_texture_steps);
14+
return generate_fullscreen_triangle_vertex(vertex_id, subsample_offset, rotate_texture_steps);
1515
}

src_assets/windows/assets/shaders/directx/convert_yuv420_packed_uv_type0s_vs.hlsl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,5 @@ cbuffer rotate_texture_steps_cbuffer : register(b1) {
1111

1212
vertex_t main_vs(uint vertex_id : SV_VertexID)
1313
{
14-
return generate_fullscreen_triangle_vertex(vertex_id, subsample_offset / 2, rotate_texture_steps);
14+
return generate_fullscreen_triangle_vertex(vertex_id, subsample_offset, rotate_texture_steps);
1515
}

src_assets/windows/assets/shaders/directx/convert_yuv420_planar_y_vs.hlsl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@ cbuffer rotate_texture_steps_cbuffer : register(b1) {
66

77
vertex_t main_vs(uint vertex_id : SV_VertexID)
88
{
9-
return generate_fullscreen_triangle_vertex(vertex_id, rotate_texture_steps);
9+
return generate_fullscreen_triangle_vertex(vertex_id, float2(0, 0), rotate_texture_steps);
1010
}

src_assets/windows/assets/shaders/directx/convert_yuv444_packed_vs.hlsl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@ cbuffer rotate_texture_steps_cbuffer : register(b1) {
66

77
vertex_t main_vs(uint vertex_id : SV_VertexID)
88
{
9-
return generate_fullscreen_triangle_vertex(vertex_id, rotate_texture_steps);
9+
return generate_fullscreen_triangle_vertex(vertex_id, float2(0, 0), rotate_texture_steps);
1010
}

src_assets/windows/assets/shaders/directx/convert_yuv444_planar_vs.hlsl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ cbuffer color_matrix_cbuffer : register(b3) {
1515

1616
vertex_t main_vs(uint vertex_id : SV_VertexID)
1717
{
18-
vertex_t output = generate_fullscreen_triangle_vertex(vertex_id % 3, rotate_texture_steps);
18+
vertex_t output = generate_fullscreen_triangle_vertex(vertex_id % 3, float2(0, 0), rotate_texture_steps);
1919

2020
output.viewport = vertex_id / 3;
2121

src_assets/windows/assets/shaders/directx/cursor_vs.hlsl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@ cbuffer rotate_texture_steps_cbuffer : register(b2) {
66

77
vertex_t main_vs(uint vertex_id : SV_VertexID)
88
{
9-
return generate_fullscreen_triangle_vertex(vertex_id, rotate_texture_steps);
9+
return generate_fullscreen_triangle_vertex(vertex_id, float2(0, 0), rotate_texture_steps);
1010
}

src_assets/windows/assets/shaders/directx/include/base_vs.hlsl

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,6 @@
11
#include "include/base_vs_types.hlsl"
22

3-
#if defined(LEFT_SUBSAMPLING)
4-
vertex_t generate_fullscreen_triangle_vertex(uint vertex_id, float subsample_offset, int rotate_texture_steps)
5-
#elif defined(LEFT_SUBSAMPLING_SCALE)
6-
vertex_t generate_fullscreen_triangle_vertex(uint vertex_id, float2 halfsample_offset, int rotate_texture_steps)
7-
#elif defined(TOPLEFT_SUBSAMPLING)
83
vertex_t generate_fullscreen_triangle_vertex(uint vertex_id, float2 subsample_offset, int rotate_texture_steps)
9-
#else
10-
vertex_t generate_fullscreen_triangle_vertex(uint vertex_id, int rotate_texture_steps)
11-
#endif
124
{
135
vertex_t output;
146
float2 tex_coord;
@@ -32,11 +24,16 @@ vertex_t generate_fullscreen_triangle_vertex(uint vertex_id, int rotate_texture_
3224
sin(rotation_radians), cos(rotation_radians) };
3325
float2 rotation_center = { 0.5, 0.5 };
3426
tex_coord = round(rotation_center + mul(rotation_matrix, tex_coord - rotation_center));
27+
28+
if (rotate_texture_steps % 2) {
29+
subsample_offset.xy = subsample_offset.yx;
30+
}
3531
}
3632

3733
#if defined(LEFT_SUBSAMPLING)
38-
output.tex_right_left_center = float3(tex_coord.x, tex_coord.x - subsample_offset, tex_coord.y);
34+
output.tex_right_left_center = float3(tex_coord.x, tex_coord.x - subsample_offset.x, tex_coord.y);
3935
#elif defined(LEFT_SUBSAMPLING_SCALE)
36+
float2 halfsample_offset = subsample_offset / 2;
4037
float3 right_center_left = float3(tex_coord.x + halfsample_offset.x,
4138
tex_coord.x - halfsample_offset.x,
4239
tex_coord.x - 3 * halfsample_offset.x);

0 commit comments

Comments
 (0)