70 lines
2.2 KiB
C++
70 lines
2.2 KiB
C++
/* SPDX-License-Identifier: GPL-2.0-or-later
|
|
* Copyright 2018 Blender Foundation. */
|
|
|
|
/** \file
|
|
* \ingroup eevee
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include "BLI_sys_types.h" /* for bool */
|
|
|
|
struct BlendDataReader;
|
|
struct BlendWriter;
|
|
struct EEVEE_Data;
|
|
struct EEVEE_ViewLayerData;
|
|
struct LightCache;
|
|
struct Scene;
|
|
struct SceneEEVEE;
|
|
struct ViewLayer;
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/**
|
|
* Light Bake.
|
|
*/
|
|
struct wmJob *EEVEE_lightbake_job_create(struct wmWindowManager *wm,
|
|
struct wmWindow *win,
|
|
struct Main *bmain,
|
|
struct ViewLayer *view_layer,
|
|
struct Scene *scene,
|
|
int delay,
|
|
int frame);
|
|
/**
|
|
* MUST run on the main thread.
|
|
*/
|
|
void *EEVEE_lightbake_job_data_alloc(struct Main *bmain,
|
|
struct ViewLayer *view_layer,
|
|
struct Scene *scene,
|
|
bool run_as_job,
|
|
int frame);
|
|
void EEVEE_lightbake_job_data_free(void *custom_data);
|
|
void EEVEE_lightbake_update(void *custom_data);
|
|
void EEVEE_lightbake_job(void *custom_data, bool *stop, bool *do_update, float *progress);
|
|
|
|
/**
|
|
* This is to update the world irradiance and reflection contribution from
|
|
* within the viewport drawing (does not have the overhead of a full light cache rebuild.)
|
|
*/
|
|
void EEVEE_lightbake_update_world_quick(struct EEVEE_ViewLayerData *sldata,
|
|
struct EEVEE_Data *vedata,
|
|
const Scene *scene);
|
|
|
|
/**
|
|
* Light Cache.
|
|
*/
|
|
struct LightCache *EEVEE_lightcache_create(
|
|
int grid_len, int cube_len, int cube_size, int vis_size, const int irr_size[3]);
|
|
void EEVEE_lightcache_free(struct LightCache *lcache);
|
|
bool EEVEE_lightcache_load(struct LightCache *lcache);
|
|
void EEVEE_lightcache_info_update(struct SceneEEVEE *eevee);
|
|
|
|
void EEVEE_lightcache_blend_write(struct BlendWriter *writer, struct LightCache *cache);
|
|
void EEVEE_lightcache_blend_read_data(struct BlendDataReader *reader, struct LightCache *cache);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|