Initial full mirror of c:\VWE (source + assets + toolchain + outputs) via Git LFS

Complete disaster-recovery snapshot: engine/game source, game data assets,
VC6 toolchain + DX SDKs, build outputs, deployed game, and _UNUSED archive.
Large binaries in Git LFS; text preserved byte-for-byte (core.autocrlf=false,
no eol attributes). See RECOVERY.md for the one-clone rebuild procedure.
This commit is contained in:
Cyd
2026-06-24 21:28:16 -05:00
commit 2b8ca921cb
66341 changed files with 7923174 additions and 0 deletions
@@ -0,0 +1,194 @@
//===========================================================================//
// File: renderer.cc //
// Project: MUNGA Brick: Renderer Manager //
// Contents: Interface specification Renderer and Renderer Manager //
//---------------------------------------------------------------------------//
// Date Who Modification //
// -------- --- ---------------------------------------------------------- //
// 11/21/94 ECH Initial coding. //
//---------------------------------------------------------------------------//
// Copyright (C) 1994-1995, Virtual World Entertainment, Inc. //
// All Rights reserved worldwide //
// This unpublished sourcecode is PROPRIETARY and CONFIDENTIAL //
//===========================================================================//
#include "AdeptHeaders.hpp"
#include "RendererManager.hpp"
#include "Map.hpp"
#include "Player.hpp"
#include "Map.hpp"
#include "Application.hpp"
#include "AudioRenderer.hpp"
//#############################################################################
//######################### RendererManager #############################
//#############################################################################
//
// Shared Data Support
//
RendererManager::ClassData*
RendererManager::DefaultData = NULL;
RendererManager*
RendererManager::Instance = NULL;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
void
RendererManager::InitializeClass()
{
Verify(!DefaultData);
DefaultData =
new ClassData(
RendererManagerClassID,
"Adept::RendererManager",
Receiver::DefaultData,
0,
NULL
);
Register_Object(DefaultData);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
void
RendererManager::TerminateClass()
{
Unregister_Object(DefaultData);
delete DefaultData;
DefaultData = NULL;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
void
RendererManager::TestInstance()
{
Verify(IsDerivedFrom(DefaultData));
Check_Object(&adoptedRenderers);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
void
RendererManager::AdoptRenderer(Renderer *renderer)
{
Check_Object(this);
adoptedRenderers.AddValue(renderer, renderer->rendererType);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
int
RendererManager::FindRendererType(const char *renderer_name)
{
Check_Object(this);
if (!_stricmp(renderer_name, "VideoRenderer"))
return VideoRendererType;
else if (!_stricmp(renderer_name, "AudioRenderer"))
return AudioRendererType;
else
return ReservedForGameModelRendererType;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
void
RendererManager::EntityIsInteresting(
Entity *entity,
bool render_me
)
{
Check_Object(this);
Check_Object(entity);
SortedChainIteratorOf<Renderer*, int>
renderers_iterator(&adoptedRenderers);
Renderer *renderer;
while ((renderer = renderers_iterator.ReadAndNext()) != NULL)
{
Check_Object(renderer);
renderer->EntityIsInteresting(entity, render_me);
}
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
void
RendererManager::EntityIsUninteresting(Entity *entity)
{
Check_Object(this);
Check_Object(entity);
SortedChainIteratorOf<Renderer*, int>
renderers_iterator(&adoptedRenderers);
Renderer *renderer;
while ((renderer = renderers_iterator.ReadAndNext()) != NULL)
{
Check_Object(renderer);
renderer->EntityIsUninteresting(entity);
}
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
void
RendererManager::Execute(Time target_render_time)
{
Check_Object(this);
//
//-------------------------------
// Now, execute all the renderers
//-------------------------------
//
SortedChainIteratorOf<Renderer*, int> renderers_iterator(&adoptedRenderers);
Renderer *renderer;
while ((renderer = renderers_iterator.ReadAndNext()) != NULL)
{
Check_Object(renderer);
renderer->Execute(target_render_time);
}
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
void
RendererManager::ActivateRenderers()
{
Check_Object(this);
Renderer
*renderer;
SortedChainIteratorOf<Renderer*, int>
renderers_iterator(&adoptedRenderers);
while ((renderer = renderers_iterator.ReadAndNext()) != NULL)
{
Check_Object(renderer);
Verify(renderer->rendererStatus != Renderer::ActiveRendererStatus);
renderer->SetRendererStatus(Renderer::ActiveRendererStatus);
}
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
void
RendererManager::DeactivateRenderers()
{
Check_Object(this);
Renderer
*renderer;
SortedChainIteratorOf<Renderer*, int>
renderers_iterator(&adoptedRenderers);
while ((renderer = renderers_iterator.ReadAndNext()) != NULL)
{
Check_Object(renderer);
renderer->SetRendererStatus(Renderer::InactiveRendererStatus);
}
}