cloudhead / rx Goto Github PK
View Code? Open in Web Editor NEW๐พ Modern and minimalist pixel editor
Home Page: https://discord.gg/xHggPjfsS9
License: GNU General Public License v3.0
๐พ Modern and minimalist pixel editor
Home Page: https://discord.gg/xHggPjfsS9
License: GNU General Public License v3.0
โโ โโโโ โโ โโ โโโ โโ โโโ โโ โโ โโ โโ โโ โโ `rx` is a modern and minimalist pixel editor. Designed with great care and love with pixel artists and animators in mind. OVERVIEW `rx` is an extensible, modern and minimalist pixel editor implemented in rust[0]. rx is free software, licensed under the GPLv3. Most of the information on how to use rx is on the website: https://rx.cloudhead.io. There, you can also find a user guide (https://rx.cloudhead.io/guide.html), installation instructions, and binary download links. For discussions, join the community: https://rx.cloudhead.io/#community. To build rx from source, see the build sections below. Once inside rx, enter the `:help` command to get a list of key bindings and commands. [0]: https://rust-lang.org REQUIREMENTS At a minimum, OpenGL 3.3 support is required. BUILD DEPENDENCIES * rust (https://www.rust-lang.org/tools/install) * cmake (https://cmake.org/download/) On macOS, `Xcode` and the `Xcode Command Line Tools` are required. The latter can be obtained by running `xcode-select --install` CMake can be installed with `brew install cmake`. BUILD & INSTALLATION Before proceeding, make sure the BUILD DEPENDENCIES have been installed. Then, clone this repository and from its root, run: $ cargo install --locked --path . This will install rx under `~/.cargo/bin/rx`. If you prefer a different install location, you can specify it via the `--root <prefix>` flag, where <prefix> is for example '/usr/local'. CONTRIBUTING See the CONTRIBUTING file for details. Contributions are appreciated. USAGE See the guide at https://rx.cloudhead.io/guide.html. TROUBLESHOOTING If something isn't working like it's supposed to, there are various things you can do to debug the problem: * Run `rx` with verbose logging, by using the `-v` command-line flag. This will log errors from the underlying libraries that are usually suppressed, and will show debug output that might indicate what the problem is. * If `rx` is crashing, run it with `RUST_BACKTRACE=1` set in your environment to show a backtrace on crash. * It could be that the issue is related to your configuration - in that case the program can be run without loading the initialization script like so: rx -u - LICENSE This software is licensed under the GPL. See the LICENSE file for more details. COPYRIGHT (c) 2019 Alexis Sellier
Got it - nvm.
I noticed some strange behavior today when checker
and deubg
are both enabled.
Steps to reproduce:
1๏ธโฃ Set checker = true
and debug = true
in your init.rx
(or similar) config file. You can also set these in a running session.
2๏ธโฃ Open rx
.
3๏ธโฃ Using the arrow keys navigate up and down.
๐ณ Notice that the edit window and checker patterns go in opposite directions.
I can take a look at this when I get a chance. If you have any pointers on where the problem/fix might be I would appreciate the direction.
Adding a makefile would significantly simplify the installation process, and also make it easier to automate for packaging purposes. I'll gladly submit a PR with one if requested.
Super neat software, by the way :)
Tried to install it for mac following the instructions for mac. Got an error that I had to install cmake
. Was able to resolve it by brew install cmake
. Don't know if you can make that part of your dependencies.
But other then that was pretty easy to install and fun to play around with.
Oh and your help is missing the command to mirror things when painting.
hi, love this software!
the ctrl
keyboard shortcut for sampler tool does not seem to respond on windows. The brush tool just keeps being active.
Ill have some time to investigate it myself tomorrow, but for now I post about it here.
tested with:
rx 0.4.0
AND
rx master
rustup show
Default host: x86_64-pc-windows-msvc
rustup home: C:\Users\User\.rustup
installed toolchains
--------------------
stable-x86_64-pc-windows-msvc
nightly-x86_64-pc-windows-msvc (default)
active toolchain
----------------
nightly-x86_64-pc-windows-msvc (default)
rustc 1.43.0-nightly (442ae7f04 2020-02-06)
cmake (not sure why I list that but why not)
cmake version 3.16.4
I figured out that I need to enable the winit
feature to get proper key mappings on my non-qwerty keyboard.
Maybe this should be documented, or enabled by default.
It would be great if a user could control brush with keyboard, instead of frame. Maybe it could be done in modal fashion like vim. Right now it doesn't make sense to use hjkl when you need to use mouse at the same time.
Also it would be great if you could map specific keybindings for creating specific patterns, maybe through scripting language or just with libraries of images.
I've created a new issue so we could figure this one out on here. Could you remind me which line I should edit to better test the cursor positioning bug. I use a wacom intuos 3 tablet btw.
When I move over the canvas with the wacom pencil, there is an offset from the screen position, and the canvas position.
Runs fine if I enable vsync.
This seems similar to other issues I have encountered on nvidia GPU's where there is no delay when vsync is disabled so it renders and queues frames way too fast until it ooms.
Quite possibly an issue with wgpu instead of rx, but I haven't investigated it at all.
Occurs on:
OS: Arch Linux
GPU: GTX 960
Driver: Nvidia proprietary driver, version 418
Backend: Vulkan
The validation errors repeat many times before hitting the panic, I omitted most of them.
[2019-08-25T10:44:59Z ERROR gfx_backend_vulkan]
VALIDATION [VUID-VkSwapchainCreateInfoKHR-imageExtent-01274 (0)] : vkCreateSwapchainKHR() called with imageExtent = (850,1402), which is outside the bounds returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR(): currentExtent = (851,1402), minImageExtent = (851,1402), maxImageExtent = (851,1402). The Vulkan spec states: imageExtent must be between minImageExtent and maxImageExtent, inclusive, where minImageExtent and maxImageExtent are members of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface (https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-VkSwapchainCreateInfoKHR-imageExtent-01274)
object info: (type: DEVICE, hndl: 94080094017968)
[2019-08-25T10:44:59Z ERROR gfx_backend_vulkan]
VALIDATION [UNASSIGNED-CoreValidation-DrawState-SwapchainTooManyImages (0)] : vkAcquireNextImageKHR: Application has already acquired the maximum number of images (0x1)
object info: (type: SWAPCHAIN_KHR, hndl: 11880)
[2019-08-25T10:44:59Z ERROR gfx_backend_vulkan]
VALIDATION [VUID-VkSwapchainCreateInfoKHR-imageExtent-01274 (0)] : vkCreateSwapchainKHR() called with imageExtent = (850,1402), which is outside the bounds returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR(): currentExtent = (851,1402), minImageExtent = (851,1402), maxImageExtent = (851,1402). The Vulkan spec states: imageExtent must be between minImageExtent and maxImageExtent, inclusive, where minImageExtent and maxImageExtent are members of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface (https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-VkSwapchainCreateInfoKHR-imageExtent-01274)
object info: (type: DEVICE, hndl: 94080094017968)
[2019-08-25T10:44:59Z ERROR gfx_backend_vulkan]
VALIDATION [UNASSIGNED-CoreValidation-DrawState-SwapchainTooManyImages (0)] : vkAcquireNextImageKHR: Application has already acquired the maximum number of images (0x1)
object info: (type: SWAPCHAIN_KHR, hndl: 11904)
[2019-08-25T10:44:59Z ERROR gfx_backend_vulkan]
VALIDATION [VUID-VkSwapchainCreateInfoKHR-imageExtent-01274 (0)] : vkCreateSwapchainKHR() called with imageExtent = (850,1402), which is outside the bounds returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR(): currentExtent = (851,1402), minImageExtent = (851,1402), maxImageExtent = (851,1402). The Vulkan spec states: imageExtent must be between minImageExtent and maxImageExtent, inclusive, where minImageExtent and maxImageExtent are members of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface (https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-VkSwapchainCreateInfoKHR-imageExtent-01274)
object info: (type: DEVICE, hndl: 94080094017968)
[2019-08-25T10:44:59Z ERROR gfx_backend_vulkan]
VALIDATION [UNASSIGNED-CoreValidation-DrawState-SwapchainTooManyImages (0)] : vkAcquireNextImageKHR: Application has already acquired the maximum number of images (0x1)
object info: (type: SWAPCHAIN_KHR, hndl: 11928)
[2019-08-25T10:44:59Z ERROR gfx_backend_vulkan]
VALIDATION [VUID-VkSwapchainCreateInfoKHR-imageExtent-01274 (0)] : vkCreateSwapchainKHR() called with imageExtent = (850,1402), which is outside the bounds returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR(): currentExtent = (851,1402), minImageExtent = (851,1402), maxImageExtent = (851,1402). The Vulkan spec states: imageExtent must be between minImageExtent and maxImageExtent, inclusive, where minImageExtent and maxImageExtent are members of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface (https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-VkSwapchainCreateInfoKHR-imageExtent-01274)
object info: (type: DEVICE, hndl: 94080094017968)
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: OutOfMemory(OutOfHostMemory)', src/libcore/result.rs:999:5
stack backtrace:
0: backtrace::backtrace::libunwind::trace
at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.29/src/backtrace/libunwind.rs:88
1: backtrace::backtrace::trace_unsynchronized
at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.29/src/backtrace/mod.rs:66
2: std::sys_common::backtrace::_print
at src/libstd/sys_common/backtrace.rs:47
3: std::sys_common::backtrace::print
at src/libstd/sys_common/backtrace.rs:36
4: std::panicking::default_hook::{{closure}}
at src/libstd/panicking.rs:200
5: std::panicking::default_hook
at src/libstd/panicking.rs:214
6: std::panicking::rust_panic_with_hook
at src/libstd/panicking.rs:477
7: std::panicking::continue_panic_fmt
at src/libstd/panicking.rs:384
8: rust_begin_unwind
at src/libstd/panicking.rs:311
9: core::panicking::panic_fmt
at src/libcore/panicking.rs:85
10: core::result::unwrap_failed
at /rustc/eae3437dfe991621e8afdc82734f4a172d7ddf9b/src/libcore/macros.rs:18
11: core::result::Result<T,E>::unwrap
at /rustc/eae3437dfe991621e8afdc82734f4a172d7ddf9b/src/libcore/result.rs:800
12: wgpu_native::device::device_create_swap_chain
at /home/rubic/.cargo/registry/src/github.com-1ecc6299db9ec823/wgpu-native-0.3.3/src/device.rs:1905
13: wgpu_swap_chain_get_next_texture
at /home/rubic/.cargo/registry/src/github.com-1ecc6299db9ec823/wgpu-native-0.3.3/src/swap_chain.rs:150
14: wgpu::SwapChain::get_next_texture
at /home/rubic/.cargo/registry/src/github.com-1ecc6299db9ec823/wgpu-0.3.0/src/lib.rs:1369
15: rgx::core::SwapChain::next
at /home/rubic/.cargo/registry/src/github.com-1ecc6299db9ec823/rgx-0.1.0/src/core/mod.rs:1150
16: rx::renderer::Renderer::frame
at src/renderer.rs:265
17: rx::init::{{closure}}::{{closure}}
at ./src/lib.rs:157
18: rx::FrameTimer::run
at ./src/lib.rs:56
19: rx::init::{{closure}}
at ./src/lib.rs:156
20: rx::platform::backend::Events::run::{{closure}}
at ./src/platform/winit.rs:26
21: winit::platform_impl::platform::sticky_exit_callback
at /home/rubic/.cargo/registry/src/github.com-1ecc6299db9ec823/winit-0.20.0-alpha3/src/platform_impl/linux/mod.rs:656
22: winit::platform_impl::platform::x11::EventLoop<T>::run_return
at /home/rubic/.cargo/registry/src/github.com-1ecc6299db9ec823/winit-0.20.0-alpha3/src/platform_impl/linux/x11/mod.rs:285
23: winit::platform_impl::platform::x11::EventLoop<T>::run
at /home/rubic/.cargo/registry/src/github.com-1ecc6299db9ec823/winit-0.20.0-alpha3/src/platform_impl/linux/x11/mod.rs:382
24: winit::platform_impl::platform::EventLoop<T>::run
at /home/rubic/.cargo/registry/src/github.com-1ecc6299db9ec823/winit-0.20.0-alpha3/src/platform_impl/linux/mod.rs:603
25: winit::event_loop::EventLoop<T>::run
at /home/rubic/.cargo/registry/src/github.com-1ecc6299db9ec823/winit-0.20.0-alpha3/src/event_loop.rs:140
26: rx::platform::backend::Events::run
at ./src/platform/winit.rs:24
27: rx::init
at ./src/lib.rs:116
28: rx::main
at src/main.rs:16
29: std::rt::lang_start::{{closure}}
at /rustc/eae3437dfe991621e8afdc82734f4a172d7ddf9b/src/libstd/rt.rs:64
30: std::rt::lang_start_internal::{{closure}}
at src/libstd/rt.rs:49
31: std::panicking::try::do_call
at src/libstd/panicking.rs:296
32: __rust_maybe_catch_panic
at src/libpanic_unwind/lib.rs:82
33: std::panicking::try
at src/libstd/panicking.rs:275
34: std::panic::catch_unwind
at src/libstd/panic.rs:394
35: std::rt::lang_start_internal
at src/libstd/rt.rs:48
36: std::rt::lang_start
at /rustc/eae3437dfe991621e8afdc82734f4a172d7ddf9b/src/libstd/rt.rs:64
37: main
38: __libc_start_main
39: _start
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
Full copying and pasting ability would be very useful ofc and I'm sure it's on the roadmap, but in the meantime two features would help a lot with the animation process:
f/clone
command with frame index?Maybe I can add the features myself and open some PRs if you like the idea? Let me know.
Thank you for building and sharing this project, looks really promising and it's pleasing to use.
Something seems missing after cargo install
.
Probably some basic palette should be embedded into executable with include_bytes!()
or whatever to make it self-sufficient.
Alternatively (maybe better), entire config
from git may be zipped and embedded into rx executable and unpacked on first start if $XDG_CONFIG_HOME/rx
is missing.
Hi,
thank you for your work!
When I press space
and I drag the mouse over the screen nothing happens.
Here are the logs:
2020-01-20 11:36:32,080 DEBUG [rx] event: CursorMoved { position: LogicalPosition { x: 956.0, y: 1085.0 } }
2020-01-20 11:36:32,272 DEBUG [rx] event: KeyboardInput(KeyboardInput { state: Pressed, key: Some(Space), modifiers: ModifiersState { shift: false, ctrl: false, alt: false, meta: false } })
2020-01-20 11:36:32,272 DEBUG [rx] event: ReceivedCharacter(' ')
2020-01-20 11:36:32,272 DEBUG [rx::session] command: Tool(Pan(NotPanning))
2020-01-20 11:36:32,453 DEBUG [rx] event: KeyboardInput(KeyboardInput { state: Repeated, key: Some(Space), modifiers: ModifiersState { shift: false, ctrl: false, alt: false, meta: false } })
2020-01-20 11:36:32,453 DEBUG [rx] event: ReceivedCharacter(' ')
2020-01-20 11:36:32,469 DEBUG [rx] event: KeyboardInput(KeyboardInput { state: Repeated, key: Some(Space), modifiers: ModifiersState { shift: false, ctrl: false, alt: false, meta: false } })
2020-01-20 11:36:32,469 DEBUG [rx] event: ReceivedCharacter(' ')
2020-01-20 11:36:32,486 DEBUG [rx] event: KeyboardInput(KeyboardInput { state: Repeated, key: Some(Space), modifiers: ModifiersState { shift: false, ctrl: false, alt: false, meta: false } })
2020-01-20 11:36:32,486 DEBUG [rx] event: ReceivedCharacter(' ')
2020-01-20 11:36:32,502 DEBUG [rx] event: KeyboardInput(KeyboardInput { state: Repeated, key: Some(Space), modifiers: ModifiersState { shift: false, ctrl: false, alt: false, meta: false } })
2020-01-20 11:36:32,502 DEBUG [rx] event: ReceivedCharacter(' ')
2020-01-20 11:36:32,518 DEBUG [rx] event: KeyboardInput(KeyboardInput { state: Repeated, key: Some(Space), modifiers: ModifiersState { shift: false, ctrl: false, alt: false, meta: false } })
2020-01-20 11:36:32,518 DEBUG [rx] event: ReceivedCharacter(' ')
2020-01-20 11:36:32,535 DEBUG [rx] event: KeyboardInput(KeyboardInput { state: Repeated, key: Some(Space), modifiers: ModifiersState { shift: false, ctrl: false, alt: false, meta: false } })
2020-01-20 11:36:32,535 DEBUG [rx] event: ReceivedCharacter(' ')
2020-01-20 11:36:32,551 DEBUG [rx] event: KeyboardInput(KeyboardInput { state: Repeated, key: Some(Space), modifiers: ModifiersState { shift: false, ctrl: false, alt: false, meta: false } })
2020-01-20 11:36:32,551 DEBUG [rx] event: ReceivedCharacter(' ')
2020-01-20 11:36:32,567 DEBUG [rx] event: KeyboardInput(KeyboardInput { state: Repeated, key: Some(Space), modifiers: ModifiersState { shift: false, ctrl: false, alt: false, meta: false } })
2020-01-20 11:36:32,567 DEBUG [rx] event: ReceivedCharacter(' ')
2020-01-20 11:36:32,584 DEBUG [rx] event: KeyboardInput(KeyboardInput { state: Repeated, key: Some(Space), modifiers: ModifiersState { shift: false, ctrl: false, alt: false, meta: false } })
2020-01-20 11:36:32,584 DEBUG [rx] event: ReceivedCharacter(' ')
2020-01-20 11:36:32,601 DEBUG [rx] event: KeyboardInput(KeyboardInput { state: Repeated, key: Some(Space), modifiers: ModifiersState { shift: false, ctrl: false, alt: false, meta: false } })
2020-01-20 11:36:32,601 DEBUG [rx] event: ReceivedCharacter(' ')
2020-01-20 11:36:32,617 DEBUG [rx] event: KeyboardInput(KeyboardInput { state: Repeated, key: Some(Space), modifiers: ModifiersState { shift: false, ctrl: false, alt: false, meta: false } })
2020-01-20 11:36:32,617 DEBUG [rx] event: ReceivedCharacter(' ')
2020-01-20 11:36:32,633 DEBUG [rx] event: KeyboardInput(KeyboardInput { state: Repeated, key: Some(Space), modifiers: ModifiersState { shift: false, ctrl: false, alt: false, meta: false } })
2020-01-20 11:36:32,633 DEBUG [rx] event: ReceivedCharacter(' ')
2020-01-20 11:36:32,650 DEBUG [rx] event: KeyboardInput(KeyboardInput { state: Repeated, key: Some(Space), modifiers: ModifiersState { shift: false, ctrl: false, alt: false, meta: false } })
2020-01-20 11:36:32,650 DEBUG [rx] event: ReceivedCharacter(' ')
2020-01-20 11:36:32,666 DEBUG [rx] event: KeyboardInput(KeyboardInput { state: Repeated, key: Some(Space), modifiers: ModifiersState { shift: false, ctrl: false, alt: false, meta: false } })
2020-01-20 11:36:32,666 DEBUG [rx] event: ReceivedCharacter(' ')
2020-01-20 11:36:32,682 DEBUG [rx] event: KeyboardInput(KeyboardInput { state: Repeated, key: Some(Space), modifiers: ModifiersState { shift: false, ctrl: false, alt: false, meta: false } })
2020-01-20 11:36:32,683 DEBUG [rx] event: ReceivedCharacter(' ')
2020-01-20 11:36:32,698 DEBUG [rx] event: KeyboardInput(KeyboardInput { state: Repeated, key: Some(Space), modifiers: ModifiersState { shift: false, ctrl: false, alt: false, meta: false } })
2020-01-20 11:36:32,698 DEBUG [rx] event: ReceivedCharacter(' ')
2020-01-20 11:36:32,714 DEBUG [rx] event: KeyboardInput(KeyboardInput { state: Repeated, key: Some(Space), modifiers: ModifiersState { shift: false, ctrl: false, alt: false, meta: false } })
2020-01-20 11:36:32,714 DEBUG [rx] event: ReceivedCharacter(' ')
2020-01-20 11:36:32,730 DEBUG [rx] event: KeyboardInput(KeyboardInput { state: Repeated, key: Some(Space), modifiers: ModifiersState { shift: false, ctrl: false, alt: false, meta: false } })
2020-01-20 11:36:32,731 DEBUG [rx] event: ReceivedCharacter(' ')
2020-01-20 11:36:32,746 DEBUG [rx] event: KeyboardInput(KeyboardInput { state: Repeated, key: Some(Space), modifiers: ModifiersState { shift: false, ctrl: false, alt: false, meta: false } })
2020-01-20 11:36:32,746 DEBUG [rx] event: ReceivedCharacter(' ')
2020-01-20 11:36:32,762 DEBUG [rx] event: KeyboardInput(KeyboardInput { state: Repeated, key: Some(Space), modifiers: ModifiersState { shift: false, ctrl: false, alt: false, meta: false } })
2020-01-20 11:36:32,762 DEBUG [rx] event: ReceivedCharacter(' ')
2020-01-20 11:36:32,778 DEBUG [rx] event: KeyboardInput(KeyboardInput { state: Repeated, key: Some(Space), modifiers: ModifiersState { shift: false, ctrl: false, alt: false, meta: false } })
2020-01-20 11:36:32,778 DEBUG [rx] event: ReceivedCharacter(' ')
2020-01-20 11:36:32,794 DEBUG [rx] event: KeyboardInput(KeyboardInput { state: Repeated, key: Some(Space), modifiers: ModifiersState { shift: false, ctrl: false, alt: false, meta: false } })
2020-01-20 11:36:32,794 DEBUG [rx] event: ReceivedCharacter(' ')
2020-01-20 11:36:32,810 DEBUG [rx] event: KeyboardInput(KeyboardInput { state: Repeated, key: Some(Space), modifiers: ModifiersState { shift: false, ctrl: false, alt: false, meta: false } })
2020-01-20 11:36:32,810 DEBUG [rx] event: ReceivedCharacter(' ')
2020-01-20 11:36:32,826 DEBUG [rx] event: KeyboardInput(KeyboardInput { state: Repeated, key: Some(Space), modifiers: ModifiersState { shift: false, ctrl: false, alt: false, meta: false } })
2020-01-20 11:36:32,826 DEBUG [rx] event: ReceivedCharacter(' ')
2020-01-20 11:36:32,842 DEBUG [rx] event: KeyboardInput(KeyboardInput { state: Repeated, key: Some(Space), modifiers: ModifiersState { shift: false, ctrl: false, alt: false, meta: false } })
2020-01-20 11:36:32,842 DEBUG [rx] event: ReceivedCharacter(' ')
2020-01-20 11:36:32,859 DEBUG [rx] event: KeyboardInput(KeyboardInput { state: Repeated, key: Some(Space), modifiers: ModifiersState { shift: false, ctrl: false, alt: false, meta: false } })
2020-01-20 11:36:32,859 DEBUG [rx] event: ReceivedCharacter(' ')
2020-01-20 11:36:32,875 DEBUG [rx] event: KeyboardInput(KeyboardInput { state: Repeated, key: Some(Space), modifiers: ModifiersState { shift: false, ctrl: false, alt: false, meta: false } })
2020-01-20 11:36:32,875 DEBUG [rx] event: ReceivedCharacter(' ')
2020-01-20 11:36:32,891 DEBUG [rx] event: KeyboardInput(KeyboardInput { state: Repeated, key: Some(Space), modifiers: ModifiersState { shift: false, ctrl: false, alt: false, meta: false } })
2020-01-20 11:36:32,891 DEBUG [rx] event: ReceivedCharacter(' ')
2020-01-20 11:36:32,908 DEBUG [rx] event: KeyboardInput(KeyboardInput { state: Repeated, key: Some(Space), modifiers: ModifiersState { shift: false, ctrl: false, alt: false, meta: false } })
2020-01-20 11:36:32,908 DEBUG [rx] event: ReceivedCharacter(' ')
2020-01-20 11:36:32,924 DEBUG [rx] event: KeyboardInput(KeyboardInput { state: Repeated, key: Some(Space), modifiers: ModifiersState { shift: false, ctrl: false, alt: false, meta: false } })
2020-01-20 11:36:32,924 DEBUG [rx] event: ReceivedCharacter(' ')
2020-01-20 11:36:32,940 DEBUG [rx] event: KeyboardInput(KeyboardInput { state: Repeated, key: Some(Space), modifiers: ModifiersState { shift: false, ctrl: false, alt: false, meta: false } })
2020-01-20 11:36:32,940 DEBUG [rx] event: ReceivedCharacter(' ')
2020-01-20 11:36:32,957 DEBUG [rx] event: KeyboardInput(KeyboardInput { state: Repeated, key: Some(Space), modifiers: ModifiersState { shift: false, ctrl: false, alt: false, meta: false } })
2020-01-20 11:36:32,957 DEBUG [rx] event: ReceivedCharacter(' ')
2020-01-20 11:36:32,973 DEBUG [rx] event: KeyboardInput(KeyboardInput { state: Repeated, key: Some(Space), modifiers: ModifiersState { shift: false, ctrl: false, alt: false, meta: false } })
2020-01-20 11:36:32,973 DEBUG [rx] event: ReceivedCharacter(' ')
2020-01-20 11:36:32,974 DEBUG [rx] event: KeyboardInput(KeyboardInput { state: Released, key: Some(Space), modifiers: ModifiersState { shift: false, ctrl: false, alt: false, meta: false } })
2020-01-20 11:36:32,974 DEBUG [rx::session] command: ToolPrev
2020-01-20 11:36:33,323 DEBUG [rx] event: KeyboardInput(KeyboardInput { state: Pressed, key: Some(Unknown), modifiers: ModifiersState { shift: false, ctrl: false, alt: false, meta: false } })
2020-01-20 11:36:33,429 DEBUG [rx] event: Focused(false)
2020-01-20 11:36:33,429 DEBUG [rx::session] state: Running -> Paused
2020-01-20 11:36:33,429 DEBUG [rx] event: KeyboardInput(KeyboardInput { state: Released, key: Some(Unknown), modifiers: ModifiersState { shift: false, ctrl: false, alt: false, meta: false } })
Let me know if you need more!
Running:
System: Gentoo Linux - (Linux 5.4.11)
Window Manager: Sway 1.2 - (Wayland)
Chipset/GPU: Intel UHD Graphics 630
Issue: When exporting as a gif, it seems that colors which aren't part of the palette end up not being in the final gif. Those pixels end up transparent or simply the wrong color.
How to reproduce: Open a png file with rx file.png
where file.png is an image containing colors that aren't in the starting palette. Split into multiple frames, then export as a gif. Switch to a palette with the required colors, then export as a second gif. The first gif has missing colors, but the second gif is correct.
Compilation fails on Windows 10.
Windows 10 Pro 1903
stable-x86_64-pc-windows-msvc (default)
rustc 1.37.0 (eae3437df 2019-08-13)
Compiling rx v0.1.0 (https://github.com/cloudhead/rx#af68f1f3)
error[E0433]: failed to resolve: could not find `BaseDirectories` in `xdg`
--> C:\Users\User\.cargo\git\checkouts\rx-bc40bbadcd2c4422\af68f1f\src\lib.rs:79:26
|
79 | let base_dirs = xdg::BaseDirectories::with_prefix("rx")?;
| ^^^^^^^^^^^^^^^ could not find `BaseDirectories` in `xdg`
error[E0412]: cannot find type `BaseDirectories` in module `xdg`
--> C:\Users\User\.cargo\git\checkouts\rx-bc40bbadcd2c4422\af68f1f\src\session.rs:248:21
|
248 | base_dirs: xdg::BaseDirectories,
| ^^^^^^^^^^^^^^^ not found in `xdg`
error[E0412]: cannot find type `BaseDirectories` in module `xdg`
--> C:\Users\User\.cargo\git\checkouts\rx-bc40bbadcd2c4422\af68f1f\src\session.rs:331:25
|
331 | base_dirs: xdg::BaseDirectories,
| ^^^^^^^^^^^^^^^ not found in `xdg`
error: aborting due to 3 previous errors
Some errors have detailed explanations: E0412, E0433.
For more information about an error, try `rustc --explain E0412`.
error: failed to compile `rx v0.1.0 (https://github.com/cloudhead/rx#af68f1f3)`, intermediate artifacts can be found at `C:\Users\User\AppData\Local\Temp\cargo-installGlInKN`
Similar issue found in sanpii/effitask#8 (comment)
Basically what the topic says. Would be nice to have some autocomplete functionality, command history, etc. for the command mode. Thanks!
While trying to figure out the best animation speed by eye, I discovered that, after using the up arrow in rx 0.4.0 to pull the set
command back out of the command history, Home/End had no effect and I was forced to wait on the right arrow to get me to the value I wanted to tweak.
$ git rev-parse HEAD
0d9cf727eb755bddd0b2fdf78cfea9545ce91ff2
$ cargo --version
cargo 1.37.0 (9edd08916 2019-08-02)
$ rustc --version
rustc 1.37.0 (eae3437df 2019-08-13)
$ RUST_BACKTRACE=1 cargo run --features="metal"
Finished dev [unoptimized + debuginfo] target(s) in 0.06s
Running `target/debug/rx`
thread 'main' panicked at 'no backend found for this platform!', src/platform/dummy.rs:47:5
stack backtrace:
0: backtrace::backtrace::libunwind::trace
at /Users/vsts/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.29/src/backtrace/libunwind.rs:88
1: backtrace::backtrace::trace_unsynchronized
at /Users/vsts/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.29/src/backtrace/mod.rs:66
2: std::sys_common::backtrace::_print
at src/libstd/sys_common/backtrace.rs:47
3: std::sys_common::backtrace::print
at src/libstd/sys_common/backtrace.rs:36
4: std::panicking::default_hook::{{closure}}
at src/libstd/panicking.rs:200
5: std::panicking::default_hook
at src/libstd/panicking.rs:214
6: std::panicking::rust_panic_with_hook
at src/libstd/panicking.rs:477
7: std::panicking::begin_panic
at /rustc/eae3437dfe991621e8afdc82734f4a172d7ddf9b/src/libstd/panicking.rs:411
8: rx::platform::backend::init
at src/platform/dummy.rs:47
9: rx::platform::init
at src/platform/mod.rs:21
10: rx::init
at ./src/lib.rs:73
11: rx::main
at src/main.rs:17
12: std::rt::lang_start::{{closure}}
at /rustc/eae3437dfe991621e8afdc82734f4a172d7ddf9b/src/libstd/rt.rs:64
13: std::rt::lang_start_internal::{{closure}}
at src/libstd/rt.rs:49
14: std::panicking::try::do_call
at src/libstd/panicking.rs:296
15: __rust_maybe_catch_panic
at src/libpanic_unwind/lib.rs:82
16: std::panicking::try
at src/libstd/panicking.rs:275
17: std::panic::catch_unwind
at src/libstd/panic.rs:394
18: std::rt::lang_start_internal
at src/libstd/rt.rs:48
19: std::rt::lang_start
at /rustc/eae3437dfe991621e8afdc82734f4a172d7ddf9b/src/libstd/rt.rs:64
20: rx::main
I was going to report that I cannot use ctrl
key to toggle the sampler, in my windows pc (gnu-toolchain).
After I browsed through the recent commits, it seems like something has been done to solve this problem (like 73f26c2). And I have tested the master branch build, it works.
I am opening this issue to document that this issue happened in the v0.4 version but solved in the master branch.
Thanks for the great work!
Edit: nevermind, it has been reported in #66
Windows 10 build crashes with SegFault:
rx$ cargo run
Finished dev [unoptimized + debuginfo] target(s) in 0.14s
Running `target\debug\rx.exe`
[2019-11-07T21:23:56Z INFO rx::session] rx v0.2.0
error: process didn't exit successfully: `target\debug\rx.exe` (exit code: 0xc0000005, STATUS_ACCESS_VIOLATION)
Segmentation fault
Windows information
OS Name: Microsoft Windows 10 Home
OS Version: 10.0.18362 N/A Build 18362
Rust toolchain details
Default host: x86_64-pc-windows-msvc
rustup home: C:\Users\pavlo\.rustup
installed toolchains
--------------------
stable-x86_64-pc-windows-gnu
stable-x86_64-pc-windows-msvc (default)
nightly-x86_64-pc-windows-msvc
active toolchain
----------------
stable-x86_64-pc-windows-msvc (default)
rustc 1.39.0 (4560ea788 2019-11-04)
Hi! This is a pretty cool project and I was gonna test it out and ran into this:
I downloaded https://github.com/cloudhead/rx/releases/download/v0.3.0/rx-0.3.0-x86_64.app.zip as found on https://rx.cloudhead.io/.
I tried right click->open as well as just regularly double clicking but got the following error.
$ RUST_BACKTRACE=1 rxeditor /tmp/screenshot.png
INTEL-MESA: warning: Ivy Bridge Vulkan support is incomplete
thread 'main' panicked at 'assertion failed: `(left == right)`
left: `3147264`,
right: `4196352`: fatal: incorrect length for texel buffer', /home/rust/.cargo/registry/src/github.com-1ecc6299db9ec823/rgx-0.1.1/src/core/mod.rs:581:9
stack backtrace:
0: backtrace::backtrace::libunwind::trace
at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.35/src/backtrace/libunwind.rs:88
1: backtrace::backtrace::trace_unsynchronized
at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.35/src/backtrace/mod.rs:66
2: std::sys_common::backtrace::_print
at src/libstd/sys_common/backtrace.rs:47
3: std::sys_common::backtrace::print
at src/libstd/sys_common/backtrace.rs:36
4: std::panicking::default_hook::{{closure}}
at src/libstd/panicking.rs:200
5: std::panicking::default_hook
at src/libstd/panicking.rs:214
6: std::panicking::rust_panic_with_hook
at src/libstd/panicking.rs:477
7: std::panicking::continue_panic_fmt
at src/libstd/panicking.rs:384
8: std::panicking::begin_panic_fmt
at src/libstd/panicking.rs:339
9: rgx::core::Texture::fill
10: rgx::core::Renderer::prepare
11: rx::renderer::Renderer::update_views
12: rx::init
13: rx::main
14: std::rt::lang_start::{{closure}}
15: std::rt::lang_start_internal::{{closure}}
at src/libstd/rt.rs:49
16: std::panicking::try::do_call
at src/libstd/panicking.rs:296
17: __rust_maybe_catch_panic
at src/libpanic_unwind/lib.rs:80
18: std::panicking::try
at src/libstd/panicking.rs:275
19: std::panic::catch_unwind
at src/libstd/panic.rs:394
20: std::rt::lang_start_internal
at src/libstd/rt.rs:48
21: main
22: __libc_start_main
23: _start
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
$ file /tmp/screenshot.png
/tmp/screenshot.png: PNG image data, 1366 x 768, 8-bit/color RGB, non-interlaced
When downscaled, it does not crash, but still fails to show the image
$ gm convert -scale 10% /tmp/screenshot.png /tmp/screenshots.png
$ RUST_BACKTRACE=1 rxeditor /tmp/screenshots.png
INTEL-MESA: warning: Ivy Bridge Vulkan support is incomplete
[2019-08-27T17:14:47Z ERROR rx::session] Error loading path(s): invalid pixel buffer size
^C
Opened ~20 frames with :f/clone
to draw a simple snake, used without savings, editor crashed
trace:
thread 'main' panicked at 'assertion failed: `(left == right)`
left: `Ok(false)`,
right: `Ok(true)`: GPU got stuck on a frame (image 2) :(', /home/nikto_b/.cargo/registry /src/github.com-1ecc6299db9ec823/wgpu-native-0.3.3/src/swap_chain.rs:190:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
thread 'main' panicked at 'assertion failed: `(left == right)`
left: `Ok(false)`,
right: `Ok(true)`: GPU got stuck :(', /home/nikto_b/.cargo/registry/src/github.com- 1ecc6299db9ec823/wgpu-native-0.3.3/src/device.rs:204:13
stack backtrace:
0: 0x55c44b312064 - backtrace::backtrace::libunwind::trace::h9c615d6efbf938f6
at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.37 /src/backtrace/libunwind.rs:88
1: 0x55c44b312064 - backtrace::backtrace::trace_unsynchronized::hfaa1ce1a28b26657
at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.37 /src/backtrace/mod.rs:66
2: 0x55c44b312064 - std::sys_common::backtrace::_print_fmt::h1b66ca12d17b932b
at src/libstd/sys_common/backtrace.rs:77
3: 0x55c44b312064 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hb788f286135c56c2
at src/libstd/sys_common/backtrace.rs:61
4: 0x55c44b332e6c - core::fmt::write::h07fe3dc5621915ed
at src/libcore/fmt/mod.rs:1028
5: 0x55c44b30ef37 - std::io::Write::write_fmt::h01232d256c58655a
at src/libstd/io/mod.rs:1412
6: 0x55c44b31433e - std::sys_common::backtrace::_print::h28f8e2b4d9e94458
at src/libstd/sys_common/backtrace.rs:65
7: 0x55c44b31433e - std::sys_common::backtrace::print::hd186282d73d3e408
at src/libstd/sys_common/backtrace.rs:50
8: 0x55c44b31433e - std::panicking::default_hook::{{closure}}::h924d5d525cfaa28b
at src/libstd/panicking.rs:189
9: 0x55c44b314041 - std::panicking::default_hook::hcf10145036a31ca0
at src/libstd/panicking.rs:206
10: 0x55c44b3149d5 - std::panicking::rust_panic_with_hook::h0d1ccf594ba2c25f
at src/libstd/panicking.rs:469
11: 0x55c44b314572 - std::panicking::continue_panic_fmt::hd9914224a5c73476
at src/libstd/panicking.rs:376
12: 0x55c44b3144cc - std::panicking::begin_panic_fmt::h21a179276bc3d2a5
at src/libstd/panicking.rs:331
13: 0x55c44b23d284 - wgpu_native::device::Device <gfx_backend_vulkan::Backend>::maintain::hb86857300ab924e6
14: 0x55c44b24b7c6 - wgpu_device_poll
15: 0x55c44b0f5ad8 - core::ptr::real_drop_in_place::h573d63d1ea18404b
16: 0x55c44b0f4985 - rx::platform::run::hbca45d375a106e3e
17: 0x55c44b0e42f7 - rx::init::h1770aa72b933b02c
18: 0x55c44b0f978c - rx::main::h02e3fd22fc5109fe
19: 0x55c44b0f4e53 - std::rt::lang_start::{{closure}}::h0d34df9be9aebcc3
20: 0x55c44b314403 - std::rt::lang_start_internal::{{closure}}::h9d93058f2363250f
at src/libstd/rt.rs:48
21: 0x55c44b314403 - std::panicking::try::do_call::h3396b203c650aa3f
at src/libstd/panicking.rs:288
22: 0x55c44b31705a - __rust_maybe_catch_panic
at src/libpanic_unwind/lib.rs:80
23: 0x55c44b314ecd - std::panicking::try::hd95abb921899f84c
at src/libstd/panicking.rs:267
24: 0x55c44b314ecd - std::panic::catch_unwind::h067f8f58c3aff594
at src/libstd/panic.rs:396
25: 0x55c44b314ecd - std::rt::lang_start_internal::hc2ec29100191f803
at src/libstd/rt.rs:47
26: 0x55c44b0f9a42 - main
27: 0x7faeecc09153 - __libc_start_main
28: 0x55c44b0e398e - _start
29: 0x0 - <unknown>
thread panicked while panicking. aborting.
[1] 2243857 illegal hardware instruction (core dumped) rx
System:
ArchLinux on Linux 5.4.0
Intel Corporation UHD Graphics 620 (rev 07)
sway version 1.2
seems like I can't hold down the keyboard keys to scroll across frames. this makes it super tough to nav between frames when fixing mistakes. also a short cut to choose frames as a focus would be nice as when I zoom, it moves to the center axis for some reason?
thread 'main' panicked at 'No adapters found. Please enable the feature for one of the graphics backends: vulkan, metal, dx12, dx11, gl', src/libcore/option.rs:1166:5
"gl"
cargo install --force --git https://github.com/cloudhead/rx --locked --features gl
Package
rx v0.1.0 (https://github.com/cloudhead/rx#465f95f4)` does not have these features: `gl``
I'm seeing a curious corruption issue after resize on latest master (19a5db2
).
Steps to reproduce:
rx
- canvas size will be 128x128x1:f/resize 20 20
Not sure whether the size of 20 has any special meaning. I can consistently reproduce the issue with 20; 33, 48, 64 didn't trigger it; 10, 21, 32 triggered it only some times.
I attached a short screencast. Best viewed at full resolution as the gif is heavily dithered ๐
I'm trying to build a snap of rx, on an Ubuntu 18.04 system. Using rust nightly, it fails to build as below. Any ideas what I can do here?
Compiling rgx v0.1.8
Compiling rx v0.2.0 (/root/parts/rx/build)
error[E0308]: mismatched types
--> src/renderer.rs:242:37
|
242 | Op::Fill(&font.texture, font_img.as_slice()),
| ^^^^^^^^^^^^^^^^^^^ expected struct `rgx::core::Rgba8`, found `u8`
|
= note: expected reference `&[rgx::core::Rgba8]`
found reference `&[u8]`
error[E0308]: mismatched types
--> src/renderer.rs:243:40
|
243 | Op::Fill(&cursors.texture, cursors_img.as_slice()),
| ^^^^^^^^^^^^^^^^^^^^^^ expected struct `rgx::core::Rgba8`, found `u8`
|
= note: expected reference `&[rgx::core::Rgba8]`
found reference `&[u8]`
error[E0308]: mismatched types
--> src/renderer.rs:244:40
|
244 | Op::Fill(&checker.texture, &checker_img),
| ^^^^^^^^^^^^ expected slice, found array `[u8; 16]`
|
= note: expected reference `&[rgx::core::Rgba8]`
found reference `&[u8; 16]`
error[E0308]: mismatched types
--> src/renderer.rs:603:42
|
603 | Op::Clear(&view_data.fb, Rgba::TRANSPARENT),
| ^^^^^^^^^^^^^^^^^ expected struct `rgx::core::Bgra8`, found struct `rgx::core::Rgba`
error[E0308]: mismatched types
--> src/renderer.rs:604:50
|
604 | Op::Clear(&view_data.staging_fb, Rgba::TRANSPARENT),
| ^^^^^^^^^^^^^^^^^ expected struct `rgx::core::Bgra8`, found struct `rgx::core::Rgba`
error[E0061]: this function takes 5 parameters but 6 parameters were supplied
--> src/renderer.rs:605:17
|
605 | / Op::Transfer(
606 | | &view_data.fb,
607 | | pixels.as_slice(),
608 | | sw, // Source width
... |
611 | | th, // Transfer height
612 | | ),
| |_________________^ expected 5 parameters
error[E0308]: mismatched types
--> src/renderer.rs:616:38
|
616 | r.prepare(&[Op::Fill(fb, snapshot.pixels().as_slice())]);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `rgx::core::Bgra8`, found `u8`
|
= note: expected reference `&[rgx::core::Bgra8]`
found reference `&[u8]`
error[E0308]: mismatched types
--> src/renderer.rs:663:42
|
663 | Op::Clear(&view_data.fb, Rgba::TRANSPARENT),
| ^^^^^^^^^^^^^^^^^ expected struct `rgx::core::Bgra8`, found struct `rgx::core::Rgba`
error[E0308]: mismatched types
--> src/renderer.rs:664:50
|
664 | Op::Clear(&view_data.staging_fb, Rgba::TRANSPARENT),
| ^^^^^^^^^^^^^^^^^ expected struct `rgx::core::Bgra8`, found struct `rgx::core::Rgba`
error[E0308]: mismatched types
--> src/renderer.rs:665:41
|
665 | Op::Fill(&view_data.fb, &pixels),
| ^^^^^^^ expected slice, found struct `std::vec::Vec`
|
= note: expected reference `&[rgx::core::Bgra8]`
found reference `&std::vec::Vec<u8>`
error[E0599]: no function or associated item named `empty` found for type `rgx::core::Rect<_>` in the current scope
--> src/session.rs:922:40
|
922 | self.selection = Rect::empty();
| ^^^^^ function or associated item not found in `rgx::core::Rect<_>`
error[E0599]: no function or associated item named `empty` found for type `rgx::core::Rect<_>` in the current scope
--> src/session.rs:1494:48
|
1494 | self.selection = Rect::empty();
| ^^^^^ function or associated item not found in `rgx::core::Rect<_>`
error: aborting due to 12 previous errors
cargo install --git https://github.com/cloudhead/rx --locked
โณ ~ RUST_BACKTRACE=full rx -u -
[2019-11-17T19:15:33Z INFO rx] framebuffer size: 1280x720
[2019-11-17T19:15:33Z INFO rx] hidpi factor: 2.2999980449676514
[2019-11-17T19:15:33Z INFO rx::session] rx v0.2.0
thread 'main' panicked at 'called `Option::unwrap()` on a `None` value', src/libcore/option.rs:378:21
stack backtrace:
0: 0x556f5ce1c524 - backtrace::backtrace::libunwind::trace::hda41dbcdfba36aa0
at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.37/src/backtrace/libunwind.rs:88
1: 0x556f5ce1c524 - backtrace::backtrace::trace_unsynchronized::h1a8d6e1f8cb3f5d4
at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.37/src/backtrace/mod.rs:66
2: 0x556f5ce1c524 - std::sys_common::backtrace::_print_fmt::h610c4127487e10da
at src/libstd/sys_common/backtrace.rs:76
3: 0x556f5ce1c524 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h0722dc552e01bd1d
at src/libstd/sys_common/backtrace.rs:60
4: 0x556f5ce3d21c - core::fmt::write::h01edf6dd68a42c9c
at src/libcore/fmt/mod.rs:1030
5: 0x556f5ce19087 - std::io::Write::write_fmt::hf15985f193f03c04
at src/libstd/io/mod.rs:1412
6: 0x556f5ce1e7d5 - std::sys_common::backtrace::_print::hd8d5d08a1795e743
at src/libstd/sys_common/backtrace.rs:64
7: 0x556f5ce1e7d5 - std::sys_common::backtrace::print::hf89a79e3921a2366
at src/libstd/sys_common/backtrace.rs:49
8: 0x556f5ce1e7d5 - std::panicking::default_hook::{{closure}}::h3a8f42beb3bb8ae3
at src/libstd/panicking.rs:196
9: 0x556f5ce1e4c6 - std::panicking::default_hook::h8f803b0bc31a5c37
at src/libstd/panicking.rs:210
10: 0x556f5ce1ee75 - std::panicking::rust_panic_with_hook::h825f041245da8739
at src/libstd/panicking.rs:473
11: 0x556f5ce1ea12 - std::panicking::continue_panic_fmt::hbe0378e33481e81b
at src/libstd/panicking.rs:380
12: 0x556f5ce1e906 - rust_begin_unwind
at src/libstd/panicking.rs:307
13: 0x556f5ce3931a - core::panicking::panic_fmt::h527855ce0bc891f6
at src/libcore/panicking.rs:85
14: 0x556f5ce39259 - core::panicking::panic::h2f49f09cf859b728
at src/libcore/panicking.rs:49
15: 0x556f5cd5f86f - wgpu_request_adapter
16: 0x556f5cd5a4b7 - wgpu::Adapter::request::hc06a386463c80c30
17: 0x556f5cc265bc - rx::init::h3fab2ab361ffb234
18: 0x556f5cc343e8 - rx::main::ha967765a9e31cdfc
19: 0x556f5cc1d013 - std::rt::lang_start::{{closure}}::hc4ee2151b7bf7afb
20: 0x556f5ce1e8a3 - std::rt::lang_start_internal::{{closure}}::ha04574f12d97cbe2
at src/libstd/rt.rs:49
21: 0x556f5ce1e8a3 - std::panicking::try::do_call::h7c2a8488f72db90c
at src/libstd/panicking.rs:292
22: 0x556f5ce214fa - __rust_maybe_catch_panic
at src/libpanic_unwind/lib.rs:80
23: 0x556f5ce1f36d - std::panicking::try::hc3a9b5da4250385d
at src/libstd/panicking.rs:271
24: 0x556f5ce1f36d - std::panic::catch_unwind::hf27600bf8c37809a
at src/libstd/panic.rs:394
25: 0x556f5ce1f36d - std::rt::lang_start_internal::h409d4f2fe51133b0
at src/libstd/rt.rs:48
26: 0x556f5cc34a22 - main
27: 0x7f637cacab97 - __libc_start_main
28: 0x556f5cc1b2ca - _start
29: 0x0 - <unknown>
I'm running a copy of rx installed with cargo install --git https://github.com/cloudhead/rx --tag v0.4.0
on Kubuntu Linux 16.04 LTS (64-bit) and I observe the following undesirable behaviour.
With the following in .rxrc
in the current directory...
-- Set Cavernas tile size
f/resize 8 8
zoom 8.0
-- Work around the apparent inability to display "actual in-game size" and
-- "preferred editing size" simultaneously
map / :zoom 4.0
map m :zoom 16.0
-- Remap Enter to clone the last frame rather than inserting a blank one
map <return> :f/clone
-- Set Cavernas palette
p/clear
p/add #3e3d4c
p/add #5a5a63
p/add #847f7f
p/add #bcb19f
p/add #21263f
p/add #394071
p/add #4063b2
p/add #efe7ce
p/add #3a5339
p/add #6b7b39
p/add #84ad42
p/add #c0461f
p/add #6c4f40
p/add #a5845a
p/add #cead73
p/add #673347
rx
works as expectedrx player.png
obeys every command in .rxrc
except the zoom 8.0
(whether or not player.png
exists).(Which suggests to me that specifying a file on the command line is causing it do something equivalent to injecting a zoom 1.0
after evaluating .rxrc
.)
following https://rx.cloudhead.io/guide.html
trying to set the grid
:set grid/spacing 4 4
get Error: expected '='
I have tried to use ~
, ..
in paths and rx
is failing to parse those. Also, I suppose it may fail with symlinks also.
Line 218 in 75a11ff
There is canonicalize function that should be able to resolve paths more reliably.
after running cargo install --locked --path .
from inside the rx repo folder,
error: `std::vec::Vec::<T>::new` is not yet stable as a const fn
--> /.cargo/registry/src/github.com-1ecc6299db9ec823/nonempty-0.1.4/src/lib.rs:29:21
|
29 | NonEmpty(e, Vec::new())
| ^^^^^^^^^^
error: aborting due to previous error
error: Could not compile `nonempty`.
warning: build failed, waiting for other jobs to finish...
error: failed to compile `rx v0.3.2 (/rx)`, intermediate artifacts can be found at `/rx/target`
Caused by:
build failed
also the instructions in the readme seem to be more thorough than the instructions on the site
I might have missed it in the help menu, but it would be great to be able to change the background color of the window to something other than black - trying to draw black/dark sprites
rx is already a well-known name ("receive-xmodem") as as such conflicts with the package when installed.
Consider changing the name to something that isn't currently conflicting, such as 'vx' or 'px'
Version: v0.2.0
8b2d7ba
~/.config/rx/init.rx
);rx
.rx
doesn't start with following error message:
rx: unknown tool "sampler"
It seems that problem is that rx
generates invalid init.rx
which contains following line:
map/n <ctrl> :tool sampler {:tool -} -- Sample color (hold)
Removing this line from init.rx
fixes problem.
I am trying to build on FreeBSD, but I am getting this:
Compiling gl v0.14.0
Running `/usr/local/bin/rustc --crate-name build_script_build /wrkdirs/usr/ports/graphics/rx/work/rx-0.3.2/cargo-crates/gl-0.14.0/build.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type bin --emit=dep-info,link -C opt-level=2 -C metadata=20095f3cdbe4bebc -C extra-filename=-20095f3cdbe4bebc --out-dir /wrkdirs/usr/ports/graphics/rx/work/target/release/build/gl-20095f3cdbe4bebc -L dependency=/wrkdirs/usr/ports/graphics/rx/work/target/release/deps --extern gl_generator=/wrkdirs/usr/ports/graphics/rx/work/target/release/deps/libgl_generator-e6d95cc30510f64d.rlib --cap-lints allow -C linker=cc -C link-arg=-L/usr/local/lib -C link-arg=-fstack-protector-strong`
error: failed to run custom build command for `glfw-sys v3.3.0`
There is no explanation what went wrong in the log.
Release: Master (commit 74fac87)
Platform: Fedora Linux + Wayland
Bug: Cannot open existing files
I can open new files just fine but when I try to open an existing .png
file rx
pops open a window and then crashes.
$ RUST_BACKTRACE=full cargo run -- -v foo.png
Finished dev [unoptimized + debuginfo] target(s) in 0.04s
Running `target/debug/rx -v foo.png`
2020-01-11 09:21:46,841 DEBUG [rx] options: Options { width: 1280, height: 720, resizable: true, headless: false, source: None, exec: Normal, debug: false }
2020-01-11 09:21:46,871 INFO [rx] framebuffer size: 1281x720
2020-01-11 09:21:46,872 INFO [rx] scale factor: 1.001165747642517
2020-01-11 09:21:46,874 DEBUG [rx::session] state: Initializing -> Running
[... snip ...]
2020-01-11 09:21:46,878 DEBUG [rx::session] source: /home/pop/Projects/src/github.com/cloudhead/rx/.rxrc
2020-01-11 09:21:46,878 DEBUG [rx::session] rx v0.3.1
2020-01-11 09:21:46,898 DEBUG [rx::session] load: "foo.png"
2020-01-11 09:21:46,917 INFO [rx::session] "foo.png" 16384 pixels read
thread 'main' panicked at 'view #1 must exist and have an associated snapshot', src/libcore/option.rs:1188:5
stack backtrace:
0: backtrace::backtrace::libunwind::trace
at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.40/src/backtrace/libunwind.rs:88
[... snip ...]
12: core::panicking::panic_fmt
at src/libcore/panicking.rs:84
13: core::option::expect_failed
at src/libcore/option.rs:1188
14: core::option::Option<T>::expect
at /rustc/3a3f4a7cbaff09722b8c7cc8f09ce86ff5f953a3/src/libcore/option.rs:348
15: rx::resources::Resources::get_snapshot
at src/resources.rs:105
16: rx::gfx::Renderer::handle_effects
at src/gl/mod.rs:809
17: <rx::gfx::Renderer as rx::renderer::Renderer>::init
at src/gl/mod.rs:382
18: rx::init
at ./src/lib.rs:193
19: rx::execute
at src/main.rs:126
20: rx::main
at src/main.rs:36
21: std::rt::lang_start::{{closure}}
at /rustc/3a3f4a7cbaff09722b8c7cc8f09ce86ff5f953a3/src/libstd/rt.rs:67
[... snip ...]
I'm digging into this but I'm not making much progress. I'll gladly try to fix it if you give me some hints on where the solution might go ๐
Related to #18
Windows 10, compiled with 1.38 stable. (--vulkan
feature flag)
rx does not go into command mode when writing :
using a Swedish/Nordic keyboard layout (Shift + Period) and instead zooms in one level.
It seems to recieve a colon in the RecievedCharacter
event, but the KeyboardInput
contains a period.
Logs:
[2019-09-30T13:57:01Z DEBUG rx] event: KeyboardInput(KeyboardInput { state: Pressed, key: Some(Shift), modifiers: ModifiersState { shift: true, ctrl: false, alt: false, meta: false } })
[2019-09-30T13:57:01Z DEBUG rx::session] KeyboardInput { state: Pressed, key: Some(Shift), modifiers: ModifiersState { shift: true, ctrl: false, alt: false, meta: false } }
[2019-09-30T13:57:01Z DEBUG rx::session] command: BrushSet(Multi)
[2019-09-30T13:57:02Z DEBUG rx] event: KeyboardInput(KeyboardInput { state: Pressed, key: Some(Period), modifiers: ModifiersState { shift: true, ctrl: false, alt: false, meta: false } })
[2019-09-30T13:57:02Z DEBUG rx] event: ReceivedCharacter(':')
[2019-09-30T13:57:02Z DEBUG rx::session] KeyboardInput { state: Pressed, key: Some(Period), modifiers: ModifiersState { shift: true, ctrl: false, alt: false, meta: false } }
[2019-09-30T13:57:02Z DEBUG rx::session] command: Zoom(Incr)
[2019-09-30T13:57:02Z DEBUG rx::session] zoom: 1 -> 2
[2019-09-30T13:57:02Z DEBUG rx] event: KeyboardInput(KeyboardInput { state: Released, key: Some(Period), modifiers: ModifiersState { shift: true, ctrl: false, alt: false, meta: false } })
[2019-09-30T13:57:02Z DEBUG rx::session] KeyboardInput { state: Released, key: Some(Period), modifiers: ModifiersState { shift: true, ctrl: false, alt: false, meta: false } }
[2019-09-30T13:57:02Z DEBUG rx] event: KeyboardInput(KeyboardInput { state: Released, key: Some(Shift), modifiers: ModifiersState { shift: false, ctrl: false, alt: false, meta: false } })
[2019-09-30T13:57:02Z DEBUG rx::session] KeyboardInput { state: Released, key: Some(Shift), modifiers: ModifiersState { shift: false, ctrl: false, alt: false, meta: false } }
[2019-09-30T13:57:02Z DEBUG rx::session] command: BrushUnset(Multi)
Under some conditions (apparently only when entering command line mode) release bindings for modifier keys (ctrl, shift) are not run. This results in the sampler tool remaining active or the brush remaining stuck in multi-mode (which could lead to damage or wasted work when the view is zoomed in on a single frame).
To reproduce (combinations given for my qwerty it layout):
<shift>+.
); exit the command line, multibrush will be active. Press and release <shift>
to deactivate.<ctrl>
pressed (<ctrl>+<shift>+.
); exit the command line, sampler tool will be active. Press b
to bring back the brush. Pressing and releasing <ctrl>
won't help because sampler/off
reverts to the previous tool which right now is the sampler itself.Getting
[2019-10-01T07:18:41Z WARN rx::platform::backend] glfw: content scale isn't uniform: 1.0426929 x 1.044408
thread 'main' panicked at 'Unable to load Vulkan entry points: LibraryLoadError("libvulkan.so.1: cannot open shared object file: No such file or directory")', src/libcore/result.rs:999:5
error[E0658]: use of unstable library feature 'refcell_map_split' (see issue #51476)
--> /Users/vanush/.cargo/registry/src/github.com-1ecc6299db9ec823/zerocopy-0.2.8/src/lib.rs:1056:9
|
1056 | Ref::map_split(self, |slice| <[u8]>::split_at(slice, mid))
| ^^^^^^^^^^^^^^
error[E0658]: use of unstable library feature 'refcell_map_split' (see issue #51476)
--> /Users/vanush/.cargo/registry/src/github.com-1ecc6299db9ec823/zerocopy-0.2.8/src/lib.rs:1064:9
|
1064 | RefMut::map_split(self, |slice| <[u8]>::split_at_mut(slice, mid))
| ^^^^^^^^^^^^^^^^^
error: aborting due to 2 previous errors
For more information about this error, try `rustc --explain E0658`.
error: Could not compile `zerocopy`.
warning: build failed, waiting for other jobs to finish...
error: failed to compile `rx v0.2.0 (https://github.com/cloudhead/rx?tag=v0.2.0#a296ebf4)`, intermediate artifacts can be found at `/var/folders/tk/l2138q8x2yb6qxf0b3fvgbzm0000gn/T/cargo-installp0AR53`
parser.rs
: the parser should be property tested with something like quickcheck
cmd.rs
: CommandLine
should be tested with ascii and utf8resources.rs
: Gif export should be testedsession.rs
: inputs (mouse, keyboard) should be fuzz-tested to ensure nothing can crash the program.session.rs
: selection/*
commands should be tested in headless modesession.rs
: all commands that take user input should be tested with unexpected inputs to ensure there is no division by zero for examplelib.rs
: rx's entry point should be tested with different inputs[modified]
flag on itWhen loading config options from ~/.config/rx/init.rx I'm getting the following errors:
[2020-01-04T23:46:09Z DEBUG rx::session] source: /home/pop/.config/rx/init.rx
[2020-01-04T23:46:09Z DEBUG rx::session] command: Set("checker", Bool(true))
[2020-01-04T23:46:09Z DEBUG rx::session] set `checker`: off -> on
[2020-01-04T23:46:09Z DEBUG rx::session] command: Set("grid/spacing", U32Tuple(4, 4))
[2020-01-04T23:46:09Z DEBUG rx::session] set `grid/spacing`: 8,8 -> 4,4
[2020-01-04T23:46:09Z DEBUG rx::session] command: ResizeFrame(64, 64)
thread 'main' panicked at 'fatal: no active view', src/session.rs:1293:9
Not every setting triggers this crash, but these do:
Seems like any command that calls self.active_view_mut()
triggers the crash. Maybe the active view needs to be initialized before config files are loaded?
Without those config options set rx
starts and runs well.
I'd love to contribute to the project. If I could get some direction on what changes should be made and where to make them I'd be more than happy to put together a pull request.
System details:
Let me know if you need more system deets.
This isn't a bug in the rx
program itself, but I found an issue with the website and am not sure where to report it. On the website, clicking the link for the edg32 palette results in an access denied message.
Vulkan is setup and working on the system.
Arch Linux
https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=rx-git
vulkan-intel 19.2.2-1
vulkan-headers 1:1.1.126-1
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
-> Updating rx git repo...
Fetching origin
==> Validating source files with sha512sums...
rx ... Skipped
==> Removing existing $srcdir/ directory...
==> Extracting sources...
-> Creating working copy of rx git repo...
Cloning into 'rx'...
done.
==> Starting pkgver()...
==> Updated version: rx-git 0.2.0+r108+ga2446d0-1
==> Sources are ready.
==> Making package: rx-git 0.2.0+r108+ga2446d0-1 (Mon 04 Nov 2019 06:04:59 PM EST)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> WARNING: Using existing $srcdir/ tree
==> Starting pkgver()...
==> Removing existing $pkgdir/ directory...
==> Starting build()...
error: Package `rx v0.2.0 (/home/parker/.cache/yay/rx-git/src/rx)` does not have these features: `vulkan`
==> ERROR: A failure occurred in build().
Aborting...
Error making: rx-git
The cargo install documentation is missing the following packages for debian/ubuntu systems:
I needed to install the latter two to compile the x11 dependencies in addition to the others in the docs, and I'm guessing you need the first.
I installed rx with --features vulkan
. After start, I get:
[2019-10-01T17:19:38Z WARN rx::platform::backend] glfw: content scale isn't uniform: 0.7791411 x 0.7807377
The only thing I see is a black screen that I can't interact with (the -vv log is on pastebin).
I tried to interact with Rx nonetheless, following ReadMe instructions in hope that I'll be able to save a file to test if it works, but I get OutOfMemory before I get chance to do :w test.png
.
I use i3, dual GPU intel/nvidia. Installed vulkan packages are
vulkan-icd-loader 1.1.121-1
vulkan-mesa-layer 19.1.7-1
Do you have any idea how to work around this?
When going fullscreen on macOS moving the cursor becomes super slow. Weirdly this issue doesn't happen while screen recording is happening via QuickTime : D
The package was built via:
rx ยป cargo install --git https://github.com/cloudhead/rx --tag v0.2.0 --locked --features metal
Updating git repository `https://github.com/cloudhead/rx`
Installing rx v0.2.0 (https://github.com/cloudhead/rx?tag=v0.2.0#a296ebf4)
Updating git repository `https://github.com/cloudhead/rendy`
Updating crates.io index
Downloaded directories v2.0.2
Downloaded png v0.15.0
Downloaded raw-window-handle v0.1.2
Downloaded gif v0.10.2
Downloaded deflate v0.7.20
Downloaded dirs-sys v0.3.4
Downloaded rgx v0.1.5
Downloaded inflate v0.4.5
Downloaded glfw v0.32.0
Downloaded color_quant v1.0.1
Downloaded snap v0.2.5
Downloaded lzw v0.10.0
Downloaded adler32 v1.0.3
Downloaded objc v0.2.6
Downloaded glfw-sys v3.3.0
Downloaded wgpu v0.3.0
Downloaded malloc_buf v0.0.6
Downloaded objc_exception v0.1.1
Downloaded zerocopy v0.2.8
Downloaded wgpu-native v0.3.3
Downloaded gcc v0.3.55
Downloaded cmake v0.1.41
Downloaded gfx-backend-empty v0.3.0
Downloaded gfx-backend-metal v0.3.0
Downloaded gfx-hal v0.3.0
Downloaded rendy-descriptor v0.4.0
Downloaded hibitset v0.6.2
Downloaded backtrace v0.3.34
Downloaded colorful v0.2.1
Downloaded derivative v1.0.2
Downloaded relevant v0.4.2
Downloaded zerocopy-derive v0.1.4
Downloaded fxhash v0.2.1
Downloaded cc v1.0.40
Downloaded foreign-types v0.3.2
Downloaded block v0.1.6
Downloaded cocoa v0.18.4
Downloaded range-alloc v0.1.0
Downloaded storage-map v0.2.0
Downloaded foreign-types-shared v0.1.1
Downloaded core-graphics v0.17.3
Downloaded metal v0.15.0
Downloaded objc-foundation v0.1.1
Downloaded atom v0.3.5
Downloaded spirv_cross v0.15.0
Downloaded objc_id v0.1.1
Compiling proc-macro2 v0.4.30
Compiling libc v0.2.62
Compiling unicode-xid v0.1.0
Compiling gcc v0.3.55
Compiling syn v0.15.44
Compiling cc v1.0.40
Compiling semver-parser v0.7.0
Compiling core-foundation-sys v0.6.2
Compiling bitflags v1.1.0
Compiling foreign-types-shared v0.1.1
Compiling byteorder v1.3.2
Compiling failure_derive v0.1.5
Compiling rustc-demangle v0.1.16
Compiling cfg-if v0.1.9
Compiling log v0.4.8
Compiling memchr v2.2.1
Compiling block v0.1.6
Compiling arrayvec v0.4.11
Compiling smallvec v0.6.10
Compiling scopeguard v1.0.0
Compiling atom v0.3.5
Compiling nodrop v0.1.13
Compiling gfx-backend-metal v0.3.0
Compiling copyless v0.1.4
Compiling colorful v0.2.1
Compiling range-alloc v0.1.0
Compiling slab v0.4.2
Compiling autocfg v0.1.5
Compiling lazy_static v1.3.0
Compiling crc32fast v1.2.0
Compiling regex-syntax v0.6.11
Compiling quick-error v1.2.2
Compiling vec_map v0.8.1
Compiling adler32 v1.0.3
Compiling unicode-width v0.1.5
Compiling termcolor v1.0.5
Compiling color_quant v1.0.1
Compiling lzw v0.10.0
Compiling semver v0.9.0
Compiling foreign-types v0.3.2
Compiling cmake v0.1.41
Compiling lock_api v0.3.1
Compiling hibitset v0.6.2
Compiling thread_local v0.3.6
Compiling humantime v1.2.0
Compiling inflate v0.4.5
Compiling textwrap v0.11.0
Compiling gif v0.10.2
Compiling rustc_version v0.2.3
Compiling num-traits v0.2.8
Compiling storage-map v0.2.0
Compiling objc_exception v0.1.1
Compiling parking_lot_core v0.6.2
Compiling parking_lot v0.9.0
Compiling clap v2.33.0
Compiling malloc_buf v0.0.6
Compiling core-foundation v0.6.4
Compiling raw-window-handle v0.1.2
Compiling atty v0.2.13
Compiling dirs-sys v0.3.4
Compiling quote v0.6.13
Compiling fxhash v0.2.1
Compiling deflate v0.7.20
Compiling snap v0.2.5
Compiling aho-corasick v0.7.6
Compiling directories v2.0.2
Compiling core-graphics v0.17.3
Compiling backtrace-sys v0.1.31
Compiling spirv_cross v0.15.0
Compiling glfw-sys v3.3.0
Compiling png v0.15.0
Compiling regex v1.2.1
Compiling objc v0.2.6
Compiling objc_id v0.1.1
Compiling cocoa v0.18.4
Compiling env_logger v0.6.2
Compiling objc-foundation v0.1.1
Compiling synstructure v0.10.2
Compiling backtrace v0.3.34
Compiling metal v0.15.0
Compiling relevant v0.4.2
Compiling glfw v0.32.0
Compiling derivative v1.0.2
Compiling zerocopy-derive v0.1.4
Compiling failure v0.1.5
Compiling gfx-hal v0.3.0
Compiling zerocopy v0.2.8
Compiling rendy-memory v0.4.0 (https://github.com/cloudhead/rendy#e08b64fb)
Compiling rendy-descriptor v0.4.0
Compiling gfx-backend-empty v0.3.0
Compiling wgpu-native v0.3.3
Compiling wgpu v0.3.0
Compiling rgx v0.1.5
Compiling rx v0.2.0 (https://github.com/cloudhead/rx?tag=v0.2.0#a296ebf4)
Finished release [optimized] target(s) in 3m 14s
Installing /Users/rudolfs/.cargo/bin/rx
Installed package `rx v0.2.0 (https://github.com/cloudhead/rx?tag=v0.2.0#a296ebf4)` (executable `rx`)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.