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