Changeset View
Changeset View
Standalone View
Standalone View
source/blender/gpu/GPU_viewport.h
| Show All 21 Lines | |||||
| */ | */ | ||||
| #ifndef __GPU_VIEWPORT_H__ | #ifndef __GPU_VIEWPORT_H__ | ||||
| #define __GPU_VIEWPORT_H__ | #define __GPU_VIEWPORT_H__ | ||||
| #include <stdbool.h> | #include <stdbool.h> | ||||
| #include "DNA_vec_types.h" | #include "DNA_vec_types.h" | ||||
| #include "DNA_scene_types.h" | |||||
| #include "GPU_framebuffer.h" | #include "GPU_framebuffer.h" | ||||
| #include "GPU_texture.h" | #include "GPU_texture.h" | ||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||
| extern "C" { | extern "C" { | ||||
| #endif | #endif | ||||
| ▲ Show 20 Lines • Show All 41 Lines • ▼ Show 20 Lines | typedef struct ViewportEngineData { | ||||
| void *engine_type; | void *engine_type; | ||||
| FramebufferList *fbl; | FramebufferList *fbl; | ||||
| TextureList *txl; | TextureList *txl; | ||||
| PassList *psl; | PassList *psl; | ||||
| StorageList *stl; | StorageList *stl; | ||||
| char info[GPU_INFO_SIZE]; | char info[GPU_INFO_SIZE]; | ||||
| TextureList *txl_stereo; | |||||
| StorageList *stl_stereo; | |||||
| /* we may want to put this elsewhere */ | /* we may want to put this elsewhere */ | ||||
| struct DRWTextStore *text_draw_cache; | struct DRWTextStore *text_draw_cache; | ||||
| /* Profiling data */ | /* Profiling data */ | ||||
| double init_time; | double init_time; | ||||
| double render_time; | double render_time; | ||||
| double background_time; | double background_time; | ||||
| } ViewportEngineData; | } ViewportEngineData; | ||||
| typedef struct ViewportEngineData_Info { | typedef struct ViewportEngineData_Info { | ||||
| int fbl_len; | int fbl_len; | ||||
| int txl_len; | int txl_len; | ||||
| int psl_len; | int psl_len; | ||||
| int stl_len; | int stl_len; | ||||
| } ViewportEngineData_Info; | } ViewportEngineData_Info; | ||||
| GPUViewport *GPU_viewport_create(void); | GPUViewport *GPU_viewport_create(bool stereo); | ||||
| void GPU_viewport_bind(GPUViewport *viewport, const rcti *rect); | void GPU_viewport_bind(GPUViewport *viewport, int view, const rcti *rect); | ||||
fclem: Cleanlier: add GPU_viewport_stereo_create instead of a boolean.
This function would create a… | |||||
Done Inline ActionsWe cannot alloc the buffers yet as that needs a size. jbakker: We cannot alloc the buffers yet as that needs a size. | |||||
| void GPU_viewport_unbind(GPUViewport *viewport); | void GPU_viewport_unbind(GPUViewport *viewport); | ||||
| void GPU_viewport_draw_to_screen(GPUViewport *viewport, const rcti *rect); | void GPU_viewport_draw_to_screen(GPUViewport *viewport, const rcti *rect); | ||||
| void GPU_viewport_free(GPUViewport *viewport); | void GPU_viewport_free(GPUViewport *viewport); | ||||
| void GPU_viewport_colorspace_set(GPUViewport *viewport, | void GPU_viewport_colorspace_set(GPUViewport *viewport, | ||||
| ColorManagedViewSettings *view_settings, | ColorManagedViewSettings *view_settings, | ||||
| ColorManagedDisplaySettings *display_settings, | ColorManagedDisplaySettings *display_settings, | ||||
| float dither); | float dither); | ||||
| void GPU_viewport_bind_from_offscreen(GPUViewport *viewport, struct GPUOffScreen *ofs); | void GPU_viewport_bind_from_offscreen(GPUViewport *viewport, struct GPUOffScreen *ofs); | ||||
| void GPU_viewport_unbind_from_offscreen(GPUViewport *viewport, | void GPU_viewport_unbind_from_offscreen(GPUViewport *viewport, | ||||
| struct GPUOffScreen *ofs, | struct GPUOffScreen *ofs, | ||||
| bool display_colorspace); | bool display_colorspace); | ||||
| ViewportMemoryPool *GPU_viewport_mempool_get(GPUViewport *viewport); | ViewportMemoryPool *GPU_viewport_mempool_get(GPUViewport *viewport); | ||||
| struct DRWInstanceDataList *GPU_viewport_instance_data_list_get(GPUViewport *viewport); | struct DRWInstanceDataList *GPU_viewport_instance_data_list_get(GPUViewport *viewport); | ||||
| void *GPU_viewport_engine_data_create(GPUViewport *viewport, void *engine_type); | void *GPU_viewport_engine_data_create(GPUViewport *viewport, void *engine_type); | ||||
| void *GPU_viewport_engine_data_get(GPUViewport *viewport, void *engine_type); | void *GPU_viewport_engine_data_get(GPUViewport *viewport, void *engine_type); | ||||
| void *GPU_viewport_framebuffer_list_get(GPUViewport *viewport); | void *GPU_viewport_framebuffer_list_get(GPUViewport *viewport); | ||||
| void GPU_viewport_framebuffer_view_set(GPUViewport *viewport, int view); | |||||
| void GPU_viewport_stereo_composite(GPUViewport *viewport, Stereo3dFormat *stereo_format); | |||||
| void *GPU_viewport_texture_list_get(GPUViewport *viewport); | void *GPU_viewport_texture_list_get(GPUViewport *viewport); | ||||
| void GPU_viewport_size_get(const GPUViewport *viewport, int size[2]); | void GPU_viewport_size_get(const GPUViewport *viewport, int size[2]); | ||||
| void GPU_viewport_size_set(GPUViewport *viewport, const int size[2]); | void GPU_viewport_size_set(GPUViewport *viewport, const int size[2]); | ||||
| /* Profiling */ | /* Profiling */ | ||||
| double *GPU_viewport_cache_time_get(GPUViewport *viewport); | double *GPU_viewport_cache_time_get(GPUViewport *viewport); | ||||
| void GPU_viewport_tag_update(GPUViewport *viewport); | void GPU_viewport_tag_update(GPUViewport *viewport); | ||||
| bool GPU_viewport_do_update(GPUViewport *viewport); | bool GPU_viewport_do_update(GPUViewport *viewport); | ||||
| GPUTexture *GPU_viewport_color_texture(GPUViewport *viewport); | GPUTexture *GPU_viewport_color_texture(GPUViewport *viewport, int view); | ||||
| /* Texture pool */ | /* Texture pool */ | ||||
| GPUTexture *GPU_viewport_texture_pool_query( | GPUTexture *GPU_viewport_texture_pool_query( | ||||
| GPUViewport *viewport, void *engine, int width, int height, int format); | GPUViewport *viewport, void *engine, int width, int height, int format); | ||||
| bool GPU_viewport_engines_data_validate(GPUViewport *viewport, void **engine_handle_array); | bool GPU_viewport_engines_data_validate(GPUViewport *viewport, void **engine_handle_array); | ||||
| void GPU_viewport_cache_release(GPUViewport *viewport); | void GPU_viewport_cache_release(GPUViewport *viewport); | ||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||
| } | } | ||||
| #endif | #endif | ||||
| #endif // __GPU_VIEWPORT_H__ | #endif // __GPU_VIEWPORT_H__ | ||||
Cleanlier: add GPU_viewport_stereo_create instead of a boolean.
This function would create a GPUViewport with GPU_viewport_create and add necessary stereo buffers.