IceShard
1
A personal game engine project, with development focused on 2D/2.5D games.
Toggle main menu visibility
Loading...
Searching...
No Matches
tasks
public
ice
task_awaitable.hxx
Go to the documentation of this file.
1
3
4
#pragma once
5
#include <
ice/task_types.hxx
>
6
#include <
ice/task_flags.hxx
>
7
8
namespace
ice
9
{
10
11
enum class
TaskAwaitableModifier
:
ice::u32
12
{
13
Unused
= 0x0,
14
PriorityFlags
= 0x8000'0000,
15
DelayedExecution
= 0x4000'0000,
16
CustomValue
= 0x2000'0000,
17
CustomResumer
= 0x1000'0000,
18
};
19
20
struct
TaskAwaitableParams
21
{
22
ice::TaskAwaitableModifier
modifier
;
23
union
24
{
25
ice::u32
u32_value
;
26
ice::TaskFlags
task_flags
;
27
};
28
};
29
30
struct
TaskAwaitableResult
31
{
32
void
*
ptr
;
33
};
34
35
struct
TaskAwaitableBase
36
{
37
ice::TaskAwaitableParams
const
_params
;
38
ice::coroutine_handle<>
_coro
;
39
ice::TaskAwaitableBase
*
_next
;
40
ice::TaskAwaitableResult
result
;
41
};
42
43
using
FnCustomResumerFunc
= bool(*)(
void
* userdata,
ice::TaskAwaitableBase
const
& awaitable)
noexcept
;
44
45
struct
TaskAwaitableCustomResumer
46
{
47
FnCustomResumerFunc
fn_resumer
;
48
void
*
ud_resumer
;
49
};
50
51
// Callback aliases
52
using
FnTaskQueueFilter
= bool(*)(
ice::TaskAwaitableParams
params,
void
* userdata)
noexcept
;
53
54
}
// namespace ice
ice
SPDX-License-Identifier: MIT.
Definition
array.hxx:12
ice::TaskAwaitableModifier
TaskAwaitableModifier
Definition
task_awaitable.hxx:12
ice::TaskAwaitableModifier::CustomResumer
@ CustomResumer
Definition
task_awaitable.hxx:17
ice::TaskAwaitableModifier::CustomValue
@ CustomValue
Definition
task_awaitable.hxx:16
ice::TaskAwaitableModifier::DelayedExecution
@ DelayedExecution
Definition
task_awaitable.hxx:15
ice::TaskAwaitableModifier::Unused
@ Unused
Definition
task_awaitable.hxx:13
ice::TaskAwaitableModifier::PriorityFlags
@ PriorityFlags
Definition
task_awaitable.hxx:14
ice::FnCustomResumerFunc
bool(*)(void *userdata, ice::TaskAwaitableBase const &awaitable) noexcept FnCustomResumerFunc
Definition
task_awaitable.hxx:43
ice::coroutine_handle
std::coroutine_handle< Type > coroutine_handle
Definition
task_types.hxx:42
ice::u32
std::uint32_t u32
Definition
types.hxx:26
ice::FnTaskQueueFilter
bool(*)(ice::TaskAwaitableParams params, void *userdata) noexcept FnTaskQueueFilter
Definition
task_awaitable.hxx:52
ice::TaskAwaitableBase
Definition
task_awaitable.hxx:36
ice::TaskAwaitableBase::_next
ice::TaskAwaitableBase * _next
Definition
task_awaitable.hxx:39
ice::TaskAwaitableBase::_coro
ice::coroutine_handle _coro
Definition
task_awaitable.hxx:38
ice::TaskAwaitableBase::_params
ice::TaskAwaitableParams const _params
Definition
task_awaitable.hxx:37
ice::TaskAwaitableBase::result
ice::TaskAwaitableResult result
Definition
task_awaitable.hxx:40
ice::TaskAwaitableCustomResumer
Definition
task_awaitable.hxx:46
ice::TaskAwaitableCustomResumer::fn_resumer
FnCustomResumerFunc fn_resumer
Definition
task_awaitable.hxx:47
ice::TaskAwaitableCustomResumer::ud_resumer
void * ud_resumer
Definition
task_awaitable.hxx:48
ice::TaskAwaitableParams
Definition
task_awaitable.hxx:21
ice::TaskAwaitableParams::task_flags
ice::TaskFlags task_flags
Definition
task_awaitable.hxx:26
ice::TaskAwaitableParams::u32_value
ice::u32 u32_value
Definition
task_awaitable.hxx:25
ice::TaskAwaitableParams::modifier
ice::TaskAwaitableModifier modifier
Definition
task_awaitable.hxx:22
ice::TaskAwaitableResult
Definition
task_awaitable.hxx:31
ice::TaskAwaitableResult::ptr
void * ptr
Definition
task_awaitable.hxx:32
ice::TaskFlags
Definition
task_flags.hxx:42
task_flags.hxx
task_types.hxx
Generated by
1.18.0