Blender  V2.93
Classes | Macros | Typedefs | Functions | Variables
RE_engine.h File Reference
#include "DNA_listBase.h"
#include "DNA_node_types.h"
#include "DNA_scene_types.h"
#include "RE_bake.h"
#include "RNA_types.h"
#include "BLI_threads.h"

Go to the source code of this file.

Classes

struct  RenderEngineType
 
struct  RenderEngine
 

Macros

#define RE_INTERNAL   1
 
#define RE_USE_PREVIEW   4
 
#define RE_USE_POSTPROCESS   8
 
#define RE_USE_EEVEE_VIEWPORT   16
 
#define RE_USE_SAVE_BUFFERS   32
 
#define RE_USE_SHADING_NODES_CUSTOM   64
 
#define RE_USE_SPHERICAL_STEREO   128
 
#define RE_USE_STEREO_VIEWPORT   256
 
#define RE_USE_GPU_CONTEXT   512
 
#define RE_USE_CUSTOM_FREESTYLE   1024
 
#define RE_ENGINE_ANIMATION   1
 
#define RE_ENGINE_PREVIEW   2
 
#define RE_ENGINE_DO_DRAW   4
 
#define RE_ENGINE_DO_UPDATE   8
 
#define RE_ENGINE_RENDERING   16
 
#define RE_ENGINE_HIGHLIGHT_TILES   32
 

Typedefs

typedef struct RenderEngineType RenderEngineType
 
typedef void(* update_render_passes_cb_t) (void *userdata, struct Scene *scene, struct ViewLayer *view_layer, const char *name, int channels, const char *chanid, eNodeSocketDatatype type)
 
typedef struct RenderEngine RenderEngine
 

Functions

RenderEngineRE_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 RenderResultRE_engine_begin_result (RenderEngine *engine, int x, int y, int w, int h, const char *layername, const char *viewname)
 
void RE_engine_update_result (RenderEngine *engine, struct RenderResult *result)
 
void RE_engine_add_pass (RenderEngine *engine, const char *name, int channels, const char *chan_id, const char *layername)
 
void RE_engine_end_result (RenderEngine *engine, struct RenderResult *result, bool cancel, bool highlight, bool merge_results)
 
struct RenderResultRE_engine_get_result (struct RenderEngine *engine)
 
const char * RE_engine_active_view_get (RenderEngine *engine)
 
void RE_engine_active_view_set (RenderEngine *engine, const char *viewname)
 
float RE_engine_get_camera_shift_x (RenderEngine *engine, struct Object *camera, bool use_spherical_stereo)
 
void RE_engine_get_camera_model_matrix (RenderEngine *engine, struct Object *camera, bool use_spherical_stereo, float *r_modelmat)
 
bool RE_engine_get_spherical_stereo (RenderEngine *engine, struct Object *camera)
 
bool 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_update_memory_stats (RenderEngine *engine, float mem_used, float mem_peak)
 
void RE_engine_report (RenderEngine *engine, int type, const char *msg)
 
void RE_engine_set_error_message (RenderEngine *engine, const char *msg)
 
bool RE_engine_render (struct Render *re, bool do_all)
 
bool RE_engine_is_external (const struct Render *re)
 
void RE_engine_frame_set (struct RenderEngine *engine, int frame, float subframe)
 
void RE_engine_update_render_passes (struct RenderEngine *engine, struct Scene *scene, struct ViewLayer *view_layer, update_render_passes_cb_t callback, void *callback_data)
 
void RE_engine_register_pass (struct RenderEngine *engine, struct Scene *scene, struct ViewLayer *view_layer, const char *name, int channels, const char *chanid, eNodeSocketDatatype type)
 
bool RE_engine_use_persistent_data (struct RenderEngine *engine)
 
void RE_engines_init (void)
 
void RE_engines_exit (void)
 
void RE_engines_register (RenderEngineType *render_type)
 
bool RE_engine_is_opengl (RenderEngineType *render_type)
 
RenderEngineTypeRE_engines_find (const char *idname)
 
rctiRE_engine_get_current_tiles (struct Render *re, int *r_total_tiles, bool *r_needs_free)
 
