42 m_pViewLODListManager = 0;
57 assert(!m_pViewLODListManager);
59 assert(!m_pLego3DView);
62 assert(m_pViewLODListManager);
72 result = m_pLego3DView->
Create(tglSurfaceCreateStruct, m_pRenderer);
87 delete m_pViewLODListManager;
88 m_pViewLODListManager = 0;
94 assert(m_pLego3DView);
96 return m_pLego3DView->
Render(p_und);
[AI] Central class managing the LEGO Island 3D rendering subsystem.
BOOL Create(CreateStruct &rCreateStruct)
[AI] Initializes the LEGO 3D system using the specified creation parameters.
int SetFrustrum(float p_fov, float p_front, float p_back)
[AI] Sets the 3D perspective frustum parameters for camera and view.
void Destroy()
[AI] Cleans up the 3D system and destroys internal objects.
Lego3DManager()
[AI] Constructs and initializes the Lego3DManager in an uninitialized state.
double Render(double p_und)
[AI] Renders the current frame.
virtual ~Lego3DManager()
[AI] Destructor.
[AI] Represents a 3D view for rendering and managing LEGO game objects in a 3D scene.
BOOL Create(const CreateStruct &rCreateStruct, Tgl::Renderer *pRenderer)
[AI] Initializes the 3D view with the specified surface creation parameters and renderer interface.
double Render(double p_und)
[AI] Renders the scene using the ViewManager and returns the render time.
ViewManager * GetViewManager()
[AI] Returns the ViewManager responsible for managing scene objects and transformations.
Tgl::View * GetView() const
[AI] Gets the current view/camera for this surface.
virtual Result SetFrustrum(float frontClippingDistance, float backClippingDistance, float degrees)=0
[AI] Sets front and back clipping planes and view field in degrees.
[AI] Manages the lifecycle, lookup, and sharing of ViewLODList instances for different ROI names.
void SetFrustrum(float fov, float front, float back)
[AI] Sets the projection frustum parameters and marks the frustum as needing recalculation.
#define DECOMP_SIZE_ASSERT(T, S)
BOOL InitializeCreateStruct(TglSurface::CreateStruct &rTglSurfaceCreateStruct, const Lego3DManager::CreateStruct &rCreateStruct)
Renderer * CreateRenderer()
[AI] Instantiates and returns a new Tgl::Renderer implementation.
[AI] Construction parameters for initializing the 3D system.
IDirectDrawSurface * m_pFrontBuffer
[AI] DirectDraw front buffer surface
IDirect3D2 * m_direct3d
[AI] Direct3D interface
IDirectDrawPalette * m_pPalette
[AI] Color palette for indexed display modes
IDirect3DDevice2 * m_d3dDevice
[AI] Direct3D device to use for rendering
HWND m_hWnd
[AI] Window handle to associate DirectDraw surfaces with
IDirectDrawSurface * m_pBackBuffer
[AI] DirectDraw back buffer surface
const GUID * m_pDriverGUID
[AI] Pointer to DirectDraw driver GUID to use (NULL for default)
IDirectDraw * m_pDirectDraw
[AI] Pointer to active DirectDraw interface
BOOL m_isFullScreen
[AI] TRUE if 3D system should run in full-screen mode
BOOL m_isWideViewAngle
[AI] TRUE for wide-angle (FOV) projection
[AI] Contains initialization parameters for creating a TglSurface and its underlying DDraw/D3D resour...
BOOL m_isWideViewAngle
[AI] Enables wide or default field-of-view projection.
BOOL m_isFullScreen
[AI] TRUE to use fullscreen mode, FALSE for windowed rendering.
HWND m_hWnd
[AI] Handle to the window to be associated with this surface.
IDirectDraw * m_pDirectDraw
[AI] DirectDraw interface pointer for low-level surface management.
IDirectDrawSurface * m_pFrontBuffer
[AI] DirectDraw primary/front buffer surface.
IDirect3D2 * m_direct3d
[AI] Direct3D2 interface pointer for 3D initialization.
const GUID * m_pDriverGUID
[AI] DirectDraw driver GUID to use or NULL for primary display.
IDirect3DDevice2 * m_d3dDevice
[AI] Direct3D2 device interface (hardware or emulated).
IDirectDrawPalette * m_pPalette
[AI] Optional palette for indexed color surfaces.
IDirectDrawSurface * m_pBackBuffer
[AI] Optional DirectDraw back buffer for double buffering.