HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #5451  
Старый 26.08.2021, 21:22
loganhackerdff
Постоянный
Регистрация: 24.07.2017
Сообщений: 867
С нами: 4633764

Репутация: 148


По умолчанию

Цитата:
Сообщение от kin4stat  

Кстати выше - не самое лучшее решение. Лучше хукать DrawIndexedPrimitive в пайплайне рендера педов(0x761142) и выставлять цвет пикселей через константы или пиксельный шейдер. Пример:

C:





Код:
sampler2D tex0
:
register
(
s0
)
;
extern
float3 dy
:
register
(
c0
)
;
float4
main
(
float2 tc
:
TEXCOORD0
)
:
COLOR
{
return
tex2D
(
tex0
,
tc
)
*
float4
(
dy
[
0
]
,
dy
[
1
]
,
dy
[
2
]
,
1.0
)
;
}


C++:





Код:
{
HRSRC hsrc
=
FindResourceW
(
reinterpret_cast

(
hmdl
)
,
MAKEINTRESOURCEW
(
IDR_HLSL2
)
,
L
"HLSL"
)
;
PVOID shader
=
LockResource
(
LoadResource
(
reinterpret_cast

(
hmdl
)
,
hsrc
)
)
;
pDevice
->
CreatePixelShader
(
reinterpret_cast

(
shader
)
,
&
pPixelShader
)
;
}


C++:





Код:
pDevice
->
SetPixelShader
(
pPixelShader
)
;
// Rainbow lol
if
(
bTact
)
{
HSVtoRGB
(
RGB
[
0
]
,
RGB
[
1
]
,
RGB
[
2
]
,
color
[
0
]
,
color
[
1
]
,
color
[
2
]
)
;
color
[
0
]
+=
2.0f
;
if
(
color
[
0
]
>=
360.0f
)
color
[
0
]
-=
360.0f
;
bTact
=
false
;
}
pDevice
->
SetPixelShaderConstantF
(
0
,
RGB
,
1
)
;
fpHkDrawIndexedPrimitive
(
pDevice
,
Type
,
BaseVertexIndex
,
MinVertexIndex
,
NumVertices
,
startIndex
,
primCount
)
;
pDevice
->
SetPixelShader
(
nullptr
)
;
return
D3D_OK
;

а может знаешь пайплайн рендера авто?
 
Ответить с цитированием

  #5452  
Старый 28.08.2021, 18:26
loganhackerdff
Постоянный
Регистрация: 24.07.2017
Сообщений: 867
С нами: 4633764

Репутация: 148


По умолчанию

всем привет, я столкнулся с прикольной проблемой, она заключается в том, что ИНОГДА std::vector при emplace_back у меня выбивает исключение this = nullptr

код класса

C++:





Код:
class
RenderClass
{
public
:
bool
m_bIsEnabled
{
false
}
;
//  визуалка 2019 показывает ошибку тут
std
::
string m_sName
{
""
}
;
private
:
std
::
vector

m_objectsRenders
;
std
::
vector

m_text3dRenders
;
std
::
vector

m_pickupRenders
;
public
:
RenderClass
(
)
;
RenderClass
(
const
char
*
szName
)
;
void
ReadWrite
(
READ_WRITE_PARAMS
)
;
bool
areAnyObjectRendersEnabled
(
)
;
bool
areAnyickupRendersEnabled
(
)
;
bool
areAnyText3DRendersEnabled
(
)
;
void
renderPickups
(
RenderPickup_ObjectData
*
pRenderPickupData
)
;
void
renderObjects
(
RenderPickup_ObjectData
*
pRenderObjectData
)
;
void
render3DTexts
(
Render3DTextData
*
p3DTextData
)
;
void
drawEditor
(
size_t spl
)
;
void
drawMenu
(
size_t i
)
;
}
;


Код с самим emplace_back()

C++:





