mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-16 08:27:05 +00:00
Factor wire client handlers into proper command handlers and doers
Bug: dawn:88 Change-Id: I3ab28efad7edc7d06f11aa5abae07a1bb3d7e59e Reviewed-on: https://dawn-review.googlesource.com/c/4003 Commit-Queue: Austin Eng <enga@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
This commit is contained in:
committed by
Commit Bot service account
parent
cd4fd8e7cd
commit
1139d1c12c
@@ -27,13 +27,9 @@ def compute_wire_params(api_params, wire_json):
|
||||
commands = []
|
||||
return_commands = []
|
||||
|
||||
object_result_member = common.RecordMember(Name('result'), types['ObjectHandle'], 'value', False, True)
|
||||
|
||||
string_message_member = common.RecordMember(Name('message'), types['char'], 'const*', False, False)
|
||||
string_message_member.length = 'strlen'
|
||||
|
||||
built_object_member = common.RecordMember(Name('built object'), types['ObjectHandle'], 'value', False, False)
|
||||
|
||||
callback_status_member = common.RecordMember(Name('status'), types['uint32_t'], 'value', False, False)
|
||||
|
||||
# Generate commands from object methods
|
||||
@@ -50,7 +46,9 @@ def compute_wire_params(api_params, wire_json):
|
||||
|
||||
# Client->Server commands that return an object return the result object handle
|
||||
if method.return_type.category == 'object':
|
||||
members.append(object_result_member)
|
||||
result = common.RecordMember(Name('result'), types['ObjectHandle'], 'value', False, True)
|
||||
result.set_handle_type(method.return_type)
|
||||
members.append(result)
|
||||
|
||||
command_name = concat_names(api_object.name, method.name)
|
||||
command = common.Command(command_name, members)
|
||||
@@ -63,9 +61,10 @@ def compute_wire_params(api_params, wire_json):
|
||||
# This can be removed when WebGPU error handling is implemented
|
||||
if api_object.is_builder:
|
||||
command_name = concat_names(api_object.name, Name('error callback'))
|
||||
|
||||
built_object = common.RecordMember(Name('built object'), types['ObjectHandle'], 'value', False, False)
|
||||
built_object.set_handle_type(api_object.built_type)
|
||||
command = common.Command(command_name, [
|
||||
built_object_member,
|
||||
built_object,
|
||||
callback_status_member,
|
||||
string_message_member,
|
||||
])
|
||||
|
||||
Reference in New Issue
Block a user