diff options
Diffstat (limited to 'source/blender/render/extern/include/RE_engine.h')
-rw-r--r-- | source/blender/render/extern/include/RE_engine.h | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/source/blender/render/extern/include/RE_engine.h b/source/blender/render/extern/include/RE_engine.h new file mode 100644 index 00000000000..1326ed495ec --- /dev/null +++ b/source/blender/render/extern/include/RE_engine.h @@ -0,0 +1,102 @@ +/* + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * The Original Code is Copyright (C) 2006 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file RE_engine.h + * \ingroup render + */ + +#ifndef RE_ENGINE_H +#define RE_ENGINE_H + +#include "DNA_listBase.h" +#include "RNA_types.h" + +struct Object; +struct Render; +struct RenderEngine; +struct RenderEngineType; +struct RenderLayer; +struct RenderResult; +struct ReportList; +struct Scene; + +/* External Engine */ + +#define RE_INTERNAL 1 +#define RE_GAME 2 +#define RE_USE_PREVIEW 4 +#define RE_USE_POSTPROCESS 8 + +extern ListBase R_engines; + +typedef struct RenderEngineType { + struct RenderEngineType *next, *prev; + + /* type info */ + char idname[64]; // best keep the same size as BKE_ST_MAXNAME + char name[64]; + int flag; + + void (*render)(struct RenderEngine *engine, struct Scene *scene); + + /* RNA integration */ + ExtensionRNA ext; +} RenderEngineType; + +typedef struct RenderEngine { + RenderEngineType *type; + + struct Render *re; + ListBase fullresult; +} RenderEngine; + +RenderEngine *RE_engine_create(RenderEngineType *type); +void RE_engine_free(RenderEngine *engine); + +void RE_layer_load_from_file(struct RenderLayer *layer, struct ReportList *reports, const char *filename, int x, int y); +void RE_result_load_from_file(struct RenderResult *result, struct ReportList *reports, const char *filename); + +struct RenderResult *RE_engine_begin_result(RenderEngine *engine, int x, int y, int w, int h); +void RE_engine_update_result(RenderEngine *engine, struct RenderResult *result); +void RE_engine_end_result(RenderEngine *engine, struct RenderResult *result); + +int RE_engine_test_break(RenderEngine *engine); +void RE_engine_update_stats(RenderEngine *engine, const char *stats, const char *info); +void RE_engine_update_progress(RenderEngine *engine, float progress); +void RE_engine_report(RenderEngine *engine, int type, const char *msg); + +int RE_engine_render(struct Render *re, int do_all); + +/* Engine Types */ + +void RE_engines_init(void); +void RE_engines_exit(void); + +RenderEngineType *RE_engines_find(const char *idname); + +#endif /* RE_ENGINE_H */ + |