diff --git a/configure b/configure index 4dcd8e224a7..00c442067f8 100755 --- a/configure +++ b/configure @@ -934,6 +934,7 @@ enable_cryptnet enable_cryptui enable_ctapi32 enable_ctl3d32 +enable_d2d1 enable_d3d10 enable_d3d10_1 enable_d3d10core @@ -16715,6 +16716,7 @@ wine_fn_config_dll ctapi32 enable_ctapi32 wine_fn_config_dll ctl3d.dll16 enable_win16 wine_fn_config_dll ctl3d32 enable_ctl3d32 implib wine_fn_config_dll ctl3dv2.dll16 enable_win16 +wine_fn_config_dll d2d1 enable_d2d1 implib wine_fn_config_dll d3d10 enable_d3d10 implib wine_fn_config_test dlls/d3d10/tests d3d10_test wine_fn_config_dll d3d10_1 enable_d3d10_1 implib diff --git a/configure.ac b/configure.ac index de51691bf81..98118738d51 100644 --- a/configure.ac +++ b/configure.ac @@ -2725,6 +2725,7 @@ WINE_CONFIG_DLL(ctapi32) WINE_CONFIG_DLL(ctl3d.dll16,enable_win16) WINE_CONFIG_DLL(ctl3d32,,[implib]) WINE_CONFIG_DLL(ctl3dv2.dll16,enable_win16) +WINE_CONFIG_DLL(d2d1,,[implib]) WINE_CONFIG_DLL(d3d10,,[implib]) WINE_CONFIG_TEST(dlls/d3d10/tests) WINE_CONFIG_DLL(d3d10_1,,[implib]) diff --git a/dlls/d2d1/Makefile.in b/dlls/d2d1/Makefile.in new file mode 100644 index 00000000000..0db375ab1ec --- /dev/null +++ b/dlls/d2d1/Makefile.in @@ -0,0 +1,7 @@ +MODULE = d2d1.dll +IMPORTLIB = d2d1 + +C_SRCS = \ + d2d1_main.c + +RC_SRCS = version.rc diff --git a/dlls/d2d1/d2d1.spec b/dlls/d2d1/d2d1.spec new file mode 100644 index 00000000000..b1bfe9b146f --- /dev/null +++ b/dlls/d2d1/d2d1.spec @@ -0,0 +1,11 @@ +@ stdcall D2D1CreateFactory(long ptr ptr ptr) +@ stub D2D1MakeRotateMatrix +@ stub D2D1MakeSkewMatrix +@ stub D2D1IsMatrixInvertible +@ stub D2D1InvertMatrix +@ stub D2D1ConvertColorSpace +@ stub D2D1CreateDevice +@ stub D2D1CreateDeviceContext +@ stub D2D1SinCos +@ stub D2D1Tan +@ stub D2D1Vec3Length diff --git a/dlls/d2d1/d2d1_main.c b/dlls/d2d1/d2d1_main.c new file mode 100644 index 00000000000..9a389a29867 --- /dev/null +++ b/dlls/d2d1/d2d1_main.c @@ -0,0 +1,48 @@ +/* + * Copyright 2014 Henri Verbeet for CodeWeavers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + * + */ + +#include "config.h" +#include "wine/port.h" +#include "wine/debug.h" + +#define COBJMACROS +#include "d2d1.h" + +WINE_DEFAULT_DEBUG_CHANNEL(d2d); + +BOOL WINAPI DllMain(HINSTANCE inst, DWORD reason, void *reserved) +{ + switch (reason) + { + case DLL_PROCESS_ATTACH: + DisableThreadLibraryCalls(inst); + break; + } + + return TRUE; +} + +HRESULT WINAPI D2D1CreateFactory(D2D1_FACTORY_TYPE factory_type, REFIID iid, + const D2D1_FACTORY_OPTIONS *factory_options, void **factory) +{ + FIXME("factory_type %#x, iid %s, factory_options %p, factory %p stub!\n", + factory_type, debugstr_guid(iid), factory_options, factory); + + return E_NOTIMPL; +} diff --git a/dlls/d2d1/version.rc b/dlls/d2d1/version.rc new file mode 100644 index 00000000000..ab7a911c123 --- /dev/null +++ b/dlls/d2d1/version.rc @@ -0,0 +1,26 @@ +/* + * Copyright 2014 Henri Verbeet for CodeWeavers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#define WINE_FILEDESCRIPTION_STR "Wine Direct2D" +#define WINE_FILENAME_STR "d2d1.dll" +#define WINE_FILEVERSION 6,2,9200,16765 +#define WINE_FILEVERSION_STR "6.2.9200.16765" +#define WINE_PRODUCTVERSION 6,2,9200,16765 +#define WINE_PRODUCTVERSION_STR "6.2.9200.16765" + +#include "wine/wine_common_ver.rc" diff --git a/include/d2d1.idl b/include/d2d1.idl index 8c9cdb33691..c63ed2423d3 100644 --- a/include/d2d1.idl +++ b/include/d2d1.idl @@ -21,6 +21,22 @@ import "d2dbasetypes.h"; typedef D2D_POINT_2F D2D1_POINT_2F; +typedef enum D2D1_DEBUG_LEVEL +{ + D2D1_DEBUG_LEVEL_NONE = 0, + D2D1_DEBUG_LEVEL_ERROR = 1, + D2D1_DEBUG_LEVEL_WARNING = 2, + D2D1_DEBUG_LEVEL_INFORMATION = 3, + D2D1_DEBUG_LEVEL_FORCE_DWORD = 0xffffffff, +} D2D1_DEBUG_LEVEL; + +typedef enum D2D1_FACTORY_TYPE +{ + D2D1_FACTORY_TYPE_SINGLE_THREADED = 0, + D2D1_FACTORY_TYPE_MULTI_THREADED = 1, + D2D1_FACTORY_TYPE_FORCE_DWORD = 0xfffffff, +} D2D1_FACTORY_TYPE; + typedef enum D2D1_FILL_MODE { D2D1_FILL_MODE_ALTERNATE = 0, @@ -57,6 +73,11 @@ typedef enum D2D1_FIGURE_END D2D1_FIGURE_END_FORCE_DWORD = 0xffffffff } D2D1_FIGURE_END; +typedef struct D2D1_FACTORY_OPTIONS +{ + D2D1_DEBUG_LEVEL debugLevel; +} D2D1_FACTORY_OPTIONS; + [ local, object, @@ -72,3 +93,6 @@ interface ID2D1SimplifiedGeometrySink : IUnknown void EndFigure(D2D1_FIGURE_END figureEnd); HRESULT Close(); } + +[local] HRESULT __stdcall D2D1CreateFactory(D2D1_FACTORY_TYPE factory_type, REFIID iid, + const D2D1_FACTORY_OPTIONS *factory_options, void **factory);