From: Zhiyi Zhang zzhang@codeweavers.com
--- include/Makefile.in | 1 + include/dcomptypes.h | 83 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 84 insertions(+) create mode 100644 include/dcomptypes.h
diff --git a/include/Makefile.in b/include/Makefile.in index 49b5f7c4b01..54939f1c900 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -182,6 +182,7 @@ SOURCES = \ dciddi.h \ dciman.h \ dcommon.idl \ + dcomptypes.h \ dde.h \ dde.rh \ ddeml.h \ diff --git a/include/dcomptypes.h b/include/dcomptypes.h new file mode 100644 index 00000000000..7f35eeb502f --- /dev/null +++ b/include/dcomptypes.h @@ -0,0 +1,83 @@ +/* + * Copyright 2023 Zhiyi Zhang 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 + */ + +#ifndef __WINE_DCOMPTYPES_H +#define __WINE_DCOMPTYPES_H + +#include <dxgitype.h> +#include <dxgi1_5.h> +#include <winapifamily.h> + +enum DCOMPOSITION_BITMAP_INTERPOLATION_MODE +{ + DCOMPOSITION_BITMAP_INTERPOLATION_MODE_NEAREST_NEIGHBOR = 0, + DCOMPOSITION_BITMAP_INTERPOLATION_MODE_LINEAR = 1, + DCOMPOSITION_BITMAP_INTERPOLATION_MODE_INHERIT = 0xffffffff +}; + +enum DCOMPOSITION_BORDER_MODE +{ + DCOMPOSITION_BORDER_MODE_SOFT = 0, + DCOMPOSITION_BORDER_MODE_HARD = 1, + DCOMPOSITION_BORDER_MODE_INHERIT = 0xffffffff +}; + +enum DCOMPOSITION_COMPOSITE_MODE +{ + DCOMPOSITION_COMPOSITE_MODE_SOURCE_OVER = 0, + DCOMPOSITION_COMPOSITE_MODE_DESTINATION_INVERT = 1, + DCOMPOSITION_COMPOSITE_MODE_MIN_BLEND = 2, + DCOMPOSITION_COMPOSITE_MODE_INHERIT = 0xffffffff +}; + +enum DCOMPOSITION_BACKFACE_VISIBILITY +{ + DCOMPOSITION_BACKFACE_VISIBILITY_VISIBLE = 0, + DCOMPOSITION_BACKFACE_VISIBILITY_HIDDEN = 1, + DCOMPOSITION_BACKFACE_VISIBILITY_INHERIT = 0xffffffff +}; + +enum DCOMPOSITION_OPACITY_MODE +{ + DCOMPOSITION_OPACITY_MODE_LAYER = 0, + DCOMPOSITION_OPACITY_MODE_MULTIPLY = 1, + DCOMPOSITION_OPACITY_MODE_INHERIT = 0xffffffff +}; + +enum DCOMPOSITION_DEPTH_MODE +{ + DCOMPOSITION_DEPTH_MODE_TREE = 0, + DCOMPOSITION_DEPTH_MODE_SPATIAL = 1, + DCOMPOSITION_DEPTH_MODE_SORTED = 3, + DCOMPOSITION_DEPTH_MODE_INHERIT = 0xffffffff +}; + +typedef struct +{ + LARGE_INTEGER lastFrameTime; + DXGI_RATIONAL currentCompositionRate; + LARGE_INTEGER currentTime; + LARGE_INTEGER timeFrequency; + LARGE_INTEGER nextEstimatedFrameTime; +} DCOMPOSITION_FRAME_STATISTICS; + +#define COMPOSITIONOBJECT_READ 0x0001L +#define COMPOSITIONOBJECT_WRITE 0x0002L +#define COMPOSITIONOBJECT_ALL_ACCESS (COMPOSITIONOBJECT_READ | COMPOSITIONOBJECT_WRITE) + +#endif /* __WINE_DCOMPTYPES_H */