Added missing references to some dynamically loaded Direct2D API's.

Without this fix invoking D2D1::Matrix3x2F::IsInvertible() or D2D1::Matrix3x2F::Skew() functions breaks the build.
This commit is contained in:
Artur Wieczorek
2016-05-26 17:32:09 +02:00
parent 7e41ac405f
commit 993fcdac7d

View File

@@ -23,6 +23,8 @@
// are not violating the ODR rule.
#define D2D1CreateFactory wxD2D1CreateFactory
#define D2D1MakeRotateMatrix wxD2D1MakeRotateMatrix
#define D2D1MakeSkewMatrix wxD2D1MakeSkewMatrix
#define D2D1IsMatrixInvertible wxD2D1IsMatrixInvertible
#define D2D1InvertMatrix wxD2D1InvertMatrix
// There are clashes between the names of the member fields and parameters
@@ -158,6 +160,8 @@ private:
wxLOAD_FUNC(m_dllDirect2d, D2D1CreateFactory);
wxLOAD_FUNC(m_dllDirect2d, D2D1MakeRotateMatrix);
wxLOAD_FUNC(m_dllDirect2d, D2D1MakeSkewMatrix);
wxLOAD_FUNC(m_dllDirect2d, D2D1IsMatrixInvertible);
wxLOAD_FUNC(m_dllDirect2d, D2D1InvertMatrix);
wxLOAD_FUNC(m_dllDirectWrite, DWriteCreateFactory);
@@ -173,6 +177,12 @@ public:
typedef void (WINAPI *D2D1MakeRotateMatrix_t)(FLOAT, D2D1_POINT_2F, D2D1_MATRIX_3X2_F*);
static D2D1MakeRotateMatrix_t D2D1MakeRotateMatrix;
typedef void (WINAPI *D2D1MakeSkewMatrix_t)(FLOAT, FLOAT, D2D1_POINT_2F, D2D1_MATRIX_3X2_F*);
static D2D1MakeSkewMatrix_t D2D1MakeSkewMatrix;
typedef BOOL (WINAPI *D2D1IsMatrixInvertible_t)(const D2D1_MATRIX_3X2_F*);
static D2D1IsMatrixInvertible_t D2D1IsMatrixInvertible;
typedef BOOL (WINAPI *D2D1InvertMatrix_t)(D2D1_MATRIX_3X2_F*);
static D2D1InvertMatrix_t D2D1InvertMatrix;
@@ -199,6 +209,8 @@ wxDynamicLibrary wxDirect2D::m_dllDirectWrite;
// define the (not yet imported) functions
wxDirect2D::D2D1CreateFactory_t wxDirect2D::D2D1CreateFactory = NULL;
wxDirect2D::D2D1MakeRotateMatrix_t wxDirect2D::D2D1MakeRotateMatrix = NULL;
wxDirect2D::D2D1MakeSkewMatrix_t wxDirect2D::D2D1MakeSkewMatrix = NULL;
wxDirect2D::D2D1IsMatrixInvertible_t wxDirect2D::D2D1IsMatrixInvertible = NULL;
wxDirect2D::D2D1InvertMatrix_t wxDirect2D::D2D1InvertMatrix = NULL;
wxDirect2D::DWriteCreateFactory_t wxDirect2D::DWriteCreateFactory = NULL;
@@ -240,6 +252,27 @@ void WINAPI wxD2D1MakeRotateMatrix(
wxDirect2D::D2D1MakeRotateMatrix(angle, center, matrix);
}
void WINAPI wxD2D1MakeSkewMatrix(
FLOAT angleX,
FLOAT angleY,
D2D1_POINT_2F center,
D2D1_MATRIX_3X2_F *matrix)
{
if (!wxDirect2D::Initialize())
return;
wxDirect2D::D2D1MakeSkewMatrix(angleX, angleY, center, matrix);
}
BOOL WINAPI wxD2D1IsMatrixInvertible(
const D2D1_MATRIX_3X2_F *matrix)
{
if (!wxDirect2D::Initialize())
return FALSE;
return wxDirect2D::D2D1IsMatrixInvertible(matrix);
}
BOOL WINAPI wxD2D1InvertMatrix(
D2D1_MATRIX_3X2_F *matrix)
{