acme
Foundational cross-platform layer of the ca2 framework
Toggle main menu visibility
Loading...
Searching...
No Matches
wparam.h
1
// From lparam.h by camilo on 2026-04-18 12:07 <3ThomasBorregaardSørensen!!
2
#pragma once
3
4
5
#include "acme/prototype/prototype/pointer.h"
6
#include "acme/platform/lparam.h"
7
8
9
class
CLASS_DECL_ACME wparam
10
{
11
public
:
12
13
14
iptr m_wparam;
15
16
17
constexpr
wparam(nullptr_t =
nullptr
) { m_wparam = 0; }
18
19
template
< prototype_
int
egral_number INTEGRAL_NUMBER >
20
constexpr
wparam(INTEGRAL_NUMBER i) { m_wparam = (iptr)i; }
21
template
< prototype_size SIZE >
22
constexpr
wparam(
const
SIZE & size):wparam((::i32)size.cx, (::i32) size.cy) {}
23
template
< prototype_po
int
POINT >
24
constexpr
wparam(
const
POINT & point);
25
constexpr
wparam(
const
lparam
&
lparam
) { m_wparam =
lparam
.m_lparam; }
26
wparam(::i32 x, ::i32 y) { m_wparam = make_u32(x, y); }
27
28
30
inline
wparam
(
void
* p) { m_wparam = (iptr)p; }
31
32
34
wparam
(const ::subparticle * psubparticle);
35
36
#if REFERENCING_DEBUGGING
37
39
wparam
(
::subparticle
* psubparticle, ::reference_referer * preferer);
40
41
#endif
42
44
template
<
typename
T >
45
inline
wparam
(
const
pointer < T > & p) : wparam((const ::
subparticle
*) p.m_p) { }
46
//template < typename T >
47
//inline wparam(const ptr < T > & p) : wparam((const ::subparticle *) p.m_p) { }
48
49
template
<
typename
T >
50
inline
wparam
(pointer < T > && p) :
wparam
(p.m_p REFDBG(, p.m_preferer)) { p.m_p =
nullptr
; p.m_psubparticle =
nullptr
; REFDBG(p.m_preferer =
nullptr
); }
51
//template < typename T >
52
//inline wparam(ptr < T > && p) : wparam(p.m_p REFDBG(, p.m_preferer)) { p.m_p = nullptr; REFDBG(p.m_preferer = nullptr); }
53
54
55
constexpr
wparam(
const
wparam & wparam)
56
{
57
58
m_wparam = wparam.m_wparam;
59
60
}
61
62
63
operator
iptr &()
64
{
65
66
return
m_wparam;
67
68
}
69
70
constexpr
operator
iptr ()
const
71
{
72
73
return
m_wparam;
74
75
}
76
77
operator
void
* &()
78
{
79
80
return
(
void
* &) m_wparam;
81
82
}
83
84
operator
void
* ()
const
85
{
86
87
return
(
void
*) m_wparam;
88
89
}
90
91
92
template
<
typename
T >
93
constexpr
T raw_cast()
const
94
{
95
96
return
(T) m_wparam;
97
98
}
99
100
101
constexpr
wparam& operator = (
const
wparam & wparam)
102
{
103
104
m_wparam = wparam.m_wparam;
105
106
return
*
this
;
107
108
}
109
110
111
constexpr
wparam& operator = (iptr wparam)
112
{
113
114
m_wparam = wparam;
115
116
return
*
this
;
117
118
}
119
120
121
constexpr
wparam &operator=(
const
lparam &lparam)
122
{
123
124
m_wparam = lparam.m_lparam;
125
126
return
*
this
;
127
128
}
129
130
131
constexpr ::i16 x()
const
132
{
133
134
return ::iptr_int_x(m_wparam);
135
136
}
137
138
139
constexpr ::i16 y()
const
140
{
141
142
return ::iptr_int_y(m_wparam);
143
144
}
145
146
constexpr ::i16 hiword()
const
{
return
__hiword(m_wparam); }
147
constexpr ::i16 loword()
const
{
return
__loword(m_wparam); }
148
149
constexpr ::i32_point point()
const
;
150
151
};
152
153
154
//template < class T >
155
// inline bool operator ==(wparam l, const pointer < T > & pointer) { return ((::subparticle *) l.m_wparam) == pointer.m_psubparticle; }
156
//
157
//
158
//template < class T >
159
// inline bool operator !=(wparam l, const pointer < T > & pointer) { return ((::subparticle *) l.m_wparam) != pointer.m_psubparticle; }
160
//
161
162
163
constexpr
lparam::lparam(
const
wparam
&
wparam
)
164
{
165
166
167
m_lparam = wparam.m_wparam;
168
169
}
170
171
172
lparam
Definition
lparam.h:9
subparticle
Definition
subparticle.h:78
wparam
Definition
wparam.h:10
wparam::wparam
wparam(void *p)
catching/receiving subparticle
Definition
wparam.h:30
wparam::wparam
wparam(const pointer< T > &p)
posting/sending subparticle
Definition
wparam.h:45
platform
wparam.h
Generated by
1.17.0