Changeset View
Changeset View
Standalone View
Standalone View
source/blender/draw/engines/eevee/eevee_render.c
| Show First 20 Lines • Show All 46 Lines • ▼ Show 20 Lines | |||||
| void EEVEE_render_init(EEVEE_Data *ved, RenderEngine *engine, struct Depsgraph *depsgraph) | void EEVEE_render_init(EEVEE_Data *ved, RenderEngine *engine, struct Depsgraph *depsgraph) | ||||
| { | { | ||||
| EEVEE_Data *vedata = (EEVEE_Data *)ved; | EEVEE_Data *vedata = (EEVEE_Data *)ved; | ||||
| EEVEE_StorageList *stl = vedata->stl; | EEVEE_StorageList *stl = vedata->stl; | ||||
| EEVEE_TextureList *txl = vedata->txl; | EEVEE_TextureList *txl = vedata->txl; | ||||
| EEVEE_FramebufferList *fbl = vedata->fbl; | EEVEE_FramebufferList *fbl = vedata->fbl; | ||||
| EEVEE_ViewLayerData *sldata = EEVEE_view_layer_data_ensure(); | EEVEE_ViewLayerData *sldata = EEVEE_view_layer_data_ensure(); | ||||
| Scene *scene = DEG_get_evaluated_scene(depsgraph); | Scene *scene = DEG_get_evaluated_scene(depsgraph); | ||||
| const float *size_orig = DRW_viewport_size_get(); | const float *size_orig = DRW_viewport_render_size_get(); | ||||
| /* Init default FB and render targets: | /* Init default FB and render targets: | ||||
| * In render mode the default framebuffer is not generated | * In render mode the default framebuffer is not generated | ||||
| * because there is no viewport. So we need to manually create it or | * because there is no viewport. So we need to manually create it or | ||||
| * not use it. For code clarity we just allocate it make use of it. */ | * not use it. For code clarity we just allocate it make use of it. */ | ||||
| DefaultFramebufferList *dfbl = DRW_viewport_framebuffer_list_get(); | DefaultFramebufferList *dfbl = DRW_viewport_framebuffer_list_get(); | ||||
| DefaultTextureList *dtxl = DRW_viewport_texture_list_get(); | DefaultTextureList *dtxl = DRW_viewport_texture_list_get(); | ||||
| Show All 15 Lines | else { | ||||
| g_data->overscan_pixels = 0.0f; | g_data->overscan_pixels = 0.0f; | ||||
| } | } | ||||
| /* XXX overiding viewport size. Simplify things but is not really 100% safe. */ | /* XXX overiding viewport size. Simplify things but is not really 100% safe. */ | ||||
| DRW_render_viewport_size_set((int[2]){size_orig[0] + g_data->overscan_pixels * 2.0f, | DRW_render_viewport_size_set((int[2]){size_orig[0] + g_data->overscan_pixels * 2.0f, | ||||
| size_orig[1] + g_data->overscan_pixels * 2.0f}); | size_orig[1] + g_data->overscan_pixels * 2.0f}); | ||||
| /* TODO 32 bit depth */ | /* TODO 32 bit depth */ | ||||
| DRW_texture_ensure_fullscreen_2d(&dtxl->depth, GPU_DEPTH24_STENCIL8, 0); | DRW_texture_ensure_render_fullscreen_2d(&dtxl->depth, GPU_DEPTH24_STENCIL8, 0); | ||||
| DRW_texture_ensure_fullscreen_2d(&txl->color, GPU_RGBA32F, DRW_TEX_FILTER | DRW_TEX_MIPMAP); | DRW_texture_ensure_render_fullscreen_2d( | ||||
| &txl->color, GPU_RGBA32F, DRW_TEX_FILTER | DRW_TEX_MIPMAP); | |||||
| GPU_framebuffer_ensure_config( | GPU_framebuffer_ensure_config( | ||||
| &dfbl->default_fb, | &dfbl->default_fb, | ||||
| {GPU_ATTACHMENT_TEXTURE(dtxl->depth), GPU_ATTACHMENT_TEXTURE(txl->color)}); | {GPU_ATTACHMENT_TEXTURE(dtxl->depth), GPU_ATTACHMENT_TEXTURE(txl->color)}); | ||||
| GPU_framebuffer_ensure_config( | GPU_framebuffer_ensure_config( | ||||
| &fbl->main_fb, {GPU_ATTACHMENT_TEXTURE(dtxl->depth), GPU_ATTACHMENT_TEXTURE(txl->color)}); | &fbl->main_fb, {GPU_ATTACHMENT_TEXTURE(dtxl->depth), GPU_ATTACHMENT_TEXTURE(txl->color)}); | ||||
| GPU_framebuffer_ensure_config(&fbl->main_color_fb, | GPU_framebuffer_ensure_config(&fbl->main_color_fb, | ||||
| {GPU_ATTACHMENT_NONE, GPU_ATTACHMENT_TEXTURE(txl->color)}); | {GPU_ATTACHMENT_NONE, GPU_ATTACHMENT_TEXTURE(txl->color)}); | ||||
| ▲ Show 20 Lines • Show All 559 Lines • Show Last 20 Lines | |||||