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:
authorBrecht Van Lommel <brecht@blender.org>2021-09-14 16:37:47 +0300
committerBrecht Van Lommel <brecht@blender.org>2021-09-30 21:48:08 +0300
commita754e35198d852ea34e2b82cd2b126538e6f5a3b (patch)
tree9118b3fa19ab70aa1b50440ce62e5d028d940cfd /intern/cycles/integrator/path_trace.h
parentac582056e2e70f3b0d91ff69d0307dd357e2e2ed (diff)
Cycles: refactor API for GPU display
* Split GPUDisplay into two classes. PathTraceDisplay to implement the Cycles side, and DisplayDriver to implement the host application side. The DisplayDriver is now a fully abstract base class, embedded in the PathTraceDisplay. * Move copy_pixels_to_texture implementation out of the host side into the Cycles side, since it can be implemented in terms of the texture buffer mapping. * Move definition of DeviceGraphicsInteropDestination into display driver header, so that we do not need to expose private device headers in the public API. * Add more detailed comments about how the DisplayDriver should be implemented. The "driver" terminology might not be obvious, but is also used in other renderers. Differential Revision: https://developer.blender.org/D12626
Diffstat (limited to 'intern/cycles/integrator/path_trace.h')
-rw-r--r--intern/cycles/integrator/path_trace.h15
1 files changed, 8 insertions, 7 deletions
diff --git a/intern/cycles/integrator/path_trace.h b/intern/cycles/integrator/path_trace.h
index f507c2d7e0a..46eb0435c91 100644
--- a/intern/cycles/integrator/path_trace.h
+++ b/intern/cycles/integrator/path_trace.h
@@ -31,12 +31,13 @@ CCL_NAMESPACE_BEGIN
class AdaptiveSampling;
class Device;
class DeviceScene;
+class DisplayDriver;
class Film;
class RenderBuffers;
class RenderScheduler;
class RenderWork;
+class PathTraceDisplay;
class Progress;
-class GPUDisplay;
class TileManager;
/* PathTrace class takes care of kernel graph and scheduling on a (multi)device. It takes care of
@@ -98,13 +99,13 @@ class PathTrace {
* Use this to configure the adaptive sampler before rendering any samples. */
void set_adaptive_sampling(const AdaptiveSampling &adaptive_sampling);
- /* Set GPU display which takes care of drawing the render result. */
- void set_gpu_display(unique_ptr<GPUDisplay> gpu_display);
+ /* Set display driver which takes care of drawing the render result. */
+ void set_display_driver(unique_ptr<DisplayDriver> driver);
- /* Clear the GPU display by filling it in with all zeroes. */
- void clear_gpu_display();
+ /* Clear the display buffer by filling it in with all zeroes. */
+ void clear_display();
- /* Perform drawing of the current state of the GPUDisplay. */
+ /* Perform drawing of the current state of the DisplayDriver. */
void draw();
/* Cancel rendering process as soon as possible, without waiting for full tile to be sampled.
@@ -252,7 +253,7 @@ class PathTrace {
RenderScheduler &render_scheduler_;
TileManager &tile_manager_;
- unique_ptr<GPUDisplay> gpu_display_;
+ unique_ptr<PathTraceDisplay> display_;
/* Per-compute device descriptors of work which is responsible for path tracing on its configured
* device. */