Changeset View
Changeset View
Standalone View
Standalone View
source/blender/draw/engines/eevee/eevee_lightprobes.c
| Show First 20 Lines • Show All 110 Lines • ▼ Show 20 Lines | |||||
| static void planar_pool_ensure_alloc(EEVEE_Data *vedata, int num_planar_ref) | static void planar_pool_ensure_alloc(EEVEE_Data *vedata, int num_planar_ref) | ||||
| { | { | ||||
| EEVEE_TextureList *txl = vedata->txl; | EEVEE_TextureList *txl = vedata->txl; | ||||
| /* XXX TODO OPTIMISATION : This is a complete waist of texture memory. | /* XXX TODO OPTIMISATION : This is a complete waist of texture memory. | ||||
| * Instead of allocating each planar probe for each viewport, | * Instead of allocating each planar probe for each viewport, | ||||
| * only alloc them once using the biggest viewport resolution. */ | * only alloc them once using the biggest viewport resolution. */ | ||||
| const float *viewport_size = DRW_viewport_size_get(); | const float *viewport_size = DRW_viewport_render_size_get(); | ||||
| /* TODO get screen percentage from layer setting */ | /* TODO get screen percentage from layer setting */ | ||||
| // const DRWContextState *draw_ctx = DRW_context_state_get(); | // const DRWContextState *draw_ctx = DRW_context_state_get(); | ||||
| // ViewLayer *view_layer = draw_ctx->view_layer; | // ViewLayer *view_layer = draw_ctx->view_layer; | ||||
| float screen_percentage = 1.0f; | float screen_percentage = 1.0f; | ||||
| int width = (int)(viewport_size[0] * screen_percentage); | int width = (int)(viewport_size[0] * screen_percentage); | ||||
| int height = (int)(viewport_size[1] * screen_percentage); | int height = (int)(viewport_size[1] * screen_percentage); | ||||
| ▲ Show 20 Lines • Show All 988 Lines • ▼ Show 20 Lines | |||||
| } | } | ||||
| /* Actually a simple downsampling */ | /* Actually a simple downsampling */ | ||||
| static void downsample_planar(void *vedata, int level) | static void downsample_planar(void *vedata, int level) | ||||
| { | { | ||||
| EEVEE_PassList *psl = ((EEVEE_Data *)vedata)->psl; | EEVEE_PassList *psl = ((EEVEE_Data *)vedata)->psl; | ||||
| EEVEE_StorageList *stl = ((EEVEE_Data *)vedata)->stl; | EEVEE_StorageList *stl = ((EEVEE_Data *)vedata)->stl; | ||||
| const float *size = DRW_viewport_size_get(); | const float *size = DRW_viewport_render_size_get(); | ||||
| copy_v2_v2(stl->g_data->planar_texel_size, size); | copy_v2_v2(stl->g_data->planar_texel_size, size); | ||||
| for (int i = 0; i < level - 1; ++i) { | for (int i = 0; i < level - 1; ++i) { | ||||
| stl->g_data->planar_texel_size[0] /= 2.0f; | stl->g_data->planar_texel_size[0] /= 2.0f; | ||||
| stl->g_data->planar_texel_size[1] /= 2.0f; | stl->g_data->planar_texel_size[1] /= 2.0f; | ||||
| min_ff(floorf(stl->g_data->planar_texel_size[0]), 1.0f); | min_ff(floorf(stl->g_data->planar_texel_size[0]), 1.0f); | ||||
| min_ff(floorf(stl->g_data->planar_texel_size[1]), 1.0f); | min_ff(floorf(stl->g_data->planar_texel_size[1]), 1.0f); | ||||
| } | } | ||||
| invert_v2(stl->g_data->planar_texel_size); | invert_v2(stl->g_data->planar_texel_size); | ||||
| ▲ Show 20 Lines • Show All 102 Lines • Show Last 20 Lines | |||||