This removes the old `DrawEngineType` and use the new `DrawEngine` virtual class instead. This removes a lot of boilerplate functions that were only there for legacy reason. To this end, some engines that were based on static functions have been refactored into `Instance` classes. This was particularly cumbersome for the Grease pencil engine which needed some more refactoring. The `Engine` class that is in each namespace is a workaround to isolate the internal implementation (i.e. the `Instance`) to the engine modules. Without this, the whole engine is getting included in each compile unit that includes the `Instance` class. Eventually, if we get rid of these intricate dependencies, we could remove the `Engine` class. Pull Request: https://projects.blender.org/blender/blender/pulls/136001
28 lines
472 B
C++
28 lines
472 B
C++
/* SPDX-FileCopyrightText: 2020 Blender Authors
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0-or-later */
|
|
|
|
/** \file
|
|
* \ingroup draw_engine
|
|
*
|
|
* Draw engine to draw the Image/UV editor
|
|
*/
|
|
|
|
#include "image_engine.h"
|
|
#include "image_instance.hh"
|
|
#include "image_shader.hh"
|
|
|
|
namespace blender::image_engine {
|
|
|
|
DrawEngine *Engine::create_instance()
|
|
{
|
|
return new Instance();
|
|
}
|
|
|
|
void Engine::free_static()
|
|
{
|
|
ShaderModule::module_free();
|
|
}
|
|
|
|
} // namespace blender::image_engine
|