struct RenderDataRE_engine_get_render_data (struct Render *re)
 
void RE_bake_engine_set_engine_parameters (struct Render *re, struct Main *bmain, struct Scene *scene)
 
void RE_engine_free_blender_memory (struct RenderEngine *engine)
 

Variables

ListBase R_engines
 

Macro Definition Documentation

◆ RE_ENGINE_ANIMATION

#define RE_ENGINE_ANIMATION   1

Definition at line 70 of file RE_engine.h.

◆ RE_ENGINE_DO_DRAW

#define RE_ENGINE_DO_DRAW   4

Definition at line 72 of file RE_engine.h.

◆ RE_ENGINE_DO_UPDATE

#define RE_ENGINE_DO_UPDATE   8

Definition at line 73 of file RE_engine.h.

◆ RE_ENGINE_HIGHLIGHT_TILES

#define RE_ENGINE_HIGHLIGHT_TILES   32

Definition at line 75 of file RE_engine.h.

◆ RE_ENGINE_PREVIEW

#define RE_ENGINE_PREVIEW   2

Definition at line 71 of file RE_engine.h.

◆ RE_ENGINE_RENDERING

#define RE_ENGINE_RENDERING   16

Definition at line 74 of file RE_engine.h.

◆ RE_INTERNAL

#define RE_INTERNAL   1

Definition at line 57 of file RE_engine.h.

◆ RE_USE_CUSTOM_FREESTYLE

#define RE_USE_CUSTOM_FREESTYLE   1024

Definition at line 67 of file RE_engine.h.

◆ RE_USE_EEVEE_VIEWPORT

#define RE_USE_EEVEE_VIEWPORT   16

Definition at line 61 of file RE_engine.h.

◆ RE_USE_GPU_CONTEXT

#define RE_USE_GPU_CONTEXT   512

Definition at line 66 of file RE_engine.h.

◆ RE_USE_POSTPROCESS

#define RE_USE_POSTPROCESS   8

Definition at line 60 of file RE_engine.h.

◆ RE_USE_PREVIEW

#define RE_USE_PREVIEW   4

Definition at line 59 of file RE_engine.h.

◆ RE_USE_SAVE_BUFFERS

#define RE_USE_SAVE_BUFFERS   32

Definition at line 62 of file RE_engine.h.

◆ RE_USE_SHADING_NODES_CUSTOM

#define RE_USE_SHADING_NODES_CUSTOM   64

Definition at line 63 of file RE_engine.h.

◆ RE_USE_SPHERICAL_STEREO

#define RE_USE_SPHERICAL_STEREO   128

Definition at line 64 of file RE_engine.h.

◆ RE_USE_STEREO_VIEWPORT

#define RE_USE_STEREO_VIEWPORT   256

Definition at line 65 of file RE_engine.h.

Typedef Documentation

◆ RenderEngine

typedef struct RenderEngine RenderEngine

◆ RenderEngineType

◆ update_render_passes_cb_t

typedef void(* update_render_passes_cb_t) (void *userdata, struct Scene *scene, struct ViewLayer *view_layer, const char *name, int channels, const char *chanid, eNodeSocketDatatype type)

Definition at line 117 of file RE_engine.h.

Function Documentation

◆ RE_bake_engine_set_engine_parameters()

void RE_bake_engine_set_engine_parameters ( struct Render re,
struct Main bmain,
struct Scene scene 
)

Definition at line 731 of file engine.c.

References Render::main, Scene::r, Render::r, render_copy_renderdata(), scene, and Render::scene.

Referenced by bake().

◆ RE_engine_active_view_get()

const char* RE_engine_active_view_get ( RenderEngine engine)

Definition at line 522 of file engine.c.

References RenderEngine::re, and RE_GetActiveRenderView().

◆ RE_engine_active_view_set()

void RE_engine_active_view_set ( RenderEngine engine,
const char *  viewname 
)

Definition at line 528 of file engine.c.

References RenderEngine::re, and RE_SetActiveRenderView().

◆ RE_engine_add_pass()

void RE_engine_add_pass ( RenderEngine engine,
const char *  name,
int  channels,
const char *  chan_id,
const char *  layername 
)

