Mike-Solar
0aa5879f35
app: migrate all engine access to the C ABI facade (nm U _ZN5olive = 0)
...
Every app module now reaches liboakengine exclusively through
oakengine_* C calls, EngineEventBridge subscriptions and app-side
handle headers (cliphandle/keyframehandle/nodevaluehandle/oakvaluehelper).
Direct C++ command construction, engine signal connect()s, and engine
type usage in MOC-visible signatures are gone: 557 -> 0 undefined
olive:: symbols in oak-editor.
2026-07-26 22:43:21 +08:00
Mike-Solar
bb40b4923e
style: unify identifier naming per updated conventions
...
Automated with clang-tidy readability-identifier-naming (config added to
.clang-tidy) plus scripted passes, per the updated rules now documented
in CONTRIBUTING.md:
- types (class/struct/enum/alias/template params): PascalCase
- functions, variables, members: snake_case (incl. rational -> Rational)
- private/protected members: trailing underscore; static member
variables likewise (instance_, available_themes_)
- constants and enum values: snake_case (kLinear -> k_linear,
F32P -> f32p); ALL_CAPS reserved for macros
- macros: OAK_ prefix (OLIVE_ADD_TEST/OLIVE_ASSERT/OLIVE_CONFIG ->
OAK_ADD_TEST/OAK_ASSERT/OAK_CONFIG, GL_PREAMBLE -> OAK_GL_PREAMBLE,
include guards -> OAK_*)
- file names: all lowercase (Current/Plugin/OliveHost/OliveClip/
OlivePluginInstance -> current/plugin/olivehost/oliveclip/
oliveplugininstance)
- getters share the member name sans underscore, setters set_foo()
- Qt and third-party (OpenFX) virtual overrides and framework callbacks
keep their original names (exempt in .clang-tidy)
Manual follow-ups required where automation could not reach:
- string-based QMetaObject/SIGNAL/SLOT references updated to renamed
methods (AddTask, CreatedFile, DeleteSpecificFile, moveSelectionUp, ...)
- macro bodies referencing renamed methods (OLIVE_CONFIG,
NODE_DEFAULT_DESTRUCTOR, MANAGEDDISPLAYWIDGET_*)
- self-shadowing locals renamed where signals/methods became same-named
(size_changed, worker_count, selected_items, import param, filters)
- third_party OFX member/namespace usages restored (OFX::Host::*,
_created, _clipPrefsDirty, createInstance, clearPersistentMessage)
- STL protocol aliases restored (const_iterator) with .clang-tidy
ignore rules; qHash overloads restored
Full build and test suite pass: ctest 4/4, ~1960 gtest cases green.
2026-07-19 16:10:54 +08:00
Mike-Solar
225f8505c2
feat(render): dynamic OpenGL/Vulkan backend split and backend-neutral viewer
...
- Extract libolive-rendercore static library to minimize backend link boundary.
- Add DynamicRenderer adapter with C ABI (oakgl/oakvulkan shared libs).
- Make OAK_ENABLE_DYNAMIC_RENDER_BACKEND default ON with OpenGL fallback.
- Implement VulkanRenderer prototype (textures, shaders, UBO blit, readback).
- Add backend-neutral viewer readback path (offscreen -> QImage -> QPainter).
- Refactor PluginRenderer to be renderer-agnostic; OFX plugins fall back to CPU
path on non-OpenGL backends while preserving OpenGL render path.
- Add Renderer::AttachOutputTexture/DetachOutputTexture and C ABI forwards.
- Update docs/zh/render-backend-dynamic-plan.md for Phase 3/4/5.
2026-07-13 10:19:29 +08:00
Mike-Solar
bfb1b2fce4
update copyright back
2026-01-16 21:22:05 +08:00
Mike-Solar
b8669f6a11
Change project name;
2026-01-05 16:22:26 +08:00
Mike Solar
6fdfd03ffd
update: update copyright
2025-08-05 17:12:49 +08:00
Mike Solar
74f73ab3be
change: change code style to Linux style except indent.
2025-08-03 03:09:40 +08:00
itsmattkc
4d80044d6d
upgrade to qt 6 compliance
2022-10-28 19:42:14 -07:00
itsmattkc
4b366a9b73
update copyright year to 2022
2022-05-10 10:38:56 -07:00
itsmattkc
91b761693b
code: use config macro
...
Macro is much easier to use and more readable
2022-05-04 09:50:34 -07:00
itsmattkc
9617436584
ui: disable native OS styling
...
There really isn't much point to maintaining this and it directly opposes Qt's code so we'll be fighting them forever
2022-03-30 15:07:33 -07:00
itsmattkc
77d4b18a60
updated copyright year for 2021 [skip ci]
2021-04-17 18:56:50 +10:00
itsmattkc
ad0cefecaf
remove now commented out ifdef guard
2021-01-14 10:30:33 +11:00
itsmattkc
19eabf2830
fixed variable that didn't change since it was behind an ifdef guard
2020-12-30 18:27:44 +11:00
itsmattkc
c0095a40ce
cache platform palette on load
2020-12-30 18:10:38 +11:00
itsmattkc
240fe81961
extend UI styling to 5.15.2 since they still haven't fixed this bug
2020-11-27 12:49:51 +11:00
itsmattkc
75d4cd899b
use hardcoded namespace
...
The macro defined namespaces confused the hell out of lupdate and more or less broke translations permanently. Looks like the only way we can do it is to have a hardcoded namespace, which goes against my instinct, but honestly how likely is it that we'll change the namespace anyway (I guess forks might want to do it, but that's their problem ;) )
2020-11-17 20:24:42 +11:00
itsmattkc
d241090a9f
finally updated the copyright year
2020-11-17 20:13:22 +11:00
itsmattkc
b5863fdadd
workaround: don't use standardPalette on Qt 5.15
2020-09-18 11:34:10 +10:00
itsmattkc
08d4c7b385
config: save style
2020-08-10 21:37:04 +10:00
itsmattkc
b2acb5c326
style: use native menu styling on macOS too
2020-05-03 17:15:09 +10:00
itsmattkc
c84f7fe724
style/preferences: don't set style if it hasn't changed
...
Improves Preferences dialog's "accept" speed. Before it would try changing the
style no matter what which took a noticeable amount of time to do for no real
purpose if the style didn't change.
2020-04-21 19:35:04 +10:00
itsmattkc
f73c41d3fa
various: implemented multiple project support
...
This required various changes to various parts of the infrastructure (mostly
using paths to finding the "root project" of any given object throughout).
Now theoretically infinite projects can be opened and accounted for at any
given time.
2020-04-18 01:50:47 +10:00
itsmattkc
1aa87cbda6
various: encapsulate all code in the olive namespace to avoid name collisions
...
Large-scale code cleanup. Also adds a license to the top of all files that were
missing it.
2020-04-06 15:29:53 +10:00
itsmattkc
59fa80ae57
ui: on windows, use native menus
...
Minor UI improvement for Windows users.
2020-04-06 00:14:36 +10:00
itsmattkc
7d907d7ee1
removed olive:: qualifier from icon:: namespace
2019-12-26 17:38:18 +11:00
itsmattkc
3bfe333878
replaced QString uses with QStringLiteral
...
Minor code optimization according to Qt documentation.
2019-12-10 00:42:31 +11:00
itsmattkc
c30236e693
fixed compatibility issue with older qt
2019-09-26 13:38:52 +10:00
itsmattkc
56e3fd41e5
various UI reimplementations from 0.1.x
2019-09-26 03:49:49 +10:00
itsmattkc
c5572876fa
fixed issues with some opengl implementations
2019-09-13 00:32:41 +10:00
itsmattkc
33f9f9dbc4
restructured css and icon to link together
2019-07-15 00:20:03 -04:00
itsmattkc
944e933762
revise CSS and allow modular icons
2019-07-14 23:56:55 -04:00
itsmattkc
df32b881c2
reworked css
2019-07-14 11:28:19 -04:00
itsmattkc
8f6cb7a2cb
updated styling and fixed windows compiling
2019-07-01 11:39:25 -07:00
itsmattkc
14917ef3cc
ported styling from qpalettes to stylesheets for maximum customizability
2019-07-01 10:53:28 -07:00
itsmattkc
55c869ac1b
added copyright header to all source files
2019-06-22 23:26:31 -07:00
itsmattkc
25564fdb6b
recreating menu structure
2019-06-18 00:24:08 -07:00
itsmattkc
a468b3727d
further development on rewrite
2019-06-17 16:05:51 -07:00