Listing the "Blender Foundation" as copyright holder implied the Blender Foundation holds copyright to files which may include work from many developers. While keeping copyright on headers makes sense for isolated libraries, Blender's own code may be refactored or moved between files in a way that makes the per file copyright holders less meaningful. Copyright references to the "Blender Foundation" have been replaced with "Blender Authors", with the exception of `./extern/` since these this contains libraries which are more isolated, any changed to license headers there can be handled on a case-by-case basis. Some directories in `./intern/` have also been excluded: - `./intern/cycles/` it's own `AUTHORS` file is planned. - `./intern/opensubdiv/`. An "AUTHORS" file has been added, using the chromium projects authors file as a template. Design task: #110784 Ref !110783.
54 lines
1.3 KiB
C++
54 lines
1.3 KiB
C++
/* SPDX-FileCopyrightText: 2023 Blender Authors
|
|
*
|
|
* 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;
|
|
struct GPUContext;
|
|
|
|
struct wmSurface {
|
|
wmSurface *next, *prev;
|
|
|
|
GHOST_ContextHandle system_gpu_context;
|
|
GPUContext *blender_gpu_context;
|
|
|
|
void *customdata;
|
|
|
|
void (*draw)(bContext *);
|
|
/* To evaluate the surface's depsgraph. Called as part of the main loop. */
|
|
void (*do_depsgraph)(bContext *C);
|
|
/** Free customdata, not the surface itself (done by wm_surface API) */
|
|
void (*free_data)(wmSurface *);
|
|
|
|
/** Called when surface is activated for drawing (made drawable). */
|
|
void (*activate)();
|
|
/** Called when surface is deactivated for drawing (current drawable cleared). */
|
|
void (*deactivate)();
|
|
};
|
|
|
|
/* Create/Free */
|
|
void wm_surface_add(wmSurface *surface);
|
|
void wm_surface_remove(wmSurface *surface);
|
|
void wm_surfaces_free();
|
|
|
|
/* Utils */
|
|
void wm_surfaces_iter(bContext *C, void (*cb)(bContext *, wmSurface *));
|
|
|
|
/* Evaluation. */
|
|
void wm_surfaces_do_depsgraph(bContext *C);
|
|
|
|
/* Drawing */
|
|
void wm_surface_make_drawable(wmSurface *surface);
|
|
void wm_surface_clear_drawable();
|
|
void wm_surface_set_drawable(wmSurface *surface, bool activate);
|
|
void wm_surface_reset_drawable();
|