Implement the Granny SDK 2.11 API the client uses on top of libgr2 (platform/EterGrnLib/GrannyRuntime.cpp, shim granny.h declared from the SDK header): file sections, type-definition vertex conversion, material textures by Usage, mesh/bone bindings, deformer, control clock/loop/ease and weighted SRT sampling. Port EterGrnLib (LODController, Material, Mesh, Model, ModelInstance*, Motion, Thing, ThingInstance, Util) plus EterLib GrpObjectInstance/GrpCollisionObject/CollisionData verbatim and drop their platform skeletons and pending stand-ins; register the gr2 resource factory; vertex/index buffers are CPU-side until the 2V2-e render adapter. app.UpdateGame/RenderGame now run 40250's bodies, reaching the CPythonApplication members through their singletons (the platform has no app object); CPythonGraphic joins GameSingletons in member order, and GetMousePosition reads the host cursor. port.login_flow asserts the main instance's PART_MAIN model has meshes, its diffuse image loaded and the WAIT motion moves the bones between frames; offline and live pass, port_gate macos PASS. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
151 lines
2.6 KiB
C++
151 lines
2.6 KiB
C++
// Platform skeleton for EterLib/MSWindow.h (40250 EterLib/MSWindow.cpp), generated by platform_stub.py.
|
|
// Every MT_PLATFORM_STUB() body is unimplemented: replace it with the platform implementation.
|
|
#include "EterLib/StdAfx.h"
|
|
#include "EterLib/MSWindow.h"
|
|
|
|
#include "../PlatformStub.h"
|
|
#include "HostCursor.h"
|
|
|
|
CMSWindow::CMSWindow()
|
|
{
|
|
MT_PLATFORM_STUB();
|
|
}
|
|
|
|
CMSWindow::~CMSWindow()
|
|
{
|
|
MT_PLATFORM_STUB();
|
|
}
|
|
|
|
auto CMSWindow::Destroy() -> void
|
|
{
|
|
MT_PLATFORM_STUB();
|
|
}
|
|
|
|
auto CMSWindow::Create(const char *, int, DWORD, DWORD, HICON, int) -> bool
|
|
{
|
|
MT_PLATFORM_STUB();
|
|
return mt_platform_stub_return<bool>();
|
|
}
|
|
|
|
auto CMSWindow::Show() -> void
|
|
{
|
|
MT_PLATFORM_STUB();
|
|
}
|
|
|
|
auto CMSWindow::Hide() -> void
|
|
{
|
|
MT_PLATFORM_STUB();
|
|
}
|
|
|
|
auto CMSWindow::SetVisibleMode(bool) -> void
|
|
{
|
|
MT_PLATFORM_STUB();
|
|
}
|
|
|
|
auto CMSWindow::SetPosition(int, int) -> void
|
|
{
|
|
MT_PLATFORM_STUB();
|
|
}
|
|
|
|
auto CMSWindow::SetCenterPosition() -> void
|
|
{
|
|
MT_PLATFORM_STUB();
|
|
}
|
|
|
|
auto CMSWindow::SetText(const char *) -> void
|
|
{
|
|
MT_PLATFORM_STUB();
|
|
}
|
|
|
|
auto CMSWindow::AdjustSize(int, int) -> void
|
|
{
|
|
MT_PLATFORM_STUB();
|
|
}
|
|
|
|
auto CMSWindow::SetSize(int, int) -> void
|
|
{
|
|
MT_PLATFORM_STUB();
|
|
}
|
|
|
|
auto CMSWindow::IsVisible() -> bool
|
|
{
|
|
MT_PLATFORM_STUB();
|
|
return mt_platform_stub_return<bool>();
|
|
}
|
|
|
|
auto CMSWindow::IsActive() -> bool
|
|
{
|
|
MT_PLATFORM_STUB();
|
|
return mt_platform_stub_return<bool>();
|
|
}
|
|
|
|
namespace {
|
|
POINT g_host_cursor = {0, 0};
|
|
}
|
|
|
|
void MtHostSetCursor(int x, int y)
|
|
{
|
|
g_host_cursor.x = x;
|
|
g_host_cursor.y = y;
|
|
}
|
|
|
|
auto CMSWindow::GetMousePosition(POINT * ppt) -> void
|
|
{
|
|
*ppt = g_host_cursor;
|
|
}
|
|
|
|
auto CMSWindow::GetClientRect(RECT *) -> void
|
|
{
|
|
MT_PLATFORM_STUB();
|
|
}
|
|
|
|
auto CMSWindow::GetWindowRect(RECT *) -> void
|
|
{
|
|
MT_PLATFORM_STUB();
|
|
}
|
|
|
|
auto CMSWindow::GetScreenWidth() -> int
|
|
{
|
|
MT_PLATFORM_STUB();
|
|
return mt_platform_stub_return<int>();
|
|
}
|
|
|
|
auto CMSWindow::GetScreenHeight() -> int
|
|
{
|
|
MT_PLATFORM_STUB();
|
|
return mt_platform_stub_return<int>();
|
|
}
|
|
|
|
auto CMSWindow::GetWindowHandle() -> HWND
|
|
{
|
|
MT_PLATFORM_STUB();
|
|
return mt_platform_stub_return<HWND>();
|
|
}
|
|
|
|
auto CMSWindow::GetInstance() -> HINSTANCE
|
|
{
|
|
MT_PLATFORM_STUB();
|
|
return mt_platform_stub_return<HINSTANCE>();
|
|
}
|
|
|
|
auto CMSWindow::WindowProcedure(HWND, UINT, WPARAM, LPARAM) -> LRESULT
|
|
{
|
|
MT_PLATFORM_STUB();
|
|
return mt_platform_stub_return<LRESULT>();
|
|
}
|
|
|
|
auto CMSWindow::OnSize(WPARAM, LPARAM) -> void
|
|
{
|
|
MT_PLATFORM_STUB();
|
|
}
|
|
|
|
auto CMSWindow::RegisterWindowClass(DWORD, int, WNDPROC, HICON, int) -> const char *
|
|
{
|
|
MT_PLATFORM_STUB();
|
|
return mt_platform_stub_return<const char *>();
|
|
}
|
|
|
|
decltype(CMSWindow::ms_stWCSet) CMSWindow::ms_stWCSet{};
|
|
|
|
decltype(CMSWindow::ms_hInstance) CMSWindow::ms_hInstance{};
|