Definition at line 359 of file engine.c.

References NULL, RenderEngine::re, RE_create_render_pass(), and Render::result.

Referenced by draw_render_result_ensure_pass_cb().

◆ RE_engine_begin_result()

struct RenderResult* RE_engine_begin_result ( RenderEngine engine,
int  x,
int  y,
int  w,
int  h,
const char *  layername,
const char *  viewname 
)

◆ RE_engine_create()

RenderEngine* RE_engine_create ( RenderEngineType type)

◆ RE_engine_end_result()

void RE_engine_end_result ( RenderEngine engine,
struct RenderResult result,
bool  cancel,
bool  highlight,
bool  merge_results 
)

◆ RE_engine_frame_set()

void RE_engine_frame_set ( struct RenderEngine engine,
int  frame,
float  subframe 
)

◆ RE_engine_free()

void RE_engine_free ( RenderEngine engine)

◆ RE_engine_free_blender_memory()

void RE_engine_free_blender_memory ( struct RenderEngine engine)

◆ RE_engine_get_camera_model_matrix()

void RE_engine_get_camera_model_matrix ( RenderEngine engine,
struct Object camera,
bool  use_spherical_stereo,
float r_modelmat 
)

◆ RE_engine_get_camera_shift_x()

float RE_engine_get_camera_shift_x ( RenderEngine engine,
struct Object camera,
bool  use_spherical_stereo 
)

◆ RE_engine_get_current_tiles()

rcti* RE_engine_get_current_tiles ( struct Render re,
int *  r_total_tiles,
bool *  r_needs_free 
)

◆ RE_engine_get_render_data()

struct RenderData* RE_engine_get_render_data ( struct Render re)

Definition at line 616 of file engine.c.

References Render::r.

Referenced by draw_render_info(), and render_border_exec().

◆ RE_engine_get_result()

struct RenderResult* RE_engine_get_result ( struct RenderEngine engine)

Definition at line 428 of file engine.c.

References RenderEngine::re, and Render::result.

Referenced by DRW_render_gpencil(), and DRW_render_to_image().

◆ RE_engine_get_spherical_stereo()

bool RE_engine_get_spherical_stereo ( RenderEngine engine,
struct Object camera 
)

Definition at line 562 of file engine.c.

References BKE_camera_multiview_spherical_stereo(), NULL, Render::r, and RenderEngine::re.

◆ RE_engine_is_external()

bool RE_engine_is_external ( const struct Render re)

◆ RE_engine_is_opengl()

bool RE_engine_is_opengl ( RenderEngineType render_type)

Definition at line 125 of file engine.c.

References RenderEngineType::draw_engine, DRW_engine_render_support(), and NULL.

◆ RE_engine_register_pass()

void RE_engine_register_pass ( struct RenderEngine engine,
struct Scene scene,
struct ViewLayer view_layer,
const char *  name,
int  channels,
const char *  chanid,
eNodeSocketDatatype  type 
)

◆ RE_engine_render()

bool RE_engine_render ( struct Render re,
bool  do_all 
)

Definition at line 889 of file engine.c.

