[vlc-commits] InstanceCX: pass parameters for the D3D11 vout
Steve Lhomme
git at videolan.org
Tue Jun 23 16:02:00 CEST 2015
libvlcpp | branch: master | Steve Lhomme <robUx4 at gmail.com> | Tue Jun 23 13:31:08 2015 +0200| [ce84b476527174739d8c355aaff7045347255313] | committer: Jean-Baptiste Kempf
InstanceCX: pass parameters for the D3D11 vout
the SwapChain layout dimensions are passed via private data in the DXGI swap chain
> http://git.videolan.org/gitweb.cgi/libvlcpp.git/?a=commit;h=ce84b476527174739d8c355aaff7045347255313
---
cppcx/InstanceCX.cpp | 35 +++++++++++++++--------------------
1 file changed, 15 insertions(+), 20 deletions(-)
diff --git a/cppcx/InstanceCX.cpp b/cppcx/InstanceCX.cpp
index 6841808..b756202 100644
--- a/cppcx/InstanceCX.cpp
+++ b/cppcx/InstanceCX.cpp
@@ -33,7 +33,7 @@ namespace libVLCX
Instance::Instance(Windows::Foundation::Collections::IVector<Platform::String^>^ argv, SwapChainPanel^ panel)
: m_chainPanel(panel)
{
- int extraArgs = 5;
+ int extraArgs = 4;
auto c_argv = new char*[argv->Size + extraArgs];
unsigned int i = 0;
for (auto arg : argv)
@@ -79,33 +79,28 @@ namespace libVLCX
sprintf_s(ptr_astring, "--winstore-audioclient=0x%p", audioReg->m_AudioClient);
argv[nbArgs++] = _strdup(ptr_astring);
- char ptr_d2dstring[40];
- sprintf_s(ptr_d2dstring, "--winrt-d2dcontext=0x%p", m_dxManager->cp_d2dContext);
- argv[nbArgs++] = _strdup(ptr_d2dstring);
+ char ptr_d3dstring[40];
+ sprintf_s(ptr_d3dstring, "--winrt-d3ddevice=0x%p", m_dxManager->cp_d3dDevice);
+ argv[nbArgs++] = _strdup(ptr_d3dstring);
+
+ char ptr_d3dcstring[40];
+ sprintf_s(ptr_d3dcstring, "--winrt-d3dcontext=0x%p", m_dxManager->cp_d3dContext);
+ argv[nbArgs++] = _strdup(ptr_d3dcstring);
char ptr_scstring[40];
sprintf_s(ptr_scstring, "--winrt-swapchain=0x%p", m_dxManager->cp_swapChain);
argv[nbArgs++] = _strdup(ptr_scstring);
-
- char widthstring[40];
- sprintf_s(widthstring, "--winrt-width=0x%p", &m_width);
- argv[nbArgs++] = _strdup(widthstring);
-
- char heightstring[40];
- sprintf_s(heightstring, "--winrt-height=0x%p", &m_height);
- argv[nbArgs++] = _strdup(heightstring);
}
+ static const GUID SWAPCHAIN_WIDTH = { 0xf1b59347, 0x1643, 0x411a,{ 0xad, 0x6b, 0xc7, 0x80, 0x17, 0x7a, 0x6, 0xb6 } };
+ static const GUID SWAPCHAIN_HEIGHT = { 0x6ea976a0, 0x9d60, 0x4bb7,{ 0xa5, 0xa9, 0x7d, 0xd1, 0x18, 0x7f, 0xc9, 0xbd } };
+
void Instance::UpdateSize(float x, float y)
{
-#if WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP
- const float scaleFactor = Windows::Graphics::Display::DisplayInformation::GetForCurrentView()->RawPixelsPerViewPixel;
-#else
- const float scaleFactor = (float) DisplayProperties::ResolutionScale / 100.f;
-#endif
-
- m_width = (uint32_t)(x * scaleFactor);
- m_height = (uint32_t)(y * scaleFactor);
+ m_width = (uint32_t)x;
+ m_height = (uint32_t)y;
+ m_dxManager->cp_swapChain->SetPrivateData(SWAPCHAIN_WIDTH, sizeof(uint32_t), &m_width);
+ m_dxManager->cp_swapChain->SetPrivateData(SWAPCHAIN_HEIGHT, sizeof(uint32_t), &m_height);
}
int Instance::addIntf(Platform::String^ name)
More information about the vlc-commits
mailing list