12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
- // ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
- // THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
- // PARTICULAR PURPOSE.
- //
- // Copyright (c) Microsoft Corporation. All rights reserved
- #ifndef _OUTPUTMANAGER_H_
- #define _OUTPUTMANAGER_H_
- #include <stdio.h>
- #include "CommonTypes.h"
- #include "warning.h"
- //
- // Handles the task of drawing into a window.
- // Has the functionality to draw the mouse given a mouse shape buffer and position
- //
- class OUTPUTMANAGER
- {
- public:
- OUTPUTMANAGER();
- ~OUTPUTMANAGER();
- DUPL_RETURN InitOutput(HWND Window, INT SingleOutput, _Out_ UINT* OutCount, _Out_ RECT* DeskBounds);
- DUPL_RETURN UpdateApplicationWindow(_In_ PTR_INFO* PointerInfo, _Inout_ bool* Occluded);
- void CleanRefs();
- HANDLE GetSharedHandle();
- void WindowResize();
- private:
- // Methods
- DUPL_RETURN ProcessMonoMask(bool IsMono, _Inout_ PTR_INFO* PtrInfo, _Out_ INT* PtrWidth, _Out_ INT* PtrHeight, _Out_ INT* PtrLeft, _Out_ INT* PtrTop, _Outptr_result_bytebuffer_(*PtrHeight **PtrWidth * BPP) BYTE** InitBuffer, _Out_ D3D11_BOX* Box);
- DUPL_RETURN MakeRTV();
- void SetViewPort(UINT Width, UINT Height);
- DUPL_RETURN InitShaders();
- DUPL_RETURN InitGeometry();
- DUPL_RETURN CreateSharedSurf(INT SingleOutput, _Out_ UINT* OutCount, _Out_ RECT* DeskBounds);
- DUPL_RETURN DrawFrame();
- DUPL_RETURN DrawMouse(_In_ PTR_INFO* PtrInfo);
- DUPL_RETURN ResizeSwapChain();
- // Vars
- IDXGISwapChain1* m_SwapChain;
- ID3D11Device* m_Device;
- IDXGIFactory2* m_Factory;
- ID3D11DeviceContext* m_DeviceContext;
- ID3D11RenderTargetView* m_RTV;
- ID3D11SamplerState* m_SamplerLinear;
- ID3D11BlendState* m_BlendState;
- ID3D11VertexShader* m_VertexShader;
- ID3D11PixelShader* m_PixelShader;
- ID3D11InputLayout* m_InputLayout;
- ID3D11Texture2D* m_SharedSurf;
- IDXGIKeyedMutex* m_KeyMutex;
- HWND m_WindowHandle;
- bool m_NeedsResize;
- DWORD m_OcclusionCookie;
- };
- #endif
|