blob: 83f0122b00a89d4c5b2e7357e1502a12dbc59ccf [file] [log] [blame]
reedafa278e2014-11-24 19:11:48 -08001/*
2 * Copyright 2014 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8// EXPERIMENTAL EXPERIMENTAL EXPERIMENTAL EXPERIMENTAL
9// DO NOT USE -- FOR INTERNAL TESTING ONLY
10
11#ifndef sk_matrix_DEFINED
12#define sk_matrix_DEFINED
13
14#include "sk_types.h"
15
16SK_C_PLUS_PLUS_BEGIN_GUARD
17
Tom Hudson2880df22015-10-29 09:55:42 -040018/** Set the matrix to identity */
reedafa278e2014-11-24 19:11:48 -080019void sk_matrix_set_identity(sk_matrix_t*);
20
Tom Hudson2880df22015-10-29 09:55:42 -040021/** Set the matrix to translate by (tx, ty). */
reedafa278e2014-11-24 19:11:48 -080022void sk_matrix_set_translate(sk_matrix_t*, float tx, float ty);
Tom Hudson2880df22015-10-29 09:55:42 -040023/**
24 Preconcats the matrix with the specified translation.
25 M' = M * T(dx, dy)
26*/
reedafa278e2014-11-24 19:11:48 -080027void sk_matrix_pre_translate(sk_matrix_t*, float tx, float ty);
Tom Hudson2880df22015-10-29 09:55:42 -040028/**
29 Postconcats the matrix with the specified translation.
30 M' = T(dx, dy) * M
31*/
reedafa278e2014-11-24 19:11:48 -080032void sk_matrix_post_translate(sk_matrix_t*, float tx, float ty);
33
Tom Hudson2880df22015-10-29 09:55:42 -040034/** Set the matrix to scale by sx and sy. */
reedafa278e2014-11-24 19:11:48 -080035void sk_matrix_set_scale(sk_matrix_t*, float sx, float sy);
Tom Hudson2880df22015-10-29 09:55:42 -040036/**
37 Preconcats the matrix with the specified scale.
38 M' = M * S(sx, sy)
39*/
reedafa278e2014-11-24 19:11:48 -080040void sk_matrix_pre_scale(sk_matrix_t*, float sx, float sy);
Tom Hudson2880df22015-10-29 09:55:42 -040041/**
42 Postconcats the matrix with the specified scale.
43 M' = S(sx, sy) * M
44*/
reedafa278e2014-11-24 19:11:48 -080045void sk_matrix_post_scale(sk_matrix_t*, float sx, float sy);
46
47SK_C_PLUS_PLUS_END_GUARD
48
49#endif