Use a shorter/simpler license convention, stops the header taking so much space. Follow the SPDX license specification: https://spdx.org/licenses - C/C++/objc/objc++ - Python - Shell Scripts - CMake, GNUmakefile While most of the source tree has been included - `./extern/` was left out. - `./intern/cycles` & `./intern/atomic` are also excluded because they use different header conventions. doc/license/SPDX-license-identifiers.txt has been added to list SPDX all used identifiers. See P2788 for the script that automated these edits. Reviewed By: brecht, mont29, sergey Ref D14069
59 lines
1.4 KiB
C++
59 lines
1.4 KiB
C++
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
|
|
|
/** \file
|
|
* \ingroup wm
|
|
*
|
|
* \name WM-Surface
|
|
*
|
|
* Container to manage painting in an off-screen context.
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
struct bContext;
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
typedef struct wmSurface {
|
|
struct wmSurface *next, *prev;
|
|
|
|
GHOST_ContextHandle ghost_ctx;
|
|
struct GPUContext *gpu_ctx;
|
|
|
|
void *customdata;
|
|
|
|
void (*draw)(struct bContext *);
|
|
/* To evaluate the surface's depsgraph. Called as part of the main loop. */
|
|
void (*do_depsgraph)(struct bContext *C);
|
|
/** Free customdata, not the surface itself (done by wm_surface API) */
|
|
void (*free_data)(struct wmSurface *);
|
|
|
|
/** Called when surface is activated for drawing (made drawable). */
|
|
void (*activate)(void);
|
|
/** Called when surface is deactivated for drawing (current drawable cleared). */
|
|
void (*deactivate)(void);
|
|
} wmSurface;
|
|
|
|
/* Create/Free */
|
|
void wm_surface_add(wmSurface *surface);
|
|
void wm_surface_remove(wmSurface *surface);
|
|
void wm_surfaces_free(void);
|
|
|
|
/* Utils */
|
|
void wm_surfaces_iter(struct bContext *C, void (*cb)(struct bContext *, wmSurface *));
|
|
|
|
/* Evaluation. */
|
|
void wm_surfaces_do_depsgraph(struct bContext *C);
|
|
|
|
/* Drawing */
|
|
void wm_surface_make_drawable(wmSurface *surface);
|
|
void wm_surface_clear_drawable(void);
|
|
void wm_surface_set_drawable(wmSurface *surface, bool activate);
|
|
void wm_surface_reset_drawable(void);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|