mirror of
https://github.com/servo/servo.git
synced 2025-08-08 23:15:33 +01:00
Update WR - includes a number of optimizations, bsd build fixes, tidy ups.
This commit is contained in:
parent
d5e412b3f1
commit
00789210b0
9 changed files with 233 additions and 196 deletions
|
@ -120,8 +120,8 @@ Layer fetch_layer(int index) {
|
|||
}
|
||||
|
||||
struct Tile {
|
||||
vec4 actual_rect;
|
||||
vec4 target_rect;
|
||||
vec4 screen_origin_task_origin;
|
||||
vec4 size;
|
||||
};
|
||||
|
||||
Tile fetch_tile(int index) {
|
||||
|
@ -129,8 +129,8 @@ Tile fetch_tile(int index) {
|
|||
|
||||
ivec2 uv = get_fetch_uv(index, VECS_PER_TILE);
|
||||
|
||||
tile.actual_rect = texelFetchOffset(sRenderTasks, uv, 0, ivec2(0, 0));
|
||||
tile.target_rect = texelFetchOffset(sRenderTasks, uv, 0, ivec2(1, 0));
|
||||
tile.screen_origin_task_origin = texelFetchOffset(sRenderTasks, uv, 0, ivec2(0, 0));
|
||||
tile.size = texelFetchOffset(sRenderTasks, uv, 0, ivec2(1, 0));
|
||||
|
||||
return tile;
|
||||
}
|
||||
|
@ -406,13 +406,13 @@ VertexInfo write_vertex(vec4 instance_rect,
|
|||
vec2 device_pos = world_pos.xy * uDevicePixelRatio;
|
||||
|
||||
vec2 clamped_pos = clamp(device_pos,
|
||||
vec2(tile.actual_rect.xy),
|
||||
vec2(tile.actual_rect.xy + tile.actual_rect.zw));
|
||||
vec2(tile.screen_origin_task_origin.xy),
|
||||
vec2(tile.screen_origin_task_origin.xy + tile.size.xy));
|
||||
|
||||
vec4 local_clamped_pos = layer.inv_transform * vec4(clamped_pos / uDevicePixelRatio, world_pos.z, 1);
|
||||
local_clamped_pos.xyz /= local_clamped_pos.w;
|
||||
|
||||
vec2 final_pos = clamped_pos + vec2(tile.target_rect.xy) - vec2(tile.actual_rect.xy);
|
||||
vec2 final_pos = clamped_pos + vec2(tile.screen_origin_task_origin.zw) - vec2(tile.screen_origin_task_origin.xy);
|
||||
|
||||
gl_Position = uTransform * vec4(final_pos, 0, 1);
|
||||
|
||||
|
@ -460,12 +460,12 @@ TransformVertexInfo write_transform_vertex(vec4 instance_rect,
|
|||
vec2 max_pos = max(tp0.xy, max(tp1.xy, max(tp2.xy, tp3.xy)));
|
||||
|
||||
vec2 min_pos_clamped = clamp(min_pos * uDevicePixelRatio,
|
||||
vec2(tile.actual_rect.xy),
|
||||
vec2(tile.actual_rect.xy + tile.actual_rect.zw));
|
||||
vec2(tile.screen_origin_task_origin.xy),
|
||||
vec2(tile.screen_origin_task_origin.xy + tile.size.xy));
|
||||
|
||||
vec2 max_pos_clamped = clamp(max_pos * uDevicePixelRatio,
|
||||
vec2(tile.actual_rect.xy),
|
||||
vec2(tile.actual_rect.xy + tile.actual_rect.zw));
|
||||
vec2(tile.screen_origin_task_origin.xy),
|
||||
vec2(tile.screen_origin_task_origin.xy + tile.size.xy));
|
||||
|
||||
vec2 clamped_pos = mix(min_pos_clamped,
|
||||
max_pos_clamped,
|
||||
|
@ -473,7 +473,7 @@ TransformVertexInfo write_transform_vertex(vec4 instance_rect,
|
|||
|
||||
vec3 layer_pos = get_layer_pos(clamped_pos / uDevicePixelRatio, layer);
|
||||
|
||||
vec2 final_pos = clamped_pos + vec2(tile.target_rect.xy) - vec2(tile.actual_rect.xy);
|
||||
vec2 final_pos = clamped_pos + vec2(tile.screen_origin_task_origin.zw) - vec2(tile.screen_origin_task_origin.xy);
|
||||
|
||||
gl_Position = uTransform * vec4(final_pos, 0, 1);
|
||||
|
||||
|
@ -550,30 +550,28 @@ BoxShadow fetch_boxshadow(int index) {
|
|||
}
|
||||
|
||||
struct Blend {
|
||||
ivec4 src_id_target_id_opacity;
|
||||
ivec4 src_id_target_id_op_amount;
|
||||
};
|
||||
|
||||
Blend fetch_blend(int index) {
|
||||
Blend blend;
|
||||
|
||||
int offset = index * 1;
|
||||
blend.src_id_target_id_opacity = int_data[offset + 0];
|
||||
blend.src_id_target_id_op_amount = int_data[offset + 0];
|
||||
|
||||
return blend;
|
||||
}
|
||||
|
||||
struct Composite {
|
||||
ivec4 src0_src1_target_id;
|
||||
ivec4 info_amount;
|
||||
ivec4 src0_src1_target_id_op;
|
||||
};
|
||||
|
||||
Composite fetch_composite(int index) {
|
||||
Composite composite;
|
||||
|
||||
int offset = index * 2;
|
||||
int offset = index * 1;
|
||||
|
||||
composite.src0_src1_target_id = int_data[offset + 0];
|
||||
composite.info_amount = int_data[offset + 1];
|
||||
composite.src0_src1_target_id_op = int_data[offset + 0];
|
||||
|
||||
return composite;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue