sciter-sdk icon indicating copy to clipboard operation
sciter-sdk copied to clipboard

Rendering using D3D9

Open bugproof opened this issue 3 years ago • 3 comments

Is it possible to render directly with D3D9 without rendering using CPU first (e.g. https://github.com/c-smile/sciter-sdk/blob/master/demos.lite/win32-bitmap/plain-win.cpp)? Is there any way to implement a custom renderer in form of some plugin so it can be used without access to the source code?

bugproof avatar Sep 16 '20 12:09 bugproof

Sciter uses Direct2D as primary rendering backend on Windows.

Direct2D uses DXGI infrastructure, see:

https://docs.microsoft.com/en-us/windows/win32/direct2d/direct2d-and-direct3d-interoperation-overview and https://docs.microsoft.com/en-us/windows/win32/direct3ddxgi/d3d10-graphics-programming-guide-dxgi

Seems like DXGI can work only with D3D10 but I am not sure.

Check https://github.com/c-smile/sciter-sdk/tree/master/demos.lite/sciter-directx

Try to convince DXGI to work on top D3D9 stack, it seems that D3D10 device can be created on D3D9: https://docs.microsoft.com/en-us/windows/win32/direct2d/direct2d-and-direct3d-interoperation-overview#creating-a-dxgi-surface

c-smile avatar Sep 16 '20 13:09 c-smile

It's not possible to use Direct2D with D3D9 https://stackoverflow.com/questions/43409898/retrieve-id2d1devicecontext-from-idirect3ddevice9

I couldn't find any mention of creating D3D10 device on D3D9. It would be nice if rendering backend could be swapped with something else but I think it doesn't expose any abstract class/interface so we could replace it.

bugproof avatar Sep 16 '20 15:09 bugproof

You can use Sciter.Lite and render content into a bitmap (texture). See: https://github.com/c-smile/sciter-sdk/tree/master/demos.lite/win32-bitmap demo.

c-smile avatar Nov 26 '20 04:11 c-smile