ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   Общие вопросы программирования (https://forum.antichat.xyz/forumdisplay.php?f=206)
-   -   Разделение логики и ImGui (https://forum.antichat.xyz/showthread.php?t=1478217)

Receiver 26.05.2023 13:46

Здароу! Может быть знаете вайбовый способ отделения логики от ImGui? Я пробовал и MVC, и MVP, но это всё чёт не то, не подходит для Immediate.

reussssya 12.07.2023 19:46

Решил проблему? Если да, то как?

Receiver 12.07.2023 21:15

Цитата:

Сообщение от reussssya

Решил проблему? Если да, то как?

C++:





Код:

namespace
app
{
class
gui
{
public
:
std
::
function

onButtonClicked
;
void
setText
(
std
::
string text
)
;
void
run
(
)
;
}
;
class
net
{
public
:
std
::
function

onTextReceived
;
void
sendTextRequest
(
)
;
void
run
(
)
;
}
;
}
// namespace app
int
main
(
)
{
app
::
gui gui
;
app
::
net net
;
gui
.
onButtonClicked
=
[
&
net
]
(
)
{
// нужно обеспечить безопасность потоков (mutex)
net
.
sendTextRequest
(
)
;
}
;
net
.
onTextReceived
=
[
&
gui
]
(
std
::
string newText
)
{
// нужно обеспечить безопасность потоков (mutex)
gui
.
setText
(
newText
)
;
}
std
::
thread gui_thread
{
std
::
bind_front
(
&
app
::
gui
::
run
,
gui
)
}
;
std
::
thread net_thread
{
std
::
bind_front
(
&
app
::
net
::
run
,
net
)
}
;
// ждём завершения потоков
gui_thread
.
join
(
)
;
net_thread
.
join
(
)
;
}



Время: 16:31