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 = {}; _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org List details, subscription details or unsubscribe: https://lists.blender.org/mailman/listinfo/bf-blender-cvs