Skip to content

Consider switching GUI toolkits for iv #4897

@lgritz

Description

@lgritz

The iv viewer is the only part of OIIO that uses Qt, which is an extremely heavy dependency, especially considering the tiny sliver of its functionality that we use. I didn't pick Qt for any special reason -- it just seemed to be a safe choice for a popular, dependable, cross-platform GUI toolkit when I wrote the first version of OIIO's iv in 2008.

We have talked before about maybe switching to something that would be a much simpler dependency to build and use. We've mentioned Dear Imgui or Nanogui as possibilities.

Let's use this issue to discuss, offer suggestions and debate the pros/cons, and track progress of the work.

As a reminder, when evaluating which toolkit to switch to, I think the considerations should include:

  • Fuctionality: It must do the things iv needs now and potentially in the future, and not come with too much expensive baggage that we will never need.
  • Cross-platform: It should be a given that we want it to work on Linux, MacOS, and Windows with as uniform an API as possible.
  • Appropriately licensed: It needs to have an open source license that is compatible with our Apache-2.0 for the way we build and distribute OIIO.
  • Widely available: As a dependency, it should be something that is easy to install, available in all the major package managers, or even easily "vendored" into our project.
  • Easy to build: It should not be overly expensive to build from scratch.
  • Dependable: It should be robust, polished, with an active development team. We don't want somebody's hobby project that has not been used on real products, or something supported by a single person whose availability to do continued support and development may vary.
  • Known or worth knowing: It would be great if the toolkit was somewhat widely used so there are many people who already know it, or that people who don't know it would consider making the effort to learn it to have a positive ROI for them.

Metadata

Metadata

Assignees

No one assigned

    Labels

    help wantedA task that is desired, but needs somebody to commit the effort to implement it.ivImage viewerroadmapThis is a priority item on the roadmap for the next major release.strategicStrategic initative with far-reaching effects (in time and code space)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions