TODO - HoneyHazard/PixelMatchSwitcher GitHub Wiki

0.35

  • SceneSwitcher 0.17.5
  • StreamFX 0.11.1
  • obs-move-transition 2.5.8
  • obs-websocket 4.9.1
  • Spectralizer 1.3.4
  • obs-shadefilter 1.21

0.35 release followup

  • test flatpak
  • sceneswitcher with opencv? win64 portable move
  • background removal -> build instructions
  • update wiki
  • entries with missing images should show in red
  • mingw, libvlc, pkgconfig
  • sceneswitcher: opencv stuff

NOW

  • RELEASES
    • OpenCV sources?
  • PROGRESSIONS!
    • fix advance
    • sequence basic UI
  • mention all the bundled plugins and developers in an About box and README
    • modify OBS's About?
  • new icon

ISSUES

  • source activation lag
  • OSX does not support GLSL 4.60

PROGRESSIONS AND SPEEDRUNNING

list integration choice

  • integrated with the regular match list?
    • match config still collapsible when unavailable
    • fix stylesheet state
    • ensure only available sequences are shown
    • solve sort or dont sort, up/down -> swap
    • match index relation to time record may be messy when entries are moved
  • separate match list?
    • more work to load/save, probably more UI structure
    • "multi-multi-multi-match config..."
    • cleaner time records
    • maybe cleaner ui experience
  • sequence structs
    • maybe sort sequences?
    • connect sequence with lss?
    • DONE progression flag? requires previous and activates next
    • add action: enable next segment; specific id
    • sequence done reaction? probably not
  • entries UI
    • show time :)
    • probably add column control
    • filter?
    • visual indicator of progression and probably smarter style or delegates
  • sequences UI and structs
    • load/save structs
    • pause/resume/reset, register hotkeys
    • import split lss
    • "filter" regular vs prog vs all or more elaborate filter?
    • cleanup display style so progression display does not have to be a mess
  • research popular speedrunning games
  • imagined demo: live split one
    • live split one https://github.com/CryZe/obs-livesplit-one
      • what can be fetched from live split one?
    • import .lss into live split one and PM
      • in PM will set up entries and match->next actions
      • try to fetch hotkey from live split one or manual
  • imagined advanced import: hotkey -> live split (platform-dependent)
  • cleanup
    • !notInSequence

High priority bugs

  • mac version broken?
  • download/import can result in a crash?
  • images may get deleted despite prompt?

Improve reactions

  • verify/debug match/unmatch details

    • check transitions logic: default vs customized
    • check item visibility transitions
  • update user guide

  • optimize updating target choices

  • UI: match list

    • smarter elide
    • single click expands respective reaction
    • prefix for frontend and hotkeys for consistency
  • UI: reactions

    • refactor actions UI
    • optimize detecting scene changes
    • item delegate for widgets and labels??
    • hotkey details display is funky
    • menu: make adding easy through submenu?
    • menu: make it easy to add match/unmatch pairs
    • cleanup time format help?
    • action radio button
    • consider key info hash table or something in action UI
  • cleanup

    • execIndependentActions too monolithic
    • class structure for actions?
  • advanced

    • script

Rare bugs and concerns

  • srgb stuff not fully understood
  • change scene collection -> dialog may shut down without save (cannot reproduce)
  • tabs are still pain in the butt
  • UAV does not work on Intel HD 4400 + Nvidia 720M; should there be a fallback??
  • "dragging" entries gets whacky

Extra features

  • easy installer mod to select install name?
  • delayed action
  • advanced matching conditions
    • and, or
    • if?
  • scene import integration??
  • toggle scanning for specific types of elements: scenes vs filters vs scene items
  • more capture interaction
    • external editor button
    • interactive match image editor
      • eraser tool
      • zoom in, out
  • debug OSD
  • "API" interface
    • "setting/property + callback" vs swig vs hotkey
    • progression mode on/off
    • set progression index
    • enable entry on/off
    • select active preset
    • enable matching and switching on/off
    • text source (!research!)

Match anywhere in the frame?

  • how?
    • systematic/lexicographical searching
    • gradient searching
    • random searching
    • simulated anneling searching
  • anchor scene item:
  • obs_sceneitem_set_pos
  • 9 anchor points

Preset Retriever Optimizations

  • relative image filenames
  • nested xml downloads?
  • how to check if image is used by a preset in different scene collection?

UI vanity tasks:

  • indicator in the list when disabled, image missing, target action broken
  • rounded frame corners for spoiler widgets
  • grey out expand icon in spoiler widget
  • dont show image delete dialog when files are absent
  • show activated targets in bold?
  • make sure cooldown and linger styles dont screw each other over
  • save dialog position and size?
  • is there an elegant fix for widget focus issues?
  • transition choices can be updated without restarting UI
  • preset selector
    • order alphabetically?
    • advanced table view with more details?

Documentation

User manual

  • update with all the match and unmatch actions
  • update with cooldown
  • elaborate use of move value filter
  • walkthrough: filter alternative option to concealment scene
  • break down into smaller, embeddable documents?

Build instructions

  • shared pre-requisite pages
  • windows build:
    • windows in-tree
    • SDK version upped

Developer Documentation

  • update atomic effects wiki with conditional shader version switching
  • signal/slot diagrams in Pixel Match Switcher

Cleanup

Runtime warnings

  • Dialog geometry warning in output
  • Cannot use mipmaps with a non-power-of-two texture. Disabling mipmaps for this texture.

Linux issues and cleanup

  • 1 memory leak under normal operation
  • all kinds of warnings
  • debian 10: build with more features

Optimization:

  • use strings instead of integers for enums
  • use one atomic counter buffer instead of multiple for OpenGL implementation?
  • don't reload match images everytime display state changes
  • move up/down is slow (related to above)
  • possible to optimize filter attachment to be event-driven; without timer scans?
  • better mapping of retrieved images

Formatting and boilerplate:

  • copyright notices in header and source files of the plugin
  • attributions for every icon and every image!
  • less locking when in slot handlers of the same class, same thread
  • WET code in some buttons init
  • better grouping of members in header and source files
  • Formatting