123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- #pragma once
- #ifndef __spoutDirectX__
- #define __spoutDirectX__
- #include "SpoutCommon.h"
- #include <windowsx.h>
- #include <d3d9.h>
- #include <d3d11.h>
- #include <DXGI.h>
- #include <string>
- #include <iostream>
- #pragma comment (lib, "d3d9.lib")
- #pragma comment (lib, "d3d11.lib")
- #pragma comment (lib, "DXGI.lib")
- using namespace std;
- class SPOUT_DLLEXP spoutDirectX {
- public:
- spoutDirectX();
- ~spoutDirectX();
-
- IDirect3D9Ex* CreateDX9object();
- IDirect3DDevice9Ex* CreateDX9device(IDirect3D9Ex* pD3D, HWND hWnd);
- bool CreateSharedDX9Texture(IDirect3DDevice9Ex* pDevice, unsigned int width, unsigned int height, D3DFORMAT format, LPDIRECT3DTEXTURE9 &dxTexture, HANDLE &dxShareHandle);
-
-
-
- ID3D11Device* CreateDX11device();
- bool CreateSharedDX11Texture(ID3D11Device* pDevice, unsigned int width, unsigned int height, DXGI_FORMAT format, ID3D11Texture2D** pSharedTexture, HANDLE &dxShareHandle);
- bool OpenDX11shareHandle(ID3D11Device* pDevice, ID3D11Texture2D** ppSharedTexture, HANDLE dxShareHandle);
- void CloseDX11();
-
- int GetNumAdapters();
- bool GetAdapterName(int index, char *adaptername, int maxchars);
- bool SetAdapter(int index);
- int GetAdapter();
- bool GetAdapterInfo(char *renderdescription, char *displaydescription, int maxchars);
-
-
- bool ReadDwordFromRegistry(DWORD *pValue, const char *subkey, const char *valuename);
- bool WriteDwordToRegistry(DWORD dwValue, const char *subkey, const char *valuename);
-
- bool CreateAccessMutex(const char *name, HANDLE &hAccessMutex);
- void CloseAccessMutex(HANDLE &hAccessMutex);
- bool CheckAccess(HANDLE hAccessMutex, ID3D11Texture2D* pSharedTexture = NULL);
- void AllowAccess(HANDLE hAccessMutex, ID3D11Texture2D* pSharedTexture = NULL);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- bool CreateReceiverAccessMutex(const char *name, HANDLE &hAccessMutex);
- void CloseReceiverAccessMutex(HANDLE &hAccessMutex);
- bool CheckReceiverAccess(HANDLE hAccessMutex);
- void AllowReceiverAccess(HANDLE hAccessMutex);
-
- bool bUseAccessLocks;
- protected:
- IDXGIAdapter* GetAdapterPointer(int index);
- int g_AdapterIndex;
- IDXGIAdapter* g_pAdapterDX11;
- ID3D11DeviceContext* g_pImmediateContext;
- D3D_DRIVER_TYPE g_driverType;
- D3D_FEATURE_LEVEL g_featureLevel;
- };
- #endif
|