Commit Graph

327 Commits

Author SHA1 Message Date
PS 2769640adf updated the build system to get it to work out of the box on more systems 2021-01-16 23:01:08 -08:00
PS 99c62292a4 fixed error causing crashes when you exit the file viewer without selecting a file. Issue was when we tried to check if a string that had no data pointer was null terminated 2021-01-16 19:45:13 -08:00
PS 3c1110adfd Layout push/pop pairing is now checked for and asserted on 2021-01-16 18:55:31 -08:00
PS 35a3793015 more debug functionality. 2021-01-16 16:37:56 -08:00
PS 4798002dfc debug and profiler improvements. implemented sending data to multiple destinations on a per strip basis, rather than a full sculpture basis. new patterns. Added user data to patterns. 2021-01-16 14:02:25 -08:00
PS 914523cb60 Cleaned up system start up, update, and cleanup 2021-01-11 00:02:42 -08:00
PS 71547b05dc Interface fixes. Fixed the problem with strip LUT tables where substrips were stamping over previous substrips. Some pattern building too. 2021-01-10 16:25:35 -08:00
PS 8d923a5e3c Fixed problem with bounds checking on parent widgets, when they weren't expanding to fit children until they themselves were committed 2020-11-15 20:03:35 -08:00
PS 0b6b3c6367 Got the hierarchy window rendering again. 2020-11-15 17:40:51 -08:00
PS e6f34d17ad fixed problem with adjusting panel borders after they've been created 2020-11-15 17:33:55 -08:00
PS aac3ce5f00 removed extraneous files, and fixed an error introduced in the merge 2020-11-15 17:23:17 -08:00
PS 70971cc196 Merge branch 'ui_widget_overhaul' into dev 2020-11-15 17:17:53 -08:00
PS 6e24051982 Added a mouse hover layout and used it in the profiler 2020-11-15 17:07:59 -08:00
PS 8d737fd961 made the profiler list view a ui list 2020-11-15 16:58:13 -08:00
PS 91b2b822f9 did a few more tweaks to teh list 2020-11-15 16:36:11 -08:00
PS 118b734d6c Implemented a list view, which included upgrading rendering strings to accept clipping masks 2020-11-15 16:29:13 -08:00
PS 296472a588 Implemented variable sized row specifications 2020-11-15 14:48:04 -08:00
PS 50b6980bec ui_DrawString -> ui_Label 2020-11-14 23:44:06 -08:00
PS 1db26150ba implemented overlay layouts 2020-11-14 23:38:56 -08:00
PS e5ab90fcb1 Did some styling updates to the ui, added a range slider and a toggle 2020-11-14 23:30:24 -08:00
PS 31ee768032 Editing patterns 2020-11-14 22:08:13 -08:00
PS 30123e47a2 fixed some problems with ui retained states 2020-11-14 17:18:38 -08:00
PS e51188398d cleaned up unneeded fields in animation_frame 2020-11-14 13:48:17 -08:00
PS 5e6ac25490 on frames with overlapping blocks, the blocks are blended together 2020-11-14 13:41:27 -08:00
PS a6c8d0c955 refactored layer blending 2020-11-14 12:47:51 -08:00
PS 708ac91afe pulled animation update and render functions out of foldhaus_app.cpp 2020-11-14 12:19:36 -08:00
PS a52d8645e6 refactored clips -> patterns 2020-11-14 11:43:20 -08:00
PS 82ed9d84ac Got to connect to Ryan's code 2020-11-08 21:05:14 -08:00
PS fa1d5a5afc began turning ui_layout into ui_widgets that just have children. Currently, layout works, but the id system needs some thinking. 2020-11-08 19:42:14 -08:00
PS a42d2e81c5 Cleaned up panel event handling 2020-11-07 23:50:41 -08:00
PS f53becef5b Hot panel is passed to input event handlers 2020-11-07 23:43:41 -08:00
PS 6193af2555 Pulled animation timeline state out of the app struct 2020-11-07 23:21:37 -08:00
PS e9945df6ca Moved camera state into the state for each sculpture view 2020-11-07 23:15:39 -08:00
PS d5be2a2de8 Pretty big ui overhaul. 2020-11-07 22:54:59 -08:00
PS 723458c491 fixed some issues with the panel system, and began rearraning the animation timeline window 2020-11-03 12:49:16 -08:00
PS 57f144ea64 refactored panel sytstem 2020-10-24 18:54:47 -07:00
PS a88d675327 removed gs_list and gs_bucket from the app 2020-10-24 13:50:34 -07:00
PS 85f7aab621 Animation loading 2020-10-24 13:28:10 -07:00
PS 5c183d9c5f implemented switching to a file browser, used it in the animation window and in the assembly hierarchy, and moved everything over to a linear array of animation blocks 2020-10-18 15:31:53 -07:00
PS 8eb3044422 implemented an animation handle system for identifying animation blocks 2020-10-18 13:57:04 -07:00
PS 121e9efa93 Fixed animations so they are no longer updating when the current frame is not in range 2020-10-17 13:12:40 -07:00
PS 85b99b17a2 basically removed the need for the meta system from the codebase, and implemented pushing new panel types on a LIFO queue with return memory destinations 2020-10-17 12:43:05 -07:00
PS bfd50c9129 implemented segmented led strips 2020-10-11 20:54:38 -07:00
PS 0ba59d3767 added error reporting to the parser 2020-10-10 17:46:50 -07:00
PS 43d3426a58 renamed assembly_parser -> foldhaus_assembly_parser for consistency 2020-10-10 17:23:39 -07:00
PS e4266ba1ef assembly_parser now uses the standard parser 2020-10-10 17:22:31 -07:00
PS 55284cde25 Created serial_monitor, and debugged uart functionality. It is now working 2020-10-10 16:52:00 -07:00
PS 1940483620 Wrote a file serializer and parser for animations 2020-10-10 00:10:51 -07:00
PS b816474dd5 Successfully transitioned to discrete animations 2020-10-09 22:08:51 -07:00
PS ecca6c691a Speeding up COM writing 2020-10-05 13:17:33 -07:00
PS 83ed23280a Cleaned up network interface, separated SACN out from the actual sending of data, implemented sending over COM ports (remains to be tested), and added information specifying data output modes for com ports to the assembly file format 2020-10-03 08:46:14 -07:00
PS 0022efea8e Naming convention updates, separated out the work queue into its own file 2020-10-01 15:41:32 -07:00
PS 78d44b9348 Created addressed_data_buffer as a universal way for systems to send data over various output devices. Cleaned up old SACN code, removed dmx as its not needed in its own right anymore. 2020-10-01 15:30:24 -07:00
Peter Slattery 01a20f41e7 File lister now displays current directory at top, and omits it from file names 2020-09-07 14:35:58 -07:00
Peter Slattery 3a732f95b8 File lister now handles . in directory names 2020-09-07 14:29:32 -07:00
Peter Slattery 6491a88d8a File lister now handles .. in directory names 2020-09-07 14:28:41 -07:00
Peter Slattery 15a2cb080e Basic file lister functionality. Extended Win32EnumerateDirectory; it now includes folders if proper flags are set. 2020-09-07 13:42:00 -07:00
Peter Slattery d08de9b99f Stopped freeing assembly file memory after load since its in the transient buffer anyways. 2020-09-07 12:47:12 -07:00
Peter Slattery c7522bfa4b Added a default tag to every strip specifying which assembly it is a part of 2020-09-07 12:37:32 -07:00
Peter Slattery cc41442923 added assembly_center field to assembly files and used it to place assemblies at construction time 2020-09-07 11:12:58 -07:00
Peter Slattery 44486acca4 did a bunch of animation timeline todos - just simplifying function call signatures 2020-09-06 21:42:21 -07:00
Peter Slattery 736b7ab85e Prevented array index out of bounds error when accessing animation procs form the GlobalAnimationClips array 2020-09-06 21:18:49 -07:00
Peter Slattery 337b4ac271 Implemented tag based filtering of led strips 2020-09-06 21:10:36 -07:00
Peter Slattery 1db836890f Cleaned up world -> panel space conversion 2020-09-06 20:33:28 -07:00
Peter Slattery 7c134774c3 sculpture view cleanup 2020-07-18 13:08:28 -07:00
Peter Slattery 078f4e3ed7 Fixed the sculpture view. 2020-07-18 12:59:57 -07:00
Peter Slattery 62e22979f3 Separated out the engine from the editor. 2020-07-18 12:27:36 -07:00
Peter Slattery 50c2ef9290 Cleaning up, converting over to using new gs files. 2020-07-18 12:00:14 -07:00
Peter Slattery 295a5aaaa0 Fixed problem where leds were being drawn with the wrong color 2020-06-27 14:10:25 -07:00
Peter Slattery 266f42c4f6 Whatever I was doing last time + made leds always be camera facing. Probably could use some speed up later on. 2020-06-27 11:23:50 -07:00
Peter Slattery e3d7a90a13 app_state.Interface_ -> app_state.Interface 2020-06-22 17:39:58 -07:00
Peter Slattery dc25b268f7 compressed some ui drawing code. 2020-06-21 21:59:42 -07:00
Peter Slattery a0072cd57b removed foldhaus_debug_visuals.h Cleaned up assembly parsing. 2020-06-21 21:26:13 -07:00
Peter Slattery 23c9dabfbb A bit more cleanup around sacn and assemblies. 2020-06-20 17:05:58 -07:00
Peter Slattery 9c432a3807 Cleaned up some extraneous variables in the assembly structure 2020-06-19 18:53:23 -07:00
Peter Slattery 69db4b436c Pulled the leds out of assemblies and into their own subsystem. 2020-06-15 15:36:50 -07:00
Peter Slattery bfd9d6671c Finished parsing the new assembly file format 2020-06-09 20:33:51 -07:00
Peter Slattery c2f3b9193d platform_file_handler functions now take strings rather than char arrays 2020-05-30 15:09:06 -07:00
Peter Slattery 0b3d603e04 Created platform_file_handler and integrated it 2020-05-30 14:54:37 -07:00
Peter Slattery 20427d9dbd Project folder structure fixup. 2020-05-11 18:06:54 -07:00
Peter Slattery f874ba5289 Began building out the osx platform layer 2020-03-29 16:47:47 -07:00
Peter Slattery b843937295 Refactored rect functionality of gs_vector_matrix to make it not conflict with windows headers (just added gs_ to all functions). refactored Profiler interface code to use the new interface layout system. 2020-03-21 22:44:44 -07:00
Peter Slattery 5922a4bf27 Pulled more old ui code out and replaced it with the layout based ui 2020-03-21 21:13:35 -07:00
Peter Slattery cb98100a94 Began working on a new ui layout system. Deprecated a lot of old ui code, in favor of new ui_ code 2020-03-20 00:55:13 -07:00
Peter Slattery f461ee2044 Metaprocessor now generates an enum of panel types, app now passes a cursor type out to the platform layer, which handles setting the cursor style. 2020-03-12 22:42:59 -07:00
Peter Slattery 27c0c5e16f Removed old layer/pattern code 2020-03-08 20:28:49 -07:00
Peter Slattery f3c308e8fd Began implementing a file view panel 2020-03-08 16:15:26 -07:00
Peter Slattery 2fbc916c79 Fixed problem where overlapping animation clips would trigger multiple drag animation block commands. 2020-03-08 14:57:34 -07:00
Peter Slattery d5309819e6 Implemented the structure for different layers to have blend modes.
We now copy the led buffer for each assembly once per layer that has an active animation in it. The animations edit these temporary buffers, which are then blended together after all layers have created buffers, for each assembly.
2020-03-08 14:44:28 -07:00
Peter Slattery f1936a016c Updated todo list. Enforced execution order of animation blocks - they now execute in layer order, from top to bottom. 2020-03-07 16:29:07 -08:00
Peter Slattery de1a9474f0 Added rudimentary layers to the animation system. 2020-03-07 16:06:10 -08:00
Peter Slattery 3a20883a49 Converted evertthing over to useing frame ranges 2020-03-01 17:19:30 -08:00
Peter Slattery 0cb97b3c9a Fixed a problem with the dragging of animation clips. Releasing the button wouldn't stop dragging. 2020-03-01 15:44:58 -08:00
Peter Slattery 780ccbd1a3 Converted thinsg over to using time ranges and implemented zoom. Also restructured how different parts of the timeline view know where they are. The timeline now constructs all the bounds, and each element just draws itself inside the provided bounds. 2020-03-01 15:24:12 -08:00
Peter Slattery 197b6accc7 Moved everything over to using frames rather than seconds in the animation system. 2020-02-29 17:11:15 -08:00
Peter Slattery dc36d44cd2 Clamped Animation Clips to the timeline 2020-02-29 16:02:30 -08:00
Peter Slattery 8f94aea56a Implemented Snapping Animation Clips 2020-02-29 15:43:06 -08:00
Peter Slattery 4224ba15fb Solved crash when not viewing the sculpture view panel
The sculpture view panel was the one which handled the job system. If the panel was closed, jobs stopped being completed and the queue filled up.
2020-02-29 15:07:56 -08:00
Peter Slattery b103ede28c Made the meta system put generated files relative to the root file rather than at an absolute path 2020-02-29 14:43:07 -08:00
Peter Slattery 67d3dd1e26 Began generating panel info via the meta program 2020-02-29 14:23:46 -08:00
Peter Slattery 09e6d4d15b Working on meta - got nodes fully in place again. Still need to store meta tags on struct members 2020-02-22 18:54:28 -08:00
Peter Slattery 5bdcb99357 Updated gitignore, removed irrelevant member from panel_result 2020-02-15 15:06:51 -08:00
Peter Slattery 15e0b96f0c Removed old sacn view code 2020-02-05 20:36:31 -08:00
Peter Slattery b94ccef48f Removed old universe view code 2020-02-05 20:34:50 -08:00
Peter Slattery d3467a2fd2 Consolidated platform code into one file. 2020-02-05 20:33:12 -08:00
Peter Slattery 05e6a191e8 Implemented a basic event log, and used it in various places around the codebase. Also removed foldhaus_memory as it isn't being used 2020-02-05 20:24:34 -08:00
Peter Slattery 305afc65cd Cleaned up assembly loading. Added a note to handle error logging in the future 2020-02-05 12:29:48 -08:00
Peter Slattery 75bb2ae86d Added some notes to various parts of the code base. Also simplified test patterns to ensure that we don't need to use leds_in_universe_range anywhere except in DMX buffer preparation 2020-02-05 12:20:03 -08:00
Peter Slattery 58ef0b460f Added memory errors for when files aren't found 2020-02-05 00:03:56 -08:00
Peter Slattery 759b5f6906 Handle releasing the mouse button outside the window when the button was pressed over top of the window. 2020-02-04 23:46:11 -08:00
Peter Slattery 43534ac86d Fixed a problem with how we were handling mouse button states. 2020-02-04 23:39:17 -08:00
Peter Slattery 3d9851fbe2 More platform layer functions cleanup 2020-02-04 23:35:21 -08:00
Peter Slattery 91612e48c7 Splitting out win32 sets of functions into groups to make them simpler to see and create platform layers for 2020-02-04 23:31:43 -08:00
Peter Slattery 460c08d169 Started making sure that the DLL is truly platform agnostic. Only thing left seems to be math.h for things like trig functions, and windows.h purely for interlockedincrement and interlockedadd 2020-02-04 23:16:41 -08:00
Peter Slattery 51955ba765 Fixed a Function Pointer address problem created by storing a pointer to the address of an animation procedure. When code is reloaded, that pointer becomes invalid, so we just store an index, and switch on the value 2020-02-04 22:50:12 -08:00
Peter Slattery 33338daab7 Working on Meta System Attempted to tag all panel related procedures 2020-02-01 19:15:04 -08:00
Peter Slattery d23a2a68d4 File Cleanup, removed unused files, and pulled gs_libs into the codebase so that its a standalone codebase 2020-01-20 22:56:36 -08:00
Peter Slattery af11a85e94 Compressing Type Info Generation 2020-01-20 21:11:07 -08:00
Peter Slattery 7cdb300388 Got the meta layer generating files, and incorporated it into the system. Replaced old node meta stuff with the new. 2020-01-19 04:03:07 -08:00
Peter Slattery 9d0e4149d9 Began parsing function pointer typedefs in the meta layer. Some of them are working now, but not all. 2020-01-18 22:51:15 -08:00
Peter Slattery b11d9da9e4 Lots of work on the meta system. Most changes in src are just due to me putting test data in place 2020-01-18 22:07:59 -08:00
Peter Slattery af68881e04 updated sculpture file parsing 2020-01-13 17:04:40 -08:00
Peter Slattery 0164fea691 added documentation to all files 2020-01-01 18:41:43 -08:00
Peter Slattery 2ab7ff1194 Stored visual connections in the visual node layout system. 2019-12-31 14:06:04 -08:00
Peter Slattery 744a1c6c92 Updated the meta parser, and ifdef'd out a bunch of old node related code. 2019-12-31 13:15:28 -08:00
Peter Slattery 7545e3bbd0 Got most of the way to introducing new connections into the node workspace. 2019-12-30 23:13:04 -08:00
Peter Slattery 2bfed22bc2 Stored node layout in the node graph panel's state memory. 2019-12-30 22:16:14 -08:00
Peter Slattery 2b6959f37a Implemented rudimentary workspaces for nodes 2019-12-30 22:05:57 -08:00
Peter Slattery 9973cf4ed9 Incorporated a new *shudders* c++ template based list implementation. Hopefully I can stop writing list implementations now 2019-12-30 20:26:28 -08:00
Peter Slattery c5404e3296 Began drawing nodes, laying them out, and am working on node interface functionality 2019-12-29 18:28:59 -08:00
Peter Slattery e0418bb2a3 ??) 2019-12-29 08:25:48 -08:00
Peter Slattery 6a080f3aed Implemented adding animation clips to the timeline 2019-12-28 16:01:34 -08:00
Peter Slattery 20636acdce Implemented removing panels by right clicking on the border. 2019-12-28 15:01:02 -08:00
Peter Slattery 19727da391 Made dragging the time slider an operation mode. 2019-12-28 14:14:00 -08:00
Peter Slattery a973054c17 Polished panel interactions. Dragging panel edges and mouse drag to split a panel are now operation modes, and both display a preview of where the new panel edges will be. 2019-12-28 14:00:09 -08:00
Peter Slattery 90b908ff98 Removed all reliance on external factors from the foldhaus_panel.h system 2019-12-28 13:02:19 -08:00
Peter Slattery 27ae65fb0c Implemented dragging the ends of animation clips 2019-12-28 11:41:00 -08:00
Peter Slattery e21da76a2b Implemented dragging animation clips 2019-12-28 11:31:21 -08:00
Peter Slattery d112b01e79 Lotta work on panels geting animation and sculpture view more up to scratch. Deleted a bunch of now obsolete files. 2019-12-28 10:51:47 -08:00
Peter Slattery 76d27e3b57 Fixed a bug where unloading assemblies caused a crash in the test patterns. Fixed another bug caused by not initializing dmx buffers linked lists to zero. 2019-12-26 18:40:14 -08:00
Peter Slattery 2c6adaeda2 Improved the visuals of the hierarchy panel and the timeline panel 2019-12-26 16:23:43 -08:00
Peter Slattery d9af0c6a36 Created a hierarchy view 2019-12-26 14:45:27 -08:00
Peter Slattery b83d718d37 Consolidated all panel code in one file, and removed all external dependencies. ITS A LIBRARY NOW (still needs refinement) 2019-12-26 13:14:00 -08:00
Peter Slattery 9b9fe2f5e1 Created a panel system and began moving everything over to it. 2019-12-26 12:42:55 -08:00
Peter Slattery f491988c90 Began experimenting with animation timelines. This is making it obvious that I need to revamp my interface system 2019-12-26 08:11:48 -08:00
Peter Slattery dbc3886e91 imported gs_memory_arena.h which is an improved rewrite of gs_memory.h. Integrated this new library in place of gs_memory.h 2019-12-22 17:47:26 -08:00
Peter Slattery 4d9f28dc6e Got SACN transmitting over the network and set it up for blumen lumen 2019-12-03 22:40:22 -08:00
Peter Slattery a77d97a31f Created an initial version of a standard array template and swapped it in for the assembly array structure. 2019-11-28 21:12:57 -08:00
Peter Slattery da76bb46f5 Removed nodes from the project 2019-11-23 03:05:25 -08:00
Peter Slattery 1fea9cdb91 Fixing a quick bug 2019-11-23 01:08:59 -08:00
Peter Slattery 4c78d8b594 Jobs are now set by assembly rather than in total. This ensures that no matter what, all leds will be drawn. 2019-11-23 00:15:40 -08:00
Peter Slattery 67b402b74f Got assemblies to unload again 2019-11-22 23:57:30 -08:00
Peter Slattery a5e774c8d1 created a mapping from leds to universes in assemly structures that doesn't rely on SACN 2019-11-22 23:33:48 -08:00
Peter Slattery 70c9c74796 Decoupled assembly from sacn. 2019-11-22 16:07:25 -08:00
Peter Slattery 834aab2671 Did a bunch of stuff with nodes 2019-11-11 20:34:56 -08:00
Peter Slattery 25d9fda391 Stopped storing copies of nodes names in memory with them. They now just point at the specifications name 2019-11-11 14:42:14 -08:00
Peter Slattery dba7b1a250 Created basic scope list view 2019-11-11 12:02:24 -08:00
Peter Slattery 59cac0f435 lots of little fixes 2019-11-03 13:12:25 -08:00
Peter Slattery 741529a664 Moved nodes over to using handles rather than offsets in memory 2019-11-02 15:17:29 -07:00
Peter Slattery f3270918d0 Removed MinAfterUpdate from interface_node 2019-11-02 14:17:52 -07:00
Peter Slattery d9ae913bd8 Fixed node field label offsetting to account for the new right alignment 2019-11-02 14:11:06 -07:00
Peter Slattery 30f48d16fe Added Left and Right alignment of text to the interface system. 2019-11-02 14:09:57 -07:00
Peter Slattery 66f666a50f Prepared a delete node interface level function 2019-11-02 13:36:27 -07:00
Peter Slattery 6d893433c4 Made nodes selectable 2019-11-02 13:17:23 -07:00
Peter Slattery e9a6bdd376 Got nodes to update when the node view isn't open 2019-11-02 10:47:27 -07:00
Peter Slattery 85c0602f94 Removed opening the node lister from the default command registry 2019-11-02 10:36:09 -07:00
Peter Slattery ae3c762c29 Moved color selector activation out of node field dragging, and into clicking on a node field 2019-11-02 10:35:00 -07:00
Peter Slattery 6c71c5a89d Made modes work with hot code reloading, dealt with a bug in the search lister that allowed you to select an item from an empty list, pulled NodeRenderSettings back out into app_state, and generally filled out the operation mode system. 2019-11-02 10:29:51 -07:00
Peter Slattery d90b275cff Improved function of the Input Command Dispatch 2019-11-02 07:02:11 -07:00
Peter Slattery 22e15858e5 Fixed input handling for events that need to be held. Added support for events that only get called on a button release 2019-11-01 09:09:05 -07:00
Peter Slattery 613be64f41 Moved node view over to mode system! 2019-11-01 07:38:44 -07:00
Peter Slattery a889deaa98 Pulled the color picker into the new modes system 2019-11-01 06:46:06 -07:00
Peter Slattery b2579a45b7 Pulled the universe view into the new modes system 2019-11-01 06:16:30 -07:00
Peter Slattery e51400c313 Got modes working for the node lister 2019-11-01 05:46:40 -07:00
Peter Slattery 619c1370fe Fixed up a bunch of node lister, search lister, and text entry stuff. Began playing with modes 2019-11-01 04:17:46 -07:00
Peter Slattery e00e90f2fd Quickly got the search lister to use the correct index when filtering the list. 2019-10-30 09:10:15 -07:00
Peter Slattery e9e89b8f3d Folder restructure 2019-10-30 07:28:02 -07:00