isle-portable/LEGO1/lego/sources/3dmanager/lego3dview.h
Anonymous Maarten b996fff6fa
Support building isle with modern MSVC + msys2 (#421)
* cmake: detect older MSVC and define ENABLE_DECOMP_ASSERTS to enable decomp asserts

* Add /Zc:__cplusplus to define __cplusplus with c++ version number

* Silence deprecated CRT releated warnings

* LegoCameraController overrids some methods that are not defined in its parent(s)

* Tgl::Device::GetDrawnTriangleCount does not exist (FIXME: INCORRECT FIX -> Tgl::Device should be updated instead)

* Remove copy/pasted APP_ICON from lego1 resource.h header

* Implement empty ViewLODList::Dump method

* Also enable "compat mode" for newer MSVC compilers

* Only do decomp assertions when using older MSVC compilers

* msys2 mingw compat (cannot pass reference of rvalue)

* Fix msys2 mingw warning: declaration 'class Tgl::Group' does not declare anything

* Add FIXME comment to LEgo3DView::m_previousRenderTime

* LegoView1 is 16 bytes bigger then LegoView ==> 4 32-bit pointers

* include string.h for strlen

* Fix overrides

* Fix constness of method

* Fixes

* Formatting

* Add size assert for MxFrequencyMeter

* ci: build isle with msys2 + msvc on GitHub actions

* Set vcvars for msvc

* msys2 needs the msys2 shell

* Build in default shell

* isle is not 64-bit yet (I think)

* Print bitness

* Use amd64_x64 cross tools

* Minor updates

* Add more names

---------

Co-authored-by: Christian Semmler <mail@csemmler.com>
2024-01-10 23:34:32 +01:00

60 lines
1.2 KiB
C++

#ifndef _Lego3DView_h
#define _Lego3DView_h
#include "decomp.h"
#include "legoview1.h"
class ViewROI;
class ViewManager;
/////////////////////////////////////////////////////////////////////////////
// Lego3DView
// VTABLE: LEGO1 0x100dbf78
// SIZE 0xa8
class Lego3DView : public LegoView1 {
public:
Lego3DView();
virtual ~Lego3DView() override;
BOOL Create(const CreateStruct&, Tgl::Renderer*);
virtual void Destroy() override; // vtable+0x08
BOOL Add(ViewROI&);
BOOL Remove(ViewROI&);
BOOL Moved(ViewROI&);
BOOL SetPointOfView(ViewROI&);
double Render(double p_und);
ViewROI* Pick(unsigned long x, unsigned long y);
ViewROI* GetPointOfView();
ViewManager* GetViewManager();
// double GetTargetRenderingRate() const;
private:
ViewManager* m_pViewManager; // 0x88
double m_previousRenderTime; // 0x8c
ViewROI* m_pPointOfView; // 0x94
undefined m_unk0x98[0x0c]; // 0x98
};
// SYNTHETIC: LEGO1 0x100aaf10
// Lego3DView::`scalar deleting destructor'
/////////////////////////////////////////////////////////////////////////////
//
// Lego3DView implementation
inline ViewManager* Lego3DView::GetViewManager()
{
return m_pViewManager;
}
inline ViewROI* Lego3DView::GetPointOfView()
{
return m_pPointOfView;
}
#endif /* _Lego3DView_h */