@@ -166,33 +166,41 @@ env_flag_is_truthy(const char* name)
166166 return Strutil::iequals (trimmed, " true" ) || Strutil::iequals (trimmed, " yes" )
167167 || Strutil::iequals (trimmed, " on" );
168168}
169- #if defined(IMIV_BACKEND_VULKAN_GLFW)
170169bool
171- viewer_texture_has_gpu_lifetime (const VulkanTexture & texture)
170+ viewer_texture_has_gpu_lifetime (const RendererTexture & texture)
172171{
172+ #if defined(IMIV_BACKEND_VULKAN_GLFW)
173173 return texture.image != VK_NULL_HANDLE
174174 || texture.source_image != VK_NULL_HANDLE
175175 || texture.set != VK_NULL_HANDLE
176176 || texture.nearest_mag_set != VK_NULL_HANDLE
177177 || texture.pixelview_set != VK_NULL_HANDLE
178178 || texture.upload_submit_pending || texture.preview_submit_pending ;
179+ #else
180+ (void )texture;
181+ return false ;
182+ #endif
179183}
180184
181185void
182- quiesce_viewer_texture_lifetime (VulkanState& vk_state ,
183- const VulkanTexture & texture)
186+ quiesce_viewer_texture_lifetime (RendererState& renderer_state ,
187+ const RendererTexture & texture)
184188{
185- if (vk_state.device == VK_NULL_HANDLE
189+ #if defined(IMIV_BACKEND_VULKAN_GLFW)
190+ if (renderer_state.device == VK_NULL_HANDLE
186191 || !viewer_texture_has_gpu_lifetime (texture)) {
187192 return ;
188193 }
189- VkResult err = vkDeviceWaitIdle (vk_state .device );
194+ VkResult err = vkDeviceWaitIdle (renderer_state .device );
190195 check_vk_result (err);
191- }
196+ #else
197+ (void )renderer_state;
198+ (void )texture;
192199#endif
200+ }
193201
194202bool
195- load_viewer_image (VulkanState & vk_state, ViewerState& viewer,
203+ load_viewer_image (RendererState & vk_state, ViewerState& viewer,
196204 PlaceholderUiState* ui_state, const std::string& path,
197205 int requested_subimage, int requested_miplevel)
198206{
@@ -207,16 +215,14 @@ load_viewer_image(VulkanState& vk_state, ViewerState& viewer,
207215 print (stderr, " imiv: {}\n " , viewer.last_error );
208216 return false ;
209217 }
210- VulkanTexture texture;
211- if (!create_texture (vk_state, loaded, texture, error)) {
218+ RendererTexture texture;
219+ if (!renderer_create_texture (vk_state, loaded, texture, error)) {
212220 viewer.last_error = Strutil::fmt::format (" upload failed: {}" , error);
213221 print (stderr, " imiv: {}\n " , viewer.last_error );
214222 return false ;
215223 }
216- #if defined(IMIV_BACKEND_VULKAN_GLFW)
217224 quiesce_viewer_texture_lifetime (vk_state, viewer.texture );
218- #endif
219- destroy_texture (vk_state, viewer.texture );
225+ renderer_destroy_texture (vk_state, viewer.texture );
220226 if (ui_state != nullptr && should_reset_preview_on_load (viewer, path))
221227 reset_per_image_preview_state (*ui_state);
222228 viewer.image = std::move (loaded);
@@ -567,7 +573,7 @@ toggle_sort_reverse_action(ViewerState& viewer)
567573}
568574
569575bool
570- advance_slide_show_action (VulkanState & vk_state, ViewerState& viewer,
576+ advance_slide_show_action (RendererState & vk_state, ViewerState& viewer,
571577 PlaceholderUiState& ui_state)
572578{
573579 if (!ui_state.slide_show_running || viewer.loaded_image_paths .empty ()
@@ -606,7 +612,7 @@ toggle_slide_show_action(PlaceholderUiState& ui_state, ViewerState& viewer)
606612}
607613
608614void
609- open_image_dialog_action (VulkanState & vk_state, ViewerState& viewer,
615+ open_image_dialog_action (RendererState & vk_state, ViewerState& viewer,
610616 PlaceholderUiState& ui_state, int requested_subimage,
611617 int requested_miplevel)
612618{
@@ -655,7 +661,7 @@ open_image_dialog_action(VulkanState& vk_state, ViewerState& viewer,
655661}
656662
657663void
658- reload_current_image_action (VulkanState & vk_state, ViewerState& viewer,
664+ reload_current_image_action (RendererState & vk_state, ViewerState& viewer,
659665 PlaceholderUiState& ui_state)
660666{
661667 if (viewer.image .path .empty ()) {
@@ -668,15 +674,15 @@ reload_current_image_action(VulkanState& vk_state, ViewerState& viewer,
668674}
669675
670676void
671- close_current_image_action (VulkanState & vk_state, ViewerState& viewer,
677+ close_current_image_action (RendererState & vk_state, ViewerState& viewer,
672678 PlaceholderUiState& ui_state)
673679{
674680 const std::string closing_path = viewer.image .path ;
675681 const int closing_index = viewer.current_path_index ;
676682# if defined(IMIV_BACKEND_VULKAN_GLFW)
677683 quiesce_viewer_texture_lifetime (vk_state, viewer.texture );
678684# endif
679- destroy_texture (vk_state, viewer.texture );
685+ renderer_destroy_texture (vk_state, viewer.texture );
680686 remove_loaded_image_path (viewer, closing_path);
681687 if (!viewer.loaded_image_paths .empty ()) {
682688 const int replacement_index
@@ -698,7 +704,7 @@ close_current_image_action(VulkanState& vk_state, ViewerState& viewer,
698704}
699705
700706void
701- next_sibling_image_action (VulkanState & vk_state, ViewerState& viewer,
707+ next_sibling_image_action (RendererState & vk_state, ViewerState& viewer,
702708 PlaceholderUiState& ui_state, int delta)
703709{
704710 std::string path;
@@ -713,7 +719,7 @@ next_sibling_image_action(VulkanState& vk_state, ViewerState& viewer,
713719}
714720
715721void
716- toggle_image_action (VulkanState & vk_state, ViewerState& viewer,
722+ toggle_image_action (RendererState & vk_state, ViewerState& viewer,
717723 PlaceholderUiState& ui_state)
718724{
719725 if (viewer.last_path_index < 0
@@ -730,7 +736,7 @@ toggle_image_action(VulkanState& vk_state, ViewerState& viewer,
730736}
731737
732738void
733- change_subimage_action (VulkanState & vk_state, ViewerState& viewer,
739+ change_subimage_action (RendererState & vk_state, ViewerState& viewer,
734740 PlaceholderUiState& ui_state, int delta)
735741{
736742 if (viewer.image .path .empty ()) {
@@ -776,7 +782,7 @@ change_subimage_action(VulkanState& vk_state, ViewerState& viewer,
776782}
777783
778784void
779- change_miplevel_action (VulkanState & vk_state, ViewerState& viewer,
785+ change_miplevel_action (RendererState & vk_state, ViewerState& viewer,
780786 PlaceholderUiState& ui_state, int delta)
781787{
782788 if (viewer.image .path .empty ()) {
@@ -812,7 +818,7 @@ queue_auto_subimage_from_zoom(ViewerState& viewer)
812818}
813819
814820bool
815- apply_pending_auto_subimage_action (VulkanState & vk_state, ViewerState& viewer,
821+ apply_pending_auto_subimage_action (RendererState & vk_state, ViewerState& viewer,
816822 PlaceholderUiState& ui_state)
817823{
818824 if (viewer.pending_auto_subimage < 0 || viewer.image .path .empty ())
@@ -834,7 +840,7 @@ apply_pending_auto_subimage_action(VulkanState& vk_state, ViewerState& viewer,
834840}
835841
836842bool
837- capture_main_viewport_screenshot_action (VulkanState & vk_state,
843+ capture_main_viewport_screenshot_action (RendererState & vk_state,
838844 ViewerState& viewer,
839845 std::string& out_path)
840846{
@@ -860,8 +866,8 @@ capture_main_viewport_screenshot_action(VulkanState& vk_state,
860866
861867 std::vector<unsigned int > pixels (static_cast <size_t >(width)
862868 * static_cast <size_t >(height));
863- if (!imiv_vulkan_screen_capture (ImGui::GetMainViewport ()->ID , 0 , 0 , width,
864- height, pixels.data (), &vk_state)) {
869+ if (!renderer_screen_capture (ImGui::GetMainViewport ()->ID , 0 , 0 , width,
870+ height, pixels.data (), &vk_state)) {
865871 viewer.last_error = " screenshot failed: framebuffer readback failed" ;
866872 return false ;
867873 }
0 commit comments