Показать сообщение отдельно

  #1  
Старый 19.02.2023, 07:33
_=Gigant=_
Участник форума
Регистрация: 19.01.2017
Сообщений: 130
С нами: 4901705

Репутация: 98
По умолчанию

inline float ByteToFloat(unsigned char value)

{

return static_cast(value) / 255.0f;

}

ImVec4 D3DColorToImVec4(DWORD color)

{

float red = ByteToFloat((color >> 16) & 0xFF);

float green = ByteToFloat((color >> 8) & 0xFF);

float blue = ByteToFloat(color & 0xFF);

float alpha = ByteToFloat(color >> 24);

return ImVec4(red, green, blue, alpha);

}

Usage

DWORD d3dcolor = 0x00FF00FF; // Example color

ImVec4 imvec4 = D3DColorToImVec4(d3dcolor);

2# D3DCOLOR TO IMVEC4

unsigned char FloatToByte(float value)

{

return static_cast(value * 255.0f);

}

DWORD ImVec4ToD3DColor(const ImVec4& color)

{

unsigned char red = FloatToByte(color.x);

unsigned char green = FloatToByte(color.y);

unsigned char blue = FloatToByte(color.z);

unsigned char alpha = FloatToByte(color.w);

return D3DCOLOR_ARGB(alpha, red, green, blue);

}

ImVec4 imvec4(1.0f, 0.0f, 1.0f, 0.5f); //usage

DWORD d3dcolor = ImVec4ToD3DColor(imvec4);
 
Ответить с цитированием