[Bf-blender-cvs] [4dee938b517] temp-viewport-compositor-compiler: Merge branch 'viewport-compositor' into temp-viewport-compositor-compiler

Omar Emara noreply at git.blender.org
Fri Feb 18 09:06:53 CET 2022


Commit: 4dee938b517e03767c33c0c49984dc5b95267ff2
Author: Omar Emara
Date:   Fri Feb 18 10:06:35 2022 +0200
Branches: temp-viewport-compositor-compiler
https://developer.blender.org/rB4dee938b517e03767c33c0c49984dc5b95267ff2

Merge branch 'viewport-compositor' into temp-viewport-compositor-compiler

===================================================================



===================================================================

diff --cc source/blender/draw/engines/compositor/compositor_engine.cc
index 8eb570b0809,33f5ff42041..b9d507c46ef
--- a/source/blender/draw/engines/compositor/compositor_engine.cc
+++ b/source/blender/draw/engines/compositor/compositor_engine.cc
@@@ -16,83 -16,10 +16,83 @@@
   * Copyright 2021, Blender Foundation.
   */
  
+ #include "BLT_translation.h"
+ 
 +#include "DNA_scene_types.h"
 +
  #include "DRW_render.h"
  
 +#include "IMB_colormanagement.h"
 +
 +#include "NOD_compositor_execute.hh"
 +
 +#include "GPU_texture.h"
 +
- #include "compositor_shader.hh"
- 
 +namespace blender::viewport_compositor {
 +
 +class DRWTexturePool : public TexturePool {
 + public:
 +  GPUTexture *allocate_texture(int width, int height, eGPUTextureFormat format) override
 +  {
 +    DrawEngineType *owner = (DrawEngineType *)this;
 +    return DRW_texture_pool_query_2d(width, height, format, owner);
 +  }
 +};
 +
 +class DRWContext : public Context {
 + public:
 +  using Context::Context;
 +  GPUTexture *get_viewport_texture() override
 +  {
 +    return DRW_viewport_texture_list_get()->color;
 +  }
 +
 +  GPUTexture *get_pass_texture(int view_layer, eScenePassType pass_type) override
 +  {
 +    return DRW_render_pass_find(DRW_context_state_get()->scene, view_layer, pass_type)->pass_tx;
 +  }
 +};
 +
 +/* Get the scene which includes the compositor node tree. */
 +static const Scene *get_scene()
 +{
 +  return DRW_context_state_get()->scene;
 +}
 +
 +/* It is sufficient to check for the scene node tree because the engine will not be enabled when
 + * the viewport shading option is disabled. */
 +static bool is_compositor_enabled()
 +{
 +  const Scene *scene = get_scene();
 +  if (scene->use_nodes && scene->nodetree) {
 +    return true;
 +  }
 +  return false;
 +}
 +
 +static void draw()
 +{
 +  if (!is_compositor_enabled()) {
 +    return;
 +  }
 +
 +  /* Reset default view. */
 +  DRW_view_set_active(nullptr);
 +
 +  DRWTexturePool texture_pool;
 +  DRWContext context(texture_pool);
 +  const Scene *scene = get_scene();
 +  Evaluator evaluator(context, scene->nodetree);
 +  evaluator.evaluate();
 +}
 +
 +}  // namespace blender::viewport_compositor
 +
 +static void compositor_draw(void *UNUSED(data))
 +{
 +  blender::viewport_compositor::draw();
 +}
 +
  extern "C" {
  
  static const DrawEngineDataSize compositor_data_size = {};



More information about the Bf-blender-cvs mailing list