Skip to content

ImGui support #35

@OfficialIncubo

Description

@OfficialIncubo

Hey! It would be cool if the Dear ImGui is useful for controlling presets/sprites, browsing presets, editing/saving presets, controlling media players, tweaking this visualizer with settings and much more. This GUI would be ease of use and it truly deserves to be ported in.

@kblaschke told me to use Dear ImGui instead of (maybe) keyboard only GUI navigation.

In theory, you could use Dear ImGui in BeatDrop as well, it also supports DX9 rendering.

(message referenced from here)
I think it should be hard or medium to create GUIs/integrating in.

I'll share the repo for reference: https://github.com/ocornut/imgui

Roadmap:

⬜ Main integrations (0/3 finished)

  • Integrating ImGui
  • Making ImGui perfectly working with BeatDrop (sending/sync settings to visualizer)
  • Pressing G or clicking the renderer to show GUI

⬜ Preset editor (0/4 finished)

⚪ Motion

  • Zoom amount
  • Zoom exponent
  • Warp amount
  • Warp scale
  • Warp speed
  • Rotation amount
  • Rotation center of X
  • Rotation center of Y
  • Translation (X)
  • Translation (Y)
  • Scaling (X)
  • Scaling (Y)

⚪ Drawing
• Custom Shapes

  • Getting the number of custom shapes
  • Enabled
  • Number of instances
  • Number of sides
  • Draw thick
  • Additive drawing
  • X position
  • Y position
  • Radius
  • Angle
  • Textured
  • Texture zoom
  • Texture angle
  • Inner colors
  • Inner opacity
  • Outer colors
  • Outer opacity
  • Border colors
  • Border opacity
  • File export/import
  • Initialization Code Editor
  • Per-Frame/Per-Instance Code Editor

• Custom Waves

  • Getting the number of custom waves
  • Enabled
  • Number of samples
  • L/R separation
  • Scaling
  • Smoothing
  • Colors
  • Opacity
  • Use spectrum
  • Use dots
  • Draw thick
  • Additive drawing
  • File export/import
  • Initialization Code Editor
  • Per-Frame Code Editor
  • Per-Point Code Editor

• Simple Waveform

  • Wave Type (also getting the number of waveform modes)
  • Wave Size
  • Wave Smoothing
  • Mystery Parameter
  • Wave Positions
  • Wave Colors
  • Wave Opacity
  • Use Dots
  • Draw Thick
  • Modulate opacity by Volume
  • Modulation: Transparent Volume
  • Modulation: Opaque Volume
  • Additive Drawing
  • Color Brightening

• Borders & Motion Vectors

  • Outer Border Thickness
  • Outer Border Colors
  • Outer Border opacity
  • Inner Border Thickness
  • Inner Border Colors
  • Inner Border Opacity
  • Motion Vector Opacity
  • Number of Motion Vectors (X/Y)
  • Motion Vector Offset (X/Y)
  • Motion Vector Trail Length
  • Motion Vector Colors

• Post-processing and miscellaneous

  • Non-Pixel Shader

  • Sustain Level

  • Darken Center

  • Gamma Adjustment

  • Hue Shader

  • Video Echo Alpha

  • Video Echo Zoom

  • Video Echo Orientation

  • Texture Wrap

  • Invert Filter

  • Brighten Filter

  • Darken Filter

  • Solarize Filter

  • Pixel-Shader

  • Darken Center

  • Blur1: Edge Darken Amount, Min Color and Max Color Value

  • Blur2: Edge Darken Amount, Min Color and Max Color Value

  • Blur3: Edge Darken Amount, Min Color and Max Color Value

⚪ Preset Code Editor (0/4 finished)

  • Initialization Code Editor
  • Per-Frame Code Editor
  • Per-Vertex Code Editor
  • Warp/Comp Shader Editor (if it's a Pixel Shader Preset)
  • Syntax Highlighting
  • Variable Tooltips

⚪ Miscellanous (0/6 finished)

  • Preset Version
  • Warp/Comp Shader Version Slider or Text Input (up to 4)
  • Auto-Compile Preset when edited
  • Preset Mash-up (if possible)
  • Preset Saving
  • Preset Browser
  • Sync variables and code depending on a preset.
  • Code Error Checking/Handling

⬜ Controls (0/6 finished)

  • Next/Previous Preset (soft or hard cut)
  • Lock/Unlock Preset
  • Media Player Controls
  • Track Rewind/Fast Forward
  • Warp/Comp Shader Lock
  • Warp/Comp Shader Randomization
  • Mini-Mashup

⬜ Settings (0/8 finished)

⚪ Main (non-real-time changing settings) (0/16 finished)

  • Show "Press F1 for help" message
  • Fix Slow Text
  • VJ Mode
  • Save CPU
  • Turn on/off ratings
  • 16-bit Gamma
  • Auto Gamma
  • Lock preset at startup
  • Warnings Disabled
  • Canvas Stretch
  • Texture size
  • Texture bits per Channel
  • Mesh Size
  • Maximum Pixel Shader Version
  • Maximum Images
  • Maximum Bytes

⚪ Informations (0/5 finished)

  • Show/Hide preset name info
  • Show/Hide frames per second info
  • Show/Hide rating info
  • Show/Hide song name info
  • Show/Hide per-frame monitor

⚪ Transitions (0/6 finished)

  • Time between auto preset changes
  • Additional random time
  • Auto preset blend time
  • User-solicited preset blend time
  • Average time between hard cuts
  • Loudness threshold

⚪ Song Information (0/2 finished)

  • Enable/Disable Song Information
  • Song Title Animation Duration

⚪ Font Customization (0/5 finished)

  • Font Face
  • Bold
  • Italic
  • Size
  • Anti-Aliasing

⚪ Beat Detection Settings (0/6 finished)

  • Bass Start
  • Bass End
  • Middle Start
  • Middle End
  • Treble Start
  • Treble End

⚪ Additional Settings (0/7 finished)

  • Enable/Disable Startup Preset & Startup Preset Path
  • Enable/Disable Shader Caching
  • Enable/Disable Shader Precaching (with "edit precache.txt file" button)
  • Auto-Lock Preset When Silent
  • Check DirectX 9 at Startup
  • Screen-Dependent Render Mode
  • Time variable reset delay

⚪ Real-Time Settings (0/12 finished)

  • Enable/Disable Spout Output
  • Auto/Manual Beat Sensetivity Mode
  • Beat Sensetivity Slider
  • Instant Reset Time Variable
  • Full-Screen Mode
  • Monitor Stretch Mode
  • Borderless Mode
  • Always On Top
  • Window Opacity
  • Transparency Mode
  • Random/Sequential Preset Order
  • FPS Toggle

⬜ Sprites (not planned)

(more to come, I think)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions