Cherry-picked a few changes from Tech ENABLE_GL_CORE_PROFILE

This commit is contained in:
enricoturri1966 2023-10-27 23:23:57 +08:00 committed by Noisyfox
parent 5ce3ec716e
commit 4fb5b1f904
5 changed files with 37 additions and 5 deletions

View file

@ -97,6 +97,15 @@ void GLModel::Geometry::add_vertex(const Vec3f& position, const Vec3f& normal)
vertices.emplace_back(normal.z());
}
void GLModel::Geometry::add_vertex(const Vec4f& position)
{
assert(format.vertex_layout == EVertexLayout::P4);
vertices.emplace_back(position.x());
vertices.emplace_back(position.y());
vertices.emplace_back(position.z());
vertices.emplace_back(position.w());
}
void GLModel::Geometry::add_index(unsigned int id)
{
indices.emplace_back(id);
@ -234,6 +243,7 @@ size_t GLModel::Geometry::vertex_stride_floats(const Format& format)
case EVertexLayout::P3: { return 3; }
case EVertexLayout::P3T2: { return 5; }
case EVertexLayout::P3N3: { return 6; }
case EVertexLayout::P4: { return 4; }
default: { assert(false); return 0; }
};
}
@ -247,6 +257,7 @@ size_t GLModel::Geometry::position_stride_floats(const Format& format)
case EVertexLayout::P3:
case EVertexLayout::P3T2:
case EVertexLayout::P3N3: { return 3; }
case EVertexLayout::P4: { return 4; }
default: { assert(false); return 0; }
};
}
@ -259,7 +270,8 @@ size_t GLModel::Geometry::position_offset_floats(const Format& format)
case EVertexLayout::P2T2:
case EVertexLayout::P3:
case EVertexLayout::P3T2:
case EVertexLayout::P3N3: { return 0; }
case EVertexLayout::P3N3:
case EVertexLayout::P4: { return 0; }
default: { assert(false); return 0; }
};
}
@ -321,7 +333,8 @@ bool GLModel::Geometry::has_position(const Format& format)
case EVertexLayout::P2T2:
case EVertexLayout::P3:
case EVertexLayout::P3T2:
case EVertexLayout::P3N3: { return true; }
case EVertexLayout::P3N3:
case EVertexLayout::P4: { return true; }
default: { assert(false); return false; }
};
}
@ -333,7 +346,8 @@ bool GLModel::Geometry::has_normal(const Format& format)
case EVertexLayout::P2:
case EVertexLayout::P2T2:
case EVertexLayout::P3:
case EVertexLayout::P3T2: { return false; }
case EVertexLayout::P3T2:
case EVertexLayout::P4: { return false; }
case EVertexLayout::P3N3: { return true; }
default: { assert(false); return false; }
};
@ -347,7 +361,8 @@ bool GLModel::Geometry::has_tex_coord(const Format& format)
case EVertexLayout::P3T2: { return true; }
case EVertexLayout::P2:
case EVertexLayout::P3:
case EVertexLayout::P3N3: { return false; }
case EVertexLayout::P3N3:
case EVertexLayout::P4: { return false; }
default: { assert(false); return false; }
};
}