Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
尘离序散
obs-studio
提交
c71eb041
O
obs-studio
项目概览
尘离序散
/
obs-studio
与 Fork 源项目一致
从无法访问的项目Fork
通知
30
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
obs-studio
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
c71eb041
编写于
12月 31, 2013
作者:
J
jp9000
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix startup resize issue on osx
上级
e2a11862
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
26 addition
and
16 deletion
+26
-16
obs/window-basic-main.cpp
obs/window-basic-main.cpp
+24
-16
obs/window-basic-main.hpp
obs/window-basic-main.hpp
+2
-0
未找到文件。
obs/window-basic-main.cpp
浏览文件 @
c71eb041
...
...
@@ -119,13 +119,9 @@ OBSBasic::~OBSBasic()
bool
OBSBasic
::
InitGraphics
()
{
wxSize
size
=
previewPanel
->
GetClientSize
();
struct
obs_video_info
ovi
;
wxGetApp
().
GetConfigFPS
(
ovi
.
fps_num
,
ovi
.
fps_den
);
ovi
.
graphics_module
=
wxGetApp
().
GetRenderModule
();
ovi
.
window_width
=
size
.
x
;
ovi
.
window_height
=
size
.
y
;
ovi
.
base_width
=
(
uint32_t
)
config_get_uint
(
GetGlobalConfig
(),
"Video"
,
"BaseCX"
);
ovi
.
base_height
=
(
uint32_t
)
config_get_uint
(
GetGlobalConfig
(),
...
...
@@ -138,12 +134,17 @@ bool OBSBasic::InitGraphics()
ovi
.
adapter
=
0
;
ovi
.
window
=
WxToGSWindow
(
previewPanel
);
if
(
!
obs_reset_video
(
&
ovi
))
return
false
;
//required to make opengl display stuff on osx(?)
ResizePreview
(
ovi
.
base_width
,
ovi
.
base_height
);
SendSizeEvent
();
wxSize
size
=
previewPanel
->
GetMinSize
();
ovi
.
window_width
=
size
.
x
;
ovi
.
window_height
=
size
.
y
;
if
(
!
obs_reset_video
(
&
ovi
))
return
false
;
return
true
;
}
...
...
@@ -158,19 +159,12 @@ void OBSBasic::OnMinimize(wxIconizeEvent &event)
event
.
Skip
();
}
void
OBSBasic
::
OnSize
(
wxSizeEvent
&
event
)
void
OBSBasic
::
ResizePreview
(
uint32_t
cx
,
uint32_t
cy
)
{
struct
obs_video_info
ovi
;
event
.
Skip
();
if
(
!
obs_get_video_info
(
&
ovi
))
return
;
/* resize preview panel to fix to the top section of the window */
wxSize
targetSize
=
GetPreviewContainer
()
->
GetSize
();
double
targetAspect
=
double
(
targetSize
.
x
)
/
double
(
targetSize
.
y
);
double
baseAspect
=
double
(
ovi
.
base_width
)
/
double
(
ovi
.
base_height
);
double
baseAspect
=
double
(
cx
)
/
double
(
cy
);
wxSize
newSize
;
if
(
targetAspect
>
baseAspect
)
...
...
@@ -179,6 +173,20 @@ void OBSBasic::OnSize(wxSizeEvent &event)
newSize
=
wxSize
(
targetSize
.
x
,
targetSize
.
x
/
baseAspect
);
GetPreviewPanel
()
->
SetMinSize
(
newSize
);
}
void
OBSBasic
::
OnSize
(
wxSizeEvent
&
event
)
{
struct
obs_video_info
ovi
;
event
.
Skip
();
if
(
!
obs_get_video_info
(
&
ovi
))
return
;
ResizePreview
(
ovi
.
base_width
,
ovi
.
base_height
);
wxSize
newSize
=
previewPanel
->
GetMinSize
();
gs_entercontext
(
obs_graphics
());
gs_resize
(
newSize
.
x
,
newSize
.
y
);
gs_leavecontext
();
...
...
obs/window-basic-main.hpp
浏览文件 @
c71eb041
...
...
@@ -28,6 +28,8 @@ class OBSBasic : public OBSBasicBase {
static
void
SourceAdded
(
void
*
data
,
calldata_t
params
);
static
void
SourceDestroyed
(
void
*
data
,
calldata_t
params
);
void
ResizePreview
(
uint32_t
cx
,
uint32_t
cy
);
void
AddSource
(
obs_scene_t
scene
,
const
char
*
id
);
void
AddSourcePopup
();
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录