コード例 #1
0
ファイル: Canvas.cpp プロジェクト: AndroidMars/sky_engine
SkMatrix toSkMatrix(const Float32List& matrix4, ExceptionState& es)
{
    ASSERT(matrix4.data());
    SkMatrix sk_matrix;
    if (matrix4.num_elements() != 16) {
        es.ThrowTypeError("Incorrect number of elements in matrix.");
        return sk_matrix;
    }

    for (intptr_t i = 0; i < 9; ++i)
        sk_matrix[i] = matrix4[kSkMatrixIndexToMatrix4Index[i]];
    return sk_matrix;
}
コード例 #2
0
ファイル: Canvas.cpp プロジェクト: joncv/sky_engine
void Canvas::concat(const Float32List& matrix4)
{
    if (!m_canvas)
        return;
    ASSERT(matrix4.data());

    // TODO(mpcomplete): how can we raise an error in this case?
    if (matrix4.num_elements() != 16)
      return;

    SkMatrix sk_matrix;
    // Mappings from SkMatrix-index to input-index.
    static const int kMappings[] = {
      0, 4, 12,
      1, 5, 13,
      3, 7, 15,
    };
    for (intptr_t i = 0; i < 9; ++i)
      sk_matrix[i] = matrix4.data()[kMappings[i]];

    m_canvas->concat(sk_matrix);
}