Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
尘离序散
obs-studio
提交
6475a1c0
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,发现更多精彩内容 >>
提交
6475a1c0
编写于
4月 24, 2018
作者:
Z
Zachary Lund
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
win-capture: Avoid obs functions in init_hooks
上级
30d967ea
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
27 addition
and
20 deletion
+27
-20
plugins/win-capture/load-graphics-offsets.c
plugins/win-capture/load-graphics-offsets.c
+14
-11
plugins/win-capture/plugin-main.c
plugins/win-capture/plugin-main.c
+13
-9
未找到文件。
plugins/win-capture/load-graphics-offsets.c
浏览文件 @
6475a1c0
...
...
@@ -153,11 +153,11 @@ failed:
return
!
ver_mismatch
;
}
bool
load_graphics_offsets
(
bool
is32bit
)
bool
load_graphics_offsets
(
bool
is32bit
,
const
char
*
config_path
)
{
char
*
offset_exe_path
=
NULL
;
struct
dstr
offset_exe
=
{
0
};
char
*
config_ini
=
NULL
;
struct
dstr
config_ini
=
{
0
}
;
struct
dstr
str
=
{
0
};
os_process_pipe_t
*
pp
;
bool
success
=
false
;
...
...
@@ -188,10 +188,12 @@ bool load_graphics_offsets(bool is32bit)
dstr_ncat
(
&
str
,
data
,
len
);
}
config_ini
=
obs_module_config_path
(
is32bit
?
"32.ini"
:
"64.ini"
);
os_quick_write_utf8_file_safe
(
config_ini
,
str
.
array
,
str
.
len
,
false
,
dstr_copy
(
&
config_ini
,
config_path
);
dstr_cat
(
&
config_ini
,
is32bit
?
"32.ini"
:
"64.ini"
);
os_quick_write_utf8_file_safe
(
config_ini
.
array
,
str
.
array
,
str
.
len
,
false
,
"tmp"
,
NULL
);
bfree
(
config_ini
);
dstr_free
(
&
config_ini
);
success
=
load_offsets_from_string
(
is32bit
?
&
offsets32
:
&
offsets64
,
str
.
array
);
...
...
@@ -208,17 +210,18 @@ error:
return
success
;
}
bool
load_cached_graphics_offsets
(
bool
is32bit
)
bool
load_cached_graphics_offsets
(
bool
is32bit
,
const
char
*
config_path
)
{
char
*
config_ini
=
NULL
;
struct
dstr
config_ini
=
{
0
}
;
bool
success
;
config_ini
=
obs_module_config_path
(
is32bit
?
"32.ini"
:
"64.ini"
);
dstr_copy
(
&
config_ini
,
config_path
);
dstr_cat
(
&
config_ini
,
is32bit
?
"32.ini"
:
"64.ini"
);
success
=
load_offsets_from_file
(
is32bit
?
&
offsets32
:
&
offsets64
,
config_ini
);
config_ini
.
array
);
if
(
!
success
)
success
=
load_graphics_offsets
(
is32bit
);
success
=
load_graphics_offsets
(
is32bit
,
config_path
);
bfree
(
config_ini
);
dstr_free
(
&
config_ini
);
return
success
;
}
plugins/win-capture/plugin-main.c
浏览文件 @
6475a1c0
...
...
@@ -14,8 +14,8 @@ extern struct obs_source_info game_capture_info;
static
HANDLE
init_hooks_thread
=
NULL
;
extern
bool
cached_versions_match
(
void
);
extern
bool
load_cached_graphics_offsets
(
bool
is32bit
);
extern
bool
load_graphics_offsets
(
bool
is32bit
);
extern
bool
load_cached_graphics_offsets
(
bool
is32bit
,
const
char
*
config_path
);
extern
bool
load_graphics_offsets
(
bool
is32bit
,
const
char
*
config_path
);
/* temporary, will eventually be erased once we figure out how to create both
* 32bit and 64bit versions of the helpers/hook */
...
...
@@ -27,20 +27,22 @@ extern bool load_graphics_offsets(bool is32bit);
#define USE_HOOK_ADDRESS_CACHE false
static
DWORD
WINAPI
init_hooks
(
LPVOID
unused
)
static
DWORD
WINAPI
init_hooks
(
LPVOID
param
)
{
char
*
config_path
=
param
;
if
(
USE_HOOK_ADDRESS_CACHE
&&
cached_versions_match
()
&&
load_cached_graphics_offsets
(
IS32BIT
))
{
load_cached_graphics_offsets
(
IS32BIT
,
config_path
))
{
load_cached_graphics_offsets
(
!
IS32BIT
);
load_cached_graphics_offsets
(
!
IS32BIT
,
config_path
);
obs_register_source
(
&
game_capture_info
);
}
else
if
(
load_graphics_offsets
(
IS32BIT
))
{
load_graphics_offsets
(
!
IS32BIT
);
}
else
if
(
load_graphics_offsets
(
IS32BIT
,
config_path
))
{
load_graphics_offsets
(
!
IS32BIT
,
config_path
);
}
UNUSED_PARAMETER
(
unused
);
bfree
(
config_path
);
return
0
;
}
...
...
@@ -85,7 +87,9 @@ bool obs_module_load(void)
obs_register_source
(
&
window_capture_info
);
init_hooks_thread
=
CreateThread
(
NULL
,
0
,
init_hooks
,
NULL
,
0
,
NULL
);
char
*
config_path
=
obs_module_config_path
(
NULL
);
init_hooks_thread
=
CreateThread
(
NULL
,
0
,
init_hooks
,
config_path
,
0
,
NULL
);
obs_register_source
(
&
game_capture_info
);
return
true
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录