Closed justinstenning closed 6 years ago
Not sure if this would involve being able to overlay native WPF or Windows Forms controls? I have just asked a question regarding it, based on your work http://stackoverflow.com/questions/26611170/embed-button-control-into-existing-direct3d-application
Thanks for sharing!
I am trying to understand and finish implementing the ImageElement in your Overlay engine, to draw with Direct3D 11 a 2D red rectangle texture as achieved with Direct3D 9 here thanks to you - https://github.com/spazzarama/Direct3DHook/issues/27
However, I am pretty stuck due to my lack of knowledge.
Firstly I edited the ImageElement class like this:
public class ImageElement:Element
{
// public System.IO.Stream ImageStream { get; set; }
public string ImageLocation { get; set; }
public float Alpha { get; set; }
public System.Drawing.PointF Location { get; set; }
}
Then I instantiated one at https://github.com/spazzarama/Direct3DHook/blob/master/Capture/Hook/DXHookD3D11.cs#L367
var imageElement = new ImageElement();
string dir = System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
string filename = dir + @"\gridW1024H768.jpg";
imageElement.ImageLocation = filename;
imageElement.Alpha = 1;
imageElement.Location = new PointF(50, 50);
overlay.Elements.Add(imageElement);
But how do you then initialize the texture here https://github.com/spazzarama/Direct3DHook/blob/master/Capture/Hook/DX11/DXOverlayEngine.cs#L110
else if (imageElement != null)
{
// TODO: load image element into texture
}
And finally how do you actually draw it here https://github.com/spazzarama/Direct3DHook/blob/master/Capture/Hook/DX11/DXOverlayEngine.cs#L147
else if (imageElement != null)
{
}
I think I have written the ImageElement for D3D 11 in another project, I'll see what state it is in and bring across to this project if all good.
EDIT: There's a few changes I made to the DX11 DXSprite, DXOverlayEngine, and a few additional classes. I'll look to getting these committed in the next week.
thanks ahead!
these improvements do not exist on any other branch do they?
any luck with the commits Justin?
I've mostly finished putting it together from a number of projects here, unfortunately I'm busy for the next week or so, will try to get it sorted after then.
I've got it all together, will try to commit before next week.
Image overlay support for D3D11 has been committed, this also has preliminary support for GPU image resizing. ddb309668c7eb545fda9043816f21c79807f8a69
thanks ever so much, I'll give it a whirl soon!
Closing as API now added to display overlay. Other improvements to be in new issues.
Idea is to finish implementing an Overlay engine that can render for DirectX 9, 10 and 11.