Advertisement
Guest User

Untitled

a guest
Nov 24th, 2014
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.18 KB | None | 0 0
  1. #include "DxTest.h"
  2. #include <QDebug>
  3. #include <SharedOpenGLContext/SharedOpenGLContext.h>
  4. #include <d3d11.h>
  5.  
  6. static ID3D11Texture2D* createTexture(ID3D11Device* device)
  7. {
  8.     D3D11_TEXTURE2D_DESC desc = {};
  9.     desc.Width = 256;
  10.     desc.Height = 256;
  11.     desc.MipLevels = 1;
  12.     desc.ArraySize = 1;
  13.     desc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
  14.     desc.SampleDesc.Count = 1;
  15.     desc.Usage = D3D11_USAGE_DEFAULT;
  16.     desc.MiscFlags = D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX;
  17.     desc.BindFlags = D3D11_BIND_RENDER_TARGET | D3D11_BIND_SHADER_RESOURCE;
  18.  
  19.     ID3D11Texture2D* texture = 0;
  20.     device->CreateTexture2D(&desc, 0, &texture);
  21.     return texture;
  22. }
  23.  
  24. DxTest::DxTest()
  25. {
  26.     ID3D11Device* device = SharedOpenGLContext::getDxDevice();
  27.     qDebug() << "device" << device;
  28.  
  29.     ID3D11Texture2D* texture = createTexture(device);
  30.     qDebug() << "texture" << texture;
  31.  
  32.     IDXGIResource* resource = 0;
  33.     texture->QueryInterface(__uuidof(IDXGIResource), (void**)&resource);
  34.  
  35.     HANDLE sharedHandle = 0;
  36.     resource->GetSharedHandle(&sharedHandle);
  37.     qDebug() << "sharedHandle" << sharedHandle;
  38.  
  39.     IDXGIKeyedMutex* mutex = 0;
  40.     texture->QueryInterface(__uuidof(IDXGIKeyedMutex), (void**)&mutex);
  41.     qDebug() << "mutex" << mutex;
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement