finish build in linux

This commit is contained in:
SepComet 2026-06-05 19:22:48 +08:00
parent 9db7e06aa1
commit a56bbe6f76
2 changed files with 50 additions and 49 deletions

1
.gitignore vendored
View File

@ -56,3 +56,4 @@ omc
omx
build-win
build-linux

View File

@ -66,7 +66,10 @@ static ProjectedVertex ProjectToScreen(
}
const Vector4 screen = viewport * Vector4(ndcX, ndcY, ndcZ, 1.0f);
return { Math::Vector3(screen.x, screen.y, screen.z), true };
ProjectedVertex result;
result.screen = Vector3(screen.x, screen.y, screen.z);
result.visible = true;
return result;
}
static bool IsFaceVisible(const CubeFace &face, const std::array<Math::Vector3, 8> &viewSpaceVertices)
@ -81,7 +84,8 @@ static bool IsFaceVisible(const CubeFace& face, const std::array<Math::Vector3,
(viewSpaceVertices[face.vertices[0]] +
viewSpaceVertices[face.vertices[1]] +
viewSpaceVertices[face.vertices[2]] +
viewSpaceVertices[face.vertices[3]]) / 4.0f;
viewSpaceVertices[face.vertices[3]]) /
4.0f;
return faceNormal.dot(faceCenter) > 0.0f;
}
@ -130,8 +134,7 @@ int main(int argc, char* argv[])
Math::Vector3(-0.5f, -0.5f, 0.5f),
Math::Vector3(0.5f, -0.5f, 0.5f),
Math::Vector3(0.5f, 0.5f, 0.5f),
Math::Vector3(-0.5f, 0.5f, 0.5f)
};
Math::Vector3(-0.5f, 0.5f, 0.5f)};
const std::array<CubeFace, 6> cubeFaces = {
CubeFace{{0, 3, 2, 1}},
@ -139,16 +142,14 @@ int main(int argc, char* argv[])
CubeFace{{0, 4, 7, 3}},
CubeFace{{1, 2, 6, 5}},
CubeFace{{0, 1, 5, 4}},
CubeFace{ { 3, 7, 6, 2 } }
};
CubeFace{{3, 7, 6, 2}}};
const std::array<CubeTriangle, 12> cubeTriangles = {
CubeTriangle{{0, 3, 2}}, CubeTriangle{{0, 2, 1}},
CubeTriangle{{4, 5, 6}}, CubeTriangle{{4, 6, 7}},
CubeTriangle{{0, 4, 7}}, CubeTriangle{{0, 7, 3}},
CubeTriangle{{1, 2, 6}}, CubeTriangle{{1, 6, 5}},
CubeTriangle{{0, 1, 5}}, CubeTriangle{{0, 5, 4}},
CubeTriangle{ { 3, 7, 6 } }, CubeTriangle{ { 3, 6, 2 } }
};
CubeTriangle{{3, 7, 6}}, CubeTriangle{{3, 6, 2}}};
const RenderData::Color clearColor(18, 18, 24, 255);
const RenderData::Color cubeColor(240, 240, 240, 255);
@ -211,8 +212,7 @@ int main(int argc, char* argv[])
RenderData::Triangle(
Scene::Vertex(v0.screen),
Scene::Vertex(v1.screen),
Scene::Vertex(v2.screen)
);
Scene::Vertex(v2.screen));
}
for (size_t i = 0; i < drawCommandCount; ++i)