mirror of
https://github.com/servo/servo.git
synced 2025-08-06 14:10:11 +01:00
First step towards 3d transforms.
* Add parser support for 3d transforms. * Change ComputedMatrix to a representation that suits interpolation. * Switch stacking contexts to use 4x4 matrices. The transforms themselves are still converted to 2d and handled by azure for now, but this is a small standalone part that can be landed now to make it easier to review.
This commit is contained in:
parent
09f2977cc9
commit
f47ba6fd33
12 changed files with 530 additions and 186 deletions
|
@ -312,6 +312,7 @@ flaky_cpu == linebreak_simple_a.html linebreak_simple_b.html
|
|||
== text_transform_lowercase_a.html text_transform_lowercase_ref.html
|
||||
== text_transform_none_a.html text_transform_none_ref.html
|
||||
== text_transform_uppercase_a.html text_transform_uppercase_ref.html
|
||||
== transform_3d.html transform_3d_ref.html
|
||||
== transform_simple_a.html transform_simple_ref.html
|
||||
== transform_stacking_context_a.html transform_stacking_context_ref.html
|
||||
== upper_id_attr.html upper_id_attr_ref.html
|
||||
|
|
127
tests/ref/transform_3d.html
Normal file
127
tests/ref/transform_3d.html
Normal file
|
@ -0,0 +1,127 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<style type="text/css">
|
||||
#div_t3d_1 {
|
||||
position: absolute;
|
||||
background-color: red;
|
||||
top: 10px;
|
||||
left: 10px;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
#div_t3d_2 {
|
||||
position: absolute;
|
||||
background-color: green;
|
||||
top: 10px;
|
||||
left: 10px;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
transform: translate3d(50%, 50%, 0);
|
||||
}
|
||||
|
||||
#div_t3d_3 {
|
||||
position: absolute;
|
||||
background-color: red;
|
||||
top: 10px;
|
||||
left: 60px;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
#div_t3d_4 {
|
||||
position: absolute;
|
||||
background-color: green;
|
||||
top: 10px;
|
||||
left: 10px;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
transform: translate3d(-5px, 10px, 0);
|
||||
}
|
||||
|
||||
#div_s3d_1 {
|
||||
position: absolute;
|
||||
background-color: red;
|
||||
top: 10px;
|
||||
left: 110px;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
#div_s3d_2 {
|
||||
position: absolute;
|
||||
background-color: green;
|
||||
top: 10px;
|
||||
left: 10px;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
transform: scale3d(0.5, 2, 1);
|
||||
}
|
||||
|
||||
#div_r3d_1 {
|
||||
position: absolute;
|
||||
background-color: red;
|
||||
top: 60px;
|
||||
left: 10px;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
#div_r3d_2 {
|
||||
position: absolute;
|
||||
background-color: green;
|
||||
top: 10px;
|
||||
left: 10px;
|
||||
width: 10px;
|
||||
height: 20px;
|
||||
transform: rotateZ(90deg);
|
||||
}
|
||||
|
||||
#div_r3d_3 {
|
||||
position: absolute;
|
||||
background-color: red;
|
||||
top: 60px;
|
||||
left: 60px;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
#div_r3d_4 {
|
||||
position: absolute;
|
||||
background-color: green;
|
||||
top: 10px;
|
||||
left: 10px;
|
||||
width: 10px;
|
||||
height: 20px;
|
||||
transform: rotate3d(0, 0, 1, 90deg);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="div_t3d_1">
|
||||
<div id="div_t3d_2">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="div_t3d_3">
|
||||
<div id="div_t3d_4">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="div_s3d_1">
|
||||
<div id="div_s3d_2">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="div_r3d_1">
|
||||
<div id="div_r3d_2">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="div_r3d_3">
|
||||
<div id="div_r3d_4">
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
122
tests/ref/transform_3d_ref.html
Normal file
122
tests/ref/transform_3d_ref.html
Normal file
|
@ -0,0 +1,122 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<style type="text/css">
|
||||
#div_t3d_1 {
|
||||
position: absolute;
|
||||
background-color: red;
|
||||
top: 10px;
|
||||
left: 10px;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
#div_t3d_2 {
|
||||
position: absolute;
|
||||
background-color: green;
|
||||
top: 20px;
|
||||
left: 20px;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
#div_t3d_3 {
|
||||
position: absolute;
|
||||
background-color: red;
|
||||
top: 10px;
|
||||
left: 60px;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
#div_t3d_4 {
|
||||
position: absolute;
|
||||
background-color: green;
|
||||
top: 20px;
|
||||
left: 5px;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
#div_s3d_1 {
|
||||
position: absolute;
|
||||
background-color: red;
|
||||
top: 10px;
|
||||
left: 110px;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
#div_s3d_2 {
|
||||
position: absolute;
|
||||
background-color: green;
|
||||
top: 0;
|
||||
left: 15px;
|
||||
width: 10px;
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
#div_r3d_1 {
|
||||
position: absolute;
|
||||
background-color: red;
|
||||
top: 60px;
|
||||
left: 10px;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
#div_r3d_2 {
|
||||
position: absolute;
|
||||
background-color: green;
|
||||
top: 15px;
|
||||
left: 5px;
|
||||
width: 20px;
|
||||
height: 10px;
|
||||
}
|
||||
|
||||
#div_r3d_3 {
|
||||
position: absolute;
|
||||
background-color: red;
|
||||
top: 60px;
|
||||
left: 60px;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
#div_r3d_4 {
|
||||
position: absolute;
|
||||
background-color: green;
|
||||
top: 15px;
|
||||
left: 5px;
|
||||
width: 20px;
|
||||
height: 10px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="div_t3d_1">
|
||||
<div id="div_t3d_2">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="div_t3d_3">
|
||||
<div id="div_t3d_4">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="div_s3d_1">
|
||||
<div id="div_s3d_2">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="div_r3d_1">
|
||||
<div id="div_r3d_2">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="div_r3d_3">
|
||||
<div id="div_r3d_4">
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
Loading…
Add table
Add a link
Reference in a new issue