Blender V5.0
wm_surface.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
12
13#pragma once
14
15#include "GHOST_Types.h"
16
17struct bContext;
18struct GPUContext;
19
20struct wmSurface {
22
23 GHOST_ContextHandle system_gpu_context;
25
27
28 void (*draw)(bContext *);
32 void (*free_data)(wmSurface *);
33
35 void (*activate)();
37 void (*deactivate)();
38};
39
40/* Create/Free. */
41void wm_surface_add(wmSurface *surface);
42void wm_surface_remove(wmSurface *surface);
43void wm_surfaces_free();
44
45/* Utils. */
46void wm_surfaces_iter(bContext *C, void (*cb)(bContext *, wmSurface *));
47
48/* Evaluation. */
50
51/* Drawing. */
54void wm_surface_set_drawable(wmSurface *surface, bool activate);
#define C
Definition RandGen.cpp:29
void activate(bool forceActivation=false) const
void(* activate)()
Definition wm_surface.hh:35
GPUContext * blender_gpu_context
Definition wm_surface.hh:24
wmSurface * next
Definition wm_surface.hh:21
void(* draw)(bContext *)
Definition wm_surface.hh:28
GHOST_ContextHandle system_gpu_context
Definition wm_surface.hh:23
void * customdata
Definition wm_surface.hh:26
wmSurface * prev
Definition wm_surface.hh:21
void(* deactivate)()
Definition wm_surface.hh:37
void(* do_depsgraph)(bContext *C)
Definition wm_surface.hh:30
void(* free_data)(wmSurface *)
Definition wm_surface.hh:32
void wm_surface_set_drawable(wmSurface *surface, bool activate)
Definition wm_surface.cc:61
void wm_surface_add(wmSurface *surface)
Definition wm_surface.cc:97
void wm_surface_remove(wmSurface *surface)
void wm_surfaces_free()
void wm_surfaces_do_depsgraph(bContext *C)
Definition wm_surface.cc:42
void wm_surface_reset_drawable()
Definition wm_surface.cc:86
void wm_surface_make_drawable(wmSurface *surface)
Definition wm_surface.cc:76
void wm_surfaces_iter(bContext *C, void(*cb)(bContext *, wmSurface *))
Definition wm_surface.cc:27
void wm_surface_clear_drawable()
Definition wm_surface.cc:47