mirror of
https://github.com/servo/servo.git
synced 2025-08-06 14:10:11 +01:00
Add support for 2D matrices in Gecko glue
This commit is contained in:
parent
fc29de8986
commit
e20c508a6e
1 changed files with 17 additions and 8 deletions
|
@ -2897,6 +2897,8 @@ fn static_assert() {
|
||||||
("Matrix3D", "matrix3d", ["number"] * 16),
|
("Matrix3D", "matrix3d", ["number"] * 16),
|
||||||
("PrefixedMatrix3D", "matrix3d", ["number"] * 12 + ["lopon"] * 2
|
("PrefixedMatrix3D", "matrix3d", ["number"] * 12 + ["lopon"] * 2
|
||||||
+ ["lon"] + ["number"]),
|
+ ["lon"] + ["number"]),
|
||||||
|
("Matrix", "matrix", ["number"] * 6),
|
||||||
|
("PrefixedMatrix", "matrix", ["number"] * 4 + ["lopon"] * 2),
|
||||||
("Translate3D", "translate3d", ["lop", "lop", "length"]),
|
("Translate3D", "translate3d", ["lop", "lop", "length"]),
|
||||||
("TranslateX", "translatex", ["lop"]),
|
("TranslateX", "translatex", ["lop"]),
|
||||||
("TranslateY", "translatey", ["lop"]),
|
("TranslateY", "translatey", ["lop"]),
|
||||||
|
@ -2923,10 +2925,12 @@ fn static_assert() {
|
||||||
# m11: number1, m12: number2, ..
|
# m11: number1, m12: number2, ..
|
||||||
single_patterns = ["m%s: %s" % (str(a / 4 + 1) + str(a % 4 + 1), b + str(a + 1)) for (a, b)
|
single_patterns = ["m%s: %s" % (str(a / 4 + 1) + str(a % 4 + 1), b + str(a + 1)) for (a, b)
|
||||||
in enumerate(items)]
|
in enumerate(items)]
|
||||||
if name == "Matrix":
|
pattern = "(Matrix3D { %s })" % ", ".join(single_patterns)
|
||||||
pattern = "(Matrix3D { %s })" % ", ".join(single_patterns)
|
elif keyword == "matrix":
|
||||||
else:
|
# a: number1, b: number2, ..
|
||||||
pattern = "(Matrix3D { %s })" % ", ".join(single_patterns)
|
single_patterns = ["%s: %s" % (chr(ord('a') + a), b + str(a + 1)) for (a, b)
|
||||||
|
in enumerate(items)]
|
||||||
|
pattern = "(Matrix { %s })" % ", ".join(single_patterns)
|
||||||
elif keyword == "interpolatematrix":
|
elif keyword == "interpolatematrix":
|
||||||
pattern = " { from_list: ref list1, to_list: ref list2, progress: percentage3 }"
|
pattern = " { from_list: ref list1, to_list: ref list2, progress: percentage3 }"
|
||||||
elif keyword == "accumulatematrix":
|
elif keyword == "accumulatematrix":
|
||||||
|
@ -2975,7 +2979,7 @@ fn static_assert() {
|
||||||
gecko_value: &mut structs::nsCSSValue /* output */) {
|
gecko_value: &mut structs::nsCSSValue /* output */) {
|
||||||
use properties::longhands::transform::computed_value::ComputedOperation;
|
use properties::longhands::transform::computed_value::ComputedOperation;
|
||||||
use values::computed::{Length, LengthOrNumber, LengthOrPercentage, LengthOrPercentageOrNumber};
|
use values::computed::{Length, LengthOrNumber, LengthOrPercentage, LengthOrPercentageOrNumber};
|
||||||
use values::generics::transform::Matrix3D;
|
use values::generics::transform::{Matrix, Matrix3D};
|
||||||
|
|
||||||
let convert_to_ns_css_value = |item: &ComputedOperation| -> structs::nsCSSValue {
|
let convert_to_ns_css_value = |item: &ComputedOperation| -> structs::nsCSSValue {
|
||||||
let mut value = structs::nsCSSValue::null();
|
let mut value = structs::nsCSSValue::null();
|
||||||
|
@ -3068,6 +3072,9 @@ fn static_assert() {
|
||||||
elif keyword == "matrix3d":
|
elif keyword == "matrix3d":
|
||||||
pre_symbols = "(Matrix3D {"
|
pre_symbols = "(Matrix3D {"
|
||||||
post_symbols = "})"
|
post_symbols = "})"
|
||||||
|
elif keyword == "matrix":
|
||||||
|
pre_symbols = "(Matrix {"
|
||||||
|
post_symbols = "})"
|
||||||
field_names = None
|
field_names = None
|
||||||
if keyword == "interpolatematrix":
|
if keyword == "interpolatematrix":
|
||||||
field_names = ["from_list", "to_list", "progress"]
|
field_names = ["from_list", "to_list", "progress"]
|
||||||
|
@ -3078,9 +3085,9 @@ fn static_assert() {
|
||||||
<%
|
<%
|
||||||
|
|
||||||
guard = ""
|
guard = ""
|
||||||
if name == "Matrix3D":
|
if name == "Matrix3D" or name == "Matrix":
|
||||||
guard = "if !needs_prefix "
|
guard = "if !needs_prefix "
|
||||||
elif name == "PrefixedMatrix3D":
|
elif name == "PrefixedMatrix3D" or name == "PrefixedMatrix":
|
||||||
guard = "if needs_prefix "
|
guard = "if needs_prefix "
|
||||||
|
|
||||||
%>
|
%>
|
||||||
|
@ -3089,6 +3096,8 @@ fn static_assert() {
|
||||||
% for index, item in enumerate(items):
|
% for index, item in enumerate(items):
|
||||||
% if keyword == "matrix3d":
|
% if keyword == "matrix3d":
|
||||||
m${index / 4 + 1}${index % 4 + 1}:
|
m${index / 4 + 1}${index % 4 + 1}:
|
||||||
|
% elif keyword == "matrix":
|
||||||
|
${chr(ord('a') + index)}:
|
||||||
% elif keyword == "interpolatematrix" or keyword == "accumulatematrix":
|
% elif keyword == "interpolatematrix" or keyword == "accumulatematrix":
|
||||||
${field_names[index]}:
|
${field_names[index]}:
|
||||||
% endif
|
% endif
|
||||||
|
@ -3103,7 +3112,7 @@ fn static_assert() {
|
||||||
-> longhands::transform::computed_value::ComputedOperation {
|
-> longhands::transform::computed_value::ComputedOperation {
|
||||||
use properties::longhands::transform::computed_value::ComputedOperation;
|
use properties::longhands::transform::computed_value::ComputedOperation;
|
||||||
use values::computed::{Length, Percentage};
|
use values::computed::{Length, Percentage};
|
||||||
use values::generics::transform::Matrix3D;
|
use values::generics::transform::{Matrix, Matrix3D};
|
||||||
use values::generics::transform::Transform;
|
use values::generics::transform::Transform;
|
||||||
|
|
||||||
let convert_shared_list_to_operations = |value: &structs::nsCSSValue|
|
let convert_shared_list_to_operations = |value: &structs::nsCSSValue|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue