View Issue Details

IDProjectCategoryView StatusLast Update
0004272NoesisGUIC++ SDKpublic2025-06-30 16:05
ReporterFrancoisRecisio Assigned Tojsantos  
PrioritynormalSeverityminor 
Status resolvedResolutionwon't fix 
Product Version3.2.8 
Summary0004272: Noesis::Color::FromPackedRGBA constructs ABGR colors
Description

For example:
Noesis::Color::FromPackedRGBA(0xFF00FF00); => green
Noesis::Color::FromPackedRGBA(0xFFFF0000); => blue

We would expect
Noesis::Color::FromPackedRGBA(0x00FF00FF); => green
Noesis::Color::FromPackedRGBA(0x0000FFFF); => blue

PlatformAny

Activities

jsantos

jsantos

2025-06-30 12:09

manager   ~0010881

Thank you for pointing this out.

You're correct that the current behavior may seem counterintuitive without more context. However, terms like RGBA and BGRA are inherently ambiguous unless paired with a clear definition of:

  • Bit significance (which channel is in which bit position of the uint32_t)
  • Endianness (how those bits are laid out in memory)

For example, in a little-endian system (like x86/x64), a uint32_t value such as 0xFF0000FF will be laid out in memory as [0xFF, 0x00, 0x00, 0xFF], which is BGRA in memory but ABGR in bits.

Our current implementation originates probably from WPF or DirectX.

You're absolutely right that it would be possible to redefine the packing convention. However, doing so now would risk breaking existing integrations that already rely on the current behavior. For that reason, we consider this behavior legacy but stable.

FrancoisRecisio

FrancoisRecisio

2025-06-30 15:00

reporter   ~0010884

I didn't have the context, indeed I understand that you don't want to change that now. Sorry about that!

jsantos

jsantos

2025-06-30 16:05

manager   ~0010885

Always, thanks for your valuable feedback!

Issue History

Date Modified Username Field Change
2025-06-30 10:35 FrancoisRecisio New Issue
2025-06-30 12:09 jsantos Note Added: 0010881
2025-06-30 12:09 jsantos Assigned To => jsantos
2025-06-30 12:09 jsantos Status new => assigned
2025-06-30 12:09 jsantos Status assigned => feedback
2025-06-30 15:00 FrancoisRecisio Note Added: 0010884
2025-06-30 15:00 FrancoisRecisio Status feedback => assigned
2025-06-30 16:05 jsantos Status assigned => resolved
2025-06-30 16:05 jsantos Resolution open => won't fix
2025-06-30 16:05 jsantos Note Added: 0010885