90 Commits

Author SHA1 Message Date
m-aXimilian c00c2c71ac build system and module refactoring + simple histogram scratch (#20)
MegaLinter / MegaLinter (push) Has been cancelled
CI Workflow / build-ubuntu (push) Has been cancelled
CI Workflow / build-windows (push) Has been cancelled
CI Workflow / generate-docs (push) Has been cancelled
* scratch adding histogram to image views

Histograms should come from some sort of histogram service. This is
currently just a POC.

* custom logger implementation w/o spdlog

* missing cmake file

* fix tests

* use operator<< over direct stream exposure

* rm print header

* add threading test + refactor towards interface libraries

omits the need for =target_include_directories= calls /everywhere/

* rm print header

* rm constexpr

* templated thread_pool

* fix doxyfile

* default enable doc building

* czi reader refactor

* rm erroneous include expression

* clang-format

* single lib include with PUBLIC visibility

* compile imgui stdlib

* clang format

* documentation update

centralize `LogLevelToString` to `ILog.hpp`

update docs and examples
2026-02-16 20:36:48 +01:00
m-aXimilian b37814204f Misc (#19)
* get image returns optional<Mat> instead of unique_ptr<Mat>

* introduce complexity

* rename image load function

* add example for a basic reader for binary image files

* fix windows build?

* add a status bar underneath the menu bar

* use status bar in custom_0 example app

* clang formats

* packing w/ pragma push

* add "Save As" functions to image views

* resize over reserve

* rm local override uri

* add simple thread pool

* rename to simple_thread_pool

* get rid of useless renderlib

* document version inc

* extract hardcoded values to in-header

* clang format patch

* clone registered image in custom_0

* document binary-file header

* minor fixes

* clang format

* rm unused render cmake
2026-02-16 20:36:48 +01:00
m-aXimilian e3e161ce52 Enhance image type support (#18)
* adds tiff support

* doc update

* adds memory-based =IPixelariumImage= implementation

* add usage example for custom user control

* enhance

* clang-format

fix readme

fix docs
2026-02-16 20:36:48 +01:00
m-aXimilian 356f966d01 Enhance examples (#17)
* enhance examples

* doc enhancement

* mv pool to stack

* missing ; and doc update

fix readme example image link
2026-02-16 20:36:48 +01:00
m-aXimilian 244b00fa5c start examples (#16) 2026-02-16 20:36:48 +01:00
m-aXimilian a760535b92 Refactor gallery function to separate class (#14)
* refactor gallery function to separate class

* typo and version adaptions

* clang-format
2026-02-16 20:36:48 +01:00
m-aXimilian d6a08f7db3 Atomic woes, megalinter, and batches (#13)
* fix libCZI dependency w/ atomic woes

* add megalinter

* fix megalinter triggers

* use correct flavor

* build status in readme

* clang-format

* megalinter batch

* disable suggestions

set libCZI options before fetching

Set compile definitions for static libCZI
2026-02-16 20:36:48 +01:00
m-aXimilian b1923a490c Improve Pipeline & Misc Improvements (#12)
* split pipeline

* add dedicated doc build step

* parallel builds

* fix permissions

* rm push trigger

* mv gcc ubuntu

* add windows build

* always build the docs

* doc alignment

* checkout recursive

* depend on builds for documentation

* set standard via cmake

* update libCZI to main

* pretty_function win32

* version history update

* disable windows release build

missing dependencies for doc generation

trigger ci on push to main

adapt doc-gen job require only doxygen
2026-02-16 20:36:48 +01:00
m-aXimilian fec5c08aaa Transition to C++23 (#11)
* enum field renaming

* renderer cleanups

* compiling for C++23

* version bump

* fix build
2026-02-16 20:36:48 +01:00
m-aXimilian 1ea83d9d11 Czi rendering (#10)
* add dimension selector sliders to czi view

* version doc & version bump

* cosmetic

* fix build?

* multi-dimension selection enabled in czi view

* remove the parameterized reset function of the renderer

it is not and is conceptually questionable

doc updates & some minor improvements

auto-update CZI-view when sliders are moved

set initial window size

fix windows build and msvc build

For reasons I don not comprehend, on Windows, we must include
=opencv2/core/mat.hpp= as the very last header in the =CvMatRender.hpp=.
If this is at any other position building on Windows, compilation will
break w/ all kinds of cryptic errors regarding OpenCV.

When building w/ msvc =__PRETTY_FUNCTION__= is not defined. =ILog.hpp=
now defines it. This should be revised to only be set when the
compiler is msvc. For the time being, it is considered sufficient though.
2026-02-16 20:36:48 +01:00
m-aXimilian e60203b57d Misc enhancements (#9)
* deploy docs only for main

* Revert "deploy docs only for main"

This reverts commit 53e37bd8a43e7e20d5a64bed1b3e00ced551dcae.

* init czi specific view

* fix build
2026-02-16 20:36:48 +01:00
m-aXimilian 22fd65773d Update docs (#8)
* add documentation and missing doxygen dependency

* update readme and mainpage
2026-02-16 20:36:48 +01:00
m-aXimilian 235d00192a Misc Improvements (#7)
* get rid of optional<ptr> -> double indirection

* more optional cleanup

* fix

* add more render pixel type options

* towards different views

* missing virtual declaration of ShowImage

* fix runtime

* init image view factory

* fix build

Render Image close button re-enable

add readme

init documentation

use awesomeDoxygen

ci build docs

install doxygen

id token permission

add pages write permission
2026-02-16 20:36:48 +01:00
m-aXimilian 0be064bb8e Gerneric image codec abstraction init (#6)
* remove raw pointer from resource manager

* towards generic images

* 💅 and pin libCZI module

* remove raw pointer from resource manager

* towards generic images

* fix rendering

* fix rendering

* fix unit tests

* fix pipeline

* fix gcc build

* re-enable tests

* add czi impl

* remove resource button

* refactor user code app to being a "default app"

* ui resources

* missing lib?

* init czi render support

* typos
2026-02-16 20:36:48 +01:00
m-aXimilian bce12b0bb4 Proper image rendering ux (#5)
* can draw from selection

* add light-weight render manager to render many images simultaneously

* [debug me] currently the image close button does not do

* the unselected image can be closed now

* can close images and manually open them on demand

* cosmetic

* image view stuff in render subdirectory

* cosmetic

* generate docs

* review

windows support

some cosmetics

💅 and pin libCZI module
2026-02-16 20:36:45 +01:00
Maximilian Kueffner 2990f3313d Merge branch 'separations' 2025-08-28 19:24:33 +02:00
m-aXimilian d71f4168fb some decouplings (#2)
* logger business

* code review

* rm c-style array

* extract image rendering to view

* missing view files

* init view abstractions

* leverage concepts and provide a templateized Enumerate function

* RVO

* get rid of some warnings

* logger business

* code review

* rm c-style array

* extract image rendering to view

* missing view files

* init view abstractions

* leverage concepts and provide a templateized Enumerate function

* RVO

* get rid of some warnings

* logger business

* code review

* rm c-style array

* init view abstractions

* leverage concepts and provide a templateized Enumerate function

* RVO

* get rid of some warnings

* logger business

* code review

* rm c-style array

* init view abstractions

* leverage concepts and provide a templateized Enumerate function

* RVO

* get rid of some warnings

* Factor out AppGLFW base class

The intention here is to get rid of scaffolding in the consumer
application class and allow to focus on the "important bits".

* Some cleanup

* dump unnecessary dependency

* link stuff where needed & use only what's needed

* remove deprecation warnings

* add gallery toggle

* make some includes private

* add presets

* remove dir locals, use presets instead

`projectile-configure-project' in conjunction with CMakePresets.json
will allow to configure the project.
`projectile-compile-project' does sth similar for the compile command.

This is equivalent to something like
~cmake --preset clang-debug && cmake --build build --preset clang-debug~

* use presets in pipeline

---------

Co-authored-by: m-aXimilian <keuffnermax@gmail.com>
2025-08-18 22:39:43 +00:00
Maximilian Kueffner 4fefd658fc use presets in pipeline 2025-08-19 00:31:28 +02:00
Maximilian Kueffner 3cfa724c8c remove dir locals, use presets instead
`projectile-configure-project' in conjunction with CMakePresets.json
will allow to configure the project.
`projectile-compile-project' does sth similar for the compile command.

This is equivalent to something like
~cmake --preset clang-debug && cmake --build build --preset clang-debug~
2025-08-19 00:27:41 +02:00
Maximilian Kueffner caa9f12abf add presets 2025-08-19 00:07:14 +02:00
Maximilian Kueffner 03ea7c84f0 make some includes private 2025-08-19 00:07:01 +02:00
Maximilian Kueffner 55c7fdd254 add gallery toggle 2025-08-19 00:03:06 +02:00
Maximilian Kueffner 6f83a13b63 remove deprecation warnings 2025-08-19 00:02:14 +02:00
Kueffner, Maximilian c280e44a0d link stuff where needed & use only what's needed 2025-08-18 12:20:33 +02:00
Maximilian Kueffner 05c21bdce9 dump unnecessary dependency 2025-08-17 21:56:24 +02:00
Maximilian Kueffner 5e06f767e9 Some cleanup 2025-08-17 21:51:13 +02:00
Maximilian Kueffner 88cc7363c6 Factor out AppGLFW base class
The intention here is to get rid of scaffolding in the consumer
application class and allow to focus on the "important bits".
2025-08-17 21:30:00 +02:00
Maximilian Kueffner e21ddb1246 Merge branch 'separations' of https://github.com/m-aXimilian/pixelarium into separations 2025-08-17 18:20:43 +02:00
m-aXimilian 78c04ac18d get rid of some warnings 2025-07-29 11:18:34 +02:00
m-aXimilian c4a7b1ec0e RVO 2025-07-29 11:17:41 +02:00
m-aXimilian 3f4c7a48a5 leverage concepts and provide a templateized Enumerate function 2025-07-29 11:17:31 +02:00
m-aXimilian 1d94f0ab1b init view abstractions 2025-07-29 11:16:25 +02:00
m-aXimilian 1cf6b0773f rm c-style array 2025-07-29 11:13:12 +02:00
m-aXimilian 8ce6bf157c code review 2025-07-29 11:13:02 +02:00
m-aXimilian 1ba88546b5 logger business 2025-07-29 11:11:15 +02:00
m-aXimilian c4b82dec6c get rid of some warnings 2025-07-28 16:11:58 +02:00
m-aXimilian 0e1c7deade RVO 2025-07-28 16:10:25 +02:00
m-aXimilian 22d12fa81f leverage concepts and provide a templateized Enumerate function 2025-07-28 16:10:15 +02:00
m-aXimilian ead5f5ae06 init view abstractions 2025-07-28 16:09:24 +02:00
m-aXimilian 08d1564573 rm c-style array 2025-07-28 16:02:46 +02:00
m-aXimilian a7ec70bf3f code review 2025-07-28 16:02:37 +02:00
m-aXimilian a270c17e6f logger business 2025-07-28 16:00:42 +02:00
m-aXimilian 390558f332 get rid of some warnings 2025-07-28 11:11:14 +02:00
m-aXimilian 14f2c5bda2 RVO 2025-07-28 11:11:14 +02:00
m-aXimilian f8f9bf563a leverage concepts and provide a templateized Enumerate function 2025-07-28 11:11:03 +02:00
m-aXimilian 790c55c0bb init view abstractions 2025-07-28 11:08:32 +02:00
m-aXimilian 6370bfdff6 missing view files 2025-07-28 11:08:32 +02:00
m-aXimilian 723d19220d extract image rendering to view 2025-07-28 11:08:32 +02:00
m-aXimilian 35fe3b7181 rm c-style array 2025-07-28 11:08:32 +02:00
m-aXimilian 3bfec0b13d code review 2025-07-28 11:08:31 +02:00