A (relatively) fast, lightweight, and useful image viewer.
Go to file
Tanishq Dubey ac16e0431d
All checks were successful
Run Build / run-build-ubuntu (push) Successful in 2m8s
Run Build / run-build-debian (push) Successful in 2m11s
Run Build / run-build-arch (push) Successful in 2m17s
remove duplicate debian
2024-06-16 16:34:48 -04:00
.gitea/workflows remove duplicate debian 2024-06-16 16:34:48 -04:00
lib histogram works, we are basically at a 0.9 release 2024-06-16 09:51:21 -04:00
.gitignore switch to cmake 2024-06-16 10:23:53 -04:00
CMakeLists.txt add debian build and build optimization 2024-06-16 16:30:59 -04:00
main.cpp try exiv version fix for ubuntu 2024-06-16 11:30:22 -04:00
README.md begin cleanup from other project 2024-06-12 09:20:04 -04:00

How to Build

Windows with Visual Studio's IDE

Use the provided project file (.vcxproj). Add to solution (imgui_examples.sln) if necessary.

Windows with Visual Studio's CLI

Use build_win32.bat or directly:

set SDL2_DIR=path_to_your_sdl2_folder
cl /Zi /MD /utf-8 /I.. /I..\.. /I%SDL2_DIR%\include main.cpp ..\..\backends\imgui_impl_sdl2.cpp ..\..\backends\imgui_impl_opengl3.cpp ..\..\imgui*.cpp /FeDebug/example_sdl2_opengl3.exe /FoDebug/ /link /libpath:%SDL2_DIR%\lib\x86 SDL2.lib SDL2main.lib opengl32.lib /subsystem:console
#                 ^^ include paths                  ^^ source files                                                                                    ^^ output exe                    ^^ output dir   ^^ libraries
# or for 64-bit:
cl /Zi /MD /utf-8 /I.. /I..\.. /I%SDL2_DIR%\include main.cpp ..\..\backends\imgui_impl_sdl2.cpp ..\..\backends\imgui_impl_opengl3.cpp ..\..\imgui*.cpp /FeDebug/example_sdl2_opengl3.exe /FoDebug/ /link /libpath:%SDL2_DIR%\lib\x64 SDL2.lib SDL2main.lib opengl32.lib /subsystem:console

Linux and similar Unixes

Use our Makefile or directly:

c++ `sdl2-config --cflags` -I .. -I ../.. -I ../../backends
  main.cpp ../../backends/imgui_impl_sdl2.cpp ../../backends/imgui_impl_opengl3.cpp ../../imgui*.cpp
  `sdl2-config --libs` -lGL -ldl

macOS

Use our Makefile or directly:

brew install sdl2
c++ `sdl2-config --cflags` -I .. -I ../.. -I ../../backends
  main.cpp ../../backends/imgui_impl_sdl2.cpp ../../backends/imgui_impl_opengl3.cpp ../../imgui*.cpp
  `sdl2-config --libs` -framework OpenGl -framework CoreFoundation

Emscripten

Building

You need to install Emscripten from https://emscripten.org/docs/getting_started/downloads.html, and have the environment variables set, as described in https://emscripten.org/docs/getting_started/downloads.html#installation-instructions

  • Depending on your configuration, in Windows you may need to run emsdk/emsdk_env.bat in your console to access the Emscripten command-line tools.
  • You may also refer to our Continuous Integration setup for Emscripten setup.
  • Then build using make -f Makefile.emscripten while in the current directory.

Running an Emscripten project

To run on a local machine:

  • make -f Makefile.emscripten serve will use Python3 to spawn a local webserver, you can then browse http://localhost:8000 to access your build.
  • Otherwise, generally you will need a local webserver. Quoting https://emscripten.org/docs/getting_started:
    "Unfortunately several browsers (including Chrome, Safari, and Internet Explorer) do not support file:// XHR requests, and cant load extra files needed by the HTML (like a .wasm file, or packaged file data as mentioned lower down). For these browsers youll need to serve the files using a local webserver and then open http://localhost:8000/hello.html."
  • Emscripten SDK has a handy emrun command: emrun web/index.html --browser firefox which will spawn a temporary local webserver (in Firefox). See https://emscripten.org/docs/compiling/Running-html-files-with-emrun.html for details.
  • You may use Python 3 builtin webserver: python -m http.server -d web (this is what make serve uses).
  • You may use Python 2 builtin webserver: cd web && python -m SimpleHTTPServer.
  • If you are accessing the files over a network, certain browsers, such as Firefox, will restrict Gamepad API access to secure contexts only (e.g. https only).