mirror of
https://github.com/bkaradzic/bgfx.git
synced 2026-02-17 20:52:36 +01:00
Add C99 api : bgfx_vertex_decl_decode and bgfx_vertex_decl_has (#1423)
This commit is contained in:
@@ -1675,6 +1675,9 @@ namespace bgfx
|
||||
VertexDecl& skip(uint8_t _num);
|
||||
|
||||
/// Decode attribute.
|
||||
///
|
||||
/// @attention C99 equivalent is `bgfx_vertex_decl_decode`.
|
||||
///
|
||||
void decode(
|
||||
Attrib::Enum _attrib
|
||||
, uint8_t& _num
|
||||
@@ -1684,6 +1687,9 @@ namespace bgfx
|
||||
) const;
|
||||
|
||||
/// Returns true if VertexDecl contains attribute.
|
||||
///
|
||||
/// @attention C99 equivalent is `bgfx_vertex_decl_has`.
|
||||
///
|
||||
bool has(Attrib::Enum _attrib) const { return UINT16_MAX != m_attributes[_attrib]; }
|
||||
|
||||
/// Returns relative attribute offset from the vertex.
|
||||
|
||||
@@ -656,6 +656,12 @@ BGFX_C_API void bgfx_vertex_decl_begin(bgfx_vertex_decl_t* _decl, bgfx_renderer_
|
||||
/**/
|
||||
BGFX_C_API void bgfx_vertex_decl_add(bgfx_vertex_decl_t* _decl, bgfx_attrib_t _attrib, uint8_t _num, bgfx_attrib_type_t _type, bool _normalized, bool _asInt);
|
||||
|
||||
/**/
|
||||
BGFX_C_API void bgfx_vertex_decl_decode(const bgfx_vertex_decl_t* _decl, bgfx_attrib_t _attrib, uint8_t *_num, bgfx_attrib_type_t *_type, bool *_normalized, bool *_asInt);
|
||||
|
||||
/**/
|
||||
BGFX_C_API bool bgfx_vertex_decl_has(const bgfx_vertex_decl_t* _decl, bgfx_attrib_t _attrib);
|
||||
|
||||
/**/
|
||||
BGFX_C_API void bgfx_vertex_decl_skip(bgfx_vertex_decl_t* _decl, uint8_t _num);
|
||||
|
||||
|
||||
19
src/bgfx.cpp
19
src/bgfx.cpp
@@ -4741,6 +4741,25 @@ BGFX_C_API void bgfx_vertex_decl_add(bgfx_vertex_decl_t* _decl, bgfx_attrib_t _a
|
||||
);
|
||||
}
|
||||
|
||||
BGFX_C_API void bgfx_vertex_decl_decode(const bgfx_vertex_decl_t* _decl, bgfx_attrib_t _attrib, uint8_t *_num, bgfx_attrib_type_t *_type, bool *_normalized, bool *_asInt)
|
||||
{
|
||||
bgfx::AttribType::Enum type;
|
||||
const bgfx::VertexDecl* decl = (const bgfx::VertexDecl*)_decl;
|
||||
decl->decode(bgfx::Attrib::Enum(_attrib)
|
||||
, *_num
|
||||
, type
|
||||
, *_normalized
|
||||
, *_asInt
|
||||
);
|
||||
*_type = (bgfx_attrib_type_t)type;
|
||||
}
|
||||
|
||||
BGFX_C_API bool bgfx_vertex_decl_has(const bgfx_vertex_decl_t* _decl, bgfx_attrib_t _attrib)
|
||||
{
|
||||
const bgfx::VertexDecl* decl = (const bgfx::VertexDecl*)_decl;
|
||||
return decl->has(bgfx::Attrib::Enum(_attrib));
|
||||
}
|
||||
|
||||
BGFX_C_API void bgfx_vertex_decl_skip(bgfx_vertex_decl_t* _decl, uint8_t _num)
|
||||
{
|
||||
bgfx::VertexDecl* decl = (bgfx::VertexDecl*)_decl;
|
||||
|
||||
Reference in New Issue
Block a user