[Bf-blender-cvs] [37fc5bcd8c4] vamr-openxr-module: Use VAMR namespace for internal types
Julian Eisel
noreply at git.blender.org
Sat Aug 31 14:50:44 CEST 2019
Commit: 37fc5bcd8c4f80304e395e6e88ec8429e82b8152
Author: Julian Eisel
Date: Sat Aug 31 14:20:57 2019 +0200
Branches: vamr-openxr-module
https://developer.blender.org/rB37fc5bcd8c4f80304e395e6e88ec8429e82b8152
Use VAMR namespace for internal types
===================================================================
M intern/vamr/VAMR_IContext.h
M intern/vamr/VAMR_Types.h
M intern/vamr/intern/VAMR.cc
M intern/vamr/intern/VAMR_Context.cc
M intern/vamr/intern/VAMR_Context.h
M intern/vamr/intern/VAMR_Event.cc
M intern/vamr/intern/VAMR_Exception.h
M intern/vamr/intern/VAMR_GraphicsBinding.cc
M intern/vamr/intern/VAMR_IGraphicsBinding.h
M intern/vamr/intern/VAMR_Session.cc
M intern/vamr/intern/VAMR_Session.h
M intern/vamr/intern/VAMR_capi.cc
M intern/vamr/intern/VAMR_intern.h
M source/blender/windowmanager/intern/wm_xr.c
===================================================================
diff --git a/intern/vamr/VAMR_IContext.h b/intern/vamr/VAMR_IContext.h
index 261bc0aa318..4e59c366e27 100644
--- a/intern/vamr/VAMR_IContext.h
+++ b/intern/vamr/VAMR_IContext.h
@@ -23,20 +23,24 @@
#include "VAMR_Types.h"
-class VAMR_IContext {
+namespace VAMR {
+
+class IContext {
public:
- virtual ~VAMR_IContext() = default;
+ virtual ~IContext() = default;
virtual void startSession(const VAMR_SessionBeginInfo *begin_info) = 0;
virtual void endSession() = 0;
virtual bool isSessionRunning() const = 0;
virtual void drawSessionViews(void *draw_customdata) = 0;
- virtual void dispatchErrorMessage(const class VAMR_Exception *) const = 0;
+ virtual void dispatchErrorMessage(const class Exception *) const = 0;
virtual void setGraphicsContextBindFuncs(VAMR_GraphicsContextBindFn bind_fn,
VAMR_GraphicsContextUnbindFn unbind_fn) = 0;
virtual void setDrawViewFunc(VAMR_DrawViewFn draw_view_fn) = 0;
};
+} // namespace VAMR
+
#endif // __VAMR_ICONTEXT_H__
diff --git a/intern/vamr/VAMR_Types.h b/intern/vamr/VAMR_Types.h
index 68b1cb545ce..6e2cb8e75aa 100644
--- a/intern/vamr/VAMR_Types.h
+++ b/intern/vamr/VAMR_Types.h
@@ -21,7 +21,9 @@
#ifndef __VAMR_TYPES_H__
#define __VAMR_TYPES_H__
-typedef struct VAMR_Context *VAMR_ContextHandle;
+typedef struct VAMR_Context__ {
+ int dummy;
+} * VAMR_ContextHandle;
typedef enum { VAMR_Failure = 0, VAMR_Success } VAMR_TSuccess;
diff --git a/intern/vamr/intern/VAMR.cc b/intern/vamr/intern/VAMR.cc
index 501d871de9f..f65055df958 100644
--- a/intern/vamr/intern/VAMR.cc
+++ b/intern/vamr/intern/VAMR.cc
@@ -29,6 +29,8 @@
#include "VAMR_Context.h"
#include "VAMR_Exception.h"
+using namespace VAMR;
+
/**
* \brief Initialize the XR-Context.
* Includes setting up the OpenXR instance, querying available extensions and API layers,
@@ -36,14 +38,14 @@
*/
VAMR_ContextHandle VAMR_ContextCreate(const VAMR_ContextCreateInfo *create_info)
{
- VAMR_Context *xr_context = new VAMR_Context(create_info);
+ Context *xr_context = new Context(create_info);
// TODO VAMR_Context's should probably be owned by the GHOST_System, which will handle context
// creation and destruction. Try-catch logic can be moved to C-API then.
try {
xr_context->initialize(create_info);
}
- catch (VAMR_Exception &e) {
+ catch (Exception &e) {
xr_context->dispatchErrorMessage(&e);
delete xr_context;
@@ -55,10 +57,15 @@ VAMR_ContextHandle VAMR_ContextCreate(const VAMR_ContextCreateInfo *create_info)
void VAMR_ContextDestroy(VAMR_ContextHandle xr_contexthandle)
{
- delete (VAMR_Context *)xr_contexthandle;
+ delete (Context *)xr_contexthandle;
}
void VAMR_ErrorHandler(VAMR_ErrorHandlerFn handler_fn, void *customdata)
{
- VAMR_Context::setErrorHandler(handler_fn, customdata);
+ Context::setErrorHandler(handler_fn, customdata);
+}
+
+VAMR_TSuccess VAMR_EventsHandle(VAMR_ContextHandle xr_contexthandle)
+{
+ return VAMR_EventsHandle((Context *)xr_contexthandle);
}
diff --git a/intern/vamr/intern/VAMR_Context.cc b/intern/vamr/intern/VAMR_Context.cc
index 9219b50d328..87b90bb5635 100644
--- a/intern/vamr/intern/VAMR_Context.cc
+++ b/intern/vamr/intern/VAMR_Context.cc
@@ -31,6 +31,8 @@
#include "VAMR_Context.h"
+namespace VAMR {
+
struct OpenXRInstanceData {
XrInstance instance{XR_NULL_HANDLE};
XrInstanceProperties instance_properties;
@@ -49,21 +51,21 @@ PFN_xrCreateDebugUtilsMessengerEXT OpenXRInstanceData::s_xrCreateDebugUtilsMesse
PFN_xrDestroyDebugUtilsMessengerEXT OpenXRInstanceData::s_xrDestroyDebugUtilsMessengerEXT_fn =
nullptr;
-VAMR_ErrorHandlerFn VAMR_Context::s_error_handler = nullptr;
-void *VAMR_Context::s_error_handler_customdata = nullptr;
+VAMR_ErrorHandlerFn Context::s_error_handler = nullptr;
+void *Context::s_error_handler_customdata = nullptr;
/* -------------------------------------------------------------------- */
/** \name Create, Initialize and Destruct
*
* \{ */
-VAMR_Context::VAMR_Context(const VAMR_ContextCreateInfo *create_info)
+Context::Context(const VAMR_ContextCreateInfo *create_info)
: m_oxr(new OpenXRInstanceData()),
m_debug(create_info->context_flag & VAMR_ContextDebug),
m_debug_time(create_info->context_flag & VAMR_ContextDebugTime)
{
}
-VAMR_Context::~VAMR_Context()
+Context::~Context()
{
/* Destroy session data first. Otherwise xrDestroyInstance will implicitly do it, before the
* session had a chance to do so explicitly. */
@@ -79,7 +81,7 @@ VAMR_Context::~VAMR_Context()
}
}
-void VAMR_Context::initialize(const VAMR_ContextCreateInfo *create_info)
+void Context::initialize(const VAMR_ContextCreateInfo *create_info)
{
enumerateApiLayers();
enumerateExtensions();
@@ -94,7 +96,7 @@ void VAMR_Context::initialize(const VAMR_ContextCreateInfo *create_info)
XR_DEBUG_ONLY_CALL(this, initDebugMessenger());
}
-void VAMR_Context::createOpenXRInstance()
+void Context::createOpenXRInstance()
{
XrInstanceCreateInfo create_info{XR_TYPE_INSTANCE_CREATE_INFO};
@@ -114,9 +116,9 @@ void VAMR_Context::createOpenXRInstance()
"Failed to connect to an OpenXR runtime.");
}
-void VAMR_Context::storeInstanceProperties()
+void Context::storeInstanceProperties()
{
- const std::map<std::string, VAMR_OpenXRRuntimeID> runtime_map{
+ const std::map<std::string, OpenXRRuntimeID> runtime_map{
{"Monado(XRT) by Collabora et al", OPENXR_RUNTIME_MONADO},
{"Oculus", OPENXR_RUNTIME_OCULUS},
{"Windows Mixed Reality Runtime", OPENXR_RUNTIME_WMR}};
@@ -139,7 +141,7 @@ void VAMR_Context::storeInstanceProperties()
*
* \{ */
-void VAMR_Context::printInstanceInfo()
+void Context::printInstanceInfo()
{
assert(m_oxr->instance != XR_NULL_HANDLE);
@@ -150,7 +152,7 @@ void VAMR_Context::printInstanceInfo()
XR_VERSION_PATCH(m_oxr->instance_properties.runtimeVersion));
}
-void VAMR_Context::printAvailableAPILayersAndExtensionsInfo()
+void Context::printAvailableAPILayersAndExtensionsInfo()
{
puts("Available OpenXR API-layers/extensions:");
for (XrApiLayerProperties &layer_info : m_oxr->layers) {
@@ -161,7 +163,7 @@ void VAMR_Context::printAvailableAPILayersAndExtensionsInfo()
}
}
-void VAMR_Context::printExtensionsAndAPILayersToEnable()
+void Context::printExtensionsAndAPILayersToEnable()
{
for (const char *layer_name : m_enabled_layers) {
printf("Enabling OpenXR API-Layer: %s\n", layer_name);
@@ -181,7 +183,7 @@ static XrBool32 debug_messenger_func(XrDebugUtilsMessageSeverityFlagsEXT /*messa
return XR_FALSE; // OpenXR spec suggests always returning false.
}
-void VAMR_Context::initDebugMessenger()
+void Context::initDebugMessenger()
{
XrDebugUtilsMessengerCreateInfoEXT create_info{XR_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT};
@@ -228,7 +230,7 @@ void VAMR_Context::initDebugMessenger()
*
* \{ */
-void VAMR_Context::dispatchErrorMessage(const VAMR_Exception *exception) const
+void Context::dispatchErrorMessage(const Exception *exception) const
{
std::ostringstream stream_err_location;
std::string str_err_location;
@@ -248,11 +250,11 @@ void VAMR_Context::dispatchErrorMessage(const VAMR_Exception *exception) const
exception->m_res,
error.source_location));
- /* Potentially destroys VAMR_Context */
+ /* Potentially destroys VAMR-context */
s_error_handler(&error);
}
-void VAMR_Context::setErrorHandler(VAMR_ErrorHandlerFn handler_fn, void *customdata)
+void Context::setErrorHandler(VAMR_ErrorHandlerFn handler_fn, void *customdata)
{
s_error_handler = handler_fn;
s_error_handler_customdata = customdata;
@@ -268,8 +270,8 @@ void VAMR_Context::setErrorHandler(VAMR_ErrorHandlerFn handler_fn, void *customd
/**
* \param layer_name May be NULL for extensions not belonging to a specific layer.
*/
-void VAMR_Context::enumerateExtensionsEx(std::vector<XrExtensionProperties> &extensions,
- const char *layer_name)
+void Context::enumerateExtensionsEx(std::vector<XrExtensionProperties> &extensions,
+ const char *layer_name)
{
uint32_t extension_count = 0;
@@ -292,12 +294,12 @@ void VAMR_Context::enumerateExtensionsEx(std::vector<XrExtensionProperties> &ext
layer_name, extension_count, &extension_count, extensions.data()),
"Failed to query OpenXR runtime information. Do you have an active runtime set up?");
}
-void VAMR_Context::enumerateExtensions()
+void Context::enumerateExtensions()
{
enumerateExtensionsEx(m_oxr->extensions, nullptr);
}
-void VAMR_Context::enumerateApiLayers()
+void Context::enumerateApiLayers()
{
uint32_t layer_count = 0;
@@ -350,7 +352,7 @@ static bool openxr_extension_is_available(const std::vector<XrExtensionPropertie
/**
* Gather an array of names for the API-layers to enable.
*/
-void VAMR_Context::getAPILayersToEnable(std::vector<const char *> &r_ext_names)
+void Context::getAPILayersToEnable(std::vector<const char *> &r_ext_names)
{
static std::vector<std::string> try_layers;
@@ -387,7 +389,7 @@ static const char *openxr_ext_name_from_wm_gpu_binding(VAMR_GraphicsBindingType
/**
* Gather an array of names for the extensions to enable.
*/
-void VAMR_Context::getExtensionsToEnable(std::vector<const char *> &r_ext_names)
+void Context::getExtensionsToEnable(std::vector<const char *> &r_ext_names)
{
assert(m_gpu_binding_type != VAMR_GraphicsBindingTypeUnknown);
@@ -419,7 +421,7 @@ void VAMR_Context::getExtensionsToEnable(std::vector<const char *> &r_ext_names)
* Decide which graphics binding extension to use based on
* #VAMR_ContextCreateInfo.gpu_binding_candidates and available extensions.
*/
-VAMR_GraphicsBindingType VAMR_Context::determineGraphicsBindingTypeToEnable(
+VAMR_GraphicsBindingType Context::determineGraphicsBindingTypeToEnable(
const VAMR_ContextCreateInfo *create_info)
{
assert(create_info->gpu_binding_candidates != NULL);
@@ -442,28 +444,28 @@ VAMR_GraphicsBindingType VAMR_Context::determineGraphicsBindingTypeToEnable(
/* ----------------------------------------------------------------
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list