mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-10-17 09:49:19 +02:00
Six module interfaces carry windows.h in their fragment, and a fragment's include guard does not cross the boundary, so a unit that imported first and included the SDK afterwards parsed it twice: clang reports it as conflicting redeclarations of BroadcastSystemMessageEx and mismatched uuids all through the SDK. Same shape as the basic_filebuf failure, one level further out - the header arrives through d3d12.h, not directly. Thirty units get a guarded windows.h ahead of everything; on Linux it is a no-op. Vendored single-header libraries are left alone, and the block goes after a BOM rather than before it.
41 lines
1023 B
C++
41 lines
1023 B
C++
#pragma once
|
|
#ifdef _WIN32
|
|
#include <windows.h> // before any import: its guard must be set here
|
|
#endif
|
|
|
|
#include <memory>
|
|
|
|
#include "nvrenderer/nvrenderer.h"
|
|
|
|
// TSubModel/TModel3d are owned by the simulation core; a forward
|
|
// declaration here would be a second, conflicting declaration.
|
|
|
|
#include <array>
|
|
#include <chrono>
|
|
#include <cstddef>
|
|
#include <deque>
|
|
#include <limits>
|
|
#include <mutex>
|
|
#include <ostream>
|
|
#include <sstream>
|
|
#include <string>
|
|
#include <type_traits>
|
|
#include <unordered_map>
|
|
#include <utility>
|
|
#include <vector>
|
|
import eu07.simcore;
|
|
import eu07.glm;
|
|
namespace Rt {
|
|
struct IRtModel {
|
|
virtual TSubModel const* Intersect(NvRenderer::Renderable const& renderable,
|
|
glm::dvec3 const& ro,
|
|
glm::dvec3 const& rd) const {
|
|
return nullptr;
|
|
}
|
|
virtual ~IRtModel() = default;
|
|
};
|
|
|
|
std::shared_ptr<IRtModel> CreateRtModel(TModel3d const* src,
|
|
NvRenderer const* owner);
|
|
|
|
} // namespace Rt
|