blob: 4181857d723fc3a44042f45f8b978202671a4b08 [file] [log] [blame]
/*
* Copyright 2021 Google LLC
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#ifndef SkMatrixInvert_DEFINED
#define SkMatrixInvert_DEFINED
#include "include/core/SkScalar.h"
/**
* Computes the inverse of `inMatrix`, passed in column-major order.
* `inMatrix` and `outMatrix` are allowed to point to the same array of scalars in memory.
* If `inMatrix` is invertible, true is returned. If not, false is returned and `outMatrix`
* is left in an unspecified state.
*/
bool SkInvert2x2Matrix(const SkScalar inMatrix[4], SkScalar outMatrix[4]);
bool SkInvert3x3Matrix(const SkScalar inMatrix[9], SkScalar outMatrix[9]);
bool SkInvert4x4Matrix(const SkScalar inMatrix[16], SkScalar outMatrix[16]);
#endif