GithubHelp home page GithubHelp logo

Comments (5)

totallymonkey avatar totallymonkey commented on May 26, 2024

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.

Spuckwaffel avatar Spuckwaffel commented on May 26, 2024

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.
image
it looks like this (the red line is there on purpose, im drawing the red line with directx11:
image
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.

Spuckwaffel avatar Spuckwaffel commented on May 26, 2024

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.

Spuckwaffel avatar Spuckwaffel commented on May 26, 2024

update: fixed:
swapChainDesc.AlphaMode has to be set to DXGI_ALPHA_MODE_PREMULTIPLIED. everything is now transparent. thanks

from xboxgamebarsamples.

totallymonkey avatar totallymonkey commented on May 26, 2024

Awesome, glad to hear you got it figured out!

from xboxgamebarsamples.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.