Comments (5)
Hello! When your widget is pinned and Game Bar is not showing in the foreground you should be able to see your transparency reflected. If you want to also have transparency while Game Bar is in the foreground you need to set the AllowForegroundTransparency property in your app manifest. You can find examples of this in the sample code.
Let me know if you are still having issues after looking into that!
from xboxgamebarsamples.
Thanks for the quick reply.
This is what my current xaml looks like and it is indeed transparent at the places where the swapchainpanal is not. (e.g on the right side. I am drawing onto the swapchainpanel with directX11 and whenever i draw something, i have to set a clear color for ClearRenderTargetView which is used as a "background color" to clear the drawings of the last frame. But as soon as i do that, the swapchainpanal is black because of the background color you have to set.
it looks like this (the red line is there on purpose, im drawing the red line with directx11:
the swapchainpanal is filled with the color of the RenderTargetView background.
I have to somehow make a transparency key in my widget which will make a specific color transparent. How can i do that
from xboxgamebarsamples.
additional code:
this is my xaml page of the widget
DirectXPage::DirectXPage():
m_windowVisible(true),
m_coreInput(nullptr)
{
InitializeComponent();
m_main = std::unique_ptr<DirectXTestMain>(new DirectXTestMain(m_deviceResources));
m_main->StartRenderLoop();
}
and here starts the real directX rendering:
void DirectXTestMain::StartRenderLoop()
{
// If the animation render loop is already running then do not start another thread.
if (m_renderLoopWorker != nullptr && m_renderLoopWorker->Status == AsyncStatus::Started)
{
return;
}
// Create a task that will be run on a background thread.
auto workItemHandler = ref new WorkItemHandler([this](IAsyncAction ^ action)
{
// Calculate the updated frame and render once per vertical blanking interval.
while (action->Status == AsyncStatus::Started)
{
critical_section::scoped_lock lock(m_criticalSection);
Update();
if (Render())
{
m_deviceResources->Present();
}
}
});
// Run task on a dedicated high priority background thread.
m_renderLoopWorker = ThreadPool::RunAsync(workItemHandler, WorkItemPriority::High, WorkItemOptions::TimeSliced);
}
and here after i finished rendering i have to set a cleat color.
// Renders the current frame according to the current application state.
// Returns true if the frame was rendered and is ready to be displayed.
bool DirectXTestMain::Render()
{
// Don't try to render anything before the first Update.
if (m_timer.GetFrameCount() == 0)
{
return false;
}
auto context = m_deviceResources->GetD3DDeviceContext();
// Reset the viewport to target the whole screen.
auto viewport = m_deviceResources->GetScreenViewport();
context->RSSetViewports(1, &viewport);
// Reset render targets to the screen.
ID3D11RenderTargetView *const targets[1] = { m_deviceResources->GetBackBufferRenderTargetView() };
context->OMSetRenderTargets(1, targets, m_deviceResources->GetDepthStencilView());
DirectX::XMVECTORF32 ClearCol = { { { 0.0f, 0.0f, 0.0f, 0.0f } } }; <---------
// Clear the back buffer and depth stencil view.
context->ClearRenderTargetView(m_deviceResources->GetBackBufferRenderTargetView(), ClearCol);
//context->ClearDepthStencilView(m_deviceResources->GetDepthStencilView(), D3D11_CLEAR_DEPTH | D3D11_CLEAR_STENCIL, 1.0f, 0);
// Render the scene objects.
m_fpsTextRenderer->Render();
return true;
}
and this results into a black block
from xboxgamebarsamples.
update: fixed:
swapChainDesc.AlphaMode has to be set to DXGI_ALPHA_MODE_PREMULTIPLIED. everything is now transparent. thanks
from xboxgamebarsamples.
Awesome, glad to hear you got it figured out!
from xboxgamebarsamples.
Related Issues (20)
- Support for widgets in non-UWP apps (WinUI 3) HOT 16
- [SDK BUG] Pinned Widgets with 'Enabled Clickthrough' aren't actually click through on PC Startup HOT 7
- Vulkan API Support HOT 2
- Expanding the Looking for Group feature
- Startup some one GameBar widget by .net program(WPF) [feature request] HOT 2
- Make widgets visible for streaming tools. HOT 1
- [SDK BUG] App-to-App Communication Stops working occasionally HOT 4
- Full Screen Feature to match current Resolution & Hiding top bar HOT 1
- Setting PinningSupported to false doesn't take the widget out of pinned mode HOT 1
- Porting over our app to the Xbox Console
- [Question] How to intercept a closing window? HOT 2
- [Question] is IsScreenCaptureEnabled supported?
- [SDK BUG] Application not recognised as active even while active -> Causing frame rate issues HOT 2
- [QUESTION] Has CenterWindowAsync been removed?
- [Question] window not pinning HOT 6
- [Question] Application activation for a VB project? HOT 2
- [Feature request] Fullscreen-mode/setting size, position and "pinned" state of the widget HOT 1
- [SDK BUG] When using desktop resolution taskbar pushing widget up HOT 1
- [SDK BUG] SwapChainPanel is not transparent HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from xboxgamebarsamples.