|
@@ -40,7 +40,7 @@ void OBSBasicPreview::Init()
|
|
|
|
|
|
|
|
vec2 OBSBasicPreview::GetMouseEventPos(QMouseEvent *event)
|
|
vec2 OBSBasicPreview::GetMouseEventPos(QMouseEvent *event)
|
|
|
{
|
|
{
|
|
|
- OBSBasic *main = reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
|
|
|
|
|
|
|
+ OBSBasic *main = OBSBasic::Get();
|
|
|
float pixelRatio = main->GetDevicePixelRatio();
|
|
float pixelRatio = main->GetDevicePixelRatio();
|
|
|
float scale = pixelRatio / main->previewScale;
|
|
float scale = pixelRatio / main->previewScale;
|
|
|
QPoint qtPos = event->pos();
|
|
QPoint qtPos = event->pos();
|
|
@@ -166,7 +166,7 @@ static inline vec2 GetOBSScreenSize()
|
|
|
|
|
|
|
|
vec3 OBSBasicPreview::GetSnapOffset(const vec3 &tl, const vec3 &br)
|
|
vec3 OBSBasicPreview::GetSnapOffset(const vec3 &tl, const vec3 &br)
|
|
|
{
|
|
{
|
|
|
- OBSBasic *main = reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
|
|
|
|
|
|
|
+ OBSBasic *main = OBSBasic::Get();
|
|
|
vec2 screenSize = GetOBSScreenSize();
|
|
vec2 screenSize = GetOBSScreenSize();
|
|
|
vec3 clampOffset;
|
|
vec3 clampOffset;
|
|
|
|
|
|
|
@@ -211,7 +211,7 @@ vec3 OBSBasicPreview::GetSnapOffset(const vec3 &tl, const vec3 &br)
|
|
|
|
|
|
|
|
OBSSceneItem OBSBasicPreview::GetItemAtPos(const vec2 &pos, bool selectBelow)
|
|
OBSSceneItem OBSBasicPreview::GetItemAtPos(const vec2 &pos, bool selectBelow)
|
|
|
{
|
|
{
|
|
|
- OBSBasic *main = reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
|
|
|
|
|
|
|
+ OBSBasic *main = OBSBasic::Get();
|
|
|
|
|
|
|
|
OBSScene scene = main->GetCurrentScene();
|
|
OBSScene scene = main->GetCurrentScene();
|
|
|
if (!scene)
|
|
if (!scene)
|
|
@@ -267,7 +267,7 @@ static bool CheckItemSelected(obs_scene_t * /* scene */, obs_sceneitem_t *item,
|
|
|
|
|
|
|
|
bool OBSBasicPreview::SelectedAtPos(const vec2 &pos)
|
|
bool OBSBasicPreview::SelectedAtPos(const vec2 &pos)
|
|
|
{
|
|
{
|
|
|
- OBSBasic *main = reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
|
|
|
|
|
|
|
+ OBSBasic *main = OBSBasic::Get();
|
|
|
|
|
|
|
|
OBSScene scene = main->GetCurrentScene();
|
|
OBSScene scene = main->GetCurrentScene();
|
|
|
if (!scene)
|
|
if (!scene)
|
|
@@ -428,7 +428,7 @@ static vec2 GetItemSize(obs_sceneitem_t *item)
|
|
|
|
|
|
|
|
void OBSBasicPreview::GetStretchHandleData(const vec2 &pos, bool ignoreGroup)
|
|
void OBSBasicPreview::GetStretchHandleData(const vec2 &pos, bool ignoreGroup)
|
|
|
{
|
|
{
|
|
|
- OBSBasic *main = reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
|
|
|
|
|
|
|
+ OBSBasic *main = OBSBasic::Get();
|
|
|
|
|
|
|
|
OBSScene scene = main->GetCurrentScene();
|
|
OBSScene scene = main->GetCurrentScene();
|
|
|
if (!scene)
|
|
if (!scene)
|
|
@@ -556,7 +556,7 @@ void OBSBasicPreview::mousePressEvent(QMouseEvent *event)
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- OBSBasic *main = reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
|
|
|
|
|
|
|
+ OBSBasic *main = OBSBasic::Get();
|
|
|
float pixelRatio = main->GetDevicePixelRatio();
|
|
float pixelRatio = main->GetDevicePixelRatio();
|
|
|
float x = pos.x() - main->previewX / pixelRatio;
|
|
float x = pos.x() - main->previewX / pixelRatio;
|
|
|
float y = pos.y() - main->previewY / pixelRatio;
|
|
float y = pos.y() - main->previewY / pixelRatio;
|
|
@@ -678,7 +678,7 @@ static bool select_one(obs_scene_t * /* scene */, obs_sceneitem_t *item, void *p
|
|
|
|
|
|
|
|
void OBSBasicPreview::DoSelect(const vec2 &pos)
|
|
void OBSBasicPreview::DoSelect(const vec2 &pos)
|
|
|
{
|
|
{
|
|
|
- OBSBasic *main = reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
|
|
|
|
|
|
|
+ OBSBasic *main = OBSBasic::Get();
|
|
|
|
|
|
|
|
OBSScene scene = main->GetCurrentScene();
|
|
OBSScene scene = main->GetCurrentScene();
|
|
|
OBSSceneItem item = GetItemAtPos(pos, true);
|
|
OBSSceneItem item = GetItemAtPos(pos, true);
|
|
@@ -769,13 +769,13 @@ void OBSBasicPreview::mouseReleaseEvent(QMouseEvent *event)
|
|
|
hoveredPreviewItems.push_back(item);
|
|
hoveredPreviewItems.push_back(item);
|
|
|
selectedItems.clear();
|
|
selectedItems.clear();
|
|
|
}
|
|
}
|
|
|
- OBSBasic *main = reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
|
|
|
|
|
|
|
+ OBSBasic *main = OBSBasic::Get();
|
|
|
OBSDataAutoRelease rwrapper = obs_scene_save_transform_states(main->GetCurrentScene(), true);
|
|
OBSDataAutoRelease rwrapper = obs_scene_save_transform_states(main->GetCurrentScene(), true);
|
|
|
|
|
|
|
|
auto undo_redo = [](const std::string &data) {
|
|
auto undo_redo = [](const std::string &data) {
|
|
|
OBSDataAutoRelease dat = obs_data_create_from_json(data.c_str());
|
|
OBSDataAutoRelease dat = obs_data_create_from_json(data.c_str());
|
|
|
OBSSourceAutoRelease source = obs_get_source_by_uuid(obs_data_get_string(dat, "scene_uuid"));
|
|
OBSSourceAutoRelease source = obs_get_source_by_uuid(obs_data_get_string(dat, "scene_uuid"));
|
|
|
- reinterpret_cast<OBSBasic *>(App()->GetMainWindow())->SetCurrentScene(source.Get(), true);
|
|
|
|
|
|
|
+ OBSBasic::Get()->SetCurrentScene(source.Get(), true);
|
|
|
|
|
|
|
|
obs_scene_load_transform_states(data.c_str());
|
|
obs_scene_load_transform_states(data.c_str());
|
|
|
};
|
|
};
|
|
@@ -902,7 +902,7 @@ static bool GetSourceSnapOffset(obs_scene_t * /* scene */, obs_sceneitem_t *item
|
|
|
|
|
|
|
|
void OBSBasicPreview::SnapItemMovement(vec2 &offset)
|
|
void OBSBasicPreview::SnapItemMovement(vec2 &offset)
|
|
|
{
|
|
{
|
|
|
- OBSBasic *main = reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
|
|
|
|
|
|
|
+ OBSBasic *main = OBSBasic::Get();
|
|
|
OBSScene scene = main->GetCurrentScene();
|
|
OBSScene scene = main->GetCurrentScene();
|
|
|
|
|
|
|
|
SelectedItemBounds data;
|
|
SelectedItemBounds data;
|
|
@@ -978,7 +978,7 @@ static bool move_items(obs_scene_t * /* scene */, obs_sceneitem_t *item, void *p
|
|
|
void OBSBasicPreview::MoveItems(const vec2 &pos)
|
|
void OBSBasicPreview::MoveItems(const vec2 &pos)
|
|
|
{
|
|
{
|
|
|
Qt::KeyboardModifiers modifiers = QGuiApplication::keyboardModifiers();
|
|
Qt::KeyboardModifiers modifiers = QGuiApplication::keyboardModifiers();
|
|
|
- OBSBasic *main = reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
|
|
|
|
|
|
|
+ OBSBasic *main = OBSBasic::Get();
|
|
|
OBSScene scene = main->GetCurrentScene();
|
|
OBSScene scene = main->GetCurrentScene();
|
|
|
|
|
|
|
|
vec2 offset, moveOffset;
|
|
vec2 offset, moveOffset;
|
|
@@ -1146,7 +1146,7 @@ static bool FindItemsInBox(obs_scene_t * /* scene */, obs_sceneitem_t *item, voi
|
|
|
|
|
|
|
|
void OBSBasicPreview::BoxItems(const vec2 &startPos, const vec2 &pos)
|
|
void OBSBasicPreview::BoxItems(const vec2 &startPos, const vec2 &pos)
|
|
|
{
|
|
{
|
|
|
- OBSBasic *main = reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
|
|
|
|
|
|
|
+ OBSBasic *main = OBSBasic::Get();
|
|
|
|
|
|
|
|
OBSScene scene = main->GetCurrentScene();
|
|
OBSScene scene = main->GetCurrentScene();
|
|
|
if (!scene)
|
|
if (!scene)
|
|
@@ -1473,7 +1473,7 @@ void OBSBasicPreview::StretchItem(const vec2 &pos)
|
|
|
|
|
|
|
|
void OBSBasicPreview::RotateItem(const vec2 &pos)
|
|
void OBSBasicPreview::RotateItem(const vec2 &pos)
|
|
|
{
|
|
{
|
|
|
- OBSBasic *main = reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
|
|
|
|
|
|
|
+ OBSBasic *main = OBSBasic::Get();
|
|
|
OBSScene scene = main->GetCurrentScene();
|
|
OBSScene scene = main->GetCurrentScene();
|
|
|
Qt::KeyboardModifiers modifiers = QGuiApplication::keyboardModifiers();
|
|
Qt::KeyboardModifiers modifiers = QGuiApplication::keyboardModifiers();
|
|
|
bool shiftDown = (modifiers & Qt::ShiftModifier);
|
|
bool shiftDown = (modifiers & Qt::ShiftModifier);
|
|
@@ -1521,7 +1521,7 @@ void OBSBasicPreview::RotateItem(const vec2 &pos)
|
|
|
|
|
|
|
|
void OBSBasicPreview::mouseMoveEvent(QMouseEvent *event)
|
|
void OBSBasicPreview::mouseMoveEvent(QMouseEvent *event)
|
|
|
{
|
|
{
|
|
|
- OBSBasic *main = reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
|
|
|
|
|
|
|
+ OBSBasic *main = OBSBasic::Get();
|
|
|
changed = true;
|
|
changed = true;
|
|
|
|
|
|
|
|
QPointF qtPos = event->position();
|
|
QPointF qtPos = event->position();
|
|
@@ -1601,7 +1601,7 @@ void OBSBasicPreview::mouseMoveEvent(QMouseEvent *event)
|
|
|
|
|
|
|
|
if (!mouseMoved && hoveredPreviewItems.size() > 0) {
|
|
if (!mouseMoved && hoveredPreviewItems.size() > 0) {
|
|
|
mousePos = pos;
|
|
mousePos = pos;
|
|
|
- OBSBasic *main = reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
|
|
|
|
|
|
|
+ OBSBasic *main = OBSBasic::Get();
|
|
|
float scale = main->GetDevicePixelRatio();
|
|
float scale = main->GetDevicePixelRatio();
|
|
|
float x = qtPos.x() - main->previewX / scale;
|
|
float x = qtPos.x() - main->previewX / scale;
|
|
|
float y = qtPos.y() - main->previewY / scale;
|
|
float y = qtPos.y() - main->previewY / scale;
|
|
@@ -2084,7 +2084,7 @@ void OBSBasicPreview::DrawOverflow()
|
|
|
overflow = gs_texture_create_from_file(path.c_str());
|
|
overflow = gs_texture_create_from_file(path.c_str());
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- OBSBasic *main = reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
|
|
|
|
|
|
|
+ OBSBasic *main = OBSBasic::Get();
|
|
|
|
|
|
|
|
OBSScene scene = main->GetCurrentScene();
|
|
OBSScene scene = main->GetCurrentScene();
|
|
|
|
|
|
|
@@ -2107,7 +2107,7 @@ void OBSBasicPreview::DrawSceneEditing()
|
|
|
|
|
|
|
|
GS_DEBUG_MARKER_BEGIN(GS_DEBUG_COLOR_DEFAULT, "DrawSceneEditing");
|
|
GS_DEBUG_MARKER_BEGIN(GS_DEBUG_COLOR_DEFAULT, "DrawSceneEditing");
|
|
|
|
|
|
|
|
- OBSBasic *main = reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
|
|
|
|
|
|
|
+ OBSBasic *main = OBSBasic::Get();
|
|
|
|
|
|
|
|
gs_effect_t *solid = obs_get_base_effect(OBS_EFFECT_SOLID);
|
|
gs_effect_t *solid = obs_get_base_effect(OBS_EFFECT_SOLID);
|
|
|
gs_technique_t *tech = gs_effect_get_technique(solid, "Solid");
|
|
gs_technique_t *tech = gs_effect_get_technique(solid, "Solid");
|