You've already forked wine-staging
mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-04-13 14:42:51 -07:00
Compare commits
7 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
127b7fafb4 | ||
|
054ecfb60a | ||
|
85146f009d | ||
|
8fc0710def | ||
|
e84e5d31e9 | ||
|
1f578b2d53 | ||
|
164a792cb2 |
@@ -174,7 +174,7 @@ index 7806ad2ec1f..e5adc0d4e2c 100644
|
||||
+ basic_info.LastAccessTime = info.LastAccessTime;
|
||||
+ basic_info.LastWriteTime = info.LastWriteTime;
|
||||
+ basic_info.ChangeTime = info.ChangeTime;
|
||||
+ basic_info.FileAttributes &= FILE_ATTRIBUTE_READONLY;
|
||||
+ basic_info.FileAttributes = info.FileAttributes & FILE_ATTRIBUTE_READONLY;
|
||||
+ NtSetInformationFile( h2, &io, &basic_info, sizeof(basic_info), FileBasicInformation );
|
||||
HeapFree( GetProcessHeap(), 0, buffer );
|
||||
CloseHandle( h1 );
|
||||
|
@@ -1,63 +0,0 @@
|
||||
From 8c7d326435794a72c70e05acdff945edf506ec3c Mon Sep 17 00:00:00 2001
|
||||
From: Qian Hong <qhong@codeweavers.com>
|
||||
Date: Wed, 21 Oct 2015 06:23:22 +0800
|
||||
Subject: [PATCH] ntdll: Add fake data implementation for ProcessQuotaLimits
|
||||
class.
|
||||
|
||||
---
|
||||
dlls/ntdll/unix/process.c | 32 +++++++++++++++++++++++++++++++-
|
||||
1 file changed, 31 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/ntdll/unix/process.c b/dlls/ntdll/unix/process.c
|
||||
index 93d7e7b0140..ae3ab9a8058 100644
|
||||
--- a/dlls/ntdll/unix/process.c
|
||||
+++ b/dlls/ntdll/unix/process.c
|
||||
@@ -1050,7 +1050,6 @@ NTSTATUS WINAPI NtQueryInformationProcess( HANDLE handle, PROCESSINFOCLASS class
|
||||
|
||||
switch (class)
|
||||
{
|
||||
- UNIMPLEMENTED_INFO_CLASS(ProcessQuotaLimits);
|
||||
UNIMPLEMENTED_INFO_CLASS(ProcessBasePriority);
|
||||
UNIMPLEMENTED_INFO_CLASS(ProcessRaisePriority);
|
||||
UNIMPLEMENTED_INFO_CLASS(ProcessExceptionPort);
|
||||
@@ -1109,6 +1108,37 @@ NTSTATUS WINAPI NtQueryInformationProcess( HANDLE handle, PROCESSINFOCLASS class
|
||||
}
|
||||
break;
|
||||
|
||||
+ case ProcessQuotaLimits:
|
||||
+ {
|
||||
+ QUOTA_LIMITS pqli;
|
||||
+
|
||||
+ if (size >= sizeof(QUOTA_LIMITS))
|
||||
+ {
|
||||
+ if (!info)
|
||||
+ ret = STATUS_ACCESS_VIOLATION;
|
||||
+ else if (!handle)
|
||||
+ ret = STATUS_INVALID_HANDLE;
|
||||
+ else
|
||||
+ {
|
||||
+ /* FIXME : real data */
|
||||
+ memset(&pqli, 0, sizeof(QUOTA_LIMITS));
|
||||
+
|
||||
+ memcpy(info, &pqli, sizeof(QUOTA_LIMITS));
|
||||
+
|
||||
+ len = sizeof(QUOTA_LIMITS);
|
||||
+ }
|
||||
+
|
||||
+ if (size > sizeof(QUOTA_LIMITS))
|
||||
+ ret = STATUS_INFO_LENGTH_MISMATCH;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ len = sizeof(QUOTA_LIMITS);
|
||||
+ ret = STATUS_INFO_LENGTH_MISMATCH;
|
||||
+ }
|
||||
+ }
|
||||
+ break;
|
||||
+
|
||||
case ProcessIoCounters:
|
||||
{
|
||||
IO_COUNTERS pii;
|
||||
--
|
||||
2.27.0
|
||||
|
@@ -1 +0,0 @@
|
||||
Fixes: [44812] Multiple applications need NtQueryInformationProcess 'ProcessQuotaLimits' class support (MSYS2, ProcessHacker 2.x)
|
@@ -1,4 +1,4 @@
|
||||
From c1f714e2b6dd6ea60e58506a85237fb3adee2467 Mon Sep 17 00:00:00 2001
|
||||
From 70a24464222d56067cc610d54f66d438051e81a7 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Thu, 7 Mar 2024 10:40:41 +1100
|
||||
Subject: [PATCH] Updated vkd3d to 166dc24b2f73b0541a14815081ee4c8d9eab3269.
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From b2202d65c0c1ea4fcd083e4fbacb7dfc1c2d7bca Mon Sep 17 00:00:00 2001
|
||||
From daa351361adc81f3fb7db6a71bbdaee7bb9d7cde Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Thu, 28 Mar 2024 10:39:27 +1100
|
||||
Subject: [PATCH] Updated vkd3d to b1eaf8327bf59b516f80e232e86332473ed97edc.
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 5785aacc06fe654c69632c9f95449015e379fa24 Mon Sep 17 00:00:00 2001
|
||||
From 5a6ba406d2b64084bfb8180843d58fe0e8baf63d Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Thu, 4 Apr 2024 09:47:35 +1100
|
||||
Subject: [PATCH] Updated vkd3d to 4b0a328a2b58a86e3529ddcc2cdc785a08625f81.
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 315fe78a04bc6e851f29d38ab3ab82e725967ae1 Mon Sep 17 00:00:00 2001
|
||||
From 42ab22402227cf671a3542fee0a8fc2cd77ba3cc Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Fri, 5 Apr 2024 08:20:45 +1100
|
||||
Subject: [PATCH] Updated vkd3d to 9c0d04c86204fd360a7528faf2b53acc7301b598.
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,159 +0,0 @@
|
||||
From 8438b605a8c08605a05e60114a549f6e72cda435 Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
Date: Thu, 14 Jan 2016 15:16:37 +0800
|
||||
Subject: [PATCH] widl: Add support for recursive type references to SLTG
|
||||
typelib generator.
|
||||
|
||||
---
|
||||
tools/widl/write_sltg.c | 66 ++++++++++++++++++++++++++++-------------
|
||||
1 file changed, 46 insertions(+), 20 deletions(-)
|
||||
|
||||
diff --git a/tools/widl/write_sltg.c b/tools/widl/write_sltg.c
|
||||
index bb3a6c003d0..b4fd8f38006 100644
|
||||
--- a/tools/widl/write_sltg.c
|
||||
+++ b/tools/widl/write_sltg.c
|
||||
@@ -203,6 +203,12 @@ struct sltg_hrefinfo
|
||||
|
||||
#include "poppack.h"
|
||||
|
||||
+static void add_structure_typeinfo(struct sltg_typelib *typelib, type_t *type);
|
||||
+static void add_interface_typeinfo(struct sltg_typelib *typelib, type_t *type);
|
||||
+static void add_enum_typeinfo(struct sltg_typelib *typelib, type_t *type);
|
||||
+static void add_union_typeinfo(struct sltg_typelib *typelib, type_t *type);
|
||||
+static void add_coclass_typeinfo(struct sltg_typelib *typelib, type_t *type);
|
||||
+
|
||||
static void init_sltg_data(struct sltg_data *data)
|
||||
{
|
||||
data->size = 0;
|
||||
@@ -461,11 +467,6 @@ static void append_data(struct sltg_data *block, const void *data, int size)
|
||||
block->size = new_size;
|
||||
}
|
||||
|
||||
-static void add_typedef_typeinfo(struct sltg_typelib *typelib, type_t *type)
|
||||
-{
|
||||
- error("add_typedef_typeinfo: %s not implemented\n", type->name);
|
||||
-}
|
||||
-
|
||||
static void add_module_typeinfo(struct sltg_typelib *typelib, type_t *type)
|
||||
{
|
||||
error("add_module_typeinfo: %s not implemented\n", type->name);
|
||||
@@ -747,8 +748,8 @@ static int local_href(struct sltg_hrefmap *hrefmap, int typelib_href)
|
||||
return href << 2;
|
||||
}
|
||||
|
||||
-static short write_var_desc(struct sltg_data *data, type_t *type, short flags, short base_offset,
|
||||
- int *size_instance, struct sltg_hrefmap *hrefmap)
|
||||
+static short write_var_desc(struct sltg_typelib *typelib, struct sltg_data *data, type_t *type, short flags,
|
||||
+ short base_offset, int *size_instance, struct sltg_hrefmap *hrefmap)
|
||||
{
|
||||
short vt, vt_flags, desc_offset;
|
||||
|
||||
@@ -840,10 +841,10 @@ static short write_var_desc(struct sltg_data *data, type_t *type, short flags, s
|
||||
chat("write_var_desc: vt VT_PTR | 0x0400\n");
|
||||
vt = VT_PTR | 0x0400;
|
||||
append_data(data, &vt, sizeof(vt));
|
||||
- write_var_desc(data, ref, 0, base_offset, size_instance, hrefmap);
|
||||
+ write_var_desc(typelib, data, ref, 0, base_offset, size_instance, hrefmap);
|
||||
}
|
||||
else
|
||||
- write_var_desc(data, ref, 0x0e00, base_offset, size_instance, hrefmap);
|
||||
+ write_var_desc(typelib, data, ref, 0x0e00, base_offset, size_instance, hrefmap);
|
||||
return desc_offset;
|
||||
}
|
||||
|
||||
@@ -862,6 +863,33 @@ static short write_var_desc(struct sltg_data *data, type_t *type, short flags, s
|
||||
chat("write_var_desc: VT_USERDEFINED, type %p, name %s, real type %d, href %d\n",
|
||||
type, type->name, type_get_type(type), type->typelib_idx);
|
||||
|
||||
+ if (type->typelib_idx == -1)
|
||||
+ {
|
||||
+ chat("write_var_desc: trying to ref not added type\n");
|
||||
+
|
||||
+ switch (type_get_type(type))
|
||||
+ {
|
||||
+ case TYPE_STRUCT:
|
||||
+ add_structure_typeinfo(typelib, type);
|
||||
+ break;
|
||||
+ case TYPE_INTERFACE:
|
||||
+ add_interface_typeinfo(typelib, type);
|
||||
+ break;
|
||||
+ case TYPE_ENUM:
|
||||
+ add_enum_typeinfo(typelib, type);
|
||||
+ break;
|
||||
+ case TYPE_UNION:
|
||||
+ add_union_typeinfo(typelib, type);
|
||||
+ break;
|
||||
+ case TYPE_COCLASS:
|
||||
+ add_coclass_typeinfo(typelib, type);
|
||||
+ break;
|
||||
+ default:
|
||||
+ error("write_var_desc: VT_USERDEFINED - unhandled type %d\n",
|
||||
+ type_get_type(type));
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
if (type->typelib_idx == -1)
|
||||
error("write_var_desc: trying to ref not added type\n");
|
||||
|
||||
@@ -888,6 +916,8 @@ static void add_structure_typeinfo(struct sltg_typelib *typelib, type_t *type)
|
||||
int member_offset, var_count = 0, var_data_size = 0, size_instance = 0;
|
||||
short *type_desc_offset = NULL;
|
||||
|
||||
+ if (type->typelib_idx != -1) return;
|
||||
+
|
||||
chat("add_structure_typeinfo: type %p, type->name %s\n", type, type->name);
|
||||
|
||||
type->typelib_idx = typelib->n_file_blocks;
|
||||
@@ -897,8 +927,6 @@ static void add_structure_typeinfo(struct sltg_typelib *typelib, type_t *type)
|
||||
|
||||
init_sltg_data(&data);
|
||||
|
||||
- index_name = add_typeinfo_block(typelib, type, TKIND_RECORD);
|
||||
-
|
||||
if (type_struct_get_fields(type))
|
||||
{
|
||||
int i = 0;
|
||||
@@ -913,13 +941,13 @@ static void add_structure_typeinfo(struct sltg_typelib *typelib, type_t *type)
|
||||
{
|
||||
short base_offset;
|
||||
|
||||
- chat("add_structure_typeinfo: var %p, name %s, type %p\n",
|
||||
- var, var->name, var->declspec.type);
|
||||
+ chat("add_structure_typeinfo: var %p (%s), type %p (%s)\n",
|
||||
+ var, var->name, var->declspec.type, var->declspec.type->name);
|
||||
|
||||
init_sltg_data(&var_data[i]);
|
||||
|
||||
base_offset = var_data_size + (i + 1) * sizeof(struct sltg_variable);
|
||||
- type_desc_offset[i] = write_var_desc(&var_data[i], var->declspec.type, 0, base_offset, &size_instance, &hrefmap);
|
||||
+ type_desc_offset[i] = write_var_desc(typelib, &var_data[i], var->declspec.type, 0, base_offset, &size_instance, &hrefmap);
|
||||
dump_var_desc(var_data[i].data, var_data[i].size);
|
||||
|
||||
if (var_data[i].size > sizeof(short))
|
||||
@@ -928,6 +956,8 @@ static void add_structure_typeinfo(struct sltg_typelib *typelib, type_t *type)
|
||||
}
|
||||
}
|
||||
|
||||
+ index_name = add_typeinfo_block(typelib, type, TKIND_RECORD);
|
||||
+
|
||||
init_typeinfo(&ti, type, TKIND_RECORD, &hrefmap);
|
||||
append_data(&data, &ti, sizeof(ti));
|
||||
|
||||
@@ -1064,12 +1094,8 @@ static void add_statement(struct sltg_typelib *typelib, const statement_t *stmt)
|
||||
|
||||
LIST_FOR_EACH_ENTRY(ref, stmt->u.type_list, typeref_t, entry)
|
||||
{
|
||||
- /* if the type is public then add the typedef, otherwise attempt
|
||||
- * to add the aliased type */
|
||||
- if (is_attr(ref->type->attrs, ATTR_PUBLIC))
|
||||
- add_typedef_typeinfo(typelib, ref->type);
|
||||
- else
|
||||
- add_type_typeinfo(typelib, type_alias_get_aliasee_type(ref->type));
|
||||
+ /* in old style typelibs all types are public */
|
||||
+ add_type_typeinfo(typelib, ref->type);
|
||||
}
|
||||
break;
|
||||
}
|
||||
--
|
||||
2.20.1
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -1,185 +0,0 @@
|
||||
From 95266a585cb4c924250c900a3b8c3c63ebbf0699 Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
Date: Tue, 19 Jan 2016 18:44:00 +0800
|
||||
Subject: widl: Add support for inherited interfaces to SLTG typelib generator.
|
||||
|
||||
---
|
||||
tools/widl/write_sltg.c | 90 +++++++++++++++++++++++++++++++++++++++----------
|
||||
1 file changed, 73 insertions(+), 17 deletions(-)
|
||||
|
||||
diff --git a/tools/widl/write_sltg.c b/tools/widl/write_sltg.c
|
||||
index 556816f..c8a8cfb 100644
|
||||
--- a/tools/widl/write_sltg.c
|
||||
+++ b/tools/widl/write_sltg.c
|
||||
@@ -225,6 +225,22 @@ struct sltg_function
|
||||
#endif
|
||||
};
|
||||
|
||||
+struct sltg_impl_info
|
||||
+{
|
||||
+ short res00;
|
||||
+ short next;
|
||||
+ short res04;
|
||||
+ char impltypeflags;
|
||||
+ char res07;
|
||||
+ short res08;
|
||||
+ short ref;
|
||||
+ short res0c;
|
||||
+ short res0e;
|
||||
+ short res10;
|
||||
+ short res12;
|
||||
+ short pos;
|
||||
+};
|
||||
+
|
||||
#include "poppack.h"
|
||||
|
||||
static void add_structure_typeinfo(struct sltg_typelib *typelib, type_t *type);
|
||||
@@ -1311,18 +1327,39 @@ static int add_func_desc(struct sltg_typelib *typelib, struct sltg_data *data, v
|
||||
return data->size - old_size;
|
||||
}
|
||||
|
||||
+static void write_impl_href(struct sltg_data *data, short href)
|
||||
+{
|
||||
+ struct sltg_impl_info impl_info;
|
||||
+
|
||||
+ impl_info.res00 = 0x004a;
|
||||
+ impl_info.next = -1;
|
||||
+ impl_info.res04 = -1;
|
||||
+ impl_info.impltypeflags = 0;
|
||||
+ impl_info.res07 = 0x80;
|
||||
+ impl_info.res08 = 0x0012;
|
||||
+ impl_info.ref = href;
|
||||
+ impl_info.res0c = 0x4001;
|
||||
+ impl_info.res0e = -2; /* 0xfffe */
|
||||
+ impl_info.res10 = -1;
|
||||
+ impl_info.res12 = 0x001d;
|
||||
+ impl_info.pos = 0;
|
||||
+
|
||||
+ append_data(data, &impl_info, sizeof(impl_info));
|
||||
+}
|
||||
+
|
||||
static void add_interface_typeinfo(struct sltg_typelib *typelib, type_t *iface)
|
||||
{
|
||||
const statement_t *stmt_func;
|
||||
importinfo_t *ref_importinfo = NULL;
|
||||
- type_t *inherit;
|
||||
+ short inherit_href = -1;
|
||||
struct sltg_data data;
|
||||
struct sltg_hrefmap hrefmap;
|
||||
const char *index_name;
|
||||
struct sltg_typeinfo_header ti;
|
||||
struct sltg_member_header member;
|
||||
struct sltg_tail tail;
|
||||
- int member_offset, base_offset, func_count, func_data_size, i;
|
||||
+ int member_offset, base_offset, func_data_size, i;
|
||||
+ int func_count, inherited_func_count = 0;
|
||||
|
||||
if (iface->typelib_idx != -1) return;
|
||||
|
||||
@@ -1340,13 +1377,16 @@ static void add_interface_typeinfo(struct sltg_typelib *typelib, type_t *iface)
|
||||
return;
|
||||
}
|
||||
|
||||
- inherit = type_iface_get_inherit(iface);
|
||||
+ hrefmap.href_count = 0;
|
||||
+ hrefmap.href = NULL;
|
||||
|
||||
- if (inherit)
|
||||
+ if (type_iface_get_inherit(iface))
|
||||
{
|
||||
- chat("add_interface_typeinfo: inheriting from base interface %s\n", inherit->name);
|
||||
+ type_t *inherit;
|
||||
|
||||
- warning("inheriting from base interface %s is not implemented\n", inherit->name);
|
||||
+ inherit = type_iface_get_inherit(iface);
|
||||
+
|
||||
+ chat("add_interface_typeinfo: inheriting from base interface %s\n", inherit->name);
|
||||
|
||||
ref_importinfo = find_importinfo(typelib->typelib, inherit->name);
|
||||
|
||||
@@ -1355,6 +1395,14 @@ static void add_interface_typeinfo(struct sltg_typelib *typelib, type_t *iface)
|
||||
|
||||
if (ref_importinfo)
|
||||
error("support for imported interfaces is not implemented\n");
|
||||
+
|
||||
+ inherit_href = local_href(&hrefmap, inherit->typelib_idx);
|
||||
+
|
||||
+ while (inherit)
|
||||
+ {
|
||||
+ inherited_func_count += list_count(type_iface_get_stmts(inherit));
|
||||
+ inherit = type_iface_get_inherit(inherit);
|
||||
+ }
|
||||
}
|
||||
|
||||
/* check typelib_idx again, it could have been added while resolving the parent interface */
|
||||
@@ -1363,9 +1411,6 @@ static void add_interface_typeinfo(struct sltg_typelib *typelib, type_t *iface)
|
||||
iface->typelib_idx = typelib->n_file_blocks;
|
||||
|
||||
/* pass 1: calculate function descriptions data size */
|
||||
- hrefmap.href_count = 0;
|
||||
- hrefmap.href = NULL;
|
||||
-
|
||||
init_sltg_data(&data);
|
||||
|
||||
STATEMENTS_FOR_EACH_FUNC(stmt_func, type_iface_get_stmts(iface))
|
||||
@@ -1388,19 +1433,21 @@ static void add_interface_typeinfo(struct sltg_typelib *typelib, type_t *iface)
|
||||
write_hrefmap(&data, &hrefmap);
|
||||
|
||||
member_offset = data.size;
|
||||
+ base_offset = 0;
|
||||
|
||||
member.res00 = 0x0001;
|
||||
member.res02 = 0xffff;
|
||||
member.res04 = 0x01;
|
||||
member.extra = func_data_size;
|
||||
+ if (inherit_href != -1)
|
||||
+ {
|
||||
+ member.extra += sizeof(struct sltg_impl_info);
|
||||
+ base_offset += sizeof(struct sltg_impl_info);
|
||||
+ }
|
||||
append_data(&data, &member, sizeof(member));
|
||||
|
||||
- base_offset = 0;
|
||||
-
|
||||
- /* inheriting from base interface is not implemented yet
|
||||
- if (type_iface_get_inherit(iface))
|
||||
- add_impl_type(typeinfo, type_iface_get_inherit(iface), ref_importinfo);
|
||||
- */
|
||||
+ if (inherit_href != -1)
|
||||
+ write_impl_href(&data, inherit_href);
|
||||
|
||||
i = 0;
|
||||
|
||||
@@ -1408,7 +1455,8 @@ static void add_interface_typeinfo(struct sltg_typelib *typelib, type_t *iface)
|
||||
{
|
||||
if (i == func_count - 1) i |= 0x80000000;
|
||||
|
||||
- base_offset += add_func_desc(typelib, &data, stmt_func->u.var, i, base_offset, &hrefmap);
|
||||
+ base_offset += add_func_desc(typelib, &data, stmt_func->u.var,
|
||||
+ inherited_func_count + i, base_offset, &hrefmap);
|
||||
i++;
|
||||
}
|
||||
|
||||
@@ -1419,10 +1467,18 @@ static void add_interface_typeinfo(struct sltg_typelib *typelib, type_t *iface)
|
||||
tail.funcs_bytes = func_data_size;
|
||||
tail.cbSizeInstance = pointer_size;
|
||||
tail.cbAlignment = pointer_size;
|
||||
- tail.cbSizeVft = func_count * pointer_size;
|
||||
+ tail.cbSizeVft = (inherited_func_count + func_count) * pointer_size;
|
||||
tail.type_bytes = data.size - member_offset - sizeof(member);
|
||||
tail.res24 = 0;
|
||||
tail.res26 = 0;
|
||||
+ if (inherit_href != -1)
|
||||
+ {
|
||||
+ tail.cImplTypes++;
|
||||
+ tail.impls_off = 0;
|
||||
+ tail.impls_bytes = 0;
|
||||
+
|
||||
+ tail.funcs_off += sizeof(struct sltg_impl_info);
|
||||
+ }
|
||||
append_data(&data, &tail, sizeof(tail));
|
||||
|
||||
add_block(typelib, data.data, data.size, index_name);
|
||||
--
|
||||
2.6.4
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 2bb3073bab5575a0a346ed25cde1a52da6f70a36 Mon Sep 17 00:00:00 2001
|
||||
From 19d54067c5e9a44b4f4f319cd61232665f7fb01a Mon Sep 17 00:00:00 2001
|
||||
From: Ken Thomases <ken@codeweavers.com>
|
||||
Date: Tue, 22 Jun 2021 07:56:43 +1000
|
||||
Subject: [PATCH] winemac.drv: No Flicker patch
|
||||
@@ -10,7 +10,7 @@ Subject: [PATCH] winemac.drv: No Flicker patch
|
||||
3 files changed, 6 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/winemac.drv/macdrv.h b/dlls/winemac.drv/macdrv.h
|
||||
index a1cdcc76ebc..14db3930474 100644
|
||||
index f5793006c35..0aa4d651d70 100644
|
||||
--- a/dlls/winemac.drv/macdrv.h
|
||||
+++ b/dlls/winemac.drv/macdrv.h
|
||||
@@ -44,6 +44,7 @@
|
||||
@@ -22,20 +22,20 @@ index a1cdcc76ebc..14db3930474 100644
|
||||
extern const char* debugstr_cf(CFTypeRef t);
|
||||
|
||||
diff --git a/dlls/winemac.drv/macdrv_main.c b/dlls/winemac.drv/macdrv_main.c
|
||||
index b40bf02f267..bc630305175 100644
|
||||
index acfad65ea81..aff0181e253 100644
|
||||
--- a/dlls/winemac.drv/macdrv_main.c
|
||||
+++ b/dlls/winemac.drv/macdrv_main.c
|
||||
@@ -60,6 +60,7 @@ int use_precise_scrolling = TRUE;
|
||||
int gl_surface_mode = GL_SURFACE_IN_FRONT_OPAQUE;
|
||||
@@ -61,6 +61,7 @@ int gl_surface_mode = GL_SURFACE_IN_FRONT_OPAQUE;
|
||||
int retina_enabled = FALSE;
|
||||
int enable_app_nap = FALSE;
|
||||
int eager_dock_icon_hiding = TRUE;
|
||||
+BOOL force_backing_store = FALSE;
|
||||
|
||||
CFDictionaryRef localized_strings;
|
||||
|
||||
@@ -378,6 +379,9 @@ static void setup_options(void)
|
||||
if (!get_config_key(hkey, appkey, "EnableAppNap", buffer, sizeof(buffer)))
|
||||
enable_app_nap = IS_OPTION_TRUE(buffer[0]);
|
||||
@@ -382,6 +383,9 @@ static void setup_options(void)
|
||||
if (!get_config_key(hkey, appkey, "EagerDockIconHiding", buffer, sizeof(buffer)))
|
||||
eager_dock_icon_hiding = IS_OPTION_TRUE(buffer[0]);
|
||||
|
||||
+ if (!get_config_key(hkey, appkey, "ForceOpenGLBackingStore", buffer, sizeof(buffer)))
|
||||
+ force_backing_store = IS_OPTION_TRUE(buffer[0]);
|
||||
@@ -57,5 +57,5 @@ index f78454ed149..205c0816d44 100644
|
||||
|
||||
if (core)
|
||||
--
|
||||
2.42.0
|
||||
2.43.0
|
||||
|
||||
|
@@ -1 +1 @@
|
||||
Wine Staging 9.6
|
||||
Wine Staging 9.7
|
||||
|
@@ -1 +1 @@
|
||||
8a3b0d7bc317aada750769af8f82762c7001acad
|
||||
166895ae3ad3890ad946a309d0fd85e89ea3630e
|
||||
|
Reference in New Issue
Block a user