Blender V4.3
image_instance_data.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2021 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
9#pragma once
10
11#include "BKE_image_wrappers.hh"
12
13#include "image_batches.hh"
14#include "image_buffer_cache.hh"
16#include "image_private.hh"
18#include "image_texture_info.hh"
19#include "image_usage.hh"
20
21#include "DRW_render.hh"
22
24
29
31
34 struct {
43
44 struct {
48
53
55 float ss_to_texture[4][4];
56
58
59 public:
60 virtual ~IMAGE_InstanceData() = default;
61
63 {
64 reset_need_full_update(false);
65 }
67 {
68 reset_need_full_update(true);
69 }
70
72 {
73 for (TextureInfo &info : texture_infos) {
74 BatchUpdater batch_updater(info);
75 batch_updater.update_batch();
76 }
77 }
78
79 void update_image_usage(const ImageUser *image_user)
80 {
81 ImageUsage usage(image, image_user, flags.do_tile_drawing);
82 if (last_usage != usage) {
83 last_usage = usage;
84 reset_need_full_update(true);
86 }
87 }
88
89 private:
91 void reset_need_full_update(bool new_value)
92 {
93 for (TextureInfo &info : texture_infos) {
94 info.need_full_update = new_value;
95 }
96 }
97};
98
99} // namespace blender::draw::image_engine
Create gpu::Batch for a IMAGE_ScreenSpaceTextureInfo.
Float buffer cache for image buffers.
struct blender::draw::image_engine::IMAGE_InstanceData::@206 passes
struct blender::draw::image_engine::IMAGE_InstanceData::@205 flags
void update_image_usage(const ImageUser *image_user)
bool do_tile_drawing
should we perform tiled drawing (wrap repeat).
float ss_to_texture[4][4]
Transform matrix to convert a normalized screen space coordinates to texture space.