Skip to content

Commit ffaebd4

Browse files
committed
Add imiv docs and Vulkan capture support
Add comprehensive documentation for the new imiv viewer (user, developer, and test-suite guides) and wire imiv into the docs index and CMake manpage generation. Update Doxygen config to focus on public headers, adjust include paths, and disable HTML/LaTeX/clang-assisted parsing for this build. Implement Vulkan capture helper in imiv_capture.cpp (add <cstdio> and capture_swapchain_region_rgba8_from_layout) and apply small supporting changes to Vulkan setup and imiv test/OCIO helper scripts to support live/update regression and tooling.
1 parent 89335ae commit ffaebd4

11 files changed

Lines changed: 1909 additions & 234 deletions

src/doc/CMakeLists.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@ if (UNIX AND TXT2MAN AND Python3_Interpreter_FOUND)
2626
message (STATUS "Unix man page documentation will be generated")
2727
set (cli_tools oiiotool iinfo maketx idiff igrep iconvert)
2828

29+
if (TARGET imiv)
30+
list (APPEND cli_tools imiv)
31+
endif()
32+
2933
if (TARGET iv)
3034
list (APPEND cli_tools iv)
3135
endif()

src/doc/Doxyfile

Lines changed: 8 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -829,7 +829,7 @@ WARN_LOGFILE =
829829
# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
830830
# Note: If this tag is empty the current directory is searched.
831831

832-
INPUT = ../../src
832+
INPUT = ../../src/include/OpenImageIO
833833

834834
# This tag can be used to specify the character encoding of the source files
835835
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
@@ -854,51 +854,11 @@ INPUT_ENCODING = UTF-8
854854
# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f95, *.f03, *.f08,
855855
# *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf, *.qsf and *.ice.
856856

857-
FILE_PATTERNS = *.c \
858-
*.cc \
859-
*.cxx \
860-
*.cpp \
861-
*.c++ \
862-
*.java \
863-
*.ii \
864-
*.ixx \
865-
*.ipp \
866-
*.i++ \
867-
*.inl \
868-
*.idl \
869-
*.ddl \
870-
*.odl \
871-
*.h \
857+
FILE_PATTERNS = *.h \
872858
*.hh \
873859
*.hxx \
874860
*.hpp \
875-
*.h++ \
876-
*.cs \
877-
*.d \
878-
*.php \
879-
*.php4 \
880-
*.php5 \
881-
*.phtml \
882-
*.inc \
883-
*.m \
884-
*.markdown \
885-
*.md \
886-
*.mm \
887-
*.dox \
888-
*.py \
889-
*.pyw \
890-
*.f90 \
891-
*.f95 \
892-
*.f03 \
893-
*.f08 \
894-
*.f \
895-
*.for \
896-
*.tcl \
897-
*.vhd \
898-
*.vhdl \
899-
*.ucf \
900-
*.qsf \
901-
*.ice
861+
*.h++
902862

903863
# The RECURSIVE tag can be used to specify whether or not subdirectories should
904864
# be searched for input files as well.
@@ -1158,7 +1118,7 @@ IGNORE_PREFIX =
11581118
# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output
11591119
# The default value is: YES.
11601120

1161-
GENERATE_HTML = YES
1121+
GENERATE_HTML = NO
11621122

11631123
# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a
11641124
# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
@@ -1713,7 +1673,7 @@ EXTRA_SEARCH_MAPPINGS =
17131673
# If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output.
17141674
# The default value is: YES.
17151675

1716-
GENERATE_LATEX = YES
1676+
GENERATE_LATEX = NO
17171677

17181678
# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a
17191679
# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
@@ -2157,7 +2117,8 @@ SEARCH_INCLUDES = YES
21572117
# preprocessor.
21582118
# This tag requires that the tag SEARCH_INCLUDES is set to YES.
21592119

2160-
INCLUDE_PATH = ../../src
2120+
INCLUDE_PATH = ../../src/include \
2121+
../../build/include
21612122

21622123
# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
21632124
# patterns (like *.h and *.hpp) to filter out the header-files in the
@@ -2587,4 +2548,4 @@ GENERATE_LEGEND = YES
25872548

25882549
DOT_CLEANUP = YES
25892550

2590-
CLANG_ASSISTED_PARSING = YES
2551+
CLANG_ASSISTED_PARSING = NO

src/doc/imiv.rst

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
..
2+
Copyright Contributors to the OpenImageIO project.
3+
SPDX-License-Identifier: CC-BY-4.0
4+
5+
6+
.. _chap-imiv:
7+
8+
`imiv`: ImGui Image Viewer
9+
################################
10+
11+
.. highlight:: bash
12+
13+
14+
Overview
15+
========
16+
17+
The :program:`imiv` program is an in-progress Dear ImGui-based replacement
18+
for the legacy :program:`iv` image viewer. It uses GLFW for windowing and
19+
currently supports renderer backends built around Vulkan, Metal, or OpenGL.
20+
21+
ImIv port is still under active development, and several of the most
22+
valuable workflows are developer-facing:
23+
24+
* understanding the shared app/viewer/UI architecture;
25+
* keeping behavior aligned across multiple renderer backends;
26+
* extending the automated GUI regression suite built on Dear ImGui Test
27+
Engine.
28+
29+
30+
Current status
31+
==============
32+
33+
:program:`imiv` already covers the core image-viewing loop, OCIO display
34+
controls, backend selection, persistent preferences, and a growing automated
35+
regression suite. But it does **not** yet claim full parity with
36+
:program:`iv`.
37+
38+
In particular:
39+
40+
* Vulkan is currently the reference backend for renderer-side feature work.
41+
* Metal and OpenGL are active development backends with some backend-specific
42+
gaps and validation still in progress.
43+
* Some legacy :program:`iv` workflows are still intentionally marked as
44+
incomplete or behaviorally different.
45+
46+
For that reason, this chapter is organized into a compact user guide and
47+
deeper developer/testing guides.
48+
49+
50+
Documentation map
51+
=================
52+
53+
.. toctree::
54+
:maxdepth: 1
55+
56+
imiv_user
57+
imiv_dev
58+
imiv_tests

0 commit comments

Comments
 (0)