[CODE]
void
CustomRender
::
ReadWrite
(
READ_WRITE_PARAMS
)
{
using
namespace
std
::
chrono_literals
;
try
{
FIELD_IV4
(
customRenderData
.
vec4Color
)
;
FIELD
(
customRenderData
.
bDrawLine
)
;
FIELD
(
customRenderData
.
m_fFontScale
)
;
FIELD
(
m_bEnabled
)
;
if
(
bRead
)
{
size_t i
=
0
;
while
(
true
)
{
if
(
data
[
"class"
]
[
std
::
to_string
(
i
)
.
c_str
(
)
]
.
is_null
(
)
)
break
;
auto
&&
renderClass
=
m_classes
.
emplace_back
(
)
;
// вот тут ошибка
renderClass
.
ReadWrite
(
data
[
"class"
]
[
std
::
to_string
(
i
)
.
c_str
(
)
]
,
bRead
)
;
i
++
;
}
}
else
{
for
(
size_t i
=
0
;
i



Цитата:
Сообщение от Спойлер  






 
Ответить с цитированием

  #5453  
Старый 28.08.2021, 18:33
kin4stat
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами: 4483143

Репутация: 183


По умолчанию

[QUOTE="loganhackerdff"]

всем привет, я столкнулся с прикольной проблемой, она заключается в том, что ИНОГДА std::vector при emplace_back у меня выбивает исключение this = nullptr
код класса

C++:





Код:
class
RenderClass
{
public
:
bool
m_bIsEnabled
{
false
}
;
//  визуалка 2019 показывает ошибку тут
std
::
string m_sName
{
""
}
;
private
:
std
::
vector

m_objectsRenders
;
std
::
vector

m_text3dRenders
;
std
::
vector

m_pickupRenders
;
public
:
RenderClass
(
)
;
RenderClass
(
const
char
*
szName
)
;
void
ReadWrite
(
READ_WRITE_PARAMS
)
;
bool
areAnyObjectRendersEnabled
(
)
;
bool
areAnyickupRendersEnabled
(
)
;
bool
areAnyText3DRendersEnabled
(
)
;
void
renderPickups
(
RenderPickup_ObjectData
*
pRenderPickupData
)
;
void
renderObjects
(
RenderPickup_ObjectData
*
pRenderObjectData
)
;
void
render3DTexts
(
Render3DTextData
*
p3DTextData
)
;
void
drawEditor
(
size_t spl
)
;
void
drawMenu
(
size_t i
)
;
}
;


Код с самим emplace_back()

C++:





[CODE]
void
CustomRender
::
ReadWrite
(
READ_WRITE_PARAMS
)
{
using
namespace
std
::
chrono_literals
;
try
{
FIELD_IV4
(
customRenderData
.
vec4Color
)
;
FIELD
(
customRenderData
.
bDrawLine
)
;
FIELD
(
customRenderData
.
m_fFontScale
)
;
FIELD
(
m_bEnabled
)
;
if
(
bRead
)
{
size_t i
=
0
;
while
(
true
)
{
if
(
data
[
"class"
]
[
std
::
to_string
(
i
)
.
c_str
(
)
]
.
is_null
(
)
)
break
;
auto
&&
renderClass
=
m_classes
.
emplace_back
(
)
;
// вот тут ошибка
renderClass
.
ReadWrite
(
data
[
"class"
]
[
std
::
to_string
(
i
)
.
c_str
(
)
]
,
bRead
)
;
i
++
;
}
}
else
{
for
(
size_t i
=
0
;
i
 
Ответить с цитированием

  #5454  
Старый 28.08.2021, 18:33
Dark_Knight
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами: 6921957

Репутация: 183


По умолчанию

А зачем 2 &&? Один вроде нужен. Да и лучше обращаться к елементам контейнеров через at и попробуй еще в try catch взять код и посмотреть, что за ошибку выдает.
 
Ответить с цитированием

  #5455  
Старый 28.08.2021, 18:36
loganhackerdff
Постоянный
Регистрация: 24.07.2017
Сообщений: 867
С нами: 4633764

Репутация: 148


По умолчанию

Цитата:
Сообщение от kin4stat  

Ну как минимум emlace_back возвращает lvalue reference, а у тебя auto&&, который rvalue reference
Цитата:
Сообщение от Dark_Knight  

А зачем 2 &&? Один вроде нужен. Да и лучше обращаться к елементам контейнеров через at и попробуй еще в try catch взять код и посмотреть, что за ошибку выдает.
всё равно выбивает, в консоль не выводиться сообщение о исключении, не доходит до него(я не забыл добавить)
 
Ответить с цитированием

  #5456  
Старый 28.08.2021, 18:37
kin4stat
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами: 4483143

Репутация: 183


По умолчанию

Цитата:
Сообщение от Dark_Knight  

try catch взять код и посмотреть, что за ошибку выдает.
try catch не ловит сегфолты
 
Ответить с цитированием

  #5457  
Старый 28.08.2021, 18:38
loganhackerdff
Постоянный
Регистрация: 24.07.2017
Сообщений: 867
С нами: 4633764

Репутация: 148


По умолчанию

так похоже что выбивает только при отладке в визуал студии

или просто намного чаще
 
Ответить с цитированием

  #5458  
Старый 28.08.2021, 18:40
kin4stat
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами: 4483143

Репутация: 183


По умолчанию

Цитата:
Сообщение от loganhackerdff  

так похоже что выбивает только при отладке в визуал студии

или просто намного чаще
попробуй добавить

RenderClass(RenderClass&) = default;

RenderClass(RenderClass&&) = default;
 
Ответить с цитированием

  #5459  
Старый 28.08.2021, 18:53
loganhackerdff
Постоянный
Регистрация: 24.07.2017
Сообщений: 867
С нами: 4633764

Репутация: 148


По умолчанию

cпс пацаны, замена && на & помогла, странно, у меня почти везде auto&& было написано, заменил, а с

RenderClass(RenderClass&) = default;

RenderClass(RenderClass&&) = default;

вообще не компилилось, даже по одной

А нет не помогла
 
Ответить с цитированием

  #5460  
Старый 28.08.2021, 19:19
kin4stat
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами: 4483143

Репутация: 183


По умолчанию

Цитата:
Сообщение от loganhackerdff  

RenderClass(RenderClass&) = default;
RenderClass(RenderClass&&) = default;
Их надо в паблик область видимости, внутрь класса RenderClass(надеюсь ты также пробовал)

И еще: C++17 стоит?
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.

×

Создать сделку

Продавец: ник или ID

Название сделки:

Сумма USDT:

Срок сделки, дней:

Кто платит комиссию:

Условия сделки:

После создания сделки средства будут зарезервированы в холде до завершения сделки.

×

Мои сделки

Загрузка...
×

Сделка


Загрузка чата...