Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'intern/cycles/hydra')
-rw-r--r--intern/cycles/hydra/CMakeLists.txt9
-rw-r--r--intern/cycles/hydra/render_delegate.cpp2
-rw-r--r--intern/cycles/hydra/render_pass.cpp9
3 files changed, 16 insertions, 4 deletions
diff --git a/intern/cycles/hydra/CMakeLists.txt b/intern/cycles/hydra/CMakeLists.txt
index 72d5d0e3bf7..7b7ea43cfe5 100644
--- a/intern/cycles/hydra/CMakeLists.txt
+++ b/intern/cycles/hydra/CMakeLists.txt
@@ -26,7 +26,6 @@ set(INC_HD_CYCLES
camera.h
config.h
curves.h
- display_driver.h
field.h
geometry.h
geometry.inl
@@ -48,7 +47,6 @@ set(SRC_HD_CYCLES
attribute.cpp
curves.cpp
camera.cpp
- display_driver.cpp
field.cpp
instancer.cpp
light.cpp
@@ -73,6 +71,13 @@ if(WITH_OPENVDB)
)
endif()
+# Blender libraries do not include hgiGL, so build without display driver then.
+if(EXISTS ${USD_INCLUDE_DIR}/pxr/imaging/hgiGL)
+ add_definitions(-DWITH_HYDRA_DISPLAY_DRIVER)
+ list(APPEND SRC_HD_CYCLES display_driver.cpp)
+ list(APPEND INC_HD_CYCLES display_driver.h)
+endif()
+
include_directories(${INC})
include_directories(SYSTEM ${INC_SYS})
diff --git a/intern/cycles/hydra/render_delegate.cpp b/intern/cycles/hydra/render_delegate.cpp
index faefe9382e9..9ae0241260c 100644
--- a/intern/cycles/hydra/render_delegate.cpp
+++ b/intern/cycles/hydra/render_delegate.cpp
@@ -155,7 +155,7 @@ void HdCyclesDelegate::SetDrivers(const HdDriverVector &drivers)
bool HdCyclesDelegate::IsDisplaySupported() const
{
-#ifdef _WIN32
+#if defined(_WIN32) && defined(WITH_HYDRA_DISPLAY_DRIVER)
return _hgi && _hgi->GetAPIName() == HgiTokens->OpenGL;
#else
return false;
diff --git a/intern/cycles/hydra/render_pass.cpp b/intern/cycles/hydra/render_pass.cpp
index 8f6f934b898..82fd6eff004 100644
--- a/intern/cycles/hydra/render_pass.cpp
+++ b/intern/cycles/hydra/render_pass.cpp
@@ -4,14 +4,19 @@
#include "hydra/render_pass.h"
#include "hydra/camera.h"
-#include "hydra/display_driver.h"
#include "hydra/output_driver.h"
#include "hydra/render_buffer.h"
#include "hydra/render_delegate.h"
#include "hydra/session.h"
+
+#ifdef WITH_HYDRA_DISPLAY_DRIVER
+# include "hydra/display_driver.h"
+#endif
+
#include "scene/camera.h"
#include "scene/integrator.h"
#include "scene/scene.h"
+
#include "session/session.h"
#include <pxr/imaging/hd/renderPassState.h>
@@ -32,8 +37,10 @@ HdCyclesRenderPass::HdCyclesRenderPass(HdRenderIndex *index,
const auto renderDelegate = static_cast<const HdCyclesDelegate *>(
GetRenderIndex()->GetRenderDelegate());
if (renderDelegate->IsDisplaySupported()) {
+#ifdef WITH_HYDRA_DISPLAY_DRIVER
session->set_display_driver(
make_unique<HdCyclesDisplayDriver>(renderParam, renderDelegate->GetHgi()));
+#endif
}
}