Compare commits

...

6 Commits

Author SHA1 Message Date
RobEwbank1
3d0dbca736
Merge 308bdb235d into 761139559e 2023-07-11 10:08:10 +02:00
RobEwbank1
308bdb235d
Update render_pipeline.h 2023-02-22 15:23:45 +00:00
RobEwbank1
d0c9d20f67
Update render_pipeline.cpp 2023-02-22 15:22:33 +00:00
RobEwbank1
f6ddda8654
Update render_pipeline.cpp
Spelling
2023-02-22 15:21:06 +00:00
RobEwbank1
507668b61b
Update render_pipeline.h
Spelling
2023-02-22 15:18:13 +00:00
Rob Ewbank
ae6bf68664 Add ability to set the primitive type on materials 2023-02-22 15:03:39 +00:00
2 changed files with 33 additions and 0 deletions

View File

@ -319,6 +319,34 @@ void SetMaterialWriteRGBA(Material &m, bool write_r, bool write_g, bool write_b,
(write_r ? BGFX_STATE_WRITE_R : 0) | (write_g ? BGFX_STATE_WRITE_G : 0) | (write_b ? BGFX_STATE_WRITE_B : 0) | (write_a ? BGFX_STATE_WRITE_A : 0);
}
void SetMaterialPrimitiveType(Material &m, PrimitiveType primitive_type){
m.state.state &= ~BGFX_STATE_PT_MASK;
if (primitive_type == PRIM_T_TriangleStrip)
m.state.state |= BGFX_STATE_PT_TRISTRIP;
else if (primitive_type == PRIM_T_Lines)
m.state.state |= BGFX_STATE_PT_LINES;
else if (primitive_type == PRIM_T_LineStrip)
m.state.state |= BGFX_STATE_PT_LINESTRIP;
else if (primitive_type == PRIM_T_Points)
m.state.state |= BGFX_STATE_PT_POINTS;
}
PrimitiveType GetMaterialPrimitiveType(const Material &m)
{
const auto pt = m.state.state & BGFX_STATE_PT_MASK;
if (pt == BGFX_STATE_PT_TRISTRIP)
return PRIM_T_TriangleStrip;
if (pt == BGFX_STATE_PT_LINES)
return PRIM_T_Lines;
if (pt == BGFX_STATE_PT_LINESTRIP)
return PRIM_T_LineStrip;
if (pt == BGFX_STATE_PT_POINTS)
return PRIM_T_Points;
return PRIM_T_Triangle;
}
void SetMaterialWriteZ(Material &m, bool enable) {
if (enable)
m.state.state |= BGFX_STATE_WRITE_Z;

View File

@ -379,6 +379,11 @@ enum BlendMode { BM_Additive, BM_Alpha, BM_Darken, BM_Lighten, BM_Multiply, BM_O
BlendMode GetMaterialBlendMode(const Material &mat);
void SetMaterialBlendMode(Material &mat, BlendMode mode);
enum PrimitiveType { PRIM_T_Triangle, PRIM_T_TriangleStrip, PRIM_T_Lines, PRIM_T_LineStrip, PRIM_T_Points};
void SetMaterialPrimitiveType(Material &m, PrimitiveType primitive_type);
PrimitiveType GetMaterialPrimitiveType(const Material &m);
void GetMaterialWriteRGBA(const Material &m_, bool &write_r, bool &write_g, bool &write_b, bool &write_a);
void SetMaterialWriteRGBA(Material &m_, bool write_r, bool write_g, bool write_b, bool write_a);