Converts the image engine to the new draw manager. This is an as is migration without just a few tweaks to improve the code. Pull Request: https://projects.blender.org/blender/blender/pulls/131142
43 lines
958 B
C++
43 lines
958 B
C++
/* SPDX-FileCopyrightText: 2020 Blender Authors
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0-or-later */
|
|
|
|
/** \file
|
|
* \ingroup draw_engine
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <optional>
|
|
|
|
#include "BKE_image.hh"
|
|
|
|
#include "image_state.hh"
|
|
#include "image_texture_info.hh"
|
|
|
|
/* Forward declarations */
|
|
extern "C" {
|
|
struct Image;
|
|
}
|
|
|
|
/* *********** LISTS *********** */
|
|
|
|
namespace blender::image_engine {
|
|
|
|
/**
|
|
* Abstract class for a drawing mode of the image engine.
|
|
*
|
|
* The drawing mode decides how to draw the image on the screen. Each way how to draw would have
|
|
* its own subclass. For now there is only a single drawing mode. #DefaultDrawingMode.
|
|
*/
|
|
class AbstractDrawingMode {
|
|
public:
|
|
virtual ~AbstractDrawingMode() = default;
|
|
virtual void begin_sync() const = 0;
|
|
virtual void image_sync(::Image *image, ::ImageUser *iuser) const = 0;
|
|
virtual void draw_viewport() const = 0;
|
|
virtual void draw_finish() const = 0;
|
|
};
|
|
|
|
} // namespace blender::image_engine
|