* make file ref counted
* migrate File to refcnt
* add bindable artboard class to keep file reference
* feat(unity): support rcp file and BindableArtboard class (#10228)
* refactor(apple): use updated file bindable artboard apis (#10229)
* update command queue to support bindable artboards
* use bindable artboards on command queue
* self manage view model instances in js runtime
* change remaining viewModelInstanceRuntimes to rcp
* refactor(apple): update view model instances to use rcp (#10298)
* refactor(unity): support rcp ViewModelInstanceRuntime (#10309)
* rebase fix
* deprecate getArtboard in favor of getBindableArtboard
* fix merge
* remove unused lambda capture
* fix rive binding
* feat(Android): RCP File, VMI, and add bindable artboards (#10456)
* refactor: C++ refactors
- Import from long (incorrect) -> jlong
- Header clang-tidy fix
- Use reinterpret_cast instead of C-style cast
- Break out some variables instead of long one liners
- Use auto
- Remove unused env and thisObj
# Conflicts:
# packages/runtime_android/kotlin/src/main/cpp/src/helpers/general.cpp
* docs: Improve documentation on the File class
* feat: Support bindable artboard type and RCP VMIs
# Conflicts:
# packages/runtime_android/kotlin/src/androidTest/java/app/rive/runtime/kotlin/core/RiveDataBindingTest.kt
* feat: Support RCP files
* refactor: Change from +1/-1 ref to just release
* fix: Moved to the more appropriate null pointer for GetStringUTFChars
* replace unref with release
Co-authored-by: Adam <67035612+damzobridge@users.noreply.github.com>
Co-authored-by: David Skuza <david@rive.app>
Co-authored-by: Erik <erik@rive.app>
Co-authored-by: hernan <hernan@rive.app>
Added dependency between state machines and the artboards they are created from.
Added dependency between artboards and the file they are made from
Made all dependencies get cleaned up correctly when owning dependency is deleted.
Co-authored-by: Jonathon Copeland <jcopela4@gmail.com>
* added way to get default view model for a given artboard
* added request Id to errors and mouse events
* finished tests
* order matter when getting deleted apperently
Co-authored-by: Jonathon Copeland <jcopela4@gmail.com>
* started file asset implementation
* asset loader implemented
* started adding tests
* updated fonts and audio to validate before returning an object.
* audio source and font tests
* added deleted callback tests for audio source and fonts
* fixed compiler issues for non windows clang
* updated cargo checks to latest rive_hb
* msvc maudio does not support mp3. use wav instead
* Updated based on PR comments
Co-authored-by: Jonathon Copeland <jcopela4@gmail.com>
* started implementing error messages
* send errors to command q as well as print to cerr
* started adding tests for error messages
* started file error tests
* file error tests
* render image error tests
* state machine error tets
* PR suggestion to convert template function to helper class
* prevent mixup for 32 bit platforms
Co-authored-by: Jonathon Copeland <jcopela4@gmail.com>
* added renderimagehandle and fileLoaded and enumsListe
* coded out lists
* added tests for list
* property subscriptions complete
* Added abililty to fire triggers
* added tests code cov vaught
* better name
* ASAN for unit tests (#9997)
chore: enable asan
* changes requested by PR comments
* addressed PR comment
* enum renames
* feat: add asan for tests
* chore: missed lua file
* chore: remove windows asan for now
* remove extra ref
* update print text
Co-authored-by: Hernan Torrisi <hernantorrisi@gmail.com>
Co-authored-by: Jonathon Copeland <jcopela4@gmail.com>
Co-authored-by: Luigi Rosso <luigi-rosso@users.noreply.github.com>
Co-authored-by: Luigi Rosso <luigi.rosso@gmail.com>
* added viewmodels and started tests
* creating and destroying viewmodels and isntances
* listViewModels
* view model listeners finished
* added bindViewModelInstance
* added more tests
* addressed PR comments
* updated api to not use ViewModelHandles and have a more consice api
Co-authored-by: Jonathon Copeland <jcopela4@gmail.com>
* added file asset loader
* tests for asset loader
* made asset loader rcp
* addressed pr comments
feat(CommandQueue) Added request Ids associated with jobs (#9796) 5aedcdc61f
* added request ids that are associated with callbacks for the command queue
* modified tests to check for request id
feat: TextInput - refactor shapes for runtime text input (#9836) 455374455c
* chore: updating runtime defs
* chore: refactor TextStyle into TextStylePaint
* chore: missed hpp files
* chore: missed cpp files
* chore: fix clone of text_style_paint
* feat: more text input at runtime
* chore: cleanup
* chore: add typed child iterator
* chore: missed files
* chore: running runtime input in editor
* feat: completing integration with editor
* chore: missed file
* chore: fix builds with text disabled
* chore: use child for test
* tests: adding more tests for text input
* chore: missed test file
* chore: more coverage for child iterator
* chore: using clipping on text input
* chore: test text input selected text
* chore: dry up iterator
Co-authored-by: Jonathon Copeland <jcopela4@gmail.com>
Co-authored-by: Luigi Rosso <luigi-rosso@users.noreply.github.com>
* added message queue for receiving information back from server
* addressed some issues
* renamed everything to listeners, manage lifetime of listeners implcictly, modified tests to match and updated example to use listeners.
* updated to match naming convention we talked about
* addressed PR
* added delete messages for file,artboard and statemachine
* fix dumb dumb
* Update packages/runtime/include/rive/command_queue.hpp
* more pr changes
* nested listener classes
* addressed pr requests
Co-authored-by: Jonathon Copeland <jcopela4@gmail.com>
Co-authored-by: Umberto Sonnino <umberto@rive.app>
* moved drawloop to be driven from commandQue rather then from the server
* made pollMessages and waitMessages return !M_disconnect
* removed drawloop added drawkey added stopmessage
* addressed PR comments
Co-authored-by: Jonathon Copeland <jcopela4@gmail.com>
* feat: First draft of a RiveCommandBuffer
RiveCommandBuffer hopes to eventually become the basic high-level Rive
API. It's an asynchronous command queue that hides the data behind
handles and executes on a separate thread.
This initial example is just something to get started. We will evolve
the API as we feel out what is needed in the various backends.
* More testing
* AutoLockAndNotify
* CommandQueue
* Fix linux build
Co-authored-by: Chris Dalton <99840794+csmartdalton@users.noreply.github.com>