Blender Git Commits

Blender Git "temp-ghost_openxr" branch commits.

June 18, 2019, 23:00 (GMT)
Remove CTX_wm_xr_context

Not really useful, plus XR-Context is now GHOST data.
June 18, 2019, 22:57 (GMT)
Rename of XR types (WM -> GHOST)
June 18, 2019, 22:44 (GMT)
Lazy-create XR-context

Creating the context causes the OpenXR loader to try connect to a
runtime. That would involve reading the OS'es active_runtime.json and
dynamic linking based on that. So better avoid doing this on startup.
Also: don't pay for what you don't use!
June 18, 2019, 22:28 (GMT)
Rename wm_xr_ -> GHOST_XR
June 18, 2019, 21:50 (GMT)
Merge branch 'soc-2019-openxr' into temp-ghost_openxr
June 18, 2019, 21:49 (GMT)
Merge branch 'master' into soc-2019-openxr
June 17, 2019, 23:02 (GMT)
Use some C++ features where useful

Also correct include guards.
June 17, 2019, 21:45 (GMT)
Initially move XR files to GHOST and compile in C++
June 17, 2019, 20:24 (GMT)
Merge branch 'master' into soc-2019-openxr
June 16, 2019, 23:24 (GMT)
Fail without crashing if no runtime is found

For now simply do nothing. Plan is to work on proper error handling and
reporting later.
June 16, 2019, 21:28 (GMT)
Fix compile errors and warnings on certain configs

* Compile error on Linux
* Compile error with WITH_OPENXR disabled
* Unused parameter warnings
June 16, 2019, 21:12 (GMT)
Fix missing return value... how did this work even?

Looking at the code this should've failed miserably. No idea how this
could still work fine... Maybe return vars used same stack location?
June 16, 2019, 20:58 (GMT)
Merge branch 'master' into soc-2019-openxr
June 16, 2019, 19:46 (GMT)
Draw OpenGL framebuffer upside down in DirectX windows

DirectX is Y coordinates top to bottom, while OpenGL is the opposite.
For the final window manager on-screen drawing, draw to a texture first
and draw that upside down if needed.
June 16, 2019, 19:05 (GMT)
Support drawing the VR view into a DirectX window!

Phew! That a fight. But this is also a pretty important feature as it
allows interfacing with Windows Mixed Reality OpenXR runtime and the
HMDs supported by it.

Important remaining issue: The rendered viewport is upside down :) That
is of course because DirectX has the opposite vertical direction than

When creating a DirectX window, we also create an OpenGL offscreen
context to use for all drawing. Just before swapping framebuffers, the
DirectX window blits the framebuffer of the offscreen context into its
swapchain. This requires the WGL_NV_DX_interop and WGL_NV_DX_interop2

For testing/dev purposes, also adds:
* Version of the offscreen to onscreen blitting that's OpenGL only. So
it blits the default framebuffer of the offscreen context into the one
of the onscreen context.
This is disabled by a #define.
* Code to draw a colored triangle using DirectX, also for testing.
Requires the D3DCompiler.lib to be available at compile time. This is
also disabled using a #define.
June 14, 2019, 18:41 (GMT)
Merge branch 'master' into soc-2019-openxr
June 14, 2019, 17:07 (GMT)
Set up DirectX window to support drawing

With this the VR window should open fine and get cleared in a red-ish
orange using Direct3D 11 calls (well, on Windows that is).

The window still draws a 3D view to an offscreen buffer. Where we
usually just swap the buffers, we now allow calling a GHOST function to
blit the offscreen OpenGL buffer to whatever type of graphics buffer the
window uses (DirectX here).
The nice thing about this approach is that all DirectX code stays in
GHOST_ContextD3D.cpp. And the entire compatibiliy code can go into a
single function higher level modules don't need to care about.

This also fixes a number of issues introduced in earlier commits.
June 14, 2019, 00:41 (GMT)
Draw into OpenGL offscreen context in the DirectX window.

The window doesn't show anything of course. However we draw (at least I
assume it does) as regular, just into a window offscreen context.

A valid 3D view is created in the window. It's not visible but you see
cursor changes as you move over the window. So handling works.
June 13, 2019, 21:24 (GMT)
(Disabled) code to open a DirectX window with the VR session

The window immediately crashes, hence keeping it disabled for now.

Not sure how much of this I'll leave in, for now this is mainly for
testing DirectX compatibility.
June 13, 2019, 16:22 (GMT)
Fix compile errors with older MSVC/Win-SDK versions

Reported by @LazyDodo, thanks!
By: Miika HämäläinenLast update: Nov-07-2014 14:18 MiikaHweb | 2003-2020