17
0
mirror of https://github.com/MaSzyna-EU07/maszyna.git synced 2026-10-17 16:49:21 +02:00
Files
maszyna/betterRenderer/renderer/source/rt_model.h
maj00r 61b3ec6f3f parse windows.h before any import reaches betterRenderer
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.
2026-09-10 15:40:52 +02:00

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