doxygen: add newline after \file
[blender.git] / source / blender / editors / include / ED_render.h
1 /*
2  * This program is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU General Public License
4  * as published by the Free Software Foundation; either version 2
5  * of the License, or (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program; if not, write to the Free Software Foundation,
14  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15  *
16  * The Original Code is Copyright (C) 2005 Blender Foundation.
17  * All rights reserved.
18  */
19
20 /** \file
21  * \ingroup editors
22  */
23
24 #ifndef __ED_RENDER_H__
25 #define __ED_RENDER_H__
26
27 #include "DNA_vec_types.h"
28
29 struct DEGEditorUpdateContext;
30 struct ID;
31 struct MTex;
32 struct Main;
33 struct Render;
34 struct Scene;
35 struct ScrArea;
36 struct bContext;
37 struct wmWindowManager;
38
39 /* render_ops.c */
40
41 void ED_operatortypes_render(void);
42
43 /* render_update.c */
44
45 void ED_render_engine_changed(struct Main *bmain);
46 void ED_render_engine_area_exit(struct Main *bmain, struct ScrArea *sa);
47
48 /* Callbacks handling data update events coming from depsgraph. */
49
50 void ED_render_id_flush_update(const struct DEGEditorUpdateContext *update_ctx, struct ID *id);
51 void ED_render_scene_update(const struct DEGEditorUpdateContext *update_ctx, int updated);
52
53 struct Scene *ED_render_job_get_scene(const struct bContext *C);
54 struct Scene *ED_render_job_get_current_scene(const struct bContext *C);
55
56 /* Render the preview
57  *
58  * pr_method:
59  * - PR_BUTS_RENDER: preview is rendered for buttons window
60  * - PR_ICON_RENDER: preview is rendered for icons. hopefully fast enough for at least 32x32
61  * - PR_NODE_RENDER: preview is rendered for node editor
62  * - PR_ICON_DEFERRED: No render, we just ensure deferred icon data gets generated.
63  */
64
65 enum {
66         PR_BUTS_RENDER   = 0,
67         PR_ICON_RENDER   = 1,
68         PR_NODE_RENDER   = 2,
69         PR_ICON_DEFERRED = 3,
70 };
71
72 void ED_preview_ensure_dbase(void);
73 void ED_preview_free_dbase(void);
74
75 void ED_preview_shader_job(const struct bContext *C, void *owner, struct ID *id, struct ID *parent, struct MTex *slot, int sizex, int sizey, int method);
76 void ED_preview_icon_render(struct Main *bmain, struct Scene *scene, struct ID *id, unsigned int *rect, int sizex, int sizey);
77 void ED_preview_icon_job(const struct bContext *C, void *owner, struct ID *id, unsigned int *rect, int sizex, int sizey);
78 void ED_preview_kill_jobs(struct wmWindowManager *wm, struct Main *bmain);
79
80 void ED_preview_draw(const struct bContext *C, void *idp, void *parentp, void *slot, rcti *rect);
81
82 void ED_render_clear_mtex_copybuf(void);
83
84 void ED_render_internal_init(void);
85
86 #endif