691{
705
707 {
709 return;
710 }
711
712
715
717 status = pD3DKMTCheckOcclusion(&occlusion_desc);
719
720 hwnd =
CreateWindowA(
"static",
"static1",
WS_OVERLAPPEDWINDOW |
WS_VISIBLE, 0, 0, 200, 200, 0, 0, 0, 0);
721 ok(
hwnd !=
NULL,
"Failed to create window.\n");
722
724 status = pD3DKMTCheckOcclusion(&occlusion_desc);
726
727
730 status = pD3DKMTCheckOcclusion(&occlusion_desc);
734
735
738 status = pD3DKMTCheckOcclusion(&occlusion_desc);
741
742
743 hwnd2 =
CreateWindowA(
"static",
"static2",
WS_OVERLAPPEDWINDOW |
WS_VISIBLE, 100, 100, 200, 200, 0, 0, 0, 0);
744 ok(hwnd2 !=
NULL,
"Failed to create window.\n");
745
747 status = pD3DKMTCheckOcclusion(&occlusion_desc);
749
750 occlusion_desc.
hWnd = hwnd2;
751 status = pD3DKMTCheckOcclusion(&occlusion_desc);
753
754
755 if (pDwmEnableComposition)
756 {
758 ok(
hr ==
S_OK,
"Failed to disable composition.\n");
759
761 status = pD3DKMTCheckOcclusion(&occlusion_desc);
762
764
765 occlusion_desc.
hWnd = hwnd2;
766 status = pD3DKMTCheckOcclusion(&occlusion_desc);
768
771 status = pD3DKMTCheckOcclusion(&occlusion_desc);
775
778 status = pD3DKMTCheckOcclusion(&occlusion_desc);
781
783 ok(
hr ==
S_OK,
"Failed to enable composition.\n");
784 }
785 else
786 skip(
"Skip testing composition.\n");
787
789 status = pD3DKMTOpenAdapterFromGdiDisplayName(&open_adapter_gdi_desc);
791
792 memset(&create_device_desc, 0,
sizeof(create_device_desc));
794 status = pD3DKMTCreateDevice(&create_device_desc);
796
799 status = pD3DKMTCheckVidPnExclusiveOwnership(&check_owner_desc);
800
801
803
804
807 set_owner_desc.
pType = &owner_type;
810 status = pD3DKMTSetVidPnSourceOwner(&set_owner_desc);
812
814 {
817 }
818
820
822 status = pD3DKMTCheckOcclusion(&occlusion_desc);
823 ok(
status == expected_occlusion,
"Got unexpected return code %#lx.\n",
status);
824
825
828 occlusion_desc.
hWnd = hwnd2;
829 status = pD3DKMTCheckOcclusion(&occlusion_desc);
830 ok(
status == expected_occlusion,
"Got unexpected return code %#lx.\n",
status);
831
832
836 status = pD3DKMTCheckOcclusion(&occlusion_desc);
837 ok(
status == expected_occlusion,
"Got unexpected return code %#lx.\n",
status);
838
841 status = pD3DKMTCheckOcclusion(&occlusion_desc);
842 ok(
status == expected_occlusion,
"Got unexpected return code %#lx.\n",
status);
843
846 status = pD3DKMTCheckVidPnExclusiveOwnership(&check_owner_desc);
848
849
854 status = pD3DKMTSetVidPnSourceOwner(&set_owner_desc);
856
858 status = pD3DKMTCheckOcclusion(&occlusion_desc);
861
864 status = pD3DKMTCheckVidPnExclusiveOwnership(&check_owner_desc);
867
869 status = pD3DKMTDestroyDevice(&destroy_device_desc);
871
873 status = pD3DKMTCloseAdapter(&close_adapter_desc);
876}
#define DWM_EC_ENABLECOMPOSITION
#define DWM_EC_DISABLECOMPOSITION
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
static const WCHAR display1W[]
#define STATUS_GRAPHICS_PRESENT_OCCLUDED
#define STATUS_PROCEDURE_NOT_FOUND
#define STATUS_GRAPHICS_PRESENT_UNOCCLUDED
#define WS_OVERLAPPEDWINDOW
D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId
D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId
const D3DKMT_VIDPNSOURCEOWNER_TYPE * pType
const D3DDDI_VIDEO_PRESENT_SOURCE_ID * pVidPnSourceId
#define STATUS_INVALID_PARAMETER
enum _D3DKMT_VIDPNSOURCEOWNER_TYPE D3DKMT_VIDPNSOURCEOWNER_TYPE
@ D3DKMT_VIDPNSOURCEOWNER_EXCLUSIVE
#define DISPLAY_DEVICE_ATTACHED_TO_DESKTOP
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
#define CreateWindowA(a, b, c, d, e, f, g, h, i, j, k)
BOOL WINAPI SetWindowPos(_In_ HWND, _In_opt_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ UINT)
LONG WINAPI GetWindowLongW(_In_ HWND, _In_ int)
BOOL WINAPI DestroyWindow(_In_ HWND)