Comments (6)
Hi there, yes, this behavior is intentional: opening tev without any image arguments spawns a new window now (to allow people to open multiple instances side-by-side without passing images first). I think this is more intuitive than making $ tev
a no-op if a window is already open.
That said, I hadn't considered the use-case of someone wanting to either open a tev render window or reusing an existing one if it's already there. I'll modify the CLI shortly to give you the option to revert to old behavior.
from tev.
(Extra background info: the IPC connection that you see in your console logs is intentional. Even when multiple windows of tev are open side-by-side, there is still only a single "primary" window that receives IPC data. When this window gets closed, one of the secondary windows automatically promotes itself to become the new primary.)
from tev.
Ah I see, that all makes sense but getting the old behavior back as an option would be very useful.
Could you elaborate on how the handover works when the primary window closes? I assume the original TCP socket still gets closed, and another instance opens a new one? Doesn't that kill exiting connections?
from tev.
Yeah, the TCP socket gets closed, existing connections are killed, and the first secondary instance that manages becomes a new host that listens on the same port.
Given that the new host is a genuinely different tev instance with different images & state, I think the reset of the connection makes more sense than trying to keep the existing connection alive.
from tev.
Of note: the intended function of this is that a subsequent $ tev image.exr
doesn't spawn a new window if there are still existing ones -- i.e. as long as at least one instance of tev is running, one of them will handle IPC traffic.
As a corollary: the whole discussion concerns multiple tev instances that are bound to the same ip/port. If you were to spawn one regular tev instance and another via $ tev --host 127.0.0.1:1337
, the second one would be its own independent primary instance.
from tev.
Great, thanks a lot for explaining and the new flag!
from tev.
Related Issues (20)
- Ctrl+C to copy an image is unreliable HOT 6
- [Discussion] Should "Closing all" respect the current filter? HOT 1
- Saving dialog on Windows HOT 1
- Is sRGB transformation a tonemapping? HOT 2
- [Feature Request] Support TIFF image format
- Unable to build in Ubuntu 20 HOT 3
- tev does not exit when the window is closed HOT 4
- [macOS] Crash when rapidly creating and populating images using IPC HOT 4
- png not showing correct values HOT 1
- Image clipboard does not work on Wayland
- Compose two (or more) images together HOT 2
- [Ubuntu] Unable to build TEV; `uint64_t`, `nBytes`, `uint8_t`, and `uintptr_t` not declared in scope. HOT 2
- Not loading images on Mac OS after failed load HOT 1
- Ultra HDR (JPEG with gainmap) not supported HOT 1
- Unexpected files occur in installation HOT 1
- Histogram could show statistics for RGB(A) channels separately
- Ctrl+number cannot select channel groups on Linux/Windows HOT 1
- Feature Request: Allow changing of the viewer checkered background to something else, or a solid color. HOT 1
- Feature request: report bit depth
- Exposure range is too small HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from tev.