Explorar el Código

LibWeb: Implement rotation transform functions from css-transforms-2

Luke Wilde hace 2 años
padre
commit
0fdd924db2

+ 9 - 0
Userland/Libraries/LibWeb/CSS/TransformFunctions.json

@@ -23,6 +23,15 @@
     "rotate": {
     "rotate": {
         "parameters": "<angle>"
         "parameters": "<angle>"
     },
     },
+    "rotateX": {
+        "parameters": "<angle>"
+    },
+    "rotateY": {
+        "parameters": "<angle>"
+    },
+    "rotateZ": {
+        "parameters": "<angle>"
+    },
     "skew": {
     "skew": {
         "parameters": "<angle>{1,2}"
         "parameters": "<angle>{1,2}"
     },
     },

+ 9 - 0
Userland/Libraries/LibWeb/Painting/StackingContext.cpp

@@ -251,7 +251,16 @@ Gfx::FloatMatrix4x4 StackingContext::get_transformation_matrix(CSS::Transformati
                 0, 0, 1, 0,
                 0, 0, 1, 0,
                 0, 0, 0, 1);
                 0, 0, 0, 1);
         break;
         break;
+    case CSS::TransformFunction::RotateX:
+        if (count == 1)
+            return Gfx::rotation_matrix({ 1.0f, 0.0f, 0.0f }, value(0));
+        break;
+    case CSS::TransformFunction::RotateY:
+        if (count == 1)
+            return Gfx::rotation_matrix({ 0.0f, 1.0f, 0.0f }, value(0));
+        break;
     case CSS::TransformFunction::Rotate:
     case CSS::TransformFunction::Rotate:
+    case CSS::TransformFunction::RotateZ:
         if (count == 1)
         if (count == 1)
             return Gfx::rotation_matrix({ 0.0f, 0.0f, 1.0f }, value(0));
             return Gfx::rotation_matrix({ 0.0f, 0.0f, 1.0f }, value(0));
         break;
         break;