References BKE_report(), BKE_reports_contain(), BLI_rw_mutex_lock(), BLI_rw_mutex_unlock(), BLI_strncpy(), Render::camera_override, RenderEngine::camera_override, RenderData::cfra, RenderStats::cfra, Render::disprect, Render::dlh, RenderResult::do_exr_tile, Render::draw_lock, RenderData::engine, Render::engine, engine_depsgraph_free(), engine_keep_depsgraph(), engine_render_view_layer(), ListBase::first, Render::flag, RenderEngine::flag, FOREACH_VIEW_LAYER_TO_RENDER_BEGIN, FOREACH_VIEW_LAYER_TO_RENDER_END, RenderEngine::fullresult, G, RenderEngine::has_grease_pencil, Render::i, Scene::id, RenderData::mode, ID::name, NULL, Render::partsmutex, Render::partx, Render::party, Scene::r, Render::r, R_ANIMATION, R_BUTS_PREVIEW, R_EDGE_FRS, R_EXR_CACHE_FILE, R_EXR_TILE_FILE, R_NO_FRAME_UPDATE, RenderEngine::re, RE_ENGINE_ANIMATION, RE_engine_create(), RE_engine_free(), RE_ENGINE_PREVIEW, RE_ENGINE_RENDERING, RE_engine_test_break(), RE_engines_find(), RE_parts_free(), RE_parts_init(), RE_USE_POSTPROCESS, RE_USE_PREVIEW, RE_USE_SAVE_BUFFERS, render_result_exr_file_begin(), render_result_exr_file_cache_write(), render_result_exr_file_end(), render_result_free(), render_result_free_list(), render_result_new(), render_update_anim_renderdata(), Render::reports, RenderEngine::resolution_x, RenderEngine::resolution_y, Render::result, Render::resultmutex, RPT_ERROR, RR_ALL_LAYERS, RR_ALL_VIEWS, RR_USE_EXR, RR_USE_MEM, RenderData::scemode, Render::scene, RenderStats::scene_name, THREAD_LOCK_WRITE, RenderEngine::tile_x, RenderEngine::tile_y, type, Scene::view_layers, Render::winx, and Render::winy.

Referenced by do_render_engine(), do_render_full_pipeline(), and RE_PreviewRender().

◆ RE_engine_report()

void RE_engine_report ( RenderEngine engine,
int  type,
const char *  msg 
)

Definition at line 495 of file engine.c.

References BKE_report(), RenderEngine::re, Render::reports, RenderEngine::reports, and type.

Referenced by workbench_render().

◆ RE_engine_set_error_message()

void RE_engine_set_error_message ( RenderEngine engine,
const char *  msg 
)

◆ RE_engine_test_break()

bool RE_engine_test_break ( RenderEngine engine)

◆ RE_engine_update_memory_stats()

void RE_engine_update_memory_stats ( RenderEngine engine,
float  mem_used,
float  mem_peak 
)

Definition at line 485 of file engine.c.

References Render::i, RenderStats::mem_peak, RenderStats::mem_used, and RenderEngine::re.

◆ RE_engine_update_progress()

void RE_engine_update_progress ( RenderEngine engine,
float  progress 
)

Definition at line 475 of file engine.c.

References CLAMP, Render::prh, Render::progress, and RenderEngine::re.

Referenced by EEVEE_render_draw().

◆ RE_engine_update_render_passes()

void RE_engine_update_render_passes ( struct RenderEngine engine,
struct Scene scene,
struct ViewLayer view_layer,
update_render_passes_cb_t  callback,
void *  callback_data 
)

◆ RE_engine_update_result()

void RE_engine_update_result ( RenderEngine engine,
struct RenderResult result 
)

◆ RE_engine_update_stats()

void RE_engine_update_stats ( RenderEngine engine,
const char *  stats,
const char *  info 
)

◆ RE_engine_use_persistent_data()

bool RE_engine_use_persistent_data ( struct RenderEngine engine)

◆ RE_engines_exit()

void RE_engines_exit ( void  )

◆ RE_engines_find()

RenderEngineType* RE_engines_find ( const char *  idname)

◆ RE_engines_init()

void RE_engines_init ( void  )

Definition at line 74 of file engine.c.

References DRW_engines_register().

Referenced by main(), and blender::bke::tests::TEST().

◆ RE_engines_register()

void RE_engines_register ( RenderEngineType render_type)

Definition at line 100 of file engine.c.

References BLI_addtail(), RenderEngineType::draw_engine, DRW_engine_register(), and R_engines.

Referenced by DRW_engines_register().

◆ RE_layer_load_from_file()

void RE_layer_load_from_file ( struct RenderLayer layer,
struct ReportList reports,
const char *  filename,
int  x,
int  y 
)

◆ RE_result_load_from_file()

void RE_result_load_from_file ( struct RenderResult result,
struct ReportList reports,
const char *  filename 
)

Definition at line 2731 of file pipeline.c.

References BKE_reportf(), NULL, render_result_exr_file_read_path(), result, and RPT_ERROR.

Variable Documentation

◆ R_engines

ListBase R_engines
extern